//jscript_sell.js
//auth:baal;
//2006.11

this.timeout_id = null;
this.reload_myorders = 30000;
//初始化
function sellInit(){

	if($('login') != null && $F('login') == '0'){
		if($('rightbox') != null){
			$('rightbox').innerHTML = '';
		}
		this.param	= 'do=ajaxget&rand='+Math.random();
		if($('cPath') != null && $F('cPath') != 'null'){
			this.param += '&cPath=' + $F('cPath');
		}

		if($('Server_id') != null && $F('Server_id') != 'null'){
			this.param += '&server_id=' + $F('Server_id');
		}
		
		if($('Delivery_method') != null && $F('Delivery_method') != 'null'){
			this.param += '&delivery=' + $F('Delivery_method');
		}
		
		if($('Online_status') != null){
			this.param += '&online=' + $F('Online_status');
		}
		
		getLoginPage();
	}else{
		var cpath = null;
		
		if($F('cPath') != 'null'){
			cpath = parseInt($F('cPath'));
			//Display_status_box(cpath); //显示该游戏的服务器状态列表;
			$('cPath').value = 'null';
			//Display_gamelist(cpath);
			Get_amount();
		}else{
			$('select_form').update('请返回首页选择游戏!');
			return;
		}

		
	}

}

// Display the new page with ajax
function displayPage()
{

	if(this.param == null){
		this.param = 'do=ajaxget&rand='+Math.random();
	}

	ShowStatus('show', ajaxget_opt);
	var url = root_url + 'sell.html';
	var option	={
		method:'get',
		evalScripts: true,
		parameters: this.param,
		onSuccess:function(transport){
			ShowStatus('hide', '');
			setElement('content_inside','show');
			$('content_inside').innerHTML = transport.responseText;

			var cpath = null;
			if($F('cPath') != 'null'){
				cpath = parseInt($F('cPath'));
				//Display_status_box(cpath); //显示该游戏的服务器状态列表;
			}
			$('cPath').value = 'null';
			//Display_gamelist(cpath);
			Get_amount();
		},
		onFailure:function(){
			ShowStatus('show', ajaxget_busy);
		}
	}
	var myAjax	= new Ajax.Request (url, option);
}


//display login page by ajax
function getLoginPage() {

	ShowStatus('show',ajaxget_opt);

	var url = root_sslurl + 'login.html';
	var param  = 'do=ajax_display';
	var option = {
		method:'get',
		evalScripts:true,
		parameters:param,
		onSuccess:function(transport){
			setElement('content_inside','show');
			ShowStatus('hide','');
		},
		onFailure:function(){
			display_status(ajaxget_busy,'status_error');
		}
	}
	var myAjax = new Ajax.Updater ({success:'content_inside'},url,option);
}


//the ajax check login
function checkLogin() {

	var nick = $F('login-nick');
	var password = $F('login-password');
	var antirobotreg = $F('antirobotreg');

	ShowStatus('show',ajaxsubmit);

	var url    = root_sslurl + 'login.html';
	var param  = 'do=ajaxopt&s='+Math.random;
	param += '&nick='+escape3(nick)+'&password='+escape2(password)+'&antirobotreg='+escape3(antirobotreg);
	var option = {
		method:'post',
		evalScripts:true,
		parameters:param,
		onSuccess:function(transport){
			var resp = transport.responseText;
			if(resp != 'success'){

				//if login failed , display the response test, and change authimg , then set enabled the form
				switch (resp) {
					case 'error_user':
					var msg = '登录失败，用户名不正确!';
					$('login-nick').focus();
					break;
					case 'error_password':
					var msg = '登录失败，密码不正确!';
					$('login-password').focus();
					break;
					case 'error_authcode':
					var msg = '登录失败，校验码不正确!';
					$('antirobotreg').focus();
					break;
					default:
					var msg = '登录失败，请检查登录信息!';
					$('login-nick').focus();
					break;
				}
				msg += ' &nbsp;校验码已更新!';
				display_status(msg,'status_error',5000);
				change_authimg();

			}else{
				//if login success, clean account_content, then display the account page with ajax;
				ShowStatus('hide','');
				$('content_inside').innerHTML = '';
				reget_header();//重载header
				displayPage();

			}

		},
		onFailure:function(){
			display_status(ajaxget_busy,'status_error');
		}
	}

	var myAjax = new Ajax.Request (url,option);
}



