Ext.wmplayer = function(url, disable_volume) 
{
	if (Ext.isIE) {
		var player = document.createElement("object");
		player.classid = "CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6";
		player.width = "100%";
		player.height = "100%";	
		player.align = 'right';

		player.settings.autoStart = false;
		player.settings.mute = disable_volume;
		player.uiMode = "none";
		player.stretchToFit = '-1';
		player.URL = url;
		player.settings.autoStart = false;
		player.settings.mute = disable_volume;
		
		this.player = player;
		this.volume_disabled = disable_volume;
	} else {
		this.player = null;
	}
	
	this.seekTo = function(pos)	{
		if (this.player) this.player.controls.currentPosition = pos;
	}
	this.setVolume = function(vol){
		if (this.player) this.player.settings.volume = vol;
	}
	this.getVolume = function() {
		if (this.player) return this.player.settings.volume;
		else return 0;
	}
	this.mute = function(ismute){
		if (this.player) this.player.settings.mute = ismute;
	}
	this.disableVolume = function(disable) {
		this.volume_disabled = disable;
		if (this.player) this.player.settings.mute = disable;
	}
	this.getState = function(){
		//playing, paused, 			
		var 	mpStopped=1, mpPaused=2, mpPlaying=3,
	    mpScanForward=4, mpScanReverse=5, mpEnded=8,
        NeverUpdatePosition=1,TimerID=0,
        Waiting=0,WaitingCount=0,
        UnStarted = 10;
        
		if (this.player) {
			switch(this.player.playState) {
				case mpPlaying: return 'playing'; break;
				case mpPaused: return 'paused'; break;
				case mpStopped: return 'ended'; break;
			}
			return "video_cued";
		}
		return 'unknown';
	}
	this.pause = function(){
		if (this.player) this.player.controls.pause();
	}
	this.play = function(){		
		if (this.player) this.player.controls.play();
	}
	this.stop = function(){
		if (this.player) this.player.controls.stop();		
	}
	this.getCurrentPosition = function() {
		if (this.player) return this.player.controls.currentPosition;
		else return 0;
	}
	this.getDuration = function() {
		if (this.player) return this.player.currentMedia.duration;
		else return 0;
	}
	this.attachEvent = function(name,func) {
		if (this.player) this.player.attachEvent(name,func);
	}
	this.afterAppend = function() {
		
	}
}

function hlp_DisplayError(er)
{
	var div = document.all.divindex;
	if (div.innerHTML.length > 1000) div.innerHTML = "";	
	div.innerHTML += (er + "<br>");
}

var g_urls = new Array();
var g_players = new Array();

function zkplayerReplay(url)
{
	for(i = 0; i < g_urls.length; ++i) {
		if (g_urls[i] == url) {
			var player = g_players[i];
			if (player.State == "playing") {
				player.player.Play(url);
				if (player.volume_disabled) {
					player.mute(true);
				} else {
					if (player.myvol) player.setVolume(player.myvol);
				}
			}
			break;
		}
	}
}

