function initConfigMenuPage()
{
	var nCellSpacing = (g_IsMobile == 0) ? 5 : 3;
	var strHtml = '<table border=0 bordercolor="orange" cellSpacing='+nCellSpacing+' id="indextable">';
	for(i=1;i<14;i++)
	{
		if(g_IsMobile == 0 && i == 9)
		  continue;
		strHtml += '<tr><td height=25 width=100 id="menu'+i+'" onclick="LoadLayer('+i+')" class="menubar"></td></tr>';
	}
	strHtml += "</table>";
	config.innerHTML = strHtml;
}

var strMenu=new Array("DATE/TIME","CAMERA","RECORD","ALARM","MOTION","VIDEO LOSS","NETWORK 1","NETWORK 2","WIRELESS","SCHEDULE","CONTROL","WARNING","SYSTEM"); //mei
function initMenu()
{
	//var strMenu=new Array("DATE/TIME","CAMERA","RECORD","ALARM","MOTION","VidLOSS","NETWORK 1","NETWORK 2","WIRELESS","SCHEDULE","CONTROL","WARNING","SYSTEM"); //mei	
	//if(g_nPriority == 1) //admin
	if(g_nPriority == 2) //mei 20071016 
	{
		for(i=0; i<strMenu.length; i++)
		{
			if(g_IsMobile == 0 && i==8)
         continue;
			tmpStr="menu"+(i+1);
			document.getElementById(tmpStr).innerText = strMenu[i];
			document.getElementById(tmpStr).style.cursor = "hand"; //fix
		}
	}
	document.getElementById("menu1").style.color = g_clrMenuActive;
}
function addMonthList()
{
	var tmpAry = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
  for(i=0;i<tmpAry.length;i++)
		document.write('<Option value='+i+'>'+tmpAry[i]+'</option>');
}
function addWeekdayList()
{
	var tmpAry = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  for(i=0;i<tmpAry.length;i++)
		document.write('<Option value='+i+'>'+tmpAry[i]+'</option>');
}
function addBaudrateList()
{
	for(i=0;i<5;i++)
		document.write('<Option value='+i+'>'+2400*Math.pow(2,i)+'</option>');
	document.write('<Option value=5>57600</option>');
}
function addScheduleList()
{
	var tmpAry = new Array("Daily","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Weekday","Weekend");
  for(j=0;j<tmpAry.length;j++)
		document.write('<Option value='+j+'>'+tmpAry[j]+'</option>');
}
function addSensitivityList()
{
	for(i=0;i<10;i++)
	{
	  var op = new Option(i+1, i);
	  document.all.motionSensitivity.options[document.all.motionSensitivity.length] = op;
	}
}
function vInitCfgMotionChannel()
{
	for(i=0;i<nChannel;i++)
	{
	  var op = new Option(i+1, document.all.motionChannel.length);
	  document.all.motionChannel.options[document.all.motionChannel.length] = op;
	}
}
function vInitCfgCameraChannel()
{
	for(i=0;i<nChannel;i++)
	{
	  var op = new Option(i+1, i);
	  document.all.cameraChannel.options[document.all.cameraChannel.length] = op;
	}
}
function vInitCfgAlarmChannel()
{
	for(i=0;i<nChannel;i++)
	{
	  var op = new Option(i+1, document.all.alarmChannel.length);
	  document.all.alarmChannel.options[document.all.alarmChannel.length] = op;
	}
}
function vInitCfgAlarmActiveCamera()
{
	for(i=1;i<=nChannel;i++)
	{
	  var op = new Option(i, i);
	  document.all.alarmActiveCamera.options[document.all.alarmActiveCamera.length] = op;
	}
}
function vInitCfgVLossChannel()
{
	for(i=0;i<nChannel;i++)
	{
	  var op = new Option(i+1, document.all.vLossChannel.length);
	  document.all.vLossChannel.options[document.all.vLossChannel.length] = op;
	}
}
function vInitCfgPtzPreset()
{
	for(i=1;i<256;i++)
	{
	  var op = new Option(i, document.all.alarmPTZPreset.length);
	  document.all.alarmPTZPreset.options[document.all.alarmPTZPreset.length] = op;
	}
}

function vInitTimezone()
{
	var tzStr = new Array("-12:00", "-11:00", "-10:00", "-09:00", "-08:00", "-07:00", "-06:00", "-05:00", "-04:00", "-03:30", "-03:00", "-02:00", "-01:00", "",
	 "+01:00", "+02:00", "+03:00", "+03:30", "+04:00", "+04:30", "+05:00", "+05:30", "+05:45", "+06:00", "+06:30", "+07:00", "+08:00", "+09:00", "+09:30", "+10:00", "+11:00", "+12:00", "+13:00");
	for(i=0;i<tzStr.length;i++)
	{
		 var op = new Option("GMT"+tzStr[i], i);
		 document.all.selTimeZone.options[i] = op;
	}
}

function vInitCfgAlarmOut(nAlarmOut) //#93
{
	for(i=1;i<=nAlarmOut;i++)
	{
	  document.all.alarmOutput.options[i] = new Option(i, i)
	  document.all.motionAlarmOutput.options[i] = new Option(i, i)
	  document.all.vLossAlarm.options[i] = new Option(i, i)
	  document.all.waFanAlarm.options[i] = new Option(i, i)
	  document.all.waHDDTempAlarm.options[i] = new Option(i, i)
	  document.all.waNoHDDAlarm.options[i] = new Option(i, i)
	  document.all.waHDDFullAlarm.options[i] = new Option(i, i)
	  document.all.RelayOut.options[i] = new Option(i, i)
	}	
	
	//mei 20071016 
	var strAry=new Array("No Change", "Sequence", "Active Camera");
	document.all.alarmCallMonitor.length=0;
	document.all.alarmCallMonitor.options[0] = new Option(strAry[0], 0);
	document.all.motionCallMonitor.length=0; //20080129
	document.all.motionCallMonitor.options[0] = new Option(strAry[0], 0); //20080129
	if(nAlarmOut==1)
	{
		for(i=1; i<3; i++)
		{
			document.all.alarmCallMonitor.options[i] = new Option(strAry[i], i);
			document.all.motionCallMonitor.options[i] = new Option(strAry[i], i); //20080129
		}	
	}
	else //if(nAlarmOut==4)
	{
		for(i=0; i<nChannel; i++)
		{
			document.all.alarmCallMonitor.options[i+1] = new Option("CH"+(i+1), (i+1));
			document.all.motionCallMonitor.options[i+1] = new Option("CH"+(i+1), (i+1));//20080129
		}
	}		
}

function disableDaylightSavingUI(bDisable)
{
	disableTmCtrl("sTime",  bDisable);
	disableTmCtrl("stTime", bDisable);
	disableTmCtrl("eTime",  bDisable);
	disableTmCtrl("etTime", bDisable);
	StartWeek.disabled  = bDisable;
	StartDay.disabled   = bDisable;
	StartMonth.disabled = bDisable;
	EndWeek.disabled  = bDisable;
	EndDay.disabled   = bDisable;
	EndMonth.disabled = bDisable;
}

