//AJAX class

function AJAX(){

	//members of this class

	var objRequest;

	var page='';

	var eventHandler='';

	var __arguments='';

	

	//ajax intialize function

	this.getAJAX = function(url,method,qry,frm){

		//to avoid the cache file

		var dt=new Date();

		if(url.indexOf('?')==-1) url+='?';

		url=url+'&'+dt.getTime()

		page=url;

		//start the request

		if(window.XMLHttpRequest){

			objRequest = new XMLHttpRequest();	

				if(method=='post')

				{

						objRequest.onreadystatechange = this.processReqChange;

						objRequest.open("POST", url,true);

						objRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

							if(qry==""){qry="dt="+dt.getTime()}

								if(frm!="")

								{

									var ele = document.forms[frm].elements;

									for(i=0;i<ele.length;i++)

									{

										if( ele[i].name!="__VIEWSTATE")

										{

											if(ele[i].type=="text" || ele[i].type=="hidden" ||   ele[i].type=="password" ||  ele[i].type=="checkbox" ||  ele[i].type=="radio" || ele[i].type.indexOf("select")>=0 || ele[i].type=="textarea" )

											{

												if(ele[i].type=="radio" || ele[i].type=="checkbox")

												{

													if(ele[i].checked){qry = qry + "&" +ele[i].name +"="+ele[i].value;}

												}

												else

													qry = qry + "&" +ele[i].name +"="+ele[i].value;

											}

										}

										//alert(qry);

									}

								}

						objRequest.send(qry);   

				}

				else

				{

					objRequest.onreadystatechange = this.processReqChange;

					objRequest.open("GET", url, true);

					objRequest.send(null);

			}

		}else{

			if(window.ActiveXObject){

				objRequest = new ActiveXObject("Microsoft.XMLHTTP");

				if(objRequest){

					

					if(method=='post')

					{

								objRequest.onreadystatechange = this.processReqChange;

								objRequest.open("POST", url);

								objRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

								if(qry==""){qry="dt="+dt.getTime()}

								if(frm!="")

								{

									var ele = document.forms[frm].elements;

									for(i=0;i<ele.length;i++)

									{

										if( ele[i].name!="__VIEWSTATE")

										{

											

											if(ele[i].type=="text" || ele[i].type=="hidden" ||   ele[i].type=="password" ||  ele[i].type=="checkbox" ||  ele[i].type=="radio" || ele[i].type.indexOf("select")>=0 || ele[i].type=="textarea" )

											{

												if(ele[i].type=="radio" || ele[i].type=="checkbox")

												{

													if(ele[i].checked){qry = qry + "&" +ele[i].id +"="+ele[i].value;}

												}

												else

													qry = qry + "&" +ele[i].id +"="+ele[i].value;

											}

										}

									//	alert(qry);

									}

								}

								objRequest.send(qry);

					}

					else

					{

							objRequest.onreadystatechange = this.processReqChange;

							objRequest.open("GET", url, true);

							objRequest.send();

					}

					

					

				}

			}

		}

	}

	

	//ajax response part

	this.processReqChange = function(){

		this.response='';

		this.request;

		this.page=page;

		if(objRequest.readyState == 4){

			this.request=objRequest;

			

			if(eventHandler=='')

				eventHandler='_completed';

			var _function='';

			_function+='try{\n';

			_function+=eventHandler+'(';

			if(objRequest.status == 200){

				//if success

				//alert("Req:"+objRequest.responseText);

				this.response=objRequest.responseText

				_function+='this,true'

			}else{

				//if failed (or timeout)

				//alert("Req:"+objRequest.responseText);

				this.response=objRequest.responseText;

				_function+='this,false'

			}

			if(arguments!=''){

				_function+=','+__arguments;

			}

			_function+=');'

			_function+='\n';

			_function+='}catch(e){alert("error"+e);};';

			eval(_function);

		}

	}

	

	

	//ajax event handler

	this.setEventHandler = function(_fnname,_arguments){

		eventHandler=_fnname;

		__arguments=_arguments;

	}

}



function XMLDoc(divID,url){



	var req;

				

	this.loadXMLDoc = function(){

		

		if (window.XMLHttpRequest) {

		

			req = new XMLHttpRequest();

			req.onreadystatechange = this.processReqChange;

			req.open("GET", url, true);

			req.send(null);

		

		} else if (window.ActiveXObject) {

			req = new ActiveXObject("Microsoft.XMLHTTP");

			if (req) {

				req.onreadystatechange = this.processReqChange;

				req.open("GET", url, true);

				req.send();

			}

		}

	}

	

		this.processReqChange = function(){

		

		if (req.readyState == 4) {

		    

		    if (req.status == 200) {

		        

		        var objdivId = document.getElementById(divID);

		        if(objdivId){

		        var res = req.responseText;

		        if(res!=''){

							document.getElementById(divID).innerHTML=res;

							}else{

							objdivId.style.display='none';}

		        }

		    } else {

		        

		        if(document.getElementById(divID)){

							document.getElementById(divID).innerHTML = "Loading failed! <br><a href='" + url + "' target=_blank>" + url + "</a>";

						}

		    }

		}

	}

}





function XMLDoc(divID,url){



	var req;

				

	this.loadXMLDoc = function(){

		

		if (window.XMLHttpRequest) {

		

			req = new XMLHttpRequest();

			req.onreadystatechange = this.processReqChange;

			req.open("GET", url, true);

			req.send(null);

		

		} else if (window.ActiveXObject) {

			req = new ActiveXObject("Microsoft.XMLHTTP");

			if (req) {

				req.onreadystatechange = this.processReqChange;

				req.open("GET", url, true);

				req.send();

			}

		}

	}

	

		this.processReqChange = function(){

		

		if (req.readyState == 4) {

		    

		    if (req.status == 200) {

		        

		        var objdivId = document.getElementById(divID);

		        if(objdivId){

		        var res = req.responseText;

		        if(res!=''){

							document.getElementById(divID).innerHTML=res;

							}else{

							objdivId.style.display='none';}

		        }

		    } else {

		        

		        if(document.getElementById(divID)){

							document.getElementById(divID).innerHTML = "Loading failed! <br><a href='" + url + "' target=_blank>" + url + "</a>";

						}

		    }

		}

	}

}

		

function ajax(page,divid){

	if(page.indexOf('?')==-1) page+='?';

	var dt=new Date();

	var xml=new XMLDoc(divid,page+'&'+dt.getTime(),"alert('Loaded');");

	xml.loadXMLDoc();

}



