﻿/**
* WebClient 中外合资创世科技版权所有
* FileName.......: global_var.js
* Project........: WebClient
* Create DateTime: $Date: 2008-11-10 10:25:00 $
*/

/**
* Global variables
*/
String.prototype.trim = function(){return this.replace(/(^\s+)|\s+$/g,"");};

var WebClient ={
    version:"v2009.03.09",
    lastModifyTime:"2008-11-10 10:25:00",
    historyModifyNote:[
       {"time":"2008/11/10 10:25:00","note":"1. 新建网络视频监控器工程.\n"},
       {"time":"2008/11/12 11:33:00","note":"1. 增加窗口大小调整功能.\n2. 增加刷新恢复功能\n3. 修改window的AttachEvent方法,onload,unonload,resize等"}
    ],
    debug:false,                         // 是否开始调试状态
    agt:navigator.userAgent.toLowerCase(),
    autoLogin:{auto:true,path:"218.22.27.203:6666",username:"guest",password:""},
    showLogo:true,
    showVideoParamsBar:true,
    
    // 主导航菜单预装
    PreloadImages:function()
    {//alert(g_imageprefix)
        var loadimages = new Array();
        topmenuimage = new Image();
        topmenuimage.src = g_imageprefix+"/"+languageDir+"/top_menuicon"+imagePreFix+"_2.png";
        loadimages.push(topmenuimage);
        ptzimage = new Image();
        ptzimage.src = g_imageprefix+"/ptz_yellow_2.png";
        loadimages.push(ptzimage);
        winnumber2 = new Image();
        winnumber2.src = g_imageprefix+"/winnumber_2.png";
        loadimages.push(winnumber2);
        winnumber3 = new Image();
        winnumber3.src = g_imageprefix+"/winnumber_3.png";
        loadimages.push(winnumber3);
        winnumber4 = new Image();
        winnumber4.src = g_imageprefix+"/winnumber_4.png";
        loadimages.push(winnumber4);        
    },    
    
    size:{"width":0,"height":0},        // 保存窗口调整的大小
    forceSize:false,                    // 是否强制窗口大小
    Resize:function()                   // 调整窗口大小方法
    {
        try
        {
            window.resizeTo(1031,800);
            window.moveTo((screen.width-document.body.clientWidth)/2,(screen.height-800)/2);
            this.size.width = 1031;
            this.size.height = 800;
            return true;
        }
        catch(e)
        {
            location.reload();
            //setTimeout("location.reload()",1000);
        }
        return false;
    },
    
    // 登录状态
    LoginStatus:{
        status:false,        
        Set:function(value)
        {
            Cookie.SetCookie("loginstatus",value);
            status = value;
        },
        Get:function()
        {
            return status;
        },
        GetCookieStatus:function()
        {
            return Cookie.GetCookie("loginstatus");
        }
    },
    
    // 当前打开页面信息
    CurBody:{
        Set:function(bodyId)                  // 当前页面
        {
            Cookie.SetCookie("bodyid",bodyId);
        },
        Get:function()
        {
            return Cookie.GetCookie("bodyid");
        }
    },
    
    // 刷新处理
    Refresh:function()
    {
        //Cookie.SetCookie("autologin","false",null,"/",null,false);
        if(this.CurBody.Get() == "resourceuser")
        {
            //Cookie.SetCookie("autologin","true",null,"/",null,false);
            // 断开所有连接
            NrcapPlugs.UnLoad();
            //ResourceUser.Init();
        }
        //WebClient.loginStatus.set(false);
        //Cookie.delCookie("bodyid");
    },
    
    // 退出处理
    Exit:function(style)                     // 退出
    {      
        WebClient.LoginStatus.Set(false);
        if (WebClient.autoLogin && typeof WebClient.autoLogin == "object" && WebClient.autoLogin.auto && WebClient.autoLogin.auto == true)
        {
            WebClient.Refresh();
            Cookie.DelCookie("bodyid");
            window.opener=null;
            window.close();
            return;
        }
        if(typeof style != "undefined" && style == "reload")
        {
            Login.Init();
        }
        else
        {
            Cookie.DelCookie("bodyid");
            window.opener=null;
            window.close();        
        }
    },
    
    
    // 展开,折叠div
    Expandsion:function(obj,img,img2)
    {
        if(obj)
        {
            if (obj.style.display != "none")
            {
                obj.style.display = "none";
                if(img) img.className = "plus";
                if (img2)
                {
                    img2.className = "stationmodel_collapse";
                }
            }
            else
            {
                if(obj.innerHTML == "") return;                
                obj.style.display = "block";                
                if(img) img.className = "minus";
                if (img2)
                {
                    img2.className = "stationmodel_expand";
                }
            }
        }
    },
    
	ClientOffset:function(obj)
	{
		var valueT=0,valueL=0;
		do
		{
			valueT+=obj.offsetTop||0;
			valueL+=obj.offsetLeft||0;
			obj=obj.offsetParent;
		}
		while(obj);
		return[valueL,valueT];
	}
}

