//javascript

function MyTrim (v) {
    return v.replace (/ ^ \ s + /,''); 
};

var MyUrlBase = "/";
var MyXx = window.location.href;
if ((MyXx.indexOf('192.168.10.')>0) || (MyXx.indexOf('localhost')>0)) MyUrlBase='/www.ioguidotubevi.it/';

var MyPopId;    //utilizzato per la gestione dei popup
var MyOpacity = .3;

var CapTutti = "qualunque";

/* inizio BLANKER ############################################################################################# */
var MyGestBlanker = new Array();

function MY_BlankerAddWait( BL, MaxZ ) {
    var WT = BL.children(".MyDivBlankerW");
    if (WT.length==0) {
        WT = $('<div class="MyDivBlankerW"><img src="images/loading2.gif" /></div>').appendTo(BL);
        WT.css('position','absolute');
        WT.css('height','50px' );
        WT.css('width','50px' );
    }
    var size = GetBodySize();
    var bodyW = size.width;  
    var bodyH = size.height;
    WT.css("z-index", MaxZ + 20 );    
    WT.css('top', (bodyH - 50) / 2);
    WT.css('left',(bodyW - 50) / 2);
}


function MY_BlankerRemWait( BL ) {
    var WT = BL.children(".MyDivBlankerW");
    if (WT.length>0) WT.remove();
}


function MY_ShowBlanker( tipo ) {
    tipo = tipo ? tipo : 0;
    var BL = $('#MyDivBlanker');
    if ( BL.length==0 ) {
        BL = $('<div class="MyDivBlanker" id="MyDivBlanker"></div>').appendTo('body');
        BL.css('position','absolute');
        BL.css('top','0px');
        BL.css('left','0px');
        BL.css('opacity', MyOpacity );
    }

    var MaxZ = MY_MaxZIndex() + 10;
    MyGestBlanker.push({tp: tipo, zi: MaxZ});

    var size = GetBodySize();
    var bodyW = size.width;  
    var bodyH = size.height;
    
    BL.css("z-index", MaxZ );    
    BL.css('height', bodyH );
    BL.css('width', bodyW );

    if (tipo==1) MY_BlankerAddWait(BL,MaxZ);
    else MY_BlankerRemWait( BL );
}


function MY_HideBlanker() {
    var BL = $('#MyDivBlanker');
    if (MyGestBlanker.length>0) {
        MyGestBlanker.pop();
        if (MyGestBlanker.length>0) {
            var it=MyGestBlanker[MyGestBlanker.length-1];
            var size = GetBodySize();
            var bodyW = size.width;  
            var bodyH = size.height;
            BL.css("z-index", it.zi );    
            BL.css('height', bodyH );
            BL.css('width', bodyW );
            if (it.tp==1) MY_BlankerAddWait(BL,it.zi);
            else MY_BlankerRemWait( BL );
        }
    }
    if (MyGestBlanker.length==0 && BL.length) BL.remove();
}
/* fine BLANKER ############################################################################################## */




/* inizio UTILS ######################################################################################################## */
function MY_MaxZIndex() {
    var maxZ = 100;
    var x = $('body > div:not(#ui-datepicker-div)');
    x.each(
        function(){ 
            var x = parseInt($(this).css('z-index'), 10);
            if ( !isNaN(x) ) maxZ = Math.max(maxZ, x); 
        }
    );
    return maxZ;
}


function GetBodySize() {
    var winW = $(window).width();  
    var winH = $(window).height();
    var bodyW = $('body').width();  
    var bodyH = $('body').height();
    var x = winW>bodyW ? winW : bodyW;
    var y = winH>bodyH ? winH : bodyH;
    return { width: x, height: y }
}
/* fine UTILS ########################################################################################################## */



/* inizio AJAX ######################################################################################################### */
function MY_Ajax( $param ) {
    var $def = { url: '', funcOk: undefined, funcKo: undefined, timeOut: 45000,
    showErr: 1, data: '', type: "POST" };
    $.extend($def , $param);

    var $funcOk = $def.funcOk;
    var $funcKo = $def.funcKo;
    var $tout = $def.timeOut;
    var $name = $def.dialogName;
    var $showErr = $def.showErr;
    var $data = $def.data;
    var $err;

    $.ajax({
        timeout: $tout,
        error: function(XMLHttpRequest, textStatus, errorThrown){ 
                        $err = 'Errore interno (aj001) ' + XMLHttpRequest + textStatus;
                        if ($showErr==1) MY_MsgError('Errore', $err); 
                        if ($funcKo) $funcKo($err); 
                },
        cache: false,
        type: $def.type, 
        url: $def.url, 
        data: $data, 
        dataType: 'html', 
        success: function(data) {
                    if (data.substring(0,4) == 'err ') {
                        $err = data.substring(4);
                        if ($def.showErr==1) MY_MsgError("Errore", $err); 
                        if ($funcKo) $funcKo($err); 
                    } else {
                        $funcOk(data);
                    } 
            }
    });
} 
/* fine AJAX ########################################################################################################### */



/* inizio ToolTips ##################################################################################################### */
function MY_TipsOn( t, txt ) {
    var tp=$('#MyToolTip');
    if (tp.length==0) {
        var html = '<div id="MyToolTip"></div>';
        tp=$(html).appendTo('body');
    }
    var it=$(t);
    tp.html(txt);
    var offset = it.offset();
    tp.css('top', offset.top + it.height());
    tp.css('left', offset.left);
    tp.css('display', 'block');
}