function disableTimeSyncUI(bDisable)
{
	DisableIP("ntpip", bDisable);
	selTimeZone.disabled  = bDisable;
	timeUpdateBy.disabled = bDisable;
}

function InitConfigMotionPage(nCH)
{
  page[3].visibility = (document.layers) ? "show" : "visible";
  ResizeVideo(0, 1);
  ERViewer.SetDispMode(0);
  ERViewer.SetChanCameraMap(0, nCH);
}

function ShowConfigAlart(strMsg)
{
	alert("Get " + strMsg + " info failed, please try again later!");
}

function resetRecordInfo()
{
	if(ERViewer.GetConfigRecordInfo() == false)
	  ShowConfigAlart("record");
	mfRecord.value = "0"; //mei  
}

function setRecordInfo()
{
	 var sAudio, sTimeStamp, sTimeStampPos, sWaterMark, sResolution, sRecMode, sRewriteProtect, sPreAlarm, sPreRecTime, sRelayOut;
   sAudio = recordAudio.checked ? 1 : 0;
   sTimeStamp = timeStamp.checked ? 1 : 0;
   sTimeStampPos = timeStampPos.value;
   sWaterMark = waterMark.checked ? 1 : 0;
   sResolution = Resolution.value; 
   sRecMode = RewriteRecord.checked ? 1 : 0;
   sRewriteProtect = GetIntValue("RewriteProtect");
   sPreAlarm = PreAlarmRecord.checked ? 1 : 0;
   sRelayOut = RelayOut.value;
   sPreRecTime = (preRecTime.style.visibility == "hidden") ? 3 : preRecTime.value;
   ERViewer.SetConfigRecordInfo(sAudio, sTimeStamp, sTimeStampPos, sWaterMark, sResolution, sRecMode, sRewriteProtect, sPreAlarm, sPreRecTime, sRelayOut);
	mfRecord.value = "0"; //mei  
}

function resetAlarmInfo(sID)
{
	if(ERViewer.GetAlarmInfo(sID) == false)
	  ShowConfigAlart("alarm");
	mfAlarm.value = "0";	//mei  	  
}

function setAlarmInfo(sID)
{
   var sEnable, sType, sLog, sActive, sPtzPreset, sDuration, sAlarmOut, sSendMail, sBuzzer, sNetwork, sMainMonitor, sCallManitor;
   sEnable      = alarmEnable.checked ? 1 : 0;
   sType        = alarmType.value;
   sLog         = alarmLogEnable.checked ? 1 : 0;
   sActive      = alarmActiveCamera.value;
   sPtzPreset   = alarmPTZPreset.value;
   sDuration    = GetDurValue("alarmDuration");
   sAlarmOut    = alarmOutput.value;// ? 1 : 0;
   sSendMail    = alarmEmail.checked ? 1 : 0;
   sBuzzer      = alarmBuzzer.checked ? 1 : 0;
   sNetwork     = alarmNetwork.checked ? 1 : 0;
   sMainMonitor = alarmMainMonitor.value;
   sCallManitor = alarmCallMonitor.value;
   ERViewer.SetAlarmInfo(sID, sEnable, sType, sLog, sActive, sPtzPreset, sDuration, sAlarmOut, sSendMail, sBuzzer, sNetwork, sMainMonitor, sCallManitor);
	mfAlarm.value = "0";	//mei     
}

function resetMotionInfo(nCh)
{
	ERViewer.SetChanCameraMap(0, nCh);
	if(ERViewer.GetMotionInfo(nCh) == false)
	  ShowConfigAlart("motion detect");
	mfMotion.value = "0";	//mei    
}

function setMotionInfo(nCh)
{
   var sEnable, sSensitivity, sLog, sDuration, sAlarmOut, sSendMail, sNetwork, sBuzzer, sDelay, sMainMonitor, sCallManitor;
   sEnable      = motionEnable.checked ? 1 : 0;
   sSensitivity = motionSensitivity.value;
   sLog         = motionLogEnable.checked  ? 1 : 0;
   sDuration    = GetIntValue("motionDuration");
   //sDuration    = GetDurValue("motionDuration"); //HK
   sAlarmOut    = motionAlarmOutput.value;// ? 1 : 0;
   sSendMail    = motionAlarmEmail.checked ? 1 : 0;
   sNetwork     = motionAlarmNetwork.checked ? 1 : 0;
   sBuzzer      = motionAlarmBuzzer.checked ? 1 : 0;
   sMainMonitor = motionMainMonitor.value;
   sCallManitor = motionCallMonitor.value;
   sDelay       = parseInt(GetIntValue("motionDelay"));
   //alert(sDelay); //mei
   ERViewer.SetMotionInfo(parseInt(nCh), sEnable, sSensitivity, sLog, sDuration, sAlarmOut, sSendMail, sNetwork, sBuzzer, sDelay, sMainMonitor, sCallManitor);
	mfMotion.value = "0";	//mei     
}

function resetVLossInfo(nCH)
{
	if(ERViewer.GetVLossInfo(nCH) == false)
	  ShowConfigAlart("video loss");
	mfVLoss.value = "0";	//mei     
}

function setVLossInfo(nCH)
{
   var sEnable, sLog, sDuration, sAlarm, sSendMail, sBuzzer, sNetwork;
   sEnable   = vLossEnable.checked ? 1 : 0;
   sLog      = vLossLog.checked ? 1 : 0;
   sDuration = GetDurValue("vLossDuration");
   sAlarm    = vLossAlarm.value;// ? 1 : 0;
   sSendMail = vLossEmail.checked ? 1 : 0;
   sBuzzer   = vLossBuzzer.checked ? 1 : 0;
   sNetwork  = vLossNetwork.checked ? 1 : 0;
   ERViewer.SetVLossInfo(nCH, sEnable, sLog, sDuration, sAlarm, sSendMail, sBuzzer, sNetwork);
	mfVLoss.value = "0";	//mei     
}

function resetControlInfo()
{
	if(ERViewer.GetControlInfo() == false)
	  ShowConfigAlart("control");
	mfControl.value = "0";	//mei     
}

function initControlInfo(sRS232BaudRate, sRS232StopBit, sRS232Parity, sRS232ByteSize, sRS485BaudRate, sRS485StopBit, sRS485Parity, sRS485ByteSize, sRS485ID, sPtzProtocol)
{
   rs232BaudRate.value = sRS232BaudRate;
   rs232StopBit.value  = sRS232StopBit;
   rs232Pariry.value   = sRS232Parity;
   rs232ByteSize.value = sRS232ByteSize;
   rs485BaudRate.value = sRS485BaudRate;
   rs485StopBit.value  = sRS485StopBit;
   rs485Pariry.value   = sRS485Parity;
   rs485ByteSize.value = sRS485ByteSize;
   SetIntValue("edRS485ID", sRS485ID);
   coPtzControl.value  = sPtzProtocol;
}

