// photosize.js

var gPhotosizeList = new List();
var psDir = "plooper_data/user_photos_online/";

//-----------------------------------------
function ps_makePath(size)
	{
	return psDir+"_"+size.w+"x"+size.h;
	}
//---------------------------------------------------------
function ps_fixpathFromSize(src, inSize)
	{
	if (src)
		{
		for (var i = 0; i < _SESS.photosizes.length; ++i)
			{
			var size = _SESS.photosizes[i];
			if (inSize.w <= size.w && inSize.h <= size.h)
				{
				return ps_makePath(size)+"/"+basename(src);
				}
			}
		return psDir+"original"+"/"+basename(src);
		}
	}

//---------------------------------------------------------
function ps_fixpath(src, dim)
	{
	if (src)
		{
		for (var i = 0; i < _SESS.photosizes.length; ++i)
			{
			var size = _SESS.photosizes[i];
			if (dim.width <= size.w && dim.height <= size.h)
				{
				return ps_makePath(size)+"/"+basename(src);
				}
			}
		return psDir+"original/"+basename(src);
		}
	}
//---------------------------------------------------------
function ps_origpath(src)
	{
	return psDir+"original/"+basename(src);
	}

//---------------------------------------------------------
function ps_getSizeFromHt(ht)
	{
	var last = _SESS.photosizes.length-1;
	if (ht>(_SESS.photosizes[last]+20)) return "original";
	return {h:ht-2, w:(4*ht)/3};
/*
	for (var i = last; i >= 0; --i)
		{
		var size = _SESS.photosizes[i];
		if (ht > size.h) 
			{
			return size;
			}
		}
	return "original";
*/
	}
//---------------------------------------------------------
function ps_getRect(size)
	{
	if (size == "original") return new Rect(0,0,0,0);
	return new Rect(0,0,size.h, size.w);
	}
	

//------------------------------------------------------------
function ps_createFolders(done)
	{
	var data = new Object();
	data.command = "createFolders";
	data.done = gPhotosizeList.add(done);
	var dataString = $.toJSON(data);
	delete data;
	$.post("photosize.php", {data: dataString}, done_ps_createFolders);
	}
//----------------------------------------------------------------------
function done_ps_createFolders(res)
	{
	var obj = $.evalJSON(res);
	if (obj.done) gPhotosizeList.dofunc(obj.done);
	}

//------------------------------------------------------------
function ps_processPhoto(src, done, info)
	{
	var data = new Object();
	data.command = "processPhoto";
	if (info) data.info = info;
	data.src = src;
	var dataString = $.toJSON(data);
	delete data;
	$.post("photosize.php", {data: dataString}, done);
	}

//---------------------------------------------------------
function ps_getSize(img)
	{
	var w = img.width();
	var h = img.height();
	var t = _SESS.photosizes.length;

	for (var i=0; i<t; ++i)
		{
		var size = _SESS.photosizes[i];
		if (w == size.w || h == size.h) return i;
		}
	}

//---------------------------------------------------------
function ps_incSize(img)
	{
	var i = ps_getSize(img);
	if (i)
		{
		if (++i==_SESS.photosizes.length) i = 1;
		var size = _SESS.photosizes[i];
		var src = img.attr("src");
		img.attr("src", ps_makePath(size)+"/"+basename(src));
		var drct = new Rect(0,0,size.h,size.w);
		var srct = new Rect(0,0,img.attr("imgH"),img.attr("imgW"))
		.fitInRectWithProp(drct);
		img.animate({width:srct.width, height:srct.height});
		}
	}
//---------------------------------------------------------
function ps_decSize(img)
	{
	var i = ps_getSize(img);
	if (i)
		{
		if (--i<1) i = _SESS.photosizes.length-1;
		var size = _SESS.photosizes[i];
		var src = img.attr("src");
		img.attr("src", ps_makePath(size)+"/"+basename(src));
		var drct = new Rect(0,0,size.h,size.w);
		var srct = new Rect(0,0,img.attr("imgH"),img.attr("imgW"))
		.fitInRectWithProp(drct);
		img.animate({width:srct.width, height:srct.height});
		}
	}
//---------------------------------------------------------
function ps_toggleSize(img)
	{
	var i = ps_getSize(img);
	if (i)
		{
		var t = _SESS.photosizes.length;
		if (i >= (t-2)) i = 1;
		else i = t-2;
		var size = _SESS.photosizes[i];
		var src = img.attr("src");
		img.attr("src", ps_makePath(size)+"/"+basename(src));
		var drct = new Rect(0,0,size.h,size.w);
		var srct = new Rect(0,0,img.attr("imgH"),img.attr("imgW"))
		.fitInRectWithProp(drct);
		img.animate({width:srct.width, height:srct.height});
		}
	}
