var MODE_MONITOR		=	0;
var MODE_PLAYBACK		=	1;
var MODE_REMOTE_PB		=	2;
var m_Mode	= MODE_MONITOR;
var m_bOnce = 0; //hjyang
var m_DxMode = 0; //hjyang 2006.12.06

var m_connected = false;
var m_Time = 0;
var ip, pr, pw;
/*var Channel_t="CH ",
Split_t=" Channel",
Rotate_t="Sequence",
livepause_t="Pause",
liveplay_t="Play",
ptleft_t="Left",
ptright_t="Right",
ptup_t="Up",
ptdown_t="Down",
zoomin_t="Zoom in",
zoomout_t="Zoom out",
focusin_t="Focus in",
focusout_t="Focus out",
skrol1_t="Audio",
record_t="Capture",
connect_t="Connect/Disconnect";
*/
var WV_lock_buttons = false;

//var lLeft;
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function WV_find_object(obname)
{
 var ob = MM_findObj(obname);
 if (ob == null)
	alert("object "+obname+" not found");
 return ob;
}

function WV_channel_click()
{if (WV_connect_true())
    { 
        var channel = event.srcElement.tag;
        document.WebVw.SplitScreen(1);
        document.WebVw.SelectCamera(channel);
    }
}

function WV_split_click()
{
if (WV_connect_true())
    {
    var split = event.srcElement.tag;
    document.WebVw.SplitScreen(split);
    }
}
/*
function WV_refresh_channels(channel, split)
{
  var i, splits = new Array (4, 9, 16),name;
  
  if (split != 1)
	channel = -1;
  
  for (i=1; i<=16; i++) {
	 if (i==channel)   namm='ch'+i+'_1'; 
			else  namm='ch'+i; 
	WV_btimg_init('ch'+ i , namm);

  }
  for (i=0; i<splits.length; i++) {
               	 if (split == splits[i])   namm='split'+splits[i]+'_1'; 
			else  namm='split'+splits[i]; 
             WV_btimg_init('split'+ splits[i] , namm);
  }
}
*/
function WV_rotate_click()
{if (WV_connect_true())
    {   
        var rotate = !document.WebVw.Rotate;
        document.WebVw.Rotate = rotate;
        WV_refresh_rotate(rotate);
    }
}

function WV_refresh_rotate(rotate)
{
if (rotate)  WV_btimg_init('rotate' ,'rotate_1');
	  else
	     WV_btimg_init('rotate' ,'rotate');
}

var lastAddr = "";


function WV_connect_click()
{
var ob, r;
if (document.WebVw.IsConnected()) 
{
  document.WebVw.Disconnect();
  WV_refresh_connect(false);

	var ob=MM_findObj('status');
	if (ob!=null) 
		ob.innerHTML = "";
	var ob=MM_findObj('statistics');
	if (ob!=null) 
		ob.innerHTML = "";

//  ob = MM_findObj("ipPan");
//  if (ob != null) ob.innerHTML = "";
} else {
  //WV_refresh_connect_v(true); //hjyang
  if(WV_refresh_connect_v(true)  == -1)
	return;

  WV_lock_buttons = true;
  r = window.showModalDialog("login.html", lastAddr, "dialogHeight:270px; dialogWidth:380px;status:no;help:no;");
//  r = window.showModalDialog("login.html", "", "dialogHeight:270px; dialogWidth:380px;status:no;help:no;");
  WV_lock_buttons = false;
//	r = "211.219.107.98:5545:1111";
//	r = "172.16.2.235:5445:1111";

  if ((r!="")&&(r!=null)&&(r!=":"))
  {  
	var c = String(r).split(":");

	r = WebVw.Connect(c[0], c[1], 0, c[2]);

	if (r == 0) 
	{
		WV_refresh_connect(true); //hjyang
		lastAddr = c[0]+":"+c[1];
		ip = c[0]; pr = c[1]; pw = c[2];
	  
//	  ob = MM_findObj("ipPan");
//	  if (ob != null) ob.innerHTML ='<strong>'+ c[0]+'</strong>';
//	  WV_AudioVolume();
		WebVw.SetMode( m_Mode);
        var audio = document.WebVw.Mute;
        WV_refresh_audio(audio);

		RV_Connect();

	} 
	else 

	{
		//WV_refresh_connect(false);
		WV_refresh_connect_v(false);
		alert("Connection error");
	} 
  }else 
	WV_refresh_connect_v(false);
   //WV_refresh_connect(false);

}
}

