
   var http_request = false;
   
    var xmltext ="";
    
    var vError="N";
   
   
   function makePOSTRequest(method,url, parameters) {
      http_request = false;
      if(window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
               // Set type accordingly to anticipated content type.
            http_request.overrideMimeType('text/xml');
            // http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         } 
      }
      if (!http_request) {
         alert('Cannot create XMLHttpRequest object');
         return false;
      }

      http_request.onreadystatechange = handleRequest;
     // http_request.open(method, url, true);

     if(method=='GET'){
                 http_request.open(method, url+parameters, true);
                 http_request.setRequestHeader("Content-type", "text/xml");
                 http_request.setRequestHeader("Content-length", parameters.length);
                 http_request.setRequestHeader("Connection", "close");
                 http_request.send(null);
         }
     if(method=='POST')  {
                 http_request.open(method, url, true);
                 http_request.setRequestHeader("Content-type", "text/xml");
                 //http_request.setRequestHeader("Content-length", parameters.length);
                 //http_request.setRequestHeader("Connection", "close");
                 http_request.send(parameters);
         }
     if(method=='PUT')  {
                 http_request.open(method, url, true);
                 http_request.setRequestHeader("Content-type", "text/xml");
                 http_request.setRequestHeader("Content-length", parameters.length);
                 http_request.setRequestHeader("Connection", "close");
                 http_request.send(parameters);
         }
     if(method=='DELETE')  {
                 http_request.open(method, url+parameters, true);
                 http_request.setRequestHeader("Content-type", "text/xml");
                 http_request.setRequestHeader("Content-length", parameters.length);
                 http_request.setRequestHeader("Connection", "close");
                 http_request.send(null);
         }
}