function MY_TipsOff() {
    var tp=$('#MyToolTip');
    tp.css('display', 'none');
}
/* fine ToolTips ####################################################################################################### */




/* inizio show  ######################################################################################################## */
function MY_ShowPeriodi( $pkid, $tipo ) {
    var $cmd;
    var $title;
    if ($tipo==0) { $cmd='MainForm0'; $title='Periodi guido'; } 
    else { $cmd='MainForm1'; $title='Periodi passeggero'; }
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxRegistrato.ashx', 
        data: { pkid: $pkid, cmd: $cmd }, 
        funcOk: function (data) {
            MY_Popup({ title: $title, data: data, width: 790, height: 580, sizable: false });
        }
    });
}


function MY_ShowRichiesta( $pkid, $dst, $tipo, $cosa ) {
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxRichiesta.ashx', 
        data: { pkid: $pkid, cmd: 'MainForm', dst: $dst, tipo: $tipo, cosa: $cosa}, 
        funcOk: function (data) { 
            MY_HideBlanker();
            MY_Popup({
                title: 'Richiesta', 
                data: data, 
                width: 490, 
                height: 400
            })
        },
        funcKo: function(data) { MY_HideBlanker() }
    });
}
/* fine show  ########################################################################################################## */



/* inizio GESTIONE Popup ###############################################################################################
maxWidth: 900, maxHeight: 650, 
*/
function MY_Popup( p ) {
    var param = {
        width: 400, height: 300, minWidth: 300, minHeight: 250, 
        top: -1, left: -1, title: '', data: '', cssName: 'mydialog', opacity: MyOpacity, 
        btClose: true, sizable: false, drag: false, DispX: true
    }
    $.extend(param, p);
    //param.drag = false //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    var bodyW = $(window).width();  
    var bodyH = $(window).height();
    var html;
    var main;
            
    if (param.top == -1 ) param.top = (bodyH - param.height) / 2 + $(window).scrollTop();
    if (param.left == -1 ) param.left = (bodyW - param.width) / 2;
    
    MY_ShowBlanker();
    
    if (MyPopId) MyPopId = MyPopId +1;
    else MyPopId=1;
    
    var PopId = 'MyPopB' + MyPopId;
    var tipo=0;
    var HtmlDove;
    
    if (param.data.indexOf('MYDusercont') > 0 && param.data.indexOf('MYDuserbutt')) tipo=1;
    
    html = '<div id="'+PopId+'" class="MyDivDialod '+param.cssName+'">';
    // decido se inserire il bottone X per chiudere il popup
    if (p.not_close != true) {
        if (param.DispX) html += '<div class="MYDClose"><a href="#" class="MYDlnkChiudi"></a></div>';
    }
        html += '<div class="MYDtop"><div class="MYDtopDx';
        if (param.drag) html += ' dragable';
        html += '">'+param.title+'</div></div>';
        html += '<div class="MYDcont">';
            html += '<div class="MYDcontDx">';
            
                if (tipo==0) {
                    HtmlDove = 1;
                    html += '<div class="MYDcont2"> </div>';
                    if (param.btClose) {
                        html += '<div class="MYDbutton"><a class="MYDbtChiudi MyBtChiudi"></a></div>';
                    }
                } else {
                    HtmlDove = 0;
                }

                html += '<div class="MYDbott">&nbsp;</div>';
            html += '</div>';
        html += '</div>';
    html += '</div>';

    main = $(html).appendTo('body');
    //var div_popup = document.getElementById('div_popup');
    //main = $(html).appendTo(div_popup);
    
    if (HtmlDove==1) {
        main.find('.MYDcont2').html(param.data);
    } else {
        main.find('.MYDcontDx').html(param.data + '<div class="MYDbott">&nbsp;</div>');
    }
    main.css('position','absolute');
    main.css('top', param.top);
    main.css('left', param.left);
    main.css('height', param.height);
    main.css('width', param.width);
    main.data('param', param);
    main.data('paramdata', '');

    var maxZ = MY_MaxZIndex(); 
    main.css('z-index',maxZ + 5);
    
    if (param.drag) main.draggable({ handle: '.MYDtop', cancel: '.MYDlnkChiudi' });

    if (param.sizable) {
        main.resizable( {
            stop: function(event, ui) { __MY_ResizerPop(ui.element); },
            ghost: true,
            handles: 'e, s, w, se, sw',
            minHeight: param.minHeight,
            minWidth: param.minWidth,
            maxHeight: param.maxHeight,
            maxWidth: param.maxWidth
        });
    }
   
    var lnkx = main.find('.MYDlnkChiudi');
    lnkx.bind('click', function (e) { __MY_ClosePop(e, $(this)) });

    if (param.btClose) {
        var btc = main.find('.MYDbtChiudi');
        btc.bind('click', function (e) { __MY_ClosePop(e, $(this)) });
    }    
    
    __MY_ResizerPop(main);  
}


