/*
url-loading object and a request queue built on top of it
*/

/* namespacing object */
var net=new Object();

net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;


/*--- content loader object for cross-browser requests ---*/
net.ContentLoader=function(url,onload,onerror,method,params,contentType){
  this.req=null;
  this.onload=onload;
  this.onerror=(onerror) ? onerror : this.defaultError;
  this.loadXMLDoc(url,method,params,contentType);
}

net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){
  if (!method){
    method="GET";
  }
  if (!contentType && method=="POST"){
    contentType='application/x-www-form-urlencoded';
  }
  if (window.XMLHttpRequest){
    this.req=new XMLHttpRequest();
  } else if (window.ActiveXObject){
    this.req=new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  if (this.req){
  	
    try{
      var loader=this;
      this.req.onreadystatechange=function(){
        net.ContentLoader.onReadyState.call(loader);
      }
	  //alert("33333333");
	  //alert(method+"  "+url)
      this.req.open(method,url,true);
	  //alert("44444");
      if (contentType){
        this.req.setRequestHeader('Content-Type', contentType);
      }
	  //alert(params);
      this.req.send(params);

    }catch (err){
      this.onerror.call(this);
    }
  }
}


net.ContentLoader.onReadyState=function(){
  var req=this.req;
  var ready=req.readyState;
  if (ready==net.READY_STATE_COMPLETE){
    var httpStatus=req.status;
    if (httpStatus==200 || httpStatus==0){
      this.onload.call(this);
    }else{
      this.onerror.call(this);
    }
  }
}

net.ContentLoader.prototype.defaultError=function(){
  alert("!!!error fetching data!"
    +"\n\nreadyState:"+this.req.readyState
    +"\nstatus: "+this.req.status
	 +"\nreq: "+this.req
    +"\nheaders: "+this.req.getAllResponseHeaders());
}



	function FillCity(oElement){
		document.Form1.hcity.value=oElement.options[oElement.selectedIndex].value;
	}
	function FillCnty(oElement){
		//alert(oElement);
		document.Form1.hC.value=oElement.options[oElement.selectedIndex].value;
	}
	function FillCountry(oElement,oTarget,url){
		var strValue= oElement.value;
		//alert(strValue);
		//document.Form1.hC.value=strValue;
		var strParams="q="+strValue+"&f="+oTarget.form.name+"&e="+oTarget.name;
		//alert(strParams);
		var loader1 = new  net.ContentLoader(url,FillDropDown,null,"POST",strParams);
	}
	
	function FillRegion(oElement,oTarget,url){
		var strValue= oElement.options[oElement.selectedIndex].value;
		document.Form1.hC.value=strValue;
		var strParams="q="+strValue+"&f="+oTarget.form.name+"&e="+oTarget.name;
		var loader1 = new  net.ContentLoader(url,FillDropDown,null,"POST",strParams);
	}
	
	function FillDropDown(){
		var xmlDoc = this.req.responseXML.documentElement;
		var xSel = xmlDoc.getElementsByTagName('selectElement')[0];
		var strFName = xSel.childNodes[0].firstChild.nodeValue;
		var strEName = xSel.childNodes[1].firstChild.nodeValue;
		var objDDL = document.forms[strFName].elements[strEName];
		objDDL.options.length = 0;
		var xRows = xmlDoc.getElementsByTagName('entry');
		for(i=0;i<xRows.length;i++){
			var theText = xRows[i].childNodes[0].firstChild.nodeValue;
			var theValue = xRows[i].childNodes[1].firstChild.nodeValue;
			var option = new Option(theText,theValue);
			try{
				objDDL.add(option,null);
				}catch (e){
					objDDL.add(option,-1);
				}
			}
		}
		
		function testform(){
			if(document.Form1.hC.value==""){alert("Выберите страну");return false}
			
			if(document.Form1.hcity.value==""){alert("Выберите город");return false}
				
			//alert(document.Form1.hC.value);
			//alert(document.Form1.hcity.value);
			document.Form1.submit();
			return false;
		}