Ext.zkplayer = function(url, disable_volume,hasPlatformRight) 
{
	if (Ext.isIE) {
		var player = document.createElement("object");
		player.classid = "clsid:6C8FAEAF-5AD3-4DB8-9EDF-F5F956321C16";
		player.codebase = "../soft/nmplayer.cab";
		player.width = "100%";
		player.height = "100%";	
		player.align = 'right';
		
		try {
			if (typeof(player.EnableMic) == "undefined") {
				document.location = "install.html";
				return;
			}
			player.EnablePtzControl = hasPlatformRight;
			player.EnableMic = hasPlatformRight;
			player.EnableP2P = g_enableP2P;
		} catch(e) {			
			document.location = "install.html";
		}
		
		this.player = player;
		this.Url = url;
		this.State = 'unknown';
		this.playStateChange = null;
		this.volume_disabled = disable_volume;
		this.myvol = 0;
		
		g_urls[g_urls.length] = url;
		g_players[g_players.length] = this;
		
	} else {
		this.player = null;
	}	
	this.afterAppend = function() {
		var c = this;
        var err_str = '';
		c.player.attachEvent('OnError', function(code){	
        if (code < -500000) {
            err_str = "没有安装声卡";
        }
        else if (code == -1) {
            err_str = "无法连接到服务";
        }
        else if (code == -2) {
            err_str = "屏幕颜色不支持";
        }
        else if (code == -103) {
            err_str = "网络中断";
        }
        else if (code == -104) {
            err_str = "媒体数据错误,可能网络丢包严重";
        }
        else if (code == -20000) {
            err_str = "不支持的声卡";
        }
        else if (code == -20001) {
            err_str = "不支持的DDraw版本";
        }
        hlp_DisplayError(err_str );
		//hlp_DisplayError('OnError: ' + code );
			if (code == -103 || code == -1 || code == -104) {
				c.player.Stop();
				//c.player.Play(c.Url);
				window.setTimeout("zkplayerReplay('" + c.Url + "');", 1000);
			}
		});
		
		c.player.attachEvent('onInformation', function(code){
			//hlp_DisplayError('OnInfo: ' + code );
		});
	}
	this.seekTo = function(pos)	{
		
	}
	this.setVolume = function(ovol){
		var g2 = 0x7FFFFFFF;
		var vol = Math.floor(ovol / 100 * g2);		
		// 20*log10 (99999/2g * x + 1) / 100 * 2G
		var rvol = Math.floor(20 * Math.log(99999/g2 * vol + 1) / 100 * g2 / Math.log(10));
		if (this.player) this.player.Volume = rvol;
		
		this.myvol = ovol;
	}
	this.getVolume = function() {
		if (this.player) {			
			return this.myvol;
		}
		else return 0;
	}
	this.mute = function(ismute){
		if (this.player) {
			if (ismute) {
				this.vol = this.player.Volume;
				this.player.Volume = 0;
			} else {
				if (this.vol) this.player.Volume = this.vol;
				else this.player.Volume = 0x2fffffff;
			}			
		}
		//this.player.setVol(ismute ? 0 :0x7FFFFFFF,ismute ? 0 :0x7FFFFFFF);
	}
	this.disableVolume = function(disable) {		
		if (this.volume_disabled != disable) {
			this.volume_disabled = disable;
			this.mute(disable);
		}
	}
	this.getState = function(){
		return this.State;
	}
	this.pause = function(){
		
	}
	this.play = function(){
		if (this.player) {
			if (this.State != 'playing') {
				this.player.Play(this.Url);
				if (this.volume_disabled) this.player.Volume = 0;
				else {
					//if (this.player.Volume == 0) this.player.Volume = 0x2fffffff;
					this.setVolume(40);
				}
				this.State = 'playing';
				if (this.playStateChange) this.playStateChange();
			}
		}
	}
	this.stop = function(){
		if (this.player) {
			if (this.State == 'playing') {
				this.player.Stop();
				this.State = 'ended';
				
				if (this.playStateChange) this.playStateChange();
			}
		}
	}
	this.PtzCtrl = function(cmd, param1, param2)
	{
		if (this.player && this.State == 'playing') this.player.PtzCtrl(cmd,param1,param2);
	}
	this.OpenMic = function()
	{
		if (this.player && this.State == 'playing') this.player.OpenMic();
	}
	this.CloseMic = function()
	{
		if (this.player && this.State == 'playing') this.player.CloseMic();
	}
	this.getCurrentPosition = function() {		
		return 0;
	}
	this.getDuration = function() {
		return 0;
	}
	this.attachEvent = function(name,func) {
		if (name == "playStateChange") {
			this.playStateChange = func;
		}
	}
}

