var _xmlHttp;
var _innerHtmlId = "";
var _isMouseDown;
function query2array(str){
	var arr = str.split('&');
	var nArr = [];
	var i = 0;
	var kv;
	for(i=0;i<arr.length;i++){
		if(arr[i] && arr[i] !== '' && arr[i] !== ' '){
			kv = arr[i].split('=');
			nArr[kv[0]] = kv[1];
		}
	}	
	return nArr;
}
function stateChanged(){ 
	if (_xmlHttp.readyState==4 || _xmlHttp.readyState=="complete"){ 
		document.getElementById(_innerHtmlId).innerHTML=_xmlHttp.responseText;
	} 
}
function getXmlHttpObject(){
	_xmlHttp=null;
	try{
		_xmlHttp=new XMLHttpRequest();
	}catch (e){
		try{
			_xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			_xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return _xmlHttp;
}
function ajax(id, phpUrl, getString){ 	
	_innerHtmlId = id;
	_xmlHttp=getXmlHttpObject();
	if (_xmlHttp===null){
	 alert ("Browser does not support HTTP Request");
	 return;
	}
	var url=phpUrl;
	url=url+"?randCacheNumIntVal="+Math.random()+"&";
	url=url+getString;
	_xmlHttp.onreadystatechange=stateChanged;
	_xmlHttp.open("GET",url,true);
	_xmlHttp.send(null);
}
function run(f, phpUrl, pString, secure, hdr){
	if(secure === undefined){
		secure = false;
	}
	if(hdr === undefined){
		hdr = false;
	}
	if(pString === undefined){
		pString = "";
	}
	_xmlHttp=getXmlHttpObject();
	if (_xmlHttp===null){
	 alert ("Browser does not support HTTP Request");
	 return;
	}
	var url;
	if(secure){
		url='https://secure.server.com/srunjax/'+phpUrl+'.php';
	}else{
		url='http://www.server.com/runjax/'+phpUrl+'.php';
	}
	url=url+"?randVal="+Math.random()+"&";
	_xmlHttp.open("POST",url,true);
	_xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	_xmlHttp.setRequestHeader("Content-length", pString.length);
	_xmlHttp.setRequestHeader("Connection", "close");
	if(f){
		_xmlHttp.onreadystatechange = function() {
			if(_xmlHttp.readyState == 4 && _xmlHttp.status == 200){
				if(hdr){
					f(_xmlHttp.responseText, false, hdr);
				}else{
					f(_xmlHttp.responseText);
				}
			}
		};
	}
	_xmlHttp.send(pString);
}
function changeBtn(id, direction){
	var imgL = dig(id+"_left");
	var imgC = dig(id+"_center");
	var imgR = dig(id+"_right");
	var from;
	var to;
	switch(direction){
		case "over":
			from = "/up/";
			to = "/over/";
		break;
		case "up":
			from = "/over/";
			to = "/up/";
		break;
		case "down":
			from = "/over/";
			to = "/down/";
		break;
	}
	if(to == "/down/"){
		imgC.style.paddingTop = '2px';
	}else{
		imgC.style.paddingTop = '0px';
	}
	if(_isMouseDown){
		imgL.src = imgL.src.split('/down/').join(to);
		imgR.src = imgR.src.split('/down/').join(to);
		imgC.style.backgroundImage = imgC.style.backgroundImage.split('/down/').join(to);
	}else{
		imgL.src = imgL.src.split(from).join(to);
		imgR.src = imgR.src.split(from).join(to);
		imgC.style.backgroundImage = imgC.style.backgroundImage.split(from).join(to);
	}
}
function loadBtn(dir){
	document.body.onmousedown = function(){
		_isMouseDown = true;	
	}
	document.body.onmouseup = function(){
		_isMouseDown = false;	
	}
	var loimg = new Image();
	loimg.src = dir+'/over/left.gif';
	var coimg = new Image();
	coimg.src = dir+'/over/center.gif';
	var roimg = new Image();
	roimg.src = dir+'/over/right.gif';
	var ldimg = new Image();
	ldimg.src = dir+'/down/left.gif';
	var cdimg = new Image();
	cdimg.src = dir+'/down/center.gif';
	var rdimg = new Image();
	rdimg.src = dir+'/down/right.gif';
}
function submitForm(id){
	var i = 0;
	for(i=0;i<document.forms.length;i++){
		if(document.forms[i][id]){
			document.forms[i].submit();
		}
	}
}
function selectRow(table,rid,input,val,e){
	var x;
	if(e){
		x = e.ctrlKey;
	}else{
		x = false;	
	}
	var i = 0;
	for(i=0;i<document.getElementById(table).rows.length;i++){
		if(document.getElementById(table).rows[i].id == rid){
			if(x && document.getElementById(table).rows[i].className=='dataGridRowSelected'){
		   		document.getElementById(table).rows[i].className='dataGridRow';
			}else{
		   		document.getElementById(table).rows[i].className='dataGridRowSelected';
			}
		}else{
			if(!x){
		   		document.getElementById(table).rows[i].className='dataGridRow';
			}
		}
	}
	if(!x){
		document.getElementById(input).value=val;
	}else{
		var varr = document.getElementById(input).value.split(",");
		var vstr = ","+varr+",";
		if(vstr.indexOf(","+val+",") == -1){
			varr.push(val);
			document.getElementById(input).value = varr.join(",");
		}else{
			var nstr = vstr.replace(","+val+",", ",");
			document.getElementById(input).value = nstr.substring(1,nstr.length-1);
		}
		if(document.getElementById(input).value.substring(0,1) == ","){
			document.getElementById(input).value = document.getElementById(input).value.substr(1);
		}
	}
}
function sortNumber(a, b){
	a = parseFloat(a);
	b = parseFloat(b);
	return a - b;
}
function sortAlphabetical(a, b){
     var varA = String(a).toLowerCase();
     var varB = String(b).toLowerCase();
     if (varA < varB){
        return -1;
     }else if (varA > varB){
       return 1;
     }else{
       return 0;
     }
}
function isNumeric(sText){
	var ValidChars = "-0123456789.";
	var IsNumber=true;
	var Char;
	var c = 0;
	sText = sText.split("&nbsp;").join("");
	sText = sText.split(" ").join("");
	for (c = 0; c < sText.length && IsNumber === true; c++){ 
		Char = sText.charAt(c); 
		if ((c === 0) && (Char === "-")){
			continue;
		}
		if (ValidChars.indexOf(Char) === -1){
			IsNumber = false;
		}
	}
	return IsNumber;
}
function sortDataGrid(tabldid, cellnum, obj, dir, arrow){
	var order;
	if(obj.innerHTML.indexOf(String.fromCharCode(8595)) > 0){
		order = 0;
	    obj.innerHTML = obj.innerHTML.replace(String.fromCharCode(8595), String.fromCharCode(8593));
	}else{
		if(obj.innerHTML.indexOf(String.fromCharCode(8593)) > 0){
			order = 1;
	    	obj.innerHTML = obj.innerHTML.replace(String.fromCharCode(8593), String.fromCharCode(8595));
		}else{
			order = 0;
			if(dir=="DESC"){
				obj.innerHTML = obj.innerHTML+" "+String.fromCharCode(8595);
			}else if(arrow === true){
				obj.innerHTML = obj.innerHTML+" "+String.fromCharCode(8593);
			}
		}
	}
	var n = 0;
	for(n=0;n<obj.parentNode.cells.length;n++){
		if(obj.parentNode.cells[n] != obj){
			obj.parentNode.cells[n].innerHTML = obj.parentNode.cells[n].innerHTML.replace(String.fromCharCode(8593), '');
			obj.parentNode.cells[n].innerHTML = obj.parentNode.cells[n].innerHTML.replace(String.fromCharCode(8595), '');
		}
	}
	var tb = document.getElementById(tabldid);
	var arr = [];
	var sNumeric = true;
	var i = 0;
	for(i=0;i<tb.rows.length;i++){
		arr[i] = [];
		arr[i][0] = tb.rows[i].cells[cellnum].innerHTML;
		if(!isNumeric(tb.rows[i].cells[cellnum].innerHTML)){
			sNumeric = false;
		}
		arr[i][1] = tb.rows[i].id;
		arr[i][2] = i;
	}
	if(sNumeric){
		arr.sort(sortNumber);
	}else{
		arr.sort(sortAlphabetical);
	}
	var newRows = [];
	for(i=0;i<arr.length;i++){
	  newRows[i] = document.getElementById(tabldid).rows[arr[i][2]];
	}
	for(i=0;i<newRows.length;i++){
		if(dir==="DESC" || order===1){
			document.getElementById(tabldid).insertBefore(newRows[i], document.getElementById(tabldid).rows[0]);
		}else{
	    	document.getElementById(tabldid).insertBefore(newRows[i], null);
		}
	}
}
function popup(url,w,h,s) {
	if(s === undefined){
		s = 'yes';
	}
	if(s === false){
		s = 'no';
	}
  	window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars='+s+',resizable=yes,copyhistory=no,width='+w+',height='+h+',screenX=300,screenY=300,top=150,left=150');
}
function loadImage(id, sc, at, lnk){
	if(lnk === undefined){
		lnk = false;
	}
	var obj = document.getElementById(id);
	obj.onload = function(){
		if(lnk){
			obj.parentNode.parentNode.style.background='';
		}else{
			obj.parentNode.style.background='';
		}
		obj.alt = at;
	}
	obj.src = sc;
}
function numOnly(elem){
	var val = elem.value;
	if(val.indexOf(',') > -1){
		val = val.split(',').join('');
	}
	if(isNaN(val)){
		elem.value=0;
	}
}
function monOnly(elem){
	var val = elem.value;
	if(val.indexOf(',') > -1){
		val = val.split(',').join('');
	}
	if(isNaN(val)){
		elem.value='0.00';
	}
}
function dig(id){
	var elem = document.getElementById(id);
	return elem;
}
function dump(arr,level) {
	var dumped_text = "";
	if(level === undefined){
		level = 0;
	}
	var level_padding = "";
	for(var j=0;j<level+1;j++){
		level_padding += "\t";
	}
	
	if(typeof(arr) == 'object') {
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') {
				dumped_text += level_padding + "[" + item + "] = Array(\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "[" + item + "] => " + value + ";\n";
			}
		}
	} else {
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}
function show(arr) {
	alert(dump(arr));	
}