﻿//detect plugin
var detectableWithVB = false;
var pluginFound = false;
function detectFlash(redirectURL, redirectIfFound) {
    pluginFound = detectPlugin('Shockwave','Flash'); 
    if(!pluginFound && detectableWithVB) {
	pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1');
    }
    return pluginFound;
}
if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
    document.writeln('<script language="VBscript">');
    document.writeln('detectableWithVB = False');
    document.writeln('If ScriptEngineMajorVersion >= 2 then');
    document.writeln('  detectableWithVB = True');
    document.writeln('End If');
    document.writeln('Function detectActiveXControl(activeXControlName)');
    document.writeln('  on error resume next');
    document.writeln('  detectActiveXControl = False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('     detectActiveXControl = IsObject(CreateObject(activeXControlName))');
    document.writeln('  End If');
    document.writeln('End Function');
	document.writeln('</scr' + 'ipt>');
}
function detectPlugin() {
    var daPlugins = detectPlugin.arguments;
    var pluginFound = false;
    if (navigator.plugins && navigator.plugins.length > 0) {
		var pluginsArrayLength = navigator.plugins.length;
		for (var pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
		    var numFound = 0;
		    for(var namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
				if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) || 
				    (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
				    numFound++;
				}   
		    }
		    if(numFound == daPlugins.length) {pluginFound = true;break;}
		}
    }
    return pluginFound;
}
function RePlay(){location.href = document.URL;}
//createflash
var QP = new Object();
QP.drawIframe = function (p_Src, p_id, p_width, p_height){
	return "<iframe src=\""+p_Src+"\" frameborder=\"0\" name=\""+p_id+"\" id=\""+p_id+"\" height=\""+p_height+"\" width=\""+p_width+"\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" border=\"0\"></iframe>";
};
QP.drawSWF = function (p_Src, p_Var, p_id, p_width, p_height, p_script, p_net){
	var str='<object id="'+p_id+'" width="'+p_width+'" height="'+p_height+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"><param name="movie" value="'+p_Src+'"/><param name="flashvars" value="'+p_Var+'"/><param name="quality" value="high"/><param name="bgcolor" value="#000"/>';
	if(p_script==1){str+='<param name="allowScriptAccess" value="always"/>';}
	if(p_net==0){str+='<param name="allowNetworking" value="internal"/>';}
	str+='<embed id="'+p_id+'_em" name="'+p_id+'" width="'+p_width+'" height="'+p_height+'" src="'+p_Src+'" flashvars="'+p_Var+'"';
	if(p_script==1){str+=' allowScriptAccess="always"';}
	if(p_net==0){str+=' allowNetworking="internal"';}
	str+=' quality="high" bgcolor="#000" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" /></object>';
	return str;
};
QP.drawDCR = function(p_Src, p_id, p_width, p_height){
	var str = "";
	if(detectFlash()){
		str = '<object id="'+p_id+'" width="'+p_width+'" height="'+p_height+'" classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=10,0,0,0"><param name="background" value="#000"><param name="swStretchStyle" value="fill"><param name="logo" value="false"><param name="menu" value="false"><param name="src" value="'+p_Src+'"><embed id="'+p_id+'_em" name="'+p_id+'" src="'+p_Src+'" background="#000" logo="false" menu="false" width="'+p_width+'" height="'+p_height+'" pluginspage="http://www.macromedia.com/shockwave/download/"></embed></object>';
	}
	else{
		str = '<div><iframe src="http://www.7k7k.com/scripts/shockwaveplayer.html" height="120" width="450" marginheight="0" marginwidth="0" scrolling="no" frameborder="0"></iframe></div>';
	}
	return str;
}
QP.drawXAP = function(p_Src, p_id, p_width, p_height){
	var str='<object id="'+p_id+'" width="'+p_width+'" height="'+p_height+'" data="data:application/x-silverlight," type="application/x-silverlight-2-b2"><param name="source" value="'+p_Src+'"/><param name="onerror" value="onSilverlightError" /><param name="background" value="black" /><a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;"><img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/></a></object>';
	return str;
}
//变量调节
var _v,_w,_h,_p,_e;//变量,宽,高,路径,扩展名
var _playmode=_gamemark.split('|')[0];
var _playscript=_gamemark.split('|')[1];
var _playnet=_gamemark.split('|')[2];
var _fw = 640;
var _fh = 480;
if(_gamewidth==0){_gamewidth=550;}
if(_gameheight==0){_gameheight=400;}
_w = _gamewidth;
_h = _gameheight;
_v = _gamevar;
_p = _gamepath;
//server
function readcookie(name){var cookieValue = "";var search = name + "=";if(document.cookie.length > 0){offset = document.cookie.indexOf(search);if (offset != -1){offset += search.length;end = document.cookie.indexOf(";", offset);if (end == -1) end = document.cookie.length;cookieValue = unescape(document.cookie.substring(offset, end));}}return cookieValue;};
function setcookie(name,value,expirehours){var expiration = new Date((new Date()).getTime() +expirehours*3600000);document.cookie = name+ "=" + value + ";expires=" + expiration.toGMTString()+";domain=www.7k7k.com;path=/;";};
if(_gamemark.split('|')[5]==0 && _p.indexOf('http://flash.7k7k.com/')>=0){
	var _serv = readcookie('server');
	if(_serv==""){
		_serv = Math.floor(Math.random()*5)+1;
		setcookie('server',_serv,24*7);
	}
	_p = _p.replace('flash.7k7k.com','flash'+_serv+'.7k7k.com');
}
//
_e = _p.replace(/^(.+?)(\.([^\.\?]+?))(\?.+?)?$/g, "$2");
if(_e == '.swf'){
	_playmode = 1;
}else if(_e == '.dcr'){
	_playmode = 2;
}else if(_e == '.xap'){
	_playmode = 3;
}else if(_e == '.htm' || _e == '.html'){
	_playmode = 4;
}else{
	_playmode = 0;
}
//函数
QP.drawA = function(){
	return '<table height="100%" width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td valign="middle"><iframe src="/scripts/v1/loading.htm" height="400" width="550" marginheight="0" marginwidth="0" scrolling="no" frameborder="0"></iframe><div style="height:17px;color:#0f0;font-size:14px;margin-top:3px;">游戏加载中，请稍后......</div></td></tr></tbody></table>';
}
QP.Player = function(w,h,$){
	var str = new Array();
	switch(_playmode){
		case 1 :
			str.push(QP.drawSWF(_p, _v, "gameobj", "100%", "100%", _playscript, _playnet));
			break;
		case 2 :
			str.push(QP.drawDCR(_p, "gameobj",  "100%", "100%"));break;
		case 3 :
			str.push(QP.drawXAP(_p, "gameobj",  "100%", "100%"));break;
		case 4 :
			str.push(QP.drawIframe(_p + '?w='+w+'&h='+h+'&v='+ _v, "gameobj", w, h));break;
		default :
			str.push('<div style="height:50px;background:color:#000;"><a href="'+ _p +'" target="_blank" style="#fff">下载该文件</a></div>');break;
	}
	if($) document.getElementById("loading").innerHTML = QP.drawA();
	document.getElementById("play").innerHTML =  str.join("");
};
QP.Replay = function(){
	document.getElementById("play").innerHTML = document.getElementById("play").innerHTML;
};
var player = {
	playbox:null,
	defaultsize:{"w":_gamewidth,"h":_gameheight},
	adsize:{"w":550,"h":420},
	isloading:true,
	loadingtime:0,
	wmode:0,
	loadingtimeout:null,
	getboxsize:function(o){
		if(!o)return {"w":0,"h":0};
		return{"w":o.clientWidth,"h":o.clientHeight};
	},
	adjustboxsize:function(c,a){
		if(this.defaultsize.w>this.defaultsize.h){
			return{"w":c.w+a,"h":Math.floor((c.w+a)*this.defaultsize.h/this.defaultsize.w)};
		}
		else{
			return{"w":Math.floor((c.h+a)*this.defaultsize.w/this.defaultsize.h),"h":c.h+a};
		}
	},
	getminsize:function($){
		return{"w":$,"h":Math.floor($*(this.defaultsize.h/this.defaultsize.w))};
	},
	getbestsize:function($){
		if(this.defaultsize.w/this.defaultsize.h > $.w/$.h) $.h = Math.floor($.w*(this.defaultsize.h/this.defaultsize.w));
		else $.w = Math.floor($.h*(this.defaultsize.w/this.defaultsize.h));
		return $;
	},
	getscreensize:function(rh){
		var w=0,h=0;
		if(self.innerHeight){w=self.innerWidth;h=self.innerHeight}
		else if(document.documentElement&&document.documentElement.clientHeight){
			w=document.documentElement.clientWidth;h=document.documentElement.clientHeight;
		}
		else if(document.body){w=document.body.clientWidth;h=document.body.clientHeight;}
		h = rh ? h-rh : h;
		return {"w":w,"h":h};
	},
	setboxsize:function(o,size){
		o.style.width = size.w == "100%" ? size.w : size.w + "px";
		o.style.height = (size.h == "100%" || size.h == "auto") ? size.h : size.h + "px";
	},
	init:function(){
		var size = this.defaultsize;
		if(size.w < this.adsize.w || size.h < this.adsize.h){
			size = this.getminsize(this.adsize.w);
			if(size.h > this.adsize.h){
				this.setboxsize(this.playbox,{"w":size.w,"h":size.h});
			}
			else{
				this.setboxsize(this.playbox,{"w":size.w,"h":this.adsize.h});
			}
		}
		//else if(size.w > 647){
		//	size = this.getbestsize({"w":647,"h":1200});
		//	this.setboxsize(this.playbox,{"w":size.w,"h":size.h});
		//}
		else{
			if(this.defaultsize.w>647){changemode(2,this.defaultsize);}
			this.setboxsize(this.playbox,{"w":size.w,"h":size.h});
		}
		document.getElementById("right_box").style.height = 496>size.h?"496px":size.h+"px";
		QP.Player(size.w,size.h,true);
		this.loading();
	},
	zoom:function(p){
		var a = 150*p,current=this.getboxsize(this.playbox),result=this.adjustboxsize(current,a);
		if(this.isloading && (result.w <= this.adsize.w || result.h <= this.adsize.h)){current = null,result=null;return;}
		if(current.w*current.h < 60000 && p<0){current=null,result=null;return;}
		
		if(result.w<=647){this.wmode?changemode(1,result):viewbox(1,result);}
		else if(result.w>647 && result.w<=954){viewbox(2,result);}
		else if(result.w > 954){viewbox(3,result);}
		
		this.delay(result,p);
	},
	adjusttimeout:null,
	delay:function(s,p){
		var a=75,c=this.getboxsize(this.playbox),t=this.adjustboxsize(c,a*p),that=this;
		
		if((t.w >= s.w && p > 0)||(t.w <= s.w && p < 0)){t=s;}
		this.setboxsize(this.playbox,t);
		
		if(t.w != s.w){this.adjusttimeout=window.setTimeout(function(){that.delay(s,p);},15);}
		else{clearTimeout(this.adjusttimeout);this.adjusttimeout = null;if(this.playmode == 4){QP.Player(t.w,t.h,true);}}
	},
	setmode:function(b){
		var c=this.getboxsize(this.playbox);
		if(b){
			if(c.w<=647){changemode(1,c);}
			else if(c.w>647 && c.w<=954){viewbox(2,c);}
			else if(c.w > 954){viewbox(3,c);}
		}
		else{
			if(c.w<=647){viewbox(1,c);}
			else if(c.w>647 && c.w<=954){changemode(2,c);}
			else if(c.w > 954){changemode(3,c);}
		}
		this.wmode = b;
	},
	setbestsize:function(){
		var c=this.getboxsize(this.playbox);
		if(c.w>this.defaultsize.w){this.delay(this.defaultsize,-1);}
		else if(c.w<this.defaultsize.w){this.delay(this.defaultsize,1);}
		else{this.delay(this.defaultsize,0);}
		
		if(this.defaultsize.w<=647){this.wmode?changemode(1,this.defaultsize):viewbox(1,this.defaultsize);}
		else if(this.defaultsize.w>647 && this.defaultsize.w<=954){viewbox(2,this.defaultsize);}
		else if(this.defaultsize.w > 954){viewbox(3,this.defaultsize);}
		
		window.scroll(0,0);
	},
	fullscreen:function(){
		this.wmode = true;
		this.isfullscreen = true;
		setfullscreen();
		var s = this.getscreensize(34);
		this.setboxsize(this.playbox,s);
		if(this.playmode == 4){QP.Player(s.w,s.h,true);}
		var a = document.body,b = document.documentElement;
		this.srnobj = (b.clientHeight <= a.clientHeight && b !== 0) ? b : a;
		this.srnobj.style.overflow = "hidden";
		window.scroll(0,0);
	},
	exitfullscreen:function(){
		this.wmode = false;
		this.isfullscreen = false;
		if(this.defaultsize.w<=647){viewbox(1,this.defaultsize);}
		else if(this.defaultsize.w>647 && this.defaultsize.w<=954){viewbox(2,this.defaultsize);}
		else if(this.defaultsize.w > 954){viewbox(3,this.defaultsize);}
		this.setboxsize(this.playbox,this.defaultsize);
		if(this.playmode == 4){QP.Player(this.defaultsize.w,this.defaultsize.h,true);}
		setnormalscreen();
		this.srnobj.style.overflow = document.all ? "" : "auto";
	},
	loading:function(){
		var loaded = 0;
		if(this.playmode != 1){
			loaded = 100;
			document.getElementById("loading").style.display = "block";
			document.getElementById("menu").style.display = "block";
			document.getElementById("progress").style.display = "none";
		}   
		else{
			try{
				loaded = window.document.gameobj.PercentLoaded();
				document.getElementById("loading").style.display = "block";
				document.getElementById("menu").style.display = "none";
				document.getElementById("progress").style.display = "block";
				document.getElementById('bar').style.width =loaded + '%';
			}
			catch(e){
				loaded = 100;
				document.getElementById("loading").style.display = "block";
				document.getElementById("menu").style.display = "block";
				document.getElementById("progress").style.display = "none";
			}
		}
		if(loaded == 100){
			document.getElementById('framecount').innerText = '下载完毕';
			if(this.loadingtime >= 4000){
				this.isloading = false;
				clearTimeout(this.loadingtimeout);
				document.getElementById("loading").style.display = "none";
				document.getElementById("menu").style.display = "block";
				document.getElementById("progress").style.display = "none";
			}else{
				this.isloading = true;
				this.loadingtime += 300;
				var that = this;
				document.getElementById("loading").style.display = "block";
				document.getElementById("menu").style.display = "block";
				document.getElementById("progress").style.display = "none";
				this.loadingtimeout = setTimeout(function(){that.loading(that.playmode)},300);
			}
		}
		else{
			document.getElementById("menu").style.display = "none";
			document.getElementById("progress").style.display = "block";
			document.getElementById('framecount').innerText = '载入中<<';
			if (this.loadingtime >= 6000) {
				this.isloading = false;
				document.getElementById("loading").style.display = "none";
			}
			var that = this;
			this.loadingtime += 300;
			this.loadingtimeout = setTimeout(function(){that.loading(that.playmode)},300);
		}
	}
}
player.playbox = document.getElementById("play_box");
player.flashbox = document.getElementById("flash_box");
player.playmode = _playmode;
player.init();

