/*
	javascript:void(RtspVapgCtrl.RtspPause())
	javascript:void(RtspVapgCtrl.RtspPlay())
	javascript:void(RtspVapgCtrl.RtspStop())
*/
var bZoomEnabled = false;
var bPlayEnabled = true;
var bStopEnabled = false;
var bRecEnabled = false;
var bVolumeEnabled = false;
var bMuteEnabled = false;
var bTalkEnabled = false;
var bMicVolumeEnabled = false;
var bMicMuteEnabled = false;
var bFullscreen = false;
var bContainVideo = false;  //add by Kent 20081124, don't know what it can do.
var bContainAudio = false;  //add by Kent 20081124, to adjust whether a streaming contains audio or not

function RtspVapgCtrlZoomEdit ()
{
	RtspVapgCtrl.OpenDigitalZoomEditWnd();
	bZoomEnabled = true;
}

function RtspVapgCtrlPalyPauseToggle()
{
	var object = document.getElementById("btn_play");
	if (bPlayEnabled)
	{
			object.style.backgroundPosition = "-84px 0";
			object.title = translator("resume");
			bPlayEnabled = false;
			RtspVapgCtrl.RtspPause();
	}
	else
	{
			object.style.backgroundPosition = "-56px 0";
			object.title = translator("pause");
			
			document.getElementById("btn_snapshot").disabled = false;
			document.getElementById("btn_snapshot").style.backgroundPositionY = "0px";
			document.getElementById("btn_stop").disabled = false;
			document.getElementById("btn_stop").style.backgroundPositionY = "0px";
			loadRtspCtrlBtnValue();
			
			bPlayEnabled = true;
			bStopEnabled = false;			
			RtspVapgCtrl.RtspPlay();
	}
}


function RtspVapgCtrlStop()
{	  
	var object = document.getElementById("btn_stop");
		bStopEnabled = true;
		bPlayEnabled = false;
		bRecEnabled = false;
		bTalkEnabled = false;
				
		document.getElementById("btn_play").title = translator("play");
		X = parseInt(object.style.backgroundPosition.split(" ")[0]).toString(10);
		object.style.backgroundPosition = X +"px "+ -84 +"px";

		document.getElementById("btn_snapshot").disabled = true;
		document.getElementById("btn_snapshot").style.backgroundPositionY = "-84px";
		document.getElementById("btn_zoom").disabled = true;
		document.getElementById("btn_zoom").style.backgroundPositionY = "-84px";
		document.getElementById("btn_play").style.backgroundPosition = "-84px 0px";		
		document.getElementById("btn_stop").disabled = true;
		document.getElementById("btn_stop").style.backgroundPositionY = "-84px";
		document.getElementById("btn_record").disabled = true;
		document.getElementById("btn_record").style.backgroundPosition = "-140px -84px";
		document.getElementById("btn_volume").disabled = true;
		document.getElementById("btn_volume").style.backgroundPositionY = "-84px";
		document.getElementById("btn_mute").disabled = true;
		document.getElementById("btn_mute").style.backgroundPositionY = "-84px";
		document.getElementById("btn_talk").disabled = true;
		document.getElementById("btn_talk").style.backgroundPositionY = "-84px";
		document.getElementById("btn_mic_volume").disabled = true;
		document.getElementById("btn_mic_volume").style.backgroundPositionY = "-84px";
		document.getElementById("btn_mic_mute").disabled = true;
		document.getElementById("btn_mic_mute").style.backgroundPositionY = "-84px";		
		document.getElementById("btn_fullscreen").disabled = true;
		document.getElementById("btn_fullscreen").style.backgroundPositionY = "-84px";
		
		RtspVapgCtrl.RtspStop();
}


function RtspVapgCtrlRecordToggle ()
{
	var object = document.getElementById("btn_record");
	if (bRecEnabled) 
	{
        object.style.backgroundPosition = "-140px 0";
        bRecEnabled = false;
        object.title = translator("start_mp4_recording");
        RtspVapgCtrl.StopMP4Conversion();
	} 
	else 
	{
		object.style.backgroundPosition = "-168px 0";
		bRecEnabled = true;
		object.title = translator("stop_mp4_recording");
		RtspVapgCtrl.StartMP4Conversion();
	}
}



function RtspVapgCtrlVolEdit()
{
		RtspVapgCtrl.OpenVolumeEditWnd();
		bVolumeEnabled = true;
}

