var isCtrl = false;

$(document).keyup(function (e) {
    if(e.keyCode == 17) isCtrl=false;
}).keydown(function (e) {
    if(e.keyCode == 17) isCtrl=true;
    // i need a timeout for the control key pressed, this prevents that the user
    // press the ctrl and puts pause in an embbed
    setTimeout(keyDownTheControl, 5000 );
});

function keyDownTheControl() {
    isCtrl=false;
}

var isUserIdle = false;
var oriDocumentTitle = false;

// Idle
(function($){

    $(document).bind("idle.idleTimer", function(){
        isUserIdle = true;
    });

    $(document).bind("active.idleTimer", function(){
         isUserIdle = false;
    }).trigger('active.idleTimer');;

    $.idleTimer(10000);

    isUserIdle = false;

})(jQuery);

$(document).ready(function() {
    $(".embbededImg").hover(function() {
        
        if ($(this).hasClass('unmaximizable') ) return;
        if ($(this).hasClass('maximizable') ) return;
        
        if ($(this).parent().hasClass('maximizable') ) return;
        
        if (this.width == 631 ) {
            $(this).parent().addClass('maximizable');
            $(this).addClass('maximizable');
            return;
        }
        else {
            $(this).addClass('unmaximizable');
            return;
        }

    });
});

// closes open replies:
function closeOpenedReplies() {
    $("ul.listadoRespuestas .corpo.open").removeClass("open");
    $("ul.listadoRespuestas .reply.open").removeClass("open");
}

// Sort respuestas:
function sortRepliesVotos( ) {
    $('#respuestasActions .Orders a.selected').removeClass('selected');
    $('#respuestasActions .Orders a.votos').addClass('selected');

    closeOpenedReplies();

    // order
    // $("ul.listadoRespuestas>li").tsort("ul.contadores li.votos span[class!=voto]", {order:"desc"} );
    $("ul.listadoRespuestas>li").tsort("div.votador p.votes", {order:"desc"} );

    // puts the winner top
    $("ul.listadoRespuestas .reply.closed").prependTo("ul.listadoRespuestas");
}

function sortRepliesNums( ) {
    $('#respuestasActions .Orders a.selected').removeClass('selected');
    $('#respuestasActions .Orders a.fecha').addClass('selected');

    closeOpenedReplies();

    // order
    $("ul.listadoRespuestas>li").tsort("div.corpo .user_info .real_date_created", {order:"asc"} );
}

// unblock an user
function restoreUser(id) {
    var consignaEl = $('#userID_'+id);

    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        consignaEl.fadeOut(1500);

        var url = __BASE_URL +'user/restore/'+ id;
        $.post(url, { action: "restore" },
          function(data) {
            if (data.error == 1) {
                alert('Error : {');
            }
          }, "json");

        $('#userID_'+id ).fadeOut(1500);

    }
    return;
}

function add2Favoritos(id, ele ) {
    var consignaEl = $('#li_consigna_'+id);

    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {

            var theErrorMSG = $('#msgNeedBeLogged4add2Favorites p').html();
            $('#hiperMessenger .wrapp3r').html(theErrorMSG );
            $('#hiperMessenger').removeClass('error');
            $('#hiperMessenger').css('display', 'block');

            // Scrolleo hasta arriba por si acaso:
            $.scrollTo('0');

            return;
        }

        ele = $(ele);

        if (ele.hasClass('favorited') ) {
            ele.removeClass('favorited');
            _sendAjax2removeFromFavorites(id );
        }
        else {
            $('#li_consigna_'+id+' .content').effect("highlight", {color: "#A3C7FB", mode: "show"}, 1500);
            ele.addClass('favorited');
            _sendAjax2add2Favorites(id );
        }
    }
    return;
}

function reShow(ele) {
    ele.show();
}

function removeRespuesta(id, msg) {
    var respuestaEl = $('#li_reply_'+id);

    if (respuestaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        var removeConfirmed = confirm(msg);

        // si confirma:
        if (removeConfirmed ) {
            respuestaEl.fadeOut(700);
            _sendAjax2DeletePermanentlyRespuesta(id);
        }
        else return;
    }
    return;
}

function removeConsigna(id, msg) {
    var consignaEl = $('#li_consigna_'+id);

    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        var removeConfirmed = confirm(msg);

        // si confirma:
        if (removeConfirmed ) {
            consignaEl.fadeOut(700);
            $('#li_consigna_'+id+' + ul.listadoRespuestas').fadeOut(700);
            _sendAjax2DeletePermanentlyConsigna(id );
        }
        else return;
    }
    return;
}

function closeConsigna(id, msg) {

    var consignaEl = $('#li_consigna_'+id);

    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        var removeConfirmed = confirm(msg);
        if (!removeConfirmed) return;

        consignaEl.fadeOut(700);

        $('#li_consigna_'+id+' + ul.listadoRespuestas').fadeOut(700);

        _sendAjax2DeleteConsigna(id );
    }
    return;
}

