function template(Arr,str)
{
	var pattern;
	for(var $i=0;$i<Arr.length;$i++)
	{
		pattern = new RegExp("\{[$]"+Arr[$i][0]+"\}","g");
		str = str.replace(pattern,Arr[$i][1]);
	}
	return str;
}
function selectPayment(ix,c)
{
	var pac = $("paymentAddress",2);
	var regID = '';
	var i=0,hotitemobj,pptitles,ppdetail,ppprices;
	for(;i<pac.length;i++)
	{
		if(pac[i].checked)break;
	}
	if(i==pac.length){alert('Pleast choose less than one payment method');return false;}
	switch(ix)
	{
		case '8L0S966R':
		case 'FFFFFFFF':
		
			hotitemobj = $("bottom_dialog").getElementsByTagName("td")[0];
			hotitemobj = hotitemobj.getElementsByTagName("td");
			hotitemobj = hotitemobj[hotitemobj.length-1];
			hotitemobj = hotitemobj.getElementsByTagName("input");
			pptitles = hotitemobj[0].value;
			ppdetail = hotitemobj[3].value;
			ppprices = hotitemobj[2].value;
			regID = 'userInfoRegion';
			break;
		case 'GGGGGGGG':
			pptitles = $("bottom_dialog").getElementsByTagName("form")[0].title.value;
			ppdetail = '';
			ppprices = $("bottom_dialog").getElementsByTagName("form")[0].price.value;	
			regID = 'dialog_content';

			break;	
		case 'HHHHHHHH':
			pptitles = $("bugloldefined_calc_title").value;
			ppprices = $("bugloldefined_actual_penny").value;
			regID = 'bugloldefined_gold_unique_div_endeavor_right';	
			break;
		case 'PPPPPPPP'://preorderid preordergamename preorderprice predays
		
			pptitles = 'Tony preorder - '+ $('preordergamename').value + ' - ' + $('predays').value + 'days';
			ppprices = $('preorderprice').value * $('predays').value;
			regID = 'preorderid';
			break;
		default:
			pptitles = $("bugloldefined_calc_title").value;
			ppprices = $("bugloldefined_actual_penny").value;
			regID = 'bugloldefined_calc_unique_div_endeavor_right';
			break;
		
	}

	switch(pac[i].parentNode.parentNode.previousSibling.value.toLowerCase())
	{
			case 'paypal':
				var paypalHTML = "<div style='width:250px;'><center><img src='"+WIMGP+(ix=='00000000'?"ajax-loader":"loading")+".gif'><br>Posting data to paypal</center><form method='get' action='https://www.paypal.com/cgi-bin/webscr'><input type='hidden' name='add' value='1'><input type='hidden' name='cmd' value='_ext-enter'><input type='hidden' name='redirect_cmd' value='_xclick'><input type='hidden' name='business' value='"+pac[i].value+"'><input type='hidden' name='item_name' value='"+pptitles+"'><input type='hidden' name='item_number' value='1'><input type='hidden' name='amount' value='"+ppprices+"'><input type='hidden' name='shipping' value='0'><input type='hidden' name='no_note' value='1'><input type='hidden' name='return' value='http://www.tonypl.com/'><input type='hidden' name='cancel' value='http://www.tonypl.com/'><input type='hidden' name='currency_code' value='USD'><input type='hidden' name='lc' value='US'></form><br/><form action='https://www.paypal.com/cgi-bin/webscr' method='post'><input type='hidden' name='business' value='"+pac[i].value+"'><input type='hidden' name='cmd' value='_cart'><input type='hidden' name='add' value='1'><input type='hidden' name='item_name' value='"+pptitles+"'><input type='hidden' name='item_number' value='17739'><input type='hidden' name='amount' value='"+ppprices+"'><input type='hidden' name='currency_code' value='USD'><input type='hidden' name='on0' value='hint'><input type='hidden' name='os0' value='"+(ppdetail?ppdetail:'via tony onLine calculator')+"'></form></div>";

				if(__NEWPPWIN)
				{
					var winpp = window.open("","paypal");
					if(!winpp)
					{
						$(regID).innerHTML = paypalHTML;
						$(regID).getElementsByTagName("form")[c=='i'?0:1].submit();
					}else{
						winpp.document.write(paypalHTML);
						winpp.document.getElementsByTagName("form")[c=='i'?0:1].target = 'paypal';
						winpp.document.getElementsByTagName("form")[c=='i'?0:1].submit();
					}
					try{closeDialog();}catch(e){}
				}else{
					$(regID).innerHTML = paypalHTML;
					$(regID).getElementsByTagName("form")[c=='i'?0:1].submit();
				}
			
				break;
		case 'wester':
		
			$(regID).innerHTML = '<b>Please pay to:</b><br/><br/>'+(pac[i].value)+ '<br/><br/>via western union;';break;
		default:
			alert('Unknow payment address');
	}
	return false;
}
function absorbElements(o,idx)
{
	var str = '';
	if(o.tagName!='FORM')return str;
	for(o=o.elements,$I=o.length,$i=0;$i<$I;$i++)
	{
		str += o[$i].name?(o[$i].name+'='+o[$i].value+'&'):'';
	}
	return str+"systeminfo_IDX="+idx;
}
function extPP(o,t,p,d,m,g,pic,width,height)
{
	
//try{

	this.IDX = "FFFFFFFF";

	var gamename = $B_services_cache_array[1];
	var picex = pic?pic:'<img src="'+WIMGP+'gamelogo/'+gamename+'.jpg">'	;
	if($("bottom_dialog").style.display=='block'&&o.tagName=='INPUT'&&arguments.length==5){return false;}
	if(!AX){return false;}
	if(o.tagName=='INPUT')
	{
		p = p.replace(/[^\d\.]/,"");
		showDia(
			"Tony online game services -- buy it now",
			"<center><br/><img src='"+WIMGP+"buynowloading.gif'><br/><br/><b>Loading...</b></center>",
			"400","300"

		);
		AX.loadHttp(
			WINCP+"buynow.php",
			function(x)
			{
				var returnArguments = x.responseText.split(BUGLOLJSSEPARATOR);
	
				if(returnArguments.length!=3)
				{
					alert("function name:extPP\nWrong number of arguments responsed\n"+x.responseText);
					return false;
				}
				showDia(
							"Tony online game services -- buy it now",
							template(
								[
									['title',t],
									['gamename',$B_services_cache_array[3]],
									['pic',picex],
									['days',d],
									['description',m]
								],
								returnArguments[0]
							),
							width||returnArguments[1],
							height||returnArguments[2],
							true
				);								
	
			},
			"p="+p+"&identity="+$("bugloldefined__global_unique_identity_input_index_24").value
		);
	}else if(o.tagName == 'FORM'){
		return assembleInfo(o,this.IDX,'extpp');
	}else{
		
	}
	o.blur();
	return false;
//}catch(E){alert(E.description);}

}
function extgoldPP(o,a,p,t)
{
	this.IDX = 'GGGGGGGG';
	var gamename = $B_services_cache_array[1];
	if($("bottom_dialog").style.display=='block'&&o.tagName=='INPUT'&&arguments.length==4){return false;}

	if(o.tagName=='INPUT')
	{
		AX.loadHttp(
			WINCP+'buynow_gold.php',
			function(x)
			{
				var returnArguments = x.responseText.split(BUGLOLJSSEPARATOR);
				if(returnArguments.length!=3)
				{
					alert("function name:extPP\nWrong number of arguments responsed\n"+x.responseText);
					return false;
				}
				showDia(
					"Tony Gold seller",
					template(
						[
							['title',t],
							['gamename',$B_services_cache_array[3]],
							['pic','<img src="'+WIMGP+'ico/'+gamename+'.jpg">'],
							['amount',a],
							['price',precise(p)]
	
						],
						returnArguments[0]
					),
					returnArguments[1],
					returnArguments[2]
				);
			},
			''
		);
	}else if(o.tagName=='FORM'){
		return assembleInfo(o,this.IDX,'extgoldpp');
	}else{
		
	}
}
function tony_js_hotitem(o)
{

	this.IDX = "8L0S966R";

	var hotitemTitle,hotitemPrice,hotitemPicture,hotitemDetail,hotitemDiscountPrice;
	function callBackProduce(x)
	{
		var returnArguments = x.responseText.split(BUGLOLJSSEPARATOR);
		if(returnArguments.length!=3)
		{
			alert("function name:tony_js_hotitem\nWrong number of arguments responsed\n"+x.responseText);
			return false;
		}
		showDia(
			"Tony hotitem -- buy it instant",
			template(
				[
					['Hotitemtitle',hotitemTitle],
					['Hotitempicture',hotitemPicture],
					['Hotitemoriginalprice',hotitemDiscountPrice],
					['Hotitemnowprice',hotitemPrice],
					['Hotitemdetail',hotitemDetail]
				],
				returnArguments[0]
			),
			returnArguments[1],
			returnArguments[2]
		);		
	}
	if(o.parentNode.parentNode.parentNode.parentNode.tagName=='TABLE'&&o.tagName == 'SPAN')
	{
		hotitemTitle = o.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("td")[0].innerHTML.replace(/&#13;/g,"<br>");
		hotitemPrice = o.previousSibling.innerHTML.replace(/[^\d\.]/g,'');
		hotitemPicture = o.parentNode.previousSibling.innerHTML;
		hotitemDetail = o.previousSibling.previousSibling.getElementsByTagName("img")[0].title.replace(/\\u0027/g,"&#039;");
		hotitemDiscountPrice = o.previousSibling.previousSibling.getElementsByTagName("label")[0].innerHTML.replace(/[^\d\.]/g,'');
		AX.loadHttp(
			WINCP+"hotitem.php",
			callBackProduce,
			""
		);
		return true;
	}else if(o.tagName == 'FORM'){
		assembleInfo(o,this.IDX,'hotitem');return false;
	};
	alert('Function name:tony_js_hotitem\ninvaildHTML format');
	return false;
}
function assembleInfo(o,idx,c)
{
	try{
		var rtdo = $("userInfoRegion");
		if(!rtdo)return false;
		if(arguments.length!=3){alert('Error:3951');return false;}
		try{
			var hotitemobj = o.parentNode.parentNode.parentNode.getElementsByTagName("td")[0].getElementsByTagName("table")[0];
			hotitemobj = hotitemobj.getElementsByTagName("td");
			hotitemobj = hotitemobj[hotitemobj.length-1];
		}catch(e){alert(e.message||e.description);return false;}
		var hotitemInputs = hotitemobj.getElementsByTagName("input");
		var orderInfo = "";
		for(var i=0;i<hotitemInputs.length;i++)
		{
			orderInfo += "&"+hotitemInputs[i].name+"="+hotitemInputs[i].value;
		}
		var requestString = absorbElements(o,idx)+orderInfo+"&identity="+($('bugloldefined__global_unique_identity_input_index_24')?$('bugloldefined__global_unique_identity_input_index_24').value:'000000000000000000000000');
		rtdo.innerHTML = "<br><br><center><img src='"+WIMGP+"loading.gif'><br>Processing your request</center>";

	
		setTimeout(function(){
		AX.loadHttp(
			WINCP+c+'_choosePaymentAddress.php',
			function(x)
			{
				if(c=='extgoldpp')
				{
					showDia(//'<br/><br/><br/><br/>Please pay it to:<br/><br/>Dingkun An <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Baiyuan street #16 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tongling Anhui 244000 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;China <br/><br/>Via western union',
						
						'Tony Gold seller',
						x.responseText,
						420,350
					);
					
				}else{
					//alert(x.responseText);
					rtdo.innerHTML = x.responseText;
				}
			},
			requestString+"&loc="+window.location
		);},0);	
		return false;
	}catch(E){return false;}
}
function AI_analysis()
{
	function stripHTML(html)
	{
		var pattern = /<[^>]+>/g;
		if(!html){return '';}
		if(typeof html != 'string'){html = html.toString();}
		return html.replace(pattern,"").replace(/'/g,"\\'");
	}
	function rebuiltTblCausedDiscount(o,p,b)
	{
		var i=0,j=0,tds,trs,factor,of,pattern,result;
		factor = o.getAttribute("discount");
		if(parseFloat(factor)>1||parseFloat(factor)<0){alert('Error:2311');return false;}
	
		pattern = /^([1-9]\d*|0)(?:\.?(\d+))?$/;
		try
		{
			tds = o.getElementsByTagName("tbody");
			trs = tds[0].getElementsByTagName("tr");
			
			for(i=0;i<trs.length;i++)
			{
				if(trs[i].getAttribute('discount'))
				{
					of = parseFloat(trs[i].getAttribute('discount'));
				}else{
					of = factor;	
				}
				tds = trs[i].getElementsByTagName("td");
				for(j=0;j<p.length;j++)
				{
					if((result = /^\s*\$?\s*(([1-9]\d*|0)(?:\.?(\d+))?)\s*\$?\s*$/.exec(stripHTML(tds[p[j]].innerHTML))) != null)
					{
						if(of!='1')
						{
							tds[p[j]].innerHTML = tds[p[j]].innerHTML.replace(eval('/'+result[1]+'/'),'<span class="throughline">'+(result[1])+'</span><BR/> ') + precise(result[1]*of) + '<input type="Hidden" value="'+precise(result[1]*of)+'">';
						}
					}else{
						tds[p[j]].style.background = 'red';	
					}
				}
				
			}
		}catch(E){alert(E.message||E.description);return false;}
		return true;
	}
			
	function analyzingTable()
	{

		var handlescope = document.getElementById("bugloldefined_unique_id_price__div");
		var ats,i,hint,hook,l,b,p,j,m,des,t,d;
		if(!handlescope){return false;}
		try
		{
			ats = handlescope.getElementsByTagName("table");
		}catch(E){alert(E.message||E.description);return false;}
	
		for(i=0;i<ats.length;i++)
		{
			hook = [],b=[],p=[],d=[],t=[],m=[],b=[];
			if(ats[i].getAttribute("name")!='AspiringToHandle'){continue;}
			ats[i].className = 'bodycenter';
			hint = ats[i].getElementsByTagName("thead")[0].getElementsByTagName("tr");
			hint = hint[hint.length-1];
			hint.className = 'p_th';
			hint = hint.getElementsByTagName("td");
			for(j=0;j<hint.length;j++)
			{
				if(hint[j].getAttribute("hook"))
				{
					hook.push(hint[j].getAttribute("hook"));
				}else{
					alert('Error:3770');
					return false;
				}
			}
			l = hook.length;
			des = [];
			for(j=0;j<l;j++)
			{
				switch(hook[j].toLowerCase())
				{
					case 'price':p.push(j);break;
					case 'button':b.push(j);break;
					case 'title':t.push(j);break;
					case 'days':d.push(j);break;
					default:
					if(/^description\d*$/.test(hook[j].toLowerCase()))
					{
						des.push(j);
					}else{
					}
				}
			}
			m.push(des);
			if(b.length!=p.length){alert('Error:5097');return false;}
			if(d.length % b.length){alert('Error:4770');return false;}
			if(ats[i].getAttribute("discount"))
			{
				if(!rebuiltTblCausedDiscount(ats[i],p,b)){alert('Producing discount function failed...');return false;}
			}
			composeTbl(ats[i],t,p,d,m,b);
		}
	}
	function fabricatingFun(dl,t,p,d,m,j)
	{
		if(arguments.length!=6){return false;}
		var tt,pp,dd,mm='';
		if(m.length)
		{
			for(var i=0;i<m[0].length/p.length;i++)
			{
				mm+=dl[m[0][j*m[0].length/p.length+i]].innerHTML+'<br>';
			}
		}
	
		tt=stripHTML(dl[t[j]?t[j]:t[0]].innerHTML);
		pp=dl[p[j]].getElementsByTagName("input").length?dl[p[j]].getElementsByTagName("input")[0].value:stripHTML(dl[p[j]].innerHTML);
		dd=stripHTML(dl[d[j]].innerHTML);
		mm=stripHTML(mm);
		return "extPP(this,'"+tt+"','"+pp+"','"+dd+"','"+mm+"')";
	}

	function composeTbl(o,t,p,d,m,b)
	{

		var cl = o.getElementsByTagName("tbody")[0];
		var lol;
		cl = cl.getElementsByTagName("tr");
		var i,j;
		var dl;
	try
{
			for(i=0;i<cl.length;i++)
			{
				cl[i].className='scale'+(i%2);
				dl = cl[i].getElementsByTagName("td");
				if(dl.length!=o.getElementsByTagName("thead")[0].getElementsByTagName("tr")[o.getElementsByTagName("thead")[0].getElementsByTagName("tr").length-1].getElementsByTagName("td").length){continue}
				for(j=0;j<b.length;j++)
				{
					
					if(dl[p[j]].getElementsByTagName("input").length)
					{
						
						if(lol = fabricatingFun(dl,t,p,d,m,j))
						{
							dl[b[j]].innerHTML = '<input onclick="'+lol+'" type="image" src="'+WIMGP+'pp.gif">';
						}else{
							dl[b[j]].innerHTML = 'Error';	
						}
					}else{
						if(/^\s*\$?\s*(([1-9]\d*|0)(?:\.?(\d+))?)\s*\$?\s*$/.test(stripHTML(dl[p[j]].innerHTML)))
						{
							if(lol = fabricatingFun(dl,t,p,d,m,j))
							{
								dl[b[j]].innerHTML = '<input type="image" onclick="'+lol+'" src="'+WIMGP+'pp.gif">';
							}else{
								dl[b[j]].innerHTML = 'Error';
							}
						}else{
							dl[b[j]].innerHTML = stripHTML(dl[p[j]].innerHTML);
						}
					}
				}
			}
		}catch(e){alert(e.message||e.description)}
	}
	analyzingTable()
}
function buygold(o)
{
	var m = o;
	var a,p,t;
	var o = o.parentNode.parentNode;
	o = o.getElementsByTagName("td");
	if(/^\s*\$?\s*(([1-9]\d*|0)(?:\.?(\d+))?)\s*\s*$/.test(o[2].innerHTML))
	{
		p = RegExp.$1;
	}
	t = o[0].innerHTML;
	a = o[1].innerHTML;
	extgoldPP(m,a,p,t);
}
function shiftgoldserver(o)
{
	var tblojb;
	var trcl;
	tblojb = o;
	var i=0;
	while(o)
	{
		if(o.tagName=='TABLE')
		{
			break;
		}
		o = o.parentNode;
	}
	if(o.tagName!='TABLE'){alert('Object not be found.');return false;}
	trcl = o.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
	for(i=0;i<trcl.length;i++)
	{
		if(trcl[i].getElementsByTagName("td")[0].innerHTML.replace(/(^\s+)|(\s+$)/g,"")==tblojb.value)
		{
			trcl[i].style.display = '';
			
		}else{
			trcl[i].style.display = 'none';	
		}
	}
}
function showHotItemContents(o)
{
	showDia(
		'Tony hotitem',
		'<div style="padding:20px;">'+o.title+'</div>',
		300,180
	);
}

function preodrder(o,title,price,diymode)
{
	showDia(
	'Tony pre-order',
	'<div id="preorderid"><div style="line-height:30px;margin:auto;width:210px;">'
	+'<br/><a href="'+o.href+'" target="_blank" style="border:1px solid #333300;padding:3px;">'+o.innerHTML+'</a>'
	+'<br/><b>Game Name: </b>'+(diymode?'<input id="preordergamename">':title+'<input id="preordergamename" type="hidden" value="'+title+'">')+'<br/>'
	+ '<b>Price: </b>'+price+'$/day<br/><input id="preorderprice" type="hidden" value="'+price+'">'
	+'<b>Days: </b> <input name="predays" size="4" value="3">'
	+'<br/><br/><div id="preorderpayment"></div><input onclick="selectPayment(\'PPPPPPPP\')" type="button" value="Pre-order now"/>'
	+'</div></div>',
	470,650
	);
	AX.loadHttp(
	WINCP+"paymentaddress_calc.php",
	function(x)
	{
		$("preorderpayment").innerHTML = x.responseText;
	},
	''
	);
	return false;
}

