
	// AJAX STUFF
	var READY_STATE_COMPLETE = 4;
    var PAGE_SUCCESS = 200; 
    var requestObject = null;

    var xmlHttpRequestHandler = new Object();
    xmlHttpRequestHandler.createXmlHttpRequest = function() {

    var XmlHttpRequestObject;
    if (typeof XMLHttpRequest != "undefined") {
      	XmlHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject){
       // look up the highest possible MSXML version
        var tryPossibleVersions=["MSXML2.XMLHttp.5.0",
                              "MSXML2.XMLHttp.4.0",
                              "MSXML2.XMLHttp.3.0",
                              "MSXML2.XMLHttp",
                              "Microsoft.XMLHttp"];
    
      	for (i=0; i< tryPossibleVersions.length; i++) {
       		try{
          		XmlHttpRequestObject = new ActiveXObject(tryPossibleVersions[i]);
          		break;
       		} catch (xmlHttpRequestObjectError) {
          		//ignore catch
       		}
      	} // for
      	if(typeof XmlHttpRequestObject == "undefined") {
      		alert("Feature not available. Please use a more modern browser!");
      	}
    } // else
    return XmlHttpRequestObject;
    }

    function doGetStates(theValue){ 
//			alert("doGetStates "+ theValue);
        requestObjectStates = xmlHttpRequestHandler.createXmlHttpRequest(); 
        requestObjectStates.onreadystatechange=onReadyStates;

        requestObjectStates.open("GET", "popups.php"+theValue, true);
		requestObjectStates.send(null); 
    } //doGetStates
    
    function doGetCounties(theValue){ 
//			alert("doGetCounties "+ theValue);
        requestObjectCounties = xmlHttpRequestHandler.createXmlHttpRequest(); 
        requestObjectCounties.onreadystatechange=onReadyCounties;

        requestObjectCounties.open("GET", "popups.php"+theValue, true);
		requestObjectCounties.send(null); 
    } //doGetStates
    
   function onReadyCounties(){
        var ready  = requestObjectCounties.readyState;
        var status1 = requestObjectCounties.status;
        if(ready==READY_STATE_COMPLETE && status1 == PAGE_SUCCESS){
//			var obj = document.getElementById('county');
//			obj.innerHTML = requestObjectCounties.responseText;
		select_innerHTML(document.getElementById("county"), requestObjectCounties.responseText);

        } // if
  } //onReadyStates
      
   function onReadyStates(){
   //alert("onReadyStates");
        var ready = requestObjectStates.readyState;
        var status = requestObjectStates.status;
        if(ready==READY_STATE_COMPLETE && status == PAGE_SUCCESS){
/*        var newdiv = document.createElement("OPTION");
newdiv.innerHTML = requestObjectStates.responseText;
var container = document.getElementById("state");
container.appendChild(newdiv);
alert("newdiv"+newdiv.innerHTML);
alert("state"+container.innerHTML);


			var obj = document.getElementById('state');
			obj.innerHTML = requestObjectStates.responseText;
*/
select_innerHTML(document.getElementById("state"),requestObjectStates.responseText);
//alert("after select_inner");
        } // if
  } //onReadyStates

	function getStates(){
		var elemnt = document.getElementById("country");
		doGetStates("?country="+elemnt.options[elemnt.selectedIndex].value);

	}// do State

	function getCounties(){
		var elemnt = document.getElementById("state");
		doGetCounties("?state="+elemnt.options[elemnt.selectedIndex].value);
	}// getCounties


	function checkPromo(){
//	alert(document.loginform.promocode.value);
		if(("Case12Chances" == document.loginform.promocode.value ) || ("case12chances" == document.loginform.promocode.value) || ("CASE12CHANCES" == document.loginform.promocode.value)){
			return true;
		} else {
			alert("Invalid code");
			return false;
		}
	}//checkPromo 

function select_innerHTML(objeto,innerHTML){
/******

http://elmicoxcodes.blogspot.com/2007/02/innerhtml-and-select-option-in-ie.html

* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Versão: 2.1 - 04/09/2007
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/

    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toUpperCase().indexOf("<OPTION")<0){//se não é option eu converto
        innerHTML = "<OPTION>" + innerHTML + "</OPTION>"
    }
    innerHTML = innerHTML.replace(/<OPTION/g,"<span").replace(/<\/OPTION/g,"</span")
//    innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
         
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){     
            opt = document.createElement("OPTION")
    
   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }       


   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }

   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  } 
 }  
 document.body.removeChild(selTemp)
 selTemp = null
}