function ToCall(datafromelement,divid){
    //use datafromelement
    //call AJCall(url+datafromelement)
    AJCall("dealer.php?mode=getdealer&bike="+datafromelement,divid);
}

function AJCall(url,divid) {
        var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    } 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('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
	http_request.onreadystatechange = function() { JSonReturn(http_request,divid); };
   
    http_request.open('GET', url, true);
    http_request.send(null);
}
var optioncount = 0;
function JSonReturn(request,divid) {
    if (request.readyState == 4) {
        if (request.status == 200) {
            //alert("repsonse is:"+request.responseText);
            var results;
            document.getElementById('loader').style.display="none";
            var xmldoc = request.responseXML;
            var end = true;
            optioncount = 0;
            ResetOptions(divid);
            do {
            results = GetFromXML(xmldoc, 'dealer_list', Array('dealer_id','dealer_name', 'dealer_city', 'dealer_state'),optioncount);
            
            if (results.length != 0) {
                optioncount++;
                AppendOptions(results[0],results[1]+ ", " + results[2] + ", " + results[3],divid);
            }
            else {
                end = false;
            }
            //AppendOptions(results[0],results[1],'bike_dealer');
            }while(end);
            
        } else {
            alert('There was a problem with the request.');
        }
    }else{
		document.getElementById('loader').style.display="inline";
    }
}

function GetFromXML(xmldoc, root_name, elements_array,count) {
    var root_element = xmldoc.getElementsByTagName(root_name);
    var results_array = Array();
    if (xmldoc.getElementsByTagName(root_name).length != 0) {
        if (root_element[0].getElementsByTagName(elements_array[0]) != null) {
            if (root_element[0].getElementsByTagName(elements_array[0]).length > count) {
                results_array[0] = (root_element[0].getElementsByTagName(elements_array[0])[count].childNodes[0] != null)?root_element[0].getElementsByTagName(elements_array[0])[count].firstChild.nodeValue:' ';
                if (!results_array[0] == 0) {
				results_array[1] = (root_element[0].getElementsByTagName(elements_array[1])[count].childNodes[0] != null)?root_element[0].getElementsByTagName(elements_array[1])[count].firstChild.nodeValue:' ';
				results_array[2] = (root_element[0].getElementsByTagName(elements_array[1])[count].childNodes[0] != null)?root_element[0].getElementsByTagName(elements_array[2])[count].firstChild.nodeValue:' ';
				results_array[3] = (root_element[0].getElementsByTagName(elements_array[1])[count].childNodes[0] != null)?root_element[0].getElementsByTagName(elements_array[3])[count].firstChild.nodeValue:' ';
				}
            }
        }
    }
    
    return results_array;
}

function AppendOptions(optionvalue,optiontext,divid) {
    
    var option = new Option(optiontext,optionvalue);
    document.getElementById(divid).options[optioncount]=option;
    //optioncount++;
    //document.getElementById(divid).options[1].selected = true;
}

function ResetOptions(divid) {
    var len = document.getElementById(divid).options.length;
    
    document.getElementById(divid).selectedIndex = 0;
    for (var index=len-1; index>0; index--) {
        document.getElementById(divid).options[index] = null;
    }
}
