callAjaxExecuting=false;
callAjaxQ=new Array();
function addToCallAjaxQ(url, data, func){
	var newEl={"strURL":url,"strPostData":data,"thefunction":func};
	callAjaxQ.splice(callAjaxQ.length, 0, newEl);
}
function executeFromCallAjaxQ(){
	if(callAjaxQ.length==0) return;
	var newEl=callAjaxQ[0];
	callAjax(newEl.strURL, newEl.strPostData, newEl.thefunction);
	callAjaxQ.splice(0,1);
}
function callAjax(strURL,strPostData,thefunction) {
	if(callAjaxExecuting){
		addToCallAjaxQ(strURL, strPostData, thefunction);
		return;
	}
	callAjaxExecuting=true;
    var xmlHttpReq = false;
    var self = this;
	var msg="";
    // Mozilla/Safari
	
	var www=(window.location.href.toLowerCase().indexOf("//www.")>0)?"http://www.":"http://";
	var strURL=strURL.replace("http://",www);

    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
		
        if (self.xmlHttpReq.readyState == 4) 
		{
        	callAjaxExecuting=false;
        	if(self.xmlHttpReq.status != 200 && !userLeavingPage){
        		alert('OOPS! Connection Error.\nPlease Check your Internet Connection.');
        		return;
        	}
        	if(self.xmlHttpReq.responseText=='[{"status":0,"msg":"Your Session seems to have expired. Please try refreshing the page to login again."}]'){
        		alert('Your Session seems to have expired. Please try refreshing the page to login again.');
        		thefunction('');
        		return;
        	}
			thefunction(self.xmlHttpReq.responseText);
			setTimeout('executeFromCallAjaxQ();', 1000) ;
		}
		else
		{
			//alert(self.xmlHttpReq.readyState);
		}
    }
	
    self.xmlHttpReq.send(strPostData);
}

function selectDropDownValue(el, val){
	if(!el) return;
	for(var i=0; i<el.options.length; i++){
		if(el.options[i].value==val){
			el.selectedIndex=i;
			return;
		}
	}
}

function selectCheckBoxes(els, vals){
	if(!els) return;
	if(!els.length){
		for(var j=0; j<vals.length; j++){
			els.checked=false;
			if(els.value==vals[j]) els.checked=true;
		}
		return;
	}
	
	for(var i=0; i<els.length; i++){
		els[i].checked=false;
		for(j=0; j<vals.length;j++){
			if(els[i].value==vals[j]) els[i].checked=true;
		}
	}
}

function selectRadioButtonValue(el, val){
	if(!el) return;
	for(var i=0; i<el.length; i++){
		if(el[i].value==val){
			el[i].checked=true;
			return;
		}
	}
	el[0].checked=true;
}

function getFrmData(frm){
	var data='';
	for(var i=0; i<frm.elements.length; i++){
		if(frm.elements[i].type){
			if(frm.elements[i].type.toUpperCase()=='CHECKBOX'){
				if(!frm.elements[i].checked) continue;
			}
		}
		if(frm.elements[i].type){
			if(frm.elements[i].type.toUpperCase()=='RADIO'){
				if(!frm.elements[i].checked) continue;
			}
		}
		if(data != '') data += '&';
		data += frm.elements[i].name + '=' + encodeURIComponent(frm.elements[i].value);
	}
	return(data);
}

function submitAutoPagination(frm, page){
	frm.page.value=page;
	var listDisplayDiv=frm.listDisplayDiv.value;
	var listAjaxPage=frm.listAjaxPage.value;
	var data=getFrmData(frm);
	$('#' + listDisplayDiv).html('<img src="facebox/loading.gif">');
	
	callAjax(listAjaxPage, data, function(t){
		$('#' + listDisplayDiv).html(t);
	});
}