var arrArea;
var arrCountry;
var arrCode;
var arrCodeBase;
var arrFirst;

var strForm = "code_select";
var strArea = "area";
var strCountry = "country";
var strCode = "code";

function setArray() {
	arrArea = [
		{ "text" : "Asia", "value" : "asia" },
		{ "text" : "Middle East, Africa and CIS Countries", "value" : "middle_east" },
		{ "text" : "North and South America", "value" : "america" },
		{ "text" : "Europe", "value" : "europe" }
	];
	arrCountry = {
		"asia" : [
			{ "text" : "Bangladesh", "value" : "bangladesh" },
			{ "text" : "Brunei", "value" : "brunei" },
			{ "text" : "China", "value" : "china" },
			{ "text" : "Hong Kong", "value" : "hongkong" },
			{ "text" : "India", "value" : "india" },
			{ "text" : "Indonesia", "value" : "indonesia" },
			{ "text" : "Korea", "value" : "korea" },
			{ "text" : "Macau", "value" : "macau" },
			{ "text" : "Malaysia", "value" : "malaysia" },
			{ "text" : "Myanmar", "value" : "myanmar" },
			{ "text" : "Maldives", "value" : "maldives" },
			{ "text" : "Pakistan", "value" : "pakistan" },
			{ "text" : "Philippines", "value" : "philippines" },
			{ "text" : "Singapore", "value" : "singapore" },
			{ "text" : "Sri Lanka", "value" : "srilanka" },
			{ "text" : "Taiwan", "value" : "taiwan" },
			{ "text" : "Thailand", "value" : "thailand" },
			{ "text" : "Vietnam", "value" : "vietnam" }
		],
		"america" : [
			{ "text" : "Argentina", "value" : "argentina" },
			{ "text" : "Brazil", "value" : "brazil" },
			{ "text" : "Chile", "value" : "chile" },
			{ "text" : "Colombia", "value" : "colombia" },
			{ "text" : "Costa Rica", "value" : "costarica" },
			{ "text" : "Ecuador", "value" : "ecuador" },
			{ "text" : "El Salvador", "value" : "elsalvador" },
			{ "text" : "Guatemala", "value" : "guatemala" },
			{ "text" : "Honduras", "value" : "honduras" },
			{ "text" : "Mexico", "value" : "mexico" },
			{ "text" : "Nicaragua", "value" : "nicaragua" },
			{ "text" : "Panama", "value" : "panama" },
			{ "text" : "Paraguay", "value" : "paraguay" },
			{ "text" : "Peru", "value" : "peru" },
			{ "text" : "Dominica", "value" : "dominica" },
			{ "text" : "U.S.A.", "value" : "usa" },
			{ "text" : "Uruguay", "value" : "uruguay" },
			{ "text" : "Venezuela", "value" : "venezuela" }
		],
		"middle_east" : [
			{ "text" : "Azerbaijan", "value" : "azerbaijan" },
			{ "text" : "Bahrain", "value" : "bahrain" },
			{ "text" : "Egypt", "value" : "egypt" },
			{ "text" : "Georgia", "value" : "georgia" },
			{ "text" : "Jordan", "value" : "jordan" },			
			{ "text" : "Kazakhstan", "value" : "kazakhstan" },
			{ "text" : "Kenya", "value" : "kenya" },
			{ "text" : "Kuwait", "value" : "kuwait" },
			{ "text" : "Kyrgyzstan", "value" : "kyrgyzstan" },
			{ "text" : "Lebanon", "value" : "lebanon" },
			{ "text" : "Nigeria", "value" : "nigeria" },			
			{ "text" : "Oman", "value" : "oman" },
			{ "text" : "Qatar", "value" : "qatar" },
			{ "text" : "Saudi Arabia", "value" : "saudiarabia" },
			{ "text" : "South Africa", "value" : "southafrica" },
			{ "text" : "Tajikistan", "value" : "tajikistan" },
			{ "text" : "Tanzania", "value" : "tanzania" },
			{ "text" : "Turkey", "value" : "turkey" },
			{ "text" : "Turkmenistan", "value" : "turkmenistan" },
			{ "text" : "UAE", "value" : "uae" },
			{ "text" : "Uganda", "value" : "uganda" },
			{ "text" : "Uzbekistan", "value" : "uzbekistan" },
			{ "text" : "Yemen", "value" : "yemen" }
		],
		"europe" : [
			{ "text" : "Belgium", "value" : "belgium" },
			{ "text" : "Cyprus", "value" : "cyprus" },
			{ "text" : "Denmark", "value" : "denmark" },
			{ "text" : "France", "value" : "france" },
			{ "text" : "Greece", "value" : "greece" },
			{ "text" : "Ireland", "value" : "ireland" },
			{ "text" : "Luxemburg", "value" : "luxemburg" },
			{ "text" : "Netherlands", "value" : "netherlands" },
			{ "text" : "Norway", "value" : "norway" },
			{ "text" : "Romania", "value" : "romania" },
			{ "text" : "Spain", "value" : "spain" },
			{ "text" : "United Kingdom", "value" : "united" }
		]
	};
	arrCode = {
		"bangladesh" : 0,
		"brunei" : 0,
		"china" : 1,
		"hongkong" : 1,
		"india" : 0,
		"indonesia" : 0,
		"korea" : 0,
		"macau" : 0,
		"malaysia" : 0,
		"myanmar" : 0,
		"maldives" : 0,
		"pakistan" : 0,
		"philippines" : 0,
		"singapore" : 0,
		"srilanka" : 0,
		"taiwan" : 0,
		"thailand" : 0,
		"vietnam" : 2,
		"argentina" : 0,
		"brazil" : 0,
		"chile" : 0,
		"colombia" : 0,
		"costarica" : 0,
		"ecuador" : 0,
		"elsalvador" : 0,
		"guatemala" : 0,
		"honduras" : 0,
		"mexico" : 0,
		"nicaragua" : 0,
		"panama" : 0,
		"paraguay" : 0,
		"peru" : 0,
		"dominica" : 0,
		"usa" : 3,
		"uruguay" : 0,
		"venezuela" : 0,
		"azerbaijan" : 0,
		"bahrain" : 0,
		"egypt" : 0,
		"jordan" : 0,
		"georgia" : 0,		
		"kazakhstan" : 0,
		"kenya" : 0,
		"kuwait" : 0,
		"kyrgyzstan" : 0,
		"lebanon" : 2,
		"nigeria" : 0,		
		"oman" : 0,
		"qatar" : 0,
		"saudiarabia" : 0,
		"southafrica" : 2,
		"tajikistan" : 0,
		"tanzania" : 0,
		"turkey" : 2,
		"turkmenistan" : 0,
		"uae" : 0,
		"uganda" : 0,
		"uzbekistan" : 0,
		"yemen" : 0,
		"belgium" : 2,
		"cyprus" : 2,
		"denmark" : 2,
		"france" : 2,
		"greece" : 2,
		"ireland" : 2,
		"luxemburg" : 2,
		"netherlands" : 2,
		"norway" : 2,
		"romania" : 2,
		"spain" : 2,
		"united" : 2
	};
	arrCodeBase = [
		[
			{ "text" : "Mitsubishi Std.", "value" : "basic" },
			{ "text" : "EN", "value" : "en" },
			{ "text" : "GB/HK", "value" : "gbhk" },
		],
		[ { "text" : "GB/HK", "value" : "gbhk" } ],
		[ { "text" : "EN", "value" : "en" } ],
		[ { "text" : "ASME", "value" : "asme" } ]
	];
	return;
}

