
var opt = {};

opt.optLabels = new Array();
opt.optVals = new Array();



var countrySelect;
var stateSelect;
var citySelect;
var citypartSelect;
var mallSelect;

var isIE = (navigator.appName == "Microsoft Internet Explorer");

function addEvent(myObject, myEventType, myFunction)
{
 // for netscape type browsers
 if(myObject.addEventListener)
 {

  myObject.addEventListener(myEventType, myFunction, false);
  return true;
 }
// for IE
 else if (myObject.attachEvent)
 {
  var r = myObject.attachEvent('on' + myEventType, myFunction);
  return r;
  }
 // return false for anything else unsupported
 else
 {
 return false;
 }
}

function mkDummySelect(element, value, save_var) {
	element.options.length = 0;
	var elemRef = d.createElement("option");
	elemRef.value = value;
	elemRef.label = "*";
	elemRef.text = "*";
	if(isNav) { 
		elemRef.innerHTML = "*";
   		element.add(elemRef, null);
	}
	else
		element.add(elemRef);
		
	element.value = value; lcSaved[save_var] = value;	
	
}
function lcsInit_elements() {
	countrySelect = d.getElementById("country");
	stateSelect = d.getElementById("state");
	citySelect = d.getElementById("city");
	citypartSelect = d.getElementById("citypart");
	mallSelect = d.getElementById("mall_select");
	if(lcSaved.useMALL) {
		mall_select = d.getElementById("mall_select");
    	mall_sel_div = d.getElementById("mall_select_div");
	}
}

function lcsInit() {
	lcsInit_elements();
	if(lcSaved.useMALL)
		mall_select_Init();
	// Check if form has been submitted	
	if(lcSaved.CN == undefined) {
		initCountry(0);
	} else {
		initCountry(1);
	}
	


};

function checkSaveLocation(select, saveVar, valToSet) {

	var found = 0;
	for(x=0;x<select.options.length;x++) {
		if(select.options[x].value == lcSaved[saveVar]) {
			select.value = lcSaved[saveVar];
			return;
		}
	}

	select.value = valToSet;
	lcSaved[saveVar] = valToSet;

}

function initCountry(initialState){

    var countrySelOptions = countrySelect.options;
    
	var itemsVal = lcSaved.defVAL;
		
    if (initialState == 1) {
		getSelectInfo("CN", "0", countrySelect);
		reconstructSelect(countrySelect, opt.optLabels, opt.optVals);
		checkSaveLocation(countrySelect,"CN",itemsVal);
		if (countrySelect.value < 0) {
			if (lcSaved.useMALL) 
				mkDummySelect(mallSelect, itemsVal, "ML");
			mkDummySelect(stateSelect, itemsVal, "CS");
			mkDummySelect(citySelect, itemsVal, "CC");
			mkDummySelect(citypartSelect, itemsVal, "CP");
		}
		else {
			getSelectInfo("CS", lcSaved.CN, stateSelect);
			reconstructSelect(stateSelect, opt.optLabels, opt.optVals);
			checkSaveLocation(stateSelect,"CS",itemsVal);
			if (stateSelect.value < 0) {
				if(stateSelect.value == -4) itemsVal = -4;
				if (lcSaved.useMALL) 
					mkDummySelect(mallSelect, itemsVal, "ML");
				mkDummySelect(citySelect, itemsVal, "CC");
				mkDummySelect(citypartSelect, itemsVal, "CP");
			}
			else {
				getSelectInfo("CC", lcSaved.CS, citySelect);
				reconstructSelect(citySelect, opt.optLabels, opt.optVals);
				checkSaveLocation(citySelect,"CC",itemsVal);
				if (citySelect.value < 0) {
					if (lcSaved.useMALL) 
						mkDummySelect(mallSelect, itemsVal, "ML");
					if(citySelect.value == -4)	
						mkDummySelect(citypartSelect, -4, "CP");
					else
						mkDummySelect(citypartSelect, itemsVal, "CP");
				}
				else {
					getSelectInfo("CP", lcSaved.CC, citypartSelect);
					reconstructSelect(citypartSelect, opt.optLabels, opt.optVals);
					checkSaveLocation(citypartSelect,"CP",itemsVal);
					if (lcSaved.useMALL) {
						if (citypartSelect.value < 0) {
							mkDummySelect(mallSelect, itemsVal, "ML");
						}
						else {
							mall_select_update("citypart",lcSaved.CP);
							checkSaveLocation(mallSelect, "ML", itemsVal);
						}
					}
				}
			}
		}
	}
	else {
	
		getSelectInfo("CN", "0", countrySelect);
		reconstructSelect(countrySelect, opt.optLabels, opt.optVals);
		if (lcSaved.useMALL) {
			mkDummySelect(mallSelect, itemsVal, "ML");
		}
		
		mkDummySelect(stateSelect, itemsVal, "CS");
		mkDummySelect(citySelect, itemsVal, "CC");
		mkDummySelect(citypartSelect, itemsVal, "CP");
	}
    if(lcSaved.useMALL)
		mall_select_Init();
    
}