function handleRequest() {
	//alert('here '+http_request.readyState);
   	if (http_request.readyState == 4) {
      		if (http_request.status == 200) {
        
        		result = http_request.responseText;
        		//alert('result '+result);
        		
        		//validate xml first
			validateXML(result);
			
			
			
			//let's load the xml in DOM
		        if (window.DOMParser)
			  {
			  	
			  parser=new DOMParser();
				  try{
				  	
				  	xmlDoc=parser.parseFromString(result,"text/xml");
				  	//alert(http_request.responseText.length);
				  }catch(err){
					//alert("error1 "+err.description);
					document.getElementById("error").innerHTML="ERROR: "+err.description;
					//enable button
					document.getElementById("spinnercontainer").style.display = "none";
				  }
			  }
			else // Internet Explorer
			  {
			  	
			  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			  xmlDoc.async="false";
				  try{
				  	xmlDoc.loadXML(result);
				  }catch(err){
					//alert("error2 "+err.description);
					document.getElementById("error").innerHTML="ERROR: "+err.description;
					//enable button
					document.getElementById("spinnercontainer").style.display = "none";
				  }
			  } 
			
			
			
			//alert('Response received from server:\n'+http_request.responseText);
			populateResults(xmlDoc);
			
			
        		
		} else {
		      
		      //enable button
		      document.getElementById("spinnercontainer").style.display = "none";
		      document.getElementById("error").innerHTML =http_request.responseText;
		      }
   		}
}



  
   
   
   
   
   
   
   function submitRMIRequest(){
   	//alert('test');
   	document.getElementById("error").innerHTML="";
   	//document.getElementById("spinnercontainer").innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<image src='img/loader.gif'/>";
   	//alert('test2');
   	if (document.loginform.login.value == ""){
   		//alert("UserID is required");
   		document.getElementById("error").innerHTML="UserID is required";
   		//document.getElementById("error").visibility="visible";
   		document.loginform.login.focus();
   	}else if (document.loginform.pswd.value == ""){
   		//alert("Password is required");
   		document.getElementById("error").innerHTML="Password is required";
   		//document.getElementById("error").visibility="visible";
   		document.loginform.pswd.focus();
   	}else{
   	
	   	vError="N";
	   	
	   	//document.forms[0].commit.disabled=true;
		//document.getElementById("spinnercontainer").innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<image src='img/loader.gif'/>";
		//document.getElementById("spinnercontainer").innerHTML ="test";
		
		document.getElementById("spinnercontainer").style.display = "block";
		
		
		createXML();
		//alert(xmltext);
		var url= "rmi_service/login_rmi.asp";
		makePOSTRequest('POST',url , xmltext);
	}
	
	

  }   



  function createXML(){
	
	xmltext = "<?xml version='1.0'?>";
	xmltext += "<Login>";
    	//user requested element
    	xmltext +="<Userid>";
    		xmltext +=document.loginform.login.value;
    	xmltext +="</Userid>";
    	xmltext +="<Password>";
    		xmltext +=document.loginform.pswd.value;
    	xmltext +="</Password>";
    	
    	xmltext +="<BrowserCodename>";
    		xmltext +=document.loginform.browser_codename.value;
    	xmltext +="</BrowserCodename>";
    	xmltext +="<BrowserName>";
    		xmltext +=document.loginform.browser_name.value;
    	xmltext +="</BrowserName>";
    	xmltext +="<AppVersion>";
    		xmltext +=document.loginform.browser_version.value;
    	xmltext +="</AppVersion>";
    	xmltext +="<BrowserCookiesEnabled>";
    		xmltext +=document.loginform.browser_cookies_enabled.value;
    	xmltext +="</BrowserCookiesEnabled>";
    	xmltext +="<Platform>";
    		xmltext +=document.loginform.platform.value;
    	xmltext +="</Platform>";
    	xmltext +="<UserAgent>";
    		xmltext +=document.loginform.useragent.value;
    	xmltext +="</UserAgent>";
    	xmltext +="<ScreenWidth>";
    		xmltext +=document.loginform.screenwidth.value;
    	xmltext +="</ScreenWidth>";
    	xmltext +="<ScreenHeight>";
    		xmltext +=document.loginform.screenheight.value;
    	xmltext +="</ScreenHeight>";
    	xmltext +="<Browser>";
    		xmltext +=document.loginform.browser.value;
    	xmltext +="</Browser>";
    	xmltext +="<BrowserVersion>";
    		xmltext +=document.loginform.browserversion.value;
    	xmltext +="</BrowserVersion>";
    	
    	
    	
    	
    	xmltext +="</Login>";
  }
  
  
  
  
  
  
  
  
  
  
  
  function populateResults(xmlDoc){
	//alert(xmlDoc);
	var vPrevFieldDescription="";
	var vCounter=0;
	var vHTML="";

	x=xmlDoc.getElementsByTagName("Element");
	
	if (x.length==0){
		document.getElementById("error").innerHTML="Userid/Password not found or valid.";
		document.getElementById("spinnercontainer").style.display = "none";
	}else{

		for (i=0;i<x.length;i++)
		  {
		  
		  	//alert('test'+x[i].childNodes[0].nodeValue);
		  	//alert(x[i].nodeName);
		  	//alert(x[i].getElementsByTagName("Fieldno").nodeValue);
		  	
		  	//alert(x[i].getElementsByTagName("Groupid")[0].childNodes[0].nodeValue);
		  	
		  	
		  	document.login_passthru.userid.value=x[i].getElementsByTagName("Userid")[0].childNodes[0].nodeValue;
		  	document.login_passthru.password.value=x[i].getElementsByTagName("Userpassword")[0].childNodes[0].nodeValue;
		  	document.login_passthru.groupid.value=x[i].getElementsByTagName("Groupid")[0].childNodes[0].nodeValue;
		  	if (x[i].getElementsByTagName("Companyalias")[0].hasChildNodes()){
		  		document.login_passthru.companyalias.value=x[i].getElementsByTagName("Companyalias")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.companyalias.value="";
		  	}
		  	
		  	if (x[i].getElementsByTagName("Active")[0].hasChildNodes()){
		  		document.login_passthru.active.value=x[i].getElementsByTagName("Active")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.active.value="N";
		  	}
		  	if (x[i].getElementsByTagName("Sharequeries")[0].hasChildNodes()){
		  		document.login_passthru.sharequeries.value=x[i].getElementsByTagName("Sharequeries")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.sharequeries.value="N";
		  	}
		  	if (x[i].getElementsByTagName("UserAgreementAccepted")[0].hasChildNodes()){
		  		document.login_passthru.useragreementaccepted.value=x[i].getElementsByTagName("UserAgreementAccepted")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.useragreementaccepted.value="N";
		  	}
		  	
		  	//set geos
		  	if (x[i].getElementsByTagName("DBList1")[0].hasChildNodes()){
		  		document.login_passthru.dblist1.value=x[i].getElementsByTagName("DBList1")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.dblist1.value="";
		  	}
		  	if (x[i].getElementsByTagName("DBList2")[0].hasChildNodes()){
		  		document.login_passthru.dblist2.value=x[i].getElementsByTagName("DBList2")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.dblist2.value="";
		  	}
		  	
		  	
		  	if (x[i].getElementsByTagName("DMAList1")[0].hasChildNodes()){
		  		document.login_passthru.dmalist1.value=x[i].getElementsByTagName("DMAList1")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.dmalist1.value="";
		  	}
		  	if (x[i].getElementsByTagName("DMAList2")[0].hasChildNodes()){
		  		document.login_passthru.dmalist2.value=x[i].getElementsByTagName("DMAList2")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.dmalist2.value="";
		  	}
		  	
		  	
		  	
		  	
		  	if (x[i].getElementsByTagName("CBSAList1")[0].hasChildNodes()){
		  		document.login_passthru.cbsalist1.value=x[i].getElementsByTagName("CBSAList1")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.cbsalist1.value="";
		  	}
		  	if (x[i].getElementsByTagName("CBSAList2")[0].hasChildNodes()){
		  		document.login_passthru.cbsalist2.value=x[i].getElementsByTagName("CBSAList2")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.cbsalist2.value="";
		  	}
		  	
		  	
		  	if (x[i].getElementsByTagName("STList1")[0].hasChildNodes()){
		  		document.login_passthru.stlist1.value=x[i].getElementsByTagName("STList1")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.stlist1.value="";
		  	}
		  	if (x[i].getElementsByTagName("STList2")[0].hasChildNodes()){
		  		document.login_passthru.stlist2.value=x[i].getElementsByTagName("STList2")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.stlist2.value="";
		  	}
		  	if (x[i].getElementsByTagName("STList3")[0].hasChildNodes()){
		  		document.login_passthru.stlist3.value=x[i].getElementsByTagName("STList3")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.stlist3.value="";
		  	}
		  	
		  	
		  	if (x[i].getElementsByTagName("CTYList1")[0].hasChildNodes()){
		  		document.login_passthru.ctylist1.value=x[i].getElementsByTagName("CTYList1")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.ctylist1.value="";
		  	}
		  	if (x[i].getElementsByTagName("CTYList2")[0].hasChildNodes()){
		  		document.login_passthru.ctylist2.value=x[i].getElementsByTagName("CTYList2")[0].childNodes[0].nodeValue;
		  	}else{
		  		document.login_passthru.ctylist2.value="";
		  	}
		  	
		  	
		  	
		  	
		  	
		  	
		  	/*
		  	document.login_passthru.dblist1.value=x[i].getElementsByTagName("DBList1")[0].childNodes[0].nodeValue;
		  	document.login_passthru.dblist2.value=x[i].getElementsByTagName("DBList2")[0].childNodes[0].nodeValue;
		  	document.login_passthru.dmalist1.value=x[i].getElementsByTagName("DMAList1")[0].childNodes[0].nodeValue;
		  	document.login_passthru.dmalist2.value=x[i].getElementsByTagName("DMAList2")[0].childNodes[0].nodeValue;
		  	document.login_passthru.cbalist1.value=x[i].getElementsByTagName("CBAList1")[0].childNodes[0].nodeValue;
		  	document.login_passthru.cbalist2.value=x[i].getElementsByTagName("CBAList2")[0].childNodes[0].nodeValue;
		  	document.login_passthru.stlist1.value=x[i].getElementsByTagName("STList1")[0].childNodes[0].nodeValue;
		  	document.login_passthru.stlist2.value=x[i].getElementsByTagName("STList2")[0].childNodes[0].nodeValue;
		  	document.login_passthru.stlist3.value=x[i].getElementsByTagName("STList3")[0].childNodes[0].nodeValue;
		  	document.login_passthru.ctylist1.value=x[i].getElementsByTagName("CTYList1")[0].childNodes[0].nodeValue;
		  	document.login_passthru.ctylist2.value=x[i].getElementsByTagName("CTYList2")[0].childNodes[0].nodeValue;
		  	*/
		  	
		  	// Turn < and > into &lt; and &gt; for displaying on the page.
		        //result = result.replace(/\<([^!])/g, '&lt;$1');
		        //result = result.replace(/([^-])\>/g, '$1&gt;');
		
			
			
			vCounter++;
			
			
			
		} //end looping through elements
		
		
		if (vCounter>0){
			
			//confirm('test');
			//$("#windowDiv").modal();
			//showLiability();
			
			if (document.login_passthru.useragreementaccepted.value != "Y"){
			
				$('#windowDiv').modal();
			}else{
				document.login_passthru.submit();
				//submitSetSessionsRMIRequest();
			}

	                
		
		}
	
		
		
		
		document.getElementById("spinnercontainer").style.display = "none";
		
	}
	
	
	
	
}
  
 
 
 

  
  
  
  
  

 function validateXML(xml)
{
// code for IE
if (window.ActiveXObject)
  {
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(xml);

  if(xmlDoc.parseError.errorCode!=0)
    {
    txt="Error Code: " + xmlDoc.parseError.errorCode + "\n";
    txt=txt+"Error Reason: " + xmlDoc.parseError.reason;
    txt=txt+"Error Line: " + xmlDoc.parseError.line;
    //alert(txt);
    document.getElementById("searcherror").innerHTML=txt;
    }
  //else
    //{
    //alert("No errors found");
    //}
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation.createDocument)
  {
var parser=new DOMParser();

var xmlDoc=parser.parseFromString(xml,"text/xml");

if (xmlDoc.getElementsByTagName("parsererror").length>0)
    {
    checkErrorXML(xmlDoc.getElementsByTagName("parsererror")[0]);
    //alert(xt)
    // Turn < and > into &lt; and &gt; for displaying on the page.
	xt = xt.replace(/\<([^!])/g, '&lt;$1');
	xt = xt.replace(/([^-])\>/g, '$1&gt;');
	//var tempxt= "<table><tr><td>"+xt+"</td></tr></table>";
    	document.getElementById("searcherror").innerHTML=xt;
    }
  //else
    //{
    //alert("No errors found");
    //}
  }
else
  {
  alert('Your browser cannot handle XML validation');
  }
}

   
 function checkErrorXML(x)
{
	vError="Y";
	xt=""
	h3OK=1
	checkXML(x)

}

function checkXML(n)
{
	var l,i,nam
	nam=n.nodeName
	if (nam=="h3")
	{
	if (h3OK==0)
		{
		return;
		}
	h3OK=0
	}
	if (nam=="#text")
	{
	xt=xt + n.nodeValue + "\n"
	}
	l=n.childNodes.length
	for (i=0;i<l;i++)
	{
	checkXML(n.childNodes[i])
	}
}  
  
  
  
  
  
  




  
   
   


