var netCaptcha = '';
var code;
var parentID;
var commento;
var ordinamento;
var dateIns; var username; var usermail; var lastID; var isSiteInscribed;

function getCookie(c_name){
    if (document.cookie.length>0){
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1){ 
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1){ c_end=document.cookie.length; }
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}
function setCookie(c_name,value,expiredays,path) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate()+parseInt(expiredays));
    
    var cookie_string = c_name + "=" +escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString());
    if ( path ){ cookie_string += "; path=" + escape ( path ); } else { cookie_string += "; path=/"; }
    document.cookie = cookie_string;
}

function checkCookie( c_name ) {
coo = getCookie( c_name );
if (coo != null && coo != "")
    return true;
else
    return false;
}

function showC(originalRequest) {
    //showFadeAlert(originalRequest.responseText + "<br /><br /><a href='javascript:closeFadeAlert();'>chiudi</a>");
    eval(originalRequest.responseText);
    var tmp;
    if (risposta.cookie != undefined){
        for(var ind in risposta.cookie){
            tmp = risposta['cookie'][ind];
            setCookie( tmp.nome, tmp.valore, tmp.exp );
        }
    }
    code = risposta.code;
    commento = risposta.commento;
    ordinamento = risposta.ordinamento;
    parentID = risposta.parentID;
    username = risposta.username;
    usermail = risposta.usermail;
    dateIns = risposta.dateIns;
    lastID = risposta.lastID;
    isSiteInscribed = risposta.isSiteInscribed;
    showCodeAlert( code );
    if (parentID != undefined){ hideLoading('form_risposta');} else { hideLoading('inviacommento');}
}

function svuotaChiudiRisposta(){
    if (document.getElementById('form_risposta') != undefined){
        svuotaTextCommento('inviarisposta');
        new Effect.BlindUp(document.getElementById('form_risposta'));
        var da_rimuovere = document.getElementById('form_risposta');
        da_rimuovere.parentNode.removeChild(da_rimuovere);
    }
}

function showCodeAlert( code ){
    var errore;
    var tasto_chiudi = "<div style='margin: 10px 10px 0 10px;'><input name='chiudi' value='Chiudi' class='key' type='button' onClick='javascript:closeFadeAlert();'></div>"
    switch (code){
        case '0':
//            errore = "Inserimento eseguito con successo<br /><br /><a href='javascript:closeFadeAlert();'>chiudi</a>";
            svuotaTextCommento('inviacommento');/*newCaptcha();*/svuotaChiudiRisposta();showNewComment();
            break;
        case '100':
            errore = "<h2>ATTENZIONE</h2>Il <b>commento</b> è un campo obbligatorio"+ tasto_chiudi;
            break;
        case '200':
            errore = "<h2>ATTENZIONE</h2>Il <b>nome</b> è un campo obbligatorio" + tasto_chiudi;
            break;
        case '300':
            errore = "<h2>ATTENZIONE</h2>Hai già inserito questo messaggio"+ tasto_chiudi;
            break;
        case '400':
            errore = "<h2>ATTENZIONE</h2>Il codice di controllo inserito non corrisponde a quello visualizzato in figura."+ tasto_chiudi;
            newCaptcha();
            break;
        case '1000':
            errore = "<h2>ATTENZIONE</h2>Si è verificato un errore durante l'inserimento del commento. Controlla i dati inseriti e riprova"+ tasto_chiudi;             
            break;
        case '1100':
            errore = "<h2>SEGNALAZIONE INVIATA</h2>E' stata inviata una segnalazione di abuso relativa al messaggio.<br /> La nostra redazione controllera' al piu' presto.<br /> <br />Grazie per l'aiuto dallo staff di Voiaganto."+ tasto_chiudi;
            break;
        case '2000':
            errore = "<h2>ATTENZIONE</h2>Si è verificato un errore durante la segnalazione dell'abuso. Ci scusiamo per il disagio e ti invitiamo a riprovare più tardi"+ tasto_chiudi;
            break;

        default:
            errore = code + "<br /><br /><a href='javascript:closeFadeAlert();'>chiudi</a>";
    }
    if (errore != undefined && errore != ''){ showFadeAlert(errore); }
}

