var pk = {};
pk.calExpBar = function(exp){
	var html = '<div class="jindu" style="width:'+(exp*100)+'%"></div>';
	return html;
}
pk.calProBar = function(num){
	var level = (num / 10).floor();
	var more = num % 10;
	var html = '<div class="jindu'+level+'"><div class="jindu'+(level+1)+'" style="width:'+(more*10)+'%"></div></div>';
	return html;
}
pk.calProBarPro = function(num){
	var level = (num / 10).floor();
	var more = num % 10;
	var html = '';
	for(var i=0; i<10; i++){
		if(i<more){
			html += '<div class="jindu'+(level+1)+'"></div>';
		}else{
			html += '<div class="jindu'+(level)+'"></div>';
		}
	}
	return html;
}
pk.regist = function(master_id){
	if(!$chk(pk.change.get())){
		$('feed').innerHTML = '请选择形象';
		return false;
	}
	var name = $('fighter_name').value;
	if(!name.test(/^[_0-9a-zA-Z\u4E00-\u9FA5]{1,12}$/)){
		$('feed').innerHTML = '请输入正确的字符';
		return false;
	}

	if(name.length > 12){
		$('feed').innerHTML = '用户名最多只能有12个字';
		return false;
	}

	new Request.JSON({
		url:'/pk/create.php',
		method:'post',
		data:{'name': $('fighter_name').value, 'looks': pk.change.get() , 'master_id': master_id, 'random':$time()},
		onComplete:function(result){
			result = result.result;
			if(result == -1){
				$('feed').innerHTML = '系统错误，请重试';
			}else if(result.feed == -1){
				$('feed').innerHTML = '该名字已经被使用';
				if($chk(result.suggest)){
					$('feed').innerHTML += '，你可以使用用户名'+result.suggest;
					$('fighter_name').value = result.suggest;
					pk.change.change(3, result.suggest);		
				}
			}else if(result.feed == -2){
			    $('feed').innerHTML = '请输入正确的字符';
			}else if(result.feed == -3) {
			    $('feed').innerHTML = '您的道场已经满员，无法再创建新战士';
			}else if(result.feed == 0){
			    $('feed').innerHTML = '请输入用户名';
			}else{
				if($chk(master_id)){
					window.location = '/pk/fight.php?f=1&fighter_id='+result.fighter_id+'&fighter_id2='+master_id;
				}else{
					window.location = '/pk/cell.php?fighter_id='+result.fighter_id;
				}
			}
		}
	}).send();
}


pk.flash = function(data, options){
	options = $extend({
		'id':			0,		//用户id，用于标注每个头像的唯一性
		'type':		1,		//区分半身像还是全身像
		'orient':		1		//面向方向
	}, options || {}); 
	if(options.type == 1){
	AC_FL_RunContent(
		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
		'width', '90',
		'height', '160',
		'src', '/pk/flash/loader_90_160_2',
		'quality', 'high',
		'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
		'align', 'middle',
		'play', 'true',
		'loop', 'true',
		'scale', 'showall',
		'wmode', 'transparent',
		'devicefont', 'false',
		'id', 'f'+options.id,
		'bgcolor', '#bec2d9',
		'name', 'f'+options.id,
		'menu', 'true',
		'allowFullScreen', 'false',
		'allowScriptAccess','always',
		'movie', '/pk/flash/loader_90_160_2',
		'salign', '',
		'flashvars','data='+data+((data.length>0)?';':"")+options.orient
	); //end AC code
	}else{
	AC_FL_RunContent(
				'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
				'width', '64',
				'height', '98',
				'src', '/pk/flash/loader_64_98',
				'quality', 'high',
				'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
				'align', 'middle',
				'play', 'true',
				'loop', 'true',
				'scale', 'showall',
				'wmode', 'transparent',
				'devicefont', 'false',
				'id', 'f'+options.id,
				'bgcolor', '#bec2d9',
				'name', 'f'+options.id,
				'menu', 'true',
				'allowFullScreen', 'false',
				'allowScriptAccess','always',
				'movie', '/pk/flash/loader_64_98',
				'salign', '',
				'flashvars','data='+data+((data.length>0)?';':"")+options.orient
	); //end AC code
	}	
}

