// JavaScript Document
/* google.load("jquery", "1.4"); */
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

var jsGraphLoad = false;

self.tipo_scheda = 1;
self.scheda_loaded=false;

var eTipoScheda = { 
    FacSimile:1,
    Argomento:2,
    Selezionati:3
};

var eTipoSelezione = {
    Corso:1,
    Argomento:2    
};

var eTipoAccount = {
    eatUnknown:0,
    eatGuest:1,
    eatAutoscuola:2,
    eatCandidato:3,
    eatLoggedUser:4     
};


var eDlgType = {
    eatAlert:0,
    eatConfirm:1,
    eatNotice:2     
};

var confirmDlgRes=false;


google.setOnLoadCallback(function () {
    _onload();
});

function _onload() {
    $(document).ready(function () {
        _onready();
    });
    $('#head-1').bind("click", function () {
        goHome();
    });
}

function _onready() {
    $.getScript('/scriptes/jquery.fancylogin.js', function () {
        load_login(0);
    });
    $.getScript('/scriptes/jquery.fadebanner.js', function () {
        init_banner_sx();
        init_banner_dx();
    });
    $.getScript('/scriptes/jquery.collapsor.js', function () {});

    $.getScript('/scriptes/jquery.liscroll.js', function () {
        init_newsticker()
    });
    
    $.getScript('/scriptes/ZeroClipboard.js', function () {
        init_clipboard()
    });
    
    init_scroller();
    init_newproduct();
    

    //$.getScript('/scriptes/jquery.popup.js', function() { load_popup(); });
};

function load_login(st) {
    $('#loginarea').load('/ecom.dll/Login', {
        user: $('#username').val(),
        pass: $('#password').val(),
        status: st
    }, function () {
        $('#loginarea').fancylogin();
        load_content_ext('#mm', 'Menu');
        show_anagrafica(st);        
    })
};

function load_menu(idm) {
    if (scheda_loaded!=true) 
        return load_content_left('Menu?id=' + idm);
};

function load_menu_ext(idm, idm_active) {
    return load_content_left('Menu?id=' + idm + '&active=' + idm_active);
};

function load_by_menu(idm) {
    if (scheda_loaded==true) 
        unloadScheda();        
    return load_content('ByMenu?id=' + idm);
};

function load_by_content(idc) {
    $.getJSON("/ecom.dll/UpdateMenu", {
        idc: idc
    }, function (json) {
        if (json.idm) load_menu_ext(json.idm, json.idm_active);
    });
    return load_content('ByContent?id=' + idc);
};

function load_content_ext(id, param, fnc) {
    $(id).load('/ecom.dll/' + encodeURI(param), {}, function () {
        if (fnc) fnc();
        init_drawing();
        
        $("#in_scadenza").datepicker();        
        $("#in_richiesta").datepicker();
        
        $("#accordion").accordion({active: parseInt($("#activeTab").val())});        
        //$("#dettoper").dialog();
        //$("input:button").button(); 
    })
};

function load_content_left(param) {
    self.iframe_active = true;
    $('#buffer_menu').attr('src', '/ecom.dll/' + param);
    return false;
};

function load_content(param) {
    self.iframe_active = true;
    $('#wait').show();
    $('#buffer').attr('src', '/ecom.dll/' + param);

    //verifica la presenza del tracker di google (solo a milano)
    if (typeof pageTracker != "undefined") pageTracker._trackPageview(param);

    return false;
};



function post_content(param, formid, respid) {
    $.post('/ecom.dll/' + param, $(formid).serialize(), function (data) {
        $(respid).html(data);
    })

};

function post_contentex(param, formid, respid) {
    $.post('/ecom.dll/' + param, $(formid).serialize(), function (data) {
        $(respid).html(data);                
        $('#tabella_candidati').load("/ecom.dll/schede?action=reload");
    })

};

function load_content_link(url) {
    document.location.href = url;
};

function show_user_msg(testo,dlgType,func) {
    
    $("#notifica").dialog("destroy");
    $("#notifica").empty();
    
    if (dlgType == eDlgType.eatAlert) {
        $("#notifica").attr("title","Attenzione");
        $("#notifica").html(testo);
        
        $("#notifica").dialog({
            modal: true,
            width: 300,
            resizable:false
   	    });
    }
    
    if (dlgType == eDlgType.eatConfirm) {
        $("#notifica").attr("title","Conferma operazione");
        $("#notifica").html(testo);            
        $("#notifica").dialog({
            modal:true,
            width:600,
            buttons: { "Ok":      function() { func(); $(this).dialog("close"); },
                       "Annulla": function() { $(this).dialog("close"); }       
                     }      
   	        });        
    }
    
    if (dlgType == eDlgType.eatNotice) {
        $("#notifica").attr("title","Nota informativa");
        $("#notifica").html(testo);
        
        $("#notifica").dialog({
            modal: true,
            width: 600, 
        	buttons: {
        		Ok: function() {
        			$( this ).dialog( "close" );
        		}
            }
   	    });
    }
}

function show_anagrafica(st) {
    
    if ($('#logged').length && st == 1) {        
        
        if ($('#accType').length && ($('#accType').val()==eTipoAccount.eatAutoscuola)) {            
            load_menu(273);            
            load_content('Anagrafica');    
            //show_user_msg("<span style='font-size:12px'>Aggiornamento versione<br>- modificata la funzione di invio degli sms: se disponibile viene indicato il numero del mittente. Verificate il vostro numero di cellulare all'interno dell'area \"Profilo\".</span>",eDlgType.eatNotice);
            //show_user_msg("<span style='font-size:12px'>È stata attivata sul vostro account una promozione che vi permetter&agrave; di consultare il nuovo listato CQC ed il nuovo listato NAUTICA; per visionare le schede di questi listati &egrave; necessario assegnare a un candidato delle schede di esercitazione configurando opportunamente i nuovi corsi CQC Nazionele (generale,merci,persone) o  NAUTICA (entro 12 miglia, oltre 12 miglia, vela) .<br><br><b>Ricordiamo, inoltre, che dal 1 gennaio i costi per l'interrogazione delle visure, in relazione agli aumenti ISTAT, sono stati variati.</b></span>",eDlgType.eatNotice);        
        }
        if ($('#accType').length && ($('#accType').val()==eTipoAccount.eatCandidato)) {
            load_menu(551);
            load_content('SchedeCand?action=sel_tipo');
            //load_content('Anagrafica');      
        }
    }

    if ($('#logged').length == 0 && st == 1) {
        load_content('ByContent?id=1367'); //pagina errore login
    }

    if (st == 3) {
        goHome();
    }
};