//初始化game列表
function Display_gamelist(cpath){

	//载入游戏XML文件
	ShowStatus('show',ajaxget_opt);
	var url		= root_url + 'XMLdata/game.xml';
	var param   = 's=' + Math.random();
	var option	={
		method:'get',
		parameters:param,
		evalScripts: true,
		onSuccess: function(transport){
			var xmlDoc = transport.responseXML;
			var game_query = xmlDoc.selectNodes('//Game/game[@status="1"]');

			AddSelect('Select_game','请选择游戏','0');
			var options_text  = '';
			var options_value = '';
			for(var i=0;i<game_query.length;i++){

				options_text  = game_query[i].getAttribute('name');
				options_value = game_query[i].getAttribute('id');

				if(options_value == cpath){
					AddSelect('Select_game',options_text,options_value,true);
				}else{
					AddSelect('Select_game',options_text,options_value);
				}

			}
			ShowStatus('hide','');
			Build_serverlist();
		},
		onFailure: function(){
			display_status(ajaxget_busy,'status_error');
		}
	}
	var myAjax	= new Ajax.Request (url, option);
}


//初始化serverlist
function Build_serverlist(){

	var game_id = $F('Select_game');
	if(game_id == '0') {
		Close_status_box();
		return;
	}
	//ShowStatus('show',ajaxget_opt);
	var url		= root_url + 'XMLdata/' + game_id + '.xml';
	var param   = 's=' + Math.random();
	var option	={
		method:'get',
		parameters:param,
		evalScripts: true,
		onSuccess: function(transport){
			var xmlDoc = transport.responseXML;
			var Server = xmlDoc.selectSingleNode('//Server');

			if(Server.getAttribute('is_subcate') == '0'){ //判断是否有区
				Display_serverlist(xmlDoc); //无则显示服务器选择列表;
			}else{
				Display_locallist(xmlDoc); //有则显示区选择列表；
			}
			ShowStatus('hide','');
		},
		onFailure: function(){
			display_status(ajaxget_busy,'status_error');
		}
	}
	var myAjax	= new Ajax.Request (url, option);

	return;
}

//选择游戏后
function Change_game()
{
	//清除各下拉列表
	if($S('Select_type_list') == 'block'){
		ClearOptions('Select_type');
		setElement('Select_type_list','hide');
	}
	if($S('Select_server_list') == 'block'){
		ClearOptions('Select_server');
		setElement('Select_server_list','hide');
	}
	if($S('Select_local_list') == 'block'){
		ClearOptions('Select_local');
		setElement('Select_local_list','hide');
	}
	ClearInfo(); //清除所有警告信息;

	var game_id = $F('Select_game');

	if($('status_box') != null){
		if($S('status_box') == 'block'){
			Display_status_box(''); //显示选中游戏的服务器状态;
		}else{
			Close_status_box();
		}

	}
	//Display_status_box(game_id); //显示选中游戏的服务器状态;
	//重建服务器列表
	Build_serverlist();
}


//选择一个区时
function Change_local(){

	ClearInfo();
	var file_id = $F('Select_local');

	if($S('Select_type_list') == 'block'){
		ClearOptions('Select_type');
		setElement('Select_type_list','hide');
	}
	if($S('Select_server_list') == 'block'){
		ClearOptions('Select_server');
		setElement('Select_server_list','hide');
	}
	if(file_id == '0')return;
	//ShowStatus('show',ajaxget_opt);
	var url		= root_url + '/XMLdata/' + file_id + '.xml';
	var param   = 's=' + Math.random();
	var option	={
		method:'get',
		parameters:param,
		evalScripts: true,
		onSuccess: function(transport){
			var xmlDoc = transport.responseXML;
			Display_serverlist(xmlDoc);
			//      ShowStatus('hide','');
		},
		onFailure: function(){
			display_status(ajaxget_busy,'status_error');
		}
	}
	var myAjax	= new Ajax.Request (url, option);
}

