var xmlHttp;
var lang = 'ita';
var langprefix = '';

var dut_lux_provinz = 'Gemeente*:';
var dut_bel_provinz = 'Provincie*:';
var fra_lux_provinz = 'Commune* :';
var fra_bel_provinz = 'Province* :';
var fra__provinz = 'Province* :';
var dut__provinz = 'Gemeente*:';

var dut_lux_city = 'Postcode*:';
var fra_lux_city = 'Code Postal* :';
var dut_bel_city = 'Gemeente*:';
var fra_bel_city = 'Commune* :';



var pay = "";

function getProvince(str) {
    if (str != '') {
        
        pay = str;
        provinz = eval(lang + '_' + str + '_provinz');
        city = eval(lang + '_' + str + '_city');
        $("#hint_province").text(provinz);
        $("#hint_city").text(city);
        $("#city_list_label").html("");
        $("#street_label").html("");
        
        // reset Hidden Fields 
        document.getElementById("city_id").value = ('');
        document.getElementById("city").value = ('');
        document.getElementById("postalcode").value = ('');
        
        objCities=document.getElementById("city_list");
        objCities.options.length = 0;
        
        objStreets=document.getElementById("street");
        objStreets.options.length = 0;
        
        xmlHttp3=GetXmlHttpObject();
        if (xmlHttp3==null) {
            alert ("Il tuo browser non è supportato dal formato XMLHTTP");
            return;
        }
        var url="http://www.mccain.it/static/postdb/" + str + "_provinces.php" + "?lang=" + lang + "&rand="+parseInt(Math.random()*999999999999999);
        xmlHttp3.onreadystatechange=provincesStatusChanged;
        xmlHttp3.open("GET",url,true);
        xmlHttp3.send(null);
        
    } else {
    
        provinz = eval(lang + '_bel_provinz');
        city = eval(lang + '_bel_city');
        
        $("#province_label").html("");
        $("#hint_province").text(provinz);
        $("#hint_city").text(city);
        $("#city_list_label").html("");
        $("#street_label").html("");
        
        objProvinces=document.getElementById("province");
		objProvinces.options.length = 0;
		
        objCities=document.getElementById("city_list");
        objCities.options.length = 0;
        
        objStreets=document.getElementById("street");
        objStreets.options.length = 0;
    }
}

function provincesStatusChanged() {
	if (xmlHttp3.readyState==4 || xmlHttp3.readyState=="complete") {
        
		objProvinces=document.getElementById("province");
		objProvinces.options.length = 0;

		province = objProvinces.value;
		
		xmlDoc=xmlHttp3.responseXML;
		provinces = xmlDoc.getElementsByTagName("province");

		switch(provinces.length) {
			case 0:
			objProvinces.options[objProvinces.options.length] = new Option('FM_script_country', "");
            $("#country_label").html ("FM_script_country", "");
			break;
			default:
            $("#province_label").html("");
			objProvinces.options[objProvinces.options.length] = new Option("", "");
			for (i=0;i<provinces.length;i++) {
                objProvinces.options[objProvinces.options.length] = new Option(provinces[i].childNodes[0].nodeValue, provinces[i].childNodes[0].nodeValue);
                objProvinces.options[i+1].setAttribute("id", provinces[i].getAttribute("id"));

                if(province != "" && provinces[i].childNodes[0].nodeValue == province) {
                    objProvinces.options[i+1].setAttribute("selected", "selected");
                    $("#province_label").html(province);
	        		getBeneluxCities(provinces[0].getAttribute("id"),langprefix);
                }
			}
		}
	}
}

function getBeneluxCities(id) {
	xmlHttp4=GetXmlHttpObject();
	if (xmlHttp4==null) {
		alert ("Il tuo browser non è supportato dal formato XMLHTTP");
		return;
	}
	
	if (pay == "lux") {
	    var url="http://www.mccain.it/static/postdb/lux_postcodes.php?province_id=" + id;
	} else { 
	    var url="http://www.mccain.it/static/postdb/bel_cities.php?langprefix=" + lang + "&province_id=" + id;
	}
	url=url + "&rand="+parseInt(Math.random()*999999999999999);
	xmlHttp4.onreadystatechange=citiesBeneluxStatusChanged;
	xmlHttp4.open("GET",url,true);
	xmlHttp4.send(null);
}