var commentoEsclusivo = '';
var inEsecuzione = 0;

function attendiEsecuzione(funzione){
    if (inEsecuzione == 1){
        self.setTimeout("attendiEsecuzione('"+funzione+"')", 200)
    }
    else{
        eval(funzione);
    }
}

var oldHTML = '';

function showCommentForm( idogg ){

    //alert('richiesto showCommentForm del com_'+idogg);
    ref = document.getElementById('com_'+idogg); 
    oldHTML = ref.innerHTML;
    if(commentoEsclusivo != ''){
        inEsecuzione = 1;
        eval("closeCommentForm('"+commentoEsclusivo.substring(4)+"');");
        attendiEsecuzione("showCommentForm("+idogg+")");
    }
    else {
        //ref = ref.parentNode;
        eval("document.inviacommento.idobj.value = '"+idogg+"';");
        var testo_form = document.getElementById('form_commenti').innerHTML;
        document.getElementById('form_commenti').innerHTML = '';

        var div_da_mostrare =document.createElement('div');
        div_da_mostrare.id = "commenti_visible";
        div_da_mostrare.style.display = 'block';
        div_da_mostrare.innerHTML = testo_form;
        
         

        eval("var div_scelto = document.getElementById('"+ref.id+"');");
        div_scelto.style.display = 'none';
        div_scelto.innerHTML = '<a onclick="javascript:closeCommentForm('+ idogg +');">Chiudi form commenti</a>';
        div_scelto.appendChild( div_da_mostrare );
        div_scelto.innerHTML += "<br clear='all'><br clear='all'>";
        new Effect.BlindDown(div_scelto);
        commentoEsclusivo = ref.id;
    } 
}

function rimuoviCommenti_visible(ref){
    var DIVtoRemove = document.getElementById("commenti_visible");
    DIVtoRemove.parentNode.removeChild(DIVtoRemove);
    ref.innerHTML = oldHTML;
    //ref.innerHTML = '<a onclick="javascript:showCommentForm('+ commentoEsclusivo.substring(4) + ');">Commenta questa recensione</a>';
    commentoEsclusivo =  '';
    inEsecuzione = 0;
}

function closeCommentForm( ref ){
    //alert('richiesta chiusura div com_'+ref)
    ref = document.getElementById('com_'+ref);
    //ref = ref.parentNode;
    var testo_form = document.getElementById('commenti_visible').innerHTML;
    document.getElementById('form_commenti').innerHTML = testo_form;
    //new Effect.BlindUp(document.getElementById('commenti_visible'));
    new Effect.BlindUp(document.getElementById('commenti_visible'), {queue: 'front', afterFinish: function(){rimuoviCommenti_visible(ref);}});
    /*eval("var div_scelto = document.getElementById('"+div_passato+"');");
    eval('new Effect.BlindUp('+div_passato+');');
    document.getElementById('hidden_commenti').innerHTML = div_scelto.innerHTML;*/
}

