﻿var rate={"USD":[1.00,"$"],"EUR":[1.43,"€"],"GBP":[1.89,"£"]};
var para={level:{price:0,time:0,pack:""},skill:{price:0,time:0,pack:""},honor:{price:0,time:0,pack:""},reputation:{price:0,time:0,pack:""},package:{price:0,time:0,pack:""}};
function other_fill(n,l){
	var o=document.getElementById(n);
	if(!o||!l) return;
	for(var e in l) o.options[o.length]=new Option(l[e][2],e);
}
function level_fill(n,v){
	var o=document.getElementById(n);
	if(!o) return;
	o.length=parseInt(o.getAttribute("min"));
	var l=level[v];if(!l)return;
	for(var e in l) o.options[o.length]=new Option(e,e);
}
function level_skill(p,n){
	var o=document.getElementById(n);
	if(!o) return;
	o.length=parseInt(o.getAttribute("min"));
	var l=skill[p.value]; if(!l) return;
	for(var e in l) o.options[o.length]=new Option(l[e][2],e);
}
function kind_init(n,v){
	var o=document.getElementById(n);
	if(!o) return;
	o.length=parseInt(o.getAttribute("min"));
	var l=kind[v];if(!l)return;
	for(var e in l) o.options[o.length]=new Option(l[e],e);
}
function showcur(v){
	var s="<table cellspacing=0 cellpadding=0 width=100%>";
	for(var e in rate)s+="<tr><td align=right>"+e+"&nbsp;</td><td width=5>"+rate[e][1]+"</td><td width=55 align=right>"+parseFloat(v/rate[e][0]).toFixed(2)+"</td></tr>";
	return s+"</table>";
}
function checkit(n){
	var me=chks[n],d=F.top(me.tbl,"DIV");
	me.stat=!me.stat;
	me.tbl.getElementsByTagName("B")[0].style.color=me.stat?"#6c5636":"#6c5636";
	me.chk.checked=me.stat;
	me.chk.blur();
	if(me.stat){
		me.tbl.style.background="#f1d385";
		me.tbl.style.borderTop = me.tbl.style.borderLeft = "0px solid #d6d2d2";
		me.tbl.style.borderBottom = "1px solid #c56f27";
		switch(me.name){
			case "level":callevel();break;
			case "skill":calskill();break;
			case "honor":calhonor();break;
			case "Reputation":calreputation();break;
			case "package":calpackage();break;
		}
	}
	else{
		switch(me.name){
			case "level":para.level={price:0,time:0,pack:""};delete(curlevel.error);curlevel.start=curlevel.end=0;break;
			case "skill":para.skill={price:0,time:0,pack:""};break;
			case "honor":para.honor={price:0,time:0,pack:""};break;
			case "Reputation":para.reputation={price:0,time:0,pack:""};break;
			case "package":para.package={price:0,time:0,pack:""};break;
		}
		me.tbl.style.background="#f4d286";
		me.tbl.style.border="1px solid #c58d5f";
	}
	d.getElementsByTagName("DIV")[0].style.display=me.stat?"block":"none";
}

var curlevel={start:0,end:0,error:""};

function callevel(o){
	if(o){document.body.focus();Hot.set(tags.levelmoney);}
	var l=level[gid]; if(!l) return;
	var a=parseInt(F.id("level_start").value),b=parseInt(F.id("level_end").value);
	var cost=l[b][0]-l[a][0],t=l[b][1]-l[a][1]<0?0:l[b][1]-l[a][1];
	if(cost<0) cost=0;
	if(a>=b) tags.levelwarn.innerHTML="Warning: Desired level must be greater than Your Current level";
	else if(cost<10) tags.levelwarn.innerHTML="Warning: Leveling Price must be greater than $10.00";
	if(a>=b||cost<10){
		curlevel.start=curlevel.end=0;
		curlevel.error=tags.levelwarn.innerHTML;
		if(o)tags.levelwarn.style.display="";
	}
	else{
		curlevel.start=a;curlevel.end=b;
		delete(curlevel.error);
		tags.levelwarn.style.display="none";
	}
	para.level={price:cost,time:t,pack:a+"-"+b};

	tags.leveltarget.innerHTML=a+"-"+b;
	tags.leveltime.innerHTML=t+" Hours";
	tags.levelmoney.innerHTML=showcur(cost);
}


