

function loadingPicDis(flag,ctrlName) {
	ctrlName = ctrlName+"_loading";
	if($(ctrlName) != null) {
		if(flag) {
			display_loadingpic(ctrlName);
		} else {
			$(ctrlName).innerHTML = "";
		}
		
	}


}

// fill select option
function fillOptionData(child,selectXML,selectValue) {
		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;
						}
					}

				}
			}

		} else {
				child.options.length = 1;
				child.options[0].value = "";
				child.options[0].text = "select";
				return;
		}

}

function LoadDataFromBack(xmlStr,willFillCtrlName) {
		//alert(xmlStr);
		
		loadingPicDis(true,willFillCtrlName);
	    if(willFillCtrlName != null) {
	    	moveOption($(willFillCtrlName));
	    }
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NCI><COMMAND NAME='buygoldselect'>";
	    xml += xmlStr;
	    xml=xml+"</COMMAND></NCI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
	    
	    if(willFillCtrlName != null) {
			if(returnText != null) {
		     	var xmlDoc = toXmlDoc(returnText);
				var optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
				if(optionsXML != null) {
					fillOptionData($(willFillCtrlName),optionsXML,null);
				}
				delete(optionsXML);
				delete(xmlDoc);
			}
	    }
		loadingPicDis(false,willFillCtrlName);
		return returnText;
}

function DisableCtrls(flag) {
	var disableCtrls = "selectGame,selectServerIndex,selectServer,selectQuantity,selectBSort";
	var ctrls = disableCtrls.split(",");
	if(ctrls != null && ctrls.length > 0) {
		for(var i=0;i<ctrls.length;i++) {
			$(ctrls[i]).disabled = flag;
		}
	}
	delete(ctrls);
}


function resetBSort(){
	 
	 var bsortObj = $("selectBSort");
	 
     moveOption(bsortObj);
     
     var quantity = $("selectQuantity").value;
     if(parseInt(quantity) > 0) {
		 bsortObj.options.length = 3
		 bsortObj.options[0].value = "USD";
		 bsortObj.options[0].text = "USD";
		 bsortObj.options[0].selectedIndex = 0;
		 
		 bsortObj.options[1].value = "EUR";
		 bsortObj.options[1].text = "EUR";
		 
		 bsortObj.options[2].value = "GBP";
		 bsortObj.options[2].text = "GBP";
     } else {
     	fillOptionData(bsortObj,null,null);
     }
	 

}

function convertEmptyToNull(value) {
	var result = value;
	if(value == null || value == "" || value.length == 0) {
		result = "null";
	}
	return result;
}

function FillGame() {
	// Fill Game
	var selectGameXml = "<flag>FillGame</flag>";
	LoadDataFromBack(selectGameXml,"selectGame");
}

function FillServerIndex() {
	// serverindex
	var gameId = convertEmptyToNull($("selectGame").value);
	var indexObj = $("selectServerIndex");
	moveOption(indexObj);
	if(gameId != "null" ) {
		var sorts = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
		var sortArray = sorts.split(",");
		indexObj.options.length = sortArray.length;
		for(var i=0;i<sortArray.length;i++) {
			indexObj.options[i].value = sortArray[i];
			indexObj.options[i].text = sortArray[i];
		}
		indexObj.selectedIndex = 0;
	} else {
		fillOptionData(indexObj,null,null);
	}
	//var selectServerIndexXml = "<flag>selectServerIndex</flag><gameid>"+gameId+"</gameid>";
	//LoadDataFromBack(selectServerIndexXml,"selectServerIndex");
	
}

function FillServer() {
	// server
	
	var gameId = convertEmptyToNull($("selectGame").value);
	var serverIndex = convertEmptyToNull($("selectServerIndex").value);
	var selectServerXml = "<flag>selectServer</flag><gameid>"+gameId+"</gameid><serverindex>"+serverIndex+"</serverindex>";
	LoadDataFromBack(selectServerXml,"selectServer");
}

function FillQuantity() {
	// quantity
	
	var gameId = convertEmptyToNull($("selectGame").value);
	var selectQuantityXml = "<flag>selectQuantity</flag><gameid>"+gameId+"</gameid>";
	LoadDataFromBack(selectQuantityXml,"selectQuantity");
}

