﻿var xmlAgencies = null;
var provinces_regions = {};
var provinces = [];

function doIt() { }

$(function () {
    $(".search.agency").click(function () {
        var region = $("select.region").val();
        var province = $("select.region").val();

        var xmlAgencies = $.get("/ajax/agencies.xml");
    });

    loadSearchAgencySelects();
    $(".search-agencies .search").click(filterAgencies);

    $(".open-search").click(function () {
        $(".centring").dialog({
            modal: true,
            width: 698,
            height: 600,
            resizable: false,
            draggable: false
        }).show();
    });
});

function filterAgencies() {
    var province = $("select.province").val();
    var region = $("select.region").val();
    var filter = ""
    if (province != "")
        filter = "AgencyXML[Province=" + province + "]"
    else if (region != "")
        filter = "AgencyXML[Region=" + region + "]"
    else 
        return;

    $(".search-agencies .list:gt(0)").remove();

    var list = $(".search-agencies .list ul").empty();
    $(".search-agencies .list h3").text($("select.region").val());

    $(xmlAgencies).find(filter).each(function (i, e) {
        var li = $("<li></li>");
        li.append("<h4>" + $(this).find("Name").text() + "</h4>");
        li.append("<p class='address'>" + $(this).find("Address").text() + " - " + $(this).find("Town").text() + "</p>");
        li.append("<p class='tel'><span>Tel</span> " + $(this).find("Phone").text() + "</p>");
        li.append("<p class='fax'><span>Fax</span> " + $(this).find("Fax").text() + "</p>");
        li.append("<p class='e-mail'><span>E-mail</span> <a href='mailto:" + $(this).find("Email").text() + "'>" + $(this).find("Email").text() + "</a></p>");
        if (i % 2 == 1)
            li.addClass("even");
        list.append(li);
    });    
}

function populateProvinces() {
    var prov_opts = "";
    var region = $("select.region").val();
    $(provinces).each(function () {
        if(provinces_regions[this] == region)
            prov_opts += "<option value='" + this + "'>" + this + "</option>";
    });
    $("select.province").empty().append("<option value=''>-- provincia --</option>").append(prov_opts);
    if ($("select.province option").size() == 2) {
        $("select.province").get(0).selectedIndex = 1;
        filterAgencies();
    }
}

function loadSearchAgencySelects() {
    function _doIt() {
        var regions = [];

        $(xmlAgencies).find("AgencyXML").each(function () {
            var region = $(this).attr("Region");
            var province = $(this).attr("Province");
            if ($.inArray(region, regions) == -1) {
                regions.push(region);
            }
            
            if ($.inArray(province, provinces) == -1) {
                provinces.push(province);
                provinces_regions[province] = region;
            }            
        });
        regions.sort();
        provinces.sort();

        var reg_opts = "";
        $(regions).each(function () {
            reg_opts += "<option value=\"" + this + "\">" + this + "</option>";
        });
        $("select.region").append("<option value=''>-- regione --</option>").append(reg_opts);

        $("select.region").change(function () {
            var region = $(this).val();
            populateProvinces();
        });
    }

    if (xmlAgencies == null) {
        $.get("/ajax/agencies.xml", function (data) {
            xmlAgencies = data;
            _doIt();
        });
    } else {
        _doIt();
    }
}
