﻿function tocookie(o){
	var s="";
	for(var e in o){
		if(s.length>0) s+=",";
		var t="\""+e+"\"";
		if(typeof(o[e])=="object") s+=t+":"+tocookie(o[e]);
		else if(typeof(o[e])=="string") s+=t+":\""+o[e]+"\"";
		else s+=t+":"+o[e];
	}
	return "{"+s+"}";
}
function visit(){
	F.call("/index.visit","",function(p){
		if(!p||p.length==0) return;
		var o=$("visit"),a=[];
		if(!o) return;
		for(var i=0;i<p.length;i++){
			a.push(p[i][0]+" is placing order ... "+p[i][1]+"<br/>");
		}
		o.innerHTML=a.join('');
	});
}
function format(v,len){
	if(v==void(0)||v==null) return "";
	v=(Math.round(parseFloat(v)*100)/100).toString();
	var p=v.indexOf(".");
	if(p==-1) v+=".00";
	else if(p==v.length-2) v+="0";
	else v=v.substring(0,p+3);
	if(len){var m=len-v.length;for(var i=0;i<m;i++)v="&nbsp;"+v;}
	return v;
}
var cartpara={cur:"USD"},curgold=null;
function draw(key){
	if(key) curgold=key;
	if(cart_type=="Gold") return draw_gold(key);
	if(cart_type=="Powerleveling") return draw_level(key);
}
function draw_gold(key){
	if(!$("carter")) return;
	var total=0, r=rate[cartpara.cur],s=[];
	for(var e in cart)
	{	var o=cart[e];
		s.push((e==curgold?"<tr class=focus ":"<tr ")+"onmouseover=\"this.bgColor='#F6FFF6'\" onmouseout=\"this.bgColor=''\">");
		s.push((e==curgold?"<tr class=focus>":"<tr>")+"<td width=120>");
		s.push((e==key?"<font color=#ff0000>":"<font color=#666666>")+o.count+" x "+o.num+" "+o.item+"</font>");
		s.push("</td>");
		s.push("<td width=80 align=right>");
		if(e==curgold) s.push("<div id=goldnow style='width:78px;height:16px;padding:2px 2px 0px 0px;text-align:right'>"+r[1]+" "+format(o.price/r[0])+"</div>");
		else s.push(r[1]+" "+format(o.price/r[0]));
		s.push("</td><td width=45 align=right><a href='#' onclick='return cart_del(\""+e+"\")'>remove</a></td></tr>");
		total+=o.price;
	}
	$("carter").style.display=total<=0?"none":"";
	if(total<=0) return $("mytotal").innerHTML="";
	$("cart_title").innerHTML=cart_type;
	$("cart_inner").innerHTML="<table width=100% cellpadding=3 cellspacing=1>" +
		"<tr onmouseover=\"this.bgColor='#F6FFF6'\" onmouseout=\"this.bgColor=''\">"+
		"<td colspan=5>"+cart_server+"</td></tr>"+s.join('')+"</table>";
	$("mytotal").innerHTML="<table width=100% cellpadding=3 cellspacing=1><tr><td width=120><b>Total:</b></td><td width=80 align=right><div id=cart_total style='width:74px;height:16px;text-align:right;padding:2px;font-weight:bold'>"+r[1]+" "+format(total/r[0])+"</div></td><td width=45>&nbsp;</td></tr></table>";
}
function draw_level(key){
	if(!$("carter")) return;
	var total=0, r=rate[cartpara.cur],s=[];
	for(var e in cart)
	{	var o=cart[e],c="<font color=#666666>";
		s.push("<tr onmouseover=\"this.bgColor='#F6FFF6'\" onmouseout=\"this.bgColor=''\">");
		s.push("<td colspan=5>");
		s.push(cart_server+"<br>");
		if(o.start>0) s.push(c+"Level : "+o.start+" to "+o.end+"</font><br>");
		if(o.pack) s.push(c+o.pack+"</font><br>");
		if(o.skill) s.push(c+"Skill : "+o.skill+"</font><br>");
		if(o.honor) s.push(c+"Honor : "+o.honor+"</font><br>");
		if(o.quest) s.push(c+"Quest : "+o.quest+"</font><br>");
		s.push("</td></tr><td width=120>&nbsp;</td>");
		s.push("<td width=80 align=right valign=top>");
		s.push(r[1]+" "+format(o.price/r[0]));
		s.push("</td><td width=45 align=right valign=top><a href='#' onclick='return cart_del(\""+e+"\")'>remove</a></td></tr>");
		total+=o.price;
	}
	$("carter").style.display=total<=0?"none":"";
	if(total<=0) return $("mytotal").innerHTML="";
	$("cart_title").innerHTML=cart_type;
	$("cart_inner").innerHTML="<table width=100% cellpadding=3 cellspacing=1>"+s.join('')+"</table>";
	$("mytotal").innerHTML="<table width=100% cellpadding=3 cellspacing=1><tr><td width=120><b>Total:</b></td><td width=80 align=right><div id=cart_total style='width:74px;height:16px;text-align:right;padding:2px;font-weight:bold'>"+r[1]+" "+format(total/r[0])+"</div></td><td width=45>&nbsp;</td></tr></table>";
}
function draw_order(){
	var s=[],total=0,r=rate[cartpara.cur],p=(100-getrate());
	s.push("<div class=topic>"+cart_type+"</div><div class=dotline></div><div class=inner><table width=100% cellpadding=3 cellspacing=2><tr style='background:#f4f4f4'><td width=140>Order Number</td><td width=100 align=center>Retail Price</td>"+(p<100?"<td width=100 align=center>Actual Price</td>":"")+"<td>Game and Server</td></tr>");
	s.push("<tr onmouseover=\"this.bgColor='#F6FFF6'\" onmouseout=\"this.bgColor=''\">");
	s.push("<td valign=top><b>"+order.number+"</b></td>");
	s.push("<td align=center valign=top>"+r[1]+" "+format(order.price/r[0])+"</td>");
	if(p<100)s.push("<td align=center valign=top style='color:red'>"+r[1]+" "+format(order.price*p/100/r[0])+"</td>");
	s.push("<td valig=top style='line-height:16px'>"+cart_server+"<br>");
	if(order.num)s.push("<b>"+order.num+"</b> "+order.item+"</td>");
	if(order.start)s.push("Level : "+order.start+" to "+order.end+"<br>");
	if(order.skill)s.push("Skill : "+order.skill+"<br>");
	if(order.honor)s.push("Honor : "+order.honor+"<br>");
	if(order.quest)s.push("Quest : "+order.quest+"<br>");
	if(order.pack)s.push(order.pack);
	s.push("</td>");
	s.push("</table></div>");
	$("order_div").innerHTML=s.join('');
	$("order_total").innerHTML="<div class=line></div><table width=100% cellpadding=3 cellspacing=1><tr><td width=140 align=right><b style='color:blue'>Total Price:</b></td><td width=100 align=center><div id=cart_total style='padding:3px;color:blue;font-weight:bold'>"+r[1]+" "+format(order.price/r[0])+"</div></td>"+(p<100?"<td width=100 align=center style='color:red'><b>"+r[1]+" "+format(order.price*p/100/r[0])+"</b></td>":"")+"<td></td></tr></table>";
	s=["<div style='margin-bottom:5px;font-weight:bold'>Customer Infomation Detail</div><table class='form'>"];
	s.push("<tr><th>Your IP Address</th><td>"+ip+"</td></tr>");
	if(order.account)s.push("<tr><th>Game Account</th><td>"+order.account+"</td></tr>");
	if(order.password)s.push("<tr><th>Game Password</th><td>"+order.password+"</td></tr>");
	if(order.char)s.push("<tr><th>Character Name</th><td>"+order.char+"</td></tr>");
	if(order.profession)s.push("<tr><th>Profession</th><td>"+order.profession+"</td></tr>");
	if(order.country)s.push("<tr><th>Country</th><td>"+order.country+"</td></tr>");
	if(order.tel)s.push("<tr><th>Telephone</th><td>"+order.tel+"</td></tr>");
	if(order.email)s.push("<tr><th>Contact Email</th><td>"+order.email+"</td></tr>");
	var tmp=[];
	if(order.begin1&&order.end1)tmp.push("Today : "+order.begin1+":00 - "+order.end1+":00<br>");
	if(order.begin2&&order.end2)tmp.push("Tomorrow : "+order.begin2+":00 - "+order.end2+":00<br>");
	if(tmp.length>0) s.push("<tr><th>Time Online</th><td>"+tmp.join('')+"</td></tr>");
	s.push("</table>");
	$("order_detail").innerHTML=s.join('');
	return order.price;
}
var couponrate=0;
function getrate(){
	var p=parseInt(Cookie.get("rate"))||0; 
	return Math.max(p,couponrate);
}
function check_coupon(){
	var v=$("coupon").value;
	if(!v) return alert("Please input coupon code first!");
	var p = F.call("pay.coupon",v);
	if(p.success){
		couponrate=p.rate?p.rate:couponmin;
		calbonus();
	}
	else{
		couponrate=0;
		$("coupon").value="";
	}
}
function order_del(n){
	if(confirm("Do you confirm to remove this item?")==false) return false;
	if(order[n]){ delete(order[n])}
	draw_order();
	return false;
}
function cart_del(n){
	if(confirm("Do you confirm to remove this item?")==false) return false;
	if(cart[n]){ delete(cart[n]); Cookie.set("cart",tocookie(cart)) }
	draw();
	return false;
}
function checkout(id){
	for(var e in cart){
		if(cart_type=="Gold") return location="/gold+detail-i"+cart_game+".htm";
		if(cart_type=="Powerleveling") return location="/powerleveling+detail-i"+cart_game+".htm";
	}
}
function pay(){if(dealorder()==true) location='/pay.htm';}
function pchoose(o){
	$$(F.top(o),"INPUT")[0].checked=true;
}
function finish(){
	var r=$$$("pradio"),num=0;
	for(var i=0;i<r.length;i++){
		if(!r[i].checked) continue;
		num++;
		if(i==2){
			okdata("WestUnion");
			location="/westunion.htm";
		}
		else okpaypal();
	}
	if(num==0) alert("Please choose one of the payment methods above.");
}
function okdata(pay){
	var cc=$("yourcur").getAttribute("data"),pr=(100-getrate()),s=[];
	if(!cc) cc="USD";
	if(cart_type=="Gold"){
		s.push("<row");
		s.push(" coupon=\"" + order.coupon + "\"");
		s.push(" order_no=\"" + order.number + "\"");
		s.push(" order_gameid=\"" + cart_game + "\"");
		s.push(" order_sid=\"" + order.sid + "\"");
		s.push(" order_tid=\"" + order.tid + "\"");
		s.push(" order_server=\"" + F.xmlIn(cart_server) + "\"");
		s.push(" order_name=\"" + F.xmlIn(order.name) + "\"");
		s.push(" order_char=\"" + F.xmlIn(order.char) + "\"");
		s.push(" order_email=\"" + F.xmlIn(order.email) + "\"");
		s.push(" order_tel=\"" + F.xmlIn(order.tel) + "\"");
		s.push(" order_country=\"" + F.xmlIn(order.country) + "\"");
		s.push(" order_money=\"" + format(order.price*pr/100) + "\"");
		s.push(" order_num=\"" + order.num + "\"");
		s.push(" order_note=\"" + F.xmlIn($("note").value) + "\"");
		s.push(" order_pay=\"" + pay + "\"");
		s.push("/>");
		var ret=F.callxml("/pay.gold","<data>"+s.join("")+"</data>");
		if(!ret||!ret.success) throw {message:"Sorry! Server is Busy, Please Try Later."};
	}
	else if(cart_type=="Powerleveling"){
		s.push("<row");
		s.push(" coupon=\"" + order.coupon + "\"");
		s.push(" order_no=\"" + order.number + "\"");
		s.push(" order_gameid=\"" + cart_game + "\"");
		s.push(" order_server=\"" + F.xmlIn(cart_server) + "\"");
		s.push(" order_char=\"" + F.xmlIn(order.char) + "\"");
		s.push(" order_profession=\"" + F.xmlIn(order.profession) + "\"");
		s.push(" order_login=\"" + F.xmlIn(order.account) + "\"");
		s.push(" order_pwd=\"" + F.xmlIn(order.password) + "\"");
		s.push(" order_level_start=\"" + order.start + "\"");
		s.push(" order_level_now=\"" + order.start + "\"");
		s.push(" order_level_end=\"" + order.end + "\"");
		s.push(" order_email=\"" + F.xmlIn(order.email) + "\"");
		s.push(" order_tel=\"" + F.xmlIn(order.tel) + "\"");
		s.push(" order_country=\"" + F.xmlIn(order.country) + "\"");
		var t=[];
		if(order.skill)t.push("Skill : "+order.skill);
		if(order.honor)t.push("Honor : "+order.honor);
		if(order.quest)t.push("Quest : "+order.quest);
		if(order.pack)t.push(order.pack);
		if(t.length>0)s.push(" order_pack=\"" + F.xmlIn(t.join(" | ")) + "\"");
		s.push(" order_money=\"" + format(order.price*pr/100) + "\"");
		s.push(" order_note=\"" + F.xmlIn($("note").value) + "\"");
		s.push(" order_pay=\"" + pay + "\"");
		s.push("/>");
		var ret=F.callxml("/pay.level","<data>"+s.join('')+"</data>");
		if(!ret||!ret.success) throw {message:"Sorry! Server is Busy, Please Try Later."};
	}
}
function okgoogle(){
try{
	var pay="Google",pr=(100-getrate());
	var cc=$("yourcur").getAttribute("data");
	if(!cc) cc="USD";
	if(cc!="USD"){
		alert("Google Checkout only support U.S. dollars,please change your Currency or Pay Method!");
		var y=$("yourcur");
		y.setAttribute("data",(cartpara.cur=cc="USD"));
		var a=y.getElementsByTagName("A");
		for(var j=0;j<a.length;j++)a[j].className=a[j].innerHTML==cc?"focus":"";
		var total=draw_order();
		myhot(total);
		return;
	}
	okdata(pay);
	var r=rate[cc];

	var g=$("form_google"),count=0,price=0;
	for(var e in order){
		var o=order[e];
		count++;
		price+=o.price;
		g.appendChild(create("item_name_"+count,o.number));
		g.appendChild(create("item_description_"+count,o.game+" | "+ o.num+" "+o.item));
		g.appendChild(create("item_quantity_"+count,1));
		g.appendChild(create("item_price_"+count,format(o.price*pr/100/r[0])));
		g.appendChild(create("item_currency_"+count,cc));
	}
	for(var e in cart){
		var o=cart[e];
		count++;
		price+=o.price;
		
		var lvl="",s=[];
		
		if(o.start>0) lvl="Level : "+o.start+" to "+o.end + " | ";
		if(o.skill) s[s.length]="Skill : "+o.skill;
		if(o.honor) s[s.length]="Honor : "+o.honor;
		if(o.quest) s[s.length]="Quest : "+o.quest;
		if(o.pack) s[s.length]=o.pack;

		if(s.length>0) lvl+=s.join(" | ");
		if(lvl>"") lvl=" | " + lvl;

		g.appendChild(create("item_name_"+count,o.number));
		g.appendChild(create("item_description_"+count,o.game+lvl));
		g.appendChild(create("item_quantity_"+count,1));
		g.appendChild(create("item_price_"+count,format(o.price*pr/100/r[0])));
		g.appendChild(create("item_currency_"+count,cc));
	}
	Cookie.set("order","");
	Cookie.set("cart","");
	Cookie.set("cart","");
	$("form_google").submit();
}catch(e){alert(e.message);}
}
function okpaypal(){
try{
	var pay="PayPal",pr=(100-getrate());
	okdata(pay);
	var cc=$("yourcur").getAttribute("data");
	if(!cc) cc="USD";
	var r=rate[cc];
	var p=$("form_paypal");
	if(cart_type=="Gold"){
		p.appendChild(create("item_number_1",order.number));
		p.appendChild(create("item_name_1",cart_server));
		p.appendChild(create("on0_1",order.item));
		p.appendChild(create("os0_1",order.num));
		p.appendChild(create("amount_1",format(order.price*pr/100/r[0])));
	}
	else if(cart_type=="Powerleveling"){
		var lvl="",s=[];	
		p.appendChild(create("item_number_1",order.number));
		p.appendChild(create("item_name_1",cart_server));
		p.appendChild(create("amount_1",format(order.price*pr/100/r[0])));
		if(order.start>0){
			p.appendChild(create("on0_1","Level"));
			p.appendChild(create("os0_1",order.start+" to "+order.end));
			lvl="Level : "+order.start+" to "+order.end + " | ";
		}
		if(order.skill) s.push("Skill : "+order.skill);
		if(order.honor) s.push("Honor : "+order.honor);
		if(order.quest) s.push("Quest : "+order.quest);
		if(order.pack) s.push(order.pack);

		if(s.length>0){
			p.appendChild(create("on1_1","Detail"));
			p.appendChild(create("os1_1",s.join(" | ")));
			lvl+=s.join(" | ");
		}
		if(lvl>"") lvl=" | " + lvl;
	}
	p.appendChild(create("currency_code",cc));
	p.appendChild(create("notify_url","http://www.oofay.com.cn/monitor.ashx"));

	Cookie.set("order","");
	Cookie.set("cart","");
	Cookie.set("cur","");
	$("form_paypal").submit();
}catch(e){alert(e.message);}
}
function create(n,v){
	var o=document.createElement("INPUT");
	o.type="hidden";
	o.name=n;
	o.value=v;
	return o;
}