﻿//javascript

var CAP___PARAMS;

function CAP_SetButton(el, provsel, capsel, locsel, base, urlashx) {
    var params = { base: '/', url: 'PickCap.asp', provincia: provsel, cap: capsel, localita: locsel, ajx: undefined, blank: undefined, swf: undefined, div: undefined, bl: undefined, cont: undefined };

    if (base) params.base = base;
    if (urlashx) params.url = urlashx;

    el.addClass('CAP___BUTTON');
    el.data('params', params);
    el.bind('click', function() {
        $('.CAP___WIN').remove();
        $('.CAP___BLN').remove();
        CAP___PARAMS = $(this).data('params');

        CAP___PARAMS.blank = function(p, hide) {
            if (hide == 0) {
                p.div.find('.CAP___BLN1').css('display', '');
                p.div.find('.CAP___BLN2').css('display', '');
            } else {
                p.div.find('.CAP___BLN1').css('display', 'none');
                p.div.find('.CAP___BLN2').css('display', 'none');
            }
        }

        CAP___PARAMS.ajx = function(p, dati) {
            p.blank(p, 0);
            $.ajax({ type: "POST", url: p.base + p.url, dataType: "html", cache: false, data: dati,
                success: function(data, textStatus) {
                    p.cont.html(data);
                    p.div.css('display', '');
                    p.blank(p, 1);
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    p.cont.html('<div class="PC___CapError">Errore interno (' + XMLHttpRequest.status + ')</div>');
                    p.div.css('display', '');
                    p.blank(p, 1);
                }
            });
        }

        var dv = $('<div class="CAP___WIN PC___CapPopup" style="display: none" />');
        var bl = $('<div class="CAP___BLN PC___CapBlanker" />');
        var bl1 = $('<div class="CAP___BLN1 PC___CapBlanker1" />');
        var bl2 = $('<div class="CAP___BLN2 PC___CapBlanker2" />');
        var swf = $('<div class="PC___CapSwf" />');
        var cont = $('<div class="PC___CapCont"/>');

        dv.append(bl1);
        dv.append(bl2);
        dv.append('<div class="PC___CapClose"><a href="javascript:void(0)" onclick="CAP_WinClose()">chiudi finestra</a></div>');
        dv.append('<div class="PC___CapTitle">Seleziona una localit&agrave;</div>');
        dv.append(swf);
        dv.append(cont);
        dv.append('<div class="PC___CapClear" />');
        swf.html('<div class="PC___CapSwfTitle">Seleziona una regione od una provincia:</div><div id="CAP___SWF" />');

        CAP___PARAMS.bl = bl;
        CAP___PARAMS.div = dv;
        CAP___PARAMS.cont = cont;
        CAP___PARAMS.swf = swf;
        el.data('params', CAP___PARAMS);

        $('body').append(bl)
        $('body').append(dv)

        var maxZ = 1000;
        $('body > div').each(
            function() {
                var x = parseInt($(this).css('z-index'), 10);
                if (!isNaN(x)) maxZ = Math.max(maxZ, x);
            }
        );
        maxZ = maxZ + 10;

        var winW = $(window).width();
        var bodyW = $('body').width();
        var blW = winW > bodyW ? winW : bodyW;

        var winH = $(window).height();
        var bodyH = $('body').height();
        var blH = winH > bodyH ? winH : bodyH;

        var USRCT = $('#container').outerHeight();  
        blH = USRCT > blH ? USRCT : blH;
        
        bl.css({ 'position': 'absolute', 'display': 'none', 'top': '0px', 'left': '0px', 'width': blW + 'px', 'height': blH + 'px', 'z-index': maxZ, 'opacity': 0.5 });
        maxZ = maxZ + 10;

        var dvW = 780;
        var dvH = 500;
        var dvL = (winW - dvW) / 2;
        var dvT = (winH - dvH) / 2.5;

        var swfW = 220;
        var swfH = 300;
        var contW = dvW - swfW - 10;
        var contH = dvH - 30;

        dvT = dvT + $(document).scrollTop();
        dv.css({ 'position': 'absolute', 'top': dvT + 'px', 'left': dvL + 'px', 'width': dvW + 'px', 'height': dvH + 'px', 'z-index': maxZ });

        bl2.html('<span>Caricamento...</span>');
        var t = (dvH - 20) / 2;
        bl1.css({ 'position': 'absolute', 'display': 'none', 'top': '24px', 'left': '0px', 'width': dvW + 'px', 'height': (dvH - 24) + 'px', 'z-index': (maxZ + 50), 'opacity': 0.5 });
        bl2.css({ 'position': 'absolute', 'display': 'none', 'top': t + 'px', 'left': '1px', 'width': dvW + 'px', 'height': '20px', 'z-index': (maxZ + 60), 'text-align': 'center' });

        CAP___PARAMS.swf.css({ 'width': swfW + 'px' });
        CAP___PARAMS.cont.css({ 'width': contW + 'px', 'height': contH + 'px' });

        CAP___PARAMS.bl.css('display', '');
        CAP___PARAMS.div.css('display', '');
        CAP___PARAMS.ajx(CAP___PARAMS, { com: 'show' });

        var cartina = CAP___PARAMS.base + 'cartina-italia.swf';
        var flashvars = { tag: 'CAP_SwfClick' };
        var params = { 'wmode': 'transparent' };
        var attributes = {};
        swfobject.embedSWF(cartina, 'CAP___SWF', swfW + 'px', swfH + 'px', '9.0.0', '', flashvars, params, attributes);
    });
}

function CAP_SwfClick(reg, prov) {
    //var params = $('.CAP___BUTTON').data('params');
    var data;
    if (prov) {
        if (prov.length>2) prov = prov.substring(0,2);
        data = { com: 'selpr', pr: prov };
    } else {
        if (reg) data = { com: 'selreg', reg: reg };
        else data = { com: 'show' };
    }
    CAP___PARAMS.ajx(CAP___PARAMS, data);
}

function CAP_Pick(el, pro, cap, loc) {
    if (pro.length>2) pro = pro.substring(0,2);
    //var params = $('.CAP___BUTTON').data('params');
    CAP___PARAMS.provincia.val(pro);
    CAP___PARAMS.cap.val(cap);
    CAP___PARAMS.localita.val(loc);
    CAP___PARAMS.bl.remove();
    CAP___PARAMS.div.remove();
}

function CAP_WinClose() {
    //var params = $('.CAP___BUTTON').data('params');
    CAP___PARAMS.bl.remove();
    CAP___PARAMS.div.remove();
}

function CAP_Cerca(el) {
    //var params = $('.CAP___BUTTON').data('params');
    var frm = $(el).closest('form');
    var sc;
    if (frm.find('input[name="ckSoloCom"]').attr('checked')) sc= '1';
    else sc = '0';
    CAP___PARAMS.ajx(CAP___PARAMS, { com: 'find', 
          tipo: frm.find('input[name="tipo"]').val(),
          param: frm.find('input[name="param"]').val(),
          text: frm.find('input[name="cerca"]').val(),
          solocom: sc
    });
}