function formatOptions(objSelect) {
	while (objSelect.options.length > 0) {
	if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
		objSelect.remove(0);
	} else {
		objSelect.removeChild(objSelect.lastChild);
	}
	}
	var objOption = document.createElement('option');
	objOption.value = '""';
	if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
		objOption.text = "-- Select --";
		objSelect.add(objOption);
	} else {
		objOption.appendChild(objOption.ownerDocument.createTextNode("-- Select --")); 
		objSelect.appendChild(objOption);
	}
	return;
}

function setOptions() {
	if (checkNetscape4()) { setOptionsNs4(); return; }
	arrFirst = loadCookie();
	if (arrFirst["code"] != "basic" &&  arrFirst["code"] != "en" && arrFirst["code"] != "gbhk" && arrFirst["code"] != "asme") {
		arrFirst["code"] = "basic";
	}
	strTmp1 = "/" + arrFirst["code"] + "/";
	strPath = parent.location.pathname;
	if (strPath.indexOf("s" + strTmp1) < 0) {
		strTmp2 = strPath.match(/s\/basic\/|s\/en\/|s\/gbhk\/|s\/asme\//)
		arrTmp = strPath.split(strTmp2);
		parent.location.href = arrTmp[0] + "s" + strTmp1 + arrTmp[1];
		return;
	}
	setArray();
	var intForm = findForm(strForm);
	var intArea = findElement(strForm, strArea);
	var objArea = document.forms[intForm].elements[intArea];
	for (i in arrArea) {
		var objOption = document.createElement('option');
		objOption.value = arrArea[i]["value"];
		if (arrFirst["area"] == objOption.value) { objOption.selected = true; }
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objOption.text = arrArea[i]["text"];
			objArea.add(objOption);
		} else {
			objOption.appendChild(objOption.ownerDocument.createTextNode(arrArea[i]["text"])); 
			objArea.appendChild(objOption);
		}
		if(navigator.userAgent.indexOf("Opera")>0 &&arrFirst["area"] == objOption.value ){
			objArea.selectedIndex = objArea.length - 1;
		}
	}
	if (arrFirst["area"].length > 0) { setCountries(arrFirst["area"]); }
	if (arrFirst["country"].length > 0) { setCodes(arrFirst["country"]); }
	if (arrFirst["code"].length > 0 && arrFirst["country"].length < 1) { setCodesFirst(); }
	return;
}