function setControlInfo()
{
   var sRS232BaudRate, sRS232StopBit, sRS232Parity, sRS232ByteSize, sRS485BaudRate, sRS485StopBit, sRS485Parity, sRS485ByteSize, sRS485ID, sPtzProtocol;
   sRS232BaudRate = rs232BaudRate.value;
   sRS232StopBit  = rs232StopBit.value;
   sRS232Parity   = rs232Pariry.value;
   sRS232ByteSize = rs232ByteSize.value;
   sRS485BaudRate = rs485BaudRate.value;
   sRS485StopBit  = rs485StopBit.value;
   sRS485Parity   = rs485Pariry.value;
   sRS485ByteSize = rs485ByteSize.value;
   sRS485ID       = GetIntValue("edRS485ID");
   sPtzProtocol   = coPtzControl.value;
   ERViewer.SetControlInfo(sRS232BaudRate, sRS232StopBit, sRS232Parity, sRS232ByteSize, sRS485BaudRate, sRS485StopBit, sRS485Parity, sRS485ByteSize, sRS485ID, sPtzProtocol);
	mfControl.value = "0";	//mei			  	
}

function setUserInfo()
{	
	if(checkInputType3("Account")==0 || 
 		checkInputType4("UserPWD")==0 )
 		return; //mei #94-96	
	
  var sUsername, sPassword, sLevel;
	for(i=0;i<6;i++)
	{
		sUsername = Account[i].value;
		sUsername = sUsername.toUpperCase(); //mei #94-96 
		sPassword = UserPWD[i].value;
		sLevel = userLevel[i].value;
    ERViewer.SetUserInfo(i, sUsername, sPassword, sLevel);
	}
	ERViewer.SetUserInfoAll();
	mfAuth.value = "0";	//mei		
}

function resetUserInfo()
{
	if(ERViewer.GetUserInfo() == false)
	  ShowConfigAlart("network authentication");
	mfAuth.value = "0";	//mei		
}

function initUserInfo(sID, strUID, strPWD, sLevel)
{
	Account[sID].value = strUID;
	UserPWD[sID].value = strPWD;
	userLevel[sID].value = sLevel;
}

function setScheduleInfo()
{
  var sTimeUnit, sStartHour, sStartMin, sEndHour, sEndMin, sSet;
  var sID;
	for(i=0;i<8;i++)
	{
		sID = i+1;
		sTimeUnit = schDay[i].value;
    sStartHour = GetTmHour("fSch"+sID);
    sStartMin = GetTmMinute("fSch"+sID);
    sEndHour = GetTmHour("tSch"+sID);
    sEndMin = GetTmMinute("tSch"+sID);
    sSet = Enable_Schedule[i].checked ? 1 : 0;
    ERViewer.SetScheduleInfo(i, sTimeUnit, sStartHour, sStartMin, sEndHour, sEndMin, sSet);
	}
	ERViewer.SetScheduleInfoAll();
	mfSchedule.value = "0";	//mei			  	
}

function resetScheduleInfo()
{
	if(ERViewer.GetScheduleInfoAll() == false)
	  ShowConfigAlart("schedule");
	mfSchedule.value = "0";	//mei			  	
}

function initScheduleItem(sCH, sTimeUnit, sStartHour, sStartMin, sEndHour, sEndMin, sSet)
{
	 var sID = sCH;
	 sID++;
	 schDay[sCH].value = sTimeUnit;
	 SetTmTText("fSch"+sID, sStartHour, sStartMin, 0);
	 SetTmTText("tSch"+sID, sEndHour, sEndMin, 0);
	 Enable_Schedule[sCH].checked = sSet;
}

function setDateTimeInfo()
{
   var sTimeFormat, sDateFormat;
   sTimeFormat = timetype[0].checked ? 0 : 1;
   sDateFormat = selDateFormat.value;
   ERViewer.SetDateTimeInfo(sTimeFormat, sDateFormat);
   mfTimeInfo.value = "0";
}

function resetDateTimeInfo()
{
	if(ERViewer.GetDateTimeInfo() == false)
	  ShowConfigAlart("date time");
	mfTimeInfo.value = "0"; //mei 	  
}

function initDateTimeInfo(sTimeFormat, sDateFormat)
{
	 timetype[0].checked = (sTimeFormat == 0) ? 1 : 0;
 	 timetype[1].checked = (sTimeFormat == 1) ? 1 : 0;
 	 selDateFormat.value = sDateFormat;
 	 g_DateFormat = sDateFormat;
   updateTmFmt(sTimeFormat);
}

function setDaylightSavingInfo()
{
   var sEnable, sStartMonth, sStartWeekNo, sStartWeekday, sStartFromHour, sStartFromMin, sStartToHour, sStartToMin, sEndMonth, sEndWeekNo, sEndWeekday, sEndFromHour, sEndFromMin, sEndToHour, sEndToMin;
   sEnable	      = daylightsaving.checked ? 1 : 0;
   sStartWeekNo	  = StartWeek.value;
   sStartWeekday	= StartDay.value;
   sStartMonth	  = StartMonth.value;
   sStartFromHour = GetTmHour("sTime");
   sStartFromMin	= GetTmMinute("sTime");
   sStartToHour   = GetTmHour("stTime");
   sStartToMin	  = GetTmMinute("stTime");
   sEndWeekNo	    = EndWeek.value;
   sEndWeekday	  = EndDay.value;
   sEndMonth	    = EndMonth.value;
   sEndFromHour   = GetTmHour("eTime");
   sEndFromMin	  = GetTmMinute("eTime");
   sEndToHour     = GetTmHour("etTime");
   sEndToMin	    = GetTmMinute("etTime");
   ERViewer.SetDaylightSavingInfo(sEnable, sStartMonth, sStartWeekNo, sStartWeekday, sStartFromHour, sStartFromMin, sStartToHour, sStartToMin, sEndMonth, sEndWeekNo, sEndWeekday, sEndFromHour, sEndFromMin, sEndToHour, sEndToMin);
   mfDLS.value = "0";
}

function resetDaylightSavingInfo()
{
	if(ERViewer.GetDaylightSavingInfo() == false)
	  ShowConfigAlart("date light saving");
	mfDLS.value = "0"; //mei	  
}

function initDaylightSavingInfo(sEnable, sStartMonth, sStartWeekNo, sStartWeekday, sStartFromHour, sStartFromMin, sStartToHour, sStartToMin, sEndMonth, sEndWeekNo, sEndWeekday, sEndFromHour, sEndFromMin, sEndToHour, sEndToMin)
{
	 daylightsaving.checked = sEnable;
   StartWeek.value = sStartWeekNo;
   StartDay.value = sStartWeekday;
   StartMonth.value = sStartMonth;
   SetTmTText("sTime", sStartFromHour, sStartFromMin, 0);
   SetTmTText("stTime", sStartToHour, sStartToMin, 0);
   EndWeek.value  = sEndWeekNo;
   EndDay.value   = sEndWeekday;
   EndMonth.value = sEndMonth;
   SetTmTText("eTime", sEndFromHour, sEndFromMin, 0);
   SetTmTText("etTime", sEndToHour, sEndToMin, 0);
   disableDaylightSavingUI(!sEnable);
}

