function ajax(){
	var xmlhttp;
	var complete = false;
	if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	} else {
		if(window.ActiveXObject){
			try{xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");}catch(l){xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
		}
	}
	this.query = null;
	this.connect = function(url, method, fnDone){
		if(!xmlhttp)return false;
		complete = false;
		method = method.toUpperCase();
		try {
			xmlhttp.open(method, url, true);
			if(method==="POST")xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			xmlhttp.onreadystatechange = function(){
				if(xmlhttp.readyState==4&&!complete){
					complete = true;
					fnDone(unescape(xmlhttp.responseText));
				}
			}
			xmlhttp.send(this.query);
		} catch (e) {
			return false;
		}
		return true;
	}
	return this;
}
function doneServer(str){
	var _obj = document.getElementById("qserver");
	if(_obj){
		var _arr1 = str.split("``");
		for(i=0;i<_arr1.length;i++){
			var _arr2 = _arr1[i].split("`");
			if(_arr2.length==2){
				var ___obj = document.createElement("OPTION");
				_obj.options.add(___obj);
				___obj.text = _arr2[1];
				___obj.value = _arr2[0];
			}
		}
		_obj.options[0].text = "Please select the server";
	}
}
function getServer(game){
	var _obj = document.getElementById("qserver");
	if(_obj){
		var j = _obj.options.length-1;
		for(i=j;i>=0;i--){
			_obj.removeChild(_obj.options[i]);
		}
		if(game>0){
			var __obj = document.createElement("OPTION");
			_obj.options.add(__obj);
			__obj.text = "Loading ...";
			__obj.value = 0;

			var obj = new ajax();
			obj.connect("/server/"+game,"get",doneServer);
		}
	}
}
function doneProduct(str){
	var _obj = document.getElementById("qproduct");
	if(_obj){
		var _arr1 = str.split("``");
		for(i=0;i<_arr1.length;i++){
			var _arr2 = _arr1[i].split("`");
			if(_arr2.length==5){
				var ___obj = document.createElement("OPTION");
				_obj.options.add(___obj);
				var _tmp = _arr2[1];
				if(_arr2[2]>0)_tmp += ' + Free '+_arr2[2];
				_tmp += " " + _arr2[3] + "($" + _arr2[4] + ")";
				___obj.text = _tmp;
				___obj.value = _arr2[0];
			}
		}
		_obj.options[0].text = "Please select the product";
	}
}
function getProduct(server){
	var _obj = document.getElementById("qproduct");
	if(_obj){
		var j = _obj.options.length-1;
		for(i=j;i>=0;i--){
			_obj.removeChild(_obj.options[i]);
		}
		if(server>0){
			var __obj = document.createElement("OPTION");
			_obj.options.add(__obj);
			__obj.text = "Loading ...";
			__obj.value = 0;

			var obj = new ajax();
			obj.connect("/product/"+server,"get",doneProduct);
		}
	}
}
function loading(t){
	document.getElementById("loading").style.display=(t)?"":"none";
}
function doneProducts(str){
	var _arr1 = str.split("``");
	var _stock = _arr1[0].split("`")[3];
	_stock = parseInt(_stock);
	var _obj = document.getElementById("product");
	_obj.style.display=(_stock>0)?"block":"none";
	if(_stock>0){
		var _obj = document.getElementById("stocks");
		if(_obj){
			var _s = _stock.toString();
			_obj.innerHTML=(_s.length>3)?_s.substr(0,_s.length-3)+','+_s.substr(_s.length-3,3):_s;
		}
		var _obj = document.getElementById("stockl");
		if(_obj)_obj.style.width=((_stock>50000)?450:450*_stock/50000)+'px';
	}
	var _obj = document.getElementById("plist");
	if(_obj){
		var _objs = _obj.childNodes;
		for(i=_objs.length-1;i>=0;i--){
			_obj.removeChild(_objs[i]);
		}
		for(i=0;i<_arr1.length;i++){
			var _arr2 = _arr1[i].split("`");
			var _tr = document.createElement("TR");
			var _td = document.createElement("TD");
			_td.innerHTML = _arr2[1]+_arr2[2].substr(0,1);
			_tr.appendChild(_td);
			var _td = document.createElement("TD");
			_td.style.textAlign = "left";
			_td.innerHTML = _arr2[4]+_arr2[5];
			if(parseInt(_arr2[3])>=parseInt(_arr2[1]))_td.innerHTML += '<img src="/image/instock.gif">';
			_tr.appendChild(_td);
			_obj.appendChild(_tr);
		}
	}
	var _obj = document.getElementById("plist2");
	if(_obj){
		var j = _obj.options.length-1;
		_obj.setAttribute("index",_obj.selectedIndex);
		for(i=j;i>=0;i--){
			_obj.removeChild(_obj.options[i]);
		}
		var ___obj = document.createElement("OPTION");
		_obj.options.add(___obj);
		___obj.innerHTML = "loading...";
		for(i=0;i<_arr1.length;i++){
			var _arr2 = _arr1[i].split("`");
			var ___obj = document.createElement("OPTION");
			_obj.options.add(___obj);
			___obj.innerHTML = _arr2[1]+_arr2[2].substr(0,1)+" - "+_arr2[4]+_arr2[5];
			___obj.value = _arr2[0];
		}
		_obj.removeChild(_obj.options[0]);
		k = _obj.getAttribute("index");
		_obj.options[k].selected=true;
	}
	updatePromotion();
	loading(false);
}
function getProducts(id){
	loading(true);
	var obj = new ajax();
	obj.connect("/products/"+id+"/"+(new Date()).valueOf(),"get",doneProducts);
}
function donePromotion(str){
	var _obj = document.getElementById("pcode");
	var msg = null;
	if(_obj){
		var _arr1 = str.split("`");
		if(_arr1.length>2){
			_obj.setAttribute("code",_arr1[0]);
			_obj.setAttribute("pr",_arr1[4]);
		} else {
			_obj.value = "";
			_obj.setAttribute("code","");
			var _obj = document.getElementById("pcode");
			_obj.setAttribute("pr",0);
			var _obj = document.getElementById("pshow");
			_obj.style.display="none";
			msg = _arr1[1];
		}
	}
	updatePromotion();
	loading(false);
	if(msg!==null)alert(msg);
}
function checkPromotion(code){
	if(code.length<4){
		alert('please type in promotion code.');
	} else {
		var _obj = document.getElementById("pcode");
		if(_obj.getAttribute("code")!=code){
			loading(true);

			var obj = new ajax();
			obj.query = "promotion="+code+"&ajax="+(new Date()).valueOf();
			obj.connect("/cart","post",donePromotion);
		}
	}
}
function updatePromotion(){
	var _obj = document.getElementById("pcode");
	var pr = parseInt(_obj.getAttribute("pr"));
	if(isNaN(pr))pr = 0;
	var pr2 = parseInt(_obj.getAttribute("pr2"));
	if(isNaN(pr2))pr2 = 0;
	if(pr>0||pr2>0){
		var _obj = document.getElementById("plist2");
		if(_obj){
			var price = (_obj.options[_obj.selectedIndex].innerHTML.split(" - "))[1];
			var currency = price.substr(0,1);
			price = price.substr(1,price.length-1);
		}
		var pprice = 0;
		var pprice2 = 0;
		if(pr>0){
			var pprice = parseInt(price*pr)/100;
			var _obj = document.getElementById("pshow");
			_obj.childNodes[0].innerHTML = "Promotion: "+pr+"%";
			_obj.childNodes[1].innerHTML = "Amount: -"+currency+""+pprice+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Price: "+currency+""+parseInt((price-pprice)*100)/100;
			_obj.style.display="";
		}
		if(pr2>0){
			var _obj = document.getElementById("dshow");
			if(_obj){
				if(pr2==0){
					_obj.style.display="none";
				} else {
					var pprice2 = parseInt(price*pr2)/100;
					var pprice3 = parseInt(price*(pr+pr2))/100;
					_obj.childNodes[0].innerHTML = "Discount: "+pr2+"%";
					_obj.childNodes[1].innerHTML = "Amount: -"+currency+""+pprice2+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Price: "+currency+""+parseInt((price-pprice3)*100)/100;
					_obj.style.display="";
				}
			}
		}
	}
}
var _checkout = false;
function doneCheckout(str){
	if(str=="1"){
		_checkout = true;
		document.forms['frmCheckout'].submit();
	} else {
		_checkout = false;
	}
}
function checkCheckout(frm){
	if(frm['firstname'].value.length==0){
		alert('please type in your first name.');
		frm['firstname'].focus();
		return false;
	}
	if(frm['lastname'].value.length==0){
		alert('please type in your last name.');
		frm['lastname'].focus();
		return false;
	}
	if(frm['email'].value.length==0){
		alert('please type in your email address.');
		frm['email'].focus();
		return false;
	}
	if(frm['phone'].value.length==0){
		alert('please type in your telephone number.');
		frm['phone'].focus();
		return false;
	}
	if(frm['char'].value.length==0){
		alert('please type in your game character name.');
		frm['char'].focus();
		return false;
	}

	if(!_checkout){
		var _obj = document.getElementById("pserv");
		var _sid = _obj.options[_obj.selectedIndex].value;
		var _obj = document.getElementById("plist2");
		var _pid = _obj.options[_obj.selectedIndex].value;

		var obj = new ajax();
		obj.query = "sid="+_sid+"&pid="+_pid+"&num=1&mode=1&skip=1&ajax="+(new Date()).valueOf();
		obj.connect("/cart","post",doneCheckout);
	}
	return _checkout;
}