﻿/**********All inits on the bottom of this script******/

var Tooltip = {
	isOver: false,
	zindex: 99,
	init:function(){
		/*
		if (window.Event) {
			document.captureEvents(Event.MOUSEMOVE);
		}
		document.onmousemove = Tooltip.getCursorXY;
		*/
		var information = "";
		for(var i = 1; i < 41; i++){ //increase the loop when adding more selections
			if(document.getElementById('info'+i)){
				information = document.getElementById('info'+i);
				information.onmouseover = function() { this.style.cursor = 'pointer'; this.src = 'img/i_over.gif'; }
				information.onclick = function(){ Tooltip.showToolTip(this); }
				information.onmouseout = function(){ this.src = 'img/i.gif'; }
				//information.onmouseout = function(){Tooltip.hideToolTip(this);}
			}
		}
		//tooltipXPos = 370; //just some default values
		//tooltipYPos = 200;
		
	},
	showToolTip:function(obj){
		posArray = Tooltip.findPos(obj);
		tooltip = obj.id.split("info");
		if(document.getElementById("tooltip"+tooltip[1]).style.display != 'block'){
			document.getElementById("tooltip"+tooltip[1]).style.display = 'block';
			document.getElementById("tooltip"+tooltip[1]).style.zIndex = Tooltip.zindex;
			Tooltip.zindex++;
			
			if(tooltip[1] == "99"){ //"how to use"
				document.getElementById("tooltip"+tooltip[1]).style.top = '200px';
				//document.getElementById("tooltip"+tooltip[1]).style.left = (posArray[0]-400)+'px';
				document.getElementById("tooltip"+tooltip[1]).style.width = "400px";
				document.getElementById("tooltip"+tooltip[1]).style.left = "50%";
				document.getElementById("tooltip"+tooltip[1]).style.marginLeft = "-200px";
				//gray out the background?
				graydiv = document.createElement("div");
				graydiv.id = "grayedOutDivLarge";

				document.getElementById("thebody").appendChild(graydiv);
				graydiv.style.height = Tooltip.getDocHeight() + "px";
//				graydiv.innerHTML = "test";
			}
			else{
				document.getElementById("tooltip"+tooltip[1]).style.top = obj.height+posArray[1]+15+'px';
				document.getElementById("tooltip"+tooltip[1]).style.left = posArray[0]+'px';
			}
			//document.getElementById("tooltip"+tooltip[1]).onmouseout = function(){Tooltip.hideToolTip(this)}
		}
		else{
			document.getElementById("tooltip"+tooltip[1]).style.display = 'none';
			if(tooltip[1] == "99")
				document.getElementById("grayedOutDivLarge").parentNode.removeChild(document.getElementById("grayedOutDivLarge"));
		}
		/* //remove grayed out background
		if(document.getElementById("graydiv"))
			document.getElementById("graydiv").style.display = "none";
		*/
	},
	getDocHeight:function() {
		var D = document;
		return Math.max(
			Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
			Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
			Math.max(D.body.clientHeight, D.documentElement.clientHeight)
		);
	},
	/*
	//unused function
	hideToolTip:function(obj){
		if(obj.id.indexOf( ('tooltip') ) == -1){
			tooltip = obj.id.split("info");
		}else{
			tooltip = obj.id.split("tooltip");
		}
		//setTimeout('document.getElementById("tooltip"+tooltip[1]).style.display = "none"', 1000);
		//Tooltip.pausecomp(250);
		document.getElementById("tooltip"+tooltip[1]).style.display = "none";
	}, 
	*/
	getCursorXY:function(e) {
		tooltipXPos = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		tooltipYPos = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	},
	findPos:function(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	},
	pausecomp:function(millis){
		//function to make computer pause/sleep
		var date = new Date();
		var curDate = null;
	
		do { 
			curDate = new Date(); 
		}while(curDate-date < millis);
	} 
}