function setNTPInfo()
{
   var sEnable, sServerIP, sTimezone, sUpdateFreq;
   sEnable = timesync.checked ? 1 : 0;
   sServerIP  = GetIpStr("ntpip");
   sTimezone  = selTimeZone.value;
   sUpdateFreq = timeUpdateBy.value;
   ERViewer.SetNTPInfo(sEnable, sServerIP, sTimezone, sUpdateFreq);
   mfNTP.value = "0";
}

function resetNTPInfo()
{
	if(ERViewer.GetNTPInfo() == false)
	  ShowConfigAlart("NTP");
   mfNTP.value = "0"; //mei
}

function initNTPInfo(sEnable, sServerIP, sTimezone, sUpdateFreq)
{
	 timesync.checked = sEnable;
	 SetIpStr("ntpip", sServerIP);
	 selTimeZone.value = sTimezone;
	 timeUpdateBy.value = sUpdateFreq;
	 disableTimeSyncUI(!sEnable);
}

function initGPSInfo(sEnable, sProtocol, nPort, strUniqueID, strServer, sFrequence, sOsdDisp, sSpeedUnit)
{
	GPSEnable.checked = sEnable;
	GPSProtocol.value = sProtocol;
	SetIntValue("GPSPortNo", nPort);
	GPSUniqueID.value = strUniqueID;
  SetIpStr("GPSIP", strServer);
	SetIntValue("GPSFreq", sFrequence);
	GPSOSD.checked = sOsdDisp;
	GPSUnit.value = sSpeedUnit;
}

function setDDNSInfo()
{
 	if(checkInputType2("ddnsUID")==0 || 
 		checkInputType2("ddnsPWD")==0 ||
 		checkInputType2("ddnsFQDN")==0 || 		
 		checkInputType5("ddnsRecordID")==0)
 		return; //mei #94-96	
	
	var sDDNSISP, strUID, strPWD, strRecordID, strFQDN;
	sDDNSISP = ddnsISP.value;
	strUID = ddnsUID.value;
	strPWD = ddnsPWD.value;
	strRecordID = ddnsRecordID.value;
	if(sDDNSISP == 2)
		strFQDN = ddnsDVR.value;
	else
		strFQDN = ddnsFQDN.value;
	ERViewer.SetDDNSInfo(sDDNSISP, strUID, strPWD, strRecordID, strFQDN);
	mfDDNS.value = "0";	//mei		
}

function initDDNSInfo(sDDNSISP, strUID, strPWD, strRecordID, strFQDN)
{
	ddnsISP.value = sDDNSISP;
	ddnsUID.value = strUID;
	ddnsPWD.value = strPWD;
	ddnsRecordID.value = strRecordID;
	ddnsFQDN.value = strFQDN;
	ddnsDVR.value = strFQDN;
	OnChangeDDNSServer(sDDNSISP);
}

function setPPPOEInfo()
{
 	if(checkInputType2("pppoeUID")==0 || 
 		checkInputType2("pppoePWD")==0)
 		return; //mei #94-96
 			
   var strUID, strPWD, strDDNS1, strDDNS2;
   strUID = pppoeUID.value;
   strPWD = pppoePWD.value;
   strDDNS1 = GetIpStr("ipcPPPOEDNS1");
   strDDNS2 = GetIpStr("ipcPPPOEDNS2");
   ERViewer.SetPPPOEInfo(strUID, strPWD, strDDNS1, strDDNS2);
	mfPPPOE.value = "0";	//mei        		
}

function resetPPPOEInfo()
{
	if(ERViewer.GetPPPOEInfo() == false)
	  ShowConfigAlart("network PPPOE");
	mfPPPOE.value = "0";	//mei        		
}

function initPPPOEInfo(strUID, strPWD, strDDNS1, strDDNS2)
{
   pppoeUID.value = strUID;
   pppoePWD.value = strPWD;
   SetIpStr("ipcPPPOEDNS1", strDDNS1);
   SetIpStr("ipcPPPOEDNS2", strDDNS2);
}

function setSMTPInfo()
{
 	if(checkInputType2("smtpSERVER")==0 || 
 		checkInputType2("smtpUID")==0 ||
 		checkInputType2("smtpPWD")==0 ||
 		checkInputType2("smtpRECV")==0 ||
 		checkInputType2("smtpSEND")==0)
 		return; //mei #94-96
	
	var strSMTP, nPort, sAuth, strUID, strPWD, strRecv, strSend;
	strSMTP = smtpSERVER.value;
	nPort   = GetIntValue("smtpPORT");
	sAuth   = smtpAUTH.checked ? 1 : 0;
	strUID  = smtpUID.value;
	strPWD  = smtpPWD.value;
	strRecv = smtpRECV.value;
	strSend = smtpSEND.value;
	ERViewer.SetSMTPInfo(strSMTP, nPort, sAuth, strUID, strPWD, strSend, strRecv); //mei
	mfSMTP.value = "0";	//mei        	
}

function resetSMTPInfo()
{
	if(ERViewer.GetSMTPInfo() == false)
	  ShowConfigAlart("network SMPT");
	mfSMTP.value = "0";	//mei        		  
}

function initSMTPInfo(strSMTP, nPort, sAuth, strUID, strPWD, strRecv, strSend)
{
	smtpSERVER.value = strSMTP;
	SetIntValue("smtpPORT", nPort);
	smtpAUTH.checked = sAuth;
	smtpUID.value    = strUID;
	smtpPWD.value    = strPWD;
	smtpRECV.value   = strRecv;
	smtpSEND.value   = strSend;
}

function setNetworkAlarmInfo()
{
 	if(checkInputType2("UniqueID")==0)
 		return; //mei #94-96	
	
	var sProtocol, sPort, strUniqudID, strIP1, strIP2, strIP3;
	sProtocol = NeAlProtocol.value;
	sPort  = GetIntValue("NeAlPortNo");
	strUniqudID = UniqueID.value;
	strIP1 = GetIpStr("ipcIp0");
	strIP2 = GetIpStr("ipcIp1");
	strIP3 = GetIpStr("ipcIp2");
	ERViewer.SetAlarmServerInfo(sProtocol, sPort, strUniqudID, strIP1, strIP2, strIP3);
	mfAlarmServer.value = "0";	//mei	
}

function resetNetworkAlarmInfo()
{
	if(ERViewer.GetAlarmServerInfo() == false)
	  ShowConfigAlart("network alarm");
	mfAlarmServer.value = "0";	//mei		  
}