function restoreConsigna(id) {
    var consignaEl = $('#li_consigna_'+id);

    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        consignaEl.fadeOut(1500);

        var url = __BASE_URL +'consignas/restore/'+ id;
        $.post(url, { action: "restore" },
          function(data) {
            if (data.error == 1) {
                alert('Error : {');
            }
          }, "json");

        $('#li_consigna_'+id+' + ul.listadoRespuestas').fadeOut(1500);

    }
    return;
}

function restoreRespuesta(id) {
    var consignaEl = $('#li_reply_'+id);
    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        var url = __BASE_URL +'respuestas/restore/'+ id;
        $.post(url, { action: "restore" },
          function(data) {
            if (data.error == 1) {
                alert('Error : {');
            }
          }, "json");

        consignaEl.fadeOut(1500);
    }
    return;
}

function closeRespuesta(id) {
    var consignaEl = $('#li_reply_'+id);
    if (consignaEl ) {

        // if is not logged:
        if (!__isLOoOgedIN ) {
            openBoxLogin();
            return;
        }

        consignaEl.fadeOut(1500);
        _sendAjax2DeleteRespuesta(id );
    }
    return;
}

function _sendAjax2add2Favorites(consignaID ) {
    var url = __BASE_URL +'consignas/add2favorites/'+ consignaID;
    $.post(url, { action: "add" },
      function(data){
        if (data.error == 1) {
            alert('Error : {');
        }
      }, "json");
}

function _sendAjax2removeFromFavorites(consignaID) {
    var url = __BASE_URL +'consignas/removeFromFavorites/'+ consignaID;
    $.post(url, { action: "remove" },
      function(data){
        if (data.error == 1) {
            alert('Error : {');
        }
      }, "json");
}

function _sendAjax2DeleteConsigna(consignaID ) {
    var url = __BASE_URL +'consignas/delete/'+ consignaID;
    $.post(url, { action: "delete" },
      function(data){
        if (data.error == 1) {
            alert('Error : {');
        }
      }, "json");
}

function _sendAjax2DeletePermanentlyConsigna(consignaID) {
    var url = __BASE_URL +'consignas/delete_permanently/'+ consignaID;
    $.post(url, { action: "delete" },
      function(data){
        if (data.error == 1) {
            alert('Error : {');
        }
      }, "json");
}

function _sendAjax2DeleteRespuesta(respuestaID ) {
    var url = __BASE_URL +'respuestas/delete/'+ respuestaID;
    $.post(url, { action: "delete" },
      function(data){
        if (data.error == 1) {
            alert('Error : {');
        }
      }, "json");
}

function _sendAjax2DeletePermanentlyRespuesta(respuestaID) {
    var url = __BASE_URL +'respuestas/delete_permanently/'+ respuestaID;
    $.post(url, { action: "delete" },
      function(data){
        if (data.error == 1) {
            alert('Error : {');
        }
      }, "json");
}

function switchCheckBox(id) {
    if ($(id).attr('checked') ) $(id).attr("checked", false);
    else $(id).attr("checked", true);
}

function autoFill(obj, vdefault) {
    if (obj.value == '') obj.value = vdefault;
    else if (obj.value == vdefault) obj.value = '';
}

function votarConsigna(consignaID, ele, type) {

    // Si ya votó, retorna
    if ($(ele).hasClass("voted") || $(ele).hasClass("closed") ) return;
    if ($(ele).parent().hasClass("voted") || $(ele).parent().hasClass("closed") ) return;

    $(ele).addClass("voted");

    url = __BASE_URL + 'consignas/votar';

    // Muestro antes de enviar el post, que ya voto... así parece rapido

    // more or less?
    var votoValue = (type == 'more' ? 1 : -1 );
    var votoType = (votoValue > 0 ? 'up' : 'down' );

    var eleVotos = $("#li_consigna_"+consignaID+" .votador .votes");

    votos = eleVotos.html();
    eleVotos.html(parseInt(votos)+ votoValue );

    // remove class:
    eleVotos.removeClass('down up');

    // disable votos:
    $("#li_consigna_"+consignaID+" .votador").addClass('voted '+ votoType);
    eleVotos.addClass('voted '+ votoType);

    if (votoValue < 0 ) {
        $("#li_consigna_"+consignaID).addClass('voted_negative');
    }

    $.post(url, { action: "votar", consignaID: consignaID, type: type }, function(data) {

        if (data == 1 ) {

            // succceeesss!
        }

    } );

}