function __MY_ResizerPop( pop ) { 
    var MYDtop = pop.children('.MYDtop');
    var MYDbott = pop.find('.MYDbott');
    var MYDbutton = pop.find('.MYDbutton');
    var MYDcont2 = pop.find('.MYDcont2');
    var MYDusercont = pop.find('.MYDusercont');
    var MYDuserbutt = pop.find('.MYDuserbutt');
    var hPop = pop.height();
    var hMYDtop = MYDtop.height();
    var hMYDbott = MYDbott.height();
    var hcont;
    if (MYDusercont.length > 0 && MYDusercont.length > 0) {
        var hMYDuserbutt = MYDuserbutt.height();
        hcont = hPop - hMYDtop - hMYDbott - hMYDuserbutt - 1;
        MYDusercont.css('height', hcont );
    } else {
        var hMYDbutton = 0;
        if ( MYDbutton.length > 0 ) hMYDbutton = MYDbutton.height();
        hcont = hPop - hMYDtop - hMYDbott - hMYDbutton - 1;
        MYDcont2.css('height', hcont );
    }
}


function __MY_ClosePop( e, t, PD ) { 
    //e.preventDefault();
    var main = t.parents('.MyDivDialod');
    var param = main.data('param');
    if (PD != undefined) main.data('paramdata', PD)
    if (param && param.callback ) param.callback(main.data('paramdata'));
    main.remove();
    MY_HideBlanker();
}


function MY_SetParamPop( t, par ) { 
    var obj = $(t);
    if (obj.length>0) {
        var main = obj.parents('.MyDivDialod');
        main.data('paramdata', par);
    }
}


function MY_ClosePop( t, PD ) { 
    var obj = $(t);
    __MY_ClosePop( null, obj, PD );
}
/* fine GESTIONE Popup ################################################################################################# */



/* dialog box ########################################################################################################## */
function MY_NoUser() {
    var html = '<div class="noUser">'+
               'Per poter proseguire bisogna loggarsi:<br /><br />'+
               '<a href="default.aspx">Loggati</a> o <a href="default.aspx">Registrati</a>'+
               '</div>';
    MY_Popup({ width: 350, height: 170, title: 'Info', data: html, sizable: false });
}


function MY_MsgError(titolo, msg) {
    MY_Popup({title: titolo, data: '<div class="DivMsgError">' + msg + '</div>', width: 350, height: 170 });
}


function MY_MsgBox(titolo, msg) {
    MY_Popup({title: titolo, data: '<div class="DivMsgBox">' + msg + '</div>', width: 350, height: 170});
}

function MY_REG_MsgBox(titolo, msg) {
    MY_Popup({ title: titolo, data: '<div class="DivMsgBox">' + msg + '</div>', width: 350, height: 300 });
}