function setCountries(selectedArea) {
	var intForm = findForm(strForm);
	var intCountry = findElement(strForm, strCountry);
	var objCountry = document.forms[intForm].elements[intCountry];
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var arrCountries = arrCountry[selectedArea];
	formatOptions(objCountry);
	formatOptions(objCode);
	for (i in arrCountries) {
		var objOption = document.createElement('option');
		objOption.value = arrCountries[i]["value"];
		if (arrFirst["country"] == objOption.value) { objOption.selected = true; }
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objOption.text = arrCountries[i]["text"];
			objCountry.add(objOption);
		} else {
			objOption.appendChild(objOption.ownerDocument.createTextNode(arrCountries[i]["text"])); 
			objCountry.appendChild(objOption);
		}
		if(navigator.userAgent.indexOf("Opera")>0 &&arrFirst["country"] == objOption.value ){
			objCountry.selectedIndex = objCountry.length - 1;
		}
	}
	return;
}

function setCountries2(selectedArea) {
	var intForm = findForm(strForm);
	var intCountry = findElement(strForm, strCountry);
	var objCountry = document.forms[intForm].elements[intCountry];
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var arrCountries = arrCountry[selectedArea];
	formatOptions(objCountry);
	formatOptions(objCode);
	for (i in arrCountries) {
		var objOption = document.createElement('option');
		objOption.value = arrCountries[i]["value"];
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objOption.text = arrCountries[i]["text"];
			objCountry.add(objOption);
		} else {
			objOption.appendChild(objOption.ownerDocument.createTextNode(arrCountries[i]["text"])); 
			objCountry.appendChild(objOption);
		}
	}
	return;
}

function setCodes(selectedCountry) {
	var intForm = findForm(strForm);
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var intBase = arrCode[selectedCountry];
	var arrSelectedCode = arrCodeBase[intBase];
	formatOptions(objCode);
	if(void[0]!=arrSelectedCode && arrSelectedCode.length==1){
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objCode.remove(0);
		} else {
			objCode.removeChild(objCode.lastChild);
		}
	}
	for (i in arrSelectedCode) {
		var objOption = document.createElement('option');
		objOption.value = arrSelectedCode[i]["value"];
		if (arrFirst["code"] == objOption.value) { objOption.selected = true; }
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objOption.text = arrSelectedCode[i]["text"];
			objCode.add(objOption);
		} else {
			objOption.appendChild(objOption.ownerDocument.createTextNode(arrSelectedCode[i]["text"])); 
			objCode.appendChild(objOption);
		}
		if(navigator.userAgent.indexOf("Opera")>0 &&arrFirst["code"] == objOption.value ){
			objCode.selectedIndex = objCode.length - 1;
		}
	}
	return;
}