/********FUNCTIONS FOR UPDATING THE SELECTIONS MENU************/
var MenuUpdater = {
	additionalinfo:[],
	init:function(){
		if(!document.getElementById) return;
		var ptFromCookie = _get_cookie('prodSelectorProdType');
		if(ptFromCookie != ""){ //cookie is set
			//seems like this if clause does nothing
			//if(ptFromCookie != "cameras"){
				//MenuUpdater.changeProdType("video");
				//alert(ptFromCookie);
				//}
			//sendAjaxRequest('',''); //initial ajax request, if user has used back-button this makes sure that all filters are still active
			//ajaxInit();
		}
		document.getElementById("basic_arrow").onclick = function(){MenuUpdater.toggleVisibility("basicsTable", "basic_arrow", "arrow_small_down.gif", "arrow_small.gif");}
		document.getElementById("advanced_arrow").onclick = function(){MenuUpdater.toggleVisibility("table_advanced", "advanced_arrow", "arrow_small_down.gif", "arrow_small.gif");}
		document.getElementById("field_of_view_arrow").onclick = function(){MenuUpdater.toggleVisibility("table_field_of_view", "field_of_view_arrow", "arrow_small_down.gif", "arrow_small.gif");}
		//document.getElementById("advanced_arrow").onmouseover.style.cursor = "hand";
		//Elements to hide by default:
		document.getElementById("prodFamilyEncoders").style.display = 'none';
		document.getElementById("prodFamilyThermal").style.display = 'none';
		document.getElementById("info32").style.display = 'none';	//information-button for thermal cams
		document.getElementById("info23").style.display = 'none'; //information-button for encoders
		document.getElementById("twowayAudio").style.display = 'none';
		document.getElementById("audioDetection").style.display = 'none';
		document.getElementById("channels").style.display = 'none';
		document.getElementById("ptzsupport").style.display = 'none';
		document.getElementById("serialPortType").style.display = 'none';
		document.getElementById("ptzoperation").style.display = 'none';
		document.getElementById("varifocal").style.display = 'none';
		document.getElementById("maxresThermal").style.display = 'none';
		//document.getElementById("detRangePerson").style.display = 'none';
		document.getElementById("selDetRange").value = 'select'; //!
		//document.getElementById("detRangeVehicle").style.display = 'none';
		document.getElementById("detRange").style.display = 'none';
		//document.getElementById("selDetRangeVehicle").value = 'select'; //!
		//document.getElementById("selDetRangePerson").value = 'select';//!
		document.getElementById("inoutdoorthermal").style.display = 'none';
		
		document.getElementById("sceneWidth").style.display = 'none';
		document.getElementById("sceneHeight").style.display = 'none';
		document.getElementById("distanceFromCam").style.display = 'none';
		document.getElementById("survObj").style.display = 'none';
		document.getElementById("resDistanceFromCam").style.display = 'none';
		
		document.getElementById("ajaxLoadIcon").style.display = 'none';
		document.getElementById("jsRequired").style.display = 'none';

		//initiate the onclicks and onchanges:
		document.getElementById("chkOutdoorReady").onclick = function(){sendAjaxRequest(this.id, this.checked); setSelectionCookie(this.id, this.checked); MenuUpdater.showAdditionalInfo(this.id, this.checked); }
		document.getElementById("chkOutdoorReadyThermal").onclick = function(){sendAjaxRequest(this.id, this.checked); }
		document.getElementById("chkDayNight").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkPoe").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkAudio").onclick = function(){MenuUpdater.changeProdType(this); sendAjaxRequest(this.id, this.checked); } //also triggers a change in the menu
		document.getElementById("chkProgScan").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkWdr").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkPtzSup").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkPtzOp").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkMotionDet").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkTampAlarm").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkInputOutput").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkLocalStorage").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkAVHS").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkTwowayAudio").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkVarifocal").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkChngLens").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkDigZoom").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkAudioDetection").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkWireless").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkVandalRes").onclick = function(){sendAjaxRequest(this.id, this.checked); MenuUpdater.showAdditionalInfo(this.id, this.checked);}
		document.getElementById("chkRuggedized").onclick = function(){sendAjaxRequest(this.id, this.checked); MenuUpdater.showAdditionalInfo(this.id, this.checked);}
		document.getElementById("chkColorPalette").onclick = function(){sendAjaxRequest(this.id, this.checked);}
		document.getElementById("chkFovActivate").onclick = function(){sendAjaxRequest(this.id, this.checked); $('#sceneWidth').toggle('slow'); $('#sceneHeight').toggle('slow'); $('#distanceFromCam').toggle('slow');}
		document.getElementById("chkResActivate").onclick = function(){sendAjaxRequest(this.id, this.checked); $('#survObj').toggle('slow'); $('#resDistanceFromCam').toggle('slow');}
		
		document.getElementById("prodType").onchange = function(){MenuUpdater.changeProdType(this); sendAjaxRequest(this.id, this.value); } //also triggers a change in the menu
		document.getElementById("prodFamilyCams").onchange = function(){MenuUpdater.changeProdFamily(this); sendAjaxRequest(this.id, this.value);} //also triggers a change in the menu
		document.getElementById("prodFamilyEncoders").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("prodFamilyThermal").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selMaxRes").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selMaxResThermal").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selCompression").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selChannels").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selSerialPort").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selOptZoom").onchange = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("selDetRange").onchange = function(){sendAjaxRequest(this.id, this.value); /*MenuUpdater.setDetRange(this.id, this.value);*/}//!
		//document.getElementById("selDetRangeVehicle").onchange = function(){sendAjaxRequest(this.id, this.value); MenuUpdater.setDetRange(this.id, this.value);}//!
		
		//initiate field of view-functions
		//document.getElementById("txtSceneWidth").onkeyup = function(){ MenuUpdater.fieldOfView(this.id, this.value);}
		//document.getElementById("txtSceneHeight").onkeyup = function(){ MenuUpdater.fieldOfView(this.id, this.value);}
		//document.getElementById("txtDistanceFromCam").onkeyup = function(){ MenuUpdater.fieldOfView(this.id, this.value);}
		document.getElementById("selSurvObj").onchange = function(){sendAjaxRequest(this.id, this.value); MenuUpdater.updateSliderScale(this.value, "resDistanceFromCamSlider");}
		
		document.getElementById("listTypeImg").onclick = function(){sendAjaxRequest(this.id, this.value);}
		document.getElementById("listTypeList").onclick = function(){sendAjaxRequest(this.id, this.value);}
		
		document.getElementById("clearSelections").onclick = function(){return MenuUpdater.clearSelections();}
		
	},
	
	updateSliderScale:function(val, sliderId){
		var value = $("#"+sliderId).slider( "option", "value" );
		if(val == "strongIdent"){
			$("#"+sliderId).slider( "option", "max", 50 );
			if(value > 50){
				$("#"+sliderId).slider( "option", "value", 50 );
				updateSliderVal("resDistanceFromCamValue", 50);
			}
		}else if(val == "ident"){
			$("#"+sliderId).slider( "option", "max", 100 );
			if(value > 100){
				$("#"+sliderId).slider( "option", "value", 100 );
				updateSliderVal("resDistanceFromCamValue", 100);
			}
		}else{
			$("#"+sliderId).slider( "option", "max", 200 );
		}
		var value = $("#"+sliderId).slider( "option", "value" );
		$("#"+sliderId).slider( "option", "value", value );
	},
	
	fieldOfView:function(txtId, txtVal){
		//todo: validate numbers!
		unit = document.getElementById("sel"+txtId.substring(3)).value;
		//alert(unit);
		sendAjaxRequest(txtId, txtVal);
	},
	
	toggleVisibility:function(tableId, imgId, imgOpen, imgClosed){
		if(document.getElementById(tableId).style.display == "none"){
			document.getElementById(tableId).style.display = "block";
			document.getElementById(imgId).src = "img/"+imgOpen;
		}else{
			document.getElementById(tableId).style.display = "none";
			document.getElementById(imgId).src = "img/"+imgClosed;
		}
	},
	
	showAdditionalInfo:function(elementId, isChecked){
		//For the additional info boxes that are displayed when certain features are selected, e.g. outdoor ready and vandal resistant
		if(isChecked){
			if(document.getElementById("chkRuggedized").checked && document.getElementById("chkVandalRes").checked && (elementId == "chkVandalRes" || elementId == "chkRuggedized")){
				//special behaviour if the above two are checked
				document.getElementById("ruggedizedVandalinfo").style.display = 'block';
				MenuUpdater.additionalinfo[MenuUpdater.additionalinfo.length] = document.getElementById("ruggedizedVandalinfo");
				document.getElementById("chkRuggedizedinfo").style.display = 'none';
				for(var i = 0; i < MenuUpdater.additionalinfo.length; i++){
					if(MenuUpdater.additionalinfo[i] == document.getElementById("chkRuggedizedinfo")){
						MenuUpdater.additionalinfo[i] = '';
					}
				}
				document.getElementById("chkVandalResinfo").style.display = 'none';
				for(var i = 0; i < MenuUpdater.additionalinfo.length; i++){
					if(MenuUpdater.additionalinfo[i] == document.getElementById("chkVandalResinfo")){
						MenuUpdater.additionalinfo[i] = '';
					}
				}
			}
			else{
				//display the info
				//default behaviour
				document.getElementById(elementId+"info").style.display = 'block';
				MenuUpdater.additionalinfo[MenuUpdater.additionalinfo.length] = document.getElementById(elementId+"info");
			}
		}else{
			if(document.getElementById("chkRuggedized").checked || document.getElementById("chkVandalRes").checked && !(document.getElementById("chkRuggedized").checked && document.getElementById("chkVandalRes").checked)){
				//special behaviour if one of the above two are checked
				document.getElementById("ruggedizedVandalinfo").style.display = 'none';
				for(var i = 0; i < MenuUpdater.additionalinfo.length; i++){
					if(MenuUpdater.additionalinfo[i] == document.getElementById("ruggedizedVandalinfo")){
						MenuUpdater.additionalinfo[i] = '';
					}
				}
				if(document.getElementById("chkRuggedized").checked){
					document.getElementById("chkRuggedizedinfo").style.display = 'block';
					MenuUpdater.additionalinfo[MenuUpdater.additionalinfo.length] = document.getElementById("chkRuggedizedinfo");
				}
				if(document.getElementById("chkVandalRes").checked){
					document.getElementById("chkVandalResinfo").style.display = 'block';
					MenuUpdater.additionalinfo[MenuUpdater.additionalinfo.length] = document.getElementById("chkVandalResinfo");
				}

			}

			//hide the info
			//default behaviour
			document.getElementById(elementId+"info").style.display = 'none';
			for(var i = 0; i < MenuUpdater.additionalinfo.length; i++){
				if(MenuUpdater.additionalinfo[i] == document.getElementById(elementId+"info")){
					MenuUpdater.additionalinfo[i] = '';
				}
			}

		}
	},
	
	changeProdType:function(obj){
		if(obj.value == "camera" || obj == "camera"){
			Comparison.resetCompare();
			MenuUpdater.clearSelections();
			//hide encoders & deselect them
			MenuUpdater.hideEncoderSpecificFilters();
			
			//hide thermal cams & deselect them
			MenuUpdater.hideThermalCamSpecificFilters();
			
			//view cameras
			MenuUpdater.viewCamSpecificFilters();
			
			//set cookie
			_set_session_cookie('prodSelectorProdType', 'camera');
		}
		else if(obj.value == "video" || obj == "video"){
			Comparison.resetCompare();
			MenuUpdater.clearSelections();
			//hide cams & deselect them
			MenuUpdater.hideCamSpecificFilters();
			
			//hide thermal cams & deselect them
			MenuUpdater.hideThermalCamSpecificFilters();
			
			//view encoders
			document.getElementById("prodFamilyEncoders").style.display = '';
			document.getElementById("info23").style.display = '';
			document.getElementById("channels").style.display = '';
			document.getElementById("ptzsupport").style.display = '';
			document.getElementById("serialPortType").style.display = '';
			
			if(document.getElementById("chkAudio").checked)
				document.getElementById("audioDetection").style.display = '';
				
			//set cookie
			_set_session_cookie('prodSelectorProdType', 'video');

		}
		else if(obj.value == "thermal" || obj == "thermal"){
			Comparison.resetCompare();
			MenuUpdater.clearSelections();
			//hide cams & deselect them
			MenuUpdater.hideCamSpecificFilters();
			//hide encoders & deselect them
			MenuUpdater.hideEncoderSpecificFilters();
			//view thermal cams
			MenuUpdater.viewThermalCamSpecificFilters();
			
			_set_session_cookie('prodSelectorProdType', 'thermal');
		}
		else if(obj.id == "chkAudio"){
			if(obj.checked){
				document.getElementById("twowayAudio").style.display = '';
				if(document.getElementById("prodType").value == "video"){
					document.getElementById("audioDetection").style.display = '';
				}
			}
			else{
				document.getElementById("twowayAudio").style.display = 'none';
				document.getElementById("chkTwowayAudio").checked = false;
				document.getElementById("audioDetection").style.display = 'none';
				document.getElementById("chkAudioDetection").checked = false;
			}
		}
	},
	
	changeProdFamily:function(obj){
		if(obj.value == "select"){
			document.getElementById("varifocal").style.display = 'none';
			document.getElementById("chkVarifocal").checked = false;
			document.getElementById("ptzoperation").style.display = 'none';
			document.getElementById("chkPtzOp").checked = false;
		}
		else if(obj.value == "ptzDomes" || obj.value == "ptzCams"){
			document.getElementById("varifocal").style.display = 'none';
			document.getElementById("chkVarifocal").checked = false;
			//document.getElementById("ptzoperation").style.display = '';
		}else{
			document.getElementById("varifocal").style.display = '';
			document.getElementById("ptzoperation").style.display = 'none';
			document.getElementById("chkPtzOp").checked = false;
		}
			
	},
	
	clearSelections:function(){
		onclickArr = new Array();
		onclickArr[0] = "chkOutdoorReady";
		onclickArr[1] = "chkDayNight";
		onclickArr[2] = "chkPoe";
		onclickArr[3] = "chkAudio";
		onclickArr[4] = "chkProgScan";
		onclickArr[5] = "chkWdr";
		onclickArr[6] = "chkPtzSup";
		onclickArr[7] = "chkPtzOp";
		onclickArr[8] = "chkMotionDet";
		onclickArr[9] = "chkTampAlarm";
		onclickArr[10] = "chkInputOutput";
		onclickArr[11] = "chkLocalStorage";
		onclickArr[12] = "chkTwowayAudio";
		onclickArr[13] = "chkVarifocal";
		onclickArr[14] = "chkChngLens";
		onclickArr[15] = "chkDigZoom";
		onclickArr[16] = "chkAudioDetection";
		onclickArr[17] = "chkWireless";
		onclickArr[18] = "chkVandalRes";
		onclickArr[19] = "chkRuggedized";
		onclickArr[20] = "chkColorPalette";
		onclickArr[21] = "chkAVHS";
		onclickArr[22] = "chkFovActivate";
		onclickArr[23] = "chkResActivate";
		
		onchangeArr = new Array();
		onchangeArr[0] = "prodType";
		onchangeArr[1] = "prodFamilyCams";
		onchangeArr[2] = "prodFamilyEncoders";
		onchangeArr[3] = "prodFamilyThermal";
		onchangeArr[4] = "selMaxRes";
		onchangeArr[5] = "selCompression";
		onchangeArr[6] = "selChannels";
		onchangeArr[7] = "selSerialPort";
		onchangeArr[8] = "selOptZoom";
		onchangeArr[9] = "selMaxResThermal";
		onchangeArr[10] = "selDetRange";//!
		//onchangeArr[11] = "selDetRangeVehicle";//!
		
		for(i = 0; i < onclickArr.length; i++){
			//alert(onclickArr[i]);
			document.getElementById(onclickArr[i]).checked = false;
		}
		
		for(i = 0; i < onchangeArr.length; i++){
			if(onchangeArr[i] != "prodType")
				document.getElementById(onchangeArr[i]).selectedIndex = 0;
		}
		
		for(var i = 0; i < MenuUpdater.additionalinfo.length; i++){
			if(MenuUpdater.additionalinfo[i] != ''){
				MenuUpdater.additionalinfo[i].style.display = 'none';
				MenuUpdater.additionalinfo[i] = '';
			}
		}
		
		document.getElementById("sceneWidth").style.display = 'none';
		document.getElementById("sceneHeight").style.display = 'none';
		document.getElementById("distanceFromCam").style.display = 'none';
		document.getElementById("survObj").style.display = 'none';
		document.getElementById("resDistanceFromCam").style.display = 'none';

		//MenuUpdater.changeProdType("camera");
		sendAjaxRequest('','');
		
		return false;
	},
	
	hideCamSpecificFilters:function(){
		document.getElementById("prodFamilyCams").style.display = 'none';
		document.getElementById("prodFamilyCams").value = 'select';
		document.getElementById("info1").style.display = 'none';
		document.getElementById("daynight").style.display = 'none';
		document.getElementById("chkDayNight").checked = false;
		document.getElementById("inoutdoor").style.display = 'none';
		document.getElementById("chkOutdoorReady").checked = false;
		document.getElementById("maxres").style.display = 'none';
		document.getElementById("selMaxRes").value = 'select';

		document.getElementById("ptzoperation").style.display = 'none';
		document.getElementById("chkPtzOp").checked = false;

		document.getElementById("videoHandlingHeader").style.display = 'none';
		document.getElementById("progressiveScan").style.display = 'none';
		document.getElementById("chkProgScan").checked = false;
		document.getElementById("wideDynamicRange").style.display = 'none';
		document.getElementById("chkWdr").checked = false;

		document.getElementById("opticalFeaturesHeader").style.display = 'none';
		document.getElementById("varifocal").style.display = 'none';
		document.getElementById("chkVarifocal").checked = false;
		document.getElementById("changeableLens").style.display = 'none';
		document.getElementById("chkChngLens").checked = false;
		document.getElementById("opticalZoom").style.display = 'none';
		document.getElementById("selOptZoom").value = 'select';
		document.getElementById("digitalZoom").style.display = 'none';
		document.getElementById("chkDigZoom").checked = false;

		document.getElementById("connectivityHeader").style.display = 'none';
		document.getElementById("wireless").style.display = 'none';
		document.getElementById("chkWireless").checked = false;

		document.getElementById("environmentHeader").style.display = 'none';
		document.getElementById("vandalResistant").style.display = 'none';
		document.getElementById("chkVandalRes").checked = false;
		document.getElementById("ruggedized").style.display = 'none';
		document.getElementById("chkRuggedized").checked = false;
		
		document.getElementById("field_of_view").style.display = 'none';
		document.getElementById("chkFovActivate").checked = false;
		document.getElementById("chkResActivate").checked = false;
	},
	
	hideThermalCamSpecificFilters:function(){
		document.getElementById("prodFamilyThermal").style.display = 'none';
		document.getElementById("prodFamilyThermal").value = 'select';
		document.getElementById("info32").style.display = 'none';
		document.getElementById("maxresThermal").style.display = 'none';
		document.getElementById("selMaxResThermal").value = 'select';
		//document.getElementById("detRangePerson").style.display = 'none';
		document.getElementById("selDetRange").value = 'select';//!
		//document.getElementById("detRangeVehicle").style.display = 'none';
		document.getElementById("detRange").style.display = 'none';
		//document.getElementById("selDetRangeVehicle").value = 'select';//!
		document.getElementById("colorPalette").style.display = 'none';
		document.getElementById("chkColorPalette").checked = false;
		document.getElementById("inoutdoorthermal").style.display = 'none';
		document.getElementById("chkOutdoorReadyThermal").checked = false;
	},
	
	hideEncoderSpecificFilters:function(){
		document.getElementById("prodFamilyEncoders").style.display = 'none';
		document.getElementById("prodFamilyEncoders").value = 'select';
		document.getElementById("info23").style.display = 'none';
		document.getElementById("channels").style.display = 'none';
		document.getElementById("selChannels").value = 'select';
		document.getElementById("ptzsupport").style.display = 'none';
		document.getElementById("chkPtzSup").checked = false;
		document.getElementById("serialPortType").style.display = 'none';
		document.getElementById("selSerialPort").value = 'select';
		document.getElementById("audioDetection").style.display = 'none';
		document.getElementById("chkAudioDetection").checked = false;
	},
	
	viewCamSpecificFilters:function(){
		document.getElementById("prodFamilyCams").style.display = '';
		document.getElementById("info1").style.display = '';
		document.getElementById("daynight").style.display = '';
		document.getElementById("inoutdoor").style.display = '';
		document.getElementById("maxres").style.display = '';
		
		document.getElementById("videoHandlingHeader").style.display = '';
		document.getElementById("progressiveScan").style.display = '';
		document.getElementById("wideDynamicRange").style.display = '';

		document.getElementById("opticalFeaturesHeader").style.display = '';
		document.getElementById("changeableLens").style.display = '';
		document.getElementById("opticalZoom").style.display = '';
		document.getElementById("digitalZoom").style.display = '';

		document.getElementById("connectivityHeader").style.display = '';
		document.getElementById("wireless").style.display = '';

		document.getElementById("environmentHeader").style.display = '';
		document.getElementById("ruggedized").style.display = '';
		document.getElementById("vandalResistant").style.display = '';
		
		document.getElementById("field_of_view").style.display = '';
	},
	
	viewThermalCamSpecificFilters:function(){
		document.getElementById("prodFamilyThermal").style.display = '';
		document.getElementById("info32").style.display = '';
		document.getElementById("maxresThermal").style.display = '';
		document.getElementById("selMaxResThermal").value = 'select';
		//document.getElementById("detRangePerson").style.display = '';
		//document.getElementById("detRangeVehicle").style.display = '';
		document.getElementById("detRange").style.display = '';
		document.getElementById("colorPalette").style.display = '';
		document.getElementById("inoutdoorthermal").style.display = '';

	},
	
	viewEncoderSpecificFilters:function(){
	},
	
	setDetRange:function(objId, objVal){
		if(objId == "selDetRangePerson"){
			//do stuff
			if(objVal == "select"){
				document.getElementById("selDetRangeVehicle").selectedIndex = 0;
			}else if(objVal == "200m"){
				document.getElementById("selDetRangeVehicle").selectedIndex = 1;
			}else if(objVal == "380m"){
				document.getElementById("selDetRangeVehicle").selectedIndex = 3;
			}else if(objVal == "700m"){
				document.getElementById("selDetRangeVehicle").selectedIndex = 4;
			}else if(objVal == "1200m"){
				document.getElementById("selDetRangeVehicle").selectedIndex = 5;
			}
		}
		else if(objId == "selDetRangeVehicle"){
			//do other stuff
			if(objVal == "select"){
				document.getElementById("selDetRangePerson").selectedIndex = 0;
			}else if(objVal == "460m"){
				document.getElementById("selDetRangePerson").selectedIndex = 1;
			}else if(objVal == "550m"){
				document.getElementById("selDetRangePerson").selectedIndex = 1;
			}else if(objVal == "870m"){
				document.getElementById("selDetRangePerson").selectedIndex = 2;
			}else if(objVal == "1610m"){
				document.getElementById("selDetRangePerson").selectedIndex = 3;
			}else if(objVal == "2760m"){
				document.getElementById("selDetRangePerson").selectedIndex = 4;
			}
		}
		else{
			//do nothing
		}
		sendAjaxRequest('','');
	}
}


