var count = 0;
var selcount=0;


var load = "<img src=images/35.gif>";
var row
var selhtml =""
var tablename
var rowcount=0;
var cat_html =    '<fieldset><legend>Select a Category:</legend>' +
   						'<select id="catSel" onChange="setTypes()">' +
                        '<option value="all" selected> - Select one - </option>';

var select_html =    '<fieldset><legend>Choose a Region:</legend>' +
   						'<select id="regionSelect" onChange="clearBoxes()">' +
                        '<option value="all" selected> - All - </option>';

var check_html =   	'<fieldset><legend>Click to choose:</legend>' ;

function windowOnload()
{

 makeRequest('phpsqlajax_genxml.php');
makeRequest2('phpsqlajax_genxmlregion.php');
 makeRequest3('phpsqlajax_genxmltype.php');
 
}

function makeRequest(url)

{


      http_request = false;
      if (window.XMLHttpRequest) 
      { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) 
         {
            http_request.overrideMimeType('text/xml');
         }
      } 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 XMLHTTP instance');
         return false;
      }
 
  
      http_request.onreadystatechange =  alertContents;
  
     http_request.open('GET', url, true);
      http_request.send(null);
      
     
}
function makeRequest2(url)
{

      http_request2 = false;
      if (window.XMLHttpRequest) 
      { // Mozilla, Safari,...
         http_request2 = new XMLHttpRequest();
         if (http_request2.overrideMimeType) 
         {
            http_request2.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) 
{ // IE
         try 
         {
            http_request2 = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) 
         {
            try 
         {
               http_request2 = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
         }
      }
      if (!http_request2) 
      {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      

      http_request2.onreadystatechange = alertRegion;
      
      http_request2.open('GET', url, true);
      http_request2.send(null);
      
      
}
function makeRequest3(url) 
{
      http_request3 = false;
      if (window.XMLHttpRequest) 
      { // Mozilla, Safari,...
         http_request3 = new XMLHttpRequest();
         if (http_request3.overrideMimeType) 
         {
            http_request3.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) 
{ // IE
         try 
         {
            http_request3 = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) 
         {
            try 
         {
               http_request3 = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
         }
      }
      if (!http_request3) 
      {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request3.onreadystatechange = alertType;
      http_request3.open('GET', url,true);
      http_request3.send(null);
}

function alertContents() {

      if (http_request.readyState == 4) {
         	if (http_request.status == 200) {

            var xmlDoc = http_request.responseXML;
           
          
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");
            
               	for (i = 0; i < markers.length; i++) {
               	
                        
     var address = markers[i].getAttribute("address");
          var name = markers[i].getAttribute("name");
        	var phone = markers[i].getAttribute("phone");
           var color = markers[i].getAttribute("color");
           var city = markers[i].getAttribute("city");
			var rowid = markers[i].getAttribute("id");                            
			var paid = markers[i].getAttribute("paid");
			var Expdate = markers[i].getAttribute("ExpDate");

                  
                  
  				}
               
           
         } else {
            alert('There was a problem with the request.');
         }
       }
       
     
   }
function alertRegion() {

      if (http_request2.readyState == 4) {
         	if (http_request2.status == 200) {

            var xmlDoc = http_request2.responseXML;
           
          
            var regions = xmlDoc.documentElement.getElementsByTagName("region");
     
               	
for (i = 0; i < regions.length; i++) {
        var regiond = regions[i].getAttribute("rdesc");
          var regionc = regions[i].getAttribute("name");
                                     
                                     

                   select_html += '<option value=' + regionc + ' id = ' + i + '> ' + regiond + '</option>';

         		} 
         
         // ===== final part of the select box =====
        select_html += '</select></fieldset>';
        document.getElementById("selection").innerHTML = select_html;
  		
         
         
         } else {
            alert('There was a problem with the region request.');
        }
         
       }
       
   }
function alertType() {

      if (http_request3.readyState == 4) {
         	if (http_request3.status == 200) {

            var xmlDoc = http_request3.responseXML;
           
          
            var types = xmlDoc.documentElement.getElementsByTagName("type");
              var lastcat ="";
      
               	for (i = 0; i < types.length; i++) {
             	
  
          var category = types[i].getAttribute("category");
         

         //== fill the category drop down list
         if (lastcat!=category){
        
         cat_html += '<option value=' + category + ' id = ' + i + '> ' + category + '</option>';
         lastcat=category;    }
         } 
         
         // ===== final part of the category select boxes =====
      
        cat_html += '</select></fieldset>';

       
       document.getElementById("checkboxes").innerHTML = "";
        document.getElementById("catSelect").innerHTML = cat_html;

                  
  		document.getElementById("loading").innerHTML = "";	
  		
               
           
         } else {
            alert('There was a problem with the request.');
         }
       }
       
   }
 //=============================================================================  
   function setTypes() {

      if (http_request3.readyState == 4) {
         	if (http_request3.status == 200) {

            var xmlDoc = http_request3.responseXML;
           
          
            var types = xmlDoc.documentElement.getElementsByTagName("type");
         
			var check_html =   	'<fieldset><legend>Click to choose:</legend>' ;

              var mycategory = document.getElementById('catSel').value;
      
               	for (i = 0; i < types.length; i++) {
             	
                        
     var typed = types[i].getAttribute("desc");

          var typec = types[i].getAttribute("name");
          var category = types[i].getAttribute("category");
          var typecolor = types[i].getAttribute("color");
       
          if (mycategory == category){
         
        check_html += '<font color="' + typecolor + '">' + typed + ':</font> <input type="checkbox" name="list" value="' + typec + '" id="' + typec + 'box" onclick="showmarker(this.value)"  /><br>';
         }

}
         
         
         // ===== final part of the check boxes =====
        check_html += '</fieldset>';

       
        document.getElementById("checkboxes").innerHTML = check_html;
        
       

                  
  		document.getElementById("loading").innerHTML = "";	
  		clearBoxes();
               
           
         } else {
            alert('There was a problem with the request.');
         }
       }
       
   }

    //=========================================================
function clearBoxes(){



  // Clear all the Checkboxes

    var objCheckBoxes = document.forms["mycheckboxes"];
    var countCheckBoxes = objCheckBoxes.elements.length;   
    for(var i = 0; i < countCheckBoxes; i++){
    objCheckBoxes.elements[i].checked=0;
    
    
    
    }
    selhtml ="";

    clearChoices()
   
          }
    //=========================================================    
    	
function clearChoices(){
count = 0;
selcount = 0;
rowcount=0;


var rowcolor="#f9f9f9";

document.getElementById("selinfo").innerHTML = selhtml;

var innerhtml='Counter: ' + count;
document.getElementById("counter").innerHTML = innerhtml;

 
var otable=document.getElementById("mytable"); 
			 
  
			 while(otable.rows.length>0)     
			 		otable.deleteRow(otable.rows.length-1);
			 		
			 		
			 		
}
//==================================================================================

function chkBoxes(){

 
    var objCheckBoxes = document.forms['mycheckboxes'];
    var countCheckBoxes = objCheckBoxes.elements.length;  
    if(countCheckBoxes>1){
    for(var x = 0; x < countCheckBoxes; x++){
    objCheckBoxes.elements[x].checked=1;

    var ctype = objCheckBoxes.elements[x].value;
    var cbox = objCheckBoxes.elements[x].id;
    }
   selhtml =load;
   document.getElementById("selinfo").innerHTML =  selhtml;

   
   showmarker("all");}
   else
   {document.getElementById('catSel').focus();
   selhtml="<table><tr><td><br><br><span style=background-color: #FF0000>Please choose a Category</span></td></tr></table>";
   document.getElementById("selinfo").innerHTML =  selhtml;
}
        
}        
       
    
 //=========================================================  
function addrow(tablename,  rowid , name, address, color,city, paid,Expdate,phone, r) {

	++count;
	++selcount;
			
	
if (selcount==1){

var rowcolor="#f3f3f3";

	selhtml = '<table cellspacing="0" cellpadding="5" border="0"><tbody><tr>';
}

         
      
      if (selcount > 4){
      		selcount=1;
      		selhtml += '</tr><tr>';
      		
      		++rowcount
      		

       	 	}
       	 	
       	 	if (rowcount%2 == 0){
				
				var rowcolor="#f3f3f3"; }
		
			else {
				var rowcolor="#f9f9f9";}
				
var href = '<font color="' + color + '">' +  name + '</font><br>';
var endsel="<br></td>"
if (paid =="Y"){

		var Today=new Date()
		// Break up the start date - using the delimiter "/" - into an array of strings  
var exp_date = Expdate.split("-") 
  
// Access each element in the array. 
var year = exp_date[0];  
var month = exp_date[1]; 
var day = exp_date[2];  
var eDate = new Date(year,month-1,day); 

			
				endsel='<br>'+phone +'<br><a target="_blank" href="businessinformation?bid=' + rowid + '&'+ name +'"><img border="0" src="images/detaila1.png" align="right"></a></td>';
         href='<img src=images/yellowstar.png><a target="_blank" href="businessinformation?bid=' + rowid + '&'+ name +'"><b><font color="' + color + '">' +  name +'</font></b></a><br>' + address+ '<br>';
				

		
         }
         
 if (paid !="Y"){
 endsel='<br><a target="_blank" href="businesssummary?bid=' + rowid + '&'+ name +'"></a></br></td>';
         href='<a target="_blank" href="businesssummary?bid=' + rowid + '&'+ name +'"><font color="' + color + '">' +  name +'</font></a><br>' ;
 
}				
      selhtml += '<td width="185" bgcolor="'+ rowcolor +'">' + href  + city +endsel ;

         return;
   
       

		
		
	
     
      
}


//=================================================================================
function showmarker(str)
{

xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for all new browsers
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE5 and IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=function () {state_Change(str)};
  
  xmlhttp.open("GET",'markers.xml',true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

    //=========================================================    

function state_Change(str) 
{

             
      if (xmlhttp.readyState == 4) 
      	 {
         	if (xmlhttp.status == 200) 
         {

            var xmlDoc = xmlhttp.responseXML;
           
          //---------------------------------------------------------------------
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");
           	var regionsel = document.getElementById('regionSelect').value;
			var objCheckBoxes = document.forms['mycheckboxes'];
			var searchstr = document.getElementById("txt1").value;
    		var countCheckBoxes = objCheckBoxes.elements.length;  
    		selhtml =load;
    		
    		clearChoices();

    for(var x = 0; x < countCheckBoxes; x++){
    		if (objCheckBoxes.elements[x].checked==1){
    		
    		var ctype = objCheckBoxes.elements[x].value;
    		var cbox = objCheckBoxes.elements[x].id;
			var str = ctype;

       
               	for (i = 0; i < markers.length; i++) 
               	{
               	
     					var address = markers[i].getAttribute("address");
     					var region = markers[i].getAttribute("region");

          				var name = markers[i].getAttribute("name");
       					var phone = markers[i].getAttribute("phone");
           				var color = markers[i].getAttribute("color");
           				var type = markers[i].getAttribute("type");  
                      	var city = markers[i].getAttribute("city");
						var rowid = markers[i].getAttribute("id");
               			var paid = markers[i].getAttribute("paid");
               			var Expdate = markers[i].getAttribute("ExpDate");
					

if(regionsel == "all")
{

					if(type==str || str == "all")
					{
					
                      addrow("mytable", rowid, name, address,  color,city,paid,Expdate,phone, i);
                      
                  	}
}                  	
else
{
            		if (regionsel == region && (type==str || str=="all"))  	
                	{
                      addrow("mytable", rowid , name, address,  color,city, paid,Expdate,phone, i);
                     

                  	}
                  	}
} //  end of regionsel == all	
                } // end of for markers  
             
	} // end of for/types
	var innerhtml='Counter: ' + count;
	         document.getElementById("counter").innerHTML = innerhtml;
  	
var tbl = document.getElementById("mytable");
  
  		 

selhtml += '</tr></tbody></table>';

		document.getElementById("selinfo").innerHTML =  selhtml;


return;

		
   //------------------------------------------------        
         } 
         else {
            alert('There was a problem with the request.');
         }
        
 }
 }

//=================================================================================
function searchmarker()
{
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for all new browsers
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE5 and IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=function () {state_Changeshow()};
  
  xmlhttp.open("GET",'markers.xml',true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}



 
function state_Changeshow() 
{

               
      if (xmlhttp.readyState == 4) 
      	 {
         	if (xmlhttp.status == 200) 
         {

            var xmlDoc = xmlhttp.responseXML;
           
          //---------------------------------------------------------------------
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");
           	var regionsel = document.getElementById('regionSelect').value;
			var objCheckBoxes = document.forms['mycheckboxes'];
			var searchstr = document.getElementById("txt1").value;
    		var countCheckBoxes = objCheckBoxes.elements.length;  
    		selhtml =load;
    		
    		clearChoices();



       
               	for (i = 0; i < markers.length; i++) 
               	{
               	
     					var address = markers[i].getAttribute("address");
     					var region = markers[i].getAttribute("region");

          				var name = markers[i].getAttribute("name");
       					var phone = markers[i].getAttribute("phone");
           				var color = markers[i].getAttribute("color");
           				var type = markers[i].getAttribute("type");  
                      	var city = markers[i].getAttribute("city");
						var rowid = markers[i].getAttribute("id");
               			var paid = markers[i].getAttribute("paid");
               			var Expdate = markers[i].getAttribute("ExpDate");
					
 if (searchstr.length!=0 )
  { 

  var lstr= searchstr.toLowerCase();
var lnames =name.toLowerCase();




					if(lnames.match(lstr) == lstr )
					{
					
                      addrow("mytable", rowid, name, address,  color,city,paid,Expdate,phone, i);
                      
                  	}

  
  
  

} //  end of regionsel == all	
                } // end of for markers  
//if no results found turn off the loading indicator and display message

if(count==0){
selhtml = '<table cellspacing="0" cellpadding="5" border="0"><tbody><tr>';
selhtml += "<td>No records found to match search</td>";
}

	var innerhtml='Counter: ' + count;
	         document.getElementById("counter").innerHTML = innerhtml;
  	
var tbl = document.getElementById("mytable");
  

selhtml += '</tr></tbody></table>';

		document.getElementById("selinfo").innerHTML =  selhtml;


return;

		
   //------------------------------------------------        
         } 
         else {
            alert('There was a problem with the request.');
         }
        
 }
 }
       
      
