// image_utils.js

var gImgCallback;
var gImageUtilCallbackFuncs = new List();
var gViewImgElem;
var jViewImgElem;

//----------------------------------------------------------------------------------------------------------------
function done_viewer_fadeout()
	{
	$(this).bind('onreadystatechange load', viewer_image_loaded);
	}
//----------------------------------------------------------------------------------------------------------------
function viewer_image_loaded()
	{
	$(this).fadeIn("fast");
	}

//----------------------------------------------------------------------------------------------------------------
function image_getSrcArg()
	{
	return "?" + getMillisec();
	}

//----------------------------------------------------------------------------------------------------------------
function image_fix(o)
	{
	if (o.img) 
		{
		if (o.src == undefined) o.src = o.img.attr("src");
		if (o.src == undefined)
			{
			o.src = o.img.attr("orig");
			o.img.removeAttr("orig");
			}
		if (o.src && !isBlank(o.src))
			{
			if (o.parElem) 
				{
				o.boxRect = new Rect().getElem(o.parElem);
				if (o.imgDim) {
					o.imgRect = new Rect(0, 0, parseInt(o.imgDim.height), 
												parseInt(o.imgDim.width));
				}
				if (o.imgRect) 
					{
					var zoom = false;
					if (!o.parElem.attr("zoom")) zoom = o.parElem.parent().attr("zoom");
					if (zoom) o.imgRect.centerAboutRect(o.boxRect.move(0, 0));
					else o.imgRect.centerInRect(o.boxRect.move(0, 0));
					if (o.imgPos)
						{
						if (o.destPos != undefined)
							{
							o.destPos.top = o.imgRect.top;
							o.destPos.left = o.imgRect.left;
							}
						if (o.imgPos.top != undefined) o.imgRect.top = o.imgPos.top;
						if (o.imgPos.left != undefined) o.imgRect.left = o.imgPos.left;
						}
					if (o.flushBot) o.imgRect.flushBot(o.boxRect);
					o.imgRect.setElem(o.img);
					var imgDim = o.imgRect.getdim();
					image_fixSrc(o, imgDim);	
					delete imgDim;
					}
				}
			o.img.attr("src", trimQ(o.src) + image_getSrcArg());
			}
		}
	}

//------------------------------------------------------------------
function image_fixSrc(o, imgDim)
	{
	if (o.subklass) 
		{
		switch (o.subklass) 
			{
			case "user":
				o.src = ms_fixpath(o.src, imgDim);
				break;
				
			case "photo":
			case "album":
				o.src = ps_fixpath(o.src, imgDim);
				break;
			}
		}
	}
//------------------------------------------------------------------
function image_resetPhotoSrc(img)
	{
	var o = {subklass: "photo",src: img.attr("src")};
	image_fixSrc(o,{height:img.attr("h"),width:img.attr("w")});
	img.attr("src", trimQ(o.src) + image_getSrcArg());
	}
//------------------------------------------------------------------
function image_rotate90_right(img_id, donefunc)
	{
	}

//------------------------------------------------------------------
function done_image_rotate90_right(res)
	{
	}

//------------------------------------------------------------------
function CenterImgeInParent(img_id, path)
	{
	var data = new Object();
	data.command = "get_image_size";
	data.img_id = img_id;
	data.srcPath = path;
	var dataString = $.toJSON(data);
	delete data;
	$.post('image_utils.php', {data: dataString}, done_CenterImgeInParent);
	}
	
//------------------------------------------------
function done_CenterImgeInParent(res)
	{
	var obj = $.evalJSON(res);
	
	var img = $("#" + obj.img_id);
	var parent = $(img.parent());
	var parRect = new Rect().getElem(parent);
	imgRect = new Rect(0, 0, obj.newH, obj.newW);
	imgRect.centerInRect(parRect);
	imgRect.setElem(img);
	img.attr("src", obj.srcPath);
	delete imgRect, parRect;
	delete obj;
	}

//---------------------------------------------------
function preloadImages()
	{
	for(var i = 0; i<arguments.length; i++)
		{
    	$("<img>").attr("src", arguments[i]);
		}
	}