/* cookie class*/
var Cookie = {
    CookieEnable:function()
    {    
	    var result=false;    	 
	    if(navigator.cookiesEnabled) 
		    return true;    	
	    document.cookie = "testcookie=yes;"; 
	    var cookieSet = document.cookie;     	
	    if (cookieSet.indexOf("testcookie=yes") > -1) 
		    result=true;     	
	    document.cookie = "";     	
	    return result; 
    },
        
    GetCookieVal:function(offset)
    {
        var endstr = document.cookie.indexOf(";",offset);
        if (endstr == -1)
        {
            endstr = document.cookie.length;
        }
        return unescape(document.cookie.substring(offset,endstr));
    },
    
    GetCookie:function(name)
    {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i= 0;
        while (i<clen)
        {
            var j = i+alen;
            
            if (document.cookie.substring(i,j) == arg)
            {
                return this.GetCookieVal(j);
            }
            i = document.cookie.indexOf(" ",i)+1;
            if(i==0) break;
        }
        return null;    
    },
    
    SetCookie:function(name,value)
    {
        var argv = arguments;
        var argc = arguments.length;
        var expires = new Date();
        if(2<argc)
        {
            expires = argv[2];
        }
        else
        {
	        expires.setTime(expires.getTime()+(24*60*60*1000*365));	        
        }
        var path = (3<argc)?argv[3]:null;
        var domain = (4<argc)?argv[4]:null;
        var secure = (5<argc)?argv[5]:null;
        document.cookie = name+"="+escape(value)+((expires == null)?" ":(";expires ="+expires.toGMTString()))+((path == null)?"  ":(";path = "+path))+((domain == null)?" ":(";domain =" +domain)) +((secure==true)?";secure":" ");
    },
    
    DelCookie:function(name)
    {
        var exp = new Date();
        exp.setTime (exp.getTime() - 1);
        var cval = this.GetCookie(name);
        document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
    }
}

var WebClientStyleSheet = {
    StyleSheetList:new Array("blue","newyear"),
    DefaultStyle:"blue",
    GetStyleSheet:function(){
		var css = Cookie.GetCookie("webclientstylesheet");		
		if(css != null && css != "")
		{		    		
			//g_imageprefix = "images/"+css.replace("_css","");
			//return css.replace("_css","");
			css = css.replace("_css","");
		}
		else
		{
		    css = this.DefaultStyle;
		}
		
		if(this.StyleSheetList.indexOf(css) < 0)
		{
		    // 不存在,设为默认值
		    css = this.DefaultStyle;
		}
		
		g_imageprefix = "images/"+css;
		return css;
    },
    SetStyleSheet:function(stylename){		
		if(stylename)
		{
            Cookie.SetCookie("webclientstylesheet",stylename+"_css");
		}
    }
}

// 模拟一个拖动层
var Drag  = {
    StartDrag:function(obj)
    {
        if(!$("DragBox"))
        {
            var objDragBox = document.createElement("DIV");
            objDragBox.setAttribute("id","DragBox");
            document.getElementsByTagName("body").item(0).appendChild(objDragBox);
            objDragBox.style.zIindex="9999";
            objDragBox.style.position="absolute";
            objDragBox.style.width="60px";
            objDragBox.style.height="20px";
            objDragBox.style.color="#FFFFFF";
			objDragBox.style.backgroundColor="#000000";
			objDragBox.style.filter="Alpha(Opacity=45)";
			objDragBox.style.filter.MozOpacity="0.6";
			objDragBox.style.filter.Opacity="0.6";
        }
        $("DragBox").style.top=window.event.clientY-10;
        $("DragBox").style.left=window.event.clientX-30;
        $("DragBox").innerHTML = obj.innerHTML;
        if($("DragBox").setCapture)
        {
            $("DragBox").setCapture();
        }
        else if(ChildWindow.captureEvents)
        {			
            ChildWindow.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
        }        
        $("DragBox").onmousemove = function(){Drag.Draging()};
        $("DragBox").onmouseup = function(){Drag.EndDrag()};
    },
    Draging:function()
    {
        if($("DragBox"))
        {
            $("DragBox").style.top=window.event.clientY-10;
            $("DragBox").style.left=window.event.clientX-30;
        }
    },
    EndDrag:function()
    {
        if($("DragBox").releaseCapture)
        {
            $("DragBox").releaseCapture();
        }
        else if(ChildWindow.releaseCapture)
        {			
            ChildWindow.releaseCapture();
        }        
        if($("DragBox"))document.getElementsByTagName("body").item(0).removeChild($("DragBox"));
    }
}

