

var formBadBG="#cccc99";
var formGoodBG="";


/**
 * Variables:
 *	- clickX
 *	- clickY
 *
 * Description:
 * 	Hold the x & y coordinates of the last mouse click.
 *
 * Type:
 * 	Integer
 */
var clickX=new Number();
var clickY=new Number();


/**
 * Variables:
 *	- clickElemLeft
 *	- clickElemTop
 *	- clickElemRight
 *	- clickElemBottom
 *
 * Description:
 * 	Hold the top, bottom, left, right coordinates of the element that contained the last mouse click (computed using scroll offsets).
 *		'Abs' vars are fixed numbers computed without scroll offsets
 *
 * Type:
 * 	Integer
 */
var clickElemLeft=new Number();
var clickElemTop=new Number();
var clickElemRight=new Number();
var clickElemBottom=new Number();
var clickElemAbsLeft=new Number();
var clickElemAbsTop=new Number();
var clickElemAbsRight=new Number();
var clickElemAbsBottom=new Number();


/**
 * Variable: clickElem
 *
 * Description:
 * 	The element that contained the last mouse click.
 *
 * Type:
 * 	Element
 */
var clickElem;



Event.observe(window, 'load', function() {
	Event.observe(document.body, 'click', function(event) {
		clickX=Event.pointerX(event);
		clickY=Event.pointerY(event);
		clickElem = $(Event.element(event));
		tmp=clickElem.cumulativeOffset();
		tmp2=clickElem.cumulativeScrollOffset();
		clickElemLeft=Number(tmp[0])-Number(tmp2[0]);
		clickElemTop=Number(tmp[1])-Number(tmp2[1]);
		clickElemRight=clickElemLeft+Number(clickElem.getWidth());
		clickElemBottom=clickElemTop+Number(clickElem.getHeight());
		clickElemAbsLeft=Number(tmp[0]);
		clickElemAbsTop=Number(tmp[1]);
		clickElemAbsRight=clickElemAbsLeft+Number(clickElem.getWidth());
		clickElemAbsBottom=clickElemAbsTop+Number(clickElem.getHeight());
	});
});

function enlarge(image, pos, eff) {
	if (!image) {
		alert("ERROR: No image sent to enalrge with.");
		return false;
	}
	if (!pos)
		pos = [10, -100];
	if (!eff)
		eff = '';

	var left = Number(clickElemAbsRight+pos[0]);
	var top = Number(clickElemAbsTop+pos[1]);

	id='I_'+image.gsub('.', '').gsub('/', '').gsub('-', '')+eff;

	$$('.enlarge').each(function(e) {
		e.hide();
	});

	if (!$(id)) {
		$('content').insert({top: '<div id="'+id+'" class="enlarge" style="display:none;"></div>'});
		ret = ajaxCall("/getsize.php", false, 'get', {img: "."+image, js: 1});
		if (ret.isJSON()) {
			ret = ret.evalJSON();
			width = ret.width;
			height = ret.height;
		}
		else {
			alert('FAILED\n'+ret);
			return false;
		}

		if (width > 500)
			width = 500;

		if (eff)
			eff = '&'+eff+'=1';

		r = new Date().getTime();
		$(id).update(
			'<div class="hdr"><a href="javascript:void(0);" onclick="$(\''+id+'\').hide();">Close</a></div>'+
			'<img src="/uploader/thumbnail.php?img='+image+'&w='+width+'&constrain=1+_r='+r+eff+'" style="border:none;">'
		).setStyle({width: Number(width+50)+'px'});
	}
	$(id).setStyle({left: left+'px', top: top+'px'}).show();
}


function ajaxCall(url, asynch, meth, params)	{
	r = new Date();
	rand = r.getTime();
	params = Object.extend({"_r":rand}, params || {});

	new Ajax.Request(url, {
		asynchronous: asynch,
		method: meth,
		parameters: params,
		onSuccess: function(transport) {
			ret=transport.responseText;
		},
		onFailure: function(transport) {
			ret='FAILED\n'+Object.toJSON(transport);
		}
	});
	return ret.strip();
}

/* For backwards compatibility */
function HideContent(d) {
	$(d).hide();
}
function ShowContent(d) {
	$(d).show();
}