function decomposeSelectVal(rdata, opt_Object) {
	var resp_parts = rdata.split("#");
	opt_Object.optLabels = resp_parts[0].split(",");
	opt_Object.optVals = resp_parts[1].split(",");
}

function getSelectInfo(locType, locID, selectElement){

	selectElement.innerHTML = "<option selected>Loading...</option>";
	var modeSel = "";
	var url = "";
	var locDep = "-4";
	
	if (lcSaved.totals) {

		url = ContextPath+"/LCS?getLocFiltered=1&lng="+CurrentLocale+"&cn="+lcSaved.CN+"&cs="+
		lcSaved.CS+"&cc="+lcSaved.CC + "&cp="+lcSaved.CP+"&locType="+locType+"&cf="+run_mode;
		
	} else	 
		url = ContextPath + "/LCS?lct=" + locType + "&lID=" + locID + "&lng=" + CurrentLocale + lcSaved.Opts;
		
    httpRequest("GET",url,false, 1, opt);

}

function countryChanged() {

		sel_Value = lcSaved.defVAL;
		
		lcSaved.CN = countrySelect.value;

			mkDummySelect(stateSelect,sel_Value, "CS");
			mkDummySelect(citySelect,sel_Value, "CC"); 
			mkDummySelect(citypartSelect,sel_Value, "CP");
		if (lcSaved.useMALL)	 
			mkDummySelect(mallSelect,sel_Value, "ML");
						
		if(parseInt(countrySelect.value)< 0) 
			return;
	
    	var stateSelOptions = stateSelect.options;
	 	lcSaved.CN = countrySelect.options[countrySelect.selectedIndex].value;
	 	getSelectInfo("CS", countrySelect.options[countrySelect.selectedIndex].value, stateSelect);
	 	reconstructSelect(stateSelect, opt.optLabels, opt.optVals);
		stateSelect.selectedIndex = 0;
		citySelect.selectedIndex = citypartSelect.selectedIndex = 0;

}

function stateChanged() {

	sel_Value = lcSaved.defVAL;

	lcSaved.CS = stateSelect.value;
	mkDummySelect(citySelect,sel_Value, "CC");
	mkDummySelect(citypartSelect,sel_Value, "CP");
	
	if (lcSaved.useMALL)	
		mkDummySelect(mallSelect,sel_Value, "ML");
	
	if(parseInt(stateSelect.value) < 0) {
			if(lcSaved.CS == -4) {
			mkDummySelect(citySelect,-4,"CC");
			mkDummySelect(citypartSelect,-4,"CP");
			if (lcSaved.useMALL)
				mkDummySelect(mallSelect,-4,"ML");
		}
		return;
	}
		
	
    var citySelOptions = citySelect.options;
	lcSaved.CS = stateSelect.options[stateSelect.selectedIndex].value;
	getSelectInfo("CC", stateSelect.options[stateSelect.selectedIndex].value, citySelect);
	
	reconstructSelect(citySelect, opt.optLabels, opt.optVals);
	
	citySelect.selectedIndex = 0;

	if(citySelect.value == -4)
		mkDummySelect(citypartSelect,-4,"CP");

}

