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.5.3 11103113'><table border='0' cellspacing='0' cellpadding='0'><tr><td width='125' height='27' align='right' valign='middle'></td></tr></table></acronym>";

function getCameraCount() 
{
	var cameraCount = getCookie("cameraCount");
	if (typeof cameraCount != 'undefined') {
		_CAMERA_COUNT = parseInt(cameraCount);
	}

	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
		case 4: // SDR
		case 7:	// ADR
		case 9: // LUNA
			_USE_AUTHORITY = false;
			break;
		case 14: // HERA
			_USE_AUTHORITY = false;
			_USE_PTZ_ONLY = true;
			break; 	
		case 17: // VENUS
		case 19: // RUBY
		case 30: // JASPER
		case 35:  // JET
			_USE_SEARCH = false;
			break;
	}
}

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()));
}