function calskill(o){
	if(o){document.body.focus();Hot.set(tags.skillmoney);}
	var a=parseInt(F.id("skill_type").value),b=parseInt(F.id("skill_level").value);
	if(!b)return;
	var l=skill[a][b];
	tags.skilltarget.innerHTML=l[2];
	tags.skilltime.innerHTML=l[1]+" Hours";
	tags.skillmoney.innerHTML=showcur(l[0]);
	para.skill={price:l[0],time:l[1],pack:kind[gid][a]+" "+l[2]};
}
function calhonor(o){
	if(o){document.body.focus();Hot.set(tags.honormoney);}
	var a=parseInt(F.id("honor_sel").value),l=honor[gid][a];
	tags.honortime.innerHTML=l[1]+" Hours";
	tags.honormoney.innerHTML=showcur(l[0]);
	para.honor={price:l[0],time:l[1],pack:l[2]};
}


function calreputation(show){
	var city=$("cities_sel");
	var o1=$("level_sel2");
	var o2=$("level_sel3");
	city=city.options[city.selectedIndex].value;
	var v1=parseInt(o1.options[o1.selectedIndex].value);
	var v2=parseInt(o2.options[o2.selectedIndex].value);
	if(v1>=v2)alert("Sorry!You may choose the wrong level of Reputation Leveling.");
	if(show){document.body.focus();Hot.set(tags.Reputationmoney);}
	var v=v2-v1;
	var time=0;
	var price=0;
	if(reputation[city][0]==0){
		for(var i=1;i<=v;i++){
			time+=reputation[city][v1+i][1];
			price+=reputation[city][v1+i][2];
		}
		if(v>1){price=price-v+1;}
	}else{
		time=reputation[city][v1][1];
		price=reputation[city][v1][2];
	}
	tags.reputationtarget.innerHTML=o1.options[o1.selectedIndex].text+"-"+o2.options[o2.selectedIndex].text;
	tags.Reputationtime.innerHTML=time+" Hours";
	tags.Reputationmoney.innerHTML=showcur(price);
	para.reputation={price:price,time:time,pack:city+":"+o1.options[o1.selectedIndex].text+"-"+o2.options[o2.selectedIndex].text}
}

function calpackage(show){
	if(show){document.body.focus();Hot.set(tags.packagemoney);}
	var level;
	var obj=document.getElementsByName("package_level");
	for(var i=0;i<obj.length;i++){
		if(obj[i].checked){
			level=obj[i].value;
			break;
		}
	}
	var time=package[level][0];
	var price=package[level][1];
	obj=document.getElementsByName("options");
	var p="";
	for(var i=0;i<obj.length;i++){
		if(obj[i].checked){
			time+=package[level][obj[i].value][1];
			price+=package[level][obj[i].value][2];
			p+=package[level][obj[i].value][0];
			if(package[level][obj[i].value][3]){
				var o2=document.getElementById("options2");
				p+="("+o2.options[o2.selectedIndex].value+")";
			}
			p+='/';
		}
	}
	tags.packagetarget.innerHTML=level;
	tags.packagetime.innerHTML=time+" Hours";
	tags.packagemoney.innerHTML=showcur(price);
	para.package={price:price,time:time,pack:level+":"+p}
}

function cities_init(){
	var o=$("cities_sel");
	for(var e in reputation){
		o.options[o.length]=new Option(e,e);
	}
}

function reputation_level(v){
	var o1=$("level_sel2");
	var o2=$("level_sel3");
	if(o1.length>0&&o2.length>0){document.body.focus();Hot.set(tags.Reputationmoney);}
	o1.length=0;
	o2.length=0;
	for(var e=1;e<reputation[v].length-1;e++){
		o1.options[o1.length]=new Option(reputation[v][e][0],e);
	}
	if(reputation[v][0]==0){
		for(var e=2;e<reputation[v].length;e++){
			o2.options[o2.length]=new Option(reputation[v][e][0],e);
		}
	}else if(reputation[v][0]==1){
		o2.options[o2.length]=new Option(reputation[v][reputation[v].length-1][0],reputation[v].length-1);
	}
}

function getoptions(o){
	var v=o.value;
	var str="";
	for(var i=2;i<package[v].length;i++){
		str+="<input name='options' type='checkbox'  value="+i+" onclick='calpackage(this)'/>"+package[v][i][0]+"　";
		if(package[v][i][3]){
			str+="<select name=options2 id=option2>";
			for(var j=0;j<package[v][i][3].length;j++){
				str+="<option value='"+package[v][i][3][j]+"'>"+package[v][i][3][j]+"</option>";
			}
            str+="</select>";
		}
		str+="<br />";
	}
	$("box_option").innerHTML=str;
}

