

$(document).ready(function() {
    // affichages alternatifs
	
    // initialisation des rels
    $('#globe_actor_role_member').attr('rel', 'member');
    $('#globe_actor_role_creator').attr('rel', 'creator');
    $('#globe_actor_type_freelance').attr('rel', 'freelance');
    $('#globe_actor_type_company').attr('rel', 'company');
    $('#globe_actor_tva_subject_yes').attr('rel', 'tva');
    $('#globe_actor_tva_subject_no').attr('rel', 'notva');
    $('#artwork_shipping_with_partner_0').attr('rel', 'partnershipping_no')
    $('#artwork_shipping_with_partner_1').attr('rel', 'partnershipping_yes')
    $('#artwork_international_shipping_0').attr('rel', 'intshipping_no')
    $('#artwork_international_shipping_1').attr('rel', 'intshipping_yes')

    // swaps de divs
    $(".displayer").bind("click", function(e) {
        var rel =  $(this).attr('rel');
        $('.show_'+rel).css('display', 'block');
        $('.hide_'+rel).css('display', 'none');
        $('.disabled_'+rel).attr('disabled', 'disabled');
        $('.enabled_'+rel).removeAttr( 'disabled');
    });
    $(".displayer").each(function (i) {
        if ($(this).attr("checked")) {
            $(this).trigger('click');
        }
    });
    $(".selectDisplayer").bind("change", function(e) {
        $(".hidden_"+$(this).attr('id')).hide();
        var selectedValues  = $(this).selectedValues();
        for (var i=0; i<selectedValues.length; i++) {
            $(".displayed_"+$(this).attr('id')+"_"+selectedValues[i]).show();
        }
    });
    $(".selectDisplayer").trigger('change');
	
    // mise en page
	
    // on fixe le min-height
    if ($('div.main-content').height() < 954 || $('jScrollPaneContainer')) {
        $('div.main-content').height(954);
    }
	
    // éléments de formulaires
	
    // liste auto-feed pour formulaires multiples.
    $('.feed[rel]').bind("click", function(e) {
        var rel = $(this).attr('rel');
        $('#' + rel).cempty(); // on commence par vider le conteneur
        $('#' + rel).loader_show() // on affiche le loader
        $.getJSON('/ajax/feed', {
            field : rel,
            value : $(this).attr('value')
        }, function(json) {
            var parent = $('#' + json.field);
            parent.loader_hide();
            for ( var i = 0; i < json.options.length; i++) {
                parent.addOption(json.options[i].id, json.options[i].name);
            }
            //correction bug selection par défaut
            var foo = document.getElementById(json.field);
            foo.selectedIndex = 0;
        });
    });
	
    // controle js sur les champs numériques
    $('.price').numeric({
        allow:"."
    });
    $('.number').numeric();
    $('.float').numeric({
        allow:"."
    });
	
    // dynamisation des doubles listes
    $('.double_list_select-selected').each(function(e) {
        sfDoubleList.init(this, 'double_list_select');
        $(this).bind("click", function(e) {
            sfDoubleList.move($(this).attr('id'), 'unassociated_' + $(this).attr('id')); return false;
        });
        var linked = $('#unassociated_'+$(this).attr('id'));
        linked.data('target', $(this).attr('id'));
        linked.bind("click", function(e) {
            sfDoubleList.move($(this).attr('id'), $(this).data('target')); return false;
        });
    });
	
    // dynamisation des colors pickers
    $('.color').each(function(e) {
        $(this).css('display', 'none');
		
        var display = $('<div>');
        display.width(70).height(70).css('float', 'left').css('margin', '2px');
		
        var div = $('<div>');
        div.width(252).height(70).css('float', 'left').css('padding', '1px').css('background-color', '#FFFFFF');
        for (var i=1;i<=Math.min(90,this.options.length); i++) {

            var option = this.options[i];
            
            if (option.text.match(/^#/)) {

                var carre = $('<div>');
			
                carre.data('select', $(this));
                carre.data('option', $(option));
                carre.data('display', display);
			
                carre.width(12).height(12).css('background-color', option.text).css('margin', '0px').css('float', 'left').css('cursor', 'pointer');
                carre.css('border', 'solid 1px #FFFFFF');
			
                carre.addClass('target_' + $(this).attr('id'));
			
                carre.bind("click", function(e) {
                    $('.target_' + $(this).data('select').attr('id')).css('border', 'solid 1px #FFFFFF');
                    $(this).css('border', 'solid 1px black');
                    $(this).data('option').attr('selected', 'selected');
                    $(this).data('display').css('background-color', $(this).css('background-color'));
                });
			
                div.append(carre);
			
                if (option.selected) {
                    carre.trigger('click');
                }

            }
            
        }
		
        $(this).after(div);
        $(div).after(display);
		
    });
	
    // Fenetres modales
    /*
    $("a.dialogable").click(function() {
        // Configuration et ouverture de la popup
        dialog = this.rel;
        $(this.rel).attr('title', this.title);

        $(this.rel).dialog({
            autoOpen: false,
            width: 500,
            modal: true,
            close: function(event, ui) {
                $(this.rel).dialog('destroy');
            }
        });
		
        $('.ui-dialog').each(function() {
            $(this).css('overflow','visible');
        })
        $('.ui-dialog-container').each(function() {
            $(this).css('overflow','hidden');
        })
		
        $(this.rel).dialog('option', 'title', this.title);
        $(this.rel).dialog('open');

        // Envoi de la requete
        jQuery.ajax({
            url : this.href,
            type : 'get',
            dataType   : 'html',
            success    : function(data, textStatus){
                jQuery(dialog).html(data);
            },
            beforeSend : function(XMLHttpRequest){
                $(dialog).html('<img src="/images/ajax-loader.gif" />')
            }
        });

        return false;
    });
	*/
    $("a.dialogable").bind("click", function(e) {
        // Configuration et ouverture de la popup
        var rel_dialog = $(this).attr('rel');
        
        //$(rel_dialog).attr('title', $(this).attr('title'));

        $(rel_dialog).dialog({
            autoOpen: false,
            width: 500,
            modal: true,
            close: function(event, ui) {
                $(rel_dialog).dialog('destroy');
            }
        });
		
        $('.ui-dialog').each(function() {
            $(this).css('overflow','visible');
        })
        $('.ui-dialog-container').each(function() {
            $(this).css('overflow','hidden');
        })
		
        $(rel_dialog).dialog('option', 'title', $(this).attr('title'));
        $(rel_dialog).dialog('open');

        // Envoi de la requete
        jQuery.ajax({
            url : $(this).attr('href'),
            type : 'get',
            dataType   : 'html',
            cache : false,
            success    : function(data, textStatus){
                jQuery(rel_dialog).html(data);
            },
            beforeSend : function(XMLHttpRequest){
                $(rel_dialog).html('<img src="/images/ajax-loader.gif" />')
            }
        });

        return false;
    });

    // on ajoute le scroll à la fin
    scrollInit();



    thumbs_bottom_align();
    open_ext_link();
    /*
    if (Browser.Engine.trident4) {
        showPopup('ie6');
    }
    */
    /*
    if ( $.browser.msie )
    {
        if($.browser.version=='6.0'){
            var left_position = ($(window).width()/2)-($('#ie6').width()/2);
            $('#ie6').css('left', left_position+'px');
            $('#ie6').css('display', 'block');
        }
    }
    */


    $.browser.msie6 = $.browser.msie &&/MSIE 6\.0/i.test(window.navigator.userAgent) &&!/MSIE 8\.0/i.test(window.navigator.userAgent) &&!/MSIE 7\.0/i.test(window.navigator.userAgent);

    if($.browser.msie6) {
        var left_position = ($(window).width()/2)-($('#ie6').width()/2);
        $('#ie6').css('left', left_position+'px');
        $('#ie6').css('display', 'block');
    }

});

/*
if ( window.addEventListener ) {
   var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
   window.addEventListener("keydown", function(e){
       kkeys.push( e.keyCode );
       if ( kkeys.toString().indexOf( konami ) >= 0 ) {
         $("*").bind("click", function(e) {
             //if(Math.round(Math.random()*10)==5) {
             $(this).hide();
             //}
             e.stopPropagation();
         });
       }
   }, true);
}
*/

function show_popup(popup_id, popup_width) {
  $('#'+popup_id).dialog({ autoOpen: false, modal: true, width: popup_width });
  $('.ui-dialog').each(function() {
      $(this).css('overflow','visible');
  })
  $('.ui-dialog-container').each(function() {
      $(this).css('overflow','hidden');
  })

  $('#'+popup_id).dialog("open");
}

function open_ext_link(){
    var liens = $('a.blank');
    for (var i = 0 ; i < liens.length ; i++) {
        liens[i].onclick = function() {
            window.open(this.href);
            return false;
        };
    }
}

// extension de jquery
jQuery.fn.extend( {
    cempty : function() {
        $(this).empty();
        if (rel = $(this).attr('rel')) {
            $('#' + rel).cempty();
        }
    },

    loader_show: function() {
        var loader_id = 'loader_' + $(this).attr('id');
        if (!document.getElementById(loader_id)) {
            var position = $(this).position( );
            var width = $(this).width();
            var height = $(this).height();
            $(this).after("<div id='" + loader_id + "' style='padding: 10px; position:absolute; top:" + Math.round(position.top) + "px; left:" + Math.round(position.left)+"px;'><img src='/images/ajax-loader.gif' /></div>");
        }
        $('#' + loader_id).show();
    },
	
    loader_hide: function() {
        var loader_id = 'loader_' + $(this).attr('id');
        $('#' + loader_id).hide();
    }

});

function duplicate(idcat, tpl, where) {
    var clone = $('#' + tpl).clone(true);
    // on efface labels et lien pour l'ajout'
    clone.attr('id', 'size_'+idcat+'_'+($('.'+where).length + 1));

    $('.ctn_label', clone).html('');
    $('.ctn_add', clone).html('<a href="#" onclick="$(\'#size_'+idcat+'_'+($('.'+where).length + 1)+'\').remove(); return false;" class="brown ">Supprimer</a>');

    // on remanie le champ categorie d'option
    $('.input_cat', clone).attr('name', 'product[formSizeStockable][size_'+idcat+'_'+($('.'+where).length + 1)+'][option_category_id]');
    $('.input_cat', clone).attr('id', 'product_formSizeStockable_size_'+idcat+'_'+($('.'+where).length + 1)+'_option_category_id');

    // on remanie le champ type d'option
    $('.input_type', clone).attr('name', 'product[formSizeStockable][size_'+idcat+'_'+($('.'+where).length + 1)+'][type]');
    $('.input_type', clone).attr('id', 'product_formSizeStockable_size_'+idcat+'_'+($('.'+where).length + 1)+'_type');

    // on remanie le champ type d'option
    $('.input_delete', clone).attr('name', 'product[formSizeStockable][size_'+idcat+'_'+($('.'+where).length + 1)+'][delete]');
    $('.input_delete', clone).attr('id', 'product_formSizeStockable_size_'+idcat+'_'+($('.'+where).length + 1)+'_delete');

    // on remanie le champ select
    $('.select_option', clone).removeAttr( 'disabled');
    $('.select_option', clone).removeAttr( 'id');
    $('.select_option', clone).attr('selectedIndex', 0);
    $('.select_option', clone).attr('name', 'product[formSizeStockable][size_'+idcat+'_'+($('.'+where).length + 1)+'][options_value_id]');
    $('.select_option', clone).attr('id', 'product_formSizeStockable_size_'+idcat+'_'+($('.'+where).length + 1)+'_options_value_id');

    // on remanie le champ stock
    $('.input_stock', clone).removeAttr( 'disabled');
    $('.input_stock', clone).removeAttr( 'id');
    $('.input_stock', clone).attr('value', 0);
    $('.input_stock', clone).attr('name', 'product[formSizeStockable][size_'+idcat+'_'+($('.'+where).length + 1)+'][stock]');
    $('.input_stock', clone).attr('id', 'product_formSizeStockable_size_'+idcat+'_'+($('.'+where).length + 1)+'_stock');

    clone.insertAfter('.'+where+':last');
    scrollInit()
}

function delete_stock(name) {
    $('#product_formSizeStockable_'+name+'_delete').val(1);
    $('#'+name).hide()
}

function ConfirmUi(link, titre, content, cmd) {
    $("#ConfirmUi").remove();
    $("<div id='ConfirmUi'></div>").appendTo("body")

    $("#ConfirmUi").html(content);

    $("#ConfirmUi").dialog({
        autoOpen: false,
        modal:true,
        title: titre,
        width: 450,
        buttons : {
            "Oui" : function() {
                $(this).dialog("close");
                if(link != '')
                    $(location).attr('href',link);
                else if (link == '' && cmd != '') {
                    if (self[cmd]) {
                        cmd();
                    }
                    else {
                        eval(cmd);
                    }
                }
            },
            "Non" : function() {
                $(this).dialog("close");
            }
        }
    });
    $('.ui-dialog').each(function() {
        $(this).css('overflow','visible');
    })
    $('.ui-dialog-container').each(function() {
        $(this).css('overflow','hidden');
    })

    $("#ConfirmUi").dialog("open");
}

function alertUi(title, content) {
    if (content != null) {
        $("#alertUi").remove();
        $("<div id='alertUi'></div>").appendTo("body")

        $("#alertUi").html(content);

        $("#alertUi").dialog({
            autoOpen: false,
            modal:true,
            title: title
        });
        $('.ui-dialog').each(function() {
            $(this).css('overflow','visible');
        })
        $('.ui-dialog-container').each(function() {
            $(this).css('overflow','hidden');
        })

        $("#alertUi").dialog("open");
    }
}

function addToCart(pid, oid) {
    if (!$('#quantity_' + pid + '_' + oid).data('pending')) {
        $('#quantity_' + pid + '_'+oid).data('pending', true);
        $('#cart').loader_show();
        $.getJSON('/shop/add_to_cart', {
            pid : pid,
            oid : oid,
            ts: Math.round(Math.random()*1000000)
        }, function(json) {
            updateCart(json, pid, oid);
        });
    }
}

function removeFromCart(pid, oid) {
    if (!$('#quantity_' + pid + '_' + oid).data('pending')) {
        $('#quantity_' + pid + '_' + oid).data('pending', true);
        $('#cart').loader_show();
        $.getJSON('/shop/remove_from_cart', {
            pid : pid,
            oid : oid,
            ts: Math.round(Math.random()*1000000)
        }, function(json) {
            updateCart(json, pid, oid);
        });
    }
}



function updateCart(json, pid, oid) {
    
    $('#cart').loader_hide();
    
    if (json.code==0) {
        if(json.productCount == 0) {
            location.reload();
        }
        else {
            $('#productCount_' + pid + '_' + oid).text( json.productCount );
            $('#productTotal_' + pid + '_' + oid).text( json.productTotal );
            $('#productShippingCount_' + pid + '_' + oid).text( json.productShippingCount );
            $('#productShippingTotal_' + pid + '_' + oid).text( json.productShippingTotal );
            $('#gaCount_' + json.gaId).text( json.gaCount );
            $('#gaTotal_' + json.gaId).text( json.gaTotal );
            $('#cartCount').text( json.cartCount );
            $('#cartTotal').text( json.cartTotal );
            $('#allProductsCount').text( json.allProductsCount );
            $('#allProductsTotal').text( json.allProductsTotal );
            $('#costsTotal').text( json.costsTotal );
            $('#shippingTotal').text( json.shippingTotal );
            $(json.cartHTML).replaceAll('#cart');
        }
    }
    else {
        alertUi('Informations', json.message);
    }
    $('#quantity_' + pid + '_' + oid).data('pending', false);
}

function scrollInit() {

    //Pour tout les scroll normaux
    var $pane = $('.scrollable');
    $pane.jScrollPane({
        showArrows:true,
        reinitialiseOnImageLoad: true,
        scrollbarWidth : 29
    });
    
    //Pour les scroll avec bcp de petite IMG cf John pour question
    var $pane2 = $('.scrollable-without-img');
    $pane2.jScrollPane({
        showArrows:true,
        scrollbarWidth : 29
    });

    //Mise au dimension du scrollerDrag
    $('.jScrollPaneDrag').css("height", "27px");

    var panetop = parseInt($pane.offset().top);
    $('a.anchorLink').bind(
        'click',
        function()
        {
            var targetElementSelectorString = $(this).attr('rel');
            vheight = $('#'+targetElementSelectorString).offset().top;
            $pane[0].scrollTo(vheight - panetop);
            return false;
        }
    );
    
}

function scroller(targetAnchor){
    /*
    var targetHeight = $('#'+targetAnchor).position().top;
    $('.scrollable').css('top', -targetHeight);
    scrollInit();
    */
   //$('.scrollable').scrollTo(targetAnchor);
   
}

function swap_pstatus(obj, aid, status, classes, labels) {
    obj.html('');
    for(var i=0; i<status.length; i++) {
        obj.toggleClass( classes[i] );
        if (obj.hasClass(classes[i])) {
            obj.append(labels[i]);
            $.getJSON('/ajax/artwork_status', {
                aid : aid,
                status : status[i]
            });
        }
    }
}

function ajax_delete_picture(pid, kid) {
    
    $.getJSON('/ajax/picture_delete', {
        pid : pid,
        kid : kid
    } , function(json) {
        if (json.code==0) {
            $('#preview_'+pid).remove();
            uploadifySettings.queueSizeLimit = Math.min(4,  uploadifySettings.queueSizeLimit + 1);
            $('#product_picture_file').uploadifySettings( 'queueSizeLimit', uploadifySettings.queueSizeLimit );
            if ($('.picprev').size()==1) {
                $('.picdel').hide();
            }
        }
    });
        
}

// Alignement vers le bas des vignettes produits
function thumbs_bottom_align(){
    var thumbs = $('div.thumb-img');
    var margintop = 428 - thumbs.length*93;
    $('#block-images-thumb').css('margin-top', margintop+'px');
}

function popupcentree(page,largeur,hauteur) {
    var top=(screen.height-hauteur)/2;
    var left=(screen.width-largeur)/2;
    var options="toolbar=0,location=0,directories=0,status=0,scrollbars=1,resizable=1,copyhistory=0,menubar=0";
    window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}


$(document).ready(function() {
    $('.reduce-to').each(function(e) {
        var classnames = $(this).attr('class').split(" ");
        var maxwidth = 0;
        var maxheight = 0;
        var minsize = 15;
        for (var i=0; i<classnames.length; i++) {
            var curclass = jQuery.trim( classnames[i] );
            if (match =  /^w([0-9]+)/g.exec(curclass)) {
                maxwidth = match[1];
            }
            else if (match =  /^h([0-9]+)/g.exec(curclass)) {
                maxheight = match[1]
            }
            else if (match =  /^min([0-9]+)/g.exec(curclass)) {
                minsize = match[1]
            }
        }
        match = /([0-9]+)px/.exec($(this).css('font-size'));
        if (match) {
            fontsize = match[1];
            while ((( (maxwidth>0) && ($(this).width()>=maxwidth) ) || ( (maxheight>0) && ($(this).height()>=maxheight) )) && (fontsize>minsize)) {
                $(this).css('font-size', fontsize--+'px');
            }
        }

    }
    )
});
