var PROD_UNKNOWN = -1; 
var PROD_ALL	= 0; 

// Product¿Í Camera
var IDR_16		= 10;
var IDR_32		= 11;
var SDR_4		= 20;
var ADR_1		= 30;
var ADR_4		= 31;
var ADR_9		= 32;
var ADR_16		= 33;
var XDR_9		= 40;
var XDR_16		= 41;
var NEP_8		= 50;
var NEP_16		= 51;
var NEP_8_NA	= 52;
var NEP_16_NA	= 53;
var JUNO_16		= 60;
var HERA_4		= 70;
var MINA_8		= 80;
var MINA_16		= 81;
var VENUS_1		= 90;
var VENUS_4		= 91;
var ZENA_4		= 100;
var ZENA_8		= 101;
var ZENA_16		= 102;
var ZENA_4_NA	= 103;
var ZENA_8_NA	= 104;
var ZENA_16_NA	= 105;
var ZENAL_4		= 106;
var ZENAL_8		= 107;
var ZENAL_16	= 108;
var ZENAL_4_NA	= 109;
var ZENAL_8_NA	= 110;
var ZENAL_16_NA	= 111;
var RUBY_1		= 120;
var RUBY_1D		= 121;
var RUBY_1B		= 122;

// OEM List
var OEMID_NULL		= -1;
var OEMID_ALL		= 0;
var OEMID_SIEMENS	= 11;		// SIEMENS Co., Ltd.
var OEMID_HONEYWELL	= 13;		// Honeywell
var OEMID_REVO		= 22;		// REVO OEM

var WATCH = 0;
var SEARCH = 1;

// Layout 
var LAYOUT_1x1		= 0;
var LAYOUT_2x2		= 1;
var LAYOUT_3x3		= 2;
var LAYOUT_4x4		= 3;
var LAYOUT_5x5		= 4;
var LAYOUT_6x6		= 5;
var LAYOUT_7x7		= 6;
var LAYOUT_8x8		= 7;
var LAYOUT_8x1		= 8;
var LAYOUT_12x1		= 9;
var LAYOUT_32x1		= 10;

var _DEBUG = false;
var _PRODUCT = PROD_UNKNOWN;
var _OEM	= OEMID_ALL;

var _VERSION = "<acronym title='2.3.4 08072903'><table border='0' cellspacing='0' cellpadding='0'><tr><td width='125' height='27' align='right' valign='middle'></td></tr></table></acronym>";

// ClassInfo 
var CLASS_ALL	= -1;		// all of products
var CLASS_OLD	= 0;		// old version IDR
var CLASS_IDR	= 1;		// IDRx016 series
var CLASS_HDR	= 2;		// HDR5016
var CLASS_INT	= 3;		// INTx00;		 WebCam series
var CLASS_SDR	= 4;		// SDR series
var CLASS_VSS	= 5;		// Video Server System
var CLASS_RAS	= 6;		// Remote Administration System
var CLASS_ADR	= 7;		// ADR series
var CLASS_PANDA = 8;		// PANDA series
var CLASS_LUNA	= 9;		// LUNA series
var CLASS_XDR	= 10;		// XDR series
var CLASS_GSP	= 11;		// GSP series
var CLASS_JUNO	= 12;		// JUNO series
var CLASS_NEPTUNE = 13;		// Neptune series
var CLASS_HERA	= 14;		// HERA series
var CLASS_MINA	= 15;		// MINA series
var CLASS_MDR	= 16;		// MDR series
var CLASS_VENUS	= 17;		// VENUS series
var CLASS_ZENA	= 18;		// ZENA series
var CLASS_RUBY	= 19;		// RUBY series


function isDebug() {
	return _DEBUG ? 1 : 0;
}

function OEM() {
	return _OEM;
}

function productId() 
{
	var productId = getCookie("productId");
	if (typeof productId != 'undefined') {
		if (_PRODUCT == PROD_UNKNOWN) {
			_PRODUCT = parseInt(productId);
		}
	}

	if (_PRODUCT == null) {
		return PROD_UNKNOWN;
	}
	return _PRODUCT;
}