function show_registrati() {
    load_menu(10);
    load_content('ByContent?id=975');
};

function show_menu() {
    var lyr = document.getElementById('lm');

    if (typeof self.iframe_active == 'undefined') return;

    if (window.frames['buffer_menu'] && lyr) {
        lyr.innerHTML = window.frames['buffer_menu'].document.body.innerHTML;
        lyr.style.display = 'block';
    }

    $('#dhtmlgoodies_slidedown_menu ul a').collapsor();
    
    if ($('#homeFlag').val()==1) {
        init_banner_sx();
        init_newproduct();
    }
    else  
        content_left_css(true);     
    
};



function drawExError() {
    var okErrors = new Array();
    var koErrors = new Array();
    var trendErrors = new Array();
    var i = 0;

    if ($("#grafErrSchedeVal").val().length==0) {
        $('#grafErrSchede').append("<div style='text-align:center'><p><b>Il candidato non ha ancora svolto schede fac-simili</b></p></div>");
        return;
    }
    //splitta la stringa dei dati in un array di valori (stringa)
    var valueStr = $("#grafErrSchedeVal").val().split(",");
    
    var maxErrors = parseInt($("#maxerror").val());
    var thrErr = parseInt($("#maxerror").val()) - parseInt($("#minerror").val());

    for (var i=0;i<valueStr.length;i++) {
        error=parseInt(valueStr[i]);
        if (error<=thrErr) {
            okErrors.push([(i + 1), error]);
            koErrors.push([(i + 1), null]);
        }
        else {
            koErrors.push([(i + 1), error]);
            okErrors.push([(i + 1), null]);
        }        
        trendErrors.push([(i + 1), error]);
    }
    
    
    
    var tickslabel = [];
    tickslabel.push(-1);
    for (i = 0; i <= maxErrors+4; i++)
        if (!(i%2)) tickslabel.push(i);
    
    $.jqplot.config.enablePlugins = true;
    plot1 = $.jqplot('grafErrSchede', [trendErrors,okErrors,koErrors], {
        grid : {gridLineColor:'#f1f4f0' },
        seriesDefaults: { trendline: { show: false } },
        axes:{yaxis:{ticks:tickslabel, tickOptions:{formatString:'%d'},  labelRenderer: $.jqplot.CanvasAxisLabelRenderer },
              xaxis:{tickOptions:{autoscale:true,formatString:'%d'}, min:0, tickInterval:1, labelRenderer: $.jqplot.CanvasAxisLabelRenderer }},
        series: [{showLine:true,  color:'#CCCCCC', showMarker:false, lineWidth:1},
                 {showLine:false, color:'#00FF00', pointLabels:{show:false}},
                 {showLine:false, color:'#FF0000', pointLabels:{show:false}}]        
    });

    $('<div><strong>N. errori / schede svolte</strong></p>').insertAfter('#grafErrSchede');
    return;
}

function drawTrends() {
    var values = new Array();
    var values2 = new Array();
    var i = 0;

    //splitta la stringa dei dati in un array di valori (stringa)
    var valuesStr = $("#grafCompletamentoVal").val().split(",");

    //costruisce un vettore di interi
    for (var i=0;i<parseInt($("#maxarg").val());i++) {
        values[i] = [(i + 1), parseInt(valuesStr[i])];
    }

    var tickslabel = [];    
    for (i = 0; i <= (parseInt($("#maxarg").val())+1); i++)
        tickslabel.push(i);

 
    plot2 = $.jqplot('grafCompletamento', [values], {
        grid : {gridLineColor:'#f1f4f0' },
        seriesDefaults:{
            renderer:$.jqplot.BarRenderer, 
            rendererOptions:{barPadding: 8, barMargin: 20}
        },
        axes:{yaxis:{ min:0, max:110, ticks: [[0, "0%"],[20, "20%"],[40, "40%"],[60, "60%"],[80, "80%"],[100, "100%"]], tickOptions:{formatString:'%d'}},
              xaxis:{min:0, max: (parseInt($("#maxarg").val())+1), tickInterval:1, tickOptions:{formatString:'%d'}}}            
    });
    $('<div><strong>Percentuali di completamento</strong></p>').insertAfter('#grafCompletamento');
  

    var values = [];
    var valuesColor = [];

    //splitta la stringa dei dati in un array di valori (stringa)
    valuesStr = $("#grafErrArgomentiVal").val().split(",");
    
    for (var i=0;i<parseInt($("#maxarg").val());i++) {
        values[i] = [(i + 1), parseInt(valuesStr[i])];
        if (parseInt(valuesStr[i]) >= 50) 
            valuesColor.push("#FF0000");
        else
            valuesColor.push("#00FF00");    
    }

    plot2 = $.jqplot('grafErrArgomenti', [values], {
        grid : {gridLineColor:'#f1f4f0' },
        seriesColors:valuesColor,
        seriesDefaults:{
            pointLabels: { show: true },
            renderer:$.jqplot.BarRenderer, 
            rendererOptions:{barPadding: 8, barMargin: 20,varyBarColor: true }
        },
        axes:{yaxis:{ min:0, max:110, ticks: [[0, "0%"],[20, "20%"],[40, "40%"],[60, "60%"],[80, "80%"],[100, "100%"]], tickOptions:{formatString:'%d'}},
              xaxis:{min:0, max: (parseInt($("#maxarg").val())+1), tickInterval:1, tickOptions:{formatString:'%d'}}},
        series: [{color:'#00FF00'},
                 {color:'#FF0000'}]    
    });    
    
    $('<div><strong>Percentuali degli errori</strong></p>').insertAfter('#grafErrArgomenti');
}