//新增tcpplayer  090727
Ext.tcpplayer = function(url, disable_volume,hasPlatformRight) 
{
    if (Ext.isIE) {
        var player = document.createElement("object");
        player.classid ="CLSID:D1654AB2-F3B2-43DC-A919-DD93BFA32E9F";
        player.codebase = "../soft/zkavcply.cab#version=1,1,0,1";    
        player.width = "100%";
        player.height = "100%"; 
        player.align = 'right';
        
        try {
            //暂未实现mic接口
//          if (typeof(player.EnableMic) == "undefined") {
//              document.location = "install.html";
//              return;
//          }
            player.EnablePtzControl = hasPlatformRight;
            player.EnableMic = hasPlatformRight;
            player.EnableP2P = g_enableP2P;
            if (url.indexOf('3001') != -1) 
            {
                player.ptz_id = 1;
            }
            else if (url.indexOf('3002') != -1)
            {
                player.ptz_id = 2;
            }
        } catch(e) {            
            document.location = "tcpinstall.html";
        }
        
        this.player = player;
        this.Url = url;
        this.State = 'unknown';
        this.playStateChange = null;
        this.volume_disabled = disable_volume;
        this.myvol = 0;
        
        g_urls[g_urls.length] = url;
        g_players[g_players.length] = this;
        
    } else {
        this.player = null;
    }   
    this.afterAppend = function() {
        var c = this;
        var err_str = '';
        c.player.attachEvent('OnError', function(code){ 
        if (code < -500000) {
            err_str = "没有安装声卡";
        }
        else if (code == -1) {
            err_str = "无法连接到服务";
        }
        else if (code == -2) {
            err_str = "屏幕颜色不支持";
        }
        else if (code == -103) {
            err_str = "网络中断";
        }
        else if (code == -104) {
            err_str = "媒体数据错误,可能网络丢包严重";
        }
        else if (code == -20000) {
            err_str = "不支持的声卡";
        }
        else if (code == -20001) {
            err_str = "不支持的DDraw版本";
        }
        hlp_DisplayError(err_str );
        //hlp_DisplayError('OnError: ' + code );
            if (code == -103 || code == -1 || code == -104) {
                c.player.Stop();
                //c.player.Play(c.Url);
                window.setTimeout("zkplayerReplay('" + c.Url + "');", 1000);
            }
        });
        
        c.player.attachEvent('onInformation', function(code){
            //hlp_DisplayError('OnInfo: ' + code );
        });
    }
    this.seekTo = function(pos) {
        
    }
    this.setVolume = function(ovol){
        var g2 = 0x7FFFFFFF;
        var vol = Math.floor(ovol / 100 * g2);      
        // 20*log10 (99999/2g * x + 1) / 100 * 2G
        var rvol = Math.floor(20 * Math.log(99999/g2 * vol + 1) / 100 * g2 / Math.log(10));
        if (this.player) this.player.Volume = rvol;
        
        this.myvol = ovol;
    }
    this.getVolume = function() {
        if (this.player) {          
            return this.myvol;
        }
        else return 0;
    }
    this.mute = function(ismute){
        if (this.player) {
            if (ismute) {
                this.vol = this.player.Volume;
                this.player.Volume = 0;
            } else {
                if (this.vol) this.player.Volume = this.vol;
                else this.player.Volume = 0x2fffffff;
            }           
        }
        //this.player.setVol(ismute ? 0 :0x7FFFFFFF,ismute ? 0 :0x7FFFFFFF);
    }
    this.disableVolume = function(disable) {        
        if (this.volume_disabled != disable) {
            this.volume_disabled = disable;
            this.mute(disable);
        }
    }
    this.getState = function(){
        return this.State;
    }
    this.pause = function(){
        
    }
    this.play = function(){
        if (this.player) {
            if (this.State != 'playing') {
                this.player.Play(this.Url);
                if (this.volume_disabled) this.player.Volume = 0;
                else {
                    //if (this.player.Volume == 0) this.player.Volume = 0x2fffffff;
                    this.setVolume(40);
                }
                this.State = 'playing';
                if (this.playStateChange) this.playStateChange();
            }
        }
    }
    this.stop = function(){
        if (this.player) {
            if (this.State == 'playing') {
                this.player.Stop();
                this.State = 'ended';
                
                if (this.playStateChange) this.playStateChange();
            }
        }
    }
    this.PtzCtrl = function(cmd, param1, param2)
    {
        if (this.player && this.State == 'playing') this.player.PtzCtrl(cmd,param1,param2);
    }
    this.OpenMic = function()
    {
        if (this.player && this.State == 'playing') this.player.OpenMic();
    }
    this.CloseMic = function()
    {
        if (this.player && this.State == 'playing') this.player.CloseMic();
    }
    this.getCurrentPosition = function() {      
        return 0;
    }
    this.getDuration = function() {
        return 0;
    }
    this.attachEvent = function(name,func) {
        if (name == "playStateChange") {
            this.playStateChange = func;
        }
    }
}


var jsReady = false;
var swfready1 = false;

function loadComplete ()
{
	jsReady = true;
}
function isjsReady ()
{
	return jsReady;
}
function swfisReady (who)
{	
	if (Ext.hasOwnProperty("flashreadycount")) ++Ext.flashreadycount;
	else Ext.flashreadycount = 1;
	
	//alert("id " + Ext.FlashPlayers[who].player.id)
}
function playComplete(who)
{
	if (Ext.FlashPlayers && Ext.FlashPlayers[who]) Ext.FlashPlayers[who].playComplete();
}
function setDuration (who, duration)
{
}
function stateChanged (id, time, buflen, bytesLoaded, bytesTot)
{
}
function swflog(who, text)
{
	//hlp_DisplayError(who + " : " + text);
}
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