function WV_disconnect_cmd()
{
	if ( m_connected == false)
	{
		return;
	}

	if (document.WebVw.IsConnected()) 
	{
	  WV_refresh_connect(false);
	  document.WebVw.Disconnect();
	}	
	WV_refresh_connect_v(false);

}

function WV_connect_cmd( ip, pr, pw)
{
	var ob, r=5;
	WV_refresh_connect_v(true);
	
	r = WebVw.Connect(String(ip), pr, 0, String(pw));
	if (r == 0) 
	{
		WV_refresh_connect(true);
		lastAddr = String(ip);
		r = WebVw.SetMode( m_Mode);

        var audio = document.WebVw.Mute;
        WV_refresh_audio(audio);

		if ( m_Mode == MODE_REMOTE_PB)
		{
			RV_SetDate( 0, false);
			var date = new Date(curDate*1000);
			changeCal(date);

			delete date;//hjyang
		}
	} 
	else 
	{
		WV_refresh_connect_v(false);
	  	alert("Connection error");
	}
}

function WV_refresh_connect_v(connected)
{
/*	if(m_bOnce == 0)
	{
		WebVw.style.visibility='visible';
		m_bOnce = 1;
	}
*/	
/*
	if (connected) 
		{WebVw.style.visibility='visible';}
	else
		{WebVw.style.visibility='hidden';}

*/

	if (connected)  {
		WebVw.style.visibility='visible';
		try
		{
			//hjyang 2006.12.06
			WebVw.CreateMutex2("DVR CLIENT 4500", m_DxMode);
		}
		catch(e)
		{
			alert("Only one DVR Client 4500 can be run");
			window.close();
			return -1;
		}
	}
	else
		{WebVw.style.visibility='hidden';}

	return 0;

}

function WV_refresh_connect(connected)
{
if (connected) {
	WV_btimg_init('connect','disconnect');
} else {
	WV_refresh_connect_v(false);
	WV_btimg_init('connect','connect');
	RV_Disconnect();
}
	m_connected = connected;
}
/*
function WV_live_click()
{
	if (ip == "")
	{
		window.navigate("B.htm");
		return;
	}
	
//	WV_disconnect_cmd();
	window.navigate("B.htm?ip="+ip+"&pr="+pr);//+"&pw="+pw);
}

function WV_search_click()
{
	if (ip == "")
	{
		window.navigate("A.htm");
		return;
	}
	
//	WV_disconnect_cmd();
	window.navigate("A.htm?ip="+ip+"&pr="+pr);//+"&pw="+pw);
}
*/
function WV_live_click()
{
	var pb_reject = 0;
	if ( m_connected == false)
	{
		return;
	}

	sysback.style.backgroundImage = "url(B_BAGIC.jpg)";

	for (var i = 0; i < view1.length; i++) {
		view1[i].style.display = "none";
		view2[i].style.display = "block";
	}

	m_Mode	= MODE_REMOTE_PB;
	pb_reject = WebVw.SetMode(m_Mode);
	if(pb_reject == 0)
	{
		RV_SetDate( 0, false);
		var date = new Date(curDate*1000);
		changeCal(date);
		OnResize();
		delete date;//hjyang
	}
	else
	{
		WV_search_click();
		alert("Remote playback is denied");
	}

}

function WV_search_click()
{
	sysback.style.backgroundImage = "url(A_BAGIC.jpg)";
	for (var i = 0; i < view1.length; i++) {
		view1[i].style.display = "block";
		view2[i].style.display = "none";
	}
	m_Mode	= MODE_MONITOR;
	WebVw.SetMode( m_Mode);

	var audio = document.WebVw.Mute;
	WV_refresh_audio(audio);
}

function WV_pause_click()
{
	if (WV_connect_true())
	{
		var play = document.WebVw.IsPaused();
		if ( play == true) 
			document.WebVw.Play();
		else
			document.WebVw.Pause();
		WV_refresh_liveplay(!play);
	}
}

function WV_refresh_liveplay(state)
{
if (state) 
 WV_btimg_init('pause','pause_1');
else 
 WV_btimg_init('pause','pause');
}

function WV_cross_mdown()
{
	if (WV_connect_true())
	{ 
		var ob = event.srcElement;
		ob.pressed = true;
		document.WebVw.SendPtzCmd(0, ob.tag)
	}
}

function WV_cross_mup()
{
	if (WV_connect_true())
	{
		var ob = event.srcElement;
		if (ob.pressed) 
		{
			ob.pressed = false;
			document.WebVw.SendPtzCmd(0, 0)
		}
	}
}