function drawExSpeed() {
    var values = new Array();
    var values2 = new Array();
    var i = 0;

    //splitta la stringa dei dati in un array di valori (stringa)
    var valuesStr = $("#grafVelocitaVal").val().split(",");;

    //costruisce un vettore di interi
    for (var v in valuesStr) {
        values[i] = [(i + 1), parseInt(valuesStr[i])];
        i++;
    }
    
    data = [{
            //label: "velocita",
            data: values,
            lines: {
                show: true,
                fill: true
            },
            points: {
                show: true
            }
        }];

    $.plot($("#grafVelocita"), data);
    $('<div><strong>Secondi / schede svolte</strong></p>').insertAfter('#grafVelocita');
}

function init_flvplayer() {
    return;
    if ($('#player').length) {
        flowplayer("player", "http://www.patente.it/scriptes/flowplayer-3.2.2.swf", {
            clip: {
                autoPlay: false, autoBuffering: true
            },
            play: {
                replayLabel: ''
            },
            plugins:{
              controls: {
                all: false,
          		play: true,
            	scrubber: true,
            	fullscreen: true
              }
            }
        });
    } 
}

function init_newproduct() {
    $('#content-left  div').each(function (index) {
        if ($(this).hasClass('titolo_ev')) {
            $(this).removeClass('titolo_ev').addClass('titolo_ev2');
            $(this).append('&nbsp;<img border="0" src=\'/img/news9.gif\'/></a> ');
        }
    });

}

function init_drawing() {
    
    if ($('#grafErrSchede').length) drawExError();

    if (($('#grafCompletamento').length) && ($('#grafErrArgomenti').length)) drawTrends();

    if ($('#grafVelocita').length) drawExSpeed();
}

function init_clipboard() {
    clip = new ZeroClipboard.Client();

    clip.addEventListener('complete', function (client, text) {
        alert("Indirizzo copiato nella clipboard (CTRL-V per incollarlo).");
    });
}

function init_viewer() {
    thumbnailviewer.init();
}

function init_fontsize() {
    var fontSizeNum = parseFloat(readCookie('TextFontSize'), 10);
    $('#text').css('font-size', fontSizeNum);
}

function init_accordion() {
    $('#accordion').accordion({
			autoHeight: false,
			navigation: true
	});
}

function update_clipboard() {

    if ($('#link_container1').length != 0) {
        clip.destroy();
        clip.glue('link_container1');

        var txt = $('#link_btn_txt1').val();
        clip.setText(txt);
    }
}

function show_content() {
    
    
    if (typeof self.iframe_active == 'undefined') 
        return;
        
    if (window.frames['buffer'] && ($('#content-center').length != 0)) {
        $('#content-center').html(window.frames['buffer'].document.body.innerHTML);
        $('#content-center').css('display','block');
    }

    $('#wait').hide();
    
    init_fontsize();
    init_scroller();        
    init_viewer();    
    init_drawing();
    
    init_accordion();
    
    if ($('#homeFlag2').val() == 1) {        
        init_banner_dx();
    }
    
    $('#content').show();
    $('#scheda_ministeriale').hide();        
};

function init_banner_sx() {
    show_banner('?IDTAG=27&IDDIV=fadeshow1&H=145&W=230');
};

function init_banner_dx() {
    show_banner('?IDTAG=28&IDDIV=fadeshow2&H=145&W=230');
};

function init_banner_menu() {    
    show_banner('?IDDIV=fadeshow&H=145&W=230');
};

function show_banner(param) {    
    $.getScript('/ecom.dll/BannerScript' + param, function () {});
}


/* Funzioni per il menu*/

function goHome() {
    if (scheda_loaded==true) 
        unloadScheda();        
    load_content_left('ByTemplate?doc=content_left.html');
    load_content('ByTemplate?doc=content_right.html');
    content_left_css(false);
    
    return false;
}

var activeMenuItem = false;

function showHide(sender) {
    if (activeMenuItem == false) activeMenuItem = document.getElementById('mainMenuItem1');

    var inactiveClass;
    if (activeMenuItem == document.getElementById('mainMenuItem10')) 
        inactiveClass = 'inactiveMenuItem2';
    else 
        inactiveClass = 'inactiveMenuItem';

    if (activeMenuItem) {

        activeMenuItem.className = inactiveClass;
        var theId = activeMenuItem.id.replace(/[^0-9]/g, '');
        var obj = document.getElementById('submenu_' + theId);
        if (obj) obj.style.display = 'none';
    }

    activeMenuItem = sender;
    sender.className = 'activeMenuItem';
    var theId = sender.id.replace(/[^0-9]/g, '');
    var obj = document.getElementById('submenu_' + theId);
    if (obj) obj.style.display = 'block';

    return false;
}


/* Funzioni per la disabilitazione delle richieste multiple */
function disabilita_ric_visura() {
    document.visure_form.conferma.disabled = true;
    var targa = document.visure_form.in_targa.value;
    var serie = document.visure_form.in_serie.value;
    load_content('visure?action=richiesta&in_targa=' + targa + '&in_serie=' + serie)
}

function disabilita_ric_ricarica() {
    var answer = confirm("State per ricaricare il vostro borsellino elettronico. Procedo con l'operazione?");
    if (answer) {
        document.borsellino_form.conferma.disabled = true;
        var importo = document.borsellino_form.in_importo.value;
        load_content('borsellino?action=ricarica&in_importo=' + importo)
    }
}

/* Funzioni legate al candidato */
function limitText (inputHandle, maxLen) { /* usato nel textarea per avvertire se la dimensione del testo è superiore alla dimensione massima del db*/
  if (inputHandle != null && inputHandle.value.length > maxLen) {
    if (maxLen == null) maxLen = 255;
      alert ("Il testo nel campo " + (inputHandle.name ? ("\"" + inputHandle.name + "\"") : "(senza nome)") + 
      " eccede il limite di " + maxLen + " caratteri.");

    inputHandle.value = inputHandle.value.substring (0, maxLen);
    inputHandle.select();
    inputHandle.focus();
    return true;
  } else
    return false;
}