function MY_ShowNewMsg(pkid, dst, ReplyTo, CallBack) {
    MY_ShowBlanker(1);
    var reply = ReplyTo ? ReplyTo : 0;
    var title;
    if (reply==0) title = 'Nuovo messaggio';
    else title = 'Rispondi';
    
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxPosta.ashx', 
        data: {cmd: 'msgnew', pkid: pkid, dst: dst, reply: reply },
        funcOk: function (data) {
            MY_HideBlanker();
            MY_Popup({
                title: title, 
                data: data, 
                width: 455, 
                height: 370,
                sizable: false, 
                callback: CallBack
            });
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}
/* fine box ############################################################################################################ */



function MY_PrUtSelect( IdDiv, IdLi, id, $pkid) {
    MY_ShowBlanker(1);
    var div = $('#'+IdDiv);
    var li;
    for (var i=0; i<=3; i++) {
        li = $('#'+IdLi+i);
        if (li.length>0) {
            if (i==id) li.attr('class','selected');
            else li.attr('class','item');
        }
    };
    var $cmd;
    switch (id) {
        case 0: $cmd='ShowGen';    break;
        case 1: $cmd='ShowPer';    break;
        case 2: $cmd='ShowRis';    break;
        case 3: $cmd='ShowSis';    break;
    };
    
    MY_Ajax({
        url: 'ajax/AjaxUtente.ashx', 
        data: {pkid: $pkid, cmd: $cmd}, 
        showErr: 0,
        funcOk: function(data) { 
            div.html(data);
            MY_HideBlanker();
        }, 
        funcKo: function(data) { 
            var html = '<div class="DivAjaxErr">si &egrave; verificato un errore <a href="javascript:MY_PrUtSelect( \''+IdDiv+'\',\''+IdLi+'\','+id+','+$pkid+')">clicca qui</a> per riprovare.</div>';
            div.html(html);
            MY_HideBlanker();
            MY_MsgError('Errore',data);
        }
    });
}


function MY_PrUtChange( IdDiv, $pkid, $cmd) {
    MY_ShowBlanker(1);
    var div = $('#'+IdDiv);
    MY_Ajax({
        url: 'ajax/AjaxUtente.ashx', 
        data: {pkid: $pkid, cmd: $cmd}, 
        showErr: 0,
        funcOk: function(data) { 
            div.html(data);
            MY_HideBlanker();
        }, 
        funcKo: function(data) { 
            var html = 'si &egrave; verificato un errore <a href="javascript:MY_PrUtSelect( \''+IdDiv+'\',\''+IdLi+'\','+id+','+$pkid+')">clicca qui</a> per riprovare;';
            div.html(html);
            MY_HideBlanker();
            MY_MsgError('Errore',data);
        }
    });
}


function MY_DataPicker( $ID ) {
    $('#'+$ID).datepicker({ 
        dateFormat: 'dd/mm/yy', 
        changeMonth: true, 
        changeYear: true,
        showOn: 'button', 
        buttonImage: 'images/calendar.gif', 
        buttonImageOnly: true,
        duration: '',
        closeText: 'chiudi',
        currentText: 'Oggi',
        dayNamesMin: ['Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa'],
        dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'],
        monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
        monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu','Lug','Ago','Set','Ott','Nov','Dic'],
        navigationAsDateFormat: true, 
        prevText: '&lt;M', 
        nextText: 'M&gt;',
        clearText: 'svuota'
    });
    $('#ui-datepicker-div').css('z-index', 50000 );
}


function MY_PickHour( id, param )  {
    var def = { min: 0, max: 23, step: 1 };
    $.extend(def , param);
    var input = $('#'+id);
    var ctrl = $('#'+id+'DP');
    var up = ctrl.children('.hrefUp');
    var down = ctrl.children('.hrefDown');
    var value = function ( x ) {
        var v = input.attr('value');
        if (isNaN(v)) v = 0;
        else v = v * 1;
        v += x * def.step;
        if (x>0) { if (v > def.max) v = def.min } 
        else { if (v < def.min) v = def.max }
        if (def.step > 1) {
            var h = v % def.step;
            if (h>0) v = v - h;
        }
        input.attr('value', v);
    };

    input.change( 
        function (e) { 
            var v = input.attr('value');
            var ok = 1;
            if (isNaN(v)) ok = 0;
            else if (v > def.max) ok = 0;
            else if (v < def.min) ok = 0;
            if (ok == 0) input.attr('value', 0);
        }
    );    

    up.bind('click', function (e) { 
        e.preventDefault();
        value(1);
    });    

    down.bind('click', function (e) { 
        e.preventDefault();
        value(-1);
    });    
}


function MY_SubmitForm( FormId, FuncOk, FuncKo ) {
    MY_ShowBlanker(1);
    var ShowErr = 0;
    if (FuncKo == undefined) ShowErr = 1;
    var frm = $('#'+FormId);
    MY_Ajax({
        url: frm.attr('action'), 
        showErr: ShowErr,
        data: frm.serialize(),
        funcOk: function (data) {
            MY_HideBlanker();
            if (FuncOk != undefined) FuncOk(data);
        },
        funcKo: function(data) { 
            MY_HideBlanker(); 
            if (FuncKo != undefined) FuncKo(data);
        }
    });
}


function MY_UpdateSaldo($pkid) {
    var ss = $(".MyDivSaldo");
    if (ss.length>0) {
        MY.Ajax({
            url: MyUrlBase+'ajax/AjaxUtente.ashx',
            funcKo: function (data) { $(".MyDivSaldo").html('???'); },
            funcOk: function (data) { $(".MyDivSaldo").html(data); },
            showErr: 0,
            data: {cmd: 'saldo', pkid: $pkid}
        }); 
    }
}


function MY_UpdateAvatar( avatar ) {
    var ss = $(".ImgAvatar");
    if (ss.length>0) {
        ss.attr('src', avatar);
    }
}


function MY_RenderCartina(IdDiv, FuncName, Name, Width, Heigth, Regione, Provincia) {
    AC_FL_RunContent(
        'MyDivContent', IdDiv,
        'FlashVars', 'tag='+FuncName+'&amp;reg='+Regione+'&amp;pr='+Provincia,
        'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
        'width', Width,
        'height', Heigth,
        'src', 'flash/cartina-italia',
        'quality', 'high',
        'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
        'align', 'middle',
        'play', 'true',
        'loop', 'true',
        'scale', 'showall',
        'wmode', 'window',
        'devicefont', 'false',
        'id', Name,
        'bgcolor', '#ffffff',
        'name', Name,
        'menu', 'true',
        'allowFullScreen', 'false',
        'allowScriptAccess','sameDomain',
        'wmode', 'transparent',
        'movie', 'flash/cartina-italia',
        'salign', ''
    );
}


function MY_Confirm(title, text, SeSi, SeNo) {
    var html = '<div class="MYDusercont">' +
               '<div class="MyMsg-Confirm">'+text+'</div>' +
               '</div>' +
               '<div class="MYDuserbutt">' +
               '<a onclick="MY_ClosePop(this, \'si\')" class="MyBtSi"></a>' +
               '<a onclick="MY_ClosePop(this, \'no\')" class="MyBtNo"></a>' +
               '</div>';
     MY_Popup({
        title: title, 
        data: html, 
        width: 330, 
        height: 140,
        sizable: false,
        callback: function(p) {
            if (p == 'si') {
                if (SeSi) SeSi();
            } else {
                if (SeNo) SeNo();
            }
        }
    });
}


function MY_HomeMap(reg, prov) {
    var r = reg ? reg : '';
    var p = prov ? prov : '';
    if ((r != '') && (p != '')) MY_ShowCerca(r, p);
}


function MY_ShowLocCap(Cap, Prov, Cerca) {
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxUtils.ashx', 
        data: {cmd: 'capprov', cap: Cap, pr: Prov, cerca: Cerca },
        funcOk: function (data) {
            MY_HideBlanker();
            MY_Popup({
                title: 'Localit&agrave; cap', 
                data: data, 
                width: 700, 
                height: 500,
                sizable: false
            });
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}


//### CERCA ########################################################################################################
function MY_ShowCerca( regione, provincia ) {
    MY_ShowBlanker(1);
    regione = regione ? regione : '';
    provincia = provincia ? provincia : '';
    if (regione=='' || provincia=='') {
        regione = '';
        provincia = '';
    }
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxCerca.ashx', 
        data: {cmd: 'mainform', regA: regione, provA: provincia}, 
        funcOk: function (data) {
            MY_HideBlanker();
            MY_Popup({ title: 'Cerca', data: data, width: 500, height: 395, sizable: false });
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}


function MY_ModCerca(id) {
    MY_ShowBlanker(1);
    var frm = $('#'+id);
    var xCmd = $('#cmd');
    xCmd.attr('value', 'MainForm');
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxCerca.ashx', 
        data: frm.serialize(),
        funcOk: function (data) {
            MY_HideBlanker();
            MY_Popup({ title: 'Cerca', data: data, width: 500, height: 395, sizable: false });
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}


function PCercaOpSelect( id ) {
    var sel = $('#PCercatipo').attr('value');
    var unsel;
    if (id==0) { id='0'; unsel='1'; }
    else { id='1'; unsel = '0';}
    if (id != sel) {
        $('#PCercatipo').attr('value', id);
        $('#PCercarCont'+id).css('display','');
        $('#PCercaLiCont'+id).attr('class','selected');
        $('#PCercarCont'+unsel).css('display','none');
        $('#PCercaLiCont'+unsel).attr('class','item');
    }
}


function PCercaValidate0() {
    var ok = true;
    var c, ex1, ex2;
    
    var frm = $('.PCercaform0');
    frm.children('.verrore').html(''); 

    var pr = $('#PCercaAutProvDa').attr('value');
    var cap = $('#PCercaAutCapDa').attr('value');
    if (pr.length == 0) ok = false;
    else if (cap != CapTutti) ok = VAL_CheckCap(cap);
    if (!ok) { frm.children('.PCercaeAutCapDa').html('campo non valido'); }

    pr = $('#PCercaAutProvA').attr('value');
    cap = $('#PCercaAutCapA').attr('value');
    if (pr.length == 0) ok = false;
    else if (cap != CapTutti) ok = VAL_CheckCap(cap);
    if (!ok) { frm.children('.PCercaeAutCapA').html('campo non valido'); }

    c = $('#PCercaAutDtDal');
    ex1 = VAL_CheckDateTime2(c.attr('value'), $('#PCercaAutOraDaH').attr('value'), $('#PCercaAutOraDaM').attr('value'));
    if (!ex1.e) { ok=false; frm.children('.PCercaAutDtDal').html('periodo non valido'); }

    c = $('#PCercaAutDtAl');
    ex2 = VAL_CheckDateTime2(c.attr('value'), $('#PCercaAutOraAH').attr('value'), $('#PCercaAutOraAM').attr('value'));
    if (!ex2.e) { ok=false; frm.children('.PCercaAutDtAl').html('periodo non valido'); }
    
    if (ex1.e && ex2.e) {
        if (ex1.data>ex2.data) {
            ok=false;
            frm.children('.PCercaAutDtDal').html('intervallo non valido');
            frm.children('.PCercaAutDtAl').html('intervallo non valido'); 
        }
    }
    
    return ok;
}


function PCercaValidate1() {
    var ok = true;
    var c, ex1, ex2;
    
    var frm = $('.PCercaform1');
    frm.children('.verrore').html('');

    var pr = $('#PCercaPasProvDa').attr('value');
    var cap = $('#PCercaPasCapDa').attr('value');
    if (pr.length==0) ok = false;
    else if (cap != CapTutti) ok = VAL_CheckCap(cap);
    if (!ok) { frm.children('.PCercaPasCapDa').html('campo non valido'); }

    pr = $('#PCercaPasProvA').attr('value');
    cap = $('#PCercaPasCapA').attr('value');
    if (pr.length == 0) ok = false;
    else if (cap != CapTutti) ok = VAL_CheckCap(cap);
    if (!ok) { frm.children('.PCercaPasCapA').html('campo non valido'); }

    c = $('#PCercaPasDtDal');
    ex1 = VAL_CheckDateTime2(c.attr('value'), $('#PCercaPasOraDaH').attr('value'), $('#PCercaPasOraDaM').attr('value'));
    if (!ex1.e) { ok=false; frm.children('.PCercaPasDtDal').html('periodo non valido'); }

    c = $('#PCercaPasDtAl');
    ex2 = VAL_CheckDateTime2(c.attr('value'), $('#PCercaPasOraAH').attr('value'), $('#PCercaPasOraAM').attr('value'));
    if (!ex2.e) { ok=false; frm.children('.PCercaPasDtAl').html('periodo non valido'); }

    if (ex1.e && ex2.e) {
        if (ex1.data>ex2.data) {
            ok=false;
            frm.children('.PCercaPasDtDal').html('intervallo non valido');
            frm.children('.PCercaPasDtAl').html('intervallo non valido'); 
        }
    }

    return ok;
}


function PCercaOpCerca() {
    var tipo = $('#PCercatipo').attr('value');
    var page;
    var ok;
    if (tipo==0) {
        ok = PCercaValidate0();
        page = 'risultatoaut.aspx';
    } else {
        ok = PCercaValidate1();
        page = 'risultatopas.aspx';
    }
    if (ok) {
        $('#PCercaFrm').attr('action',page);
        $('#PCercaFrm').submit();
    }
}




//### PICK CAP ########################################################################################################
function MY_PickCapN(IdCtrlCap, IdCtrlReg, IdCtrlPro, Reg, Prov, Cap, SelPro) {
    MY_ShowBlanker(1);
    Prov = Prov ? Prov : '';
    Cap = Cap ? Cap : '';
    SelPro = SelPro ? SelPro : 0;

    MY_Ajax({
        url: MyUrlBase + 'ajax/AjaxUtils.ashx',
        data: { cmd: 'pickcap', pr: Prov, cap: Cap, selpro: SelPro },
        funcOk: function(data) {
            MY_HideBlanker();
            MY_Popup({
                title: 'Seleziona un cap',
                data: data,
                width: 700,
                height: 500,
                sizable: false,
                drag: false,
                callback: function(p) {
                    if (p.length > 0) {
                        var p1 = p.indexOf('|');
                        if (p1 > 0) {
                            var cap = p.substr(0, p1);
                            var pro = p.substr(p1 + 1);
                            $('#' + IdCtrlCap).attr('value', cap);
                            $('#' + IdCtrlPro).attr('value', pro);
                        }
                    }
                }
            });
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}


function PPickCSelCartina(reg, pro) {
    reg = reg ? reg : '';
    pro = pro ? pro : '';
    $('#PPickCreg').attr('value', reg);
    $('#PPickCpr').attr('value', pro);
    var html=reg;
    if (pro.length>0) html = html + " \\ " + pro;
    html = html + '&nbsp;';
    $('#PPickCdove').html(html);
    var d;
    if (pro.length>0) {
        d = 'block';
        PPickCexec('', reg, pro, '1');
    } else {
        d = 'none';
        $('#PPickCris').html('');
    }
    $('#PPickCSelProv').css('display',d);
}


function PPickCOpCerca() {
    var txt = $('#PPickCtxtcc').attr('value');
    if (txt == '') {
        MY_MsgBox('cerca', 'nessun criterio di ricerca specificato');
    } else {
        PPickCexec(txt);
    }
}


function PPickCexec(txt, reg, prov, DaMap) {
    DaMap = DaMap ? DaMap : '';
    reg = reg ? reg : '';
    prov = prov ? prov : '';
    var div = $('#PPickCris');
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxUtils.ashx',
        data: {cmd: 'cercacap', txt: txt, prov: prov, reg: reg, damap: DaMap },
        funcOk: function (data) {
                    div.html(data);
                    MY_HideBlanker();
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}


function PPickCsetInfoMap(txt) {
    $('#PPickCdove').html(txt);
}


function MyPickCapSelPro(t) {
    var pro = $('#PPickCpr').attr('value');
    var p = CapTutti + '|' + pro;
    MY_ClosePop(t,p);
}




/* inizio POP PROFILO ############################################################################################### */
function MY_PopProfilo(p) {
    var param = { data: ''}
    $.extend(param, p);
    param.drag = false //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    var bodyW = $(window).width();  
    var bodyH = $(window).height();
    var html;
    var main;
            
    MY_ShowBlanker();
    
    var maxZ = MY_MaxZIndex(); 
    
    html = '<div class="PopPmain">';
    html += '<div class="PopPClose"><a href="#" class="PopPBtClose"></a></div>';
    html += '<div class="PopPHead"><div class="PopPHeadDx">Profilo utente</div></div>';
    html += '<div class="PopPCont">';
    html += '<div class="PopPContDx"></div>';
    html += '</div>';
    html += '<div class="PopPBott">';
    html += '<div class="PopPBottDx">&nbsp;</div>';
    html += '</div>';
    html += '</div>';

    main = $(html).appendTo('body');
    main.find(".PopPContDx").html(param.data);

    var h = main.height();
    var w = main.width();
    var top = (bodyH - h) / 2 + $(window).scrollTop();
    var left= (bodyW - w) / 2;

    main.css('top', top);
    main.css('left', left);
    main.css('z-index',maxZ + 2);
    main.data('param', param);
    main.data('paramdata', '');
    
    var lnkx = main.find('.PopPBtClose');
    lnkx.bind('click', function (e) { __MY_PopProfClose(e, $(this)) });
}


function __MY_PopProfClose( e, t, PD ) { 
    if (e) e.preventDefault();
    var main = t.parents('.PopPmain');
    var param = main.data('param');
    if (PD != undefined) main.data('paramdata', PD)
    if (param && param.callback ) param.callback(main.data('paramdata'));
    main.remove();
    MY_HideBlanker();
}


function MY_PopProfSetParam( t, par ) { 
    var obj = $(t);
    if (obj.length>0) {
        var main = obj.parents('.PopPmain');
        main.data('paramdata', par);
    }
}


function MY_PopProfClose( t, PD ) { 
    var obj = $(t);
    __MY_PopProfClose( null, obj, PD );
}


function MY_ShowProfiloRic($pkid, tabsel) {
    __MY_ShowProfilo($pkid, tabsel, 1);
}


function MY_ShowProfilo($pkid, tabsel) {
    __MY_ShowProfilo($pkid, tabsel, 0);
}


function __MY_ShowProfilo($pkid, tabsel, smsg) {
    tabsel = tabsel ? tabsel : 0;
    smsg = smsg ? smsg : 0;
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxProfilo.ashx',
        data: { cmd: 'MainForm', pkid: $pkid, tabsel: tabsel, smsg: smsg }, 
        funcOk: function(data) {
            MY_HideBlanker();
            MY_PopProfilo({ 
                data: data,
                callback: function(p) {
                    if (!(isNaN(p)) && p>0) {
                        MY_ShowProfilo( p );
                    }
                }
            });
        },
        funcKo: function(data) { MY_HideBlanker() }
    });
}


function PProfOpSelect(id, smsg) {
    smsg = smsg ? smsg : 0;
    var pkid = $('#PProfpkid').attr('value');
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxProfilo.ashx', 
        showErr: 1,
        data: { cmd: 'showdata', pkid: pkid, tipo: id, smsg: smsg }, 
        funcOk: function(data) {
            $('#PProfContainer').html(data);
            PProfOpSetTab( id );
            MY_HideBlanker();
        },
        funcKo: function(data) {
            MY_HideBlanker();
        }
    });
}


function PProfEdit( id ) {
    var pkid = $('#PProfpkid').attr('value');
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxProfilo.ashx', 
        showErr: 1,
        data: { cmd: 'showedit', pkid: pkid, tipo: id }, 
        funcOk: function(data) {
            $('#PProfContainer').html(data);
            MY_HideBlanker();
        },
        funcKo: function(data) {
            MY_HideBlanker();
        }
    });
}


function PProfShow( id ) {
    var pkid = $('#PProfpkid').attr('value');
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase+'ajax/AjaxProfilo.ashx', 
        showErr: 1,
        data: { cmd: 'showdata', pkid: pkid, tipo: id }, 
        funcOk: function(data) {
            $('#PProfContainer').html(data);
            MY_HideBlanker();
        },
        funcKo: function(data) {
            MY_HideBlanker();
        }
    });
}