function WV_bt_mover()
{
//	if (WV_connect_true())
    { 
        var ob = event.srcElement;
        WV_button_set(ob.name, 1);
    }
}

function WV_bt_mout()
{
//	if (WV_connect_true())
    {
        var ob = event.srcElement;
        WV_button_set(ob.name, 0);
    }
}

function WV_button_img(obname, src)
{
  if (WV_lock_buttons)
     return;
 var ob = WV_find_object(obname);
 if (ob != null) {
  ob.src = src;
 }
}

function WV_btimg_init(obname, img_prefix)
{
 var ob = WV_find_object(obname);
 if (ob != null) {
   if (img_prefix != undefined)
   {
	eval("ob.src ='images/" + img_prefix + "_f1.jpg'");
   	ob.img_prefix = img_prefix;
	}
   else
	ob.img_prefix = obname;

   WV_button_set(obname);
 }  
 return ob;
}

function WV_button_set(obname, state)
{
 if (WV_lock_buttons)
     return;
 
 var ob = WV_find_object(obname);
 if (ob == null) {
	alert(obname+" not found");
	return;
  }
  
	switch (state) {
   case undefined:
		state = ob.state;
   case 0:
		eval("ob.src ='images/" + ob.img_prefix + "_f1.jpg'");
       break;
   case 1:  
		eval("ob.src ='images/" + ob.img_prefix + "_f2.jpg'");
        break;
   default:
        return;
  }
  ob.state = state;
}

function GetParam(params_1,paramName)
{
	var params = params_1.substr(1,params_1.length-1);
	var a;
	if (params.indexOf("&") < 0 && params.indexOf("%26") < 0 && String(params).length > 2)
		params += "&";
	
	if (params.indexOf("&") >=0)
		a = params.split(/\&/);
	if (params.indexOf("%26") >=0)
		a = params.split(/\%26/);

	var a1;
	if (a == null) return ""; 
	for(var i=0;i<a.length;i++)
		{
			a1= String(a[i]).split(/\=/);
			if (a1[0]==paramName)
			{
				if ( a1[1]==undefined)
					break;
				return a1[1];
			}
		}
	return "";
}

function WV_init(dxMode)
{
var i, ob, arr,arr1,arr2, name;

	m_DxMode = dxMode;
//Connect
//WV_refresh_connect_v(false);
WV_refresh_connect(false);

	ip = GetParam(document.location.search, 'ip');
	pr = GetParam(document.location.search, 'pr');
	pw = GetParam(document.location.search, 'pw');

ob= WV_find_object('connect');
//ob.title=connect_t;
ob.onmouseover = WV_bt_mover;
ob.onmouseout = WV_bt_mout;
ob.onclick = WV_connect_click;

//Channel buttons
for (i=1; i<=16; i++) {
	name = 'ch' + i; 
	WV_btimg_init(name);
	ob = WV_find_object(name);
	ob.tag = i;
//	ob.title=Channel_t+i;
	ob.onclick = WV_channel_click;
	ob.onmouseover = WV_bt_mover;
	ob.onmouseout = WV_bt_mout;

}

//Split buttons
arr = new Array(4, 9, 16);
for (i=0; i<arr.length; i++) {
	name = 'split' + arr[i];
	WV_btimg_init(name);
 	ob = WV_find_object(name);
 	ob.tag = arr[i];
//	ob.title=arr[i]+Split_t;
	ob.onmouseover = WV_bt_mover;
	ob.onmouseout = WV_bt_mout;
 	ob.onclick = WV_split_click;
}

WV_btimg_init('rotate');
	ob = WV_find_object('rotate');
	ob.onclick = WV_rotate_click;
//	ob.title=Rotate_t;
	ob.onmouseover = WV_bt_mover;
	ob.onmouseout = WV_bt_mout;
//	ob.onmousedown = WV_cross_mdown;
//	ob.onmouseup = WV_cross_mup;

//ob.img_prefix='rotate_1';
//D:\Project_webView\test4\A.htm?ip=192.168.0.90&pr=5445&pw=1111
	if (ip!="") 
	{
		lastAddr = String(ip);
		window.setTimeout( "WV_connect_click()", 300);
//		var s = "WV_connect_cmd( '"+ip+"', "+pr+", '"+pw+"')";
//		window.setTimeout( s, 300);
	}
}

