var BK_ERR 		=	7;
var BK_TIME 	=	8;
var BK_COMPLITE =	9;
var BK_FILE		=	11;
var BK_EMPTY	=	10;
var MODE_CAPTURE =	0;
var MODE_BACKUP = 1;

function CBackupDlg(ctrl) 
{
	this.m_lStart		=	0;
	this.m_lStop		=	0;
	this.m_bProgress	=	0;

	this.dwDate			=	0;
	this.m_nPercent		= 	0;

	this.m_win			=	null;
	this.m_mode 		= 	MODE_CAPTURE;

	this.OnBackupState	=	OnBackupState_CBackupDlg;

	this.OnInitDialog	=	OnInitDialog_CBackupDlg;
	this.OnOK			=	OnOK_CBackupDlg;
	this.OnCancel		=	OnCancel_CBackupDlg;
	this.OnBrowse		=	OnBrowse_CBackupDlg;
	this.OnCapture		=	OnCapture_CBackupDlg;

	this.ShowModal		=	ShowModal_CBackupDlg;
	this.SetBackupName	= 	SetBackupName_CBackupDlg;
	this.CloseBackup	=	CloseBackup_CBackupDlg;
};

function SetBackupName_CBackupDlg( tm)
{


	var s = "c:\\Storage";

	if ( this.m_mode == MODE_BACKUP)
	{
		s += "\\Backup";
	}
	if ( this.m_mode == MODE_CAPTURE)
	{
		var iCam = document.WebVw.GetSelectedCamera();
		s += "\\Capture";
		s += "\\[CH";
		s += (iCam);
		s += "]" + Number(tm.getYear()) + "-";
		var mon =  Number(tm.getMonth()) + 1;
		if ( mon < 10)
			s += "0";
		s += mon;
		var dt = tm.getDate();
		if ( dt < 10)
			s += "0";
		s += dt + "-" ;
		var hr = tm.getHours();
		if ( hr < 10)
			s += "0";
		s += hr;
		var mn = tm.getMinutes();
		if ( mn < 10)
			s += "0";
		 s += mn;
		var sc = tm.getSeconds();
		if ( sc < 10)
			s += "0";
		 s += sc;
		 s += ".bmp";
	}
	
	return s;
}

function OnInitDialog_CBackupDlg(win)
{
with(this)
{
	m_win = win;
	dwDate = m_Time;
	if ( m_Time == 0)
	{
		var dt = new Date();
		dwDate =  Math.floor(dt.getTime() / 1000);
		delete dt;
	}

	var tm = new Date(dwDate*1000);
	var s_file = SetBackupName( tm);
	m_win.document.backup.file.value = s_file;
	m_bProgress = false;

	var pStart = m_win.PickerStart;
	var pStop = m_win.PickerStop;

	pStart.Hour 		= tm.getHours();
	pStart.Minute		= tm.getMinutes();
	pStart.Second		= 0;//tm.getSeconds();

	pStop.Hour 		= tm.getHours();
	pStop.Minute 	= pStart.Minute + 1;
	pStop.Second 	= 0;//tm.getSeconds();

	pStart.Set();
	pStop.Set();
	delete tm; //hjyang

	var iCam = document.WebVw.GetSelectedCamera( );
	m_win.document.all['ComboChnl'].selectedIndex = iCam-1;
	
	if ( m_mode == MODE_CAPTURE)
	{
		m_win.document.all['filter'].style.visibility = "hidden";
		m_win.document.all['progress'].style.visibility = "hidden";
	}
	else
	{
	// hjyang
	//	m_win.document.backup.ComboChnl.disabled =	true;
		m_win.document.backup.file.disabled 	=	true;
	}
}
	return 0;
}


function OnCapture_CBackupDlg()
{
with(this)
{
	var fm = m_win.document.backup;
	var  szPath = fm.file.value;
	var iCam = m_win.document.backup.ComboChnl.value;
	document.WebVw.SelectCamera(Number(iCam));

	var res = document.WebVw.CaptureToFile( szPath);
	m_win.close();
	
	if (res!=0)
		alert("Capture error");
}
}

function OnOK_CBackupDlg()
{
with(this)
{
	var fm = m_win.document.backup;
	var  szPath = fm.file.value;
	var iCam = m_win.document.backup.ComboChnl.value;
	document.WebVw.SelectCamera(Number(iCam));

	m_bProgress = true;

	m_win.PickerStart.Disabled(m_bProgress);
	m_win.PickerStop.Disabled(m_bProgress);

	fm.file.disabled							=	m_bProgress;
	fm.ComboChnl.disabled						=	m_bProgress;
	fm.Start.disabled							=	m_bProgress;

	var pStart = m_win.PickerStart;
	var pStop = m_win.PickerStop;

	pStart.Get();
	pStop.Get();

	var t = RV_DateRound( dwDate*1000) - (m_UTC * 60);
	
	m_lStart 	= Number(t) + Number(pStart.Hour)*3600 + Number(pStart.Minute)*60 + Number(pStart.Second);
	m_lStop 	= Number(t) + Number(pStop.Hour)*3600 + Number(pStop.Minute)*60 + Number(pStop.Second);

	if ( m_lStop <= m_lStart)
	{
		alert("Error time interval");
		return;
	}
//	alert(m_lStart + "   " + m_lStop);

	try{
		var res = document.WebVw.BackupToAvi( m_lStart, m_lStop, szPath);
	}catch(e){
		return;
	}
	if ( res != 0)
		alert("Backup error");
}
	return 0;

}

function OnBackupState_CBackupDlg( nPercent)
{
with(this)
{
	m_nPercent = nPercent;
	if (nPercent == 1000 || nPercent == -1)
	{
		if ( m_win.m_ProgrBar)
		{
			m_win.m_ProgrBar.Clear();
			OnCancel();
		}
		return;
	}
	var nPos = Number(nPercent);
	if ( m_win.m_ProgrBar)
		m_win.m_ProgrBar.SetPos(nPos);
	
	if ( nPercent == 100)
		OnCancel();
}
	return 0;
}

function OnCancel_CBackupDlg()
{
with(this)
{
	switch (m_mode)
	{
	case MODE_CAPTURE:
		m_win.close();
		break;
	case MODE_BACKUP:
		var n = m_nPercent;
		m_win.close();
		if ( n == 1000)// || n == -1)
			alert("Backup error");
		else if ( n == 100)
			alert("Backup success");
		break;
	}
}
	return 0;
}

function OnBrowse_CBackupDlg()
{
	return 0;
}


function ShowModal_CBackupDlg( mode)
{
	var sFeatures=	"dialogHeight:"+320+"px;"+
					"dialogWidth:"+540+"px;"+
					"status:no;"+
					"help:no;";

	this.m_mode = mode;
	var  r = window.showModalDialog("backup.html", this, sFeatures);
}
function CloseBackup_CBackupDlg()
{
with (this)
{
	document.WebVw.CloseBackup();
}
}

