/* Vote for Contents (Photoes and Products) */
function vote(url, item_id, direction) {
    $.post(url + item_id + '/' + direction + 'vote/', dataType="json", function(data) {
        var jsonResult = data;
        var new_score = jsonResult.score.score;
        $('#item_' + item_id + '_score').text(new_score);
    });
    if (direction == 'up') {
        span_text = $('#up_' + item_id + ' span').text();
        $('#up_' + item_id).replaceWith('<a class="voted" id="up_' + item_id + '" href="#" onclick="return false;"><span>'+span_text+'</span></a>');
    }
    else if (direction == 'down') {
        $('#up_' + item_id).replaceWith('<a id="up_' + item_id + '" href="#" onclick="vote(\'' + url + '\', ' + item_id + ', \'clear\'); return false;"><img src="/static/theme/img/up_mod_grey.jpg"/>');
        $('#down_' + item_id).replaceWith('<a id="down_' + item_id + '" href="#" onclick="return false;"><img src="/static/theme/img/down_mod.jpg"/>');
    }
    else { // clear
        $('#up_' + item_id).replaceWith('<a id="up_' + item_id + '" href="#" onclick="return false;"><img src="/static/theme/img/up_mod_grey.jpg"/>');
    }
}

$(document).ready(function(){
    //
    /* clear input box on focus */
    $('input[type="text"]').live('focus', function(event){
            target = $(event.target);
            if (target.closest('#profile_edit_form, #checkout-form-page').size() == 0){
                target.attr('rel', target.val());
                target.val('');
            }
        });
    $('input[type="text"]').live('blur', function(event){
        target = $(event.target);
        if (target.closest('#profile_edit_form, #checkout-form-page').size() == 0){
            rel_value = target.attr('rel');
            value = target.val();
        
            if (rel_value!=value && value != '') target.val(value);
            else target.val(rel_value);
        }
    });
    /**/
    
    /* fix colonna dx sottolinea */
    if ($('.subsection-prodotti #commenti-community').size()){
        height = $('.subsection-prodotti .prodotti-sottolinea').height();
        
        $('.subsection-prodotti #commenti-community, .subsection-products #commenti-community').css({'min-height': height, 'height': height, 'height':'auto'});
    }
    
    /* gestione provincia */
    $('select#id_country').live('change', function(){
        other_country_row = $("div#div_id_other_country");
        provincia_row = $("div#div_id_province");
        
        node = $(this);
        
        if(node.attr('value') == 'other'){
             provincia_row.addClass('invisible');
             other_country_row.removeClass('invisible').addClass('displayBlock');
        }
        else{       
            provincia_row.removeClass('invisible');
            other_country_row.addClass('invisible').removeClass('displayBlock');
        }
    });

    /* funzione per collegare l'apertura del popup dell'immagine ingrandita nei visori con la lente */
    /* TODO: spostare css lente in layout.css */
    function link_overlay_anchor(lente){
        lente.empty();
        anchor = $("<a>&nbsp;</a>").addClass('link-lente-overlay');
        href = $(this).attr('src').replace('/image_thumb', '/image_large')
                                  .replace('/image_preview', '/image_large')
                                  .replace('/image_tile', '/image_large')
                                  .replace('_png_596x596_q85.jpg', '.png')
                                  .replace('_jpg_596x596_q85.jpg', '.jpg')
                                  .replace('_png_639x417_q85.jpg', '.png')
                                  .replace('_JPG_639x417_q85.jpg', '.jpg')
                                  .replace('_PNG_639x417_q85.jpg', '.png')
                                  .replace('_jpg_639x417_q85.jpg', '.jpg');
        anchor.attr('href', href);
        anchor.prepOverlay({subtype: 'image', config: {mask: '#000'}, cssclass: 'image-popup-overlay'});
        lente.append(anchor);
    }
    
    /* char count sulle text area dei commenti */
    if ($("#id_comment").size() > 0){
        $("#id_comment").charCount({
            allowed: 600,
            warning: 20,
            counterElement: '#conteggiocaratteri span.char_counter',
            createCounterElement: false,
            block: true
        });
    }
    
    /* rollover su prodotti sottolinea */
    if ($("div.prodotti-sottolinea").size() > 0){
        $('img.product_boximage').mouseover(function(){
            $(this).closest('li.Item div.desc-sottolinea').hide();
            $(this).closest('li.Item').addClass('no-padding').find('img.product_rolloverimage').show();
        });
        $('img.product_rolloverimage').mouseout(function(){
            $(this).hide();
            $(this).closest('li.Item').removeClass('no-padding').find('div.desc-sottolinea').show();
        });
    }
    
    /* javascript language box */
    $("#language-box .arrow").show();
    $("#language-box #portal-languageselector li").hide();
    $("#language-box #portal-languageselector li.currentLanguage").show();
    $("#language-box .arrow").click(function(e){
        // Quando utente clicca sulla freccia ...
        target = $(this);
        
        if(target.hasClass('open')){

            $("#language-box #portal-languageselector li.currentLanguage a").trigger('click');
            $("#language-box #portal-languageselector li").hide();
            $("#language-box #portal-languageselector li.currentLanguage").show();
                
            target.removeClass('open');
        } else{
            $("#language-box #portal-languageselector li").css('display', 'block');
            target.addClass('open');
        }
        e.preventDefault();
    });
    // PLONE: Quando utente seleziona una lingua, essa viene mostrata 
    $("#language-box #portal-languageselector a").click(function(){
        $("#language-box #portal-languageselector li").hide();
        $(this).parent().show();
    });
    
    // DJANGO: Quando utente seleziona una lingua, essa viene mostrata 
    $("#language-box #portal-languageselector input[type='submit']").click(function(){
        $("#language-box #portal-languageselector li").hide();
        $(this).closest('li').show();
    });
    
    /* gallery scheda prodotto */
    if ($("#foglia-prodotto, #foglia-plone").size() > 0){
        $("#thumb-gallery .content").scrollable({next: '.null',
                                                 prev: '.null'}).navigator("#thumb-gallery .navigator");
        // gallery immagini
        $("#foglia-prodotto #thumb-gallery .item-immagini span.lente, #foglia-plone #thumb-gallery .item-immagini span.lente").click(function(){
             ul = $(this).closest('#thumb-gallery');
             $("li img", ul).closest('div.image-container').removeClass('cornice-red').addClass('opacity');
             li = $(this).closest('#thumb-gallery .item li')
             img_clicked = $('img', li)
             img_clicked.closest('div.image-container').addClass('cornice-red').removeClass('opacity');
             
             target = $("#foglia-prodotto #slides, #foglia-plone #slides").empty();
             lente = $('#foglia-prodotto #gallery div.lente-overlay, #foglia-plone #gallery div.lente-overlay');
             // se e' un video
             if (li.attr('rel')=='video'){
                 video_url = li.attr('video_url');
                 var fo = new SWFObject("/static/theme/js/FlowPlayerDark.swf", "mediaplayer", 639, 417,"7");
                 fo.addParam("allowFullScreen", "true");
                 fo.addParam("allowScriptAccess", "always");
                 fo.addParam("wmode", "transparent");
                 fo.addVariable("config","{playList: [{url: '" + video_url + "', type: 'flv'}], autoRewind: true, initialScale: 'fit', loop: false, autoPlay: false}");
                 fo.write(target.attr('id'));
                 lente.addClass('invisible');
             }else{
                 img = $("<img />");
                 src = img_clicked.attr('src').replace('_139x105_q85', '_639x417_q85').replace('_126x99_q85', '_639x417_q85').replace('_thumb', '');
                 img.attr('src', src);
                 img.attr('height', 417);
                 target.append(img);
                 
                 lente.removeClass('invisible');
                 link_overlay_anchor(lente);
                 
             }

        });
        imgs = $("#foglia-prodotto #thumb-gallery .item-immagini span.lente, #foglia-plone #thumb-gallery .item-immagini span.lente");
        if (imgs.size() > 0) $(imgs[0]).trigger('click');
    }
    
    
    /* gallery geomag extra */
    if ($("#extra").size() > 0){
        $("#thumb-gallery .content").scrollable({next: '.null',
                                                 prev: '.null'}).navigator("#thumb-gallery .navigator");
        $("#immagini-viste").scrollable();
        
        // gallery immagini
        $("#extra .item-immagini img").click(function(){
            container = $(this).closest('#thumb-gallery');
            $("li img", container).closest('div').removeClass('cornice-orange').addClass('opacity');
            if (container.size() > 0) $(this).closest('div').addClass('cornice-orange').removeClass('opacity');
            
            target = $("#extra #slides").empty();
            
            img = $("<img />");
            src = $(this).attr('src').replace('/image_thumb', '/image_preview').replace('/image_tile', '/image_preview');
            img.attr('src', src);
            img.attr('height', 413);
            target.append(img);
            
            lente = $('#extra #gallery div.lente-overlay');
            link_overlay_anchor(lente);
            
            li_container = $(this).closest('#thumb-gallery .item-immagini li');
            if (li_container.size() > 0){
                $('#thumb-gallery .extra-image-info').hide();
                rel = li_container.attr('rel');
                $('#thumb-gallery .extra-image-info.' + rel).show();
            }
        });
        imgs = $("#extra #thumb-gallery .item-immagini img");
        if (imgs.size() > 0) $(imgs[0]).trigger('click');
        
        
        // gallery video
        $("#thumb-gallery div.items ul.item-video").ytplaylist(
            {addThumbs:true, autoPlay: false, holderId: 'slides', replaceText: true, playerWidth: '636',playerHeight: '413', showInline: true}
        );
        $("#extra .item-video a").click(function(){
            container = $(this).closest('#thumb-gallery');
            $("li a", container).removeClass('cornice-orange').addClass('opacity');
            if (container.size() > 0) $(this).addClass('cornice-orange').removeClass('opacity');
            
            li_container = $(this).closest('#thumb-gallery .item-video li');
            if (li_container.size() > 0){
                $('#thumb-gallery .extra-image-info').hide();
                rel = li_container.attr('rel');
                $('#thumb-gallery .extra-image-info.' + rel).show();
            }
        });
        videos = $("#extra #thumb-gallery .item-video a");
        if (videos.size() > 0) $(videos[0]).trigger('click');
        
        // video piu' visti
        $("#immagini-viste div.items div.item-video").ytplaylist(
            {addThumbs:true, autoPlay: false, holderId: 'slides', initial_start: false, replaceText: false,
             playerWidth: '636',playerHeight: '413', children_selector:'div'}
        );
    }
    
    /* Scrollable gallery prodotti in Shop Hp */
    $("#gallery-news").scrollable().navigator("#gallery-news .navigator");
    $("#gallery-related").scrollable().navigator("#gallery-related .navigator");
    $("#gallery-occasions").scrollable().navigator("#gallery-occasions .navigator");
    $("#gallery-bestsellers").scrollable().navigator("#gallery-bestsellers .navigator");
    
    /* accordion commenti ai blog */
    $("#commenti-community.comment-accordion").tabs("#commenti-community.comment-accordion div.contenuto-wrapper", {
        tabs: 'div.community-item-title h1',
        effect: 'slide'
    });
    var commenti_api = $("#commenti-community.comment-accordion").data("tabs");
    $("#commenti-community.comment-accordion div.community-item-title h1.current").live('click',function(){
        $("#commenti-community.comment-accordion div.community-item-title").addClass('accordion-close');
        $(this).closest('div.community-item-title').removeClass('accordion-close');
    });
    
    /* Overlay Video Popup*/
    $('#sottolinea-video-popup a[href$=/video_popup]').prepOverlay(
        {
            subtype: 'ajax',
            config: {mask: '#000', fixed: false},
            cssclass: 'video-popup-overlay'
        }
    );
    
    /* popup geomag community photo details */
    if($('#community-page #gallery .lente-overlay a.link-lente-overlay').size()){
        href = $('#community-page #gallery .lente-overlay a.link-lente-overlay').attr('href');
        // BUG fix: replace ' ' with %20
        href = href.replace(/ /g, '%20');
        $('#community-page #gallery .lente-overlay a.link-lente-overlay').attr('href', href);
        $('#community-page #gallery .lente-overlay a.link-lente-overlay').prepOverlay({
            subtype: 'image', config: {fixed: false, mask: '#000'}, cssclass: 'image-popup-overlay'});
    }
    
    /* Overlay Extra Immagini */
    $('.togglehandler').live('click', function(e){
        containers = $(this).closest('.togglecontainer');
        if (containers.length > 0){
            container = $(containers[0]);
            $('.toggleitem', container).toggle();
        }
        e.preventDefault();
    });
    
    $('#login-box a[href$=/login/], #community-page a[href*=/login/], .section-geomag-shop a[href*=/login/], .subsection-prodotti a[href*=/login/]').prepOverlay(
        {
            subtype: 'ajax',
            filter: 'div#django-utility-page',
            formselector: 'form#login_form',
            config: {fixed: false, mask: '#000', onLoad: function(){
                    $('div#django-utility-page').removeClass('login-no-popup');
                    $('#login_form a[href$=/signup/]').live('click', function(e){
                        $('div.overlay.login-popup-overlay div.close').trigger('click');
                        $('#login-box a[href$=/signup/]').trigger('click');
                        e.preventDefault();
                    });
                    $('a[href$=/account/password_reset/]').prepOverlay({
                                subtype: 'ajax',
                                filter: 'div#django-utility-page',
                                formselector: 'form#form-pwreset',
                                config: {fixed: false, mask: '#000', onLoad: function(){
                                    $('div.overlay.login-popup-overlay div.close').trigger('click');
                                }},
                                noform: function () {
                                   return true;
                                },
                                redirect: function () {
                                    return true;
                                }
                    });
                }
            },
            cssclass: 'login-popup-overlay',
            noform: function () {
                var href = location.href;
                if (location.href.search("/logout/") >= 0) {
                    return href.slice(0, href.length-16);
                } else {
                    return 'redirect';
                }
            }
        }
    );
    
    
    
    $('a[href$=/account/password_reset/]').prepOverlay(
            {
                subtype: 'ajax',
                filter: 'div#django-utility-page',
                formselector: 'form#form-pwreset',
                config: {fixed: false, mask: '#000', onLoad: function(){
                    $('div.overlay.login-popup-overlay div.close').trigger('click');
                }},
                noform: function () {
                   return true;
                },
                redirect: function () {
                    return true;
                }
            }
    );
    
    $('.login-no-popup a[href$=/signup/], #login-box a[href$=/signup/], #community-page a[href$=/signup/], #auth-required a[href*=/signup/]').prepOverlay(
        {
            subtype: 'ajax',
            filter: 'div#django-utility-page',
            formselector: 'form#signup_form',
            config: {fixed: false, mask: '#000'},
            noform: function () {
               return true;
            },
            redirect: function () {
                return true;
            }
        }
    );
    
    $('a[href$=/account/password_change/]').prepOverlay(
        {
            subtype: 'ajax',
            filter: 'div#django-utility-page',
            formselector: 'form#password_change',
            config: {fixed: false, mask: '#000'},
            noform: function () {
                return 'reload'
            },
            redirect: function () {
                var href = location.href;
                return href;
            }
        }
    );
    
    $('#profile a[href$=/profiles/edit/]').prepOverlay(
        {
            subtype: 'ajax',
            filter: 'div#django-utility-page',
            config: {fixed: false, mask: '#000', onLoad: function(){
                $('select#id_country').trigger('change');
            }},
            formselector: 'form#profile_edit_form',
            noform: function () {
                return 'reload'
            },
            redirect: function () {
                var href = location.href;
                return href;
            }
        }
    );
    
    $('#profile a[href$=/profiles/change_status/]').prepOverlay(
        {
            subtype: 'ajax',
            config: {fixed: false, mask: '#000'},
            filter: 'div#django-utility-page',
            formselector: 'form#change_status',
            noform: function () {
                return 'reload'
            },
            redirect: function () {
                var href = location.href;
                return href;
            }
        }
    );
    
    /* popup product informations */
    $("a[href*=/shop/product_informations/]").prepOverlay(
        {
            subtype: 'ajax',
            config: {fixed: false, mask: '#000'},
            filter: 'div#product-infos'
        }
    );
    
    $("input[type='reset']").live('click', function(e){
        var form = $(this).closest('form');
        form.clearForm();
        e.preventDefault();
    });
    
    $("div.django-popup-checkpassword a.verification_proceed, div#product-infos a.close, #django-utility-page a.close").live('click', function(e){
        var overlay = $(this).closest('div.overlay');
        $('div.close', overlay).trigger('click');
        e.preventDefault();
    });

});