function setWatchUI(productId)
{
	//version
	document.getElementById("version").innerHTML = _VERSION;

	_PRODUCT = productId;
	
	WatSearCtrl.setCamera(0, false);
	switch (productId)
	{
		case VENUS_1:
		case RUBY_1:
		case RUBY_1D:
		case RUBY_1B:
			document.getElementById("goto_search").parentNode.parentNode.parentNode.deleteCell(1);
		case ADR_1:
			WatSearCtrl.setLayout(LAYOUT_1x1);
			document.getElementById("WATCH_UI_LAYOUT_1X1").parentNode.parentNode.deleteRow(1);
			document.getElementById("WATCH_UI_LAYOUT_1X1").parentNode.parentNode.deleteRow(0);
			
			var CAMERA_BTNS = document.getElementById("UI_CAMERA_BUTTONS");
			CAMERA_BTNS.rows(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).style.visibility = "hidden";
			CAMERA_BTNS.rows(2).style.visibility = "hidden";
			CAMERA_BTNS.rows(0).cells(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(0).cells(4).style.visibility = "hidden";
			CAMERA_BTNS.rows(0).cells(2).style.visibility = "hidden";
			break;
		case HERA_4:
		case VENUS_4:
			if (productId == HERA_4)
			{
				document.tab_color.onclick = "";
				document.tab_color.onmouseover = "";
				document.tab_color.onmouseout = "";
				
				document.tab_alarm.onclick = "";
				document.tab_alarm.onmouseover = "";
				document.tab_alarm.onmouseout = "";
				
				on_tabclick('tab_ptz');
			}
			if (productId == VENUS_4)
			{
				document.getElementById("goto_search").parentNode.parentNode.parentNode.deleteCell(1);
			}
		case ADR_4:
		case SDR_4:
		case ZENA_4:
		case ZENA_4_NA:
		case ZENAL_4:
		case ZENAL_4_NA:
			WatSearCtrl.setLayout(LAYOUT_2x2);
			document.getElementById("WATCH_UI_LAYOUT_3X3").style.visibility = "hidden";
			document.getElementById("WATCH_UI_LAYOUT_4X4").style.visibility = "hidden";

			var CAMERA_BTNS = document.getElementById("UI_CAMERA_BUTTONS");
			CAMERA_BTNS.rows(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).style.visibility = "hidden";
			CAMERA_BTNS.rows(2).style.visibility = "hidden";
			break;

		case ADR_9:
		case XDR_9:
			WatSearCtrl.setLayout(LAYOUT_3x3);
			document.getElementById("WATCH_UI_LAYOUT_4X4").style.visibility = "hidden";

			var CAMERA_BTNS = document.getElementById("UI_CAMERA_BUTTONS");
			CAMERA_BTNS.rows(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).cells(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).cells(4).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).cells(2).style.visibility = "hidden";
			break;
		case MINA_8:
		case NEP_8:
		case NEP_8_NA:
		case ZENA_8:
		case ZENA_8_NA:
		case ZENAL_8:
		case ZENAL_8_NA:
			WatSearCtrl.setLayout(LAYOUT_3x3);
			document.getElementById("WATCH_UI_LAYOUT_4X4").style.visibility = "hidden";

			var CAMERA_BTNS = document.getElementById("UI_CAMERA_BUTTONS");
			CAMERA_BTNS.rows(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).style.visibility = "hidden";
			break;

		case IDR_32:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			document.getElementById("watch_display16").style.visibility = "hidden";
			document.getElementById("watch_display32").style.visibility = "visible";
			document.getElementById("watch_lowCh_only").style.visibility = "hidden";
			document.getElementById("watch_lowCh").style.visibility = "visible";
			document.getElementById("watch_highCh").style.visibility = "hidden";
			break;

		case MINA_16:
		case ADR_16:
		case IDR_16:
		case XDR_16:
		case NEP_16:
		case NEP_16_NA:
		case JUNO_16:
		case ZENA_16:
		case ZENA_16_NA:
		case ZENAL_16:
		case ZENAL_16_NA:
		default:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			break;
	}		
}