function showNewComment(){
    if (parentID == undefined || parentID == ''){
        var classe = 'post';
    }
    else {
        var classe = 'response';
    }
    //document.getElementById('commenti').style.display = "block"; 
    if (commentoEsclusivo != ''){ eval("document.getElementById('commenti_" + commentoEsclusivo.substring(4) + "').style.display = 'block';"); } else { document.getElementById('commenti').style.display = "block"; } 
    var testo = "<div class='"+classe+"' style='display: none;' id='post_"+ lastID +"'>\n";
    testo += "<p>" + commento + "</p>";
    if ( classe != 'response' ){
        /*testo += "<a href='javascript:rispondi(\""+ lastID + "\")'>Rispondi</a>";*/
    }
testo += "<span class='date'>Commentato da "; if (isSiteInscribed == 'true'){ testo += '<a href="http://viaggiatori.voiaganto.it/'+username+'/">' + username + '</a>'; } else { testo += username; } testo += " | " + dateIns + "</span>";
testo += "<span style=\"float: right;\"><a OnClick=\"javascript:segnalaAbuso('"+lastID+"')\"; rel='nofollow'>Segnala abuso</a></span><div style='clear:both'></div></div>";
if (parentID == undefined || parentID == ''){
    //var vecchio = document.getElementById('posts');
    if (commentoEsclusivo != ''){ var vecchio = document.getElementById('posts_'+commentoEsclusivo.substring(4)); } else { var vecchio = document.getElementById('posts'); }
    switch( ordinamento ){
        case 'asc':
            vecchio.innerHTML = vecchio.innerHTML + testo;
            break;
        case 'desc':
            vecchio.innerHTML = testo + vecchio.innerHTML;
            break;
    }
}
else {
    switch( ordinamento ){
        case 'desc':
            var div_risposta = document.createElement("div");
            div_risposta.innerHTML = testo;
            insertAfter(div_risposta,document.getElementById("post_"+parentID));  
            break;
        case 'asc':
            var div_risposta = document.createElement("div");
            div_risposta.innerHTML = testo;
            var div_posts = document.getElementById("post_"+parentID).parentNode;
            if (div_posts.childNodes){
                var questoblocco = 0; var esci = 0;
                var id_div_parent = "post_"+parentID;
                for (var i = 0; i < div_posts.childNodes.length && esci != 1; ++i){
                    var cobj = div_posts.childNodes[i];
                    if (cobj.tagName == "DIV" && cobj.className == 'post' && cobj.id == id_div_parent) {
                        questoblocco = 1;
                        if (i == div_posts.childNodes.length - 1 || div_posts.childNodes[(i+1)].className == "post"){
                            insertAfter(div_risposta,cobj);
                        }
                    }
                    else if ((questoblocco == 1 && (i == div_posts.childNodes.length - 1)) || (questoblocco == 1 && div_posts.childNodes[(i+1)].className == "post")){
                        insertAfter(div_risposta,cobj);  
                        esci = 1;
                    }
                }
            } 
            break;
    }
}

new Effect.SlideDown('post_'+ lastID);
}

function getCode(url, pars) {
var netAjax = new Ajax.Request( url, { method: 'post', parameters: pars, asynchronous: false, onComplete: showC });
}

//function chiudiRisposta (postid, ancora){
function chiudiRisposta (){
/*ancora.innerHTML = "Rispondi";
ancora.onclick = function onclick(event){javascript:rispondi( "+postid+ ", this);};*/
new Effect.BlindUp(document.getElementById('form_risposta'));
}

//function rispondi( postid, ancora ){
function rispondi( postid ){
//ancora.innerHTML = "Chiudi";

//ancora.onclick = function onclick(event){javascript:chiudiRisposta( "+postid+ ", this);};

if (document.getElementById('form_risposta') == undefined){
    var div_form = document.getElementById('form_commenti');
    var div_risposta = document.createElement('div');
    div_risposta.style.display = 'none';
    div_risposta.id = "form_risposta";
    div_risposta.innerHTML = div_form.innerHTML;
    if (div_risposta.childNodes){
        var esci = 0;
        for (var i = 0; i < div_risposta.childNodes.length && esci != 1; ++i) {
            var cobj = div_risposta.childNodes[i];
            if (cobj.tagName == 'H2'){cobj.innerHTML = "Rispondi a questo commento";}
            if (cobj.tagName == 'FORM'){cobj.name = "inviarisposta";}
        }
    }
    parentID = postid;
    insertAfter(div_risposta,document.getElementById("post_"+postid));  
    new Effect.BlindDown(div_risposta);
}else{
    var div_risposta = document.getElementById('form_risposta');
    new Effect.BlindUp(div_risposta, {queue: 'front', afterFinish: function(){insertAfter(div_risposta, document.getElementById("post_"+postid))}})
    new Effect.BlindDown(div_risposta, {queue: 'end'});
} 
}

