//-----------------------------------------
//Generic Scripts -------------------------
//-----------------------------------------
function addErrorMessage(formMsgDiv, message){
	var err = formMsgDiv.children("#errorMessages");
	if(!err || err.length==0)
		formMsgDiv.append("<div id=\"errorMessages\" class=\"error\"></div>");

	err = formMsgDiv.children("#errorMessages");
	
	err.append("<img class=\"icon\" src=\"../../dj3/images/common/iconWarning.gif\"/>" + message + "<br\>" );
}

	
function onDocReady(){
	pesqObjectosContentElemId = "null";
	if($(".tools").length){
		$( "#contentTabs" ).tabs( { spinner: '', selected: toolToSelect, cache: true, select: tabSelectedTools, show: tabShowTools } );
	}
	if($(".newsletter").length){
		$( "#contentTabs" ).tabs( { spinner: '', selected: toolToSelect, select: tabSelectedNewsletter, show: tabShowNewsletter } );
	}
}
function handleMessages(tab){
	try{
		if(tab=="postcod"){
			$("#contentInsideTabs div.pdcpTab div.formMessages").children().remove();
			var messages = $("#tabs2-4 div.formMessages").html();
			if(messages && !(messages==="") && $.trim(messages).length>0){
				var tabMessages = $("#contentInsideTabs div.pdcpTab div.formMessages").eq(tabToShow);
				var tabId = $("#contentInsideTabs div.pdcpTab").eq(tabToShow).attr("id");
				tabMessages.children().remove();
				tabMessages.append(messages);
				$("#tabs2-4").children().remove();
				$("#tabs2-4").text("Efetue uma pesquisa e visualize aqui os resultados.");
				focusOnDefault(tabId);
			}
			else{
				$("#contentInsideTabs div.pdcpTab div.formMessages").chidlren().remove();
			}
		}
		else if(tab=="addval"){
			$("#contentInsideTabs3 div.pdcpTab div.formMessages").children().remove();
			var messages = $("#tabs3-2 div.formMessages").html();
			if(messages && !(messages==="") && $.trim(messages).length>0){
				var tabMessages = $("#contentInsideTabs3 div.pdcpTab div.formMessages").eq(tabToShow);
				var tabId = $("#contentInsideTabs3 div.pdcpTab").eq(tabToShow).attr("id");
				tabMessages.children().remove();
				tabMessages.append(messages);
				$("#tabs3-2").children().remove();
				$("#tabs3-2").text("Efetue uma pesquisa e visualize aqui os resultados.");
				focusOnDefault(tabId);
			}
			else{
				$("#contentInsideTabs3 div.pdcpTab div.formMessages").chidlren().remove();
			}
		}
		else if(tab=="stationSearch"){
			$("#contentInsideTabs4 div.pdcpTab div.formMessages").children().remove();
			var messages = $("#tabs4-3 div.formMessages").html();
			if(messages && !(messages==="") && $.trim(messages).length>0){
				var tabMessages = $("#contentInsideTabs4 div.pdcpTab div.formMessages").eq(tabToShow);
				var tabId = $("#contentInsideTabs4 div.pdcpTab").eq(tabToShow).attr("id");
				tabMessages.append(messages);
				$("#tabs4-3").children().remove();
				$("#tabs4-3").text("Efetue uma pesquisa e visualize aqui os resultados.");
				focusOnDefault(tabId);
			}
			else{
				$("#contentInsideTabs4 div.pdcpTab div.formMessages").chidlren().remove();
			}
		}
	}
	catch(erro){}
}


//-----------------------------------------
//Tools Scripts ----------------------------
//-----------------------------------------
function tabSelectedTools(event, ui){
	if($(".contentTabs div")){
		$(".contentTabs div").addClass("loading");
		$("#contentTabs").prepend("<div class='load'><img src='../../client/images/loading.gif' /></div>");
	}
}
function tabLoadedTools(event, ui){
	if($(".contentTabs div")){
	    $(".contentTabs div").removeClass("loading");
    	$("#contentTabs div.load").remove();
	}
}
function tabShowTools(event, ui){
	if($(".contentTabs div")){
	    $(".contentTabs div").removeClass("loading");
    	$("#contentTabs div.load").remove();
	}
}

//-----------------------------------------
//Postal Code Search Scripts --------------
//-----------------------------------------
function Valida(elemento) {
  if (isNaN(elemento.value)) {
    alert("Dados incorrectos");
    elemento.value="";
    elemento.focus();
    return false;
  }
  return true;
}