function setSearchUI(productId)
{
	//version
	document.getElementById("version").innerHTML = _VERSION;

	_PRODUCT = productId;

	WatSearCtrl.setCamera(0, false);
	switch (productId)
	{
		case VENUS_1:
		case VENUS_4:
		case RUBY_1:
		case RUBY_1D:
		case RUBY_1B:
			alert("not supported");
			break;

		case ADR_1:
			WatSearCtrl.setLayout(LAYOUT_1x1);
			document.getElementById("SEARCH_UI_LAYOUT_1X1").style.visibility = "hidden";
			document.getElementById("SEARCH_UI_LAYOUT_2X2").style.visibility = "hidden";
			document.getElementById("SEARCH_UI_LAYOUT_3X3").style.visibility = "hidden";
			document.getElementById("SEARCH_UI_LAYOUT_4X4").style.visibility = "hidden";

			for (var i=16; i>1; i--) {
				document.getElementById("NOSEGMENT_TAB_CAMERAS").rows(1).cells(i).style.visibility = "hidden";
				document.getElementById("SEGMENT_TAB_CAMERAS").rows(0).cells(i).style.visibility = "hidden";
			}			
			break;

		case HERA_4:
		case ZENA_4:
		case ZENA_4_NA:
		case ZENAL_4:
		case ZENAL_4_NA:
		case SDR_4:
		case ADR_4:
			WatSearCtrl.setLayout(LAYOUT_2x2);
			document.getElementById("SEARCH_UI_LAYOUT_3X3").style.visibility = "hidden";
			document.getElementById("SEARCH_UI_LAYOUT_4X4").style.visibility = "hidden";
			for (var i=16; i>4; i--) {
				document.getElementById("NOSEGMENT_TAB_CAMERAS").rows(1).cells(i).style.visibility = "hidden";
				document.getElementById("SEGMENT_TAB_CAMERAS").rows(0).cells(i).style.visibility = "hidden";
			}			
			break;
		case ADR_9:
		case XDR_9:
			WatSearCtrl.setLayout(LAYOUT_3x3);
			document.getElementById("SEARCH_UI_LAYOUT_4X4").style.visibility = "hidden";
			for (var i=16; i>9; i--) {
				document.getElementById("NOSEGMENT_TAB_CAMERAS").rows(1).cells(i).style.visibility = "hidden";
				document.getElementById("SEGMENT_TAB_CAMERAS").rows(0).cells(i).style.visibility = "hidden";
			}			
			break;
		case NEP_8:
		case NEP_8_NA:
		case MINA_8:
		case ZENA_8:
		case ZENA_8_NA:
		case ZENAL_8:
		case ZENAL_8_NA:
			WatSearCtrl.setLayout(LAYOUT_3x3);
			document.getElementById("SEARCH_UI_LAYOUT_4X4").style.visibility = "hidden";
			for (var i=16; i>8; i--) {
				document.getElementById("NOSEGMENT_TAB_CAMERAS").rows(1).cells(i).style.visibility = "hidden";
				document.getElementById("SEGMENT_TAB_CAMERAS").rows(0).cells(i).style.visibility = "hidden";
			}			
			break;
		case IDR_32:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			document.getElementById("search_lowCh").style.visibility = "visible";
			document.getElementById("search_highCh").style.visibility = "hidden";
			document.getElementById("search_display16").style.visibility = "hidden";
			document.getElementById("search_display32").style.visibility = "visible";
			document.getElementById("search_ch_seg").style.visibility = "hidden";
			document.getElementById("search_ch_noseg").style.visibility = "hidden";
			break;

		case MINA_16:
		case XDR_16:
		case NEP_16:
		case NEP_16_NA:
		case JUNO_16:
		case ADR_16:
		case ZENA_16:
		case ZENA_16_NA:
		case ZENAL_16:
		case ZENAL_16_NA:
		default:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			break;
	}	
}

function setAlarmOut(classInfo, typeInfo)
{
	var alarmOuts = 0;	
	switch(classInfo)
	{
		case CLASS_IDR: if (typeInfo == 1) { alarmOuts = 16; } else if (typeInfo == 3) { alarmOuts = 32; } return; break;
		case CLASS_SDR:	
		case CLASS_LUNA: alarmOuts = 2; break;
		case CLASS_ADR: if (typeInfo == 3 || typeInfo == 5 || typeInfo == 7) { alarmOuts = 2; } else if (typeInfo == 4 || typeInfo == 6 || typeInfo == 8 || typeInfo == 10 || typeInfo == 11 || typeInfo == 12 || typeInfo == 13 || typeInfo == 14 || typeInfo == 15) { alarmOuts = 4; }	break;
		case CLASS_XDR: if (typeInfo == 1 || typeInfo == 2 || typeInfo == 5 || typeInfo == 6) { alarmOuts = 9; } else if (typeInfo == 3 || typeInfo == 4 || typeInfo == 7 || typeInfo == 8) { alarmOuts = 16; return; } break;
		case CLASS_JUNO: alarmOuts = 16; return;	break;
		case CLASS_NEPTUNE: if (typeInfo == 1 || typeInfo == 2 || typeInfo == 7 || typeInfo == 8) { alarmOuts = 16; return; } else if (typeInfo == 3 || typeInfo == 9) { alarmOuts = 8; } break;
		case CLASS_HERA: alarmOuts = 0; break;
		case CLASS_MINA: alarmOuts = 2;	break;
		case CLASS_VENUS: alarmOuts = 1; break;
		case CLASS_ZENA: alarmOuts = 1;	break;
		case CLASS_RUBY: if (typeInfo == 1) { alarmOuts = 1; return; } else if (typeInfo == 2 || typeInfo == 3) { alarmOuts = 0; } break;
		default: alarmOuts = 0; break;
	}

	for (var i = alarmOuts ; i < 16 ;i++) {
		eval("ao" + (i + 1) + ".style.visibility = 'hidden'");
	}
}