//选择一个服务器时
function Change_server(){

	ClearInfo();
	if($('Select_local_list').style.display == 'block'){ //判断是否存在区选择
		var file_id = $F('Select_local'); //如果存在区的选择，则获取该区下面的XML文件
	}else{
		var file_id = $F('Select_game'); //如果不存在区的选择，则获取该游戏下面的XML文件
	}
	if($S('Select_type_list') == 'block'){
		ClearOptions('Select_type');
		setElement('Select_type_list','hide');
	}

	if(file_id == '0')return;
	var url		= root_url + 'XMLdata/' + file_id + '.xml';
	var param   = 's=' + Math.random();
	var option	={
		method:'get',
		parameters:param,
		evalScripts: true,
		onSuccess: function(transport){
			var xmlDoc = transport.responseXML;
			var server_query = xmlDoc.selectSingleNode('//Server/server');
			if(server_query.getAttribute('type') != null){ //判断是否需要阵营选择

				//如果需要阵营选择:
				Display_typelist(xmlDoc);
			}else{
				Get_amount();
			}
		},
		onFailure: function(){
			display_status(ajaxget_busy,'status_error');
		}
	}
	var myAjax	= new Ajax.Request (url, option);

}

//选择阵营后
function Change_type(){

	ClearInfo();
	if($F('Select_type') != '0'){
		Get_amount();
	}
}


//区选择列表显示
function Display_locallist(xmlDoc){

	var local_id = null;
	if($F('Local_id') != 'null'){
		local_id = parseInt($F('Local_id'));
	}

	var local = xmlDoc.selectNodes('//Server/local[@status="1"]');
	if(local.length == 0){
		setElement('gen_msg','show');
		setElement('Select_local','hide');
		$('gen_msg').innerHTML = '该大区所有服务器均已关闭';
		return;
	}

	setElement('Select_local_list','show');
	AddSelect('Select_local','请选择区','0');
	var options_text  = '';
	var options_value = '';

	for(var i=0;i<local.length;i++){
		options_text = local[i].getAttribute('name');
		options_value = local[i].getAttribute('id');
		AddSelect('Select_local', options_text, options_value);
		if(options_value == local_id){
			$('Select_local').options[i+1].selected = true;
		}
	}

	if($F('Local_id') != 'null'){
		$('Local_id').value = 'null';//清除传入的local_id,用户重新选择任何列表，将不再延用此ID
		Change_local();
	}

}