function setCodes2(selectedCountry) {
	var intForm = findForm(strForm);
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var intBase = arrCode[selectedCountry];
	var arrSelectedCode = arrCodeBase[intBase];
	formatOptions(objCode);

	if(void[0]!=arrSelectedCode && arrSelectedCode.length==1){
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objCode.remove(0);
		} else {
			objCode.removeChild(objCode.lastChild);
		}
	}
	for (i in arrSelectedCode) {
		var objOption = document.createElement('option');
		objOption.value = arrSelectedCode[i]["value"];
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objOption.text = arrSelectedCode[i]["text"];
			objCode.add(objOption);
		} else {
			objOption.appendChild(objOption.ownerDocument.createTextNode(arrSelectedCode[i]["text"])); 
			objCode.appendChild(objOption);
		}
	}
	return;
}

function setCodesFirst() {
	var intForm = findForm(strForm);
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var arrSelectedCode = arrCodeBase[0];
	formatOptions(objCode);
	for (i in arrSelectedCode) {
		var objOption = document.createElement('option');
		objOption.value = arrSelectedCode[i]["value"];
		if (navigator.appVersion.indexOf("Mac") != -1 && navigator.appName.indexOf('Microsoft') != -1) {
			objOption.text = arrSelectedCode[i]["text"];
			objCode.add(objOption);
		} else {
			objOption.appendChild(objOption.ownerDocument.createTextNode(arrSelectedCode[i]["text"])); 
			objCode.appendChild(objOption);
		}
	}
	return;
}

function moveMenu() {
	var intForm = findForm(strForm);
	var intArea = findElement(strForm, strArea);
	var objArea = document.forms[intForm].elements[intArea];
	var selectedArea = objArea.options[objArea.selectedIndex].value;
	var intCountry = findElement(strForm, strCountry);
	var objCountry = document.forms[intForm].elements[intCountry];
	var selectedCountry = objCountry.options[objCountry.selectedIndex].value;
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var selectedCode = objCode.options[objCode.selectedIndex].value;
	if (selectedCode.length < 1) { return; }
	
	var arrDir = ["basic", "en", "gbhk", "asme"];
	saveCookie(selectedArea, selectedCountry, selectedCode);
	for (i in arrDir) {
		strTmp = "/" + arrDir[i] + "/";
		if (location.pathname.indexOf(strTmp) > -1) { parent.location.href = parent.location.pathname; }
	}
	return;
}

function writeHtml(boolNs4) {
	if (boolNs4) {
		document.write("<td><select name=\"area\" id=\"area\" onChange=\"setCountriesNs42(this)\">");
		writeOptions(0);
		document.write("</select></td>");
		document.write("<td><select name=\"country\" id=\"country\" onChange=\"setCodesNs42(this)\">");
		writeOptions(1);
		document.write("</select></td>");
		document.write("<td><select name=\"code\" id=\"code\">");
		writeOptions(2);
		document.write("</select></td>");
	} else {
		document.write("<td><select name=\"area\" id=\"area\" onChange=\"setCountries2(this.value)\">");
		document.write("<option value=\"\">-- Select --</option>");
		document.write("</select></td>");
		document.write("<td><select name=\"country\" id=\"country\" onChange=\"setCodes2(this.value)\">");
		document.write("<option value=\"\">-- Select --</option>");
		document.write("</select></td>");
		document.write("<td><select name=\"code\" id=\"code\">");
		document.write("<option value=\"\">-- Select --</option>");
		document.write("</select></td>");
	}
}

function writeOptions(index) {
	document.write("<option value=\"\">-- Select --</option>");
	arrMax = [4, 21, 3];
	strOption = "<option value=\"\"></option>";
	for (i=0; i<arrMax[index]; i++) { document.write(strOption); }
	return;
}

function formatOptionsNs4(objSelect) {
	objSelect.options[0].selected = true;
	for (i=1; i<objSelect.options.length; i++) {
		objSelect.options[i].text = "";
		objSelect.options[i].value = "";
	}
	return;
}

function checkNetscape4() {
	if (navigator.appName != "Netscape") { return false; }
	if (parseInt(navigator.appVersion) > 4.99 || parseInt(navigator.appVersion) < 4) { return false; }
	return true;
}