var street = "";

function citiesBeneluxStatusChanged() {
	if (xmlHttp4.readyState==4 || xmlHttp4.readyState=="complete") {

		objStreets=document.getElementById("street");
		street = objStreets.value;
		objStreets.options.length = 0;
		
		objCities=document.getElementById("city_list");
		city = objCities.value;
		objCities.options.length = 0;

		objCitielabel=document.getElementById("city_label");

		xmlDoc=xmlHttp4.responseXML;
		cities = xmlDoc.getElementsByTagName("city");

		switch(cities.length) {
			case 0:
            $("#city_label").html ("Inserite un codice postale valido", "");
			objCities.options[objCities.options.length] = new Option('Inserite un codice postale valido', "");
			break;
			case 1:
                objCities.options[objCities.options.length] = new Option(cities[0].childNodes[0].nodeValue, cities[0].childNodes[0].nodeValue);
                $("#city_list_label").html (cities[0].childNodes[0].nodeValue);
                $("#city option").attr("id",cities[0].getAttribute("id"));
                $("#city_id").val(cities[0].getAttribute("id"));
                getStreets(cities[0].getAttribute("id"),langprefix);
                break;
			default:
            $("#city_list_label").html("Selezionate la vostra città");
			objCities.options[objCities.options.length] = new Option("Selezionate la vostra città", "");
                for (i=0;i<cities.length;i++) {
                    objCities.options[objCities.options.length] = new Option(cities[i].childNodes[0].nodeValue, cities[i].getAttribute("value"));
                    objCities.options[i+1].setAttribute("id", cities[i].getAttribute("id"));
    
                    if(city != "" && cities[i].childNodes[0].nodeValue == city) {
                        objCities.options[i+1].setAttribute("selected", "selected");
                        $("#city_label").html(city);
                        getStreets(cities[0].getAttribute("id"),langprefix);
                    }
                }
		}
	}
}


function getCities(str, langpfx) {
	if (langpfx != undefined) langprefix = langpfx;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Il tuo browser non è supportato dal formato XMLHTTP");
		return;
	}
	var url="http://www.mccain.it/static/postdb/" + (langprefix != '' ? langprefix : lang) + "_cities.php";
	url=url+"?pc="+str+"&lang=" + lang +(langprefix != '' ? '&langprefix=' + langprefix : '') + "&rand="+parseInt(Math.random()*999999999999999); // vermijd caching problemen;
	xmlHttp.onreadystatechange=citiesStatusChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}


function citiesStatusChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {

		objStreets=document.getElementById("street");

		street = objStreets.value;

		objStreets.options.length = 0;

		objCities=document.getElementById("city");

		city = objCities.value;

		objCities.options.length = 0;

		objCitielabel=document.getElementById("city_label");

		xmlDoc=xmlHttp.responseXML;
		cities = xmlDoc.getElementsByTagName("city");

		switch(cities.length) {
			case 0:
            $("#city_label").html ("Inserite un codice postale valido", "");
			objCities.options[objCities.options.length] = new Option('Inserite un codice postale valido', "");
			break;
			case 1:
			objCities.options[objCities.options.length] = new Option(cities[0].childNodes[0].nodeValue, cities[0].childNodes[0].nodeValue);
            $("#city_label").html (cities[0].childNodes[0].nodeValue);
			$("#city option").attr("id",cities[0].getAttribute("id"));
			$("#city_id").val(cities[0].getAttribute("id"));
			getStreets(cities[0].getAttribute("id"));
			break;
			default:
            $("#city_label").html("Selezionate la vostra città");
			objCities.options[objCities.options.length] = new Option("Selezionate la vostra città", "");
			for (i=0;i<cities.length;i++) {
                objCities.options[objCities.options.length] = new Option(cities[i].childNodes[0].nodeValue, cities[i].childNodes[0].nodeValue);
                objCities.options[i+1].setAttribute("id", cities[i].getAttribute("id"));

                if(city != "" && cities[i].childNodes[0].nodeValue == city) {
                    objCities.options[i+1].setAttribute("selected", "selected");
                    $("#city_label").html(city);
	        		getStreets(cities[0].getAttribute("id"),langprefix);
                }
			}
		}
	}
}