function WV_audio_click()
{
	if (WV_connect_true())
    {   
        var audio = !document.WebVw.Mute;
        document.WebVw.Mute = audio;
        WV_refresh_audio(audio);
    }
}

function WV_refresh_audio(audio)
{
	if (audio)  
	    WV_btimg_init('audio' ,'audio');
	else
		WV_btimg_init('audio' ,'audio_1');
}

function WV_Init2()
{
//Liveplay
WV_refresh_liveplay(true);
WV_btimg_init('pause')
ob = WV_find_object('pause');
//ob.title=liveplay_t;
ob.onmouseover = WV_bt_mover;
ob.onmouseout = WV_bt_mout;
ob.onclick = WV_pause_click;


//PTZ
arr1 = new Array('ptleft','ptright','ptup','ptdown');
for (i=0; i<arr1.length; i++) {
	WV_btimg_init(arr1[i]);
	ob=WV_find_object(arr1[i]);
//	eval("ob.title="+arr1[i]+"_t");

	ob.tag = i+1;
	ob.state = 0;
	ob.onmouseover = WV_bt_mover;
	ob.onmouseout = WV_bt_mout;
	ob.onmousedown = WV_cross_mdown;
	ob.onmouseup = WV_cross_mup;
}

arr2 = new Array('zoomout','zoomin','focusin','focusout');
for (i=0; i<arr2.length; i++) {
	WV_btimg_init(arr2[i]);
	ob=WV_find_object(arr2[i]);
//	eval("ob.title=" + arr2[i]+"_t");
	ob.tag = i+5;

	ob.state = 0;
	ob.onmouseover = WV_bt_mover;
	ob.onmouseout = WV_bt_mout;
	ob.onmousedown = WV_cross_mdown;
	ob.onmouseup = WV_cross_mup;
}
	WV_btimg_init("audio");
	ob=WV_find_object("audio");
	ob.onclick = WV_audio_click;
	ob.onmouseover = WV_bt_mover;
	ob.onmouseout = WV_bt_mout;

	m_Mode	= MODE_MONITOR;
}
//slider
/*
WV_Create_Slider();

ob = WV_find_object('skrol1');
ob.title=skrol1_t;
ob.onmousemove=WV_skrol;
ob.onmousedown=WV_skrol1;

ob = WV_find_object('record');
ob.title=record_t;
ob.img_prefix='record';
ob.onclick=Set_Mode;//WV_Record;
ob.onmouseover = WV_bt_mover;
ob.onmouseout = WV_bt_mout;

}

function WV_AudioVolume()
{var ob = WV_find_object('skrol');
ob.width=Math.floor((79/100)*document.WebVw.AudioVolume);
}

function WV_skrol1()
{
lLeft = window.event.x;
//alert(lLeft);
}

function WV_skrol()
{
if (WV_connect_true())
   {
        var ob = WV_find_object('skrol');
            var ob1 = WV_find_object('skrol1');
//ob.width=window.pageXOffset  ;

            var dLeft=0;
  
            if (window.event.button == 1) 
            {  
                sx = window.event.x;

                dLeft = sx - lLeft;
//if (lLeft > sx) return;
    if (ob.width+dLeft<=79) 
            {
                ob.width=ob.width+dLeft;
                lLeft = sx;
                document.WebVw.AudioVolume=Math.floor((100/79)*ob.width);
	        } 
    else    {
                ob.width=79;	document.WebVw.AudioVolume=Math.floor((100/79)*ob.width);
            }
	return false;
  }
//else {ob.width=ob.width-1;}
}

}

function WV_format2(tm)
{
 if (tm<10) return "0"+tm;
 return ""+tm;
}


function WV_Record()
{
	if (WV_connect_true()) document.WebVw.Capture(0);
}

function WV_NDD()
{
var ob = WV_find_object('HDD');
if (ob==null) return;
ob.width=ob.width+"%";
window.setTimeout("WV_NDD()", 1000);
}
*/
function WV_connect_true()
{
var ob = WV_find_object('connect');
if (ob.img_prefix=='disconnect') return true;
return false;
}

