
// fill select option
function fillOptionData(child,selectXML,selectValue) {
		moveOption(child);
		var optionsXML = selectXML;
		if(optionsXML != null) {
			if (optionsXML.length == 0) {
				child.options.length = 1;
				child.options[0].value = "";
				child.options[0].text = "select";
				return;
			} else {
				child.options.length = optionsXML.length;
				for (var i = 0; i < optionsXML.length; i++) {
					var optionXML = optionsXML[i];
					var option = child.options[i];
					option.value = optionXML.getAttribute("VALUE");
					option.text = optionXML.getAttribute("LABEL");
					if(selectValue != null) {
						if (option.value == selectValue) {
							child.selectedIndex = i;
						}
					}

				}
			}

		}

}

function LoadDataFromBack(xmlStr) {
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buylevelselect'>";
	    xml += xmlStr;
	    xml=xml+"</COMMAND></NCI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
		return returnText;
}

function FillGame() {
		
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buylevelselect'>";
	    xml += "<flag>FillGame</flag>";;
	    xml += "</COMMAND></NCI>";
	    
				    var xmlHttp  = GetXmlHttp();
				    try {
					    xmlHttp.open("POST", "/plat/xmlhttp", true);
						xmlHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
						xmlHttp.onreadystatechange=function() {
							FillGameCallBack(xmlHttp);
					    }
					    xmlHttp.send(xml);
					    
				    } catch(e) {
						alert(e);
				    }

}

function FillGameCallBack(xmlHttp) {
	//alert(xmlHttp.responseText);
	//alert("xmlHttp.readyState:"+xmlHttp.readyState +" | xmlHttp.status: "+xmlHttp.status);
	if(xmlHttp.readyState==4 && xmlHttp.status==200) {
		$("PowerlevelGames").innerHTML = xmlHttp.responseText;
		delete(xmlHttp);
	} else if(xmlHttp.readyState==1) {
		display_loadingpic("PowerlevelGames");
	}
}

function startLevel_init() {
		var gameId = $("default_game_id").value;
		if(gameId == null && gameId == "") {
			return false;
		}
		
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buylevelselect'>";
		xml += "<gameId>"+gameId+"</gameId>";
		xml += "<flag>FillStartLevel</flag>";
	    xml += "</COMMAND></NCI>";
		
				    var xmlHttp  = GetXmlHttp();
				    try {
					    xmlHttp.open("POST", "/plat/xmlhttp", true);
						xmlHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
						xmlHttp.onreadystatechange=function() {
							startLevel_initCallBack(xmlHttp);
					    }
					    xmlHttp.send(xml);
					    
				    } catch(e) {
						alert(e);
				    }
				    

}

function startLevel_initCallBack(xmlHttp) {
	if(xmlHttp.readyState==4 && xmlHttp.status==200) {
			var xmlDoc = toXmlDoc(xmlHttp.responseText);
			var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
			if(optionsXML != null) {
				fillOptionData($("selectStart"),optionsXML,null);
			}
			delete(optionsXML);
			delete(xmlDoc);
		    delete(xmlHttp);
		    
		    endLevel_init();
	} else if(xmlHttp.readyState==1) {
		PlatDisableCtrls("selectStart,selectEnd",true);
		display_loadingpic("plat_loading");
	}
}

function endLevel_init() {
		var gameId = $("default_game_id").value;
		if(gameId == null && gameId == "") {
			return false;
		}
		
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buylevelselect'>";
		xml += "<gameId>"+gameId+"</gameId>";
		xml += "<flag>FillEndLevel</flag>";
	    xml += "</COMMAND></NCI>";
	    
				    var xmlHttp  = GetXmlHttp();
				    try {
					    xmlHttp.open("POST", "/plat/xmlhttp", true);
						xmlHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
						xmlHttp.onreadystatechange=function() {
							endLevel_initCallBack(xmlHttp);
					    }
					    xmlHttp.send(xml);
					    
				    } catch(e) {
						alert(e);
				    }
				    
}