function espandiRiduci(){

}

function insertAfter(newElement,targetElement) {
var parent = targetElement.parentNode;
if(parent.lastchild == targetElement) {
    parent.appendChild(newElement);
} else {
    parent.insertBefore(newElement, targetElement.nextSibling);
}
}

/*function newCaptcha() {
netCaptcha = '';
var url = '/ajax/chk_captcha.php';
var pars = 'rnd='+Math.random();
var netAjax = new Ajax.Request( url, { method: 'get', parameters: pars, asynchronous: false, onComplete: captchaResponse });


if (document.getElementById('form_risposta') != undefined){
    var form_risposta = document.inviarisposta;
    form_risposta.codeChk.value = '';
    form_risposta.imgcc.value = netCaptcha;
    form_risposta.netCodeChkImg.src = 'http://members.voiaganto.it/captchaImage.php?c='+netCaptcha;
}
var form_commento = document.inviacommento;
form_commento.codeChk.value = '';
form_commento.imgcc.value = netCaptcha;
form_commento.netCodeChkImg.src = 'http://members.voiaganto.it/captchaImage.php?c='+netCaptcha;
}

function captchaResponse(originalRequest) {
netCaptcha = originalRequest.responseText;
}*/

function showLoading(form_name){
var sel_form = eval("document." + form_name);
if (sel_form.childNodes){
    for (var i = 0; i < sel_form.childNodes.length; ++i) { var cobj = sel_form.childNodes[i]; if (cobj.tagName == 'DIV' && cobj.id == 'loading_img'){ cobj.style.display = 'block'; } } 
}
}

function hideLoading(form_name){
var sel_form = eval("document." + form_name);
if (sel_form.childNodes){
    for (var i = 0; i < sel_form.childNodes.length; ++i) { var cobj = sel_form.childNodes[i]; if (cobj.tagName == 'DIV' && cobj.
id == 'loading_img'){ cobj.style.display = 'none'; } }
}
}

function commentCall(form, pars ){
showLoading(form.name);
var nome_form = form.name;
hideAllMissingFields(nome_form);
if (checkFormCommenti(nome_form) != false){
        form_pars = getValuesForm(eval("document."+nome_form));
        pars = pars + "&"+form_pars;
        if (parentID != '' && nome_form == 'inviarisposta'){
            pars += "&parent="+parentID;
        }
        pars += "&referer=" + escape(document.URL);
        getCode('/commenti/commenti.php', pars);
    }
    else {
        hideLoading(nome_form);
    }
}

function segnalaAbuso( post ){
    var testo = "<h2>Segnalazione abuso</h2><br />Premi il tasto di seguito se ritieni che il messaggio non sia pertinente all'argomento trattato oppure possa essere considerato offensivo nei confronti di chiunque.<div style='margin-top: 10px;'><center><div style='float: left;'><input name='segnala' value='Segnala abuso' class='key' type='button' onClick='javascript:inviaSegnalaAbuso(\""+ post +"\")'></div> <div style='float: left; margin-left: 10px;'><input name='chiudi' value='Chiudi' class='key' type='button' onClick='javascript:closeFadeAlert();'></div><div style='clear:all'><!-- --></div></center></div>";
    showFadeAlert(testo);
}

function inviaSegnalaAbuso( post ){
    pars = 'action=abuso&post='+post;
    getCode('/commenti/commenti.php', pars); 
}

function svuotaTextCommento( form_name ){ eval("document."+form_name+".commento.value = ''");}

function trim( stringa ){ return stringa.replace(/^\s+|\s+$/g,""); }