function initNetworkAlarmInfo(sProtocol, nPort, strUniqudID, strIP1, strIP2, strIP3)
{
	NeAlProtocol.value = sProtocol;
	SetIntValue("NeAlPortNo", nPort);
	UniqueID.value = strUniqudID;
	SetIpStr("ipcIp0", strIP1);
	SetIpStr("ipcIp1", strIP2);
	SetIpStr("ipcIp2", strIP3);
}

function setNetworkInfo()
{
	var sIPType, strIP, strMask, strGate, strDNS, sMulticast, strMulticastIP, sMulticastPort, sHttpPort, sCtrlPort, sDataPort, sBandwidth, sRemoteCtrl;
	sIPType = NeIPType.value;
	strIP   = GetIpStr("ipcNetIp");
	strMask = GetIpStr("ipcNetmask");
	strGate = GetIpStr("ipcGateway");
	strDNS  = GetIpStr("ipcNetDNS");
//	sMulticast = isMulticast.checked ? 1 : 0;
//	strMulticastIP = GetIpStr("ipcMultiIp");
//	sMulticastPort = GetIntValue("MulticatPort");
	sHttpPort  = GetIntValue("httpPort");
	sCtrlPort  = GetIntValue("ctrlPort");
	sDataPort  = GetIntValue("dataPort");
	sBandWidth = GetIntValue("bandwidth");
	sRemoteCtrl = remoteControl.checked ? 1 : 0;
	ERViewer.SetNetworkInfo(sIPType, strIP, strMask, strGate, strDNS, sMulticast, strMulticastIP, sMulticastPort, sHttpPort, sCtrlPort, sDataPort, sBandwidth, sRemoteCtrl);
}

function resetNetworkInfo()
{
	if(ERViewer.GetNetworkInfo() == false)
	  ShowConfigAlart("network");
}

function initNetworkInfo(sIPType, lpsIP, lpsNetMask, lpsGateway, lpsDNS, sMulticast, lpsMulticastIP, sMulticastPort, sHttpPort, sCtrlPort, sDataPort, sBandWidth, sRemoteCtrl)
{
	NeIPType.value = sIPType;
	SetIpStr("ipcNetIp", lpsIP);
	SetIpStr("ipcNetmask", lpsNetMask);
	SetIpStr("ipcGateway", lpsGateway);
	SetIpStr("ipcNetDNS", lpsDNS);
//	isMulticast.checked  = sMulticast;
//	SetIpStr("ipcMultiIp", lpsMulticastIP);
//	SetIntValue("MulticatPort", sMulticastPort);
//	disableMulticast(!sMulticast);
	SetIntValue("httpPort", sHttpPort);
	SetIntValue("ctrlPort", sCtrlPort);
	SetIntValue("dataPort", sDataPort);
	SetIntValue("bandwidth", sBandWidth);
	disableIntCtrl("httpPort", true);
	disableIntCtrl("ctrlPort", true);
	disableIntCtrl("dataPort", true);
	disableIntCtrl("bandwidth", true);
	chgIPType(sIPType);
	remoteControl.checked = sRemoteCtrl;
}

function resetDDNSInfo()
{
	if(ERViewer.GetDDNSInfo() == false)
	  ShowConfigAlart("network DDNS");
	mfDDNS.value = "0";	//mei
}

function resetGPSInfo()
{
	if(ERViewer.GetNetworkGPSInfo() == false)
	  ShowConfigAlart("network GPS");
	mfGPSServer.value = "0";	//mei			  	
}

function resetWirelessInfo()
{
	if(ERViewer.GetWirelessInfo() == false)
	  ShowConfigAlart("wireless");
	mfWireless.value = "0";	//mei			  
}

function initWirelessInfo(sEnable, strIP, strNetmask, strGateway, strDNS, sMode, sAuth, strEssid, strKey, sNetworkType)
{
	dhcpEnable.checked = sEnable;
	SetIpStr("wirelessNetIp", strIP);
	SetIpStr("wirelessNetmask", strNetmask);
	SetIpStr("wirelessGateway", strGateway);
	SetIpStr("wirelessDNS", strDNS);
	wirelessAuth.value = sAuth;
	wirelessAPEssid.value = strEssid;
  wirelessKey.value = strKey;
	wirelessType.value = sNetworkType;
	disableWirelessIP(sEnable);
}

function setWirelessInfo()
{
	if(checkInputType2("wirelessAPEssid")==0 ||
		checkInputType2("wirelessKey")==0 )
 		return; //mei #94-96		
	
	var sEnable, strIP, strNetmask, strGateway, strDNS, sMode, sAuth, strEssid, strKey, sNetworkType;
	sEnable = dhcpEnable.checked ? 1 : 0;
	strIP = GetIpStr("wirelessNetIp");
	strNetmask = GetIpStr("wirelessNetmask");
	strGateway = GetIpStr("wirelessGateway");
	strDNS = GetIpStr("wirelessDNS");
	sAuth = wirelessAuth.value;
	strEssid = wirelessAPEssid.value;
  strKey = wirelessKey.value;
	sNetworkType = wirelessType.value;
	ERViewer.SetWirelessInfo(sEnable, strIP, strNetmask, strGateway, strDNS, sMode, sAuth, strEssid, strKey, sNetworkType);
	mfWireless.value = "0";	//mei			  
}

function setGPSInfo()
{
	if(checkInputType2("GPSUniqueID")==0)
 		return; //mei #94-96		
	
	var sEnable, sProtocol, nPort, strUniqueID, strServer, sFrequence, sOsdDisp, sSpeedUnit;
	sEnable = GPSEnable.checked ? 1 : 0;
	sProtocol = GPSProtocol.value;
	nPort = GetIntValue("GPSPortNo");
	strUniqueID = GPSUniqueID.value;
  strServer = GetIpStr("GPSIP");
	sFrequence = GetIntValue("GPSFreq");
	sOsdDisp = GPSOSD.checked ? 1 : 0;
	sSpeedUnit = GPSUnit.value;
	ERViewer.SetNetworkGPSInfo(sEnable, sProtocol, nPort, strUniqueID, strServer, sFrequence, sOsdDisp, sSpeedUnit);
	mfGPSServer.value = "0";	//mei			  	
}

function setWarningFanFaultInfo()
{
   var sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail;
   sBuzzer	 = waFanBuzzer.checked ? 1 : 0;
   sAlarmOut = waFanAlarm.value;// ? 1 : 0;
   sDuration = 100;
   sNetwork	 = waFanNetworkAlarm.checked ? 1 : 0;
   sSendMail = waFanSendMail.checked ? 1 : 0;
   ERViewer.SetFanFaultInfo(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail);
	mfWarningFanFault.value = "0";	//mei			  	
}

function resetWarningFanFaultInfo()
{
	if(ERViewer.GetFanFaultInfo() == false)
	  ShowConfigAlart("warning fan fault");
	mfWarningFanFault.value = "0";	//mei			  	
}