//服务器选择列表显示
function Display_serverlist(xmlDoc){

	var server_id = null;
	if($F('Server_id') != 'null'){
		server_id = parseInt($F('Server_id'));

		$('Server_id').value = 'null';//清除全局Server_id
	}

	//var server = xmlDoc.selectNodes('//Server/server[@status="1"]');
	var server = xmlDoc.selectNodes('//Server/server');
	/*
	if(server.length == 0){
	setElement('gen_msg','show');
	$('gen_msg').innerHTML = '该游戏(或分区)所有服务器均已关闭.';
	if($F('Select_local') == null){
	setElement('status_content','hide');
	setElement('status_box','hide');
	setElement('open_iframe','hide');
	}
	return;
	}
	*/
	//因为如果没有大区选择时，会跳过一半的重复name显示，所以如果有server_id传入时，首先获取该id对应的name，以用于后面的默认选择做匹配

	var id_to_name = null;
	if(Check_not_null(server_id)){
		var id_query = xmlDoc.selectSingleNode("//Server/server[@id='" + server_id + "']");
		id_to_name = id_query.getAttribute('name');
	}


	var has_type = false;
	if(server[0].getAttribute('type') != null){ //判断是否有阵营
		has_type = true;
	}
	setElement('Select_server_list','show');
	AddSelect('Select_server','请选择服务器','0');

	var options = '';
	var options_text = '';
	var options_value = '';

	for(var i=0;i<server.length;i++){
		options_text = server[i].getAttribute('name');
		options_value_id = server[i].getAttribute('id');
		if(!has_type){
			options_value = options_value_id; //如果没有阵营选择，则option的value为ID;
		}else{
			options_value = options_text;//如果有阵营选择，则option的value为name;
		}

		if(options != options_text){
			AddSelect('Select_server', options_text, options_value);
		}
		options = options_text;
	}

	//如果有传入的server_id,则对生成的options做一次遍历，以确定默认选项，防止如果在生成options时添加，会出现跳过某些选项及数组下标i难以确认。
	if(server_id != null){
		var noptions = $('Select_server').options;
		for(i=0;i<noptions.length;i++){
			if(noptions[i].value == server_id || noptions[i].value == id_to_name){
				noptions[i].selected = true;
			}
		}
	}

	if(!has_type && $F('Select_server') != '0'){ //如果没有阵营选择同时已经选择了服务器列表则直接转入Get_amount;
		Get_amount();
	}

	if(server_id != null && has_type == true){ //如果有server_id传入并且存在阵营,则继续显示阵营
		Display_typelist(xmlDoc,server_id);
	}


}

//阵营选择列表显示
function Display_typelist(xmlDoc, server_id){

	var server_name = $F('Select_server');

	if(server_name == '0')return;
	var server = xmlDoc.selectNodes("//Server/server[@name=\"" + server_name + "\"]");
	//var server = xmlDoc.selectNodes("//Server/server[@id=\"" + server_id + "\"]");

	if(server.length == 0) {
		setElement('gen_msg','show');
		$('gen_msg').innerHTML = '该服务器已关闭';
		return;
	}
	setElement('Select_type_list','show');
	ClearOptions('Select_type');
	AddSelect('Select_type','请选择阵营','0');
	var options_text = '';
	var options_value = '';
	var options_id = '';
	//alert(server.length)
	for(var i=0;i<server.length;i++){
		options_text = server[i].getAttribute('type');
		options_value = server[i].getAttribute('id');
		if(options_id != options_value){
			AddSelect('Select_type', options_text, options_value);
			if(options_value == server_id){
				$('Select_type').options[i+1].selected = true;
				//break;
			}
		}


		options_id = options_value;

	}

	if($F('Select_type') != '0'){
		Get_amount();
	}
}

//获取产品XML文件
function Get_amount(){

	//var product_id = $F('Select_server');
	var product_id = $F('Server_id');
	//var product_id = server_id;
//alert(product_id)
	var delivery_method = $F('Delivery_method');
	
	/*
	if($S('Select_type_list') == 'block' && $F('Select_type') != '0'){
		product_id = $F('Select_type');
	}
	*/
	var online_status = $F('Online_status');
	
	ShowStatus('show',ajaxget_opt);
	var url		= root_url + 'ajax_resp.php';
	var param	= 'do=get_amount'+'&product_id='+product_id + '&delivery_method=' + delivery_method + '&online_status=' + online_status + '&s='+Math.random();
	var option	={
		method:'post',
		parameters: param,
		evalScripts: true,
		onFailure: function(){
			display_status(ajaxget_busy,'status_error');
		},
		onSuccess:function(transport){
			var resp = transport.responseText;

			if(resp == 'false'){
				display_status('加载成功,但有错误!','ajaxget_error');
				ClearInfo();
				setElement('gen_msg','show');
				$('gen_msg').innerHTML = '该服务器已关闭';
			}else{
				display_status('加载成功','status_ok');
				setElement('myorders_box','show');
				this.timeout_id = setTimeout(Get_amount,this.reload_myorders); //设置自动刷新;
			}
		}
	}
	var myAjax	= new Ajax.Updater ({success:'myorders_box'}, url, option);
}