pk.change = (function(){
	var changeFlag = true;
	var data = new Array();
	var changeFigure = function(){
		data = [$random(4,5),$random(0,7),$random(0,7),$random(1,11),$random(0,5),$random(0,1),$random(0,1),$random(0,6),5,5,5,$random(1,100),$random(1,100),$random(1,100),$random(1,100)]; 
	}
	var changeColor = function(){
		data[11] = $random(1,100); 
		data[12] = $random(1,100); 
		data[13] = $random(1,100); 
		data[14] = $random(1,100); 
	}
	var md = function(value){
		var md5 = hex_md5(value);
		var m = md5.slice(-3).toInt(16);	
		var cal = function(v){
			return md5.slice(v, v+1).toInt(16);
		}
		data = [(m+cal(0))%2+4,(m+cal(1))%8,(m+cal(2))%8,(m+cal(3))%11+1,(m+cal(4))%6,(m+cal(5))%2,
			(m+cal(6))%2,(m+cal(7))%7,5,5,5,(m+cal(11))%100+1,(m+cal(12))%100+1,(m+cal(13))%100+1,(m+cal(14))%100+1]; 
	}
	return {
		'change': function(flag, value){
			if (value=='')
				return;
			if(flag == 2){
				changeColor();
				changeFlag = false;
			}else if(flag == 3){
				if($chk(value) && changeFlag){
					md(value);
				}else{
					return;
				}
			}else{
				changeFigure();	
				changeFlag = false;
			}
			var tmp = data.join(';');
			$$('[name=f0]')[0].change(tmp + ';1');
		},
		'get': function(){
			return data.join(';');
		}
	};
})()

pk.myRank = function(id, victory){
	new Request.JSON({
		url:'/pk/myrank.php',
		method:'get',
		data:{'victory': victory},
		onComplete:function(result){
			$(id).innerHTML = result.result;
		}
	}).send();
}

pk.bindUser = function(fighter_id, user_id){
	if(user_id > 0 || user_id == -1){
		new Request.JSON({
			url:'/pk/bind.php',
			method:'get',
			data:{'fighter_id': fighter_id},
			onComplete:function(result){
				if(result.result == 0){
					new KT.Note(this,{autoScrollV:false, autoClose:true,locationId:'bind_id',width:120,height:30,pointer:false,content:'<center>绑定成功</center>'});
					KT.RemoveElement($('bind_id'));
					if($('binded_id')){
						$('binded_id').style.display = 'block';
					}
				} else if (result.result == -3){
				    new KT.Note(this,{autoScrollV:false, autoClose:true,locationId:'bind_id',width:120,height:30,pointer:false,content:'<center>您的道场已经满员</center>'});
				} else{
					new KT.Note(this,{autoScrollV:false, autoClose:true,locationId:'bind_id',width:120,height:30,pointer:false,content:'<center>绑定失败</center>'});
				}
			}
		}).send();
	}else{
		var html = ''
			+'<div class="pk_ck">'
			+'建立道场，招募战士，请先开通一个宽途帐户：<br />'
			+'宽途是一个在线的社会大学，你只需要关联你的msn或QQ帐号即可开通宽途帐户<br />'
			+'关联msn帐号： <a href="#" onclick="new_dialog.setContentUrl(\'/im/msn_login.php\'); return false; "> [点我吧]</a><br />'
			+'关联QQ帐号： <a href="#" onclick="new_dialog.setContentUrl(\'/im/qq_login.php\'); return false; "> [点我吧]</a><br />'
			+'已注册用户，请由这里<a href="/site/display_login.php?return_url='+parent.location.href+'">登录</a>'
			+'</div>';
		//全局变量
		new_dialog = (new KT.Dialog({'content':html,width:550,height:350,alert:true,closeCB:function(){
					pk.bindUser(fighter_id, -1);
					setTimeout(function(){window.location.reload()}, 1000);	
		}})).create();
	}
}

pk.tipthis = function(){
	var tips = new Array();
	$$('.pk_tips').each(function(el){
		if(el.title != ''){
			tips.include(el);
		}
	});

	var champs = {
		'1':'曾进入过1024强',
		'2':'曾进入过512强',
		'3':'曾进入过256强',
		'4':'曾进入过128强',
		'5':'曾进入过64强',
		'6':'曾进入过32强',
		'7':'曾进入过16强',
		'8':'曾进入过1/4决赛',
		'9':'曾进入过半决赛',
		'10':'曾进入过决赛',
		'11':'曾经成为冠军'
	};
	$$('img[name=pk_champ_tips]').each(function(el){
		if(el.title != ''){
			el.title=champs[el.title];
			tips.include(el);
		}
	});
	new Tips(tips,{className:'actionlisttip'});

};

pk.fighter = (function(){
	var name_id = 'tz_name';
	var note = function(text){
		new KT.Note(this,{autoScrollV:false, autoClose:true,
			locationId:name_id,y:-60,width:160,height:30,pointer:false,
			content:'<center>'+text+'</center>'});
	}
	var search = function(callback){
		new Request.JSON({
			url:'/pk/search.php',
			method:'get',
			data:{'name':$(name_id).value},
			onComplete:function(result){
				result = result.result;
				if(result.feed==-2){
					note('请输入合法的战士名');
					$(name_id).focus();
				}else if(result.feed==-1){
					note('该战士不存在');
					$(name_id).focus();
				}else if(result.fighter_id>0){
					if(callback != null){
						callback(result.fighter_id);
					}
				}
			}
		}).send();
	}
	return {
		goCell: function(){
			if(!$(name_id).value.test(/^[_0-9a-zA-Z\u4E00-\u9FA5]+$/)){
				note('请输入合法的战士名');
				$(name_id).focus();
				return false;
			}

			if($(name_id).value.length > 12){
				note('战士名最多只能有12个字');
				$(name_id).focus();
				return false;
			}
			search(function(fighter_id){
				window.location = '/pk/cell.php?fighter_id='+fighter_id;
			});		
		}
	}
})();