function radio_checker(inputHandle, outputHandle) {
		if (inputHandle.checked) {
			outputHandle.disabled = false;
			outputHandle.focus();
		}
		else {
			outputHandle.disabled = true;
		}
}

function invia_sms() {    
    //alert(encodeURIComponent($('#in_messaggio').val()));
//    post_content('sms?action=sms_send&in_numero=' + $('#in_numero').val() + '&out_numero=' + $('input[name=out_numero]:checked').val() + '&in_messaggio=' + encodeURIComponent($('#in_messaggio').val()), '#sms_form', '#sms_resp');
    post_content('sms?action=sms_send&in_numero=' + $('#in_numero').val() + '&out_numero=' + $('#out_numero').val() + '&in_messaggio=' + encodeURIComponent($('#in_messaggio').val()), '#sms_form', '#sms_resp');

}
function invia_sms_radiotext() {
    var numero_out = "Autoscuola";    
    if ($('#out_testo').disabled ) 
      numero_out = $('input[name=out_numero]:checked').val();
    else numero_out = $('#out_testo').val();
    post_content('sms?action=sms_send&in_numero=' + $('#in_numero').val() + '&out_numero=' + numero_out + '&in_messaggio=' + encodeURIComponent($('#in_messaggio').val()), '#sms_form', '#sms_resp');

}

function invia_mail() {
    post_content('mailprop', '#mail_form', '#mail_resp');
}

function disabilita_cdq() {
    var trim_code = $('#in_codice').val().replace(/-/gi, "");
    post_content('cdquiz?action=cdq_test&in_codice=' + trim_code.toUpperCase(), '#cdq_form', '#cdq_resp');
}

function run_search() {
    load_content('ByRicerca?in_word=' + $('#in_word').val() + '&search_where=' + $('#search_where_p').attr("checked") + '&menuTree=' + $('#menuTree').val() + '&off=0');
}

function recupero_pwd() {
    var str = $('#in_email').val();
    if (str.indexOf("@") == -1) post_content('pwd?action=pwd_rescue&in_user=' + str, '#respwd_form', '#respwd_resp');
    else post_content('pwd?action=pwd_rescue&in_email=' + str, '#respwd_form', '#respwd_resp');
}

function modifica_pwd() {
    if ($('#in_npwd').val() != $('#in_npwd2').val()) {
        alert("Attenzione le password inserite non coincidono!");
        return;
    }
    post_content('pwd?action=pwd_change&in_vpwd=' + $('#in_vpwd').val() + '&in_npwd=' + $('#in_npwd').val(), '#pwd_form', '#cpwd_resp');
}

function salva_profilo() {
    post_content('AnagraficaPost', '#ana_form', '#ana_resp');
}

function post_remove(idCand) {
    post_contentex('schede?action=revo&id=' + idCand, '', '#cand_resp');        
}

function confirmRemove(idCand,nome) {
    show_user_msg("Sei sicuro di voler revocare l'accesso a "+nome+"?",eDlgType.eatConfirm,function() {post_remove(idCand)});    
}

function post_delete(idCand) {
    post_contentex('schede?action=dele&id=' + idCand, '', '#cand_resp');        
}

function confirmDelete(idCand,nome) {
    show_user_msg("Sei sicuro di voler eliminare "+nome+" dal tuo archivio?",eDlgType.eatConfirm,function() {post_delete(idCand)});    
}

function echeck(str) {
    var at = "@";
    var dot = ".";
    var lat = str.indexOf(at);
    var lstr = str.length;
    var ldot = str.indexOf(dot);
    var msg = "L'indirizzo email che hai inserito non è valido.";

    if (str.indexOf(at) == -1) {
        alert(msg);
        return false
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        alert(msg);
        return false
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        alert(msg);
        return false
    }

    if (str.indexOf(at, (lat + 1)) != -1) {
        alert(msg);
        return false
    }

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        alert(msg);
        return false
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        alert(msg);
        return false
    }

    if (str.indexOf(" ") != -1) {
        alert(msg);
        return false
    }

    return true
}

function assegna_provincia() {
    
    if ($('#PV').val()==-1) {
        alert("Devi selezionare una provincia");
        return;
    }
    
    $('#PROVINCIA').val(trim($('#PV :selected').text()));            
    load_content_ext('#sel_com', 'registrazione?action=sel_com&in_prov=' + $('#PV').val());
}

function assegna_comune() {
    
    if ($('#CM').val()==-1) {
        alert("Devi selezionare un comune");
        return;
    }      
        
    var str = $('#CM :selected').text();               
    str=str.replace(")","");
    astr=str.split("(");
    
    $('#COMUNE').val(trim(astr[0]));
    $('#CAP').val(trim(astr[1]));
}

function assegna_provincia_auto() {
    
    if ($('#PVAUTO').val()==-1) {
        alert("Devi selezionare una provincia");
        return;
    }
    
    $('#PROVINCIAAUTO').val(trim($('#PVAUTO :selected').text()));    
    load_content_ext('#sel_comauto', 'registrazione?action=sel_comauto&in_prov=' + $('#PVAUTO').val());
    load_content_ext('#sel_auto', 'registrazione?action=sel_comauto=0');
}


function assegna_comune_auto() {
    
    if ($('#CMAUTO').val()==-1) {
        alert("Devi selezionare un comune");
        return;
    }
    
    $('#COMUNEAUTO').val(trim($('#CMAUTO :selected').text()));  
    load_content_ext('#sel_auto', 'registrazione?action=sel_auto&in_com=' + $('#CMAUTO').val());    
}

function lista_completa() {
    if ($('#CMAUTO').val()==-1) {
        alert("Devi selezionare un comune");
        return;
    }
    
    $('#COMUNEAUTO').val($('#CMAUTO :selected').text());    
    load_content_ext('#sel_auto', 'registrazione?action=sel_auto_all&in_com=' + $('#CMAUTO').val());
}


