//**************************************************************************************
function ajaxDirector(callback, key, obj)
{
	if(obj == undefined)
		obj = new Object();
		
	obj.ky = key;
		
	new Ajax.Request('/ajax.dir', 
	{   
		method:'post',   
		
		parameters: obj
		,
		onSuccess: function(transport)
		{      
			callback.call(transport.responseText);
		},
		onFailure: function(){ alert('There was an error calling ajax'); },
		onException: function(request, exc) { alert('Exception: ' + exc.name + " - "  + exc.message); }
	});	
}
//**************************************************************************************
function boxlinkSetup()
{
	$$("a").each( function(link) 
	{
		if(link.rel)
			new Tip(link, link.rel);
	});
}
//**************************************************************************************
function clearEvents(frm)
{
	frm = getForm(frm);
	
	if(frm.c9x3)
		frm.c9x3.value = "";
	
	if(frm.c9x3i)
	{
		if(frm.c9x3i.length != undefined)
		{
			for(var i = 0; i < frm.c9x3i.length; i++)
				frm.c9x3i[i].value = "";
		}
		else
			frm.c9x3i.value = "";
	}
	
	if(frm.c9x3r)
	{
		if(frm.c9x3r.length != undefined)
		{
			for(var i = 0; i < frm.c9x3r.length; i++)
				frm.c9x3r[i].value = "";
		}
		else
			frm.c9x3r.value = "";		
	}
	
	if(frm.c9x3f)
		frm.c9x3f.value = "";
		
	cancelValidate = true;		
}
//**************************************************************************************
function clearFormVariables(fm)
{
	var frm = getForm(fm);
	
	if(!frm)
		return;

	for(var i = 0; i < frm.elements.length; i++)
	{
		if(frm.elements[i].type == 'text' || frm.elements[i].type == 'textarea')
			if(frm.elements[i].value == ' ')
				frm.elements[i].value = '';
	}
}
//**************************************************************************************
function clearValidations(frm)
{
	frm = getForm(frm);
	
	if(frm.c9x3i)
	{
		if(frm.c9x3i.length != undefined)
		{
			for(var i = 0; i < frm.c9x3i.length; i++)
				frm.c9x3i[i].value = "";
		}
		else
			frm.c9x3i.value = "";
	}
	
	if(frm.c9x3r)
	{
		if(frm.c9x3r.length != undefined)
		{
			for(var i = 0; i < frm.c9x3r.length; i++)
				frm.c9x3r[i].value = "";
		}
		else
			frm.c9x3r.value = "";		
	}
		
	cancelValidate = true;		
}
//**************************************************************************************
function empty(value)
{
	return (value == undefined || trim(value).length < 1);	
}
//**************************************************************************************
function getForm(frm)
{
	if(frm != undefined)
		return frm;
	else
		frm = document.frmMain;
		
	if(frm != undefined)
		return frm;
	else
		frm = document.forms[0];
		
	if(frm != undefined)
		return frm;
	else
	{
		alert("Can't Detect a Form {getForm}");
		return undefined;
	}
}
//**************************************************************************************
function getYearDifference(dt, cur)
{
	if(cur == undefined)
		cur = new Date();

	var diff = Math.floor((cur.getTime() - dt) / (60 * 60 * 24 * 1000));
		diff -= Math.floor((cur.getFullYear() - dt.getFullYear()) / 4);
	
	return diff / 365;
}
//**************************************************************************************
function jwindow(url, width, height, resizable, address)
{
	width = realValue(width, 640);
	
	height = realValue(height, 480);
	
	address = realValue(address, true);
	
	resizable = realValue(resizable, true);

	var d = new Date();
	
	var title = 'c9x3_' + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds();
	
	var params = 'scrollbars=yes';
	
	if(resizable)
		params += ',resizable=yes';
		
	if(address)
		params += ',location=yes';
	
   var left = Math.floor( (screen.width - width) / 2);
   
   var top = Math.floor( (screen.height - height) / 2);
   
   params = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width + ',' + params;
   
   var win = window.open(url, title, params);

   if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
	
   return win;	
}
//**************************************************************************************
function ltrim(value)
{
	if(value == null || value == undefined || value == "")
		return "";
		
	value += "";	
		
	var forward = "";
	
	var start = false;
	
	for(var i = 0; i < value.length; i++)
	{
		if(!start && value.charAt(i) == " ")
			continue;
		else if(!start && value.charAt(i) != " ")
		{
			start = true;
			forward += value.charAt(i);
		}
		else
			forward += value.charAt(i);
	}
	
	return forward;
}
//**************************************************************************************
function navigateTo(action, frm)
{
	frm = getForm(frm);
		
	if(!frm)
		return;
	
	frm.action = action;
	
	clearEvents(frm);			
	
	frm.submit();
}
//**************************************************************************************
function realValue(value, value2)
{
	return (value == undefined) ? value2 : value;
}
//**************************************************************************************
function replaceChar(value, search, replace)	
{
	if(empty(value))
		return "";
		
	replace = realValue(replace, "");
		
	var ret = "";
	var ch = "";
	
	for(var i = 0; i < value.length; i++)
	{
		ch = value.charAt(i);
		
		if(ch == search)
			ret += replace;
		else
			ret += ch;
	}
	
	return ret;
}
//**************************************************************************************
function rtrim(value)
{
	if(value == null || value == undefined || value == "")
		return "";
		
	value += "";		
		
	var back = "";
	
	var start = false;
	
	for(var i = value.length - 1; i > -1; i--)
	{
		if(!start && value.charAt(i) == " ")
			continue;
		else if(!start && value.charAt(i) != " ")
		{
			start = true;
			back += value.charAt(i);
		}
		else
			back += value.charAt(i);
	}
	
	forward = "";
	
	for(var i = back.length - 1; i > - 1; i--)
		forward += back.charAt(i);
	
	return forward;
}
//**************************************************************************************
function same(value1, value2)
{
	if( value1 == undefined || value2 == undefined )
		return false;
	
	return (	trim(value1.toLowerCase()) == trim(value2.toLowerCase())	);	
}
//**************************************************************************************
function setEvent(functionName, frm)
{
	frm = getForm(frm);
	
	if(!frm)
		return false;
	
	clearValidations(frm);
	
	if(frm.c9x3f)
		frm.c9x3f.value = functionName;

	return true;	
}
//**************************************************************************************
function startswith(value, value2)
{
	value = trim(value.toLowerCase());
	
	value2 = trim(value2.toLowerCase());
	
	for(var i = 0; i < value2.length; i++)
	{
		if( value.charAt(i) != value2.charAt(i) )
			return false;
	}
	
	return true;
	
}
//**************************************************************************************
function trim(str)
{
	var tv = ltrim(str);
	return rtrim(tv);
}
//**************************************************************************************
function windowEvent(fn) 
{
	if(window.addEventListener)
		window.addEventListener('load', fn, false);
	else if(window.attachEvent)
		window.attachEvent('onload', fn);
	else
		window['onload'] = fn;
}
//**************************************************************************************
function windowLoad()
{
	if(window.loadPage)
		loadPage();
		
	if(window.loadBean)
		loadBean();
	else if(window.loadForm)
	{
		clearFormVariables();
		loadForm();		
	}
}

windowEvent(windowLoad);
//**************************************************************************************