function $(target)
{
	if (document.getElementById(target)) return document.getElementById(target);
	return false
}

function inputFocus(target, defText)
{
	target.className	=	'activeSearch';
	if (target.value == defText)
	{
		target.value = '';
	}
}

function inputBlur(target, defText)
{
	if(target.value == '')
	{
		target.value	= defText;
		target.className	= 'inactiveSearch';
	}
}

function menuDispToggle(target)
{
	if($(target).style.display == 'block')
	{
		$(target).style.display = '';
	}
	else
	{
		$(target).style.display = 'block';
	}
}
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function menuInit(loc)
{
	
}
var recentAjax;
function evalAjax (t)
{
	alert(unescape(t));
	eval(unescape(t));
	recentAjax = unescape(t);
}
function ajaxSubmit(fieldIdArray, formPage)
{
	data = '';
	i=0;
	while(fieldIdArray[i])
	{
		data	+=	fieldIdArray[i]+'='+$(fieldIdArray[i]).value+'&';
		i++;
	}
//	data	+=	'FormPage='+formPage;
	ajaxObj = new ajaxObject('/'+formPage+'Valid',evalAjax);
	ajaxObj.update(data,'POST');
}
function ajaxObject(url, callbackFunction)
{
	var that=this;
	this.updating = false;
	this.abort = function()
	{
		if (that.updating)
		{
			that.updating=false;
			that.AJAX.abort();
			that.AJAX=null;
		}
	}
	this.update = function(passData,postMethod)
	{
		if (that.updating) { return false; }
		that.AJAX = null;
		if (window.XMLHttpRequest)
		{
			that.AJAX=new XMLHttpRequest();
		} else {
			try
			{
				that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				that.AJAX=new XMLHttpRequestIFrame();
			}
		}
		if (that.AJAX==null)
		{
			return false;
		} else {
			that.AJAX.onreadystatechange = function()
			{
				if (that.AJAX.readyState==4)
				{
					that.updating=false;
					that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);
					that.AJAX=null;
				}
			}
			that.updating = new Date();
			if (/post/i.test(postMethod))
			{
				var uri=urlCall+'?'+that.updating.getTime();
				that.AJAX.open("POST", uri, true);
				try
				{
					that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					that.AJAX.setRequestHeader("Content-Length", passData.length);
				} catch(e) {}
				that.AJAX.send(passData);
			} else {
				var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());
				that.AJAX.open("GET", uri, true);
				that.AJAX.send(null);
			}
			return true;
		}
	}
	var urlCall = url;
	this.callback = callbackFunction || function () { };
}
/*
coded by Kae - http://verens.com/
use this code as you wish, but retain this notice
*/
var kXHR_instances=0;
var kXHR_objs=[];

IFrameXMLHttpRequest=function()
{
	var i=0;
	var url='';
	var responseText='';
	var iframe='';
	this.onreadystatechange=function()
	{
		return false;
	}
	this.open=function(method,url)
	{
		//TODO: POST methods
		this.i=++kXHR_instances; // id number of this request
		this.url=url;
		iFrame = document.createElement('iframe');
		iFrame.id = "kXHR_iframe_"+this.i;
		iFrame.style.display = 'none';
		iFrame.style.width = '1px';
		iFrame.style.height = '1px';
		document.body.appendChild(iFrame);
	}
	this.send=function(postdata)
	{
		//TODO: use the postdata
		document.getElementById('kXHR_iframe_'+this.i).src=this.url;
		kXHR_objs[this.i]=this;
		setTimeout('XMLHttpRequest_checkState('+this.i+',2)',2);
	}
	return true;
}
XMLHttpRequest_checkState=function(inst,delay)
{
	var el=document.getElementById('kXHR_iframe_'+inst);
	if(el.readyState=='complete')
	{
		var responseText=document.frames['kXHR_iframe_'+inst].document.body.innerText;
		kXHR_objs[inst].responseText=responseText;
		kXHR_objs[inst].readyState=4;
		kXHR_objs[inst].status=200;
		kXHR_objs[inst].onreadystatechange();
		el.parentNode.removeChild(el);
	}else{
		delay*=1.5;
		setTimeout('XMLHttpRequest_checkState('+inst+','+delay+')',delay);
	}
}
