$(document).ready(function(){	
	crir = {
	init: function() {
		
		//arrLabels = document.getElementsByTagName('label');	
		arrLabels = $("#filter_korpus label, #filter_map label, #filter_flor label, #filter_plan label, #filter_other label");
		
		searchLabels:
		for (var i=0; i<arrLabels.length; i++) {			
			// get the input element based on the for attribute of the label tag
			if (arrLabels[i].getAttributeNode('for') && arrLabels[i].getAttributeNode('for').value != '') {
				labelElementFor = arrLabels[i].getAttributeNode('for').value;				
				inputElement = document.getElementById(labelElementFor);
			}
			else {
				continue searchLabels;
			}
			inputElementClass = inputElement.className;	
		
			// if the input is specified to be hidden intiate it
			if (inputElementClass == 'crirHiddenJS') {
				inputElement.className = 'crirHidden';
				
				inputElementType = inputElement.getAttributeNode('type').value;	
				
				// add the appropriate event listener to the input element
				if (inputElementType == "checkbox") {
					inputElement.onclick = crir.toggleCheckboxLabel;
				}
				else {
					inputElement.onclick = crir.toggleRadioLabel;
				}				
				// set the initial label state
				if (inputElement.checked) {
					if (inputElementType == 'checkbox') { arrLabels[i].className = 'checkbox_checked'}
					else { arrLabels[i].className = 'radio_checked' }
				}
				else {
					if (inputElementType == 'checkbox') { arrLabels[i].className = 'checkbox_unchecked'}
					else { arrLabels[i].className = 'radio_unchecked' }
				}
			}
			else if (inputElement.nodeName != 'SELECT' && inputElement.getAttributeNode('type').value == 'radio') { // this so even if a radio is not hidden but belongs to a group of hidden radios it will still work.
				arrLabels[i].onclick = crir.toggleRadioLabel;
				inputElement.onclick = crir.toggleRadioLabel;
			}
		}			
	},
	findLabel: function (inputElementID) {
		arrLabels = document.getElementsByTagName('label');
		searchLoop:
		for (var i=0; i<arrLabels.length; i++) {
			if (arrLabels[i].getAttributeNode('for') && arrLabels[i].getAttributeNode('for').value == inputElementID) {
				return arrLabels[i];
				break searchLoop;
			}
		}		
	},
	
	findMap: function (inputElementID) {
		arrLabels = document.getElementsByTagName('label');
		searchLoop:
		for (var i=0; i<arrLabels.length; i++) {
			if (arrLabels[i].getAttributeNode('for') && arrLabels[i].getAttributeNode('for').value == inputElementID && arrLabels[i].getAttributeNode('is_map')) {
				return arrLabels[i];
				break searchLoop;
			}
		}		
	},
	
	
	check_plans: function (id) {
		var obj=document.getElementById(id);
		if (obj.checked) {
			for (i=0;i<catch_checkboxes.length;i++) {
				if (id==catch_checkboxes[i]) {
					for (j=0;j<check_checkboxes[i].length;j++) {
						obj = document.getElementById(check_checkboxes[i][j]);
						planstoggle(obj,true);
					}
				}
			}
		} else {

			for (i=0;i<catch_checkboxes.length;i++) {
				if (id==catch_checkboxes[i]) {
					for (j=0;j<check_checkboxes[i].length;j++) {
						obj = document.getElementById(check_checkboxes[i][j]);
						planstoggle(obj,false);
					}
				}
			}

			for (i=0;i<check_checkboxes.length;i++) {
				for (j=0;j<check_checkboxes[i].length;j++) {
					if (check_checkboxes[i][j]==id) {
						obj = document.getElementById(catch_checkboxes[i]);
						planstoggle(obj,false);
					}					
				}			
			}			
		}	
		check_floors();
		check_filter();
	},
	
	toggleCheckboxLabel: function () {
		labelElement = crir.findLabel(this.getAttributeNode('id').value);
	
		if(labelElement.className == 'checkbox_checked') {
			labelElement.className = "checkbox_unchecked";
		}
		else {
			labelElement.className = "checkbox_checked";
		}
		
		labelElement = crir.findMap(this.getAttributeNode('id').value);
		
		if (labelElement) {
			if(labelElement.className == 'checked') {
				labelElement.className = "";
			}
			else {
				labelElement.className = "checked";
			}
		}
		
		crir.check_plans(this.getAttributeNode('id').value);
	},	
	
	toggleRadioLabel: function () {			 
		clickedLabelElement = crir.findLabel(this.getAttributeNode('id').value);
		
		clickedInputElement = this;
		clickedInputElementName = clickedInputElement.getAttributeNode('name').value;
		
		//arrInputs = document.getElementsByTagName('input');
		arrInputs = $("input.crirHidden, input.crirHiddenJS");
	
		// uncheck (label class) all radios in the same group
		for (var i=0; i<arrInputs.length; i++) {			
			inputElementType = arrInputs[i].getAttributeNode('type').value;
			if (inputElementType == 'radio') {
				inputElementName = arrInputs[i].getAttributeNode('name').value;
				inputElementClass = arrInputs[i].className;
				// find radio buttons with the same 'name' as the one we've changed and have a class of chkHidden
				// and then set them to unchecked
				if (inputElementName == clickedInputElementName && inputElementClass == 'crirHidden') {				
					inputElementID = arrInputs[i].getAttributeNode('id').value;
					labelElement = crir.findLabel(inputElementID);
					labelElement.className = 'radio_unchecked';
				}
			}
		}
	
		// if the radio clicked is hidden set the label to checked
		if (clickedInputElement.className == 'crirHidden') {
			clickedLabelElement.className = 'radio_checked';
		}	
		check_filter();
	},
	
	addEvent: function(element, eventType, doFunction, useCapture){
		if (element.addEventListener) 
		{
			element.addEventListener(eventType, doFunction, useCapture);
			return true;
		} else if (element.attachEvent) {
			var r = element.attachEvent('on' + eventType, doFunction);
			return r;
		} else {
			element['on' + eventType] = doFunction;
		}
	}
	}
	crir.addEvent(window, 'load', crir.init, false);	

	$("div.list_content div.tab_right").eq(0).show();
	
	$(".list h1").click(function () {
		$(".tab").removeClass("opened");
		$(this).parents(".tab").toggleClass("opened");
		var index = $(".list h1").index(this);
		$("div.list_content div.tab_right").hide();
		$("div.list_content div.tab_right").eq(index).show();
		});
	$("#img_on").hide();
	$(".flash_site_link").hover(						
		function() {$("#img_on").animate({opacity: "show"}, 500);}		
	);
	$(".flash_site_link").mouseout(
		function(){
			$("#img_on").hide();
		}
	);
	/* var gal = null;
	$(function() { */
		/*gal = */ 
		/* $('a.lightbox1').lightBox(); */
		/*gal = */ 
		$('a.lightbox2').lightBox();
	/* }); */	
	
	$(".comm span").click(
		function () {
			$("p.comm_open").toggle();				
		}	
	);	
	$("span.form_event").click(
			function(){
				$("#overlay_order").show();
				$('#BlockOrder').show();
				}
		);
	$("#close").click(
			function(){
				$("#overlay_order").hide();
				$('#BlockOrder').hide();
				}
		);
	$("a.panoram_event").click(
			function(){
				var w_width = $(window).width()-100;
				var l_margin = -Math.round(w_width/2);
				$("#BlockPanoram").css({ "width":w_width+"px", "margin-left":l_margin+"px"});
				$("#overlay_order").show();
				$('#BlockPanoram').show();
				}
		);
	$("#close").click(
			function(){
				$("#overlay_order").hide();
				$('#BlockPanoram').hide();
				}
		);	
	
	$("#toleft").hover(
		function(){
			var diff=$("#block_img img").width()-$("#block_img").width();
			var x=parseInt($("#block_img img").css("left"));
			var k = Math.abs(x/1000);
			for (;x<=0;x+=10){
				$("#block_img img").animate({"left": x+"px"}, {duration: k * 10000, queue: false});
			}
		}		
	);
	$("#toleft, #toright").mouseout(
		function(){
			$("#block_img img").stop();
		}
	);
	$("#toright").hover(
		function(){
			var diff=$("#block_img img").width()-$("#block_img").width();
			var x=parseInt($("#block_img img").css("left"));
			var k = Math.abs((diff + x)/1000);
			for (;-x<=diff;x-=10){
				$("#block_img img").animate({"left": x+"px"}, {duration: k * 10000, queue: false});
			}
		}
	);
	/*
	$("#BlockOrder").click(function () { 
      alert($("p").width()); 
    });
	$("#BlockPanoram").click(function () { 
      alert($("#BlockPanoram").height());
    });
	*/
});