function controllo_giornalino(form) {
    with(document.forms[0]) {
        if (mail.value == "") {
            alert("La tua email e\' necessaria. Si prega di digitarla", "");
            mail.focus();
            return false;
        }

        if (echeck(mail.value) == false) {
            mail.value = "";
            mail.focus();
            return false
        }

        if (ragione.value == "") {
            alert("E\' obbligatorio inserire la ragione sociale della tua azienda. Si prega di digitarla", "");
            ragione.focus();
            return false;
        }

        if (nome.value == "") {
            alert("E\' obbligatorio inserire il tuo nome. Si prega di digitarlo", "");
            nome.focus();
            return false;
        }

        if (cognome.value == "") {
            alert("E\' obbligatorio inserire il tuo cognome. Si prega di digitarlo", "");
            cognome.focus();
            return false;
        }

        if (indirizzo.value == "") {
            alert("E\' obbligatorio inserire il tuo indirizzo. Si prega di digitarlo", "");
            indirizzo.focus();
            return false;
        }

        if (comune.value == "") {
            alert("E\' obbligatorio inserire il tuo comune di residenza. Si prega di digitarlo", "");
            comune.focus();
            return false;
        }

        if (provincia.value == "") {
            alert("E\' obbligatorio inserire la provincia. Si prega di digitarla", "");
            provincia.focus();
            return false;
        }

        if (cap.value == "") {
            alert("E\' obbligatorio inserire il CAP. Si prega di inserirlo", "");
            cap.focus();
            return false;
        }

        if (telefono.value == "") {
            alert("Un riferimento telefonico e\' obbligatorio. Si prega di digitarlo", "");
            telefono.focus();
            return false;
        }
    }
    post_content('Mail?dest=1', '#mailform', '#mailresp');
}

function controllo_contatti_cdqc(form) {
    with(document.forms[0]) {
        if (nome.value == "") {
            alert("E\' obbligatorio inserire il tuo nome o cognome. Si prega di digitarlo", "");
            nome.focus();
            return false;
        }

        if (mail.value == "") {
            alert("La tua email e\' necessaria. Si prega di digitarla", "");
            mail.focus();
            return false;
        }

        if (echeck(mail.value) == false) {
            mail.value = "";
            mail.focus();
            return false
        }

        if (nomeautoscuola.value == "") {
            alert("E\' obbligatorio inserire il nome della tua autoscuola. Si prega di digitarlo", "");
            nomeautoscuola.focus();
            return false;
        }

        if (localita.value == "") {
            alert("E\' obbligatorio inserire la localita della tua autoscuola. Si prega di digitarla", "");
            localita.focus();
            return false;
        }

        if (codice.value == "") {
            alert("E\' obbligatorio inserire il codice prodotto. Si prega di digitarlo", "");
            codice.focus();
            return false;
        }

        if (testo.value == "") {
            alert("Il testo del messaggio e\' obbligatorio. Si prega di inserirlo", "");
            testo.focus();
            return false;
        }
    }
    post_content('Mail?dest=2', '#mailform', '#mailresp');
}

function controllo_contatti(form) {
    with(document.forms[0]) {
        if (mail.value == "") {
            alert("La tua email e\' necessaria. Si prega di digitarla", "");
            mail.focus();
            return false;
        }

        if (echeck(mail.value) == false) {
            mail.value = "";
            mail.focus();
            return false
        }

        if (nome.value == "") {
            alert("E\' obbligatorio inserire il tuo nome o cognome. Si prega di digitarlo", "");
            nome.focus();
            return false;
        }

        if (autoscuola.value == "") {
            alert("Il riferimento della tua autoscuola e\' obbligatorio. Si prega di digitarlo", "");
            autoscuola.focus();
            return false;
        }

        if (prove.value == "") {
            alert("E\' obbligatorio compilare il campo \"Provenienza\". Si prega di digitarlo", "");
            prove.focus();
            return false;
        }

        if (telefono.value == "") {
            alert("Un riferimento telefonico e\' obbligatorio. Si prega di digitarlo", "");
            telefono.focus();
            return false;
        }

        if (testo.value == "") {
            alert("Il testo del messaggio e\' obbligatorio. Si prega di inserirlo", "");
            testo.focus();
            return false;
        }
    }
    
    if ($("#mailform select option:selected").text()=="Assistenza software")
        idx=2;
    if ($("#mailform select option:selected").text()=="Commerciale & Amministrazione")
        idx=1;
    if ($("#mailform select option:selected").text()=="Codici di registrazione")
        idx=1;
    if ($("#mailform select option:selected").text()=="Ordine di libri")
        idx=3;        
        
    post_content('Mail?dest='+idx, '#mailform', '#mailresp');
}

function checkFormVal(ctrl, msg) {
    if (($(ctrl).val() == "")) {
        alert(msg);
        $(ctrl).focus();
        return false;
    }

    return true;
}

function checkFormText(ctrl, msg) {
    if (($(ctrl+" option:selected").text() == " ")) {
        alert(msg);
        $(ctrl).focus();
        return false;
    }

    return true;
}


function controllo_assegnaschede(id) {
    if ($('#in_numschede').val() > 10000) {
        show_user_msg("<span style=\"color:red\">E' stato superato il limite di schede assegnabili a un candidato</span>",eDlgType.eatAlert);
        return;
    }
    
    if ( $("#in_optype").val() == 1 ) {
        if ($('input:checked').length==0) {
            show_user_msg("<span style=\"color:red\">Non e' stato selezionato nessun corso</span>",eDlgType.eatAlert);    
            return;
        }
    }  
    
    post_contentex('schede?action=asse&idcandidato='+id, '#autor_form', '#autor_resp');
}

function controllo_cf(cf)
{
    var validi, i, s, set1, set2, setpari, setdisp;
    if( cf == '' )  return '';
    cf = cf.toUpperCase();
    if( cf.length != 16 )
        return "La lunghezza del codice fiscale non è\n"
        +"corretta: il codice fiscale dovrebbe essere lungo\n"
        +"esattamente 16 caratteri.\n";
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for( i = 0; i < 16; i++ ){
        if( validi.indexOf( cf.charAt(i) ) == -1 )
            return "Il codice fiscale contiene un carattere non valido `" +
                cf.charAt(i) +
                "'.\nI caratteri validi sono le lettere e le cifre.\n";
    }
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    s = 0;
    for( i = 1; i <= 13; i += 2 )
        s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    for( i = 0; i <= 14; i += 2 )
        s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
    if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
        return "Il codice fiscale non è corretto:\n"+
            "il codice di controllo non corrisponde.\n";
    return "";
}