function Avanca(next, event) {
  if (!event)
    event = window.event;

  var tg = (event.target) ? event.target : event.srcElement

  if ( event.keyCode == "9" || event.keyCode == "16" || event.shiftKey ) {
    event.cancelBubble = true;
    event.returnValue = false;
    return false;
  }
  else if ( tg.value.length == tg.maxLength ) {
	  $(next).focus();
	  $(next).select();
	  return true;
  }
  return false;
}
function linkExtra(tipo, inPag, criteria){
	$("#tipoHidden").val(tipo);
	if(inPag)
		$("#inPagHidden").val(inPag);
	if(criteria){
		switch(tipo){
		case 2:
			$("#inIdLocalHidden").val(criteria);
		break;
		case 3:
			$("#inIdRuaHidden").val(criteria);
		}
	}
	$("#postalCodeSearchResult").submit();
}	
   
function cleanPostCod1(){
	$("#distritos").val("Selecione");
	$("#concelhos").val("Selecione");
	$("#localidade").val("");
	$("#nomeRua").val("");
	$("#numPorta").val("");
}

function cleanPostCod2(){
	$("#cp4").val("");
	$("#cp3").val("");
}

function cleanApartados(){
	$("#distritosA").val("Selecione");
	$("#concelhosA").val("Selecione");
	$("#pcsA_localidade").val("");
	$("#eps").val("Selecione");
	$("#pcsA_NApartado").val("");
}

function cleanAddressValidation(){
	$("#distritos_av").val("Selecione");
	$("#concelhos_av").val("Selecione");
	$("#localidade_av").val("");
	$("#nomeRua_av").val("");
	$("#numPorta_av").val("");
	$("#codPos").val("");
	$("#empresa").val("");
	$("#resultado").val("xml");
	$("#numPag").val("1");
	$("#maxReg").val("10");
	$("#idLocalidade").val("");
	$("#idRua").val("1");
}

function tabShow(event, ui) {
	focusOnDefault(ui.panel.id);
    return true;
};

function focusOnDefault(tabId) {
	if(tabId=="tabs2-1"){
	  $("#localidade").focus();
	  $("#localidade").select();
	}
	else if(tabId=="tabs2-2"){
		$("#cp4").focus();
		$("#cp4").select();
	}
	else if(tabId=="tabs2-3"){
		$("#distritosA").focus();
		$("#distritosA").select();
	}
	else if(tabId=="tabs3-1"){
		$("#distrito_av").focus();
		$("#distrito_av").select();
	}
	else if(tabId=="tabs4-1"){
		$("#district").focus();
		$("#district").select();
	}
	else if(tabId=="tabs4-2"){
		$("#designation").focus();
		$("#designation").select();
	}
    return true;
};


function populateDistritos(distritosCombo, concelhosCombo, ecsCombo){
	// create an array to be referenced by distrito name 
	distritos = [] ;
	for(var i=0; i<districts.length; i++) { 
		distritos[districts[i].distrito] = districts[i].concelhos; 
	} 
	 // populate distritos select box 
	 if(distritosCombo){
		 var options = '' ; 
		 for (var i = 0; i < districts.length; i++) { 
		  options += '<option value="' + districts[i].distrito + '">' + districts[i].distrito + '</option>';  
		 } 
		 distritosCombo.html(options);   // populate select box with array
		 
		 if(concelhosCombo){
			 // selecting distrito (change) will populate concelhos select box 
			 distritosCombo.bind("change", function() { 
				 concelhosCombo.children().remove() ;          // clear select box 
				 var options = '' ; 
				 for (var i = 0; i < distritos[this.value].length; i++) {  
					 options += '<option value="' + distritos[this.value][i] + '">' + distritos[this.value][i] + '</option>';  
				 } 
				 concelhosCombo.html(options);   // populate select box with array 
				 if(ecsCombo){
					 ecsCombo.children().remove();
					$.post(contextPath + "/app/open/postalCodeSearch/postalCodeSearch.jspx", {"ecsAjax" : true, "distritoA" : this.value}, function(data){
						try{
							var ecs = $.parseJSON(data);
						    var options = '' ; 
						    for (var i = 0; i < ecs.length; i++) {  
						    	options += '<option value="' + ecs[i].id + '">' + ecs[i].name + '</option>';  
						    }
						    ecsCombo.html(options);   // populate select box with array 
						}
						catch(err){
							alert(err);
						}
					});
				 }
			 });            // bind function and end bind end 
		 }
		 if(concelhosCombo && ecsCombo){
			 concelhosCombo.bind("change", 
				   function() { 
				 	ecsCombo.children().remove() ;          		// clear select box 
				    var options = '' ;
					$.post(contextPath + "/app/open/postalCodeSearch/postalCodeSearch.jspx", {"ecsAjax" : true, "distritoA" : distritosCombo.val(), "concelhoA" : this.value}, function(data){
						try{
							var ecs = $.parseJSON(data);
						    var options = '' ; 
						    for (var i = 0; i < ecs.length; i++) {  
						    	options += '<option value="' + ecs[i].id + '">' + ecs[i].name + '</option>';  
						    }
						    ecsCombo.html(options);   // populate select box with array 
						}
						catch(err){
							alert(err);
						}
					});
				   }            // bind function end 
				 );             // bind end  
		 }
	 }
}