function setWarningHDDTempInfo()
{
   var sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail, sStopRecord, nHDDTemp;
   sBuzzer	   = waHDDTempBuzzer.checked ? 1 : 0;
   sAlarmOut   = waHDDTempAlarm.value;// ? 1 : 0;
   sDuration   = 100;
   sNetwork	   = waHDDTempNetworkAlarm.checked ? 1 : 0;
   sSendMail   = waHDDTempSendMail.checked ? 1 : 0;
   sStopRecord = waHDDTempStopRec.checked ? 1 : 0;
   nHDDTemp    = GetTemperature("waHDDTemperatureC");//waHDDTemperatureC.value
   ERViewer.SetHDDTempInfo(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail, sStopRecord, nHDDTemp);
	mfWarningHDDTemp.value = "0";	//mei			  	
} 

function resetWarningHDDTempInfo()
{
	if(ERViewer.GetHDDTempInfo() == false)
	  ShowConfigAlart("warning hard disk temperature");
	mfWarningHDDTemp.value = "0";	//mei			  	
}

function setWarningNoHDDInfo()
{
   var sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail;
   sBuzzer	 = waNoHDDBuzzer.checked ? 1 : 0;
   sAlarmOut = waNoHDDAlarm.value;// ? 1 : 0;
   sDuration = GetDurValue("waNoHDDDuration");
   sNetwork	 = waNoHDDNetworkAlarm.checked ? 1 : 0;
   sSendMail = waNoHDDSendMail.checked ? 1 : 0;
   ERViewer.SetNoHDDInfo(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail);
	mfWarningNoHDD.value = "0";	//mei			  	
}

function resetWarningNoHDDInfo()
{
	if(ERViewer.GetNoHDDInfo() == false)
	  ShowConfigAlart("warning no hard disk");
	mfWarningNoHDD.value = "0";	//mei			  	
}

function setWarningHDDFullInfo()
{
   var sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail;
   sBuzzer	 = waHDDFullBuzzer.checked ? 1 : 0;
   sAlarmOut = waHDDFullAlarm.value;// ? 1 : 0;
   sDuration = GetDurValue("waHDDFullDuration");
   sNetwork	 = waHDDFullNetworkAlarm.checked ? 1 : 0;
   sSendMail = waHDDFullSendMail.checked ? 1 : 0;
   ERViewer.SetHDDFullInfo(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail);
	mfWarningHDDFull.value = "0";	//mei			  	
}

function resetWarningHDDFullInfo()
{
	if(ERViewer.GetHDDFullInfo() == false)
	  ShowConfigAlart("warning hard disk full");
	mfWarningHDDFull.value = "0";	//mei			  	
}

function initWarningFanFault(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail)
{ 
	 waFanBuzzer.checked = sBuzzer;
   waFanAlarm.value = sAlarmOut;
   waFanNetworkAlarm.checked = sNetwork;
   waFanSendMail.checked = sSendMail;
}

function initWarningHDDTemp(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail, sStopRecord, nHDDTemp)
{ 
   waHDDTempBuzzer.checked = sBuzzer;
   waHDDTempAlarm.value = sAlarmOut;
   waHDDTempNetworkAlarm.checked = sNetwork;
   waHDDTempSendMail.checked = sSendMail;
   waHDDTempStopRec.checked = sStopRecord;
	 SetTemperature("waHDDTemperatureC", nHDDTemp);
}

function initWarningNoHDD(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail)
{ 
   waNoHDDBuzzer.checked = sBuzzer;
   waNoHDDAlarm.value = sAlarmOut;
   SetDurValue("waNoHDDDuration", sDuration);
   waNoHDDNetworkAlarm.checked = sNetwork;
   waNoHDDSendMail.checked = sSendMail;
}

function initWarningHDDFull(sBuzzer, sAlarmOut, sDuration, sNetwork, sSendMail)
{ 
   waHDDFullBuzzer.checked = sBuzzer;
   waHDDFullAlarm.value = sAlarmOut;
   SetDurValue("waHDDFullDuration", sDuration);
   waHDDFullNetworkAlarm.checked = sNetwork;
   waHDDFullSendMail.checked = sSendMail;
}

function initRecordInfo(sAudio, sTimeStamp, sTimeStampPos, sWaterMark, sResolution, sRecMode, sRewriteProtect, sPreAlarm, sPreRecTime, sRelayOut)
{
   recordAudio.checked = sAudio;
   timeStamp.checked   = sTimeStamp;
   timeStampPos.value  = sTimeStampPos;
   waterMark.checked   = sWaterMark;
   Resolution.value    = sResolution;
   RewriteRecord.checked  = sRecMode;
   SetIntValue("RewriteProtect", sRewriteProtect);
   PreAlarmRecord.checked = sPreAlarm;
   preRecTime.value = sPreRecTime;
   RelayOut.value=sRelayOut;
   
}

function initAlarmInfo(sEnable, sType, sLog, sActive, sPtzPreset, sDuration, sAlarmOut, sSendMail, sBuzzer, sNetwork, sMainMonitor, sCallManitor)
{
   alarmEnable.checked     = sEnable;
   alarmType.value         = sType;
   alarmLogEnable.checked  = sLog;
   alarmActiveCamera.value = sActive;
   alarmPTZPreset.value    = sPtzPreset;
   SetDurValue("alarmDuration", sDuration);
   alarmOutput.value       = sAlarmOut;
   alarmEmail.checked      = sSendMail;
   alarmBuzzer.checked     = sBuzzer;
   alarmNetwork.checked    = sNetwork;
   alarmMainMonitor.value  = sMainMonitor;
   alarmCallMonitor.value  = sCallManitor;
}

function initMotionInfo(sEnable, sSensitivity, sLog, sDuration, sAlarmOut, sSendMail, sNetwork, sBuzzer, sDelay, sMainMonitor, sCallManitor)
{
   motionEnable.checked       = sEnable;
   motionSensitivity.value    = sSensitivity;
   motionLogEnable.checked    = sLog;
   SetIntValue("motionDuration", sDuration);
   //SetDurValue("motionDuration", sDuration); //HK
   motionAlarmOutput.value    = sAlarmOut;
   motionAlarmEmail.checked   = sSendMail;
   motionAlarmNetwork.checked = sNetwork;
   motionAlarmBuzzer.checked  = sBuzzer;
   motionMainMonitor.value    = sMainMonitor;
   motionCallMonitor.value    = sCallManitor;
   SetIntValue("motionDelay", sDelay);
   motionGrid();
}

function initVLossInfo(sEnable, sLog, sDuration, sAlarm, sSendMail, sBuzzer, sNetwork)
{
   vLossEnable.checked  = sEnable;
   vLossLog.checked     = sLog;
   SetDurValue("vLossDuration", sDuration);
   vLossAlarm.value     = sAlarm;
   vLossEmail.checked   = sSendMail;
   vLossBuzzer.checked  = sBuzzer;
   vLossNetwork.checked = sNetwork;
}