/*
NOTE: when using the browser's back-button to go back to the page 
calling the init-functions, they are called in IE and Chrome.
However they are NOT called in Firefox nor Safari. Interesting.
Bug or feature? Who knows, but good to be aware of.
*/

window.onload = function(){ Tooltip.init(); MenuUpdater.init(); ajaxInit();  Comparison.init();  }
$(document).ready(function(){
	$('#distanceFromCamSlider').slider({animate:true, max: 100, min: 1, slide: function(event, ui){updateSliderVal("distanceFromCamValue", $("#distanceFromCamSlider").slider("option","value"));}, stop: function(event, ui){sendAjaxRequest(this.id, $("#distanceFromCamSlider" ).slider( "option", "value" )); updateSliderVal("distanceFromCamValue", $("#distanceFromCamSlider").slider("option","value"));}});
	$('#sceneHeightSlider').slider({animate:true, max: 100, min: 1, slide: function(event, ui){updateSliderVal("sceneHeightValue", $("#sceneHeightSlider").slider("option","value"));}, stop: function(event, ui){sendAjaxRequest(this.id, $("#sceneHeightSlider" ).slider( "option", "value" )); updateSliderVal("sceneHeightValue", $("#sceneHeightSlider").slider("option","value"));}});
	$('#sceneWidthSlider').slider({animate:true, max: 100, min: 1, slide: function(event, ui){updateSliderVal("sceneWidthValue", $("#sceneWidthSlider").slider("option","value"));}, stop: function(event, ui){sendAjaxRequest(this.id, $("#sceneWidthSlider" ).slider( "option", "value" )); updateSliderVal("sceneWidthValue", $("#sceneWidthSlider").slider("option","value"));}});
	$('#resDistanceFromCamSlider').slider({animate:true, max: 50, min: 1, slide: function(event, ui){updateSliderVal("resDistanceFromCamValue", $("#resDistanceFromCamSlider").slider("option","value"));}, stop: function(event, ui){sendAjaxRequest(this.id, $("#resDistanceFromCamSlider" ).slider( "option", "value" )); updateSliderVal("resDistanceFromCamValue", $("#resDistanceFromCamSlider").slider("option","value"));}});
});

function updateSliderVal(id, value){
	$('#'+id).html(value+" meters / " + Math.round(Math.round(value / .3048 * 100) * .01) +" feet");
}