//-----------------------------------------
//Station Search Scripts ------------------
//-----------------------------------------
function toggleObjectDetails(estcorreiosCodigo, show){
	var detailsDivId = "#details_" + estcorreiosCodigo;
	var detailsLinkShowId = "#detailsLinkShow_" + estcorreiosCodigo;
	var detailsLinkHideId = "#detailsLinkHide_" + estcorreiosCodigo;
	if(show){
		$(detailsDivId).removeClass("detailsHide");
		$(detailsDivId).addClass("detailsShow");
		$(detailsLinkShowId).removeClass("detailsLinkShow");
		$(detailsLinkShowId).addClass("detailsLinkHide");
		$(detailsLinkHideId).removeClass("detailsLinkHide");
		$(detailsLinkHideId).addClass("detailsLinkShow");
	}
	else{
		$(detailsDivId).removeClass("detailsLinkShow");
		$(detailsDivId).addClass("detailsHide");
		$(detailsLinkShowId).removeClass("detailsLinkHide");
		$(detailsLinkShowId).addClass("detailsLinkShow");
		$(detailsLinkHideId).removeClass("detailsLinkShow");
		$(detailsLinkHideId).addClass("detailsLinkHide");
	}
}	

function changePage(page){
	$("#pageNumber").val(page);
	$("#stationSearch1").submit();
}

function resetForm(tab){
	if(tab == "geo"){
		//geographic
		$("#district").val("");
		stationSearchDistrictChange("", $("#county"), $("#parish"), false);
		if(window.map) window.document["map"].SetVariable("distritoAS", 30);
		if(document.map) document.map.SetVariable("distritoAS", 30);
	}
	else{
		//advanced
		document.getElementById('stationSearch1_designation').value="";
		document.getElementById('stationSearch1_address').value="";
		document.getElementById('stationSearch1_place').value="";
		document.getElementById('stationSearch1_openAt').value="";
		document.getElementById('stationSearch1_openAfterEighteen').checked=false;
		document.getElementById('stationSearch1_openSaturdayAndSunday').checked=false;
		document.getElementById('stationSearch1_packageService').checked=false;
	
		for (var i = 1; i < document.getElementById('specialServicesListSize').value; i++){
			document.getElementById('specialServices-' + i).checked=false;
		}
	}
	return false;
}

function populateDistritos2(distritosCombo, concelhosCombo, freguesiasCombo){
	// create an array to be referenced by distrito name 
	distritos2 = [] ;
	for(var i=0; i<districts.length; i++) { 
		distritos2[districts[i].id] = districts[i].concelhos; 
	} 
	 // populate distritos select box 
	 if(distritosCombo){
		 var options = '' ; 
		 for (var i = 0; i < districts.length; i++) { 
		  options += '<option value="' + districts[i].id + '">' + districts[i].name + '</option>';  
		 } 
		 distritosCombo.html(options);   // populate select box with array
		 
		 if(concelhosCombo){
			 // selecting distrito (change) will populate concelhos select box 
			 distritosCombo.bind("change", function () { stationSearchDistrictChange(this.value, concelhosCombo, freguesiasCombo, true); }); 
		 }
		 if(concelhosCombo && freguesiasCombo){
			 concelhosCombo.bind("change", function() { stationSearchCountyChange(distritosCombo.val(), this.value, freguesiasCombo); });
		 }
	 }
}

function stationSearchDistrictChange(district, concelhosCombo, parishCombo, updateMap){
	concelhosCombo.children().remove() ;          // clear select box 
	parishCombo.children().remove() ;          // clear select box 
	var options = '' ; 
	for (var i = 0; i < distritos2[district].length; i++) {  
		 options += '<option value="' + distritos2[district][i].id + '">' + distritos2[district][i].name + '</option>';  
	}
	concelhosCombo.html(options);   // populate select box with array
	if(updateMap){
		if (district == "") district = 30;
		if (window.map) window.document["map"].SetVariable("distritoAS", district);
		if (document.map) document.map.SetVariable("distritoAS", district);
	}
}