function ShowSysTime(ctrlName, dtSys)
{
	var strDate, strTime;
	var nMonth = ddigit(dtSys.getUTCMonth()+1);
	if(g_DateFormat == 0)
	  strDate = dtSys.getUTCFullYear() + "/" + nMonth + "/" + ddigit(dtSys.getUTCDate());
	else if(g_DateFormat == 1)
	  strDate = nMonth + "/" + ddigit(dtSys.getUTCDate()) + "/" + dtSys.getUTCFullYear();
	else
	  strDate = ddigit(dtSys.getUTCDate()) + "/" + nMonth + "/" + dtSys.getUTCFullYear();
	if(gTmFmtTmp == 0) // 24H
	  strTime = ddigit(dtSys.getUTCHours()) + ":" + ddigit(dtSys.getUTCMinutes()) + ":" + ddigit(dtSys.getUTCSeconds());
	else
	{
		var strAmPm = gStrAm[0];
		nHour = dtSys.getUTCHours();
		if(nHour == 0)
	  	nHour = 12;
		else if(nHour >= 12)
		{
			if(nHour != 12)
		  	nHour -= 12;
			strAmPm = gStrAm[1];
		}
	  strTime = ddigit(nHour) + ":" + ddigit(dtSys.getUTCMinutes()) + ":" + ddigit(dtSys.getUTCSeconds()) + strAmPm;
	}
	ctrlName.value = strDate + " " + strTime;
}

function disableMulticast(bDisable)
{
	//DisableIP("ipcMultiIp", bDisable);
	//disableIntCtrl("MulticatPort", bDisable);
}

function disableWirelessIP(bDisable)
{
	DisableIP("wirelessNetIp", bDisable);
	DisableIP("wirelessNetmask", bDisable);
	DisableIP("wirelessGateway", bDisable);
	DisableIP("wirelessDNS", bDisable);
}

function checkModified(nPage) //mei
{
	var nSubmenu=0;
	var strTail=" Info had been modified, save it or not?";
	var strWarn=strMenu[nPage-1]+strTail;
  switch(nPage)
  {
   	case 1: //Date Time Page   		
   	  //status=mfTimeInfo.value+"*"+mfDLS.value+"*"+mfNTP.value+"*"+mfSysTime.value;	  
   	  if(mfTimeInfo.value == "1") nSubmenu=1;
   	  else if(mfDLS.value == "1") nSubmenu=2;
   	  else if(mfNTP.value == "1") nSubmenu=3;
   	  else if(mfSysTime.value == "1") nSubmenu=4;   	  	   	  
   	  if(nSubmenu>0)	
   	  //if(mfTimeInfo.value == "1" ||mfDLS.value == "1" || mfNTP.value == "1" || mfSysTime.value == "1")   	     	  
   	  { 
   	  	var strSubMenu=new Array("Date/Time","Daylight saving","Time Synchronize","Manual Time");  	  	   	  	
   	  	strWarn=strSubMenu[nSubmenu-1]+strTail;
   	  	if(confirm(strWarn))   	  	
   	  	{
   	  		if(mfTimeInfo.value == "1")
   	  			setDateTimeInfo();
   	  		if(mfDLS.value == "1")
   	  		   setDaylightSavingInfo();
   	  		if(mfNTP.value == "1")
   	  		   setNTPInfo();
   	  		if(mfSysTime.value == "1")
   	  		   SetDatTimeManually();
   	  	}
   	  }
   	  break;
   	case 2: //Camera Page
   		//vbInitConfigCameraPage(cameraChannel.value);
 	  	if(mfCamera.value == "1")
   	  {
   	  	if(confirm(strWarn))
				{
   	  		setCameraInfo(cameraChannel.value);
   	  	}
   	  }   		
   	  break;
   	case 3: //Record Page
   	  //vbInitConfigRecordPage();
 	  	if(mfRecord.value == "1")
   	  {
   	  	if(confirm(strWarn))
   	  	{
   	  		setRecordInfo();   	  		
   	  	}
   	  }   		
   	  break;
   	case 4: //Alarm Page
   		//vbInitConfigAlarmPage(alarmChannel.value);
 	  	if(mfAlarm.value == "1")
   	  {
   	  	if(confirm(strWarn))
   	  	{
   	  		setAlarmInfo(alarmChannel.value); 	  		
   	  	}
   	  }   
   	  break;
   	case 5: //Motion Page
   		//InitConfigMotionPage(motionChannel.value);
   		//vbInitConfigMotionPage(motionChannel.value);
 	  	if(mfMotion.value == "1")
   	  {
   	  	if(confirm(strWarn))
   	  	{
   	  		setMotionInfo(motionChannel.value); 		
   	  	}
   	  }   
   	  break;
   	case 6: //VLoss Page
   		//vbInitConfigVLossPage(vLossChannel.value);
 	  	if(mfVLoss.value == "1")
   	  {
   	  	if(confirm(strWarn))
   	  	{
   	  		setVLossInfo(vLossChannel.value);		
   	  	}
   	  }   
   	  break;
   	case 7: //Network1 Page
   		//InitConfigNetworkPage();
   	  //status=mfSMTP.value+"*"+mfPPPOE.value;	     		
  	  if(mfSMTP.value == "1") nSubmenu=1;
   	  else if(mfPPPOE.value == "1") nSubmenu=2;
   	  if(nSubmenu>0)	   	  	
  	  //if(mfSMTP.value == "1" || mfPPPOE.value == "1" )
   	  {
   	  	var strSubMenu=new Array("SMTP","PPPoE");   	  	   	  	
   	  	strWarn=strSubMenu[nSubmenu-1]+strTail;
   	  	if(confirm(strWarn))   	  	
   	  	{
   	  		if(mfSMTP.value == "1")
   	  		   setSMTPInfo();
   	  		if(mfPPPOE.value == "1")
   	  		   setPPPOEInfo();
   	  	}
   	  }   	     		
   	  break;
   	case 8: //Network2 Page
   	  //InitConfigNetworkPage();
   	  //status=mfAlarmServer.value+"*"+mfAuth.value+"*"+mfDDNS.value;	     	  
   	  if(mfAlarmServer.value == "1") nSubmenu=1;
   	  else if(mfAuth.value == "1") nSubmenu=2;
   	  else if(mfDDNS.value == "1") nSubmenu=3;
   	  if(nSubmenu>0)	   	  	
   	  //if(mfAlarmServer.value == "1" || mfAuth.value == "1" || mfDDNS.value == "1")
  	  {
   	  	var strSubMenu=new Array("Alarm Network","Network Account","DDNS");   	  	
   	  	strWarn=strSubMenu[nSubmenu-1]+strTail;
   	  	if(confirm(strWarn))   	  	
   	  	{
   	  		if(mfAlarmServer.value == "1")
   	  		   setNetworkAlarmInfo();
   	  		if(mfAuth.value == "1")
   	  		   setUserInfo();
   	  		if(mfDDNS.value == "1")
   	  		   setDDNSInfo();
   	  	}
   	  }   	  
   	  break;
   	case 9:  //Wireless Page
   	  //InitConfigNetworkPage();
   	  //status=mfWireless.value+"*"+mfGPSServer.value;	     	  
    	if(mfWireless.value == "1") nSubmenu=1;
   	  else if(mfGPSServer.value == "1") nSubmenu=2;   	  	
   	  if(nSubmenu>0)	  	  
   	  //if(mfWireless.value == "1" || mfGPSServer.value == "1")
   	  {
   	  	var strSubMenu=new Array("Wireless","GPS");   	  	   	  	
   	  	strWarn=strSubMenu[nSubmenu-1]+strTail;
   	  	if(confirm(strWarn))   	  	
   	  	{
   	  		if(mfWireless.value == "1")
   	  		   setWirelessInfo();
   	  		if(mfGPSServer.value == "1")
   	  		   setGPSInfo();   	  		
   	  	}
   	  }   	     	  
   	  break;
   	case 10: //Schedule Page
   		//resetScheduleInfo();
 	  	if(mfSchedule.value == "1")
   	  {
   	  	if(confirm(strWarn))
   	  	{
   	  		setScheduleInfo(); 		
   	  	}
   	  }      		
   	  break;
   	case 11: //Control Page
   		//vbInitConfigControlPage();
 	  	if(mfControl.value == "1")
   	  {
   	  	if(confirm(strWarn))
   	  	{
   	  		setControlInfo(); 		
   	  	}
   	  }      		
   	  break;
   	case 12: //Warning Page
   		//InitConfigWarningPage();
   	  //status=mfWarningFanFault.value+"*"+mfWarningHDDTemp.value+"*"+mfWarningNoHDD.value+"*"+mfWarningHDDFull.value;	    		
   	  if(mfWarningFanFault.value == "1") nSubmenu=1;
   	  else if(mfWarningHDDTemp.value == "1") nSubmenu=2;
   	  else if(mfWarningNoHDD.value == "1") nSubmenu=3;   	  
   	  else if(mfWarningHDDFull.value == "1") nSubmenu=4;   	  	
   	  if(nSubmenu>0)   	  
   	  //if(mfWarningFanFault.value == "1" || mfWarningHDDTemp.value == "1" || mfWarningNoHDD.value == "1" || mfWarningHDDFull.value == "1")
   	  {
   	  	var strSubMenu=new Array("Fan Fault","HDD Temperature","No HDD","HDD Full");   	  	
   	  	strWarn=strSubMenu[nSubmenu-1]+strTail;
   	  	if(confirm(strWarn))   	  	
   	  	{
   	  		if(mfWarningFanFault.value == "1")
   	  		   setWarningFanFaultInfo();
   	  		if(mfWarningHDDTemp.value == "1")
   	  		   setWarningHDDTempInfo();
   	  		if(mfWarningNoHDD.value == "1")
   	  		   setWarningNoHDDInfo();
   	  		if(mfWarningHDDFull.value == "1")
   	  		   setWarningHDDFullInfo();   	  		      
   	  	}
   	  }   	     		
   	  break;
   	/*case 13: //System Page
   		//vbInitConfigSystemPage(); 	  	
   	  break;*/
  }  
}