function endLevel_initCallBack(xmlHttp) {
	if(xmlHttp.readyState==4 && xmlHttp.status==200) {
			var xmlDoc = toXmlDoc(xmlHttp.responseText);
			var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
			if(optionsXML != null) {
				fillOptionData($("selectEnd"),optionsXML,null);
			}
			delete(optionsXML);
			delete(xmlDoc);
		    delete(xmlHttp);
		    
		    change_price();
	} else if(xmlHttp.readyState==1) {
		PlatDisableCtrls("selectEnd",true);
	}
}
function change_price() {
	
	var gameId = $("default_game_id").value;
	var ratesort = $("ratesort").value;
	var startlevel = $("selectStart").value;
	var endlevel = $("selectEnd").value;
	if(gameId == null && gameId == "") {
		return false;
	}
	if(startlevel == "" || endlevel == "") {
		return false;
		PlatDisableCtrls("selectStart,selectEnd",false);
	}
	
	if(parseInt(startlevel) >= parseInt(endlevel) ) {
		alert("startlevel must less than endlevel! please change. ");
		level_init();
	} else {
	
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buylevelselect'>";

		xml += "<flag>selectPrice</flag>";
		xml += "<gameId>"+gameId+"</gameId>";
		xml += "<ratesort>"+ratesort+"</ratesort>";
		xml += "<startlevel>"+startlevel+"</startlevel>";
		xml += "<endlevel>"+endlevel+"</endlevel>";
		xml += "</COMMAND></NCI>";
		
				    var xmlHttp  = GetXmlHttp();
				    try {
					    xmlHttp.open("POST", "/plat/xmlhttp", true);
						xmlHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
						xmlHttp.onreadystatechange=function() {
							change_priceCallBack(xmlHttp);
					    }
					    xmlHttp.send(xml);
					    
				    } catch(e) {
						alert(e);
				    }
				    
				    
	}
	
}

function change_priceCallBack(xmlHttp) {
	if(xmlHttp.readyState==4 && xmlHttp.status==200) {
			var xmlDoc = toXmlDoc(xmlHttp.responseText);
			var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
			if(optionsXML != null) {
				for (var i = 0; i < optionsXML.length; i++) {
					var optionXML = optionsXML[i];
					var value = optionXML.getAttribute("VALUE");
					var name = optionXML.getAttribute("LABEL");
					$(name).innerHTML = value;
				}
			}
			delete(optionsXML);
			delete(xmlDoc);
			
		    PlatDisableCtrls("selectStart,selectEnd",false);
		    $("plat_loading").innerHTML="";
	} else if(xmlHttp.readyState==1) {
		PlatDisableCtrls("selectStart,selectEnd",true);
	}
}


function level_init() {
	PlatDisableCtrls("selectStart,selectEnd",true);
	startLevel_init();
	//endLevel_init();
	//change_price();
	PlatDisableCtrls("selectStart,selectEnd",false);
}


function selectGame(gameId) {
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	window.event.srcElement.disabled = true;
	var newForm = createForm("newForm","POST","_self");
	createFormElement(newForm, "gameId", gameId);
	createFormElement(newForm, "moduleName", "levelaction");
	createFormElement(newForm, "actionFlag", "trun_detail_list");
	newForm.action = "/wow-gold";
	newForm.submit();
	
	
}

// changeRateSort
function changeRateSort(linkObj,sort) { 

	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	
	if($("ratesort").value == sort) {
		return false;
	}
	$("ratesort").value = sort;
	var sortLinks = document.getElementsByName("link_ratesort");
	if(sortLinks != null && sortLinks.length > 0) {
		//sortLinks.className 
		for(var i=0;i<sortLinks.length;i++) {
			//sortLinks[i].className = "a2";
			sortLinks[i].style.color = "#3874b0";
			sortLinks[i].style.fontSize = "12px";
		}
	}
	
	//linkObj.className = "a8";
	linkObj.style.color = "red";
	linkObj.style.fontSize = "20px";

	var priceList = document.getElementsByName("hidden_price")
	var needPriceList = document.getElementsByName("hidden_"+sort+"_price");
	if(needPriceList != null && needPriceList.length > 0 &&  priceList != null && priceList.length > 0) {
		for(var i=0;i<priceList.length;i++) {
			priceList[i].innerHTML = needPriceList[i].value;
		}
	}
	
	delete(sortLinks);
	delete(priceList);
	delete(needPriceList);
	// change price and days by ratesort
	//changeLevel("selectEnd");
	
	change_price();
}