function getStreets(str, langpfx) {
	if (langpfx != undefined) langprefix = langpfx;
	
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("Your browser doesn't support XMLHTTP");
		return;
	}
	if (pay == "lux") {
	    var url="http://www.mccain.it/static/postdb/lux_streets.php";
	} else {
    	var url="http://www.mccain.it/static/postdb/" + (langprefix != '' ? langprefix : lang) + "_streets.php";
	}

	url=url+"?pc="+str+"&lang=" + lang + (langprefix != '' ? '&langprefix=' + langprefix : '') + "&rand="+parseInt(Math.random()*999999999999999); // vermijd caching problemen;
	xmlHttp2.onreadystatechange=streetsStatusChanged;
	xmlHttp2.open("GET",url,true);
	xmlHttp2.send(null);
}

function streetsStatusChanged() {
	if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {

		objStreets=document.getElementById("street");
//        console.log("street: "+street);

        objUserStreet = document.getElementById("user_street");
		user_street = objUserStreet.value;

		objStreets.options.length = 0;


		xmlDoc=xmlHttp2.responseXML;
		streets = xmlDoc.getElementsByTagName("street");

		switch(streets.length) {
			case 0:
			objStreets.options[objStreets.options.length] = new Option('Inserite un codice postale valido', "");
            $("#street_label").html ("Inserite un codice postale valido", "");
			break;
			default:
			if(user_street != "") {
    			objStreets.options[objStreets.options.length] = new Option(user_street,user_street);
    			objStreets.options[0].setAttribute("selected", "selected");
                $("#street_label").html (user_street, "");
			} else {
    			objStreets.options[objStreets.options.length] = new Option('Selezionai la via', "");
                $("#street_label").html ("Selezionai la via", "");
            }
			for (i=0;i<streets.length;i++) {
				objStreets.options[objStreets.options.length] = new Option(streets[i].childNodes[0].nodeValue,streets[i].childNodes[0].nodeValue);
				objStreets.options[i+1].setAttribute("id", streets[i].getAttribute("id"));

                if(user_street != "" && streets[i].childNodes[0].nodeValue == user_street.toUpperCase()) {
                    objStreets.options[i+1].setAttribute("selected", "selected");
                    $("#street_label").html(streets[i].childNodes[0].nodeValue);
                    objStreets.options[0] = new Option('Selezionai la via', "");
                }
                if (street != "" && streets[i].childNodes[0].nodeValue == street.toUpperCase()) {
                    objStreets.options[i+1].setAttribute("selected", "selected");
                    $("#street_label").html(streets[i].childNodes[0].nodeValue);
                    objStreets.options[0] = new Option('Selezionai la via', "");
                }
			}
		}
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try{
		xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


var _dialogPromptID=null;
var _blackoutPromptID=null;

function IEprompt(innertxt,def) {

	that=this;

	var _isIE7=true;

	this.wrapupPrompt = function (cancled) {
		document.getElementById('city').style.display='';
		document.getElementById('street').style.display='';

		if (_isIE7) {
			val=document.getElementById('iepromptfield').value;
			_dialogPromptID.style.display='none';
			_blackoutPromptID.style.display='none';
			document.getElementById('iepromptfield').value = '';
			if (cancled) { val = '' }
			promptCallback(val);
		}
		return false;
	}
	if (def==undefined) { def=''; }
	if (_isIE7) {
		if (_dialogPromptID==null) {
			var tbody = document.getElementsByTagName("body")[0];
			tnode = document.createElement('div');
			tnode.id='IEPromptBox';
			tbody.appendChild(tnode);
			_dialogPromptID=document.getElementById('IEPromptBox');
			tnode = document.createElement('div');
			tnode.id='promptBlackout';
			tbody.appendChild(tnode);
			_blackoutPromptID=document.getElementById('promptBlackout');
			_blackoutPromptID.style.opacity='.5';
			_blackoutPromptID.style.position='absolute';
			_blackoutPromptID.style.top='0px';
			_blackoutPromptID.style.left='0px';
			_blackoutPromptID.style.backgroundColor='#555555';
			_blackoutPromptID.style.filter='alpha(opacity=90)';
			_blackoutPromptID.style.height=(document.body.offsetHeight<screen.height) ? screen.height+'px' : document.body.offsetHeight+20+'px';
			_blackoutPromptID.style.display='block';
			_blackoutPromptID.style.fontFamily='Arial';
			_blackoutPromptID.style.zIndex='1000';
			_dialogPromptID.style.border='2px solid #a63137';
			_dialogPromptID.style.backgroundColor='#fff294';
			_dialogPromptID.style.position='absolute';
			_dialogPromptID.style.width='330px';
			_dialogPromptID.style.zIndex='1100';
		}

//		document.getElementById('city').style.display='none';
//		document.getElementById('street').style.display='none';

		var tmp = '<div style="width: 100%; background-color: #af2f12; color: white; font-family: Arial,Helvetica,sans-serif; font-size: 10pt; font-weight: bold; height: 20px">'+innertxt + '</div>';
		tmp += '<div style="padding: 10px;font-family:Arial,Helvetica,sans-serif;font-size:11px;"><BR>';
		tmp += '<form action="" onsubmit="return that.wrapupPrompt()">';
		tmp += '<input id="iepromptfield" name="iepromptdata" type="text" size="46" style="width:300px" value="'+def+'">';
		tmp += '<br><br><center>';
		tmp += '<input type="submit" style="font-family:Arial,Helvetica,sans-serif" value="&nbsp;&nbsp;&nbsp;OK&nbsp;&nbsp;&nbsp;">';
		tmp += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		tmp += '<input type="button" onclick="that.wrapupPrompt(true)" style="font-family:arial" value="&nbsp;Cancel&nbsp;">';
		tmp += '</form></div>';
		_blackoutPromptID.style.height=(document.body.offsetHeight<screen.height) ? screen.height+'px' : document.body.offsetHeight+20+'px';
		_blackoutPromptID.style.width='100%';
		_blackoutPromptID.style.display='block';
		_dialogPromptID.innerHTML=tmp;
		_dialogPromptID.style.top=parseInt(document.documentElement.scrollTop+(screen.height/3))+'px';
		_dialogPromptID.style.left=parseInt((document.body.offsetWidth-315)/2)+'px';
		_dialogPromptID.style.display='block';
		document.getElementById('iepromptfield').value = document.getElementById('street2').value;
		document.getElementById('iepromptfield').focus();
	} else {
		promptCallback(prompt(innertxt,def));
	}
}

function promptCallback(val) {
	if (val != null && val.length > 2) {
		activateUserStreet(val);
	}
}

function activateUserStreet(val) {
    objStreets=document.getElementById("street");
    objStreets.options.length = 0;
	objStreets.options[objStreets.options.length] = new Option(val,val);
	document.getElementById('street_label').innerHTML = val;
	document.getElementById('user_street').value = val;
	document.getElementById('street_type').value = 'user';
	document.getElementById('street2').disabled=true;
}


function deactivateUserStreet() {
	document.getElementById('street').style.display='inline';
	objStreets=document.getElementById("street");
	objStreets.options.length = 0;
	objStreets.options[objStreets.options.length] = new Option("Inserite un codice postale valido", "");
	document.getElementById('user_street').value = '';
	document.getElementById('street_type').value = 'db';
	document.getElementById('street2').disabled=false;
}