function controllo_piva(pi)
{
    if( pi == '' )  return '';
    if( pi.length != 11 )
        return "La lunghezza della partita IVA non è\n" +
            "corretta: la partita IVA dovrebbe essere lunga\n" +
            "esattamente 11 caratteri.\n";
    validi = "0123456789";
    for( i = 0; i < 11; i++ ){
        if( validi.indexOf( pi.charAt(i) ) == -1 )
            return "La partita IVA contiene un carattere non valido `" +
                pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
    }
    s = 0;
    for( i = 0; i <= 9; i += 2 )
        s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    for( i = 1; i <= 9; i += 2 ){
        c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
        if( c > 9 )  c = c - 9;
        s += c;
    }
    if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
        return "La partita IVA non è valida:\n" +
            "il codice di controllo non corrisponde.\n";
    return '';
}
function controllo_candidato() {

    var ret = checkFormVal('#in_rnome', 'Attenzione, non hai inserito il nome!');

    if (ret) ret = checkFormVal('#in_rcognome', 'Attenzione, non hai inserito il cognome!');

    if (ret) ret = checkFormVal('#in_remail', 'Attenzione, non hai inserito la tua email!');

    if (ret && !echeck($('#in_remail').val())) {
        $('#in_remail').val("");
        $('#in_remail').focus();
        ret = false;
    }

    if (ret) ret = checkFormVal('#in_rlog', 'Attenzione, non hai inserito la login!');

    if (ret) ret = checkFormVal('#in_rpas1', 'Attenzione, non hai inserito la password!');

    if (ret) ret = checkFormVal('#in_rpas2', 'Attenzione, non hai inserito la password di conferma!');

    if (ret && ($('#in_rpas1').val() != $('#in_rpas2').val())) {
        alert("Attenzione, le due password non coincidono!");
        $('#in_rpas1').val("");
        $('#in_rpas2').val("");
        ret = false;
    }

    if (ret) ret = checkFormVal('#in_rir', 'Attenzione, non hai inserito l\'indirizzo!');

    if (!($('#idauto').val())) {
        if (ret && $("input:checked").length == 0) {
            alert("Attenzione! Devi selezionare almeno un'autoscuola a cui vuoi inoltrare la richiesta di registrazione.");
            ret = false;
        }
    }

    if (ret) {
        param = $('#registrazione_form').serialize(); 
        post_content('Registrazione?action=reg_ok&'+param, '#registrazione_form', '#reg_resp');
    }
}

function crea_candidato() {    
    
    var ret = true;
    
    if (ret) ret = checkFormVal('#in_cognome', 'Attenzione, non è stato inserito il cognome del candidato!');
    if (ret) ret = checkFormVal('#in_nome', 'Attenzione, non è stato inserito il nome del candidato!');
    if (ret) ret = checkFormVal('#in_email', 'Attenzione, non è stata inserita la mail del candidato!');
    if (ret) ret = checkFormVal('#in_login', 'Attenzione, non è stata inserita la login del candidato!');
    if (ret) ret = checkFormVal('#in_passwd1', 'Attenzione, non è stata inserita la password del candidato!');
    if (ret) ret = checkFormVal('#in_indirizzo', 'Attenzione, non è stato inserito l\'indirizzo del candidato!');
    
    if (ret) ret = checkFormText('#PV', 'Attenzione, non è stata selezionata la provincia del candidato!');
    if (ret) ret = checkFormText('#CM', 'Attenzione, non è stato selezionato il comune del candidato!');
    
    if (ret) post_contentex('schede?action=comm', '#newcand_form', '#reg_resp');
    
}

function edit_candidato() {
    
    var ret = true;
    if (ret) ret = checkFormVal('#in_cognome', 'Attenzione, non è stato inserito il cognome del candidato!');
    if (ret) ret = checkFormVal('#in_nome', 'Attenzione, non è stato inserito il nome del candidato!');
    if (ret) ret = checkFormVal('#in_email', 'Attenzione, non è stata inserita la mail del candidato!');
    if (ret) ret = checkFormVal('#in_login', 'Attenzione, non è stata inserita la login del candidato!');
    if (ret) ret = checkFormVal('#in_passwd1', 'Attenzione, non è stata inserita la password del candidato!');
    if (ret) ret = checkFormVal('#in_scadenza', 'Attenzione, non è stata inserita la data di scadenza dell\'account.');
    if (ret) ret = checkFormVal('#in_indirizzo', 'Attenzione, non è stato inserito l\'indirizzo del candidato!');
    
    if (ret) ret = checkFormText('#PV', 'Attenzione, non è stata selezionata la provincia del candidato!');
    if (ret) ret = checkFormText('#CM', 'Attenzione, non è stato selezionato il comune del candidato!');
    
    if (ret) ret = checkFormVal('#in_richiesta', 'Attenzione, non è stata inserita la data di richiesta dell\'account.');
    
    if (ret) post_contentex('schede?action=edit', '#editcand_form', '#reg_resp');
}


function controllo_autoscuola() {
    ret=true;
    
    if (ret) ret = checkFormVal('#in_rragione', 'Attenzione, non è stata inserita la ragione sociale!');
    if (ret) ret = checkFormVal('#in_rnome', 'Attenzione, non è stato inserito il nome del richiedente!');
    if (ret) ret = checkFormVal('#in_rcognome', 'Attenzione, non è stato inserito il cognome del richiedente!');
    if (ret) ret = checkFormVal('#in_rindirizzo', 'Attenzione, non è stato inserito l\'indirizzo!');
    
    if (ret) ret = checkFormText('#PV', 'Attenzione, non è stata selezionata la provincia!');
    if (ret) ret = checkFormText('#CM', 'Attenzione, non è stato selezionato il comune!');
    
    if (ret) ret = checkFormVal('#in_rpi', 'Attenzione, non è stata inserita la partita IVA!');
    
    if (ret && !echeck($('#in_rmail').val())) {
        $('#in_rmail').val("");
        $('#in_rmail').focus();
        ret = false;
    }
    
    if (ret) ret = checkFormVal('#in_rtel', 'Attenzione, non è stato inserito il telefono!');
    
    if (ret) {
        err = controllo_piva($('#in_rpi').val());
        if(err==0) {
            param = $('#registrazione_form').serialize();
            post_content('RegistrazioneAuto?action=reg_ok&'+param, '#registrazione_form', '#reg_resp');    
        }
        else
            alert(err);    
    }
}