Ext.createFlashPlayers = function()
{
	Ext.flashreadycount = 0;
	
	Ext.divlives = new Array();
	for(var i = 0; i < 5; ++i) {
		var id = "divlive" + (i+1);
		Ext.divlives.push(document.getElementById(id));
	}
	Ext.divvods = new Array();
	for(var i = 0; i < 5; ++i) {
		var id = "divvod" + (i+1);
		Ext.divvods.push(document.getElementById(id));
	}
}

Ext.createFlashPlayer = function(id, swf)
{
	var hasProductInstall = DetectFlashVer(6, 0, 65);
	var hasRequestedVersion = DetectFlashVer(9, 0, 28);
	
	if (hasRequestedVersion) {
		if (Ext.isIE) {
			document.write('<OBJECT id="' + id + '" height="100%" width="100%" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">'
				+ '	<PARAM NAME="Movie" VALUE="' + swf + '">'
				+ '	<PARAM NAME="Src" VALUE="' + swf + '">'
				+ '	<PARAM NAME="WMode" value="opaque">'
				+ '	<PARAM NAME="Quality" VALUE="High">'
				+ '	<PARAM NAME="Menu" VALUE="0">'
				+ ' <PARAM NAME="FlashVars" VALUE="me=' + id + '">'
				+ '</OBJECT>');
		} else {
			document.write('<object id="' + id + '" height="100%" width="100%" data="' + swf + '" type="application/x-shockwave-flash" FlashVars="me=' +id+ '">'
				+ '	<param value="false" name="menu"/>'
				+ '	<param value="opaque" name="wmode"/>'
				+ '</object>');
		}
	} else {
		document.write( '<div>请安装Adoble Flash Player 9或者以上版本.</div><br><a href=http://www.adobe.com/go/getflash/>点击此处安装</a>');
	}
}

Ext.flashplayer = function(url, disable_volume,hasPlatformRight) 
{
	var divs = Ext.divlives; 
	if (url.indexOf('.mp4') != -1 || url.indexOf('.flv') != -1) divs = Ext.divvods;		
	var player = null;
	for(var i = 0; i < divs[divs.length-1].childNodes.length; ++i) {
		var temp = divs[divs.length-1].childNodes[i];
		if (temp.tagName == "OBJECT") {
			player = temp;
			break;
		}
	}
	if (!Ext.hasOwnProperty("FlashPlayers")) Ext.FlashPlayers = {};
	Ext.FlashPlayers[player.id] = this;

	this.isflash = true;
	this.divflashs = divs;
		
    

	this.player = player;		
	this.Url = url.replace(/\\/g, '/');
	//this.State = 'unknown';
	this.State = 'ended';
	this.playStateChange = null;
	this.volume_disabled = disable_volume;	
    
    //this.allowFullScreen=true;
    this.player.allowFullScreen=true;
	
	this.afterAppend = function() {		
	}
	this.seekTo = function(pos)	{
		try {
			if (this.player) this.player.myseek(pos);
		} catch(e) {}		
	}
	this.setVolume = function(vol){
		try {
			if (this.player) this.player.mysetVolume(vol / 100);
		} catch(e) {}
	}
	this.getVolume = function() {		
		try {
			if (this.player) return Math.round(this.player.mygetVolume() * 100);
		} catch(e) {}
		return 0;
	}
	this.mute = function(ismute){
		try {
			if (this.player) {
				if (ismute) {
					this.vol = this.player.mygetVolume();
					this.player.mysetVolume(0);
				} else {
					if (this.vol) this.player.mysetVolume(this.vol);                
					else this.player.mysetVolume(0.5);//该句载入时会导致性能较差机器报错，liu0715
				}
			}
		} catch(e) {}
	}
	this.disableVolume = function(disable) {
		if (this.volume_disabled != disable) {
			this.volume_disabled = disable;
			this.mute(disable);
		}
	}
	this.getState = function(){
		return this.State;
	}
	this.pause = function(){
        if (this.Url.indexOf('getdata') != -1 ) return;//直播时该按钮失效 090810
		if (this.player) {
			if (this.State == 'playing') {
				try {
					this.player.mypause();
				} catch(e) {}
				
				this.State = 'paused';				
				if (this.playStateChange) this.playStateChange();
			}
		}
	}
	this.playComplete = function(){
		if (this.player) {
			if (this.State != 'ended') {
				this.State = 'ended';
				if (this.playStateChange) this.playStateChange();
			}
		}
	}
	this.play = function(){
		if (this.player) {
			if (this.State != 'playing') {
				try {
					if (this.State == 'paused') this.player.myresume();
					else this.player.myplay(this.Url);
					if (this.volume_disabled) this.player.mysetVolume(0);
					else if (this.player.mygetVolume() == 0) this.player.mysetVolume(0.5);
				} catch(e) {
                //alert('play e ');
                }
				
				this.State = 'playing';
				if (this.playStateChange) this.playStateChange();
			}
		}
	}
	this.stop = function(){
		if (this.player) {
			if (this.State == 'playing') {
				try {
					this.player.mystop();
					this.player.myseek(0);
				} catch(e) {}
				
				this.State = 'ended';
				
				if (this.playStateChange) this.playStateChange();
			}
		}
	}
	this.getCurrentPosition = function() {
		if (this.State != 'playing' && this.State != 'paused') return 0;
		try {
			if (this.player) {
				var ret = this.player.mygetStatus();
				if (ret && ret["time"] && ret["time"] >= 0) return ret["time"];
			}
		} catch(e) {}
		return 0;
	}
	this.getDuration = function() {		
		try {
			if (this.player) {
				var temp = this.player.mygetDurationTime();
				if (temp < 0) temp = 0;
				return temp;
			}
		} catch(e) {}
		
		return 0;
	}
	this.attachEvent = function(name,func) {
		if (name == "playStateChange") {
			this.playStateChange = func;
		}
	}
}