function RtspVapgCtrlMuteToggle ()
{
	var object = document.getElementById("btn_mute")
	if(bMuteEnabled)
	{
		object.style.backgroundPosition = "-252px 0";
		bMuteEnabled = RtspVapgCtrl.PlayMute = false;
		object.title = translator("mute");			
		document.getElementById("btn_volume").disabled = false;	
		document.getElementById("btn_volume").style.backgroundPositionY = "0px";			
	} 
	else 
	{
		object.style.backgroundPosition = "-224px 0";
		bMuteEnabled = RtspVapgCtrl.PlayMute = true;
		object.title = translator("audio_on");		
		document.getElementById("btn_volume").disabled = true;
		document.getElementById("btn_volume").style.backgroundPositionY = "-84px";
		
	}	
}

function RtspVagpCtrlToggleTalk()
{
	var object = document.getElementById("btn_talk");
	if (bTalkEnabled) 
	{
		object.style.backgroundPosition = "-280px 0px";	
		bTalkEnabled = false;
		object.title = translator("talk");
		RtspVapgCtrl.StopMicTalk();
			
		if(RtspVapgCtrl.GetSettings(0) != "2" && bContainAudio == true ) //not 'video only' and stream Contains Audio
		{
			if(bMuteEnabled)  //when u switch between enable/disable Talk, MuteEnabled should maiatain MuteEnabled state
			{
				document.getElementById("btn_mute").style.backgroundPosition = "-224px 0px";
				document.getElementById("btn_mute").disabled = false;          
			}
			else  //when u switch between enable/disable Talk, btn_mute & btn_volume btn should be both enabled/disabled
			{
				bMuteEnabled = !false; // set NOT(inverse value) in order to make toggle true
				RtspVapgCtrlMuteToggle();
				document.getElementById("btn_mute").disabled = false;				
			}
		} 
	} 
	else
	{
		object.style.backgroundPosition = "-280px -56px";
		bTalkEnabled = true;
		object.title = translator("stop_talk");
		RtspVapgCtrl.StartMicTalk();

		document.getElementById("btn_volume").disabled = true;
		document.getElementById("btn_volume").style.backgroundPosition = "-196px -84px";
		document.getElementById("btn_mute").disabled = true;
		document.getElementById("btn_mute").style.backgroundPosition = "-224px -84px";					
		
		
	}				
}



function RtspVapgCtrlMicVolEdit()
{
		RtspVapgCtrl.OpenMicVolumeEditWnd();
		bMicVolumeEnabled = true;
}

function RtspVagpCtrlToggleMicMute()
{
	var object = document.getElementById("btn_mic_mute");
	if (bMicMuteEnabled) 
	{
			object.style.backgroundPosition = "-364px 0px";
			bMicMuteEnabled = false;
			//obj.title = translator("disable_mute");
			object.title = translator("mute");
			RtspVapgCtrl.MicMute = bMicMuteEnabled;
			document.getElementById("btn_mic_volume").disabled = false;	
			document.getElementById("btn_mic_volume").style.backgroundPositionY = "0px";
	} 
	else 
	{
			object.style.backgroundPosition = "-336px 0px";
			bMicMuteEnabled = true;
			//obj.title = translator("enable_mute");
			object.title = translator("mic_on");
			RtspVapgCtrl.MicMute = bMicMuteEnabled;
			document.getElementById("btn_mic_volume").disabled = true;	
			document.getElementById("btn_mic_volume").style.backgroundPositionY = "-84px";
	}				
}


function RtspVapgCtrlFS()
{
	RtspVapgCtrl.SetFullScreen(true);
}

function resizePlugin()
{
  $.ajax({
    url: "/cgi-bin/viewer/getparam.cgi?videoin_c0_s0_resolution&videoin_c0_s1_resolution",
    async: false,
    success: function(data){eval(data)}
  })

  eval("VideoSize=videoin_c0_s" + $("#RtspVapgCtrl").attr("ViewStream") + "_resolution");
  evalPluginSize();

  //RtspVapgCtrlObject.Stretch = "false";
  //RtspVapgCtrlObject.width = W + X_OFFSET;
  //RtspVapgCtrlObject.height = H + Y_OFFSET;
  //loadRtspCtrlBtnValue();
}
    