/*
function WV_timer()
{
  var ob=WV_find_object('timePan');
  if (ob==null) return;
  
  var dt = new Date();
  ob.innerHTML = dt.getYear()+"-"+WV_format2(dt.getMonth() + 1) +"-"+WV_format2(dt.getDate())+ " " +
			WV_format2(dt.getHours())+":"+WV_format2(dt.getMinutes())+":"+WV_format2(dt.getSeconds());

  delete dt; //hjyang
  window.setTimeout("WV_timer()", 1000);

}
*/
function WV_SetTime( dt)
{
//window.status = dt.getMonth() + " " + dt.getDate() + " " + dt.getHours() + ":" + dt.getMinutes();
  var ob=MM_findObj('TimeY');
  if (ob==null) return;
  ob.innerHTML = "<div align='center'><strong><font size='2'>"+dt.getYear()+"</font></strong></div>"

  var ob=MM_findObj('TimeM');
  if (ob==null) return;
  var date = (dt.getMonth() > 8) ? (Number(dt.getMonth())+1) : ("0" + (Number(dt.getMonth())+1));
  ob.innerHTML = "<div align='center'><strong><font size='2'>"+date+"</font></strong></div>"

  var ob=MM_findObj('TimeD');
  if (ob==null) return;
  var date	= (dt.getDate() > 9) ? dt.getDate() : ("0" + dt.getDate());
  ob.innerHTML = "<div align='center'><strong><font size='2'>"+date+"</font></strong></div>"

  var ob=MM_findObj('TimeT');
  if (ob==null) return;
  var t = String((dt.getHours() > 9) ? dt.getHours() : ("0" + dt.getHours()));
  t += ': ' + String((dt.getMinutes() > 9) ? dt.getMinutes() : ("0" + dt.getMinutes()));
  t += ': ' + String((dt.getSeconds() > 9) ? dt.getSeconds() : ("0" + dt.getSeconds()));
  ob.innerHTML = "<strong><font color='#3399FF' size='3'>"+t+"</font></strong>";
}

function WV_timer( )
{
  var dt;
  if ( m_connected == false || m_Mode == MODE_MONITOR)
  	dt = new Date();	
  else 
  {
  	if ( m_Time == 0)
	  	dt = new Date( yyyy, mm, dd); 
	else
	  	dt = new Date( m_Time * 1000); 
  }
  WV_SetTime(dt);
//	window.status = dt;
  delete dt;
  window.setTimeout("WV_timer()", 1000);
}

function RV_Disconnect()
{
	ip = pr = pw ="";
	if ( m_Mode	!= MODE_REMOTE_PB)
		return;

	m_cntD = 0; curDate	= GetCurrentDate();
	writeCalendar( MM_findObj('B_day'));
	for ( c = 0; c < 4; c++)
		m_pSearchBar.Clear(c);
		
//	Search.style.posLeft = Search.begin;
	m_pChnlBar.SetPos(0,0);
}

function RV_Connect()
{
	if ( m_Mode	!= MODE_REMOTE_PB)
		return;

	document.body.style.cursor = 'wait';
	RV_SetDate(0, false);
	var date = new Date(curDate*1000);
	changeCal(date);
	
	delete date; //hjyang
	m_pChnlBar.SetEnable();	
	document.body.style.cursor = 'auto';
}

function WV_DisplayStatus(msg)
{
  var ob=MM_findObj('status');
  if (ob==null) return;
  ob.innerHTML = "<div align='left'><strong><font color='#3399FF' size='2'>"+msg+"</font></strong></div>";

//  if(msg == "Initialize success")
//	WV_connect_click();
/*
	if(m_bOnce == 0)
	{
		m_bOnce = 1;
		WV_connect_click();
	}
*/
}

function WV_DisplayStatistics()
{
	var BR = 0, FR = 0;
	if (WV_connect_true())
	{
 		BR = document.WebVw.GetStatisticsBR( 0);
 		FR = document.WebVw.GetStatisticsFR( 0);
  
		var ob=MM_findObj('statistics');
		if (ob==null) return;
		ob.innerHTML = "<div align='left'><strong><font color='#3399FF' size='2'>"+"Bitrate: "+BR+" Kbps; Frame rate: "+FR+" fps;"+"</font></strong></div>";
	}
/*
	if(m_bOnce == 0)
	{
		m_bOnce = 1;
		WV_connect_click();
	}
*/
	window.setTimeout("WV_DisplayStatistics()", 1000);
}
var BackupDlg = 0;
function WV_Capture(mode)
{
	BackupDlg = new CBackupDlg(this);
	BackupDlg.ShowModal(mode);
//  var r = window.showModalDialog("backup.html", 0, "dialogHeight:270px; dialogWidth:380px;status:no;help:no;");
}

function WV_RemoteSetup()
{
	if ( m_connected == false)
		return;
	var r = WebVw.GetRemoteSetup();
}