function setOptionsNs4() {
	arrFirst = loadCookie();
	if (arrFirst["code"] != "basic" &&  arrFirst["code"] != "en" && arrFirst["code"] != "gbhk" && arrFirst["code"] != "asme") {
		arrFirst["code"] = "basic";
	}
	strTmp1 = "/" + arrFirst["code"] + "/";
	strPath = parent.location.pathname;
	if (strPath.indexOf(strTmp1) < 0) {
		strTmp2 = strPath.match(/\/basic\/|\/en\/|\/gbhk\/|\/asme\//)
		arrTmp = strPath.split(strTmp2);
		parent.location.href = arrTmp[0] + strTmp1 + arrTmp[1];
		return;
	}
	setArray();
	var intForm = findForm(strForm);
	var intArea = findElement(strForm, strArea);
	var objArea = document.forms[intForm].elements[intArea];
	var intCountry = findElement(strForm, strCountry);
	var objCountry = document.forms[intForm].elements[intCountry];
	for (i in arrArea) {
		j = parseInt(i) + 1;
		objArea.options[j].value = arrArea[i]["value"];
		objArea.options[j].text = arrArea[i]["text"];
		if (arrFirst["area"] == objArea.options[j].value) { objArea.options[j].selected = true; }
	}
	if (arrFirst["area"].length > 0) { setCountriesNs4(objArea); }
	if (arrFirst["country"].length > 0) { setCodesNs4(objCountry); }
	if (arrFirst["code"].length > 0 && arrFirst["country"].length < 1) { setCodesFirstNs4(); }
	return;
}

function getSelectedValue(objSelect) {
	for (i=0; i<objSelect.options.length; i++) {
		if (objSelect.options[i].selected) { return objSelect.options[i].value; }
	}
	return "";
}

function setCountriesNs4(objArea) {
	var selectedArea = getSelectedValue(objArea);
	var intForm = findForm(strForm);
	var intCountry = findElement(strForm, strCountry);
	var objCountry = document.forms[intForm].elements[intCountry];
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var arrCountries = arrCountry[selectedArea];
	formatOptionsNs4(objCountry);
	formatOptionsNs4(objCode);
	for (i in arrCountries) {
		j = parseInt(i) + 1;
		objCountry.options[j].value = arrCountries[i]["value"];
		objCountry.options[j].text = arrCountries[i]["text"];
		if (arrFirst["country"] == objCountry.options[j].value) { objCountry.options[j].selected = true; }
	}
	return;
}

function setCountriesNs42(objArea) {
	var selectedArea = getSelectedValue(objArea);
	var intForm = findForm(strForm);
	var intCountry = findElement(strForm, strCountry);
	var objCountry = document.forms[intForm].elements[intCountry];
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var arrCountries = arrCountry[selectedArea];
	formatOptionsNs4(objCountry);
	formatOptionsNs4(objCode);
	for (i in arrCountries) {
		j = parseInt(i) + 1;
		objCountry.options[j].value = arrCountries[i]["value"];
		objCountry.options[j].text = arrCountries[i]["text"];
	}
	return;
}

function setCodesNs4(objCountry) {
	var selectedCountry = getSelectedValue(objCountry);
	var intForm = findForm(strForm);
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var intBase = arrCode[selectedCountry];
	var arrSelectedCode = arrCodeBase[intBase];
	formatOptionsNs4(objCode);
	for (i in arrSelectedCode) {
		j = parseInt(i) + 1;
		objCode.options[j].value = arrSelectedCode[i]["value"];
		objCode.options[j].text = arrSelectedCode[i]["text"];
		if (arrFirst["code"] == objCode.options[j].value) { objCode.options[j].selected = true; }
	}
	return;
}

function setCodesNs42(objCountry) {
	var selectedCountry = getSelectedValue(objCountry);
	var intForm = findForm(strForm);
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var intBase = arrCode[selectedCountry];
	var arrSelectedCode = arrCodeBase[intBase];
	formatOptionsNs4(objCode);
	for (i in arrSelectedCode) {
		j = parseInt(i) + 1;
		objCode.options[j].value = arrSelectedCode[i]["value"];
		objCode.options[j].text = arrSelectedCode[i]["text"];
	}
	if(arrSelectedCode.length==1)
		objCode.selectedIndex = 1;
	return;
}

function setCodesFirstNs4() {
	var intForm = findForm(strForm);
	var intCode = findElement(strForm, strCode);
	var objCode = document.forms[intForm].elements[intCode];
	var arrSelectedCode = arrCodeBase[0];
	for (i in arrSelectedCode) {
		j = parseInt(i) + 1;
		objCode.options[j].value = arrSelectedCode[i]["value"];
		objCode.options[j].text = arrSelectedCode[i]["text"];
	}
	return;
}