function FillPrice() {
	// price
	var detailkey = convertEmptyToNull($("selectQuantity").value);
	var bsort = convertEmptyToNull($("selectBSort").value);
	
	var dollarPrice = 0;
	if(detailkey != "null" && bsort != "null" ) {
		var selectPriceXml = "<flag>selectPrice</flag><detailkey>"+detailkey+"</detailkey><bsort>"+bsort+"</bsort>";
		dollarPrice = LoadDataFromBack(selectPriceXml,null);
	}
	
	$("displayMoney").innerHTML = getCurrencyChar() + dollarPrice;
	$("totalprice").value = dollarPrice;
}


function getCurrencyChar() {
	var bsort = convertEmptyToNull($("selectBSort").value);
	var moneyType = "$";
	if(bsort == "EUR") {
		moneyType = "€";
	} else if(bsort == "GBP") {
		moneyType = "￡";
	}
	return moneyType;
} 


function changAction(action) {
	DisableCtrls(true);
	if(action == "FillServerIndex") {
		
		$("BuyTitle").innerHTML = $("selectGame").options[$("selectGame").selectedIndex].text+"-----Buy Gold";
		
		FillServerIndex();
		FillServer();
		FillQuantity();
		resetBSort();
		FillPrice();
		// bsortreset
		
	} else if(action == "FillServer") {
		FillServer();
		FillQuantity();
		resetBSort();
		FillPrice();
		// bsortreset
	} else if(action == "FillQuantity") {
		FillQuantity();
		resetBSort();
		FillPrice();
		// bsortreset
	} else if(action == "FillPrice") {
		FillPrice();
	}
	
	
	DisableCtrls(false);
}


function buyGold_onload(gameId) {
	FillGame();
	if(gameId) {
		autoChangeSelectDefault($("selectGame"),gameId);
	}
	changAction('FillServerIndex');
}

function autoChangeSelectDefault(child,selectValue) {
	if(child != null && child.options.length > 0) {
		for(var i=0;i<child.options.length;i++) {
			var value = child.options[i].value;
			if(value == selectValue) {
				child.selectedIndex = i;
				break;
			}
		}
	}

}

	function setBackData() { 
		var url = decodeURI(location.search);
		url = url.split("&");
		
		if(url != null && url.length > 0) {
			for(var i=0;i<url.length;i++) {
				var temp = url[i].split("=");
				var paraName = temp[0];
				var value = temp[1];
				
				    //var ctrls = "selectGame,selectServerIndex,selectServer,selectQuantity,selectBSort";
    				//var inputCtrls = "discount,Character,contractMethod,contractDetail,phonenum,totalprice,payment";
				if(paraName == "selectGame") {
					buyGold_onload(value);
					$("BuyTitle").innerHTML = $("selectGame").options[$("selectGame").selectedIndex].text+"-----Buy Gold";
				} else if(paraName == "selectServerIndex") {
					setSelectDefault(paraName,value);
				} else if(paraName == "selectServer") {
					FillServer();
					setSelectDefault(paraName,value);
				} else if(paraName == "selectQuantity") {
					FillQuantity();
					setSelectDefault(paraName,value);
				} else if(paraName == "selectBSort") {
					setSelectDefault(paraName,value);
				} else if(paraName == "discount" || paraName == "Character" || paraName == "contractDetail" || paraName == "phonenum") {
					$(paraName).value = value;
				} else if(paraName == "contractMethod") {
					setSelectDefault(paraName,value);
				} else if(paraName == "payment") {
					var payments = document.getElementsByName("vs_payment");
					if(payments != null && payments.length > 0) {
						for(var x=0;x<payments.length;x++) {
							if(payments[x].value == value) {
								payments[x].checked = true;
							} else {
								payments[x].checked = false;
							}
						}
					}
				} else if(paraName == "totalprice") {
					FillPrice();
				}
				
				
			}
		}
			
	} 
	
	function currpage_init() { 
		var url = location.search;
		url = url.split("?");
		if(url[1] != null) {
			url = url[1].split("=");
			var para = url[0];
			var value = url[1];
			if(para == "gameId") {
				buyGold_onload(value);
			} else if(para == "return") {
				setBackData();
			} else {
				buyGold_onload();
			}
		} else {
			buyGold_onload();
		}
			
	} 

	function getParam()  { 
		var url = decodeURI(location.search);
		url = url.split("&");
		
		if(url != null && url.length > 0) {
			for(var i=0;i<url.length;i++) {
				var temp = url[i].split("=");
				var paraName = temp[0];
				var value = temp[1];
				if(paraName.indexOf("Label") != -1) {
					if($(paraName) != null) {
						if(paraName == "totalpriceLabel") {
							$(paraName).innerHTML = getCurrencyChar() + value;
						} else if(paraName == "selectQuantityLabel") {
							if(temp[2]) {
								$(paraName).innerHTML = value + "=" +temp[2] ;
							} else {
								$(paraName).innerHTML = value;
							}
							
						}  else  {
							$(paraName).innerHTML = value;
						}
						
					} else {
						//alert(paraName);
					}
					
				} else {
					createFormElement($("baseFrom"), paraName, value);
				}
				
				
				
			}
		}
			
	} 
	
	
	