function stationSearchCountyChange(district, county, parishCombo){
	parishCombo.children().remove() ;          		// clear select box 
    var options = '' ;
	$.post(contextPath + "/app/open/stationSearch/stationSearch.jspx", {"freguesiasAjax" : true, "district" : district, "county" : county}, function(data){
		try{
			var parishs = $.parseJSON(data);
		    var options = '' ; 
		    for (var i = 0; i < parishs.length; i++) {  
		    	options += '<option value="' + parishs[i].id + '">' + parishs[i].name + '</option>';  
		    }
		    parishCombo.html(options);   // populate select box with array 
		}
		catch(err){
			alert(err);
		}
	});
}

//Portugal flash map invokes this functions
function fillCountiesList(district){
	$("#district").val(district);
	stationSearchDistrictChange(district, $("#county"), $("#parish"), false);
}	

function fillParishsList(county){
	$("#county").val(county);
}

function fillParishsList2(district, county){
	$("#county").val(county);
	stationSearchCountyChange(district, county, $("#parish"));
}

function flashBack(){
	$("#district").val("");
	$("#county").children().remove();
	$("#parish").children().remove();
}	

//-----------------------------------------
//Newsletter Scripts ------------------
//-----------------------------------------
function tabSelectedNewsletter(event, ui){
	var i = ui.index;
    if(i==0 || i==1){
    	if($(".contentTabs div")){
    		$(".contentTabs div").addClass("loading");
    		$("#contentTabs").prepend("<div class='load'><img src='../../../client/images/loading.gif' /></div>");
    	}
    	window.location="/femgu/app/restricted/Dj3UserDetails-userProfile.jspx?tabToSelect=" + i;
    }
    return true;
}
function tabShowNewsletter(event, ui){
	$( "#contentTabs" ).attr("style", "display:'';");	
    return true;
}




//-----------------------------------------
//Info Logos Scripts ------------------
//-----------------------------------------
function toolTip(text,spanId, event) {
	var leftPos = event.clientX - 50;
	var topPos = event.clientY + 10;
	
	// scroll vars
	var leftScr = 0;
	var topScr = 0;
	
	if (document.documentElement && document.documentElement.scrollTop) {
		leftScr = document.documentElement.scrollLeft;
		topScr = document.documentElement.scrollTop;
	} else {
		if (document.body) {
			leftScr = document.body.scrollLeft;
			topScr = document.body.scrollTop;
		}
	}
	
	document.getElementById(spanId).innerHTML=text;
	document.getElementById(spanId).style.display="block";
	document.getElementById(spanId).style.fontSize="11px";
	document.getElementById(spanId).style.color="#d30f17";
}

function hideMe(spanId) {
  document.getElementById(spanId).style.display="none";
}

//-----------------------------------------
//ObjectSearch Scripts --------------------
//-----------------------------------------
function autoSubmit(){
	if($("#objectSearch_pesqObjecto_objectoId").val())
		submitObjectSearch($('#objectSearch'));
}


function submitObjectSearch(form){
    // display loading gif
    $(".contentTabs div").addClass("loading");
    $("#contentTabs").prepend("<div class='load'><img src='<c:url value='/client/images/loading.gif'/>' /></div>");
    // submit the form 
			var options = {
	        target:	"#tabs1-2",   // target element(s) to be updated with server response 
        	success:    function() { 
	            $(".contentTabs div").removeClass("loading");
	            $("#contentTabs div.load").remove();
							$('#contentInsideTabs1').tabs( 'select', tabToShow);
							handleMessages("objectSearch");
				}
			};
    $(form).ajaxSubmit(options);
    
    // return false to prevent normal browser submit and page navigation 
    return false; 
}

function clearForm(oForm, clearHiddenFields){
	if(oForm!=null){
		var frm_elements = oForm.elements;
		if(frm_elements!=null){
			for (i = 0; i < frm_elements.length; i++)
			{
				var type = oForm.elements[i].type;
				if(type!=null){
					switch (type.toLowerCase())
    				{
					    case "text":
					    case "password":
					    case "textarea":
					        frm_elements[i].value = "";
					        break;
					    case "radio":
					    case "checkbox":
					        if (frm_elements[i].checked)
					        {
					            frm_elements[i].checked = false;
					        }
					        break;
					    case "select-one":
					    case "select-multi":
					        frm_elements[i].selectedIndex = -1;
					        break;
					    default:
					        break;
				    }
					if(type.toLowerCase()=='hidden' && clearHiddenFields){
						frm_elements[i].value = "";
					}
				}
			}
		}	
	}
}