function checkFormCommenti( nome_form ){
    eval("var commento = trim(document."+nome_form+".commento.value)");
    var last_comment = trim(unescape(getCookie( 'last_comment' )));
    var ritorno = true;
    eval("var form_in_uso = document."+nome_form);
    /* PRIMA MOSTRO CAMPI */
    if (commento == '') { ritorno = false; showMissingField('check_commento');}
    if (form_in_uso.username && form_in_uso.username.value == ''){ ritorno = false; showMissingField('check_username'); }
    if (last_comment != '' && last_comment == commento) { ritorno = false; }
    /*if (form_in_uso.codeChk && form_in_uso.codeChk.value == ''){ ritorno = false; showMissingField('check_codeChk'); }*/
    /* POI MOSTRO MESSAGGIO ERRORE PIU' IMPORTANTE */
    if (commento == '') { showCodeAlert('100'); }
    else if (last_comment != '' && last_comment == commento) { showCodeAlert('300'); }
    else if (form_in_uso.username && form_in_uso.username.value == ''){ showCodeAlert('200'); }
    /*else if (form_in_uso.codeChk && form_in_uso.codeChk.value == ''){ showCodeAlert('400'); }*/
    return ritorno;
}

/****************************************/

function dump(arr,level) {
    var dumped_text = "";
    if(!level) level = 0;

    //The padding given at the beginning of the line.
    var level_padding = "";
    for(var j=0;j<level+1;j++) level_padding += "    ";

    if(typeof(arr) == 'object') { //Array/Hashes/Objects
        for(var item in arr) {
            var value = arr[item];

            if(typeof(value) == 'object') { //If it is an array,
                dumped_text += level_padding + "'" + item + "' ...\n";
                dumped_text += dump(value,level+1);
            } else {
                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
            }
        }
    } else { //Stings/Chars/Numbers etc.
        dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
    }
    return dumped_text;
} 


/****************************************/



function getValuesForm (obj) {
 var tmpArray = new Array();
  if (obj.childNodes){
    for (var i = 0; i < obj.childNodes.length; ++i) {
      var cobj = obj.childNodes[i];
      if (cobj.tagName == 'INPUT' && ((cobj.type != 'submit') && (cobj.type != 'reset') && (cobj.type != 'button') && (cobj.type != 'radio') ) || cobj.tagName == 'TEXTAREA' || cobj.tagName == 'SELECT' || ((cobj.type == 'radio') && cobj.checked )){
        tmpArray.push(cobj.name +"="+ encodeURIComponent(cobj.value));
        }
    }
  }
  return tmpArray.join('&');
}

function checkMaxLength(bodyText, maxChars) {
    var bodyLength = bodyText.value.length;
    if (bodyLength > maxChars) {
        bodyText.value = bodyText.value.substring(0,maxChars);
    }
}

function showMissingField( obj ){
    if (document.getElementById( obj ) != undefined){
        document.getElementById( obj ).style.display = 'inline';
    }
}

function hideAllMissingFields( form_name ){
    eval("obj = document."+form_name);
    if (obj.childNodes){
        for (var i = 0; i < obj.childNodes.length; ++i) {
            var cobj = obj.childNodes[i];
            if (cobj.tagName == 'INPUT' && ((cobj.type != 'submit') && (cobj.type != 'reset') && (cobj.type != 'button')) || cobj.tagName == 'TEXTAREA' || cobj.tagName == 'SELECT' ){
                if (document.getElementById('check_'+ cobj.name) != undefined){ document.getElementById('check_'+ cobj.name).style.display = 'none'; }
            }
           
        }
    }
}

/*
function richiediIframe(){
    document.getElementById('newcaptcha').contentWindow.location = "http://members.voiaganto.it/newcaptcha.php#"+escape(document.URL) ;
}



function getComFrame(){
            var iwin;
            if(navigator.userAgent.indexOf("Safari") != -1){
                            iwin = frames["newcaptcha"];
            }else{
                            iwin = document.getElementById("newcaptcha").contentWindow;
            }
            return iwin;
        }

        var lastId = "";
        function checkForMessages(){
            if(location.hash != lastId){
                lastId = location.hash;
                alert('Ricevuto: '+lastId);
            }
        }
        
        setInterval(checkForMessages, 200);
*/