function salvalingua() {
    post_content('Impostazionicand?action=upd_lang&lingua=' + document.forms[0].lingua_schede.value, '#lingua_form', '#lingua_res');
}


function assegna_tipo() {
    if (($('#tipo_scheda').val() == 2) || ($('#tipo_scheda').val() == 3)) {
        $('#sel_user').css({
            'visibility': 'visible'
        });
        load_content_ext('#sel_user', 'schedecand?action=sel_user');
    }
    else $('#sel_user').empty();
}

function controllo_schede(genera) {
    var bitMaskArgo = 0;
    var numSchede = $('#numschede').val();
    var argoCount = $('#argo_count').val();

    //genera =0 schede gia assegnate
    if (genera == 0) {
        if ($('#tipo_scheda_h').val() != self.tipo_scheda) {            
            self.tipo_scheda = $('#tipo_scheda_h').val();
        }
    }
    
    loadScheda(self.tipo_scheda, numSchede, argoCount, bitMaskArgo);
}


function show_dialog(mode) {
    //$("#dialog:ui-dialog").dialog( "destroy" );
    $("#sel_user").dialog( "destroy" );
    
    var execute = function() {
        
        if ($("input:checked").length==0) {
            if (mode==eTipoSelezione.Corso)
                alert("Attenzione! Devi selezionare almeno un corso.");
            else
                alert("Attenzione! Devi selezionare almeno un argomento.");
        }            
        else {            
            var bitMask = 0; 
            for (i = 0; i < $('#sel_count').val(); i++) {
                if ($('#sel_item' + i).attr('checked') == true) bitMask |= (1 << i);
            }
            
            loadScheda(self.tipo_scheda, $('#numschede').val(), $('#sel_count').val(), bitMask); //chiamata effettiva di caricamento
            $( "#sel_user" ).dialog("close");        
        }
    };
                
    var cancel = function() {
        $("#sel_user").dialog("close");
    };

    if (mode==eTipoSelezione.Corso)
        strTitle="Lista corsi";
    else
        strTitle="Lista argomenti";
        
    var dialogOpts = {
        buttons: {
            "Ok": execute,
            "Annulla": cancel
        },
        modal: true,
        height: 320,
        width: 600,    
        title: strTitle    
    };
    
    //$("#sel_user").dialog(dialogOpts);
}
function genera_tipo(val) {
    self.tipo_scheda = val;
    
    var bitMask = 0;
    
    switch(val)
    {
        case eTipoScheda.FacSimile:
            $("input.sel_item").each(function (n) {
                if ($(this).attr('checked')==true)
                    bitMask |= (1 << $(this).val());                
            });
            loadScheda(self.tipo_scheda, $('#numschedeFac').val(), $('#sel_count').val(), bitMask); //chiamata effettiva di caricamento
        break;
        case eTipoScheda.Argomento:            
            $("input.sel_item_argo").each(function (n) {
                if ($(this).attr('checked')==true)
                    bitMask |= (1 << $(this).val());                
            });
            
            if (bitMask==0)
                alert("Attenzione! Devi selezionare almeno un argomento."); 
            else
                loadScheda(self.tipo_scheda, $('#numschedeArgo').val(), $('#sel_count_argo').val(), bitMask); //chiamata effettiva di caricamento
        break;
        case eTipoScheda.Selezionati:
            $("input.sel_item_argo_sel").each(function (n) {
                if ($(this).attr('checked')==true)
                    bitMask |= (1 << $(this).val());                
            });

            if (bitMask==0)
                alert("Attenzione! Devi selezionare almeno un argomento."); 
            else
                loadScheda(self.tipo_scheda, $('#numschedeSel').val(), $('#sel_count_argo').val(), bitMask); //chiamata effettiva di caricamento                    
        break;
    }
}

function content_left_css(view) {
    if (view == true) { /*$('#content-left').css({'background': 'url(../img/bck_menu.jpg) 0% 0% repeat-y'});*/
        $('#content-left').css({'background': '#F6F6F6'});
        $('#content-left').css({'border-right': 'solid 1px  #CCCCCC'});
        $('#content-left').css({'border-left': 'solid 1px  #CCCCCC'});
        $('#content-left').css({'border-bottom': 'solid 1px  #CCCCCC'});
        $('#fadeshow').css({'visibility': 'visible'});

    }
    else {
        $('#content-left').css({'background': '#ffffff'});
        $('#content-left').css({'border-right': 'none'});
        $('#content-left').css({'border-left': 'none'});
        $('#content-left').css({'border-bottom': 'none'});
        $('#fadeshow').css({'visibility': 'hidden'});
    }
}

////////////////////////////////
var headline_count;
var headline_interval;
var current_headline = 0;
var old_headline = 0;
var cont_hover = false;

var showTime = 3500; //millisecondi di visualizzazione
var scrollTime = 45; //millisecondi di scrolling
var scrollStep = 2;


function init_scroller() {

    current_headline = 0;
    old_headline = 0;
    headline_count = $("div.contentgrp").size();

    $("div.contentgrp div").each(function (n) {
        if ($(this).hasClass('titolo')) $(this).removeClass('titolo').addClass('titolo2');
        if ($(this).hasClass('abstract')) $(this).removeClass('abstract').addClass('abstract2');
    });

    var vis_area = parseInt($('#scrollup').css('height'));
    for (i = 0; i < headline_count; i++)
    $('div.contentgrp').eq(i).css('top', vis_area + 'px');

    if (headline_interval != 0) {
        clearInterval(headline_interval);
        headline_interval = 0;
    }

    setTimeout(headline_rotate, showTime);

    $('div.contentgrp').eq(current_headline).css('top', '5px');
    $('#scrollup').hover(function () {
        if (headline_interval != 0) {
            clearInterval(headline_interval);
            headline_interval = 0;
        }
        cont_hover = true;
    }, function () {
        setTimeout(headline_rotate, 200);
        cont_hover = false;
    });
}

