	var http_request = false;
	var pricelist = new Array();
	var amountlist = new Array();
	var itemnamelist = new Array();
	var itemidlist = new Array();
	var unitlist = new Array();
	var ajaxcnt = 0;
	var ajaxlist = new Array();
	var ajaxparamlist = new Array();
	var ajaxurlraw = window.location;

	function url2dummy() {
		var tmpparam = Math.random();
		if (document.getElementById('dummy_frame')) {
			var obj_dummy = document.getElementById('dummy_frame');
			obj_dummy.src = httpdir+"dummy.php?param="+tmpparam;
		}
		ajaxparamlist[ajaxcnt] = tmpparam;
		ajaxcnt ++;
	}
	
	function dummycall(param) {
		if (!param && !ajaxparamlist[ajaxcnt-1]) {
			ajaxcnt = 0;
			ajaxlist = new Array();
			ajaxparamlist = new Array();
			return;
		}
		if (!param && ajaxparamlist[ajaxcnt-1]) {
			window.location.replace(ajaxurlraw);
			return;
		}
		var i;
		if (param!=ajaxparamlist[ajaxcnt-1]) {
			var found = false;
			for (i=ajaxcnt-1; i>=0; i--) {
				if (ajaxparamlist[i]==param) {
					found = true;
					ajaxcnt = i+1;
					ajax_process(ajaxlist[i]);
					window.scrollTo(0, 0);
					break;
				}
			}
			if (!found) {
				ajaxcnt = 0;
				ajaxlist = new Array();
				ajaxparamlist = new Array();
				window.location.replace(ajaxurlraw);
			}
		}
	}

	function send_request(url,nodummy) {
		if (!nodummy) {
			url2dummy();
		}
		http_request = false;
		if(window.XMLHttpRequest){
			http_request = new XMLHttpRequest();
			if(http_request.overrideMimeType){
				http_request.overrideMimeType("text/xml");
			}
		} else if (window.ActiveXObject) {
			try {
				http_request = new ActiveXObject("Msxml2.XMLHttp");
			} catch(e) {
				try {
					http_request = new ActiveXobject("Microsoft.XMLHttp");
				} catch(e) {
					return false;
				}
			}
		}
		if(!http_request){
			return false;
		}
		http_request.onreadystatechange = processrequest;
		http_request.open("GET", url, true);
		http_request.send(null);
	}

	function ajax_process(tmp_data) {
				var val_data = tmp_data.split("#,#");
				var param;
				var output;
				var i;
				if (val_data[0]=="gid") {
					document.getElementById("serverlist").disabled = false;
					document.getElementById("serverlist").options.length = 1;
					for(i=1; i<val_data.length; i++){
						param = val_data[i].split("#|#");
						document.getElementById("serverlist").options.add(new Option(param[1],param[0]));
					}
				} else if (val_data[0]=="aid") {
					document.getElementById("goodslist").disabled = false;
					document.getElementById("cusprice").disabled = false;
					document.getElementById("goodslist").options.length = 1;
					var tmpunit;
					for (i=1; i<val_data.length; i++) {
						param = val_data[i].split("#|#");
						tmpunit = param[3];
						if (tmpunit=="K" && langtype=="fr") {
							tmpunit = " 000";
						}
						if (tmpunit=="Lv") {
							document.getElementById("goodslist").options.add(new Option(param[4],param[0]));
						} else {
							document.getElementById("goodslist").options.add(new Option(param[1]+tmpunit,param[0]));
						}
						pricelist[param[0]] = param[2];
						amountlist[param[0]] = param[1];
						itemnamelist[param[0]] = param[4];
						itemidlist[param[0]] = param[5];
						unitlist[param[0]] = param[3];
					}
				} else if (val_data[0]=="fid") {
					document.getElementById("faction_tr").style.display = "";
					document.getElementById("factionlist").disabled = false;
					document.getElementById("factionlist").options.length = 1;
					for(i=1; i<val_data.length; i++){
						param = val_data[i].split("#|#");
						document.getElementById("factionlist").options.add(new Option(param[1],param[0]));
					}
				} else if (val_data[0]=="gid2") {
					document.getElementById("serverlist_2").disabled = false;
					document.getElementById("serverlist_2").options.length = 1;
					for(i=1; i<val_data.length; i++){
						param = val_data[i].split("#|#");
						document.getElementById("serverlist_2").options.add(new Option(param[1],param[0]));
					}
				} else if (val_data[0]=="fid2") {
					document.getElementById("faction_tr_2").style.display = "";
					document.getElementById("factionlist_2").disabled = false;
					document.getElementById("factionlist_2").options.length = 1;
					for(i=1; i<val_data.length; i++){
						param = val_data[i].split("#|#");
						document.getElementById("factionlist_2").options.add(new Option(param[1],param[0]));
					}
				} else if (val_data[0]=="price_amount") {
					if (val_data[1]<0 || val_data[2]<0) {
						// ...
					} else {
						var tmpunit = val_data[6];
						if (tmpunit=="K" && langtype=="fr") {
							tmpunit = " 000";
						}
						document.getElementById("cusprice").value = val_data[1];
						document.getElementById("shortcut_amount").innerHTML = "<b>"+sbuy_amount+": "+val_data[2]+tmpunit+"</b>";
						document.getElementById("shortcut_amount").style.display = "";
						document.getElementById("nameid_2").value = document.getElementById("gamelist_2").options[document.getElementById("gamelist_2").selectedIndex].value+"-"+document.getElementById("serverlist_2").options[document.getElementById("serverlist_2").selectedIndex].value;
						document.getElementById("goodsname_2").value = document.getElementById("gamelist_2").options[document.getElementById("gamelist_2").selectedIndex].text+"|"+document.getElementById("serverlist_2").options[document.getElementById("serverlist_2").selectedIndex].text;
						if (document.getElementById("factionlist_2").options[document.getElementById("factionlist_2").selectedIndex].value!="0") {
							document.getElementById("nameid_2").value += "-"+document.getElementById("factionlist_2").options[document.getElementById("factionlist_2").selectedIndex].value;
							document.getElementById("goodsname_2").value += "|"+document.getElementById("factionlist_2").options[document.getElementById("factionlist_2").selectedIndex].text;
						}
						document.getElementById("goodsname_2").value += "|"+val_data[5];
						document.getElementById("amount_2").value = val_data[2];
						document.getElementById("price_2").value = val_data[1];
						document.getElementById("itemid_2").value = val_data[3];
						document.getElementById("goodsid_2").value = val_data[4];
						document.getElementById("unit_2").value = val_data[6];
					}
				} else if (val_data[0]=="cart_amount") {
					document.getElementById("cart_amount_"+val_data[1]).value = val_data[3];
					document.getElementById("cart_price_"+val_data[1]).innerHTML = val_data[2];
					document.getElementById("total_price_c").innerHTML = val_data[4];
					document.getElementById("total_price_r").innerHTML = val_data[4];
					if (document.getElementById("total_price_cd")) {
						document.getElementById("total_price_rd").innerHTML = val_data[5];
						document.getElementById("total_price_cd").innerHTML = val_data[5];
					}
					document.getElementById("msg_div_center").style.display = "none";
				} else if (val_data[0]=="message") {
					output = "<table width='95%' border='0' cellpadding='5' cellspacing='0' align='center'>";
						var cls = "messages_td_bk1";
						for (i=5; i<val_data.length; i++) {
							if (cls == "messages_td_bk1") {
								cls = "messages_td_bk2";
							} else {
								cls = "messages_td_bk1";
							}
							param = val_data[i].split("#|#");
							nameout = "<b>"+param[1]+"</b>";
							if (param[0] == "1") {
								nameout = "<span class=\"messages_adminid\">"+param[1]+"</span>";
							}
							if (param[2] == "") {
								param[2] = "<span class=\"messages_adminid2\">"+igvsupport+"</span>";
							}
							output += "<tr class=\""+cls+"\"><td class=\"messages_td1\" rowspan=\"2\" valign=\"top\">"+nameout+"<br /><span class=\"messages_id2\">"+param[2]+"</span></td><td><span class=\"messages_time\">Post time: "+param[3]+"</span></td></tr><tr class=\""+cls+"\"><td class=\"messages_td2\">"+param[4]+"</td></tr>";
						}
						if (cls == "messages_td_bk1") {
							cls = "messages_td_bk2";
						} else {
							cls = "messages_td_bk1";
						}
						output += "<tr class=\""+cls+"\"><td valign=\"top\"><b>Reply Message:</b></td><td><textarea name=\"reply_"+val_data[1]+"\" id=\"reply_"+val_data[1]+"\" style=\"font-size:12px; width:99%; height:90px;\"></textarea></td></tr><tr class=\""+cls+"\"><td></td><td align=\"center\"><input type=\"button\" onclick=\"send_request('../interface/message.php?mid="+val_data[1]+"&reply='+encodeURIComponent(document.getElementById('reply_"+val_data[1]+"').value));\" style=\"border:1px solid #999999;\" value=\"Relpy\"></td></tr>";
						var page = Number(val_data[2]);
						output += "<tr><td height=\"5\"></td></tr><tr class=\"messages_td_bt\"><td colspan=\"2\" align='right'><div style='float:left'><span class='page'>"+total+":"+val_data[4]+"</span>&nbsp;<span class='page'>"+page_desc+":"+val_data[2]+"/"+val_data[3]+"</span></div><span class='page'>&nbsp;<a href='#' onClick=\"send_request('"+httpdir+"interface/message.php?subid="+val_data[1]+"&page="+String(page-1)+"&mpage=1');\">"+prev+"</a>&nbsp;|&nbsp;<a href='#' onClick=\"send_request('"+httpdir+"interface/message.php?subid="+val_data[1]+"&page="+String(page+1)+"&mpage=1');\">"+next+"</a>&nbsp;</span></td></tr>";
					//output += "<tr><td height='24'></td></tr></table>";
					document.getElementById("message_detail_"+val_data[1]).innerHTML = output;
					document.getElementById("msg_div_center").style.display = "none";
				} else if (val_data[0]=="reg_email") {
					set_email_check_wrong(val_data[1]);
				} else if (val_data[0]=="centerlist") {
					document.getElementById("center_ajax").innerHTML = "";
					document.getElementById("nav_ajax").innerHTML = val_data[1];
					document.getElementById("bestseller_ajax").innerHTML = val_data[3];
					document.getElementById("right_cart_ajax").innerHTML = val_data[4];
					document.getElementById("center_ajax").innerHTML = val_data[2];
					document.getElementById("msg_div_center").style.display = "none";
					url_param = val_data[5];
				} else if (val_data[0]=="order_details") {
					document.getElementById("orderdetails_wait").style.display = "none";
					document.getElementById("order_details_data").innerHTML = val_data[1];
				} else if (val_data[0]=="PV_OK") {
					window.location = httpdir+"phone_verify/pv_succ.html";
				} else if (val_data[0]=="PV_FAIL") {
					window.location = httpdir+"phone_verify/pv_fail.html";
				} else if (val_data[0]=="powerlevel") {
					document.getElementById("powerlevel_countprice").innerHTML = val_data[1];
					document.getElementById("max_powerlevel").value = val_data[2];
					document.getElementById("price_c").value = val_data[3];
				}
	}

	function processrequest() {
		if(http_request.readyState==4){
			if(http_request.status==200){
				var tmp_data = http_request.responseText;
				ajaxlist[ajaxcnt-1] = tmp_data;
				ajax_process(tmp_data);
			} else {
				return false;
			}
		}
	}

	function game_request(gameid) {
		document.getElementById("serverlist").disabled = true;
		document.getElementById("serverlist").options.length = 1;
		document.getElementById("factionlist").disabled = true;
		document.getElementById("factionlist").options.length = 1;
		document.getElementById("faction_tr").style.display = "none";
		document.getElementById("goodslist").disabled = true;
		document.getElementById("goodslist").options.length = 1;
		document.getElementById("shortcut_price").innerHTML = "";
		document.getElementById('shortcut_price').style.display = "none";
		send_request(httpdir+"interface/shortcut_buy.php?gid="+gameid, true);
	}

	function server_request(serverid) {
		document.getElementById("factionlist").disabled = true;
		document.getElementById("factionlist").options.length = 1;
		document.getElementById("faction_tr").style.display = "none";
		document.getElementById("goodslist").disabled = true;
		document.getElementById("goodslist").options.length = 1;
		document.getElementById("shortcut_price").innerHTML = "";
		document.getElementById('shortcut_price').style.display = "none";
		send_request(httpdir+"interface/shortcut_buy.php?sid="+serverid, true);
	}

	function faction_request(factionid) {
		document.getElementById("goodslist").disabled = true;
		document.getElementById("goodslist").options.length = 1;
		document.getElementById("shortcut_price").innerHTML = "";
		document.getElementById('shortcut_price').style.display = "none";
		send_request(httpdir+"interface/shortcut_buy.php?sid="+factionid, true);
	}

	function show_sbuy_price(currency) {
		if (document.getElementById('goodslist').options[document.getElementById('goodslist').selectedIndex].value>0) {
			document.getElementById('shortcut_price').innerHTML = "<b>"+sbuy_price+": "+pricelist[document.getElementById('goodslist').options[document.getElementById('goodslist').selectedIndex].value]+' '+currency+"</b>";
			document.getElementById('shortcut_price').style.display = "";
		} else {
			document.getElementById('shortcut_price').innerHTML = '';
			document.getElementById('shortcut_price').style.display = "none";
		}
	}

	function shortcut_buy() {
		if (document.getElementById("gamelist").options[document.getElementById("gamelist").selectedIndex].value=="0" || document.getElementById("serverlist").options[document.getElementById("serverlist").selectedIndex].value=="0" || document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value=="0") {
			return;
		}
		document.getElementById("goodsname").value = document.getElementById("gamelist").options[document.getElementById("gamelist").selectedIndex].text+"|"+document.getElementById("serverlist").options[document.getElementById("serverlist").selectedIndex].text;
		if (document.getElementById("factionlist").options[document.getElementById("factionlist").selectedIndex].value!="0") {
			document.getElementById("goodsname").value += "|"+document.getElementById("factionlist").options[document.getElementById("factionlist").selectedIndex].text;
		}
		document.getElementById("goodsname").value += "|"+itemnamelist[document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value];
		document.getElementById("amount").value = amountlist[document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value];
		document.getElementById("price").value = pricelist[document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value];
		document.getElementById("itemid").value = itemidlist[document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value];
		document.getElementById("unit").value = unitlist[document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value];
		document.getElementById("goodsid").value = document.getElementById("goodslist").options[document.getElementById("goodslist").selectedIndex].value;
		document.getElementById("nameid").value = document.getElementById("gamelist").options[document.getElementById("gamelist").selectedIndex].value+"-"+document.getElementById("serverlist").options[document.getElementById("serverlist").selectedIndex].value;
		if (document.getElementById("factionlist").options[document.getElementById("factionlist").selectedIndex].value!="0") {
			document.getElementById("nameid").value += "-"+document.getElementById("factionlist").options[document.getElementById("factionlist").selectedIndex].value;
		}
		if (!document.getElementById("amount").value || !document.getElementById("price").value || !document.getElementById("itemid").value || !document.getElementById("goodsid").value) {
			return;
		}
		document.form_shortcut_buy.submit();
	}

	function game_request_2(gameid) {
		document.getElementById("serverlist_2").disabled = true;
		document.getElementById("serverlist_2").options.length = 1;
		document.getElementById("factionlist_2").disabled = true;
		document.getElementById("factionlist_2").options.length = 1;
		document.getElementById("faction_tr_2").style.display = "none";
		document.getElementById("shortcut_amount").innerHTML = "";
		document.getElementById("shortcut_amount").style.display = "none";
		send_request(httpdir+"interface/shortcut_buy.php?gid="+gameid+"&type=2", true);
	}

	function server_request_2(serverid,price) {
		document.getElementById("factionlist_2").disabled = true;
		document.getElementById("factionlist_2").options.length = 1;
		document.getElementById("faction_tr_2").style.display = "none";
		document.getElementById("shortcut_amount").innerHTML = "";
		document.getElementById("shortcut_amount").style.display = "none";
		send_request(httpdir+"interface/shortcut_buy.php?sid="+serverid+"&price="+price+"&type=2", true);
	}

	function faction_request_2(factionid,price) {
		document.getElementById("shortcut_amount").innerHTML = "";
		document.getElementById("shortcut_amount").style.display = "none";
		send_request(httpdir+"interface/shortcut_buy.php?sid="+factionid+"&price="+price+"&type=2", true);
	}

	function shortcut_buy_2() {
		if (!document.getElementById("amount_2").value || !document.getElementById("price_2").value || !document.getElementById("itemid_2").value || !document.getElementById("goodsid_2").value) {
			return;
		}
		document.form_shortcut_buy_2.submit();
	}

	function sbuy_price_calc() {
		if (Number(document.getElementById("cusprice").value>0)) {
			if (document.getElementById("gamelist_2").selectedIndex>0 && document.getElementById("serverlist_2").selectedIndex>0 && (document.getElementById("factionlist_2").options.length==1 || document.getElementById("factionlist_2").selectedIndex>0)) {
				if (document.getElementById("factionlist_2").selectedIndex>0) {
					send_request(httpdir+"interface/shortcut_buy.php?sid="+document.getElementById("factionlist_2").options[document.getElementById("factionlist_2").selectedIndex].value+"&price="+document.getElementById("cusprice").value+"&type=2");
				} else {
					send_request(httpdir+"interface/shortcut_buy.php?sid="+document.getElementById("serverlist_2").options[document.getElementById("serverlist_2").selectedIndex].value+"&price="+document.getElementById("cusprice").value+"&type=2");
				}
			} else {
				if (document.getElementById("gamelist_2").disabled) {
					document.getElementById("gamelist_2").selectedIndex = 0;
					document.getElementById("serverlist_2").disabled = true;
					document.getElementById("serverlist_2").options.length = 1;
					document.getElementById("factionlist_2").disabled = true;
					document.getElementById("factionlist_2").options.length = 1;
					document.getElementById("faction_tr_2").style.display = "none";
					document.getElementById("shortcut_amount").innerHTML = "";
					document.getElementById("shortcut_amount").style.display = "none";
				}
				document.getElementById("gamelist_2").disabled = false;
			}
		} else {
			document.getElementById("gamelist_2").disabled = true;
		}
	}

	function sbuy_price_check() {
		if (Number(document.getElementById("cusprice").value>0)) {
			if (document.getElementById("gamelist_2").disabled) {
				document.getElementById("gamelist_2").selectedIndex = 0;
				document.getElementById("serverlist_2").disabled = true;
				document.getElementById("serverlist_2").options.length = 1;
				document.getElementById("factionlist_2").disabled = true;
				document.getElementById("factionlist_2").options.length = 1;
				document.getElementById("faction_tr_2").style.display = "none";
				document.getElementById("shortcut_amount").innerHTML = "";
				document.getElementById("shortcut_amount").style.display = "none";
			}
			document.getElementById("gamelist_2").disabled = false;
		} else {
			document.getElementById("gamelist_2").disabled = true;
		}
	}

	function buy(itemid,goodsid,amount,lang_unit,lang_name) {
		document.getElementById("goodsname_c").value = document.getElementById("goodsname_pre").value+lang_name;
		document.getElementById("amount_c").value = amount;
		document.getElementById("itemid_c").value = itemid;
		document.getElementById("unit_c").value = lang_unit;
		document.getElementById("goodsid_c").value = goodsid;
		document.form_buy.submit();
	}
	
	function buy_2(itemid,goodsid,amount,lang_unit,lang_name,price) {
		document.getElementById("goodsname_c").value = document.getElementById("goodsname_pre").value+lang_name;
		document.getElementById("amount_c").value = amount;
		document.getElementById("itemid_c").value = itemid;
		document.getElementById("unit_c").value = lang_unit;
		document.getElementById("goodsid_c").value = goodsid;
		document.getElementById("powerl_c").value = price;
		document.form_buy.submit();
	}

	function amount_request(itemid,amount,evt) {
		// ...
		send_request(httpdir+"interface/cart.php?itemid="+itemid+"&amount="+amount);
//		show_div_msg(document.getElementById("msg_div_center"),evt);
	}

	function center_request(param,evt) {
		// ...
		if (param.indexOf("currency=")>=0) {
			send_request(httpdir+"interface/center.php"+param, true);
			document.getElementById("sbuy_currency").innerHTML = document.getElementById("currencySel").options[document.getElementById("currencySel").selectedIndex].value;
		} else {
			send_request(httpdir+"interface/center.php"+param);
			show_div_msg(document.getElementById("msg_div_center"),evt);
		}
	}

	function orderdetails_request(order_id) {
		document.getElementById("order_details_data").innerHTML = "";
		document.getElementById("orderdetails_wait").style.display = "";
		send_request(httpdir+"interface/order_details.php?oid="+order_id);
	}

	//function phone_verify_request(code,cid,country,phone) {
	function phone_verify_request(cid,country,phone) {
		document.getElementById("pv_btn_td").innerHTML = "<img src=\""+tpl_httpdir+"img/waitbar.gif\">";
		// ...
		//send_request(httpdir+"interface/verify_phonecall.php?verifycode="+code+"&cid="+cid+"&user=1&country="+country+"&phone="+phone);
		send_request(httpdir+"interface/verify_phonecall.php?cid="+cid+"&user=1&country="+country+"&phone="+phone);
	}

	function show_div_msg(divobj, evt) {
		/*evt = evt ? evt : (window.event ? window.event : null);
		if (evt.pageY) {
			 divobj.style.top = (String)(window.pageYOffset+50)+"px";  // FF
		} else {
			 divobj.style.top = document.documentElement.scrollTop+50;  // IE
		}*/
		divobj.style.width = document.documentElement.scrollWidth+'px'
		divobj.style.height = document.documentElement.scrollHeight+'px'
		divobj.style.display = "block";
	}
	
	function check_math(pid){
		var minmath =document.getElementById("min_powerlevel").value;
		var maxmath =document.getElementById("max_powerlevel").value;
		if(minmath=="" || maxmath=="" ){
			document.getElementById("powerlevel_countprice").innerHTML="0.00";
			document.getElementById("ismath").innerHTML ="";
		}else if(isNaN(minmath) || isNaN(maxmath) || minmath.indexOf("-")!=-1 || maxmath.indexOf("-")!=-1 || minmath==0 || maxmath==0){
			document.getElementById("powerlevel_countprice").innerHTML="0.00";
			document.getElementById("ismath").innerHTML ="&nbsp;<font color=red>"+pl_e_isnum+"</font>";
			document.getElementById("btn_img").disabled ="true";
		}else if(parseInt(minmath) >= parseInt(maxmath)){
			document.getElementById("powerlevel_countprice").innerHTML="0.00";
			document.getElementById("btn_img").disabled ="true";
			document.getElementById("ismath").innerHTML ="&nbsp;<font color=red>"+pl_e_error+"</font>";
		}else{
			document.getElementById("ismath").innerHTML ="";
			send_request(httpdir+"interface/powerleveling.php?pid="+pid+"&min="+minmath+"&max="+maxmath);
		}
	}
