var xmlHttp;
prev_country='';
prev_postcode='';
prev_data='';

function pca_getRequest(url) {
        //alert("Url=" + url + "\nVars=" + str);
        //document.getElementById("AJ_infodiv").innerHTML="Loading...";
        xmlHttp=GetXmlHttpObject();
        if (xmlHttp==null) {
                return;
        }
        xmlHttp.onreadystatechange=pca_stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
}

function pca_stateChanged() {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
                var data=xmlHttp.responseText;
                //document.getElementById("AJ_contentdiv").innerHTML=data;
                //alert(data);
                //document.getElementById("AJ_infodiv").innerHTML="Done...";
                if(data!='') {
                        pca_parseData(data);
                }
        }
}

function pca_setAddress(data) {
        $_("pca_addressDiv").style.display="none";
        if(data!='') {
                fields=data.split("|");
                if(fields.length>0) {
                        for(i=0;i<fields.length;i++) {
                                field=fields[i].split("~");
                                switch(field[0]) {
                                        case "postcode":        $_("postcode_id").value = field[1]; prev_postcode=field[1]; break;
                                        case "street":          $_("address2_id").value = field[1]; break;
                                        //case "locality":        $_("locality_id").value = field[1]; break;
                                        case "city":            $_("city_id").value = field[1]; break;
                                        case "state":           $_("county_state_id").value = field[1]; break;
                                }
                        }
                }
        }
}

function pca_parseData(data) {
        pcaFields=Array("postcode","street","locality","city","state");
        if(data.substring(0,1)==9) {
                var numrecords = data.split("\n")[0].split(":")[1];     //the value coming back from php
                if(numrecords > 0) {
                        //we've got valid data - so store here
                        prev_data=data; //store data as variable so we can access this instead of doing duplicate requests
                        //redo data
                        data=data.split("\n");
                        data.shift();   //get rid of first element
                        data=data.join("\n");        //revert to string
                        if(numrecords==1) {
                                $_("pca_addressDiv").style.display="none";
                                $_("pca_container").style.display="none";
                                var rows = data.split("\n");
                                var numrows=rows.length;
                                var row;
                                for(i=0;i<numrows;i++) {
                                        row = rows[i].split("=");
                                        switch(row[0]) {
                                                case "postcode":        $_("postcode_id").value = row[1]; prev_postcode=row[1]; break;
                                                case "street":          $_("address2_id").value = row[1]; break;
                                                //case "locality":        $_("locality_id").value = row[1]; break;
                                                case "city":            $_("city_id").value = row[1]; break;
                                                case "state":           $_("county_state_id").value = row[1]; break;
                                        }
                                }
                        } else {
                                $_("pca_container").style.display="block";
                                $_("pca_addressDiv").style.display="block";
                                //we can't populate innerHTML of select - IE has bug where it doesn't like it
                                //besides select is probably best generated here amongst rest of jscript
                                $_("pca_addressDiv").innerHTML='<select style="width:100%;font-size:11px;" id="pca_addressSelect" size="10" onChange="pca_setAddress(this.options[this.selectedIndex].value);">'+data+'</select>';
                        }
                }
        }
}

function getPC() {
        //$_("AJ_infodiv").innerHTML=prev_country+' '+prev_postcode;
        //alert("Prev Postcode: "+prev_postcode+" | Current Postcode: "+$_("postcode_id").value);
        if($_("country_id").value!='' && $_("postcode_id").value!='' && $_("postcode_id").value.length > 3 ) {
                if( (prev_country!='' && $_("country_id").value==prev_country) && (prev_postcode!='' && $_("postcode_id").value.toUpperCase()==prev_postcode.toUpperCase()) && ( prev_data!='' ) )  {
                //if( (prev_country!='' && $_("country_id").value==prev_country) && (prev_postcode!='' && $_("postcode_id").value==prev_postcode) && ( prev_data.substring(0,1)==9 ) )  {
                        //same values as before, so get from stored variable
                        pca_parseData(prev_data);
                } else {
                        //pca_getRequest("/htmlsite/pca/pca.php?postcode="+escape($_("postcode_id").value)+'&country='+escape($_("country_id").value)+'&street='+escape($_("street_id").value));
                        pca_getRequest("/ajax/pca.php?postcode="+escape($_("postcode_id").value)+'&country='+escape($_("country_id").value));
                }
                
                //store old country here - postcode will be set during pca check
                prev_country=$_("country_id").value;
        }
        return false;
}

