function $(){
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++){
		var element = arguments[i];
		if (typeof element == 'string') element = document.getElementById(element);
		if (arguments.length == 1) return element;
		elements.push(element);
	}
	return elements;
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

function togglecheck(init,name) {
	var inputElements = document.getElementsByName(name);
	for (var i=0; inputElements[i]; i++){
		if(init.checked==false){
			inputElements[i].checked=false;
		}else{
			inputElements[i].checked=true;
		}
	}
}

function getElementsByClassName(classname,tag) {
	if(!tag) tag = "*";
	var nodes =  document.getElementsByTagName(tag);
	var regexp = new RegExp('\\b' + classname + '\\b');
	var classItems = new Array();
	for(var i=0; nodes[i]; i++) {
		var thisItem = nodes[i];
		if(regexp.test(thisItem.className)) classItems.push(thisItem);
	}
	return classItems;
}

function confirmAction(text) {
	if (confirm(text)) return true;
	return false;
}

function deleteSelected(selectname,actionid){
	var selectElement = document.getElementsByName(selectname);
	var checked = -1;
	for (i=0; selectElement[i]; i++){
		if(selectElement[i].checked) checked = i;
	};
	if(checked == -1){
		alert("Please select a record.");
		return false;
	}else{
		$(actionid).value = 'delete';
		return confirmAction('Are you sure you want to delete these records? It will be unretrievable.');
	};
	return false;
}

function deleteAll(actionid){
	$(actionid).value = 'deleteall';
	return confirmAction('Are you sure you want to delete ALL records in this table? It will be unretrievable.');
}

function redirectForm(formid,formAction){
	f = $(formid);
	f.action = formAction;
	f.submit();
}

function getUrlParam(name){
	var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
	var tmpURL = window.location.href;
	var results = regex.exec(tmpURL.toLowerCase());
	if( results == null ) return null;
	return results[1];
}

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) return true;
	}
	return false;
};

function toggle(obj) {
	var el = $(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}else {
		el.style.display = '';
	}
}

function hide(obj) {
	var el = $(obj);
	el.style.display = 'none';
}

function show(obj) {
	var el = $(obj);
	el.style.display = '';
}

function bookmarksite(title, url){
	if (document.all){	
		window.external.AddFavorite(url, title);
	}else if (window.sidebar){
		window.sidebar.addPanel(title, url, "");
	}
}

function highlightRow(element,classname){
	if(element.className == classname){
		element.className = "";
	}else{
		element.className = classname;
	}
}

function turnoffAutoComplete(){
	var inputElements = document.getElementsByTagName("input");
	for (i=0; inputElements[i]; i++){
		inputElements[i].setAttribute("autocomplete","off");
	}	
}

function isdefined(variable){
    return (typeof(window[variable]) == "undefined") ? false: true;
}

function trim(s){
	return s.toString().replace(/^\s*/, '');	
}

function makePOSTRequest( url, parameters ) {
	http_request = false;
	if (window.XMLHttpRequest) { 
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) http_request.overrideMimeType('text/html');
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) return false;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}