function stampa_form_commenti( idobj, kind, logged_as ) {
    var cont;

    var maxBodyLength = 1200;

    var c_username = getCookie("comment_name");
    var c_mail = getCookie("comment_mail");
    
    cont = "\n<!-- BEGIN FORM COMMENTI -->\n<div id='form_commenti'>";
    cont += "<h2>Scrivi un commento</h2>";
    cont += '<form name="inviacommento" action="#">';
    cont += '<input type="hidden" name="idobj" value="' + idobj + '">';
    cont += '<input type="hidden" name="idtype" value="' + kind + '">';
    /*cont += '<input name="imgcc" value="" type="hidden">';*/
    if (logged_as != ''){
        cont += "Sei loggato come <b>" + logged_as + "</b>. <a href='http://viaggiatori.voiaganto.it/user.php?act=logout&r="+ escape(document.URL) +"'>esci</a><br />";
    } else {
        cont += "Per scrivere un commento devi essere registrato. <a href='http://members.voiaganto.it/login.php?r=" + escape(document.URL) + "'>Registrati o accedi</a>";
        /*cont += "Tuo nome (richiesto):<br />";
        cont += "<input type='text' name='username' class='textbox' style='width: 275px' value = '" + c_username + "'/>";
        cont += "<br /><br />Vuoi salvare le tue informazioni personali per la prossima volta?<br />";
        cont += "<input type='radio' name='personal_cookie' value='1' class='nobord' "; if (c_username != ''){ cont += " CHECKED "; } cont += " />Si";
        cont += "<input type='radio' name='personal_cookie' value='0' class='nobord' "; if (c_username == ''){ cont += " CHECKED "; } cont += " />No";*/
    }

    if (logged_as != ''){
        cont += '<div style="margin: 10px 0 0 0;">Scrivi il tuo commento <span id="check_commento" style="color: red; font-weight: bold; display: none;">OBBLIGATORIO</span></div>';
        cont += '<textarea name="commento" rows="10" cols="50" style="float: left;" length="1" onChange="checkMaxLength(this, '+ maxBodyLength +')" onKeyUp="checkMaxLength(this, '+ maxBodyLength +')" onKeyDown="checkMaxLength(this, '+ maxBodyLength +')"></textarea>';
        cont += '<br clear="all"/>';
        cont += '<span id="check_commento" style="color: red; font-weight: bold; display: none;">OBBLIGATORIO<br /></span>'
        /*cont += '<img name="netCodeChkImg" src=""><a href="javascript:onclick=newCaptcha()">Non leggi?</a><br clear="all">Inserisci il codice visualizzato nella immagine sopra<br /><input class="textbox" name="codeChk" value="" type="text"><br /><br />';*/
        cont += '<input name="invia" value="Pubblica commento" class="key" type="button" onclick="javascript:commentCall(this.parentNode, \'action=ins\');" style="float:left; margin-right: 30px;"><div id="loading_img" name="loading_img" style="display: none;"><img src="/img/loading_ico_transp.gif"> Inserimento in corso...</div><div style="clear:both;"></div>';
    }
    cont += '</form>';
    cont += "</div>\n<!-- END FORM COMMENTI -->\n";
    /*cont += "<script type='text/javascript'>newCaptcha();</script>";*/
   
    /*cont += "<iframe id='newcaptcha' name='newcaptcha' src='http://members.voiaganto.it/newcaptcha.php' style='width:1px; height: 1px; border:0;'></iframe>" 
    cont += "<a href='javascript:richiediIframe()'>ooo</a>"*/
    document.write(cont);
    return;
}