function changeLevel(ctrlName) {

	PlatDisableCtrls("selectStart,selectEnd",true);
	$("labPrice").innerHTML = "";
	$("labDays").innerHTML = "";
	var ratesort = $("ratesort").value;
	var ctrlValue = $(ctrlName).value;
	if(ctrlName == "selectStart") {
	// fill end options
		var xml = "<flag>selectStart</flag>";
		xml += "<startId>"+ctrlValue+"</startId>";
		var returnText = LoadDataFromBack(xml);
		if(returnText != null) {
			var xmlDoc = toXmlDoc(returnText);
			var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
			if(optionsXML != null) {
				fillOptionData($("selectEnd"),optionsXML,null);
			}
			delete(optionsXML);
			delete(xmlDoc);
		}
	}
	
	// fill days and price 
	var endLevelId = $("selectEnd").value;
	var selectPriceXml = "<flag>selectPrice</flag><endLevelId>"+endLevelId+"</endLevelId><ratesort>"+ratesort+"</ratesort>";
	var returnText = LoadDataFromBack(selectPriceXml);
		if(returnText != null) {
			var xmlDoc = toXmlDoc(returnText);
			var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
			if(optionsXML != null) {
				for (var i = 0; i < optionsXML.length; i++) {
					var optionXML = optionsXML[i];
					var value = optionXML.getAttribute("VALUE");
					var name = optionXML.getAttribute("LABEL");
					$(name).innerHTML = value;
				}
			}
			delete(optionsXML);
			delete(xmlDoc);
		}

	PlatDisableCtrls("selectStart,selectEnd",false);
	
}

// submit to confim pag
function turn_detail_confirm(packageId,flag) {
	// flag 1 is package /2 is selectLevel
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	
	if(flag == 2) {
		if($("selectStart").value == "" || $("selectEnd").value == "") {
			alert("please choose level!");
			$("selectStart").focus();
			return false
		}
	}
	window.event.srcElement.disabled = true;
	disabledCurrPage(true);
	display_loadingpic("plat_loading");
	
	
	var newForm = createForm("newForm","POST","_self");
	createFormElement(newForm, "packageId", packageId);
	createFormElement(newForm, "flag", flag);
	
	createFormElement(newForm, "ratesort", $("ratesort").value);
	createFormElement(newForm, "gameid", $("default_game_id").value);
	createFormElement(newForm, "start", $("selectStart").value);
	createFormElement(newForm, "end", $("selectEnd").value);
	createFormElement(newForm, "days", $("labDays").innerText);
	createFormElement(newForm, "hours", $("labHours").innerText);
	createFormElement(newForm, "totalprice", $("labTotalPrice").innerText);
	
	createFormElement(newForm, "moduleName", "levelaction");
	createFormElement(newForm, "actionFlag", "trun_detail_confirm");
	newForm.action = "/wow-gold";
	newForm.submit();
}

// submit to pay pag
function turn_detail_checkout() {
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	
	window.event.srcElement.disabled = true;
	
	$("check_out_img").width = 16;
	$("check_out_img").height = 16;
	$("check_out_img").src = "/wow-images/loading.gif";
	
	var newForm = $("powerlevelForm");
	createFormElement(newForm, "moduleName", "levelaction");
	createFormElement(newForm, "actionFlag", "trun_detail_checkout");
	newForm.action = "/wow-gold";
	newForm.submit();
	
	disabledCurrPage(true);
}



