var req, req1
var location
var theUrl
var response

function GraphicalSearch(url,category,subcategory,brand){

	//model=document.getElementById('sel_models');
	//model_selected =model.options[model.selectedIndex].text;
	theUrl=url+"&categName="+category+"&subcategName="+subcategory+"&brandName="+brand;//+"&modelName="+model_selected;
	document.searchForm.action=theUrl;
	document.searchForm.submit();
}

function processGraphicalSearch(){
	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
      				    var location=(theUrl);
   						document.location.href = location;
      				}
   } 
}

//set number of results on page for navigator
function SetRecordsNumber(url,category,subcategory,brand,model){
 records_on_page=document.getElementById("records").value;
 
 if(!isNumeric(records_on_page)){ //non-numeric value
 
 	alert("<beann:message key='error.not.numeric' />");
 	alert('Value must be a number');
 }
 else{//numeric value
 	if(records_on_page<1) alert('Value must be a number greater than 0');
	else{
 		theUrl=url+"&categName="+category+"&subcategName="+subcategory+"&brandName="+brand+"&modelName="+model+"&records="+records_on_page;
		 req = GetRequest();
 		 if (req) {
        	req.onreadystatechange = processSetRecordsNumber
        	req.open("GET",theUrl,true);
        	req.send(null);
       	 }
    }
 }
}

//set number of results on page for navigator
function SetRecordsNumber2(url,category,subcategory,brand,model,msg1,msg2){
 records_on_page=document.getElementById("records").value;
 
 if(!isNumeric(records_on_page)){ //non-numeric value
 
 	alert(msg1);
 	//alert('Value must be a number');
 }
 else{//numeric value
 	if(records_on_page<1) alert('Value must be a number greater than 0');
	else{
 		theUrl=url+"&categName="+category+"&subcategName="+subcategory+"&brandName="+brand+"&modelName="+model+"&records="+records_on_page;
		 req = GetRequest();
 		 if (req) {
        	req.onreadystatechange = processSetRecordsNumber
        	req.open("GET",theUrl,true);
        	req.send(null);
       	 }
    }
 }
}

//validate if data is numeric
function  isNumeric(strValue) {
	var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;

   //check for numeric characters
   return objRegExp.test(strValue)
}


function processSetRecordsNumber(){
	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
      				    var location=(theUrl);
   						document.location.href = location;
      				}
   	   			} 
}


//QUICK SEARCH FROM HOME PAGE
function QuickSearch(url){
	//alert("search");
	var selcat=document.getElementById('sel_category');
	var categName=selcat.options[selcat.selectedIndex].text;
		
	/*get an XMLHttpRequest*/
	req = GetRequest()
	
	if(categName!="All"){
		
		var selbrand=document.getElementById('sel_brands');
		var brandName=selbrand.options[selbrand.selectedIndex].text;
		url=url+"&categName="+categName+"&brandName="+brandName;
		theUrl=url;
		if (req) {
			req.onreadystatechange = processQuickSearch
        	req.open("GET", theUrl, true);
        	req.send(null);
       	}
	}
	/*else {
		url=url+"?action=categall";
		theUrl=url;
		if (req) {
			req.onreadystatechange = processSearch
        	req.open("GET", theUrl, true);
        	req.send(null);
       	}
	}*/
} 

 function processQuickSearch(){
 	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
      				    var location=(theUrl);
   						document.location.href = location;
      				}
   	   			} 
 }
 
 
//******************************DEALER***********************************
//navigate next/prev on results from dealer_offers_table
function GoToURL2(url,type,count,total,records_on_page){

if(type=='next'){//button next
	//alert(count);
	if(count>=total) 
	{	document.getElementById('Next').disabled="disabled";
	}
	else 
	{	
		/*compose  URL*/
		theUrl=url+"?action="+type;
		sendRequest();
    }
}
else if(type=='prev'){//button prev
	//alert(count);
	if(count<=records_on_page) 
	{	document.getElementById('Prev').disabled=true;
	}
	else 
	{	
		/*compose  URL*/
		theUrl=url+"?action="+type;
		sendRequest();
    }
}

}

//navigate next/prev on results from dealer_offers_table from homepage
function GoToURL3(url,type,count,total,records_on_page){

if(type=='next'){//button next
	//alert(count);
	if(count>=total) 
	{	document.getElementById('Next').disabled="disabled";
	}
	else 
	{	
		/*compose  URL*/
		theUrl=url+"?action="+type+"&action2=homepage_results";
		//alert(theUrl)
		sendRequest();
    }
}
else if(type=='prev'){//button prev
	//alert(count);
	if(count<=records_on_page) 
	{	document.getElementById('Prev').disabled=true;//"disabled";
	}
	else 
	{	
		/*compose  URL*/
		theUrl=url+"?action="+type+"&action2=homepage_results";
		sendRequest();
    }
}
}

function sendRequest(){
	/*get an XMLHttpRequest*/
	req = GetRequest()
	if (req) {
        	req.onreadystatechange = processStateChange
        	req.open("GET", theUrl, true);
        	req.send(null);
       	}
}
//****************************************************************************************


/*returns an XMLHttpRequest object*/
function GetRequest()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      	try{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
      }
    }
  return xmlHttp;
}

function processStateChange(){

	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
      				    document.getElementById("posting").innerHTML=req.responseText;
      				}
   	   			} 
}

//search form from dealer depending on category
function goSearchForm(url,category,id){
	//alert(category)
	theUrl=url+"?category="+category+"&id="+id;
	
	req = GetRequest()
	if (req) {
			req.onreadystatechange = processSearchForm
        	req.open("GET", theUrl, true);
        	req.send(null);
       	}
	
}

function processSearchForm(){
	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
      				    document.getElementById("posting").innerHTML=req.responseText;
      				}
   	   				
        		} 
}



function dealerSearch(url){
	url=url+getFormAsString('dealerSearchF');
	//alert(url)
	
	req = GetRequest()
	if (req) {
			req.onreadystatechange = processDealerSearch
			req.open("GET", url, true);
        	req.send(null);
       	}
	
}

function processDealerSearch(){
	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
						document.getElementById('my_offers').innerHTML=req.responseText;
      				}
   	   				
        		} 
}


//*************************************************************************************
//Searchform from PRIVATE USER

function privateUserSearch(url){
	var categorylist=document.getElementById('sel_category2');
	var categ_selected =categorylist.options[categorylist.selectedIndex].value;
	if(categ_selected=="") document.getElementById("not_completed").innerHTML="Category must be completed";
	else{
		//convert the url to a string
		url=url+getFormAsString('userSearchF');
		req = GetRequest()
		if (req) {
			req.onreadystatechange = processPrivateUserSearch
			req.open("GET", url, true);
        	req.send(null);
       	}
   }
}

function processPrivateUserSearch(){
	if(req.readyState==0){}
	else if(req.readyState==1){}
		else if(req.readyState==2){}
			else if(req.readyState==3){}
				else if (req.readyState == 4) { // Complete
					if (req.status == 200) { // OK response
						document.getElementById('search_offers').innerHTML=req.responseText;
      				}
   	   			} 
}

function getFormAsString(formName){

  //Setup the return String
  returnString ="";
        
  //Get the form values
  formElements=document.forms[formName].elements;
        
  //loop through the array, building up the url
  //in the format '/strutsaction.do&name=value'
 
  for(var i=formElements.length-1;i>=0; --i ){
        //we escape (encode) each value
        returnString+="&" 
        +escape(formElements[i].name)+"=" 
        +escape(formElements[i].value);
 }
        
 //return the values
 return returnString; 
}
//********************************************************************************