function PProfOpSetTab( id ) {
    $('#PProfTabSel').attr('value', id);
    $('.MyProfTabs').find('li').attr('class','');
    $('#PProfLiCont'+id).attr('class','tabsel');
}


function PProfUpdateAvatar( avatar ) {
    $(".ImgUtAvatar").attr('src', avatar);
}


function PProfUpdateFumetto( txt ) {
    var html;
    html = "<div class='Fumetto'>";
    html += "<div class='FumettoTop'>&nbsp;</div>";
    html += "<div class='FumettoBot'>" + txt + "</div>";
    html += "</div>";
    $(".MyCUfumetto").html(html);
}


function PProfValidate0(frm) {
    var ok = true;
    var c, ex1, ex2, ex3;
    
    frm.find('.verrore').html('');
    
    c = $('#PProfNickname').attr('value');
    c = MyTrim(c);
    if (c.length<4) { ok=false; frm.find('.ePProfNickname').html('campo non valido (min 4 caratteri)'); }

    ext1 = $("input[name='PProfPass']:checked").val();
    ext2 = $("input[name='PProfAutista']:checked").val();
    if (ext1==0 && ext2==0) { ok=false; frm.find('.ePProfAutPas').html('"guido" e/o "non guido" obbligatorio'); }

    ex1 = frm.find("#PProfOldPwd").attr('value');
    ex2 = frm.find("#PProfNewPwd").attr('value');
    ex3 = frm.find("#PProfConfPwd").attr('value');
    if (ex1.length > 0 || ex2.length > 0 || ex3.length > 0) {
        if ( ex1.length == 0 ) {
            ok = false; frm.find('.eCambiaPwd').html('<br />password attuale mancante');
        } else if ( ex2.length == 0 ) {
            ok = false; frm.find('.eCambiaPwd').html('<br />nuova password mancante');
        } else if ( ex2 != ex3 ) {
            ok = false; frm.find('.eCambiaPwd').html('<br />verifica fallita');
        }
    }
    return ok
}