function votarReply(respuestaID, ele, type) {

    // Si ya votó, retorna
    if ($(ele).hasClass("voted") || $(ele).hasClass("closed") ) return;
    if ($(ele).parent().parent().parent().hasClass("voted") || $(ele).parent().parent().parent().hasClass("closed") ) return;

    $(ele).addClass("voted");

    url = __BASE_URL + 'respuestas/votar';

    // Muestro antes de que llegue el post... que votó, así parece rapido

    // more or less?
    var votoValue = (type == 'more' ? 1 : -1 );
    var votoType = (votoValue > 0 ? 'up' : 'down' );

    var eleVotos = $("#li_reply_"+respuestaID+" .votador .votes");

    votos = eleVotos.html();
    eleVotos.html(parseInt(votos)+votoValue);

    // remove class:
    eleVotos.removeClass('down up');

    // disable votos:
    $("#li_reply_"+respuestaID+" .votador").addClass('voted '+ votoType);
    eleVotos.addClass('voted '+ votoType);

    $.post(url, { action: "votar", respuestaID: respuestaID, type: type }, function(data) {

        if (data == 1 ) {

            // succcesss!!!

        }

    } );

}

function votarComment(commentID, ele) {

    // Si ya votó, retorna
    if ( $(ele).hasClass("voted") ) return;

    // if is not logged:
    if (!__isLOoOgedIN ) {
        openBoxLogin();
        return;
    }

    $(ele).addClass("voted");

    url = __BASE_URL + 'comments/votar';

    $.post(url, { action: "votar", commentID: commentID }, function(data) {

        if (data == 1 ) {
            votos = $("#commentID_"+commentID+" .votomatic .votos").html();
            $("#commentID_"+commentID+" .votomatic .votos").html(parseInt(votos)+1);
        }

    } );

}

function votarCommentNegativo(commentID, ele) {

    // Si ya votó, retorna
    if ( $(ele).hasClass("voted") ) return;

    // if is not logged:
    if (!__isLOoOgedIN ) {
        openBoxLogin();
        return;
    }

    $(ele).addClass("voted");

    url = __BASE_URL + 'comments/votar_negativo';

    $.post(url, { action: "votar", commentID: commentID }, function(data) {

        if (data == 1 ) {
            votos = $("#commentID_"+commentID+" .votomatic .votos").html();
            $("#commentID_"+commentID+" .votomatic .votos").html(parseInt(votos)-1);
        }

    } );

}

function switchOption(id, open ) {
    var e = $('#side-right .header .options .'+ id);

    if (!e ) return;

    if ( ! e.hasClass("selected") ) {
        $('#side-right .header .options a').removeClass('selected');
        e.addClass('selected');
    }
    else if (!open ) e.removeClass('selected');
}

function openReply(replyID, num, neverClose ) {

    if (neverClose != true ) neverClose = false;

    var eleParent = $('#li_reply_'+ replyID);
    var ele = $('#li_reply_'+ replyID +' .corpo');

    if (num ) {
        var eleParent = $('a.reply_shortcut[name=reply:'+ num +']').parents('li.reply');
        var ele = $('a.reply_shortcut[name=reply:'+ num +']').parents('div.corpo');
    }

    if (!neverClose && ele.hasClass("open") ) {
        $(ele).removeClass("open");
        $(eleParent).removeClass("open");
        return;
    }

    // if is new, now not:
    var divContent = $('#li_reply_'+ replyID +' .corpo div.content');
    if (divContent.hasClass('isNew') ) {
        divContent.removeClass('isNew');
    }

    if (!isCtrl) {
        $(".corpo.open").removeClass("open");
        $(".reply.open").removeClass("open");
    }
    $(ele).addClass("open");
    $(eleParent).addClass("open");

    $.scrollTo(ele, {offset: { top: -100 } } ); // scrolls to top

    // Trackeo esto en analitycs:
    var label = $('#li_reply_'+ replyID +' .corpo div.content a.reply_shortcut').attr("title");
    pageTracker._trackEvent('Respuestas', 'Open', label);
}

function openBoxLogin() {
    // Track this in analytics:
    pageTracker._trackEvent('User', 'openLogin', 'indirect');

    document.location = __BASE_URL +'login';
    return;
}

function openAddConsigna() {
    switchBox('addConsigna');

    // trackeo:
    pageTracker._trackPageview("/consigna/open_add_box");
}

function switchBox(eleID, open ) {

    // If the box is invisible
    if ($('#boxes' ).hasClass("displayNone") ) {

        // If the container is opened...
        $('#boxes .addBox').addClass("displayNone");
        $("#boxes").removeClass("displayNone");

        // Set visibility TRUE to the box
        $('#'+eleID ).removeClass("displayNone");

        // trackeo cuando abre...
        pageTracker._trackEvent('switchBox', eleID, 'open');
    }
    else {
        if ($('#'+eleID ).hasClass("displayNone") ) {
            $('#boxes .addBox').addClass("displayNone");
            $('#'+eleID ).removeClass("displayNone");

            // trackeo que hace swap...
            pageTracker._trackEvent('switchBox', eleID, 'swap');
        }
        else if(!open ) {
            $("#boxes").addClass("displayNone");

            // trackeo cuando cierra...
            pageTracker._trackEvent('switchBox', eleID, 'close');
        }
    }

    switchOption(eleID );
}