//// pop message box
//var popmessagebox = function()
//{
//	//layers=new Array();
//	layers=new Hash();
//	layerclassname = "popmessagebox";
//	popstep = 5;
//	return{
//		create:function(t_message,t_direct,t_closedelay)
//		{
//			try
//			{	
//				var layer = document.createElement("DIV");
//				//layers.push({"layer":null,"layertop":0,"timer":null,"del":false});
//				layers.set()
//				var layerindex = layers.length-1;
//				
//				layer.id = "popmessagebox"+(new Date().toGMTString());
//				layer.className = layerclassname;					
//				layer.innerHTML = "<div style='height:15px;padding:3px 4px 0px 35px;'><span style='float:left;'>"+t_message[0]+"</span><span style='float:right;'><img src='images/close.gif' onclick=\"popmessagebox.destory('"+layerindex+"')\"/></span></div><div style='padding:3px 0px 0px 5px;'>"+t_message[1]+"</div>";						
//				document.body.appendChild(layer);
//				layers[layerindex].layer = layer;
//				layer.style.top = (document.documentElement.scrollTop + document.documentElement.clientHeight) + "px";
//				if(t_direct && t_direct == "left")
//				{
//					layer.style.left = popstep;
//				}
//				else
//				{
//					layer.style.right = popstep;
//				}
//				layer.style.display = "block";
//				layer.blur();
//			    if(layers.length > 1)
//			    {
//			        //layers[layerindex].layertop = (layers.length)*96;			        
//			        var j = 0;
//			        for(var i = 0;i < layers.length;i++)
//			        {
//			            if(layers[i].del == false)
//			            {
//			                j++;				                
//			            }
//			        }
//			        layers[layerindex].layertop = j*96;
//			    }
//			    else
//			    {
//				    layers[layerindex].layertop = 0;					
//				}
//				var timer = setInterval("popmessagebox.popup('"+t_direct+"','"+layerindex+"','"+t_closedelay+"')",35);
//				layers[layerindex].timer = timer;
//			}
//			catch(e)
//			{
//				alert(e.message);
//			}
//		},
//		popup:function(t_direct,layerindex,t_closedelay)
//		{
//			if(!layers[layerindex].layer) return;				
//			
//			var t_bottom = "";
//			
//			if(parseInt(layers[layerindex].layer.style.top) <= (document.documentElement.scrollTop + document.documentElement.clientHeight -100))
//			{				
//				setTimeout("popmessagebox.destory('"+layerindex+"')",t_closedelay);
//			}
//			else
//			{
//				layers[layerindex].layertop += popstep;
//			}
//			layers[layerindex].layer.style.top = (document.documentElement.scrollTop + document.documentElement.clientHeight - layers[layerindex].layertop) + "px";
//			if(t_direct && t_direct == "left")
//			{
//				layers[layerindex].layer.style.left=5;
//			}
//			else
//			{
//				layers[layerindex].layer.style.right=5;
//			}
//		},
//		destory:function(layerindex)
//		{
//			clearInterval(layers[layerindex].timer);
//			if(layers[layerindex].layer)
//			{				    
//				layers[layerindex].layer.removeNode(true);
//				layers[layerindex].del = true;
//			}
//		}
//	};
//}();
var statusbar ={

    set:function(eventInfo)
    {
        var str = "";
        str += "［"+eventInfo.msgTypeDescription+"］  时间:"+eventInfo.time+"  来源:"+eventInfo.from+"  "+eventInfo.description+"  "+eventInfo.featureDesc;
        window.status = str;
    }
}