function setProduct(classInfo, typeInfo)
{
	switch(classInfo)
	{
		case CLASS_IDR: if (typeInfo == 1) { _PRODUCT = IDR_16; } else if (typeInfo == 3) { _PRODUCT = IDR_32; } break;
		case CLASS_SDR:	_PRODUCT = SDR_4; break;
		case CLASS_ADR:	if (typeInfo == 1 || typeInfo == 16 || typeInfo == 17) { _PRODUCT = ADR_1; } else if (typeInfo == 3 || typeInfo == 4 || typeInfo == 10 || typeInfo == 11) {	_PRODUCT = ADR_4; } else if (typeInfo == 5 || typeInfo == 6 || typeInfo == 12 || typeInfo == 13) { _PRODUCT = ADR_9; } else if (typeInfo == 7 || typeInfo == 8 || typeInfo == 14 || typeInfo == 15) { _PRODUCT = ADR_16; } break;
		case CLASS_LUNA: _PRODUCT = SDR_4; break;
		case CLASS_XDR: if (typeInfo == 1 || typeInfo == 2 || typeInfo == 5 || typeInfo == 6) { _PRODUCT = XDR_9; } else if (typeInfo == 3 || typeInfo == 4 || typeInfo == 7 || typeInfo == 8) { _PRODUCT = XDR_16; } break;
		case CLASS_JUNO: _PRODUCT = JUNO_16; break; 
		case CLASS_NEPTUNE: if (typeInfo == 1 || typeInfo == 2) { _PRODUCT = NEP_16; } else if (typeInfo == 3) { _PRODUCT = NEP_8; } else if (typeInfo == 7 || typeInfo == 8){ _PRODUCT = NEP_16_NA; } else if (typeInfo == 9) { _PRODUCT = NEP_8_NA; } break; 
		case CLASS_HERA: _PRODUCT = HERA_4; break; 	
		case CLASS_MINA: if (typeInfo == 1) { _PRODUCT = MINA_16; } else if (typeInfo == 2) { _PRODUCT = MINA_8; } 	break;
		case CLASS_VENUS: if (typeInfo == 1) { _PRODUCT = VENUS_1; } else if (typeInfo == 2) { _PRODUCT = VENUS_4; } break;
		case CLASS_ZENA: if (typeInfo == 1) 	{ _PRODUCT = ZENA_4; } else if (typeInfo == 2) { _PRODUCT = ZENAL_4; } else if (typeInfo == 3) { _PRODUCT = ZENA_16_NA; } else if (typeInfo == 4) { _PRODUCT = ZENA_8_NA; } else if (typeInfo == 5) { _PRODUCT = ZENAL_16_NA; } else if (typeInfo == 6) { _PRODUCT = ZENAL_8_NA; } else if (typeInfo == 7) { _PRODUCT = ZENA_16_NA; } else if (typeInfo == 8) { _PRODUCT = ZENA_8_NA; } else if (typeInfo == 9) { _PRODUCT = ZENA_4_NA; } else if (typeInfo == 10) { _PRODUCT = ZENAL_4_NA; } else if (typeInfo == 11) { _PRODUCT = ZENA_4_NA; } break; 
		case CLASS_RUBY: if (typeInfo == 1) { _PRODUCT = RUBY_1; } else if (typeInfo == 2) { _PRODUCT = RUBY_1D; } else if (typeInfo == 3) { _PRODUCT = RUBY_1B; }break;
		default: _PRODUCT = PROD_ALL; break;
	}

	return _PRODUCT;
}