pk.tips = (function(){
	var tips = ['新战士第一天可以主动发起对战6次，之后每天3次。广收徒弟可以获得更多经验。', 
				'据说被“大锤”打中会很惨，威力与力量有关系',
				'据说附近有一种力大无穷的“熊”出没',
				'徒弟升级时，师傅也会获得经验奖励。自己给自己拜师不会收到任何经验奖励',
				'打比自己菜很多的战士，经验奖励会减少'];
	var now = -1;
	return {
		random: function(){
			var r = $random(0, tips.length-1);
			for(var i=0; i<9 && r==now; i++){
				r = $random(0, tips.length-1);
			}
			now = r;
			$('tips').innerHTML = '小提示：' + tips[r];
		}
	}
})();

pk.reg_tour = function(fighter_id){
	new Request.JSON({
		url:'/pk/reg_tour.php',
		method:'post',
		data:{'fighter_id': fighter_id, 'random':$time()},
		onComplete:function(result){
			result = result.result;
			if(result == -2){
				KT.Note.note('您已经报名啦');
				if(!!$('is_reg_div'))
					$('is_reg_div').style.display = 'block';
				if(!!$('no_reg_div'))
					$('no_reg_div').style.display = 'none';
			}else if(result.feed == -3){
				KT.Note.note('你在做什么？');
			}else{
				KT.Note.note('报名成功！');
				if(!!$('is_reg_div'))
					$('is_reg_div').style.display = 'block';
				if(!!$('no_reg_div'))
					$('no_reg_div').style.display = 'none';
			}
		}
	}).send();
}

pk.del_fighter = function(fighter_id){
    new Request.JSON({
		url:'/pk/del_fighter.php',
		method:'post',
		data:{'fighter_id': fighter_id, 'random':$time()},
		onComplete:function(result){
		    result = result.result;
		    if (result == -2) {
			KT.Note.note('您的道场至少需要保留一个战士');
			return;
		    }
		    else if (result < 0) {
			KT.Note.note('删除失败');
			return;
		    }
		    if($('fighter_'+fighter_id)) {
			var obj = $('fighter_'+fighter_id);
			var efx = obj.get('tween', {property: 'opacity', duration: 500});
			efx.addEvent('complete',function() {
			    obj.addClass('hiddenit');
			}.bind(this));
			efx.start(1,0);
		    }
		}
	}).send();
}

pk.main_fighter = function(fighter_id){
    new Request.JSON({
		url:'/pk/main_fighter.php',
		method:'post',
		data:{'fighter_id': fighter_id, 'random':$time()},
		onComplete:function(result){
		    result = result.result;
		    if (result < 0) {
			KT.Note.note('您无法设置非自己道场的战士');
			return;
		    }
		    window.location.reload();
		}
	}).send();
}

pk.display_rest = function(rest_pos){
    pk.noteObj = new KT.Note(this,{
	locationId:"rest_"+rest_pos,
	x:150,
	width:80,
	height:120,
	pointer:false,
	eid:"display_rest_"+rest_pos
    });
}

pk.rest = function(fighter_id,user_id,rest_pos){
    pk.noteObj.close();
    new Request.JSON({
	url:'/pk/rest.php',
	method:'post',
	data:{'fighter_id': fighter_id, 'user_id':user_id, 'rest_pos':rest_pos},
	onComplete:function(result){
	    result = result.result;
	    if (result == 0) {
		window.location.reload();
		return;
	    }

	    if (result == -2) {
		new KT.Note(this,{
		    locationId:"rest_"+rest_pos,
		    x:150,
		    width:80,
		    height:50,
		    pointer:false,
		    content:"此位置已被别人抢占,请稍候"
		});
		setTimeout("window.location.reload()",3000);
		return;
	    }

	    if (result < 0) {
		var tip;
		switch (result) {
		case -3:
		    tip = "您只能在伙伴的道场休息";
		    break;
		case -4:
		    tip = "您的战士还可以战斗，不需要休息";
		    break;
		default:
		    tip = "休息失败，请稍候再试";
		    break;
		}
		new KT.Note(this,{
		    autoClose:true,
		    locationId:"rest_"+rest_pos,
		    x:150,
		    width:80,
		    height:50,
		    pointer:false,
		    content:tip
		});
	    }

	}
    }).send();
}