// pay action
function level_on_pay() {
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	window.event.srcElement.disabled = true;
	disabledCurrPage(true);
	$("check_out_img").width = 16;
	$("check_out_img").height = 16;
	$("check_out_img").src = "/wow-images/loading.gif";
	
	// default is paypal
	var choosePay = "5";
	var payments = document.getElementsByName("vs_payment");
	if(payments != null && payments.length > 0) {
		for(var i=0;i<payments.length;i++) {
			if(payments[i].checked == true) {
				choosePay = payments[i].value;
			}
		}
	}
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NDI><COMMAND NAME='buylevelselect'>";
	    xml += reverseDocumentToXml();
	    xml += "<payment>"+choosePay+"</payment>";
	    xml=xml+"</COMMAND></NDI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
	    //alert(returnText);
	    //alert("returnText:"+returnText);
		if(returnText != null) {
			//$("helloworld").value = returnText;
		    var xmlDoc = toXmlDoc(returnText);
		    var errorXml = xmlDoc.documentElement.getElementsByTagName("ERROR");
		    if(errorXml != null && errorXml.length > 0) {
		    	// error
		    	var value =  errorXml[0].getAttribute("VALUE");
		    	var name =  errorXml[0].getAttribute("LABEL");
		    	$(name).innerHTML = value;
		    } else {
			    var optionsXML = null;
				if(getOs() == "Firefox" || getOs() == "Safari" || getOs() == "Chrome"  ) {
					optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
				} else if(getOs() == "MSIE" ) {
					optionsXML = xmlDoc.documentElement.selectNodes("OPTION");
				}
				if(optionsXML != null) {
					// build form
					createPayFormAndSubmit(optionsXML);
					
					// auto location page
					// window.setTimeout("window.location.href = '/wow-powerlevel-guide.html';","2000");
				}
				delete(optionsXML);
				
		    }
		    delete(xmlDoc);
		    delete(errorXml);

		}
		
		
	$("check_out_img").width = 68;
	$("check_out_img").height = 20;
	$("check_out_img").src = "/wow-images/complete.gif";
	disabledCurrPage(false);
	//window.location.href = "/wow-powerlevel-guide.html";
	
}

// confirm page onload camp list
function loadServerCampOption(gameCtrl,fillCtrl) {
	PlatDisableCtrls(fillCtrl,true);
	var gameId = $(gameCtrl).value;
	
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buylevelselect'>";
	    xml += "<flag>selectCamp</flag>";
	    xml += "<gameId>"+gameId+"</gameId>";
	    xml=xml+"</COMMAND></NCI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
	    if(fillCtrl != null) {
			if(returnText != null) {
		     	var xmlDoc = toXmlDoc(returnText);
				var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
				if(optionsXML != null) {
					fillOptionData($(fillCtrl),optionsXML,null);
				}
				delete(optionsXML);
				delete(xmlDoc);
			}
	    }
	PlatDisableCtrls(fillCtrl,false);
}

function level_confirm() {

	if(getOs() == "Safari") {

	
		if(trim($("txtYourName").value)  == "") {
			alert("please, input your fullname !");
			return false
		} else if( !isVaildEmail($("txtEmail").value)  ) {
			alert("please, input available email!");
			return false
		} else if(trim($("txtPhoneNum").value) == "") {
			alert("please, input your phonenum!");
			return false
		} else if($("txtAccount").value == "") {
			alert("please, input your account name!");
			return false
		} else if(trim($("txtPassword1").value) == "") {
			alert("please, input your password!");
			return false
		} else if(trim($("txtPassword2").value) != trim($("txtPassword1").value) ) {
			alert("hello, repeat password is not right!");
			return false
		} else if(trim($("txtCharacter").value) == "") {
			alert("please, input character name!");
			return false
		} else if(trim($("selectCharacterClass").value) == "") {
			alert("please, input character class!");
			return false
		}
		
		turn_detail_checkout();
	} else {
		if(validLevel.validate()) { turn_detail_checkout();} 
	}


}

