//global da lista
var theList;
var imageMapClicked;
var distritoCode = '0';
var find;

$(function() {

	//listas:
	$.meta.setType("elem", "script");
	theList = $("div SPAN.data").data().theArray;
    $.meta.setType("");
	
	//image maps:
	imageMapClicked = 0;
	
	//colocar title  e alt vazio em cada image map:
	$("map#mapa_distritos area[@name]").each(function(){
		$(this).attr({"title": "", "alt": ""});
		
		$(this).bind("click", function(){
			areaName = $(this).attr("name");
			imageMapClicked = 1;
			change_distrito('', areaName, '');
			Search();
			return false;
		})
	})
	
	//limpar as combos + correcção largura:
	$("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).css("width", "115px").val('Escolha um Distrito');
	$("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).css("width", "120px");
	$("div.combobox_header INPUT[@type=text]", $("div.menu_servico")).css("width", "115px").val('Escolha uma Marca');
	
	// 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 == "Escolha um Distrito")
//	{
//        document.getElementById('imgMapa').src = "/img/mapas/Portugal.jpg";
//	    document.getElementById('imgMapa').useMap = "#mapa_distritos";	    
//	}	
})

//clicar nos image maps da combo de concelhos
function updateOnlyConcelhoCombo(value)
{
    find = false;
    
    for(distrito in theList)
    {
        if (theList[distrito].itemDistrict == distritoCode) break;	        
    }
    listaConcelhos = theList[distrito].concelhos;
    
	for(theID in listaConcelhos){
        if (isValidNumber(theID) && (listaConcelhos[theID].toUpperCase() == value))
	    {
	        find = true;
		    $("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).val(listaConcelhos[theID]);
		    $("div.combobox_header INPUT[@type=hidden]", $("div.menu_concelho")).val(listaConcelhos[theID].toUpperCase());
		    change_concelho(listaConcelhos[theID],listaConcelhos[theID].toUpperCase());
	    }
	}	
	
	if(!find)
	{
        // caso o concelho seleccionado não exista na lista (não existe no scriptor)
        // o valor da combo de concelhos passa para o default
        
	    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(value);
        input_text.val(value);
	}					
}

function change_distrito(text,value,container)
{
    if(value != "")
    {
	    for(theID in theList){ 
	        if(theList[theID].itemDistrict == value) {
	            //para image maps:
	            if(imageMapClicked == 1)
	            {
	                updateDistrictCombo(theList[theID].theDistrict, value);
	            }
	            updateConcelhoCombo(theID, '');
	        }
	    }
	    
//		// 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();
			    return false;
		    })
	    });
	    
	    // mostrar mapa mini_Portugal
	    document.getElementById('imgMiniMapa').style.visibility = "visible";
	}
	else
	{
        $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val('Escolha um Distrito');    
        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;
}

//clicar nos image maps:
function updateDistrictCombo(whichDistrict, code)
{
	$("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val(whichDistrict);
	$("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val(code);
	imageMapClicked = 0
}


function updateConcelhoCombo(whichID, concelho)
{
	//cria a combo dependendo do item escolhido na combo Nº1:
	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(theID in theList[whichID].concelhos)
	    if(isValidNumber(theID))
	        lista.append('<a href="#" data="'+theList[whichID].concelhos[theID]+'">'+theList[whichID].concelhos[theID]+'</a><br/>');
    if(concelho == '')
	    input_text.val("Escolha o Concelho");
	else
	    input_text.val(concelho);
	input_value.val(0);
	selectconcelho.get(0).rebuild();
	sortList($("#select_concelho")[0],false);
}

function change_concelho(text,value,container){
	//alert("muda o conteúdo central server-side");
}

function change_servico(text,value,container){
	//alert("muda o conteúdo central server-side");
}

function Search()
{
    var distritoId;
    var concelhoId;
	var distrito = $("div.combobox_header INPUT[@type=text]", $("div.menu_distrito")).val();
	if(distrito != "Escolha um Distrito")
	    distritoId = $("div.combobox_header INPUT[@type=hidden]", $("div.menu_distrito")).val();
	else
	    distritoId = ''; 
	var concelho = $("div.combobox_header INPUT[@type=text]", $("div.menu_concelho")).val();
    var marca = $("div.combobox_header INPUT[@type=text]", $("div.menu_servico")).val();
	
    $("#data INPUT[@name='distrito']").val(distrito);
    $("#data INPUT[@name='distritoId']").val(distritoId)
    $("#data INPUT[@name='concelho']").val(concelho);
    $("#data INPUT[@name='marca']").val(marca);
    $("#data").submit();

}

function clearSubmit()
{	
	$("#data INPUT[@name='distrito']").val('');
	$("#data INPUT[@name='distritoId']").val('#clear#')
	$("#data INPUT[@name='concelho']").val('');
	$("#data INPUT[@name='marca']").val('');
	$("#data").submit();
}