function PProfExecUpdate( IdFrm ) {
    var ok = true;
    var frm = $('#'+IdFrm);
    var tipo = frm.find("[name='tipo']").attr('value');
    switch (tipo) {
        case '0':
        ok = PProfValidate0(frm);
        break;
    }
    if (ok) {
        MY_ShowBlanker(1);
        MY_Ajax({
            url: frm.attr('action'), 
            showErr: 1,
            data: frm.serialize(),
            funcOk: function (data) {
                $('#PProfContainer').html(data);
                MY_HideBlanker();
            },
            funcKo: function(data) { 
                MY_HideBlanker(); 
            }
        });
    }
}


function PProfDelImg( pkid, id ) {
    MY_Confirm(
       'conferma', 
       'Confermi eliminazione immagine??', 
       function () {
            MY_ShowBlanker(1);
            MY_Ajax({
                url: 'ajax/AjaxProfilo.ashx', 
                showErr: 1,
                data: { cmd: 'delimg', pkid: pkid, gid: id},
                funcOk: function (data) {
                    $('#PProfEdImgList').html(data);
                    MY_HideBlanker();
                },
                funcKo: function(data) { MY_HideBlanker(); }
            });    
    });
}


function PProfUpdateListaImg( pkid ) {
    MY_ShowBlanker(1);
    MY_Ajax({
        url: 'ajax/AjaxProfilo.ashx', 
        showErr: 1,
        data: { cmd: 'listaimg', pkid: pkid },
        funcOk: function (data) {
            $('#PProfEdImgList').html(data);
            MY_HideBlanker();
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });    
}
/* fine POP PROFILO ################################################################################################# */



function MY_TextAreaMaxLen(Object, MaxLen) {
    return (Object.value.length <= MaxLen);
}


function MY_BtMo( t, img ) {
    var x = $(t).attr('src',img);
}



/* MY POSTA ################################################################################################# */
var MyPstOpInviaBtIt;

function MyPstOpInvia(t) {
    MyPstOpInviaBtIt = t;
    MY_SubmitForm('MyPstform', MyPstOpInviaOk);
}


function MyPstOpInviaOk(data) {
    MY_SetParamPop(MyPstOpInviaBtIt, 'sent');
    MY_ClosePop(MyPstOpInviaBtIt);
}


function PopGallery(img, w, h) {
    var html = '<div class="ZoomFoto"><img onclick=\'MY_ClosePop(this)\' src="'+img+'" alt="foto" /></div>';
    MY_Popup({ title: 'zoom', data: html, width: w+40, height: h+65, btClose: false });
}



/* RICHIESTA ################################################################################################# */
var MYFRROpSendBtIt;

function MYFRROpSend(t) {
    MYFRROpSendBtIt = t;
    MY_SubmitForm('MYFRRform', MYFRROpSendOk);
}


function MYFRROpSendOk(data) {
    MY_ClosePop(MYFRROpSendBtIt);
    MY_UpdateSaldo(" & MyUser.pkid & ;")
    if (RisClearLista) RisClearLista();
}


function MYFRROpSendKo(data) {
    MY_MsgError('Errore', data);
}



/* ################################################################################################# */
function MY_NewPwd() {
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase + 'ajax/AjaxUtils.ashx',
        showErr: 1,
        data: { cmd: 'newpwd' },
        funcOk: function(data) {
            MY_HideBlanker();
            MY_Popup({
                title: 'Genera nuova password',
                data: data,
                width: 350,
                height: 210,
                sizable: false
            });
        },
        funcKo: function(data) {
            MY_HideBlanker();
        }
    });
}