/*
 * @consignasSelectType
 * Select the propper radio button
 * for the images:
 **/

function consignasSelectType(type) {
    var isChecked = $("#addConsigna .types li."+ type +" input").attr("checked");
    if (isChecked) {
        $("#addConsigna .types li."+ type +" input").attr("checked", false);

        // if the another is unselected
        var theAnotherType = type == 'photo' ? 'video' : 'photo';

        // i will select it
        var isTheAnotherChecked = $("#addConsigna .types li."+ theAnotherType +" input").attr("checked");
        if (!isTheAnotherChecked ) {
            $("#addConsigna .types li."+ theAnotherType +" input").attr("checked", "checked");
        }

    }
    else $("#addConsigna .types li."+ type +" input").attr("checked", "checked");
}

/*
 * AGREGANDO RESPUESTAS
 * */
// prepare the form when the DOM is ready
$(document).ready(function() {
    var nwReply_options = {
        // target:        '#output1',   // target element(s) to be updated with server response
        beforeSubmit:  replyFormGetLoading,  // pre-submit callback
        success:       replyFormShowResponse  // post-submit callback

        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };

    // bind form using 'ajaxForm'
    $('#add_new_reply_form').ajaxForm(nwReply_options);

    var nwConsigna_options = {
        beforeSubmit:  nwConsignaFormGetLoading,
        success:       nwConsignaFormShowResponse
    };

    $('#addConsignaForm').ajaxForm(nwConsigna_options);

    var nwComment_options = {
        beforeSubmit:  nwCommentFormGetLoading,
        success:       nwCommentFormShowResponse
    };

    $('#add_commentForm').ajaxForm(nwComment_options );

    // login form
    var formLogin_options = {
        beforeSubmit:  loginFormGetLoading,
        success:       loginFormShowResponse
    };

    $('#form_login').ajaxForm(formLogin_options );

    // signup form
    var formSignup_options = {
        beforeSubmit:  signupFormGetLoading,
        success:       signupFormShowResponse
    };

    $('#form_signup').ajaxForm(formSignup_options );

    // Comentarios en respuestas:
    var formRepliesComments_options = {
        beforeSubmit:  addReplieCommentFormGetLoading,
        success:       addReplieCommentFormShowResponse
    };

    $('.add_replieCommentForm').ajaxForm(formRepliesComments_options);

    // Change notifications email frequency:
    var formNotificationsFrecuencyEmail_options = {
        beforeSubmit:  notificationsFrecuencyEmailFormGetLoading,
        success:       notificationsFrecuencyEmailFormShowResponse
    };

    $('#notifications_change_email_frecuency').ajaxForm(formNotificationsFrecuencyEmail_options);

    // mini_signup form
    var miniFormSignup_options = {
        beforeSubmit:  miniSignupFormGetLoading,
        success:       miniSignupFormShowResponse
    };

    $('#mini_signup_form').ajaxForm(miniFormSignup_options );

});

function loadComentariosInNewReplies()
{
    var nwReply_options = {
        // target:        '#output1',   // target element(s) to be updated with server response
        beforeSubmit:  replyFormGetLoading,  // pre-submit callback
        success:       replyFormShowResponse  // post-submit callback

        // $.ajax options can be used here too, for example:
        //timeout:   3000
    };

    // Comentarios en respuestas:
    var formRepliesComments_options = {
        beforeSubmit:  addReplieCommentFormGetLoading,
        success:       addReplieCommentFormShowResponse
    };

    $('.add_replieCommentForm').ajaxForm(formRepliesComments_options);
}

// MINI-SIGNUP
function miniSignupFormGetLoading() {
    $('#mini_signup_form .error').removeClass('error');
    $("#mini_signup_form .input_submit").hide();
    $("#mini_signup_form .input_text").attr('disabled', true );
    $("#mini_signup_form .loading").show();
}

