/************** PONTOS DE ASSISTENCIA **************************/
//global da lista
var theList;

$(function() {    	
    //colocar class no breadcrumb
    $("#secondLevel").attr("class", "secondLevel2");       
	
	//colocar title  e alt vazio em cada image map:
	$("map#mapa_distritos area[@name]").each(function(){
		$(this).attr({"title": "", "alt": ""});
		
		$(this).bind("click", function(){
			distritoCode = $(this).attr("name");
			updateDistrictCombo(distritoCode);
			Search(0);
			return false;
		})
	});
	
	$.meta.setType("elem", "script");
	theList = $("div SPAN.data").data().theArray;
    $.meta.setType("");	
    
    insertDistricts();	 		
    
	$("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).css("width", "115px").val('Escolha o Distrito');
	$("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val('0');
	$("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).css("width", "120px").val('Escolha o Concelho');
	$("div.combobox_header INPUT[@type=hidden]", $("div.menu_concelho")).val('0');
	$("div.combobox_header INPUT[@type=text]", $("div.menu_servico")).css("width", "115px").val('Escolha o Servico');
	$("div.combobox_header INPUT[@type=hidden]", $("div.menu_servico")).val('0');
	
	unselected_distrito = $("a[@data=0]", $(".menu_distrito"));
	unselected_distrito[0].id = "select_distrito_unselected";
	unselected_distrito[0].style["display"] = "none";
	unselected_servico = $("a[@data=0]", $(".menu_servico"));
	unselected_servico[0].id = "select_servico_unselected";
	unselected_servico[0].style["display"] = "none";    
	
	// inicializa a imagem com o mapa de Portugal
	var distritoText = $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val();
//	if(distritoText == null || distritoText == "" || distritoText == "0")
//	{
//        document.getElementById('imgMapa').src = "/img/mapas/Portugal.jpg";
//	    document.getElementById('imgMapa').useMap = "#mapa_distritos";	    
//	}
});

function insertDistricts()
{
	//cria a combo dependendo do item escolhido na combo Nš1:
	var selectdistrito = $(".combobox_container .combobox_header INPUT[@name^=distrito]",$(".combobox_list").parents("div")).parents(".combobox_container");
    lista = $(".combobox_list", selectdistrito);
	input_text = $("div.combobox_header INPUT[@type=text]",selectdistrito);
	input_value = $("div.combobox_header INPUT[@type=hidden]",selectdistrito);
	input_value.val('');
	input_text.val(''); 
	lista.empty();
    lista.append('<a href="#" id="select_distrito_unselected" style="display: none" data="0">Escolha o Distrito</a><br/>');
    for(distrito in theList)
    {
        if (theList[distrito].distritoName != undefined)
        {
	        lista.append('<a href="#" data="'+theList[distrito].distritoCode+'">'+theList[distrito].distritoName+'</a><br/>');
	    }
    }
	input_text.val("Escolha o Distrito");
	input_value.val("0");
	selectdistrito.get(0).rebuild();
}

//clicar nos image maps da combo de distritos
function updateDistrictCombo(value)
{
    var find = false;
    if(value == "0")
    {
        $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val('Escolha o Distrito');
        $("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val(value);    
        change_distrito('Escolha o Distrito','0');
    }
    else
    {
        for(theID in theList)
        { 
	        if (theList[theID].distritoCode == value)
	        {
	            find = true;
		        $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val(theList[theID].distritoName);
		        $("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val(theList[theID].distritoCode);
		        change_distrito(theList[theID].distritoName,theList[theID].distritoCode);
	        }
	    }
	    if(!find)
	    {
	        $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val(value);
	        $("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val(value);
	    }
	}						
}

//clicar nos image maps da combo de concelhos
function updateOnlyConcelhoCombo(value)
{
    var find = false;
    for(distrito in theList)
    {
        if (theList[distrito].distritoCode == distritoCode) break;	        
    }
    listaConcelhos = theList[distrito].concelhos;
    
	for(theID in listaConcelhos){ 
	    if (listaConcelhos[theID].concelhoCode == value)
	    {
	        find = true;
		    $("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).val(listaConcelhos[theID].concelhoName);
		    $("div.combobox_header INPUT[@type=hidden]", $("div.menu_concelho")).val(listaConcelhos[theID].concelhoCode);
		    change_concelho(listaConcelhos[theID].concelhoName,listaConcelhos[theID].concelhoCode);
	    }
	}
	
	if(!find)
	{
	    	$("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).val(value);
		    $("div.combobox_header INPUT[@type=hidden]", $("div.menu_concelho")).val(value);
	}						
}

function updateConcelhoCombo(distritoCode)
{
	//cria a combo dependendo do item escolhido na combo Nš1:
	var selectconcelho = $(".combobox_container .combobox_header INPUT[@name^=concelho]",$(".combobox_list").parents("div")).parents(".combobox_container");
    lista = $(".combobox_list", selectconcelho);
	input_text = $("div.combobox_header INPUT[@type=text]",selectconcelho);
	input_value = $("div.combobox_header INPUT[@type=hidden]",selectconcelho);
	input_value.val('');
	input_text.val(''); 
	lista.empty();
    for(distrito in theList)
    {
        if (theList[distrito].distritoCode == distritoCode) break;	        
    }
    listaConcelhos = theList[distrito].concelhos;
    lista.append('<a href="#" id="select_concelho_unselected" style="display: none" data="0">Escolha o Concelho</a><br/>');
    for(concelho in listaConcelhos)
    {
        if (listaConcelhos[concelho].concelhoName != undefined)
        {
	        lista.append('<a href="#" data="'+listaConcelhos[concelho].concelhoCode+'">'+listaConcelhos[concelho].concelhoName+'</a><br/>');
	    }
    }
	input_text.val("Escolha o Concelho");
	input_value.val("0");
	selectconcelho.get(0).rebuild();
}

function change_distrito(text,value,container)
{ 	    
    if (value != "0")
    {
        $("#select_distrito_unselected").show();
        
        for(theID in theList)
	    { 	    
	        if(theList[theID].distritoCode == value)
	        {        		
	            updateConcelhoCombo(value);
	        }
	    }
    	
//	    // mudar a imagem
//        document.getElementById('imgMapa').src = "/img/mapas/" + value + ".jpg";
//    	
//	    // mudar o image map
//	    document.getElementById('imgMapa').useMap = "#mapa_" + value;
    	
        $("map#mapa_" + value + " area[@name]").each(function()
        {
		    $(this).attr({"title": "", "alt": ""});
    		
		    $(this).bind("click", function(){
			    concelhoCode = $(this).attr("name");
			    updateOnlyConcelhoCombo(concelhoCode);
			    Search(0);
			    return false;			    
		    })
	    });
	    
	    // mostrar mapa mini_Portugal
	    document.getElementById('imgMiniMapa').style.visibility = "visible";
    }
    else
    {
        $("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).val('Escolha o Concelho');
        $("div.combobox_header INPUT[@type=hidden]", $("div.menu_concelho")).val('0');        
        var select_concelho = $("#select_concelho");
        var lista_concelho = $("div.combobox_list", select_concelho);
        lista_concelho.empty();
        
//        // mostrar mapa de portugal
//        document.getElementById('imgMapa').src = "/img/mapas/Portugal.jpg";
//	    document.getElementById('imgMapa').useMap = "#mapa_distritos";     
	    
	    // esconder mapa mini_Portugal
	    document.getElementById('imgMiniMapa').style.visibility = "hidden";          
    }	
	
	// actualizar valor de distrito
	distritoCode = value;
}	

function change_concelho(text,value,container)
{	
    if (value != "0")
    {
        $("#select_concelho_unselected").show();
    }
    else
    {
        $("#select_concelho_unselected").hide();
    }
}

function change_servico(text,value,container){
    if (value != "0")
    {
        $("#select_servico_unselected").show();
    }
    else
    {
        $("#select_servico_unselected").hide();
    }
}

function Search(start)
{
	var distritoText = $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val();
	var concelhoText = $("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).val();
	var servicoText = $("div.combobox_header INPUT[@type=text]", $("div.menu_servico")).val();    
	var distritoCode = $("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val();
	var concelhoCode = $("div.combobox_header INPUT[@type=hidden]", $("div.menu_concelho")).val();
	var servicoCode = $("div.combobox_header INPUT[@type=hidden]", $("div.menu_servico")).val();
	
    $("#data INPUT[@name='distritoId']").val(distritoCode);
    $("#data INPUT[@name='concelhoId']").val(concelhoCode);
    $("#data INPUT[@name='servicoId']").val(servicoCode);
    $("#data INPUT[@name='distritoText']").val(distritoText);
    $("#data INPUT[@name='concelhoText']").val(concelhoText);
    $("#data INPUT[@name='servicoText']").val(servicoText);                
    $("#data INPUT[@name='start']").val(start);		

	$("#data").submit();

}