function returnBack() {
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	window.event.srcElement.disabled = true;
	disabledCurrPage(true);
	$("back_img").width = 16;
	$("back_img").height = 16;
	$("back_img").src = "/wow-images/loading.gif";
	
	
	var inputCtrls = document.getElementsByTagName("input");
	var requestParam = "?return=true";
	if(inputCtrls != null && inputCtrls.length > 0) {
		for(var i=0;i<inputCtrls.length;i++) {
			var name = inputCtrls[i].id;
			var value = inputCtrls[i].value;
			requestParam += "&"+name+"="+value;
		}
	}
    window.location.href = '/buy-wow-gold.html'+encodeURI(requestParam);
	
}


// pay
function gotoPay_confirm() {
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	if($("selectQuantity").value == "") {
		alert("please, choose quantity!");
		return false
	} else if($("selectServer").value == "") {
		alert("please, choose server!");
		return false
	} else if($("contractMethod").value == 5) {
		// MSN
		var isEmail = $("contractDetail").value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
		if(isEmail == -1) {
			alert("please, input available email!");
			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 totalPrice = $("totalprice").value;
   var number = $("selectQuantity").options[$("selectQuantity").selectedIndex].text;
   if($("discount").value != "" ) {
    // trans data to back
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NDI><COMMAND NAME='buygoldselect'>";
	    xml += "<flag>discount</flag>";
	    xml += "<gameId>"+$("selectGame").value+"</gameId>";
	    xml += "<bsort>"+$("selectBSort").options[$("selectBSort").selectedIndex].text+"</bsort>";
	    xml += "<quantityId>"+$("selectQuantity").value+"</quantityId>";
	    xml += "<discount>"+$("discount").value+"</discount>";
	    xml=xml+"</COMMAND></NDI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
	    if(returnText != "" ) {
	    	var temp = returnText.split(",");
	    	if(temp != null && temp.length > 0) {
	    		number = temp[0];
	    		totalPrice = temp[1];
	    	}
	    }
   }
    
    // build requestParams
    var ctrls = "selectGame,selectServerIndex,selectServer,selectQuantity,selectBSort";
    var inputCtrls = "discount,Character,contractMethod,contractDetail,phonenum,totalprice,payment";
    var xmlParam = "?confirm=true";
    var ctrlArray = ctrls.split(",");
    var inputCtrlArray = inputCtrls.split(",");
    for(var i=0;i<ctrlArray.length;i++) {
    	var eleName = ctrlArray[i];
    	var eleValue = $(ctrlArray[i]).value;
    	xmlParam += "&"+eleName+"="+eleValue;
    	var label = $(ctrlArray[i]).options[$(ctrlArray[i]).selectedIndex].text;
    	if(eleName == "selectQuantity") {
    		label = number;
    	}
    	xmlParam += "&"+eleName+"Label="+label;
    }

    for(var i=0;i<inputCtrlArray.length;i++) {
    	var eleName = inputCtrlArray[i];
    	if(eleName == "payment") {
    		xmlParam += "&payment="+choosePay+"&paymentLabel=";
    		if(choosePay == 5) {
    			xmlParam += "Paypal";
    		} else if(choosePay == 10) {
    			xmlParam += "Credit Card through Paypal";
    		} else if(choosePay == 15) {
    			xmlParam += "Moneybookers";
    		}
    	} else {
	    	var eleValue = $(inputCtrlArray[i]).value;
	    	xmlParam += "&"+eleName+"="+eleValue;
	    	var label = eleValue;
	    	if(eleName == "contractMethod" ) {
	    		label = $(inputCtrlArray[i]).options[$(inputCtrlArray[i]).selectedIndex].text;
	    	} else if (eleName == "totalprice" ) {
	    		label = totalPrice;
	    	}
	    	xmlParam += "&"+eleName+"Label="+label;
    	}

    }
    
    
    window.location.href = '/buy-wow-gold-confirm.html'+encodeURI(xmlParam);
    


		
	
}

 
// confirm_page
function gotoPay() {
	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";
	
   
    
    // build requestParams
    var ctrls = "selectGame,selectServerIndex,selectServer,selectQuantity,selectBSort,discount,Character,contractMethod,contractDetail,phonenum,payment";
    var xmlParam = "";
    var ctrlArray = ctrls.split(",");
    for(var i=0;i<ctrlArray.length;i++) {
    	var eleName = ctrlArray[i];
    	var eleValue = $(ctrlArray[i]).value;
    	xmlParam += "<"+eleName+">";
    	xmlParam += eleValue;
    	xmlParam += "</"+eleName+">";
    }
    // trans data to back
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NDI><COMMAND NAME='ajaxbuygold'>";
	    xml += xmlParam;
	    xml=xml+"</COMMAND></NDI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
	    //alert("returnText:"+returnText);
		if(returnText != null) {
			//$("helloworld").value = returnText;
		    var xmlDoc = toXmlDoc(returnText);
		    
		    var optionsXML = null;
			if(getOs() == "Firefox" || getOs() == "Safari"  ) {
				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 = '/buy-wow-gold.html';","2000");
			}
			delete(optionsXML);
			delete(xmlDoc);
		}
		
	disabledCurrPage(false);
	$("check_out_img").width = 68;
	$("check_out_img").height = 20;
	$("check_out_img").src = "/wow-images/pic02.gif";
	window.event.srcElement.disabled = false;
}

// pay
function gotoPayold() {
	if(window.event.srcElement.disabled == true ) {
		return false;
	}
	if($("selectQuantity").value == "") {
		alert("please, choose quantity!");
		return false
	} else if($("selectServer").value == "") {
		alert("please, choose server!");
		return false
	} else if($("contractMethod").value = 5) {
		// MSN
		var isEmail = $("contractDetail").value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
		if(isEmail == -1) {
			alert("please, input available email!");
			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;
			}
		}
	}
   
    
    // build requestParams
    var ctrls = "selectGame,selectServer,selectQuantity,selectBSort,discount,Character,contractMethod,contractDetail,phonenum";
    var xmlParam = "<payment>"+choosePay+"</payment>";
    var ctrlArray = ctrls.split(",");
    for(var i=0;i<ctrlArray.length;i++) {
    	var eleName = ctrlArray[i];
    	var eleValue = $(ctrlArray[i]).value;
    	xmlParam += "<"+eleName+">";
    	xmlParam += eleValue;
    	xmlParam += "</"+eleName+">";
    }
    // trans data to back
	    var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><NDI><COMMAND NAME='ajaxbuygold'>";
	    xml += xmlParam;
	    xml=xml+"</COMMAND></NDI>";
	    var returnText = XmlHttpPostForCms("/plat/xmlhttp", xml);
	    //alert("returnText:"+returnText);
		if(returnText != null) {
			//$("helloworld").value = returnText;
		    var xmlDoc = toXmlDoc(returnText);
		    
		    var optionsXML = null;
			if(getOs() == "Firefox" ) {
				optionsXML = xmlDoc.documentElement.getElementsByTagName("OPTION");
			} else if(getOs() == "MSIE" ) {
				optionsXML = xmlDoc.documentElement.selectNodes("OPTION");
			}
			if(optionsXML != null) {
				// build form
				createPayFormAndSubmit(optionsXML);
			}
			delete(optionsXML);
			delete(xmlDoc);
		}
		
	window.location.href = "/buy-wow-gold.html";
}

function setSelectDefault(name,value) {
	var child = $(name);
	if(child != null && child.options.length > 0) {
		for(var i=0;i<child.options.length;i++) {
			if(child.options[i].value == value) {
				child.selectedIndex = i;
				break;
			}
		}
	}
}




