var http_request = false;
var count
var backURL

  function makeRequest(url, parameters) {
      http_request = getHTTPObject();

      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = alertContents;
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
   }

   function alertContents() {
 //alert(http_request.responseText);
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {    
            result_get = http_request.responseText;
            
            reS = /Result :/i;    //Create regular expression pattern.
            reF = /FldError-/i;    //Create regular expression pattern.
              
           rS = result_get.search(reS);
           rF = result_get.search(reF);
			               
			
				// resSplt = result_get.split("|"); //break main message and ok fields
			   
						//first make all validate show span areas empty.
						var valspanx = document.getElementsByTagName("span")						 
						for (var i=0; i<valspanx.length; i++) //show ok fields
						{							
						   if (valspanx[i].className == "ajx_validate"){
						    //alert(valspanx[i].id)
							var showPlacex=valspanx[i].id ;														
							document.getElementById(showPlacex).innerHTML = '';   
							document.getElementById(showPlacex).style.backgroundColor = '';   
							document.getElementById(showPlacex).style.border = '';  							
							}
						}
						      
				result = result_get //resSplt[0] // get the main part of message
                      
			if (rS==0){ // if result is successfull then show it in blue color
				reSS = result.substr(8);
				
				if (!backURL){
				var bpage = 'javascript:history.go(-1)'		
					}else
					{
					bpage =backURL
					}			
				
				//document.getElementById('showFinalMsg').style.left= '35%';
				//document.getElementById('showFinalMsg').style.top= '40%';	
				//document.getElementById('showFinalMsg').align = 'center';	
				//document.getElementById('showFinalMsg').innerHTML = reSS ; 
				//document.getElementById('showFinalMsg').innerHTML += '</br><img src=/efportal/imgx/loader.gif border=0>'
				//document.getElementById('showFinalMsg').style.visibility = "visible";   
				
				document.getElementById('showResponse').style.backgroundColor= '#FFFFFF' ;
				document.getElementById('showResponse').style.borderColor= '#003399' ;
				document.getElementById('showResponse').style.borderStyle= 'solid' ;
				
				document.getElementById('showResponse').style.position= 'static' ;
				document.getElementById('showResponse').innerHTML = reSS;   
				document.getElementById('showResponse').style.visibility = "visible"; 
								
				//
				//document.getElementById('pagebody').style.visibility = "hidden";   
				count = 0
				goBackpage(count)				
				 
				}else{
				if (rF==0){ // showing field errors at each places
				
				reFS = result.substr(9);
				
				
					reFSArr = reFS.split(","); 
					document.getElementById('showResponse').style.position= 'static' ;
					document.getElementById('showResponse').innerHTML = 'Error Occured : Following fields are required to be filled correctly ';   
					document.getElementById('showResponse').style.visibility = "visible";  
					//document.getElementById('showResponse').innerHTML = result_get;   
					for (var num=0; num<reFSArr.length; num++)
					
						{var piece=reFSArr[num].split(':');
							showPlace=piece[0];showMsg=piece[1];
							
							document.getElementById(showPlace).style.fontStyle = 'normal' ;
							document.getElementById(showPlace).style.backgroundColor= '#ff9'
							document.getElementById(showPlace).style.border = "solid red 1px"
							document.getElementById(showPlace).innerHTML = showMsg + ' ';   
						}
					
				         
				}else{
				// show any other responces
				document.getElementById('showResponse').style.visibility = "visible";  
				document.getElementById('showResponse').style.position= 'static' ;
				document.getElementById('showResponse').innerHTML = 'Error : ' + result;    
				}
				
				}           
         } else {
			  document.getElementById('showResponse').style.position= 'static' ;	
			  document.getElementById('showResponse').style.visibility = "visible";  
            document.getElementById('showResponse').innerHTML = 'There was a problem with the request.' ;
         }
      }
   }
   
   function goBackpage()
	{

	if (count < 3) 
	{
		count = count + 1
		//document.getElementById('showResponse').innerHTML += '|'
		setTimeout("goBackpage()",500)
	}
	else
	{
	if (!backURL){
		history.go(-1)
		}else
		{
		window.location = backURL;
		}
	}
}
   
   function getval(obj,page,burl) {
      var getstr = "?";
      backURL = burl;
     
     var len = obj.elements.length;
		for (var i = 0; i < len; i++) {
	    var e = obj.elements[i];
	  
	  if (!e.disabled) {
	    
	    var en = e.name;
	   if (e.tagName == "INPUT") {
	     if (e.type == "text" || e.type =="password" || e.type =="hidden") {
               getstr += e.name + "=" + encodeURIComponent(e.value) + "&";
               valitxt = e.className
               if(valitxt){
               getstr += "_vali" + e.name + "=" + encodeURIComponent(valitxt) + "&";
         		 }
            }	    	    
		 
		  if (e.type == "checkbox") {
               if (e.checked) {
                  getstr += e.name + "=" + e.value + "&";
               } else {
                  getstr += e.name + "=&";
               }
            }
			if (e.type == "radio") {
               if (e.checked) {
                  getstr += e.name + "=" + e.value + "&";
               }
            }
		 }
		 if (e.tagName == "SELECT") {
			
            getstr += e.name + "=" + e.options[e.selectedIndex].value + "&";
            valitxt = e.className
               if(valitxt){
               getstr += "_vali" + e.name + "=" + encodeURIComponent(valitxt) + "&";
         		 }
         }		 	
         
         if (e.tagName == "TEXTAREA") {
				xtareaval = encodeURIComponent(e.value);
			//	alert(xtareaval.length);
			if(xtareaval.length>=150){
			alert("too many characters on " + e.name)
			return false;
			}else{
			 getstr += e.name + "=" + encodeURIComponent(e.value) + "&";
			}
			
            
         }	
         
		}
		} 
		//alert(getstr);
     makeRequest(page, getstr);

   }
   
 
   function getHTTPObject() {
    var xmlhttp;
         if (window.XMLHttpRequest) { // Mozilla, Safari,...
         xmlhttp = new XMLHttpRequest();
         if (xmlhttp.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            xmlhttp.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
	return xmlhttp;
}