var sDenyChar="Invalid charactor";
var sLength8="Password length must be equal to 8!";
function checkInputType1(id) //mei #94-96
{	
	var c;	
	var str=document.getElementById(id).value;
	for(i=0; i<str.length; i++)
	{	
		c=str.substr(i, 1);	
		if(!( (c>='A' && c<='Z')||
					(c>='0' && c<='9')||
					(c>='a' && c<='z')||
					c=='('||c==')'||c=='.'||c==','||c=='+'||c=='-'||c=='/'||c==' '
			 ))
		{
		  alert(sDenyChar+' \"'+c+'\"!');
			document.getElementById(id).select();
			return 0;
		}
	}
	
	return 1;
}

function checkInputType2(id) //mei #94-96
{	
	var c;
	var str=document.getElementById(id).value;
	for(i=0; i<str.length; i++)
	{	
		c=str.substr(i, 1);	
		if(!( (c>='A' && c<='Z')||
					(c>='0' && c<='9')||
					(c>='a' && c<='z')||
					c=='('||c==')'||c=='.'||c==','||c=='+'||c=='-'||c=='/'||c==' '||
					c=='\\'||c=='_'||c=='@'			 		
			 ))
		{
		  alert(sDenyChar+' \"'+c+'\"!');
			document.getElementById(id).select();
			return 0;
		}
	}
	return 1;
}

function checkInputType3(name) //mei #94-96
{	
	var c;
	var obj=document.getElementsByName(name);	
	for(n=0; n<6; n++)
	{
		str=obj[n].value;
		for(i=0; i<str.length; i++)
		{	
			c=str.substr(i, 1);	
			if(!( (c>='A' && c<='Z')||
						(c>='0' && c<='9')||
						(c>='a' && c<='z')||
						c==' '
				 ))
			{
			  alert(sDenyChar+' \"'+c+'\"!');
				obj[n].select();
				return 0;
			}
		}
	}
	return 1;
}

function checkInputType4(name) //mei #94-96
{	
	var c;
	var obj=document.getElementsByName(name);	
	for(n=0; n<6; n++)
	{
		str=obj[n].value;
		if(str.length != 8)
		{
			  alert(sLength8);
				obj[n].select();
				return 0;			
		}	
		for(i=0; i<str.length; i++)
		{	
			c=str.substr(i, 1);	
			if(!( (c>='A' && c<='Z')||
						(c>='0' && c<='9')||
						(c>='a' && c<='z') 
				))
			{
			  alert(sDenyChar+' \"'+c+'\"!');
				obj[n].select();
				return 0;
			}
		}
	}
	return 1;
}

function checkInputType5(id) //mei #94-96
{	
	var c;
	var str=document.getElementById(id).value;
	for(i=0; i<str.length; i++)
	{	
		c=str.substr(i, 1);	
		if(!( (c>='0' && c<='9')||
					c==' '
			 ))
		{
		  alert(sDenyChar+' \"'+c+'\"!');
			document.getElementById(id).select();
			return 0;
		}
	}
	return 1;
}

var sOnlyEnglish="Only English input is allowed!";
function checkEngInput(id)
{
	var obj=document.getElementById(id);
	if(event.keyCode==229)
	{
		alert(sOnlyEnglish);		
		obj.focus();		
	}	
}

function checkEngInput1(name, n)
{
	var obj=document.getElementsByName(name);
	if(event.keyCode==229)
	{
		alert(sOnlyEnglish);		
		obj[n].focus();		
	}	
}

function OnChangeDDNSServer(nItem)
{
	var disp = "";
	disp2 = "none"
	if(nItem == 2)
	{
		disp = "none";
		disp2 = "";
	}
	document.getElementById("ddnsTR1").style.display = disp;
	document.getElementById("ddnsTR2").style.display = disp;
	document.getElementById("ddnsTR3").style.display = disp;
	document.getElementById("ddnsTR4").style.display = disp;
	document.getElementById("ddnsTR5").style.display = disp2;
}