//
Ext.wms = {};

var g_playtcp = false;    //当需要控制云台是使用tcpplayer

Ext.wms.createPlayer = function(url, mute, hasPlatformRight)
{  
    if (url.indexOf('getdata') != -1 || url.indexOf('rtmp:') != -1 )
    {
        if(g_playtcp)
        {
            var urlsplit = url.split('=');
            newurl = 'tcp://'+urlsplit[1].replace('-',':');         
            return new Ext.tcpplayer(newurl,mute,hasPlatformRight);
        }
        else
        return new Ext.flashplayer(url,mute,hasPlatformRight);
    }
	else if (url.indexOf('data') != -1) {
		return new Ext.zkplayer(url,mute,hasPlatformRight);
	} 
	else {
		return new Ext.wmplayer(url,mute);
	}
};

Ext.wms.createDiv = function(player, left, top, width, height)
{
	if (player.isflash) {
		var div = player.divflashs[player.divflashs.length-1];
		player.divflashs.pop();
		return Ext.get(div);
	} else {
		var div = Ext.getBody().createChild({tag:'div'});
		div.setLeft(left);
		div.setTop(top);
		div.setWidth(width);
		div.setHeight(height);
		div.addClass('divplayer');
		
		Ext.getBody().appendChild(div);
		if (player && player.player) div.appendChild(player.player);
		
		player.afterAppend();
		
		return div;
	}
};

Ext.wms.createIcon = function(numid)
{
	var div = Ext.getBody().createChild({tag:'div'});
	div.addClass('divtocontent');
	div.addClassOnOver('divtocontent-hover');
	div.numid = numid;
	//div.on('mouseover', function() {div.addClass('divtocontent-hover');});
	//div.on('mouseout', function() {div.removeClass('divtocontent-hover');});
	Ext.getBody().appendChild(div);
	
	return div;
};

Ext.wms.createInfoDiv = function()
{
	
};

Ext.ImageButton = function(config)
{
	Ext.apply(this,config);
	Ext.ImageButton.superclass.constructor.call(this);

	this.on("render", function(){
		this.getEl().on("click", function()	{
			if (this.handler) this.handler();
		});
	});
};

Ext.ImageButton = Ext.extend(Ext.Component, {
	handler: null,

	initComponent : function(){
		Ext.Button.superclass.initComponent.call(this);
	},

	onRender : function(ct, position){
		if(!this.template){
			if(!Ext.ImageButton.itemplate){
				// hideous table template
				Ext.ImageButton.itemplate = new Ext.Template('<div></div>');
			}
			this.template = Ext.ImageButton.itemplate;
		}
		var btn, targs = [];
		
		if(position){
			btn = this.template.insertBefore(position, targs, true);
		}else{
			btn = this.template.append(ct, targs, true);
		}

		if (this.x) btn.setLeft(this.x);
		if (this.y) btn.setTop(this.y);
		if (this.width) btn.setWidth(this.width);
		if (this.height) btn.setHeight(this.height);
		this.el = btn;
		btn.on('click', function(){ if (this.handler) this.handler(); },this);

		if (this.downCls) {
			btn.on('mousedown',function(){btn.addClass(this.downCls);},this);
			btn.on('mouseup',function(){btn.removeClass(this.downCls);},this);
			btn.on('mouseleave',function(){btn.removeClass(this.downCls);},this)
		}
		
		Ext.ImageButton.superclass.onRender.call(this, ct, position);
	}
});