function IsHERA() { if (_PRODUCT == HERA_4) { return true; } return false; }
function IsMina() { if (_PRODUCT == MINA_16 || _PRODUCT == MINA_8) { return true; } return false; }
function IsJuno() {	if (_PRODUCT == JUNO_16) { return true;	} return false; }
function IsNeptune() { if (_PRODUCT == NEP_16 || _PRODUCT == NEP_8 || _PRODUCT == NEP_16_NA || _PRODUCT == NEP_8_NA ) { return true; } return false; }
function IsXDRpro() { if (_PRODUCT == XDR_16 ||  _PRODUCT == XDR_8) { return true; } return false; }
function IsIDR() { if (_PRODUCT == IDR_16 || _PRODUCT == IDR_32) { return true; } return false; }
function IsZenaLite() {	if (_PRODUCT == ZENAL_4 || _PRODUCT == ZENAL_8 || _PRODUCT == ZENAL_16 || _PRODUCT == ZENAL_4_NA || _PRODUCT == ZENAL_8_NA || _PRODUCT == ZENAL_16_NA) { return true; } return false; }
function IsVenus() { if (_PRODUCT == VENUS_1 || _PRODUCT == VENUS_4) { return true; } return false; }
function IsRuby() { if (_PRODUCT == RUBY_1 || _PRODUCT == RUBY_1D || _PRODUCT == RUBY_1B) { return true; } return false; }
function Is32Ch() {	if (_PRODUCT == IDR_32) { return true; } return false; }
function useAudio() { if ( _PRODUCT == IDR_16 || _PRODUCT == IDR_32 || _PRODUCT == NEP_16 || _PRODUCT == NEP_8 || _PRODUCT == JUNO_16 || _PRODUCT == ZENA_4 || _PRODUCT == ZENA_8 || _PRODUCT == ZENA_16 || _PRODUCT == ZENAL_4 || _PRODUCT == ZENAL_8 || _PRODUCT == ZENAL_16 || _PRODUCT == VENUS_1 || _PRODUCT == VENUS_4 || _PRODUCT == RUBY_1 || _PRODUCT == RUBY_1D ) { return true;	} return false; }
function useAuthority() { if ( _PRODUCT == XDR_16 || _PRODUCT == XDR_9 || _PRODUCT == JUNO_16 || _PRODUCT == NEP_16 || _PRODUCT == NEP_8 || _PRODUCT == NEP_16_NA || _PRODUCT == NEP_8_NA || _PRODUCT == MINA_16 || _PRODUCT == MINA_8 || _PRODUCT == ZENA_4 || _PRODUCT == ZENA_8 || _PRODUCT == ZENA_16 || _PRODUCT == ZENA_4_NA || _PRODUCT == ZENA_8_NA || _PRODUCT == ZENA_16_NA || _PRODUCT == ZENAL_4 || _PRODUCT == ZENAL_8 || _PRODUCT == ZENAL_16 || _PRODUCT == ZENAL_4_NA || _PRODUCT == ZENAL_8_NA || _PRODUCT == ZENAL_16_NA || _PRODUCT == VENUS_1 || _PRODUCT == VENUS_4 || _PRODUCT == RUBY_1 || _PRODUCT == RUBY_1D || _PRODUCT == RUBY_1B) { return true; } return false; }

function maxCameraCount(productId) 
{
	var camCount = 32;
	switch (productId) {
		case IDR_32:
			camCount = 32;
			break;
		case IDR_16:
		case ADR_16:
		case XDR_16:
		case JUNO_16:
		case NEP_16:
		case NEP_16_NA:
		case MINA_16:
		case ZENA_16:
		case ZENA_16_NA:
		case ZENAL_16:
		case ZENAL_16_NA:
			camCount = 16;
			break;

		case ADR_9:
		case XDR_9:
			camCount = 9;
			break;

		case NEP_8:
		case NEP_8_NA:
		case MINA_8:
		case ZENA_8:
		case ZENA_8_NA:
		case ZENAL_8:
		case ZENAL_8_NA:
			camCount = 8;
			break;

		case SDR_4:
		case ADR_4:
		case HERA_4:
		case ZENA_4:
		case ZENA_4_NA:
		case ZENAL_4:
		case ZENAL_4_NA:
		case VENUS_4:
			camCount = 4;
			break;

		case ADR_1:
		case VENUS_1:
		case RUBY_1:
		case RUBY_1D:
		case RUBY_1B:
			camCount = 1;
			break;
		default :
			camCount = 32;
    }
	return camCount;
}

//Common Function
function ipCheck(ipAddr)
{	
	var re = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
	if (ipAddr.match(re) == null) {
		return false;
	}
	
	return true;
}

function getCookie(Name)
{
	var search = Name + "=";
	if (document.cookie.length > 0) {                    // if there are any cookies
		offset = document.cookie.indexOf(search);
		if (offset != -1){                                               // if cookie exists
			offset += search.length;                             // set index of beginning of value
			end = document.cookie.indexOf(";", offset);   // set index of end of cookie value
			if (end == -1) 
				end = document.cookie.length;
			return unescape(document.cookie.substring(offset, end));
		} 
	}
}

function setCookie(name, value, expire)
{
	document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}