function initPluginCallbackFn()
{		

/*@cc_on
   @if (@_jscript_version >= 5)
    //alert("OS is 32-bit. Browser is IE.");
		//$('body').append('<div id = "log"></br> Log : </br></div>');
		//var logBlock = document.getElementById("log");
		
	function RtspVapgCtrl::OnProtocolRolling(param)
	{
		if (param == 1)
		{
			//alert("UDP");
		}
		else if (param == 2)
		{
			//alert("UDP");
		}
		else if (param == 3)
		{
			//alert("HTTP");
		}
		else if (param == 4)
		{
			//alert("Multicast");
		}
	}

	function RtspVapgCtrl::OnTalkStatus(param)
	{ // 1:talking, 2:eNonTalking
		if (param == 1)
		{
			//alert("talking");
		}
		else
		{
			//alert("eNonTalking");
			bTalkEnabled = true;
			RtspVagpCtrlToggleTalk();
		}
	}

	function RtspVapgCtrl::OnVideoCodec(param)
	{ // 1:MJpeg, 2:MP4
		switch(param)
		{
			case 1:
				//alert("Motion Jpeg")
				codectype = "mjpeg";
				Mpeg4_MJpeg_Switch();
				break;
			case 2:
				//alert("Mpeg4");
				codectype = "mpeg4";
				Mpeg4_MJpeg_Switch();
				break;
			case 4:
				codectype = "h264";
				Mpeg4_MJpeg_Switch();
				break;
			default:
				//alert("OnVideoCodec else")
				break;
		}
	}

	//Kent 20081124, cause plugin callback param = 2 ealier than param = 1, 
	//so that if param == 2 is true, statement "bContainAudio = false" won't exec when param == 1
	function RtspVapgCtrl::OnConnectionOK(param)
	{ // 1:means streaming contains video, 2:means streaming contains audio
		//alert(v1);
		bContainAudio = false; //Kent, set init value = false, means contains no audio.
		if (param == 1)
		{
			//alert('streaming contains video');
			bContainVideo = true;
			resizePlugin();
		}
		else if (param == 2)
		{
			//alert('streaming contains audio')
			bContainAudio = true;
			//logBlock.innerHTML += "</br>streaming contains audio</br> ";
        }
        $("#StreamSelector").attr("disabled", false);
	}

	function RtspVapgCtrl::OnConnectionBroken(param)
	{	
		if (param == 1) // means streaming contains video
		{
			//alert('OnConnectionBroken: streaming contains video');
			//ControlForm.chkVideo.checked = false;
		}
		else if (param == 2) // means streaming contains audio
		{
			//alert('OnConnectionBroken: streaming contains audio');    	
			//ControlForm.chkAudio.checked = false;    	
		}
	}    

		function RtspVapgCtrl::OnMP4Status(param)
		{ // 0:eAVINone, 1:eAVIStop, 2:eAVIRecord
			if (param == 0)
			{
				//alert("eAVINone");
			}				
			else if (param == 1)
			{
				bRecEnabled = true;
				RtspVapgCtrlRecordToggle();
				//logBlock.innerHTML += "Stop Record, ";
			}				
			else if (param == 2)
			{
				bRecEnabled = false;
                RtspVapgCtrl.AutoReStartMP4Recording = true;
				RtspVapgCtrlRecordToggle();
				//logBlock.innerHTML += "Start Record, ";				
			}				
		}
		
		
		function RtspVapgCtrl::OnRtspStatus(param)
		{// 0:eRtspStateNone, 1:eRtspStatePlayBefore, 2:eRtspStatePlay, 3:eRtspStatePause
		
			if (codectype == "mpeg4"  || codectype == "h264")
			{
					if (param == 0)
					{
						//logBlock.innerHTML += "rtsp stop, ";
						bStopEnabled = false;
						RtspVapgCtrlStop();			
					}				
					else if (param == 1)
					{
						//logBlock.innerHTML += "rtsp before play, ";
					}
					else if (param == 2)
					{
						bPlayEnabled = false;
						//logBlock.innerHTML += "rtsp play, ";
						RtspVapgCtrlPalyPauseToggle();
					}				
					else if (param == 3)
					{
						bPlayEnabled = true;
						//logBlock.innerHTML += "rtsp pause, ";
						RtspVapgCtrlPalyPauseToggle();
					}
			}
		};

		function RtspVapgCtrl::OnDOChange(param)
		{ // 0:failed, 1:success	
			if (param == true)
			{
				//logBlock.innerHTML += "Change DO success, ";
				$.getScript("/cgi-bin/admin/getparam.cgi?status_do_i0",function(){
					DOButtonStatusUpdate(true);
				});
			}
			else
			{
				//logBlock.innerHTML += "Change DO failed, ";
				DOButtonStatusUpdate();				
			}
		};
   @end
@*/

}