function miniSignupFormShowResponse(responseText, statusText) {
    $("#mini_signup_form .loading").hide(); // hidding the loading

    var serverReply = $.evalJSON(responseText );

    // IF NO ERRORS
    if (serverReply.error == 0 ) {

        $('#joinNow').css('display', 'none');
        $('#hiperMessenger .wrapp3r').html(serverReply.html_success);
        $('#hiperMessenger').css('display', 'block');
        $('#hiperMessenger').removeClass('error');

        // scrolleo hasta arriba, por si está medio abajo:
        $.scrollTo('0');

    }
    else {
        $("#mini_signup_form .input_text").attr('disabled', false );
        $("#mini_signup_form .input_submit").show();


        if (serverReply.error_email == 1 ) {
            $('#signup_email').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

        if (serverReply.error_password == 1 ) {
            $('#signup_password').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

        if (serverReply.error_password_repeat == 1 ) {
            $('#signup_password_repeat').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

    }
}

// Change email notifications frecuency
function notificationsFrecuencyEmailFormGetLoading(arr) {
    return true;
}

function notificationsFrecuencyEmailFormShowResponse(responseText, statusText) {
    return true;
}

// Replies add Comment
function addReplieCommentFormGetLoading(arr) {
    var comment = arr[0]['value'];
    var respuestaID = arr[2]['value'];

    // clean the field:
    $('#inputRespuestaAddComment_'+ respuestaID).val('').focus();

    // si no hay comentario, no hago naditas:
    if (!comment) return false;

    // pero si hay, ya ahora y sin haberlo enviado, lo muestro:
    $('<li style="background:#FEFFAF;"><strong style="color:'+ __userColor +'">'+ __userName +':</strong> '+comment+'</li>').prependTo('#replieAllComments_'+ respuestaID);
    $('#replieAllComments_'+ respuestaID).scrollTo(1);

    return true;
}

function addReplieCommentFormShowResponse(responseText, statusText) {

    var serverReply = $.evalJSON(responseText );

    // IF NO ERRORS
    if (serverReply.error == 0 ) {

    }
    else {

    }
}

// SIGNUP
function signupFormGetLoading() {
    $('#form_signup .error').removeClass('error');
    $("#form_signup .input_submit").hide();
    $("#form_signup input").attr('disabled', true );
    $("#form_signup .loading").show();
}

function signupFormShowResponse(responseText, statusText) {
    $("#form_signup .loading").hide(); // hidding the loading

    var serverReply = $.evalJSON(responseText );

    // IF NO ERRORS
    if (serverReply.error == 0 ) {
        $('body').addClass('liso');
        $('#login').addClass('displayNone');
        $("#signup_succes").removeClass('displayNone');
        $("#success_user_email").attr('href', serverReply.url_email_provider);
        $("#welcome_screen_olas").addClass('displayNone');
        $(".langSelector").addClass('displayNone');

    }
    else {
        $("#form_signup input").attr('disabled', false );
        $("#form_signup .input_submit").show();


        if (serverReply.error_email == 1 ) {
            $('#signup_email').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

        if (serverReply.error_password == 1 ) {
            $('#signup_password').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

        if (serverReply.error_password_repeat == 1 ) {
            $('#signup_password_repeat').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

    }
}

// LOGIN
function loginFormShowResponse(responseText, statusText) {
    $("#form_login .loading").hide(); // hidding the loading

    var serverReply = $.evalJSON(responseText);

    // IF NO ERRORS
    if (serverReply.error == 0 ) {
        document.location = serverReply.gotoUrl;
    }
    else {
        $("#form_login input").attr('disabled', false );
        $("#form_login .input_submit").show();
        $('#form_login .fields').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
    }
}

function loginFormGetLoading() {
    $('#form_login .error').removeClass('error');
    $("#form_login .input_submit").hide();
    $("#form_login input").attr('disabled', true );
    $("#form_login .loading").show();
}

// NEW COMMENT AJAX
function nwCommentFormShowResponse(responseText, statusText) {
    $("#add_commentForm .loading").hide(); // hidding the loading

    var serverReply = $.evalJSON(responseText);

    // IF NO ERRORS
    if (serverReply.error == 0 ) {
        // Oculto el captcha
        $('#comments_recaptcha').css('display', 'none');

        $('#add_commentForm .error').removeClass('error');
        $('#comments').append(serverReply.comments );
        $('#comments li.new' ).fadeIn(1500).removeClass('new');

        // sets the last comment getted
        var lastCommentEle = $('#comments li:last').attr('id' );
        comment_refresh_lastCommentID = lastCommentEle.substring(10, lastCommentEle.length );

        $("#add_commentForm input").show();
        $("#add_commentForm textarea").val('');
        $("#add_commentForm textarea").attr('disabled', false);
    }
    else {
        $('#add_commentForm .error').removeClass('error');
        $("#add_commentForm input").show();
        $("#add_commentForm textarea").attr('disabled', false );
        $("#add_commentForm textarea").show();

        if (serverReply.error_comment == 1 && serverReply.needCaptcha != 1 ) {
            $('#add_commentForm textarea').addClass('error').effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);
        }

        // if need captcha?
        if (serverReply.needCaptcha == 1 ) {
            $('#comments_recaptcha').css('display', 'block');
            showRecaptcha('comments_recaptcha');
        }
        else
        {
            // Oculto el captcha
            // si no es requerido
            $('#comments_recaptcha').css('display', 'none');
        }

    }
}

function nwCommentFormGetLoading() {
    $('#add_commentForm .error').removeClass('error');
    $("#add_commentForm input").hide();
    $("#add_commentForm textarea").attr('disabled', true );
    $("#add_commentForm .loading").show();
}


// NEW CONSIGNA AJAX
function nwConsignaFormShowResponse(responseText, statusText) {

    var serverReply = $.evalJSON(responseText);

    // IF NO ERRORS
    if (serverReply.error == 0 ) {

        // escondo el mensaje de error, si está:
        $('#hiperMessenger').css('display', 'none');

        // tracking
        pageTracker._trackEvent('add', 'consigna', 'successfully' );
        pageTracker._trackPageview("/consigna/add_successfully");

        // redirecting
        document.location = serverReply.urlRedirect;

    }
    else {
        // hidding the loading
        $("#addConsignaForm .loading").hide();

        $('#addConsigna .error').removeClass('error');
        $("#addConsignaForm .input_submit").show();
        $("#addConsignaForm input, #addConsignaForm select").attr('disabled', false );
        $("#addConsignaForm label").show();

        if (serverReply.error_consigna == 1 ) {
            $('#addConsignaInput').addClass('error');
        }

        if (serverReply.error_tags == 1 ) {
            $('#add_consigna_tags').addClass('error');
        }

        $('#hiperMessenger .wrapp3r').html(serverReply.errorsMSG);
        $('#hiperMessenger').addClass('error');
        $('#hiperMessenger').css('display', 'block');

        // scrolleo hasta arriba, por si está medio abajo:
        $.scrollTo('0');

        // tracking
        pageTracker._trackEvent('add', 'consigna', 'error' );
    }
}

function nwConsignaFormGetLoading() {
    $('#addConsigna .error').removeClass('error');
    $("#addConsignaForm .input_submit").hide();
    $("#addConsignaForm input, #addConsignaForm select").attr('disabled', true );
    $("#addConsignaForm label").hide();
    $("#addConsignaForm .loading").show();
}


// NEW REPLY AJAX
function replyFormShowResponse(responseText, statusText) {
    $("#add_new_reply_form .loading").hide(); // hidding the loading

    var serverReply = $.evalJSON(responseText);

    // IF NO ERRORS
    if (serverReply.error == 0 ) {

        // escondo el mensaje de error, si está:
        $('#hiperMessenger').css('display', 'none');

        $('#add_new_reply_form .error').removeClass('error');
        appendNewReply(serverReply.respuestaID, serverReply.respuesta );

        $("#add_new_reply_form input").show();
        $("#add_new_reply_form input.input_text").attr('value', '');
        $("#add_new_reply_form .input_text").attr('disabled', false);
        $("#add_new_reply_form label").show();

        if ($('#msgTopicEmpty') ) {
            $('#msgTopicEmpty').hide();
        }

        // tracking
        pageTracker._trackEvent('add', 'respuesta', 'successfully' );
    }
    else {
        $('#add_new_reply_form .error').removeClass('error');
        $("#add_new_reply_form .input_submit").show();
        $("#add_new_reply_form .input_text").attr('disabled', false);
        $("#add_new_reply_form label").show();
        if (serverReply.error_titulo == 1 ) {
            $('#add_reply_title').addClass('error'); //.effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);

            // tracking
            pageTracker._trackEvent('add', 'respuesta', 'error_titulo' );
        }
        if (serverReply.error_url == 1 ) {
            $('#add_reply_url').addClass('error'); //.effect("highlight", {color: "#FFBFC2", mode: "show"}, 1000);

            // tracking
            pageTracker._trackEvent('add', 'respuesta', 'error_url' );
        }

        $('#hiperMessenger .wrapp3r').html(serverReply.errorsMSG);
        $('#hiperMessenger').addClass('error');
        $('#hiperMessenger').css('display', 'block');

        // Scrolleo hasta arriba por si acaso:
        $.scrollTo('0');

    }
}

function replyFormGetLoading() {
    $('#add_new_reply_form .error').removeClass('error');
    $("#add_new_reply_form .input_submit").hide();
    $("#add_new_reply_form .input_text").attr('disabled', true);
    $("#add_new_reply_form label").hide();
    $("#add_new_reply_form .loading").show();
}

// Add new box reply:
function appendNewReply(respuestaID, respuesta ) {
    $('#wrap #center ul.listadoRespuestas').prepend(respuesta );
    $('#li_reply_'+ respuestaID ).removeClass('new').hide().fadeIn(1500);
}

// Refresh new replies:
var refresh_minTimeout = 2000; //value to reset to if a change in content is detected
var refresh_maxTimeout = 15000; //longest time between ajax calls - 8 seconds here
var refresh_multiplier = 2; //Time between ajax calls doubles if no change in returned content
var refresh_prevContent; //leave blank
var refresh_consignaID = 0;
var refresh_lastRespuestaID = 0;

function auto_refreshNewReplies(setUpRefresh_lastRespuestaID ) {

    if (isUserIdle ) {
        setTimeout('auto_refreshNewReplies()', refresh_minTimeout );
        return;
    }

    if (setUpRefresh_lastRespuestaID > 0 ) {
        refresh_lastRespuestaID = setUpRefresh_lastRespuestaID;
    }

    var url = __BASE_URL +'respuestas/refresh/'+ refresh_consignaID +'/'+ refresh_lastRespuestaID;

    $.post(url, { action: "refresh" },

      function(data ) {

        if (data.respuestas ) {
            $('#wrap #center ul.listadoRespuestas').prepend(data.respuestas );
            $('#wrap #center ul.listadoRespuestas li.new' ).fadeIn(1500);
            refresh_lastRespuestaID = data.lastRespuestaID;

            if ($('#msgTopicEmpty') ) {
                $('#msgTopicEmpty').hide();
            }

        }

        if(refresh_prevContent != data ) {
           refresh_timerInterval = refresh_minTimeout;
           refresh_prevContent = data;
           setTimeout('auto_refreshNewReplies()', refresh_timerInterval );
        } else {
           if(refresh_timerInterval < refresh_maxTimeout) {
              refresh_timerInterval = refresh_timerInterval * refresh_multiplier;
           }
           setTimeout('auto_refreshNewReplies()', refresh_timerInterval );
        }

      }, "json");
}

var comment_refresh_minTimeout = 2000; // value to reset to if a change in content is detected
var comment_refresh_maxTimeout = 15000; // longest time between ajax calls - 8 seconds here
var comment_refresh_multiplier = 2; // Time between ajax calls doubles if no change in returned content
var comment_refresh_prevContent; //leave blank
var comment_refresh_lastCommentID = 0;

function auto_refreshNewComments( ) {
    if (isUserIdle ) {
        setTimeout(auto_refreshNewComments, comment_refresh_minTimeout );
        return;
    }

    if (!comment_refresh_lastCommentID ) {
        var lastCommentEle = $('#comments li:last').attr('id');
        if (!lastCommentEle) comment_refresh_lastCommentID = 0;
        else comment_refresh_lastCommentID = lastCommentEle.substring(10, lastCommentEle.length);
    }

    var url = __BASE_URL +'comments/refresh/'+ refresh_consignaID +'/'+ comment_refresh_lastCommentID;

    $.post(url, { action: "refresh" },

      function(data ) {

        if (data.comments ) {
            $('#comments').append(data.comments );
            $('#comments li.new' ).fadeIn(1500);

            var lastCommentEle = $('#comments li:last').attr('id');
            comment_refresh_lastCommentID = lastCommentEle.substring(10, lastCommentEle.length);
        }

        if(comment_refresh_prevContent != data ) {
           comment_refresh_timerInterval = comment_refresh_minTimeout;
           comment_refresh_prevContent = data;
           setTimeout(auto_refreshNewComments, comment_refresh_timerInterval );
        } else {
           if(comment_refresh_timerInterval < comment_refresh_maxTimeout) {
              comment_refresh_timerInterval = comment_refresh_timerInterval * comment_refresh_multiplier;
           }
           setTimeout(auto_refreshNewComments, comment_refresh_timerInterval );
        }

      }, "json");
}

// Inicializa el mini perfil:
function initMiniProfile() {
    $("#userOption_profile").hover(
      function () {
        $('#profileBubble').css('display', 'block');
      },
      function () {
        $('#profileBubble').css('display', 'none');
      }
    );
}

// Block user
function blockUser(userID, ele ) {
    // if is not logged:
    if (!__isLOoOgedIN ) {
        openBoxLogin();
        return;
    }

    var url = __BASE_URL +'user/delete/'+ userID;

    $.post(url, { action: "delete" },
      function(data ){
        if (data.error == 1) {
            alert('Error : {');
        }
        else {
            $(ele).addClass('selected');
            $(ele).blur();
        }
      }, "json");
}

// closes a comment:
function closeComment(commentID ) {
    // if is not logged:
    if (!__isLOoOgedIN ) {
        openBoxLogin();
        return;
    }

    var url = __BASE_URL +'comments/delete/'+ commentID;

    $.post(url, { action: "delete" },
      function(data ){
        if (data.error == 1) {
            alert('Error : {');
        }
        else {
            $('#comments #commentID_'+ commentID ).fadeOut(1500);
        }
      }, "json");
}

function restoreComment(commentID ) {
    // if is not logged:
    if (!__isLOoOgedIN ) {
        openBoxLogin();
        return;
    }

    var url = __BASE_URL +'comments/restore/'+ commentID;

    $.post(url, { action: "restore" },
            function(data ){ }, "json"
          );

    $('#comments #commentID_'+ commentID ).fadeOut(1500);
}

// Add new categoria:
function addCategoria() {

    // if is not logged:
    if (!__isLOoOgedIN ) {
        openBoxLogin();
        return;
    }

    $('#add_categoria_href').css('display', 'none');
    $('#add_categoria_input').css('display', 'inline').focus();

    init_categoriaAdder();
}

var ___catAdderIsInnited = false;

function init_categoriaAdder() {

    if (___catAdderIsInnited != false ) return;

    ___catAdderIsInnited = true;

    $('#add_categoria_input').blur(function() {

        $('#add_categoria_input').css('display', 'none' );

        // si el user escribio algo:
        var categoria_nombre = $('#add_categoria_input').val();
        if (categoria_nombre ) {

            // shows the loading
            $('#add_categoria_href').css('display', 'none');
            $('#categorias .loading').css('display', 'inline');

            // and send the ajax request
            var url = __BASE_URL +'categorias/add';
            $.post(url, { action: "add", categoria_nombre: categoria_nombre },

              function(data ) {
                // hides the loading
                $('#categorias .loading').css('display', 'none');

                if (data.error == 1 ) {
                    $('#add_categoria_input').addClass('error');
                    $('#add_categoria_input').css('display', 'inline' );
                }
                else {
                    $('#add_new_category_li').before(data.html );
                    $('#add_categoria_href').css('display', 'block');
                    $('#add_categoria_input').removeClass('error');
                    $('#add_categoria_input').val('');
                }

              }, "json");
        }
        else { // si no escribe nada
            $('#add_categoria_href').css('display', 'block');
        }

    });
}

function initCatsDroppables() {
    $("#categorias li.cat").draggable({
        revert: true,
        addClasses: false,
        drag: function() {
            $('#categorias_trash .trash').addClass('visible');
            $('#categorias').addClass('dragging');
        },
        stop: function() {
            $('#categorias_trash .trash').removeClass('visible');
            $('#categorias').removeClass('dragging');
        }
    });

    $("#categorias_trash").droppable({
        hoverClass: 'drophover',
        tolerance: 'touch',
        drop: function(event, ui) {
            // if is not logged:
            if (!__isLOoOgedIN ) {
                openBoxLogin();
                return;
            }

            // gets the id
            var catID = ui.draggable.attr('id');

            // and send the ajax
            var url = __BASE_URL +'categorias/delete/'+ catID;

            $.post(url, { action: "delete" },
              function(data ){
                if (data.error == 1) {
                    alert('Error : {');
                }
              }, "json");

            ui.draggable.remove();
        }
    });
}

function gotoComment(comment_num ) {

    var element = $('#comments a.anchor2reply[rel='+ comment_num +']');

    // first, i removes all the selected comments:
    $('#comments li.selected').removeClass('selected');

    // Agrego los nuevos seleccionados:
    $('a.anchor2reply[rel='+ comment_num +']').parents('li.wrapper_comment').addClass('selected');

    // y scrolleo al primero de ellos:
    $.scrollTo(element, { offset: { top: -50 } } );
}

function addComment2ref(replie_num )
{
    var commentText = $('#addComment textarea').val();

    $('#addComment textarea').val(commentText +' #'+ replie_num +' ');

    $.scrollTo('#addComment');

    $('#addComment textarea').focus();
}

function quoteComment(commentID) {

    var commentText = $('#addComment textarea').val();

    var quotedText = $('#commentID_'+ commentID +' div.comment p.text').text();

    $('#addComment textarea').val(commentText +' [quote]'+ quotedText +'[/quote] ');

    $.scrollTo('#addComment');

    $('#addComment textarea').focus();
}

// recaptcha:
function showRecaptcha(element) {
  Recaptcha.create(__reCapthcaPublicKey, element, {
        theme: 'red',
        tabindex: 0,
        callback: Recaptcha.focus_response_field
  });
}

function changeCOUNTRY(obj) {
    $("#lang_hidden_selector").attr("value", $(obj).children("option:selected").attr("value") );
    $("#set_lang_form").submit();
}

function submitSearchCheck() {
    if ($('#buscadorSearchInput').val()=="" ) {
        $('#buscadorSearchInput').focus();
        return false;
    }

    return true;
}

function picture_maximize_minimize(obj)
{
    if ($(obj).hasClass('unmaximizable') ) return;
    
    var theParentEl = $(obj).parent();
    
    if (theParentEl.hasClass('maximized') ) {
        theParentEl.removeClass('maximized');
    }
    else {
        if (obj.width < 631 ) return;
        theParentEl.addClass('maximized');
    }
}