function Entry_qty(myid){
	//停止刷新
	stop_reload();
	setElement('gen_msg','show');
	var order_min = parseInt($F('Orders_min_'+myid));
	var order_max = parseInt($F('Orders_max_'+myid));
	var unit = $F('Unit_'+myid);
	var unit_display = (unit == '')? '' : '(数量单位为' + unit + ')';
	var cid = $F('Cid_'+myid);
	
	var beishu_text = '';
	switch (cid){
		case '5':
		case '4':
		if(order_min > 100){
			beishu_text = ' 请注意如果不能满单，数量必须为<span class="red_msg">1000</span>的倍数.';
		}
		break;
	}
	
	if(order_min != order_max){
		$('gen_msg').innerHTML = '<div style="font-size:13px;font-weight:bold;">该张订单单笔交易额为<span class="red_msg">' + order_min + '</span>-<span class="red_msg">' + order_max + '</span>之间。' + unit_display + '</p>' + beishu_text + '</div>';
	}else{
		$('gen_msg').innerHTML = '<div style="font-size:13px;font-weight:bold;">该张订单单笔交易额只限<span class="red_msg">' + order_min + '</span> ' + unit_display + ', 不允许更改. </div>';
	}
	
	$('sell_select_continue').disabled = true;
	
	if(!Check_qua(myid)){
		return false;
	}
	if(Entry_charname(myid)){
		$('sell_select_continue').disabled = false;
	}
	
}


function Check_qua(myid){

	
	var id = 'Entry_quantity_'+myid;
	var val = parseInt($F('Entry_quantity_'+myid));
	var order_min = parseInt($F('Orders_min_'+myid));
	var order_max = parseInt($F('Orders_max_'+myid));
	var unit = $F('Unit_'+myid);
	var infoid = 'Entry_quantity_msg_' + myid;
	var cid = $F('Cid_'+myid);

	
	var beishu = 10;
	
	switch (cid){
		case '5':
		case '4':
		beishu = 1000;
		break;
		case '13':
		case '14':
			beishu = 1;
			break;
		default:
		break;
	}
	
	ClearCss(id);
	Element.addClassName(id, "InputNO sell_input");
	
	if(val == 0 || val == ''){
		return false;
	}else if(!IsNum(val)){
		return false;
	}else if((order_min == order_max) && (val != order_min)){
		return false;
	}else if( (val != order_max) && (order_min != order_max) && (val < order_min || val > order_max || val%beishu != 0)){
		return false;
	}else{
		Element.addClassName(id,"InputYES");
		return true;
	}
	
}


function Entry_charname(myid){
	
	$('sell_select_continue').disabled = true;
	
	if(!Check_charname(myid)){
		return false;
	}
	
	if(Check_qua(myid)){
		$('sell_select_continue').disabled = false;
	}
}

function Check_charname(myid){
	
	
	
	var id = 'Entry_charname_'+myid;
	var val = $F('Entry_charname_'+myid);
	
	ClearCss(id);
	Element.addClassName(id, "InputNO sell_input");
	
	if(!LimitLen(val,3,20)){
		return false;
	}else if(IsNum(val)){
		return false;
	}else{
		Element.addClassName(id,"InputYES");
		return true;
	}
}

//一次清除所有提示和警告信息并禁止输入数目及点击下一步按钮
function ClearInfo(){
	setElement('gen_msg','hide');
	ClearCss('gen_msg','1');
	setElement('myorders_box','hide');
	stop_reload();
	if($('sell_select_continue') != null){
		$('sell_select_continue').disabled = true;
	}


}

function Onsubmit(){

	return true;
}
//服务器状态显示
function Display_status_box(cpath){
	var game_id;

	game_id = $F('Select_game');
	if(cpath != ''){
		game_id = cpath;
	}
	if(!Check_not_null(game_id) && !IsNum(game_id)) return false;

	var status_box = $('status_box');
	if(game_id == '0'){
		Close_status_box();
		return;
	}

	var open_iframe = $('open_iframe');
	setElement('status_content','show');
	setElement('open_iframe','show');
	var add_img = $('change_img');
	add_img.setAttribute('src',img_url + 'arrows/up_arrow.gif');
	var iframe_text = $('iframe_text');
	iframe_text.innerHTML = '关闭服务器状态显示';

	setElement('status_box','show');
	status_box.innerHTML = '<iframe name="server_status" src="' + root_url + 'app/server_status.php?game_id=' + game_id + '" width="100%" height="500px" marginwidth="0" marginheight="0" scrolling="auto" frameborder="0"></iframe>';

}

