$(function(){

	/* PNG fix */
	if (typeof($.ifixpng) == "function") {
		$.ifixpng('../images/global/transparent.gif');
		$("img[src$='.png'], .menu_1 a, .menu_2 a, .menu_3 a, ul.highlightsContainer, ul.highlightsContainer li, ul.highlightsContainer li a").ifixpng();
	};
	
	//FLASH background
	function cancelFunction() {
        alert("Cancelou a instalação do Flash Player!");
	}
	if (swfobject.hasFlashPlayerVersion("9.0.0")) {
        var fn = function() {
			var flashHeight = $("#pageTopBackground").height();
			var att = { data:"../flash/background_adjustable.swf", width:"1600", height: flashHeight };
			var par = {wmode: "opaque"};
			var id = "pageTopBackground";
			swfobject.createSWF(att, par, id);
        };      
	}
	else {
		$("#pageTopBackground").css({"background-color": "#ffffff", "background-image": "url('../images/global/background_content.jpg')", "background-repeat": "no-repeat", "background-position": "center bottom"});
		var fn = function() {
			var att = { data:"../flash/expressInstall.swf", width:"1600", height:"100%" };
			var par = {};
			var id = "pageTopBackground";
			swfobject.showExpressInstall(att, par, id, cancelFunction);
		}
	}
	swfobject.addDomLoadEvent(fn);
	
	//GENERIC FUNCTIONS
	/* makes an object from an URL */
	function getSearchHash() {
	  var hash = {};
	  location.search.replace(new RegExp( "([^?=&]+)(=([^&amp;]*))?", "g" ),function( $0, $1, $2, $3 ){
		hash[$1] = $3;
	  })
	  return hash;
	}
	
	//INPUT'S HOVER AND OUT
	if($("input, select, textarea").length) {
		$("input[type='text'], input[type='password'], select, textarea").focus(function() {
			$(this).addClass("inputFocus");
		});
		$("input[type='text'], input[type='password'], select, textarea").blur(function() {
			$(this).removeClass("inputFocus");
		});
	};
	
	//LATERAL MENU
	if($("ul.lateralMenu").length) {
		$(".lateralMenu li ul").hide();
		$(".lateralMenu li.submenu").find(".less").hide();
		$(".lateralMenu li.submenu").hoverIntent({
			sensitivity: 5,
			interval: 150,
			over: function(){
				$(this).find(".plus:eq(0)").hide();
				$(this).find(".less:eq(0)").show();
				$(this).find("ul:eq(0)").slideDown();
			},
			timeout: 300, 
			out: function(){
				if(!$(this).is('.opened')){
					$(this).find(".less:eq(0)").hide();
					$(this).find(".plus:eq(0)").show();
					$(this).find("ul:eq(0)").slideUp();
				}
			}
		});

		//INIT
		function getHttpVars(){
			var vars = [], value;
			var keys = location.search.slice(1).split('&');
			for(var i = 0; i < keys.length; i++){
				value = keys[i].split('=');
				value[1] = unescape(value[1]);
				vars.push(value[0]);
				vars[value[0]] = value[1];
			}
			return vars;
		}

		var get = getHttpVars();
		(location.search) ? elm = $('.item_id_'+get['item_id']+', .e_type_'+get['e_type']+', .cp_type_'+get['cp_type']+', .map_type_'+get['map_type']) : elm = $("a[href='.."+location.pathname+"']");
		elm.each(function(){
			if($(this).parents('li').length>1){
				$(this).addClass('active');
			} else if(!location.search){
				$(this).addClass('active');
			}
			$(this).parents('li').each(function(i){
				$(this).addClass('opened');
				$(this).find('.plus:eq(0)').hide();
				$(this).find('.less:eq(0)').show();
				$(this).find('ul:eq(0)').show();
			});
		});

	}
	
	//EMPREENDIMENTOS ITEM SECTION IMAGE SPACMENT
	if($(".itemSectionImg").length) {
		$(".itemSectionImg:eq(1), .itemSectionImg:eq(4)").css("margin","0 6px 10px 6px");
	}
	
	//MAP FILTERS
	if($("form[name='filterMap']").length) {
		$("form[name='filterMap']").find("input[type='checkbox']").each(function(){
			$(this).click(function(){
				//var refreshState = sendMapInfoToJson();
				refreshState();
			});
		});
	}
	
	//TABS
	if($(".tabs").length) {
		$(".tabs").tabs({
			select: function(event, ui) {
				var url = $.data(ui.tab, 'load.tabs');
				if( url ) {
					location.href = url;
					return false;
				}
				return true;
			}
		});
		$(".tabs").find("ul.sections li:first a").addClass("first");
	}
	
	//SECTION SELECT MENU	
	if($(".sectionSelect").length) {
		$("select[name='sectionMenu'] option:first").addClass("first");
		$("select[name='sectionMenu']").change(function(){
			$(this).find("option:selected").each(function(){
				if($(this).val() !== ""){
					var url = $(this).val();
					window.location.assign(url);
				}
			});
		});
	}
	
	//INFO TECNICA CSS CROSS-BROWSER EXCEPTION
	if($("#contentContainer .info-tecnica dl").length) {
		$("#contentContainer .info-tecnica dl").each(function(){
			$(this).find("dt:first, dd:first").css("border-top", "none");
		});
	}
	
	//IMAGE GALLERY
	if($("ul.itemImageGallery").length) {
		$("ul.itemImageGallery li").eq(1).css({"margin": "0 11px 11px 11px"});
		$("ul.itemImageGallery li").eq(4).css({"margin": "0 11px 11px 11px"});
		$("ul.itemImageGallery li").eq(7).css({"margin": "0 11px 11px 11px"});
		$("ul.itemImageGallery li").eq(10).css({"margin": "0 11px 11px 11px"});
		$("ul.itemImageGallery li").eq(13).css({"margin": "0 11px 11px 11px"});
		$("ul.itemImageGallery li").eq(16).css({"margin": "0 11px 11px 11px"});
	}
	if($(".selectDate").length) {
		$(".selectDate select").change(function(){
			$(this).find("option:selected").each(function() {
				$(".selectDate").submit();
			});
		});
	}
	
	//FAQS
	if($(".faqs").length) {	
		if(location.hash != undefined && location.hash != '') {
			$("dl").each(function(){
				if($(this).find("dt").find("a").attr("href") != location.hash) {
					$(this).find("dd").hide().parents("dl").addClass("closed");
				}
				else {
					$(this).find("dd").hide().parents("dl").removeClass("closed").find("dd").slideDown();
					$(document).scrollTop($(this).position().top);
				}
			});
		} else {
			$("dl").find("dd").hide().parents("dl").addClass("closed");
		}
		
		$("dl").find("dt").find("a").click(function(e){
			e.preventDefault();
			if($(this).parents("dl").hasClass("closed")){
				$(this).parents(".faqs").find("dl").not(".closed").find("dd").slideUp().parents("dl").addClass("closed");
				$(this).parents("dl").find("dd").slideDown().parents("dl").removeClass("closed");
			} else {
				$(this).parents("dl").find("dd").slideUp().parents("dl").addClass("closed");
			}
		});
	}
	
	//COLLAPSE CONTENT
	if($(".colapse").length) {
		$(".colapse").removeClass("active");
		$(".content").hide();

		$(".colapse").click(function(event){
			event.preventDefault();
			if($(this).next(".content").is(".lastOpen")){
				$(".colapse").removeClass("active");
				$(".lastOpen").slideUp("slow").removeClass("lastOpen");
			} else {
				$(".colapse").removeClass("active");
				$(this).addClass("active");
				$(".lastOpen").slideUp("slow").removeClass("lastOpen");
				$(this).next(".content").slideToggle("slow").addClass("lastOpen");
			}
		});
	}
	
	//PEDIDO DE VISITA EMPREENDIMENTO
	if($(".pedidoVisita").length) {
		$("select[name='empreendimento'] option:not('."+$("input[name='type']:checked").val()+"')").hide();
		$("input[name='type']").change(function() {
			$("select[name='empreendimento'] option").show().not('.'+$("input[name='type']:checked").val()).hide();
		});
	}
	
	//FORM VALIDATION
	if($("form.validate").length){
		if($(".forceValidation").length){ $(".forceValidation").attr("validate", "required:true"); }
		$("form.validate").each(function(){
			$(this).validate({
				errorElement: "span",
				errorClass: "errorMsg",
				errorPlacement: function(error, element, errorClass) {
					error.appendTo(element.parent().find(".errorContainer"));
				},
				highlight: function(element) {
					$(element).addClass("errorInput");
					$(element).prev("label").addClass("necessary");
				},
				unhighlight: function(element) {
					$(element).removeClass("errorInput");
					$(element).prev("label").removeClass("necessary");
				},
				rules: {
					empreendimento: { required: true },
					instituicao: { required: true },
					num_alunos: { required: true, number: true },
					nome: { required: true },
					email: { required: true, email: true },
					razao: { required: true },
					mensagem: { required: true }
				},
				messages: {
					empreendimento: "(obrigat&oacute;rio)",
					instituicao: "(obrigat&oacute;rio)",
					num_alunos: { required: "(obrigat&oacute;rio)", number: "(apenas n&uacute;meros)" },
					nome: "(obrigat&oacute;rio)",
					email: { required: "(obrigat&oacute;rio)", email: "(e-mail inv&aacute;lido)" },
					razao: "(obrigat&oacute;rio)",
					mensagem: "(obrigat&oacute;rio)"
				}
			});
		});
	}
	
});