// wnditm_mview.js

var gMViewObjQueue = new List();

//------------------------------------------------------------
function wnditm_mview_add(itm, wnd)
	{
	var box = wnditm_div_add(itm, wnd).addClass("mviewbox");
	wnditm_div_add({klass:"mviewImgBox"}, box);
	
	if (itm.php)
		{
		var data = new Object();
		data.command = itm.cmd;
		data.user_id = getuserid();
		data.itmID = gPhotosObjQueue.add(itm);
		data.wndID = gPhotosObjQueue.add(wnd);
		if (itm.setPHPData) itm.setPHPData(data, wnd);
		var dataString = $.toJSON(data);
		delete data;
		$.post(itm.php, {data: dataString}, done_wnditm_mview_add);
		}
	return box;
	}

//----------------------------------------------------------------------
function done_wnditm_mview_add(res)
	{
	var obj = $.evalJSON(res);
	var itm = gPhotosObjQueue.get(obj.itmID);
	var wnd = gPhotosObjQueue.getremove(obj.wndID);
	
	if (obj.recs)
		{
		var recs = $.evalJSON(obj.recs);
		var mediaRecs = [{}];
		var total = 0;
		if (recs) 
			{
			total = recs.length;
			for (var idx = 0; idx < total; ++idx) 
				{
				var rec = recs[idx];
				mediaRecs[idx]={path:rec["src"],
								imgW:rec["imgW"], 
								imgH:rec["imgH"],
								pid:rec["photo_id"]}
				}
			}
		var idx = wnd.attr("idx");
		var box = getviewbox(wnd)
		.attr({
			mediaRecs: gMViewObjQueue.add(mediaRecs),
			idx: idx,
			mediaTotal: total
		});

		wnditm_mview_setSlide(box, idx);
	
		if (itm.itmName)
			{
			var s;
			if (total == 0) s = "No "+itm.itmName+"s";
			else if (total == 1) s = "1 "+itm.itmName;
			else s = total+" "+itm.itmName+"s";
			wnd.children(".wnd_botbar").html(s);
			}
		delete recs;
		}
	delete obj;
	}

//----------------------------------------------------------------------
function getviewbox(wnd)
	{
	return wnd.find(".mviewbox");
	}
//----------------------------------------------------------------------
function getviewimgbox(wnd)
	{
	return wnd.find(".mviewbox").find(".mviewImgBox");
	}

//----------------------------------------------------------------------
function wnditm_mview_toggleZoom(wnd)
	{
	var viewBox = getviewbox(wnd);
	if (viewBox.attr("zoom")) viewBox.removeAttr("zoom");
	else viewBox.attr("zoom", true);
	wnditm_mview_setSlide(viewBox, viewBox.attr("idx"));
	}
//----------------------------------------------------------------------
function wnditm_mview_setSlide(viewBox, frameIdx)
	{
	var mediaRecs = gMViewObjQueue.get(viewBox.attr("mediaRecs"));
	viewBox.attr("idx", frameIdx);
	var mediaRec = mediaRecs[frameIdx];
	
//	wnditm_div_add({klass:"blackCover"}, viewBox);
	var imgBox = viewBox.children(".mviewImgBox");
	if (isImage(mediaRec.path))
		{
		var oldImg = imgBox.children(".mviewImg");
		var imgDim = {width:mediaRec.imgW, height:mediaRec.imgH};
		var destPos = {};
		
		var img = wnditm_img_add(
								{
									klass:"mviewImg", 
									src:mediaRec.path, 
									imgDim:imgDim,
									destPos:destPos
								}, imgBox);
	//	img.animate({left:destPos.left});
		oldImg.remove();
		delete imgDim;
		}
	else
		{
		imgBox.empty();
		var mediaElem = $("<a></a>").appendTo(imgBox)
		.addClass("media")
		.attr({href:mediaRec.path})
		.media({
			width: 640,
			height: 480
			});
		}
//	viewBox.children(".blackCover").remove();
	}
//----------------------------------------------------------------------
function wnditm_mview_set(viewBox, path, imgDim)
	{
	var imgBox = viewBox.children(".mviewImgBox");
	imgBox.empty();
	if (isImage(path))
		{
		var img = wnditm_img_add({klass:"mviewImg", src:path, imgDim:imgDim}, imgBox);
		}
	else
		{
		var mediaElem = $("<a></a>").appendTo(imgBox);
		viewBox
		.addClass("media")
		.attr({href:path})
		.media({
			width: 640,
			height: 480
			});
		}
	}
//----------------------------------------------------------------------
function wnditm_mview_clear(wnd)
	{
	getviewimgbox(wnd).empty();
	}

//----------------------------------------------------------------------
function wnditm_mview_getMediaRec(wnd)
	{
 	var viewBox = getviewbox(wnd);
	var idx = viewBox.attr("idx");
	var mediaRecs = gMViewObjQueue.get(viewBox.attr("mediaRecs"));
	if (mediaRecs) return mediaRecs[idx];
	}
//----------------------------------------------------------------------
function wnditm_mview_getPhotoID(wnd)
	{
	var mediaRec = wnditm_mview_getMediaRec(wnd);
	if (mediaRec) return mediaRec.pid;
	return false;
	}