// pop message box
var popmessagebox=
{
	layers:new Hash(),
	layerclassname:"popmessagebox",
	popstep:5,
    create:function(t_message,t_direct,t_closedelay)
	{
		try
		{
		    if(t_message == null || typeof t_message == "undefined" || t_message[1] == null || t_message == "")
		    {
		        return false;
		    }
		    
		    if(!t_direct)
		    {
		        t_direct = "left";
		    }
		    
		    if(!t_closedelay)
		    {
		        t_closedelay = 3000;
		    }
		    		    				
			var layerKey = "popmessagebox"+(new Date().toLocaleString())+parseInt(Math.random()*(9999-1000+1)+1000);
			var layer = document.createElement("DIV");
			layer.id = layerKey;
			
			popmessagebox.layers.set(layerKey,{layer:null,top:0,timer:null,del:false});
			
			layer.className = popmessagebox.layerclassname;
			layer.innerHTML = "<div style='height:15px;padding:3px 4px 0px 35px;'><span style='float:left;'>"+t_message[0]+"</span><span style='float:right;'><img src='images/close.gif' onclick=\"popmessagebox.destory('"+layerKey+"')\"/></span></div><div style='padding:3px 0px 0px 5px;'>"+t_message[1]+"</div>";
			document.body.appendChild(layer);
			popmessagebox.layers.get(layerKey).layer = layer;
			popmessagebox.layers.get(layerKey).layer.style.top = (document.documentElement.scrollTop + document.documentElement.clientHeight) + "px";
			if(t_direct && t_direct == "left")
			{
				popmessagebox.layers.get(layerKey).layer.style.left = popmessagebox.popstep;
			}
			else
			{
				popmessagebox.layers.get(layerKey).layer.style.right = popmessagebox.popstep;
			}
			popmessagebox.layers.get(layerKey).layer.style.display = "block";
			popmessagebox.layers.get(layerKey).layer.blur();
			
	        var j = 0;
		    // 弹出框,高度累加  
//	        popmessagebox.layers.each(
//	            function(item)
//	            {                        
//	                item.value.top = j*96;
//                    item.value.timer = setInterval("popmessagebox.popup('"+t_direct+"','"+layerKey+"','"+t_closedelay+"')",35);
//                    j++;
//	            }
//	        )
	        
	        // 弹出框,重叠                        
            popmessagebox.layers.get(layerKey).top = 0;
            popmessagebox.layers.get(layerKey).timer = setInterval("popmessagebox.popup('"+t_direct+"','"+layerKey+"','"+t_closedelay+"')",50);
	   
		}
		catch(e)
		{
			alert("create:"+e.message+","+e.name);
		}
	},
	popup:function(t_direct,layerKey,t_closedelay)
	{
		if(!popmessagebox.layers.get(layerKey) || !popmessagebox.layers.get(layerKey).layer) return;
		
		var t_bottom = "";		
		if(parseInt(popmessagebox.layers.get(layerKey).layer.style.top) <= (document.documentElement.scrollTop + document.documentElement.clientHeight-100))
		{				
			setTimeout("popmessagebox.destory('"+layerKey+"')",t_closedelay);
		}
		else
		{
			popmessagebox.layers.get(layerKey).top += popmessagebox.popstep;
			//alert(popmessagebox.layers.get(layerKey).top)
		}
		
		popmessagebox.layers.get(layerKey).layer.style.top = (document.documentElement.scrollTop + document.documentElement.clientHeight - popmessagebox.layers.get(layerKey).top) + "px";
		if(t_direct && t_direct == "left")
		{
			popmessagebox.layers.get(layerKey).layer.style.left=5;
		}
		else
		{
			popmessagebox.layers.get(layerKey).layer.style.right=5;
		}
	},
	destory:function(layerKey)
	{
		if(popmessagebox.layers.get(layerKey) && popmessagebox.layers.get(layerKey).timer && popmessagebox.layers.get(layerKey).layer)
		{				    
		    if(popmessagebox.layers.get(layerKey).timer) clearInterval(popmessagebox.layers.get(layerKey).timer);
		    
			popmessagebox.layers.get(layerKey).layer.removeNode(true);
			popmessagebox.layers.get(layerKey).del = true;
			popmessagebox.layers.unset(layerKey);
		}
		else
		{
		    if(popmessagebox.layers.get(layerKey) && popmessagebox.layers.get(layerKey).timer) clearInterval(popmessagebox.layers.get(layerKey).timer);
		    popmessagebox.layers.unset(layerKey);
		}
		
	}	
}