function MY_GPSubmit(t) {
    var ok = true;
    var frm = $('#GPform');
    frm.find('.errore').html('');

    var c = $('#GPemail').attr('value');
    if (c.length == 0) {
        ok = false;
        frm.find('.GPemail').html('campo richiesto'); 
    }

    if (ok) {
        if (!VAL_CheckEmail(c)) {
            ok = false;
            frm.find('.GPemail').html('e-mail non valida');
        }
    }

    if (ok) {
        if (frm.length > 0) {
            MY_ShowBlanker(1);
            MY_Ajax({
                url: frm.attr('action'),
                showErr: 1,
                data: frm.serialize(),
                funcOk: function(data) {
                    MY_HideBlanker();
                    $('#GPmain').html(data);
                },
                funcKo: function(data) { MY_HideBlanker(); }
            });
        }
    }
}



// contenuti
function ShowContent(cosa) {
    var title = '';
    var file = '';
    var width = 770;
    var height = 600;
    sizable = false;
    drag = false;
    switch (cosa) {
        case 'azienda':
            title = 'Azienda e contatti';
            file = 'azienda.htm';
            width = 400;
            height = 250;
            break;

        case 'chisiamo':
            title = 'Chi siamo';
            file = 'chisiamo.htm';
            break;

        case 'condizioni':
            title = 'Condizioni d\'uso e Privacy';
            file = 'condizioni.htm';
            break;
         
        case 'crediti':
            title = 'Crediti';
            file = 'crediti.htm';
            width = 450;
            height = 360;
            break;

        case 'guido':
            title = 'Guido?';
            file = 'guido.htm';
            break;

        case 'nonguido':
            title = 'Non guido?';
            file = 'nonguido.htm';
            break;

        case 'banner':
            title = 'Banner';
            file = 'banner.aspx';
            height = $(window).height() - 30;
            if (height > 770) height = 770;
            break;

        case 'video_guido_prof':
            title = 'Registrati come Guido Professionista';
            file = 'video_guido_prof.htm';
            sizable = true;
            drag = true;
            break;
        
        case 'video_guido':
            title = 'Registrati come Guido';
            file = 'video_guido.htm';
            sizable = true;
            drag = true;
            break;

        case 'video_non_guido':
            title = 'Registrati come Non Guido';
            file = 'video_non_guido.htm';
            sizable = true;
            drag = true;
            break;        
    }
    if (title != '') MY_ShowContent(title, file, width, height, sizable, drag);
    
}


function MY_ShowContent($title, $file, $width, $height, $sizable, $drag) {
    var $url = 'content/' + $file;
    MY_ShowBlanker(1);
    MY_Ajax({
        url: $url,
        type: "GET",
        funcOk: function(data) {
            MY_HideBlanker();
            MY_Popup({ title: $title, data: data, width: $width, height: $height, sizable: $sizable, drag: $drag, btClose: false });
        },
        funcKo: function(data) { MY_HideBlanker(); }
    });
}


function MY_EmainRegistrazione($uid) {
    MY_ShowBlanker(1);
    MY_Ajax({
        url: MyUrlBase + 'ajax/AjaxUtils.ashx',
        showErr: 1,
        data: { cmd: 'emlreg', uid: $uid },
        funcOk: function(data) {
            MY_MsgBox('invio email', data);
            MY_HideBlanker();
        },
        funcKo: function(data) {
            MY_HideBlanker();
        }
    });
}