function cityChanged(){
	sel_Value = lcSaved.defVAL;
	
	lcSaved.CC = citySelect.value;
	
	mkDummySelect(citypartSelect, sel_Value, "CP");

	if (lcSaved.useMALL) {
		mkDummySelect(mallSelect, sel_Value, "ML");
		mall_select_update("city",citySelect.value);
	}
	if (parseInt(citySelect.value) < 0) { // Please choose...
			if(lcSaved.CC == -4) {
			mkDummySelect(citypartSelect,-4,"CP");
			if (lcSaved.useMALL)
				mkDummySelect(mallSelect,-4,"ML");
		}
		return;
	}
		
	var citypartSelOptions = citypartSelect.options;
	lcSaved.CC = citySelect.options[citySelect.selectedIndex].value;
	getSelectInfo("CP", citySelect.options[citySelect.selectedIndex].value, citypartSelect);
	
	reconstructSelect(citypartSelect, opt.optLabels, opt.optVals);
	citypartSelect.selectedIndex = 0;
	



}
function citypartChanged() {

	lcSaved.CP = citypartSelect.value; 
	mkDummySelect(mallSelect, -4, "ML");
	if (parseInt(citypartSelect.value) < 0) { // Please choose...
			if(lcSaved.CP == -4) {
				if (lcSaved.useMALL)
				mkDummySelect(mallSelect,-4,"ML");
		}
		 return;
	}
	
	if (lcSaved.useMALL) {
		mall_select_update("citypart", citypartSelect.value);
	}
	
    var mallSelOptions = mallSelect.options;
	lcSaved.CP = citypartSelect.options[citypartSelect.selectedIndex].value;
	mallSelect.selectedIndex = 0;


}

function mallChanged() {
	lcSaved.ML = mallSelect.value;
	getMallAddr(mallSelect);
}


var malls_sel = {};
malls_sel.optLabels = new Array();
malls_sel.optVals = new Array();
malls_sel.Deps = new Array();
malls_sel.DepCits = new Array();

var mallAddr = "";

var isNav = (navigator.appName == "Netscape");

var mall_check_cb;
var mall_check_div;
var mall_add;
var mall_inp;
var mall_sel_div;
var mall_addr;

var mall_select;
var mall_select_div;

function mall_select_update(target_name, target_value) {
	if(target_value > 0) {
		if(lcSaved.useMALLDIV)
			mall_select.removeAttribute("disabled");

			var url = ContextPath + "/LCS?lct=ML&lID=" + d.getElementById(target_name).value + "&ctype=" + target_name + "&lng=" + CurrentLocale + lcSaved.Opts;
			httpRequest("GET", url, false, 0, 0);
			
			var retData = ajax_returnData;
			var retDataSplitted = retData.split('\r');
			malls_sel.optLabels = retDataSplitted[0].split('\n');
			malls_sel.optVals = retDataSplitted[1].split('\n');
			malls_sel.Deps = retDataSplitted[2].split('\n');
			malls_sel.DepCits = retDataSplitted[3].split('\n');
			
			reconstructSelect(mall_select, malls_sel.optLabels, malls_sel.optVals);
			
			// Check if single choice - hide view address button
			if(malls_sel.optLabels.length < 2 && lcSaved.useMALLDIV)
				d.getElementById("mall_addr_link").innerHTML = "";
		
		
	} else {
		if (lcSaved.useMALLDIV) {
			mall_select.setAttribute("disabled", "disabled");
			d.getElementById("mall_addr_link").innerHTML = "";
		}
	}
}
// Function enables button that used for forming address
function addr_button_Enable(event) {
// Catch event properties	
var e = event || window.event;
var target = e.target || e.srcElement;

mall_select_update(target.name, target.value);

	
}


function getMallAddr(mall_select) {
	var mladr;
	
	if(mall_select.value > 0) {
		if (lcSaved.useMALLDIV) {
			var url = ContextPath + "/LCS?lct=MLA&lID=" + mall_select.value + "&lng=" + CurrentLocale;
			httpRequest("GET", url, false, 0, mladr);
			mallAddr = ajax_returnData; ajax_returnData = "";
			d.getElementById("mall_addr_link").innerHTML = "&nbsp;" + "<input type='button' class='dt10pt-vm' onclick='showMallAddr()' value='" + hM.edtViewAddress + "'></input>";
		}
		if (malls_sel.DepCits[mall_select.selectedIndex] != "0") 
			lcSaved.CC =  d.getElementById("city").value = malls_sel.DepCits[mall_select.selectedIndex];
			
		if(malls_sel.Deps[mall_select.selectedIndex] != "0")
			lcSaved.CP = d.getElementById("citypart").value = malls_sel.Deps[mall_select.selectedIndex];	
		 
	} else
		if(lcSaved.useMALLDIV)
			d.getElementById("mall_addr_link").innerHTML = "";
}


function mall_select_Init() {
	if(lcSaved.ML !== ""  && lcSaved.useMALLDIV) {
		mall_select.removeAttribute("disabled");
		mall_select_update("city",d.getElementById("city").value);
		
		mall_select.value = lcSaved.ML;
		if(lcSaved.ML != "-3" && lcSaved.ML != "-1")
			getMallAddr(mall_select);
	}
	
}

function showMallAddr() {
	alert(mallAddr);
}



