// JavaScript Document
var xmlhttp;
var queryString = null;
function getXMLHTTP(){
	//test for different cross browser compability
	var xmlhttp = null;
	try{
		/*if mozilla browser, safari or opera is used*/
		xmlhttp = new window.XMLHttpRequest();
	}
	catch(e){ 
		try{
			// for internet explorer
			xmlhttp = new window.ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(ex){
			xmlhttp = new window.ActiveXObject("Msxml2.XMLHTTP");
		}
	}
	return xmlhttp;
}
function fillTextBox(url,objprogress,obj, reqType, query,progresshtml){
	xmlhttp = getXMLHTTP();
	queryString = (query.length > 0) ? query : queryString;
	if(xmlhttp == null){
		alert("Your browser does not support this technology");
		return;
	}
	try{
		xmlhttp.open(reqType, url, true);
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4 || xmlhttp.readyState == "complete"){
				obj.value = xmlhttp.responseText;
				objprogress.innerHTML = '&nbsp;';				
			}
			else{
				objprogress.innerHTML = progresshtml;
			}
		};
		xmlhttp.send(queryString);
	}
	catch(err){
		alert(err.name + ' ' + err.message);
		return;
	}
	
}
//load options for a selection box
function LoadSelectionList(url, progress, obj, reqType, query,progresshtml, button){
	var xmlhttp = getXMLHTTP();
	if(xmlhttp == null){
		alert("your browser does not support this technology");
		return;
	}
	try{
		if(button != null){
			button.disabled = "disabled";
		}
		var xmldom;
		if(xmlhttp.overrideMimeType){
			xmlhttp.overrideMimeType('text/xml');
		}
		xmlhttp.open(reqType, url, true);
		xmlhttp.onreadystatechange = function (){
				if(xmlhttp.readyState == 4 || xmlhttp.readyState == "complete"){
					//if(xmlhttp.status == 200){ //should endeavor not to use this at the local level
						xmldom = xmlhttp.responseXML;
						//remove the former list
						//alert(xmlhttp.responseText);
						if(obj.options.length > 0){
							while(obj.options.length){
								obj.remove(0);
							}
						}
						try{
							var root = xmldom.documentElement || null;
							//return;
							if(root != null){
								var nodelist = root.getElementsByTagName('opt');
								//alert(nodelist.length);
								if(nodelist.length > 0){
									//read thru the list of returned xml values
									for(var i=0; i < nodelist.length; i++){
										var node = nodelist[i];
										var val = node.getAttribute("value");
										var text = node.firstChild.nodeValue;
										var opt = document.createElement("option");
										opt.value = val;
										opt.text = text;
										obj.options.add(opt);//add each option to the dropdown list
									}
								}
								else{
									var opt = document.createElement("option");
									opt.value = '';
									opt.text = "Not Available";
									obj.options.add(opt);
								}
							}//ends the checking
							else if(root == null || !root){
								var opt = document.createElement("option");
								opt.value = '';
								opt.text = "Not Available";
								obj.options.add(opt);
							}
						}
						catch(e){
							var opt = document.createElement("option");
							opt.value = '';
							opt.text = "Not Available";
							obj.options.add(opt);
						}
						progress.innerHTML = "&nbsp;";
						if(button != null){
							button.disabled = "";
						}
					//}
				}
				else{
					progress.innerHTML = progresshtml;
				}
		};
		xmlhttp.send(null);
		
	}
	catch(ex){
		alert(ex.name + ' ' + ex.message);
		return;
	}
}

//for submitting a form to the server
//header : type of date sending to the server for processing : application/x-www.urlencoded form
//value : the content type of the data sent
function submitForm(pageurl,progress, obj, reqType, query, progresshtml, header, value){
	var oxmlhttp = getXMLHTTP();
	if(oxmlhttp == null){
		alert("your browser does not support this technology");
		return;
	}
	try{
		oxmlhttp.open(reqType, pageurl, true);
		oxmlhttp.setRequestHeader(header, value);
		oxmlhttp.onreadystatechange = function (){
			if(oxmlhttp.readyState == 4 || oxmlhttp.readyState == 'complete'){
				obj.innerHTML = oxmlhttp.responseText;
				setObjState(progress,false,false);
			}
			else{
				progress.innerHTML = progresshtml;
			}
		};
		oxmlhttp.send(query);
	}
	catch(ex){
		alert(ex.name + ' ' + ex.message);
		return;
	}
}



/*retrieving information from the server*/
function InitRequest(url,objprogress,obj, reqType, query,progresshtml){
	xmlhttp = getXMLHTTP();
	queryString = (query.length > 0) ? query : queryString;
	if(xmlhttp == null){
		alert("Your browser does not support this technology");
		return;
	}
	try{
		xmlhttp.open(reqType, url, true);
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4 || xmlhttp.readyState == "complete"){
				obj.innerHTML = xmlhttp.responseText;
				objprogress.innerHTML = '&nbsp;';				
			}
			else{
				objprogress.innerHTML = progresshtml;
			}
		};
		xmlhttp.send(queryString);
	}
	catch(err){
		alert(err.name + ' ' + err.message);
		return;
	}
}