function Close_status_box(){
	var status_box = $('status_box');

	setElement('status_box','hide');
	status_box.innerHTML = '';

	var open_iframe = $('open_iframe');
	var game_id = $F('Select_game');

	if(game_id != '0'){
		setElement('status_content','show');
		setElement('open_iframe','show');
		var iframe_text = $('iframe_text');
		iframe_text.innerHTML = '打开服务器状态显示';
		add_img = $('change_img');
		add_img.setAttribute('src',img_url + 'arrows/down_arrow.gif');

	}else{
		setElement('status_content','hide');
		setElement('open_iframe','hide');
	}
}

function show_hide_status(){
	var status_box = $('status_box');
	if($S(status_box) != 'block'){
		Display_status_box('');
	}else{
		Close_status_box();
	}
}


//payment中的js
var selected;
var submitter = null;
function popupWindow(url) {
	window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=320,screenX=150,screenY=150,top=150,left=150')
}
function couponpopupWindow(url) {
	window.open(url,'couponpopupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=320,screenX=150,screenY=150,top=150,left=150')
}

function IsCharname(str)
{

	var reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
	if (!reg.test(str))
	return false;
	else
	return true;
}



//auto input check
function input(obj)
{
	var id = obj.id;
	if(id == '')return;
	var val = obj.value;
	var infoid= id +'_msg';

	if(Element.hasClassName(id,"InputYES")){
		Element.removeClassName(id,"InputYES");
	}

	Element.addClassName(id, "InputNO");

	switch(id){
		case 'Charname':
		checkCharname(id,val,infoid);
		break;
		case 'Select_time':
		checkTime(id,val,infoid);
		break;
	}
}



//清除焦点信息
function clear_focus(obj)
{
	if(typeof(obj) != 'object')
	{
		var id = $(obj);
		var val = id.innerHTML;
		var infoid = obj + '_msg';
	}else{
		var id = obj.id;
		var val = obj.value;
		var infoid= id +'_msg';
	}

	if(val == '')
	{
		if(hasclass(id,'InputNO')) removeclass(id,'InputNO');
		if((infoid != null) && (!hasclass(infoid,"InputTextOK"))) $(infoid).innerHTML = "";
		if((infoid != null) && (hasclass(infoid,'Focus')))removeclass(infoid,'Focus');

	}else{
		return false;
	}
}

function LimitLen(theValue,Min,Max)
{
	theValue=Trim(theValue);
	if(theValue=="") return false;
	if((theValue.length<Min)||(theValue.length>Max))
	return false;
	else
	return true;
}



function checkTime(id, val, infoid)
{
	var Msg = new Array(1);
	Msg[0] = "请选择交易时间!";

	if(val == '0')
	return Focus(id, infoid, Msg[0], 180);
	else
	return setInput(id, infoid,  'OK');
}

function check_payment(){

	if(check_form() != true) return false;

	if($('Charname') != null){
		var charname = $F('Charname');
		if(!checkCharname('Charname', charname, 'Charname_msg')) return false;
	}


	if($('Select_time') != null){
		var delivery_time = $F('Select_time');

		if(!checkTime('Select_time', delivery_time, 'Select_time_msg')) return false;
	}

	if($('conditions') != null){
		var conditions = $("conditions");
		if(conditions.checked != true){
			Warning2('conditions_msg','请点击确认我们的用户协议!');
			return false;
		}
	}

	return true;
}

function stop_reload(){
	if(this.timeout_id != null){
		clearTimeout(this.timeout_id);
	}
}
