SelectTable = {};
SelectTable.selectItem = function ( item ) {
	
	var selItem = $(item);
	// console.log(selItem.val());
	if (selItem.val() == "-1") {
		return;
	}
	var place = selItem.find('option[value='+selItem.val()+']').text();
	var table = selItem.parents('table.selectableTable');
	
	var table = selItem.parents('table.selectableTable');
	var title = table.find('td.activeTitle');
	title.empty()
		 .text(place);
	
	var chosen = table.find("tr.data").hide()
	 		 	.filter("[rel="+selItem.val()+"]").show()
				.find("td.index").hide();
	
}
SelectTable.init = function () {
	var tables = $('table.selectableTable');
	tables.each( SelectTable.initEach );
}
SelectTable.initEach = function() {
	var table = $(this);
	table.find("tr.data").hide();
	var select = table.find('select');
	var places = table.find('td.index');
	var icons = table.find('td.icon');
	
	places.each( function (index) {
		var item = $(this);
		var place = item.text();
		var string = '<option value="'+index+'">'+place+'</option>';
		select.append(string);
		item.parent().attr('rel',index);
	})
	var images = {};
	images['macia'] = "icon-wat.gif";
	images['media'] = "icon-wat3.gif";
	images['dura'] = "icon-wat2.gif";
	images['mt dura'] = "icon-wat4.gif";
	icons.each( function (index) {
		var icon = $(this);
		var text = icon.text();
		icon.empty()
			.append('<img src="images/'+images[text]+'">');
		
	})
	
	select.change( function() {
		SelectTable.selectItem(this);
	});
}

NewsChange = {};
NewsChange.showAll = function() {
	$(".comunicados").each( function(i) {
		$(this).show();
		$(this).find(':not(:nth-child(1),:nth-child(2))').hide();		
	});
	$('#comunicadosPaginar').show();
}

NewsChange.showFew = function() {
	$(".comunicados").each( function(i) {
		if (i < 3 ) {
			$(this).show();
			$(this).children().show();
		} else {
			$(this).hide();
		}
	});
	$('#comunicadosPaginar').hide();
}
NewsChange.toggle = function () {
	var isShowAll = !$(this).data('showAll');
	var text;
	if (isShowAll) {
		text = "Ver destaques";
		NewsChange.showAll();
	} else {
		text = "Ver Todos";
		NewsChange.showFew();
	}	
	$(this).data('showAll', isShowAll );
	var text = $(this).find('em em').text(text);
	return false;
}
NewsChange.init = function() {
	var url = window.location.href;
	var isFrontPage = !url.match(/limite/) || url.match(/limite=0/);
	
	if (isFrontPage) {
		NewsChange.showFew();
		$('#btnShowAll').show().click(NewsChange.toggle);    
	} else {
		NewsChange.showAll();
		$('#btnShowAll').hide();
	}
}

MonthReplace = {};
MonthReplace.init = function() {
	var months = {};
	months['January'] = "Janeiro";
	months['February'] = "Fevereiro";
	months['March'] = "Março";
	months['April'] = "Abril";
	months['May'] = "Maio";
	months['June'] = "Junho";
	months['July'] = "Julho";
	months['August'] = "Agosto";
	months['September'] = "Setembro";
	months['October'] = "Outubro";
	months['November'] = "Novembro";
	months['December'] = "Dezembro";
	var total = months.length;
	$(".localedata").each(function(){
		var text = $(this).text();
		for (var key in months) {
			if ( text.match(key) ) {
				$(this).text(text.replace(key,months[key]));
				break;
			} 
		}
	});
};

DownloadFilesReplace = {};
DownloadFilesReplace.init = function() {
	var replaceDownloads = $('.replaceDownload');
	if (!replaceDownloads.length) {
		return;
	}
	var that = this;
	var downLoadItems = this.downLoadItems = $('.downloadFiles > p');
	if (!downLoadItems.length) {
		return;
	}
	
	replaceDownloads.each(function() {
		var id = parseInt($(this).attr('id').replace('download',''));
		console.log(id);
		that.replaceItem.call(that, id, this);
	});	
}
DownloadFilesReplace.replaceItem = function(id, element) {
	var downloadItem = this.downLoadItems[id];
	if (downloadItem) {
		$(downloadItem).find('strong')
				  	   .remove();
		$(element).after(downloadItem);
	}
}

var SiteMap = {};
SiteMap.init = function() {
	var sitemap = $('#Sitemap');
	if (!sitemap.length) {
		return;
	}          
	
	var h3 = sitemap.find('h3');
	var lis = sitemap.find('.smap > ul > li');
	var nr = h3.length / 3;
	for (var i = (nr); i < h3.length; i+=nr ) {
		  $(h3[i]).addClass('breakColumn');
	}
	var columnMiddle = $(h3[nr]).add($(h3[nr]).nextUntil('.breakColumn'));
    var columnRight = $(h3[nr*2]).add($(h3[nr*2]).nextAll()); 
   	$(lis[1]).append(columnMiddle);
    $(lis[2]).append(columnRight);
}


