var country, state, city = "";


var ElementMaxHeight = function() {
  this.initialize.apply(this, arguments);
}

ElementMaxHeight.prototype = {
  initialize: function(className) {
    this.elements = document.getElementsByClassName(className || 'maxheight');    
    this.textElement = document.createElement('span');
    this.textElement.appendChild(document.createTextNode('A'));
    this.textElement.style.display = 'block';
    this.textElement.style.position = 'absolute';
    this.textElement.style.fontSize = '1em';
    this.textElement.style.top = '-1000px';
    this.textElement.style.left = '-1000px';
    document.body.appendChild(this.textElement);
    this.textElementHeight = document.getDimensions(this.textElement).height;
    var __object = this;
    var __checkFontSize = this.checkFontSize;
    this.checkFontSizeInterval = window.setInterval(function() {return __checkFontSize.apply(__object)}, 500);

    this.expand();

    // Refresh elements height onResize event
    var __expand = this.expand;
    if (window.addEventListener) {
      window.addEventListener('resize', function(event) {return __expand.apply(__object, [( event || window.event)])}, false);
    } else if (window.attachEvent) {
      window.attachEvent('onresize', function(event) {return __expand.apply(__object, [( event || window.event)])});
    }
  },

  expand: function() {
    this.reset();
  	for (var i = 0; i < this.elements.length; i++) {  	
      this.elements[i].style.height = document.getDimensions(this.elements[i].parentNode).height + 'px';
  	}
  },

  reset: function() {
    for (var i = 0; i < this.elements.length; i++) {    
      this.elements[i].style.height = 'auto';
    }
  },

  checkFontSize: function() {
  	var height = document.getDimensions(this.textElement).height;
  	if(this.textElementHeight != height) {
  		this.textElementHeight = height;
  		this.expand();
  	}
  }  
}


if (!!document.evaluate) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, parentElement || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(query.snapshotItem(i));
    return results;
  }
}

document.getElementsByClassName = function(className, parentElement) {
  if (!!document.evaluate) {
    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
    return document._getElementsByXPath(q, parentElement);
  } else {
    var children = (parentElement || document.body).getElementsByTagName('*');
    var elements = [], child;
    for (var i = 0, length = children.length; i < length; i++) {
      child = children[i];
      if (child.className.length != 0 &&
          (child.className == className ||
           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
        elements.push(child);
      }
    }
    return elements;
  }
}

document.getDimensions = function (element) {
  var display = element.style.display;
  if (display != 'none' && display != null) { // Safari bug
    return {width: element.offsetWidth, height: element.offsetHeight};
  }

  return {width: originalWidth, height: originalHeight};
}


function ajaxFunction(ID, Param)
   {
	  var xmlHttp;
	  
	  xmlHttp=GetXmlHttpObject();
	  if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  }
      
	  var loaderphp = "index.php";

	  
      
      /*
	  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){
               alert("Your browser does not support AJAX!");
               return false;
            }
         }
      }
     */
	 
	 
		xmlHttp.onreadystatechange=function()
		{
			var browser=navigator.appName;
			
			if(browser == "Microsoft Internet Explorer")
			{
				if(xmlHttp.readyState==4) 
				{
					if (xmlHttp.status == 200) 
					{
						//alert(ID);
						if(ID == "state")
						{		
							var oldCity = document.getElementById('city');
							var newCity = document.createElement("SELECT");
							
							newCity.id = "city";
							newCity.name = "city";
							option = document.createElement("OPTION");
							option.value = "";
							option.text = "- - - Select City - - -";
							newCity.add(option,0);
							cityParentDiv = oldCity.parentNode;
							cityParentDiv.replaceChild(newCity, oldCity);
							
							
							var oldFood = document.getElementById('food');							
							var newFood = document.createElement("SELECT");
							newFood.id = "food";
							newFood.name = "food";
							option = document.createElement("OPTION");
							option.value = "";
							option.text = "- - - Select Food Type - - -";
							newFood.add(option,0);
							foodParentDiv = oldFood.parentNode;
							foodParentDiv.replaceChild(newFood, oldFood);	
							
							

						}
						else if(ID == "city")
						{
							var oldFood = document.getElementById('food');							
							var newFood = document.createElement("SELECT");
							newFood.id = "food";
							newFood.name = "food";
							option = document.createElement("OPTION");
							option.value = "";
							option.text = "- - - Select Food Type - - -";
							newFood.add(option,0);
							foodParentDiv = oldFood.parentNode;
							foodParentDiv.replaceChild(newFood, oldFood);
						}
						
						myDiv = document.getElementById(ID);
						try 
						{
							res = xmlHttp.responseText;
							ressplit = res.split(",");
							//window.alert(ressplit);
						//	var oForm = document.forms['form1'];
							var oldSelect = document.getElementById(ID);
							var newSelect = document.createElement("SELECT");
							
							newSelect.id = ID;
							newSelect.name = ID;
							
							for(var i=0; i<ressplit.length; i++)
							{								
								option = document.createElement("OPTION");
								option.value = ressplit[i];
								option.text = ressplit[i];
								newSelect.add(option, i);
							}
							
							if (newSelect.id == "state")
							{
								newSelect.onchange = new Function("ajaxFunction('city',this.value)");
								/*
								var oldFood = document.getElementById('food');
								var newFood = document.createElement("SELECT");
								
								newFood.id = "food";
								newFood.name = "food";
								option = document.createElement("OPTION");
								option.value = "";
								option.text = "- - - Select Food Type - - -";
								newFood.add(option,0)
								foodParentDiv = oldFood.parentNode;
								foodParentDiv.replaceChild(newFood, oldFood);
								
								oldFood.innerHTML = xmlHttp.responseText;
								*/
							}
							else if(newSelect.id == "city")
								newSelect.onchange = new Function("ajaxFunction('food',this.value)");
								
							parentDiv = oldSelect.parentNode;
							parentDiv.replaceChild(newSelect, oldSelect);
							
							myDiv.innerHTML = xmlHttp.responseText;
						}
						catch(e) 
						{
							window.alert("Error reading the response: " + e.toString());
						}
					}
					
				}				
			}
			else
			{
				if(xmlHttp.readyState==4)
				{
					if(ID == "state")
					{
						document.getElementById('food').innerHTML = "<option value=''>- - - Select Food Type - - -</option>";
						document.getElementById('city').innerHTML = "<option value=''>- - - Select City - - -</option>";
					}
					else
					{
						document.getElementById('food').innerHTML = "<option value=''>- - - Select Food Type - - -</option>";
					}
					
					document.getElementById(ID).innerHTML = xmlHttp.responseText;
				}
			}
		}

		country = document.getElementById("country").value;
		state = document.getElementById("state").value;
		
		xmlHttp.open("GET", loaderphp+"?ID="+ID+"&ajax="+Param+"&country="+country+"&state="+state,true);	   
		xmlHttp.send(null);
	}
   
   
   function GetXmlHttpObject()
  {
	if (window.XMLHttpRequest)
	{
		// code for IE7+, Firefox, Chrome, Opera, Safari		
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject)
	{
		// code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
  }