// JavaScript Document

// Function used by ProxyData class to retreive the file size of a group of files to load
function getBytesTotal(path)
{
	var bytesTotal	= 0;
	var domain		= '';
	var reponse		= null;
	var skipAJAX	= false;
	
	if(typeof(path) !== 'undefined' && path.indexOf('http') == 0)
	{	
		domain	= path.substring(path.indexOf('://') + 3);
		if(path.indexOf(domain) !== 0)
		{
			skipAJAX	= true;
		}
	}
	
	if($.browser.safari)
	{
		skipAJAX	= true;
	}
	
	if(!skipAJAX)
	{
		try
		{
			response = $.ajax({
				type: "HEAD",
				url: path,
				async: false
			});
	
			bytesTotal = parseInt(response.getResponseHeader('Content-Length'));
		}
		catch(exception)
		{
			// Do nothing
		}
	}
	
	if(isNaN(bytesTotal) || bytesTotal == 0)
	{
		bytesTotal = 50;
	}

	return bytesTotal;
}	

function imagePopup(url)
{
	var width	= 300;
	var height	= 300;
	var top		= 50;
	var left	= 50;
	
	return window.open('/info/imagePopup.cfm?image=' + url, '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=' + top + ',left=' + left + ',width=' + width + ',height=' + height);
}

function popup(url, width, height, menuBar)
{
	width = (typeof(width) == 'undefined')? 800 : width;
	height = (typeof(height) == 'undefined')? 600 : height;
	menuBar = (menuBar)? 'yes' : 'no';
	
	window.open(url, '', 'toolbar=no,location=no,status=no,menubar=' + menuBar + ',scrollbars=yes,resizable=no,width=' + width + ',height=' + height);
}

function addOnLoad(func) {
	var args = addOnLoad.arguments;
	
	var oldLoad = window.onload;
	window.onload = function()
		{
		if(oldLoad != null)
			oldLoad();
			func(args[1]);
		}
}

function addOnResize(func) {
	var args = addOnResize.arguments;
	
	var oldResize = window.onresize;
	window.onresize = function()
		{
		if(oldResize != null)
			oldResize();
			func(args[1]);
		}
}

function getClientDimensions() {
	var dimensions;
	
	dimensions			= new Object();
	dimensions.width	= 0;
	dimensions.height	= 0;
	
	if(window.innerWidth) {
		dimensions.width = window.innerWidth;
		dimensions.height = window.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientWidth) {
		dimensions.width = document.documentElement.clientWidth;
		dimensions.height = document.documentElement.clientHeight;
	}
	else {
		dimensions.width = document.body.clientWidth;
		dimensions.height = document.body.clientHeight;
	}
	return dimensions;
}

function getScrollOffset() {
	var scrollOffset;
	
	scrollOffset = new Object;
	scrollOffset.x = (window.pageXOffset)? window.pageXOffset : (document.documentElement)? document.documentElement.scrollLeft : (document.body)? document.body.scrollLeft : 0;
	scrollOffset.y = (window.pageYOffset)? window.pageYOffset : (document.documentElement)? document.documentElement.scrollTop : (document.body)? document.body.scrollTop : 0;
	
	return scrollOffset;
}

function getCursorPosition(event) {
	var position;
	
	position = new Object();
	position.x = ((event['pageX'])? event['pageX'] : event['clientX']);
	position.y = ((event['pageY'])? event['pageY'] : event['clientY']);

	return position;
}

function getOffset(obj) {
	var offset;
	var tempOffset;
	
	offset = new Object();
	offset.x		= 0;
	offset.y		= 0;
	offset.width	= 0;
	offset.height	= 0;

	if(obj) {
		offset.x		+= obj.offsetLeft;
		offset.y		+= obj.offsetTop;
		offset.width	+= obj.offsetWidth;
		offset.height	+= obj.offsetHeight;
		
		if(obj.offsetParent) {
			tempOffset = getOffset(obj.offsetParent);
			offset.x		+= tempOffset.x;
			offset.y		+= tempOffset.y;
		}
	}
	
	return offset;
}

function updateDefaultValue(e) {
	var currentTarget, relatedTarget;
	
	if(!e) {
		e=window.event;
	}
	
	currentTarget	= (window.event)? e.srcElement: e.target;
	relatedTarget	= (e.toElement)? e.toElement: e.relatedTarget;
	
	switch(e.type) {
		case 'blur':
			if(currentTarget.value == '') {
				currentTarget.value = currentTarget.defaultValue;
			}
			break;
		case 'focus':
			if(currentTarget.value == currentTarget.defaultValue) {
				currentTarget.value = '';
			}
			break;
	}
}