$( function() {
    
	// ==================
	// = Jies Accordion =
	// ==================
	var _tcontents = $('div.acordion-data ul li div.tcontent');
    _tcontents.hide();
    
	var doScrollTop = !$('#ANossaAgua').length;
	$('div.acordion-data ul li a.sdata')
        .click( function() {
            var _next = $(this).next('div.tcontent');

            if ( _next.is(':visible') ) {
                _next.slideUp('normal', function() { $(this).prev('a.sdata').removeClass('hdata');  });
                return false;
            }
            
            _tcontents.filter(':visible').slideUp('normal', function() { $(this).prev('a.sdata').removeClass('hdata');  });
            _next.slideDown('normal', function(){ $(this).prev('a.sdata').addClass('hdata') });
			if (doScrollTop) {
				$('html, body').animate({scrollTop:0}, 'fast');
			}
            return false;
    });

	
	// ============
	// = Lightbox =
	// ============
	Shadowbox.init({
	    handleOversize	: "drag",
		overlayColor	:"#FFF",
		flashParams		: {bgcolor:"#FFFFFF"},
		troubleElements : ["object", "embed"],
		overlayOpacity	: .8
	});
	
	// ===================
	// = Form validation =
	// ===================
	function formValidation(f) {
		$.validator.messages.required = "Obrigatório";
		$.validator.messages.email = "E-mail inválido.";
		$.validator.messages.digits = "Apenas digitos.";

		var rules = {
			'informacoes' : {
				required	: true,
				minlength	: 1
			}
		};
	
		var messages = {
			'informacoes'	: 'Seleccione pelo menos uma opção'
		};
	
		var errorPlacement =  function(error, element) {
			var count = 0;
		    var place = element.prevAll('label');
			while (place.length == 0) {
				element = element.parent();
				place = element.prevAll('label');
				count++;
				if (count > 2) return;
			}
			place.append(error);
		};
	
		f.validate({
			rules			: rules,
			messages		: messages,
			errorPlacement 	: errorPlacement
		});
	}
	
	function formSetup(f) {
		f.find('input[class*=required]').each(function() {
			var element = $(this);
			var label = $(this).prevAll('label');
			var count = 0;
			while (label.length == 0) {
				element = element.parent();
				place = element.prevAll('label');
				count++;
				if (count > 2) return;
			}
			label.append("*");
		});
	}
	
	function checkFormSent() {
	    var hash;
	    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
		var count = 0;
	    for(var i = 0; i < hashes.length; i++)
	    {
			
	        hash = hashes[i].split('=');
	        if (hash[0] == "esnt" &&  hash[1] == 1) {
				count++;
			}
			
			if (hash[0] == "nl" &&  (hash[1] == 1 || hash[1] == 2)) {
				count += parseInt(hash[1]);
			}
			
	    }
	    return count;
	}
	
	function formSent(f, nl) {
		var title = "Formulário Enviado";
		var msg = '<span style="font-size:13px;color:#55555">O seu formulário foi submetido com sucesso. Obrigado pelo seu contacto.</span>';
		var msgnlOk = '<span style="font-size:13px;color:#55555">O seu contacto foi adicionado. Obrigado pela sua atenção.</span>';
		var msgnlError = '<span style="font-size:13px;color:#55555">O seu e-mail é inválido por favor tente novamente com um endereço correcto.</span>';
		if (nl == 2) {
			msg = msgnlOk;
		} else  if (nl== 3) {
			msg = msgnlError;
		}
		$('div.leftcolumn > h2 > em').empty()
									 .text(title);
		f.empty()
		 .append(msg);
	}
	
	var f = $("#formulario");
	if (f.length) {
		var v = checkFormSent()
		if (v) {
			formSent(f, v);
			return;
		}
		formValidation(f);
		formSetup(f);
	}
	
	// ====================
	// = Search			 =
	// ====================
	//Word highligth
	(function() {
		var search = $('#search');
		if (!search.length) {
			return;
		}
		var searchWord = $('.searchcomment strong').text();
		var searchRegex = new RegExp("("+searchWord+")", "ig");
		var replace = '<span style="color:#94CCD5">$1</span>';
		
		search.find('.searchwrapper a, .searchwrapper > p').each(function() {
			var ref = $(this);
			var htmlNew = ref.html().replace(searchRegex,replace);
			ref.html(htmlNew);
		});
		
		
	})();
	
	//Prevent empty search
	$('.search form').submit(function() {
		console.log($("input#key").val().length > 2);
		return ($("input#key").val().length > 2);
	});
	
	
	// =======================
	// = Page Specific stuff =
	// =======================
	
	NewsChange.init();
    MonthReplace.init();
	SelectTable.init();
	DownloadFilesReplace.init();
	SiteMap.init();	
});