function viewbox(m,s){
	switch(m){
		case 1 :
			document.getElementById("left_box").style.width="647px";
			document.getElementById("container").style.width="954px";
			document.getElementById("right_box").style.display="block";
			document.getElementById("right_box").style.height=496>s.h?"496px":s.h + "px";
			break;
		case 2 :
			document.getElementById("left_box").style.width="954px";
			document.getElementById("container").style.width="954px";
			document.getElementById("right_box").style.display = "none";
			break;
		case 3 :
			document.getElementById("left_box").style.width=s.w+"px";
			document.getElementById("container").style.width=s.w+"px";
			document.getElementById("right_box").style.display = "none";
			break;
		default:break;
	}
}

function changemode(m,s){
	switch(m){
		case 1 :
			document.getElementById("left_box").style.width="954px";
			document.getElementById("container").style.width="954px";
			document.getElementById("right_box").style.display = "none";
			break;
		case 2 :
			document.getElementById("left_box").style.width=s.w+"px";
			document.getElementById("container").style.width=parseInt(s.w+307)+"px";
			document.getElementById("right_box").style.display = "block";
			document.getElementById("right_box").style.height=496>s.h?"496px":s.h + "px";
			break;
		case 3 :
			//document.getElementById("left_box").style.width=parseInt(s.w-307)+"px";
			//document.getElementById("container").style.width=s.w+"px";
			//var tmp=player.getminsize(parseInt(s.w-307));
			document.getElementById("left_box").style.width="647px";
			document.getElementById("container").style.width="954px";
			var tmp=player.getminsize(647);
			player.delay(tmp,-1);
			document.getElementById("right_box").style.height=496>tmp.h?"496px":tmp.h + "px";
			document.getElementById("right_box").style.display = "block";
			break;
		default:break;
	}
}

function setfullscreen(){
	document.body.className = "fullscreen";
	document.getElementById("container").className = "fullscreen";
	document.getElementById("container").style.width = "100%";
	document.getElementById("left_box").style.width = "100%";
	document.getElementById("right_box").style.display = "none";
	document.getElementById("menu_box").style.display = "none";
	document.getElementById("fullbtn").style.display="block";
	document.getElementById("fullbtn").innerHTML = "<h1>"+_gamename+"<a href=\"javascript:player.exitfullscreen();\" title=\"退出全屏\"><span>退出全屏</span></a></h1>";
	window.onscroll=function(){if(player.isfullscreen){player.srnobj.scrollTop = 0;}}
	window.onresize = function(){if(player.isfullscreen){player.fullscreen();}};
}

function setnormalscreen(){
	document.body.className = "";
	document.getElementById("container").className = "";
	document.getElementById("fullbtn").style.display="none";
	document.getElementById("fullbtn").innerHTML = "";
	document.getElementById("menu_box").style.display = "block";
}
