var PROD_UNKNOWN = -1; 
var PROD_ALL	= 0; 

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 _CAMERA_COUNT = 16;
var _USE_AUTHORITY = true;
var _USE_SEARCH = true;
var _USE_PTZ_ONLY = false;

var _VERSION = "<acronym title='2.4.6 10042910'><table border='0' cellspacing='0' cellpadding='0'><tr><td width='125' height='27' align='right' valign='middle'></td></tr></table></acronym>";

function getCameraCount() 
{
	var classInfo = getCookie("classInfo");
	var typeInfo = getCookie("typeInfo");
	if (typeof classInfo != 'undefined' &&
		typeof typeInfo != 'undefined') {
		setProduct(parseInt(classInfo), parseInt(typeInfo));
	}

	return _CAMERA_COUNT;
}

function setWatchUI(cameraCount)
{
	//version
	document.getElementById("version").innerHTML = _VERSION;
	
	switch (cameraCount)
	{
		case 1:
			if (!_USE_SEARCH) {
				document.getElementById("goto_search").parentNode.parentNode.parentNode.deleteCell(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 4:
			if (!_USE_SEARCH) {
				document.getElementById("goto_search").parentNode.parentNode.parentNode.deleteCell(1);
			}

			if (_USE_PTZ_ONLY) {
				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');
			}

			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 8:
			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 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 12:
			WatSearCtrl.setLayout(LAYOUT_4x4);

			var CAMERA_BTNS = document.getElementById("UI_CAMERA_BUTTONS");
			CAMERA_BTNS.rows(6).style.visibility = "hidden";
			// ¹öÆ° ¼û±â±â
			break;

		case 20:
			WatSearCtrl.setLayout(LAYOUT_5x5);
			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";

			// ÇÊ¿ä¾ø´Â ·¹ÀÌ¾Æ¿ô ¹öÆ° Áö¿ì±â
			var LAYOUT_BTNS_ROW = document.getElementById("UI_LAYOUT_5X5").parentNode.parentNode.parentNode;
			LAYOUT_BTNS_ROW.deleteCell(3);
			LAYOUT_BTNS_ROW.deleteCell(2);
			LAYOUT_BTNS_ROW.insertCell(3);
			LAYOUT_BTNS_ROW.insertCell(3);

			var CAMERA_BTNS = document.getElementById("watch_highNumCameraButton");
			CAMERA_BTNS.rows(6).style.visibility = "hidden";
			CAMERA_BTNS.rows(4).style.visibility = "hidden";
			CAMERA_BTNS.rows(2).style.visibility = "hidden";

			break;
		case 32:
			WatSearCtrl.setLayout(LAYOUT_32x1);
			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";

			// ÇÊ¿ä¾ø´Â ·¹ÀÌ¾Æ¿ô ¹öÆ° Áö¿ì±â
			var LAYOUT_BTNS_ROW = document.getElementById("UI_LAYOUT_32X1").parentNode.parentNode.parentNode;
			LAYOUT_BTNS_ROW.deleteCell(1);
			LAYOUT_BTNS_ROW.deleteCell(0);
			LAYOUT_BTNS_ROW.insertCell(1);
			LAYOUT_BTNS_ROW.insertCell(1);
			break;

		default:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			break;
	}		
}

function setSearchUI(cameraCount)
{
	//version
	document.getElementById("version").innerHTML = _VERSION;

	switch (cameraCount)
	{
		case 1:
			if (!_USE_SEARCH) {
				alert("not supported");
				return ;
			}

			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 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 8:
			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 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 12:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			break;

		case 20:
			WatSearCtrl.setLayout(LAYOUT_5x5);
			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";
			var LAYOUT_BTNS_ROW = document.getElementById("search_layoutbutton").childNodes(0).childNodes(0);
			LAYOUT_BTNS_ROW.deleteCell(10);
			LAYOUT_BTNS_ROW.deleteCell(9);
			break;

		case 32:
			WatSearCtrl.setLayout(LAYOUT_32x1);
			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";
			var LAYOUT_BTNS_ROW = document.getElementById("search_layoutbutton").childNodes(0).childNodes(0);
			LAYOUT_BTNS_ROW.deleteCell(8);
			LAYOUT_BTNS_ROW.deleteCell(7);
			break;

		default:
			WatSearCtrl.setLayout(LAYOUT_4x4);
			break;
	}	
}

function setAlarmOut(alarmOutCount)
{
	if (alarmOutCount < 0) {
		return ;
	}
	for (var i = alarmOutCount ; i < 16 ;i++) {
		eval("ao" + (i + 1) + ".style.visibility = 'hidden'");
	}
}

function setProduct(classInfo, typeInfo)
{
	switch(classInfo)
	{
		case 1: // IDR
			_USE_AUTHORITY = false;
			switch(typeInfo) {
				case 1: _CAMERA_COUNT = 16; break;
				case 3: _CAMERA_COUNT = 32; break;
				default : alert("not supported product");
			}
		break;
		case 4: // SDR
			_USE_AUTHORITY = false;
			_CAMERA_COUNT = 4;
			break;
		case 7:	// ADR
			_USE_AUTHORITY = false;
			switch (typeInfo) {
				case 1:
				case 16:
				case 17: _CAMERA_COUNT = 1; break;
				case 3:
				case 4:
				case 10:
				case 11: _CAMERA_COUNT = 4; break;
				case 5:
				case 6:
				case 12:
				case 13: _CAMERA_COUNT = 9; break;
				case 7:
				case 8:
				case 14:
				case 15: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;
		case 9: // LUNA
			_USE_AUTHORITY = false;
			_CAMERA_COUNT = 4;
			break;
		case 10: // XDR
			switch(typeInfo) {
				case 1:
				case 2:
				case 5:
				case 6: _CAMERA_COUNT = 9; break;
				case 3:
				case 4:
				case 7:
				case 8: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;
		case 12: // JUNO
			_CAMERA_COUNT = 16;
			break; 
		case 13: // NEPTUNE
			switch(typeInfo) {
				case 1:
				case 2:
				case 7:
				case 8: _CAMERA_COUNT = 16; break;
				case 3: 
				case 9: _CAMERA_COUNT = 8; break;
				case 4:
				case 5: _CAMERA_COUNT = 20; break;
				case 6: _CAMERA_COUNT = 12; break;
				default : alert("not supported product");
			}
			break;
		case 14: // HERA
			_USE_AUTHORITY = false;
			_USE_PTZ_ONLY = true;
			_CAMERA_COUNT = 4;
			break; 	
		case 15: // MINA
			switch(typeInfo) {
				case 1: _CAMERA_COUNT = 16; break;
				case 2: _CAMERA_COUNT = 8; break;
				default : alert("not supported product");
			}
			break;
		case 17: // VENUS
			_USE_SEARCH = false;
			switch(typeInfo) {
				case 1: _CAMERA_COUNT = 1; break;
				case 2: _CAMERA_COUNT = 4; break;
				default : alert("not supported product");
			}
			break;
		case 18: // ZENA
			switch(typeInfo) {
				case 1: 
				case 2: 
				case 9: 
				case 10: 
				case 11: 
				case 12: 
				case 13: _CAMERA_COUNT = 4; break;
				case 4:
				case 6:
				case 8: _CAMERA_COUNT = 8; break;
				case 3: 
				case 5: 
				case 7: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;			
		case 19: // RUBY
			_USE_SEARCH = false;
			_CAMERA_COUNT = 1;
			break;
		case 22: // JADE
			_CAMERA_COUNT = 1;
			break;
		case 26: // ODIN
			switch(typeInfo) {
				case 1: 
				case 4: _CAMERA_COUNT = 4; break;
				case 2: 
				case 5: _CAMERA_COUNT = 8; break;
				case 3: 
				case 6: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;			
		case 27: // THOR
			switch(typeInfo) {
				case 1: 
				case 4: _CAMERA_COUNT = 4; break;
				case 2: 
				case 5: _CAMERA_COUNT = 8; break;
				case 3: 
				case 6: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;	
		case 28: // NAIAD
			switch(typeInfo) {
				case 1: 
				case 2: 
				case 3: 
				case 4: 
				case 9: 
				case 10: 
				case 11: 
				case 12: _CAMERA_COUNT = 8; break;
				case 5: 
				case 6: 
				case 7: 
				case 8: 
				case 13: 
				case 14: 
				case 15: 
				case 16: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;	
		case 29: // NARU
			switch(typeInfo) {
				case 1: 
				case 3: _CAMERA_COUNT = 8; break;
				case 2: 
				case 4: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;
		case 30: // JASPER
			_USE_SEARCH = false;
			_CAMERA_COUNT = 1;
			break;
		case 31: // NANA
			switch(typeInfo) {
				case 1: 
				case 4: _CAMERA_COUNT = 4; break;
				case 2: 
				case 5: _CAMERA_COUNT = 8; break;
				case 3: 
				case 6: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;			
		case 32: // CUBE
			switch(typeInfo) {
				case 1: _CAMERA_COUNT = 8; break;
				case 2: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;			
		case 33:  // ATOM
			switch(typeInfo) {
				case 1: _CAMERA_COUNT = 4; break;
				case 2: _CAMERA_COUNT = 8; break;
				case 3: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;			
		case 34:  // KARA
			switch(typeInfo) {
				case 1: _CAMERA_COUNT = 4; break;
				case 2: _CAMERA_COUNT = 8; break;
				case 3: _CAMERA_COUNT = 16; break;
				default : alert("not supported product");
			}
			break;			
		case 35:  // JET
			_USE_SEARCH = false;
			_CAMERA_COUNT = 1;
			break;
		case 36: // YUNA
			switch(typeInfo) {
				case 1: 
				case 3:
				case 4: _CAMERA_COUNT = 4; break;
				case 2: 
				case 5: _CAMERA_COUNT = 8; break;
				default : alert("not supported product");
			}
			break;			
		default : alert("not supported product");
	}

	return _CAMERA_COUNT;
}

function Is32Ch() {	if (_CAMERA_COUNT == 32) { return true; } return false; }
function useAuthority() { return _USE_AUTHORITY; }

//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()));
}