function headline_rotate() {

    if (cont_hover) return;

    if (headline_interval == 0) {
        current_headline = (old_headline + 1) % headline_count;
        headline_interval = setInterval(headline_rotate, scrollTime);
    }

    var topOld = parseInt($('div.contentgrp').eq(old_headline).css('top'));
    topOld -= scrollStep;
    $('div.contentgrp').eq(old_headline).css('top', topOld + 'px');

    var topNew = parseInt($('div.contentgrp').eq(current_headline).css('top'));
    topNew -= scrollStep;
    $('div.contentgrp').eq(current_headline).css('top', topNew + 'px');

    if (topNew < 5) {
        clearInterval(headline_interval);
        headline_interval = 0;

        $('div.contentgrp').eq(old_headline).css('top', $('#scrollup').height() + 5 + 'px');
        old_headline = current_headline;

        if (!cont_hover) setTimeout(headline_rotate, showTime);
    }
}

function init_newsticker() {
    var inPausa = false;
    var z = 0;
    var stripWidth;
    var stripTime;
    var $strip;
    var caricato = false;
    $(function () {
        $.get(newsTickerUrl, function (data) {
            var inject = '<p id="strip" style="display: inline">';
            $('item', data).each(function (i) {
                inject += '<span>' + $('pubDate', this).text() + '<\/span>';
                inject += '<a href="' + $('link', this).text() + '">' + $('title', this).text() + '<\/a>';
            });
            inject += '<\/p>';
            $('#mask').append(inject);
            caricato = true;
            //passiamo a $strip l'oggetto jQuery per poterlo poi concatenare
            $strip = $("#mask p#strip");

            //pausa lo scroll
            $("#tickercontainer").hover(function () {
                inPausa = true;
            }, function () {
                inPausa = false;
            });

            //otteniamo la larghezza in px del P (inject)
            stripWidth = $strip.width();

            function scrollmarquee() {

                if (caricato) {
                    if (!inPausa) {
                        z++;
                        $strip.css("left", (930 - z));
                        if ($strip.css("left").replace('px', '') <= -stripWidth) {
                            z = 0;
                        }
                    }
                }
            };

            setInterval(scrollmarquee, 20);
        });
    });
}

function setFontSize(size) {
    var currentFontSize = $("#text").css("font-size");
    var currentFontSizeNum = parseFloat(currentFontSize, 10);

    if (size == 'inc' && currentFontSizeNum < 30) {
        var newFontSize = currentFontSizeNum * 1.2;
        $('#text').css('font-size', newFontSize);
        createCookie('TextFontSize', newFontSize, 365);
    }
    if (size == 'dec' && currentFontSizeNum > 10) {
        var newFontSize = currentFontSizeNum * 0.8;
        $('#text').css('font-size', newFontSize);
        createCookie('TextFontSize', newFontSize, 365);
    }
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = '; expires=' + date.toGMTString();
    }
    else expires = '';
    document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name) {
    var nameEQ = name + '=';
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ')
        c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return 12;
}

function posta_commento() {

    if ($('#in_utente').val() == '') {
        alert("Inserisci il tuo nome se desideri postare un commento");
        return;
    }

    if ($('#in_testo').val() == '') {
        alert("Inserisci il tuo commento");
        return;
    }

    $('#gr_comm_box_post').hide();
    $('#gr_comm_box').fadeOut('slow', function () {

        var content = $('#in_testo').val().replace(/\u20ac/g, 'Euro');
        var user = $('#in_utente').val();

        $('#gr_comm_box').empty();
        load_content_ext('#gr_comm_box', 'inscomm?in_utente=' + user + '&in_testo=' + content + '&in_id=' + $('#doc_id').attr('val'));

        $('#in_utente').val('');
        $('#in_testo').val('');
    });

    $('#gr_comm_box').fadeIn('slow', function () {
        $('#gr_comm_box_post').show();
    });
}


function print_content() {    
    $('#content-print').jqprint();  
}

function verifica_corsi(obj) {

    newTab = parseInt($(obj).closest('div').attr('id').substr(5,3));     
    if (newTab!=$('#activeTab').val()) {
        $('input:checked').attr('checked', false);
        $(obj).attr('checked', true);
        $('#activeTab').val(newTab);
    } 
    
    
    if ($('input:checked').length >4) {
        show_user_msg("Non puoi assegnare più di quattro corsi ad un candidato.",eDlgType.eatAlert);
        $(obj).attr('checked', false);        
    }   
}

function post_corsi(dont_reset) {    
    if (dont_reset==true)
        post_contentex('schede?action=corsiu&reset=0', '#corsi_form', '#corsi_resp');
    else
        post_contentex('schede?action=corsiu&reset=1', '#corsi_form', '#corsi_resp');
    
    $('#activeTabBack').val($('#activeTab').val());
}
function assegna_corsi() {
    if ($('#activeTab').val()!=$('#activeTabBack').val()) {
        var msgTxt="<span style=\"color:red\">L'assegnamento a questi corso/i comporta l'annullamento di tutte le schede assegnate al candidato.</span><br><br>"+
                   "Se si desidera applicare comunque la variazione?";
        show_user_msg(msgTxt,eDlgType.eatConfirm,function() {post_corsi(false)});
    }
    else    
        post_corsi(true);
}

function cambia_candidati() {   
    load_content('schede?cand_val='+$('#cand_val').val());
}


function toggle_legend() {
    if ($('.place_leg').is(":visible")) {
        $('.place_leg').hide();
        $('#legend_table_label').html('Mostra legenda simboli');
    }
    else {
        $('.place_leg').show();
        $('#legend_table_label').html('Nascondi legenda simboli');
    }
}

