/** NEWLETTER ***/
//var searchForm = new Varien.searchForm('newsletter-validate-detail', 'newsletter', 'nom@domaine.com');

/*** RECHERCHER ***/
$('search').observe('focus', focusSearch);
$('search').observe('blur', blurSearch);

function focusSearch() {
    $('search').setStyle({ color: '#555', fontStyle: 'normal', border: 'solid 1px #aaa' });
}

function blurSearch() {
    $('search').setStyle({ color: '', fontStyle: '', border: '' });
}

/*** CONSEILS ASTUCES ***/
function showAstuces() {
        $('block-astuces').appear({duration: 0});
}

function hideAstuces() {
    if (outAstuces) {
      clearTimeout(clearShow);
      $('block-astuces').fade({duration: 0});
    }
}


if (!document.all) {
    $('drop_astuces').observe('mouseout', closeDropmenu);
    $('astuces').observe('mouseover', openDropmenu);
    /*$('mariage-pacs').observe('mouseover', openDropmenu);
    $('drop_mariage-pacs').observe('mouseout', closeDropmenu);
    $('fiancaille').observe('mouseover', openDropmenu);
    $('drop_fiancaille').observe('mouseout', closeDropmenu);
    $('anniversaire-mariage').observe('mouseover', openDropmenu);
    $('drop_anniversaire-mariage').observe('mouseout', closeDropmenu);*/
    $('enterrement-vie-garcon').observe('mouseover', openDropmenu);
    $('drop_enterrement-vie-garcon').observe('mouseout', closeDropmenu);
}
       
function openDropmenu(e) {
    if (this.id == 'enterrement-vie-garcon') {
        if ($(this.id).className == 'notactive') {
            $('drop_'+this.id).setStyle({ display: 'block' });
        }
    } else {
        $('drop_'+this.id).setStyle({ display: 'block' });
    }
}

function closeDropmenu(e) {
    var sourceTarg = this;
    // récupère l'élément de sortie (méthode IE ou W3C)
    var relTarg = e.relatedTarget || e.toElement;
    // remonte à l'élément parent de l'element de sortie, sort si c'est body ou si c'est l'element source
    while (relTarg.nodeName != 'BODY' && relTarg != sourceTarg) {
        relTarg = relTarg.parentNode;
    }
    // si l'élément n'est pas un enfant de l'élément source, alors cacher le menu
    if (relTarg != sourceTarg) {
        $(sourceTarg.id).setStyle({ display: 'none' });
    }
}

/*** SLIDESHOW ***/
// processus de slideshow
function slideShow(indice) {
    pause = true;

    // cas de la derniere image du slideshow
    if (indice == (max-1) && current_div != 'undefined') {
        $(current_div).fade({duration: 0.5});
    }

    slide = indice+1 < max ? indice+1 : 0;
    //changeButton(slide);
    // se positionne sur l'element courant a afficher
    current_div = tab_div[slide];
    
    // relance les animations pour IE
    if (document.all) { $(current_div).innerHTML = $(current_div).innerHTML; }
    
    $(current_div).appear({duration: 0.5, afterFinish:waitBeforeChangeSlide});
    function waitBeforeChangeSlide()
    {
        pause = false;

        // cache les images non affichees, sauf au lancement du slideshow
        if (indice != max) {
            $(tab_div[indice]).setStyle({ display: 'none' });
        }

        // attend avant de changer d'image
        duree = setTimeout("slideShow(slide)",(time*1000));
    }
}

/*** FEATURE PRODUCTS ***/
// processus de feature products
function slideProd(indice_prod) {
    fprod_pause = true;

    // cas de la derniere image du slideshow
    if (indice_prod == (fprod_max-1) && fprod_current_div != 'undefined') {
        $(fprod_current_div).fade({duration: 0.3});
    }

    fprod = indice_prod+1 < fprod_max ? indice_prod+1 : 0;
    // se positionne sur l'element courant a afficher
    fprod_current_div = fprod_tab_div[fprod];
    $(fprod_current_div).appear({duration: 0.3, afterFinish:waitBeforeChangeProd});

    function waitBeforeChangeProd()
    {
        fprod_pause = false;

        // cache les images non affichees, sauf au lancement du slideshow
        if (indice_prod != fprod_max) {
            $(fprod_tab_div[indice_prod]).setStyle({ display: 'none', position : 'absolute' });
        }

        // attend avant de changer d'image
        duree_prod = setTimeout("slideProd(fprod)",(fprod_time*1000));
    }
}

function changeProd(fprod_state) {
    // si le slideshow n'est pas deja en fonction
    if (fprod_pause == false)
    {
        // relance le timeur
        clearTimeout(duree_prod);

        fprod_pause = true;
        // l'image en cours disparait
        $(fprod_current_div).fade({duration: 0.3});

    // on change d'image
    indice_prod = parseInt(fprod_current_div.substr(6,2));
    if (fprod_state == 'next') {
      fprod = indice_prod-1 < 0 ? fprod_max : indice_prod-1;
    } else {
      fprod = indice_prod-3 < 0 ? fprod_max+(indice_prod-3) : indice_prod-3;
    }
        slideProd(fprod);
    }
}

/*** FILTRES CATALOGUE ***/
function selectFilters(filterParameters) {
    var filterElements = $$('.filters-checked-element');
    var filtersTab = new Array();
    var filtersArray = new Array();
    filterElements.each(function (filter) {
        filtersTab.push(filter.id);
    });

    //check selected ones
    filterParameters.each(function (filter) {
        filter[1].each(function (element) {
            var isFilterChecked = false;
            var indexFilter = 0;
            while (indexFilter < filtersTab.length) {
                if (filtersTab[indexFilter] == findMagentoTraduction(filter[0].valueOf()).replace('_', '-') + '_filter_' + findMagentoTraduction(element, true)) {
                    isFilterChecked = true;
                    filtersTab[indexFilter] = '';
                }
                indexFilter++;
            }
            if (filter[0].valueOf() != 'couleurs') {
                if ((isFilterChecked == false || filtersTab.length == 0) && filter[0].valueOf() != 'page' && ($('filter-' + findMagentoTraduction(filter[0].valueOf()).replace('_', '-')) != null)) {
                    var filterID = findMagentoTraduction(filter[0].valueOf()).replace('_', '-') + '_filter_' + findMagentoTraduction(element, true);
                    var typeName = $('filter-' + findMagentoTraduction(filter[0].valueOf()).replace('_', '-')).innerHTML;
                    var filterElement = $('check-' + findMagentoTraduction(filter[0].valueOf()).replace('_', '-') + '_link_' + findMagentoTraduction(element, true));
                    var filterName = filterElement.title;
                    var filterHref = filterElement.href;
                    var filterOnclick = filterElement.getAttribute("onclick");
                    var filterIE = filterOnclick.toString().split('{');
                    if (filterIE.length > 1) {
                        filterOnclick = filterIE[1].substr(1,(filterIE[1].length-3));
                    }
                    
                    $('filters-checked-list').innerHTML += "<li class='filters-checked-element' style='display:none;' id='" + filterID + "'><a class='filters-checked-link' href='"+ filterHref +"' onclick='"+ filterOnclick +"'>" + typeName.substr(0,typeName.length-1) + ' : <i>' + filterName + "</i></a></li>";
                    
                    // ajoute un effet au tableau
                    filtersArray.push(filterID);

                    if (filter[0].valueOf() != 'couleurs') {
                        $('check-' + findMagentoTraduction(filter[0].valueOf()).replace('_', '-') + '_link_' + findMagentoTraduction(element, true)).className += '-checked';
                    } else {
                        $('check-' + findMagentoTraduction(filter[0].valueOf()).replace('_', '-') + '_link_' + findMagentoTraduction(element, true)).className += '-checked_'+findMagentoTraduction(element, true);
                    }
                }
             }
        });
    });
    // tableau elements à lancer en simulané : Effect.multiple
    if (document.all) {
        filtersArray.each(function (filterDown) {
            $(filterDown).style.display = 'block';
        });        
    } else { 
        if (filtersArray.length > 0) {
            Effect.multiple(filtersArray,Effect.SlideDown, {duration:0.5});
        }
    }
    
    filtersTab.each(function (filterVal) {
        if (filterVal != '') {
            var filterName = $(filterVal).id.split('_filter_');
            $('check-'+filterName[0]+'_link_'+filterName[1]).className = $('check-'+filterName[0]+'_link_'+filterName[1]).className.split('-checked')[0];
            $('filters-checked-list').removeChild($(filterVal));
        }
    });
}

/*** CATALOGUE & FICHE PRODUIT ***/
function changePicture(picture,alt,title,divID) {
    $('main-picture'+divID).innerHTML = '<img src="'+picture+'" alt="'+alt+'" title="'+title+'" />';
}

function checkQty(elem) {
    if (elem.id == undefined) {
       elem = this;
    }
    var qtyValue = (elem.options[elem.selectedIndex].id).split('_')[1];
    
    var qty_value = 'qty_'+elem.id.split('_')[1]+'_'+parseInt(qtyValue);
    var qty_prefix = 'qty_'+elem.id.split('_')[1];
            

    var values_qty_tab = $$('.values_qty');
    values_qty_tab.each(function(eachValueQty) {
        if ('qty_'+eachValueQty.id.split('_')[1] == qty_prefix) {
            $(eachValueQty.id).style.display = "none";
        }
    });

    if ($(qty_value) != null) {
        $(qty_value).style.display = "inline";
    }
}

function selectQty() {
    this.size = "1";
}

/*** FICHE PRODUIT ***/
function slideFilteredSelection(direction) {
    if (direction == 'right') {
        tabFilteredProduct.each(function(eachProd, indice) {
            if (eachProd[1]+1 < maxFilteredProduct) {
                tabFilteredProduct[indice][1] = eachProd[1]+1;
            } else {
                tabFilteredProduct[indice][1] = 0;
            }
        });
    } else {
        tabFilteredProduct.each(function(eachProd, indice) {
            if (eachProd[1]-1 < 0) {
                tabFilteredProduct[indice][1] = maxFilteredProduct-1;
            } else {
                tabFilteredProduct[indice][1] = tabFilteredProduct[indice][1]-1;
            }
        });
    }
    showFilteredSelection();
}

function showFilteredSelection() {
    if (tabFilteredProduct.length <= 8) {
        $('precedent_selection').setStyle({ display: 'none' });
        $('suivant_selection').setStyle({ display: 'none' });
    }
    tabFilteredProduct.each(function(eachProd) {
        if (eachProd[1] <= 7) {
            var prodMarginleft = eachProd[1]*110 + 30;
            $(eachProd[0].id).setStyle({ display: 'block', position : 'absolute', marginLeft : prodMarginleft + 'px' });
        } else {
            $(eachProd[0].id).setStyle({ display: 'none' });
        }
    });
}

function slideProductCollection(direction) {
    if (direction == 'right') {
        tabProductCollection.each(function(eachProd, indice) {
            if (eachProd[1]+1 < maxProductCollection) {
                tabProductCollection[indice][1] = eachProd[1]+1;
            } else {
                tabProductCollection[indice][1] = 0;
            }
        });
    } else {
        tabProductCollection.each(function(eachProd, indice) {
            if (eachProd[1]-1 < 0) {
                tabProductCollection[indice][1] = maxProductCollection-1;
            } else  {
                tabProductCollection[indice][1] = tabProductCollection[indice][1]-1;
            }
        });
    }
    showProductCollection();
}

function showProductCollection() {
    if (tabProductCollection.length <= 4) {
        $('precedent_collection').setStyle({ display: 'none' });
        $('suivant_collection').setStyle({ display: 'none' });
    }

    tabProductCollection.each(function(eachProd) {
        if (eachProd[1] <= 3) {
            var prodMarginleft = eachProd[1]*190 + 100;
            $(eachProd[0].id).setStyle({ display: 'block', position : 'absolute', marginLeft : prodMarginleft + 'px' });
        } else {
            $(eachProd[0].id).setStyle({ display: 'none' });
        }
    });
}

/*** QAS ***/
function verifAddress() {
    var pageSource = this.id.split(':')[0];
    if (pageSource == 'billing' || pageSource == 'shipping') {
        pageSource += ':';
        var div_pays = $(pageSource+'country_id');
        var div_ligne1 = $(pageSource+'street_1');
        var div_ligne2 = $(pageSource+'street_2');
        var div_ligne3 = $(pageSource+'street_3');
        var div_ligne4 = $(pageSource+'street_4');
        var div_cp = $(pageSource+'postcode');
        var div_ville = $(pageSource+'city');
    } else {
        pageSource = '';
        var div_pays = $('country');
        var div_ligne1 = $('street_1');
        var div_ligne2 = $('street_2');
        var div_ligne3 = $('street_3');
        var div_ligne4 = $('street_4');
        var div_cp = $('zip');
        var div_ville = $('city');
    }
    if (testNewAddress(pageSource)) {
        var pays = div_pays.value;
        var ligne1 = div_ligne1.value;
        var ligne2 = div_ligne2.value;
        var ligne3 = div_ligne3.value;
        var ligne4 = div_ligne4.value;
        var cp = div_cp.value;
        var ville = div_ville.value;

        if (ligne1 != '' && cp != '' && ville != '' && (pays == 'FR' || pays == 'BE' || pays == 'DE')) {
            var url = storeUrl+"qas";
            new Ajax.Request(url, {
                method: 'get',
                parameters: "source="+pageSource+"&action=Verification&ligne1="+ligne2+"&ligne2="+ligne3+"&ligne3="+ligne1+"&ligne4="+ligne4+"&cp="+cp+"&ville="+ville+"&pays="+pays,
                onSuccess: function(xhr) {
                    $(pageSource+'show_result').innerHTML = xhr.responseText;
                    var verifyLevel = $('verifyLevel').value;
                    if (verifyLevel == "Verified") {
                        insertQASValues(pageSource);
                    } else if (verifyLevel == "None" || verifyLevel == "") {
                        // pret a remplir
                    }
                    $(pageSource+'result_qas').style.display = 'block';
                }
            });
        } else {
            $(pageSource+'show_result').innerHTML = "";
            $(pageSource+'result_qas').style.display = 'none';
        }
    }
}

function validAddress(pageSource) {
    var valueMoniker = $("selectMoniker").options[$("selectMoniker").selectedIndex].value;
    
    var url = storeUrl+"qas";
    new Ajax.Request(url, {
        method: 'get',
        parameters: "source="+pageSource+"&action=moniker&moniker="+valueMoniker+"&pays="+pays,
        onSuccess: function(xhr) {
            $(pageSource+'show_result').innerHTML = xhr.responseText;
            insertQASValues(pageSource);
        }
    });
}

function insertQASValues(pageSource) {
    if (pageSource == 'billing:' || pageSource == 'shipping:') {
        var div_ligne1 = $(pageSource+'street_1');
        var div_ligne2 = $(pageSource+'street_2');
        var div_ligne3 = $(pageSource+'street_3');
        var div_ligne4 = $(pageSource+'street_4');
        var div_cp = $(pageSource+'postcode');
        var div_ville = $(pageSource+'city');
    } else {
        var div_ligne1 = $('street_1');
        var div_ligne2 = $('street_2');
        var div_ligne3 = $('street_3');
        var div_ligne4 = $('street_4');
        var div_cp = $('zip');
        var div_ville = $('city');
    }

    div_ligne1.value = $(pageSource+'qas_ligne3').value;
    div_ligne2.value = $(pageSource+'qas_ligne1').value;
    div_ligne3.value = $(pageSource+'qas_ligne2').value;
    div_ligne4.value = $(pageSource+'qas_ligne4').value;
    div_cp.value = $(pageSource+'qas_cp').value;
    div_ville.value = $(pageSource+'qas_ville').value;

    var value = testNewAddress(pageSource);
}

function cancelQASValues(pageSource) {
    if (pageSource == 'billing:' || pageSource == 'shipping:') {
        var div_ligne1 = $(pageSource+'street_1');
        var div_ligne2 = $(pageSource+'street_2');
        var div_ligne3 = $(pageSource+'street_3');
        var div_ligne4 = $(pageSource+'street_4');
        var div_cp = $(pageSource+'postcode');
        var div_ville = $(pageSource+'city');
    } else {
        var div_ligne1 = $('street_1');
        var div_ligne2 = $('street_2');
        var div_ligne3 = $('street_3');
        var div_ligne4 = $('street_4');
        var div_cp = $('zip');
        var div_ville = $('city');
    }

    div_ligne1.value = $(pageSource+'old_ligne3').value;
    div_ligne2.value = $(pageSource+'old_ligne1').value;
    div_ligne3.value = $(pageSource+'old_ligne2').value;
    div_ligne4.value = $(pageSource+'old_ligne4').value;
    div_cp.value = $(pageSource+'old_cp').value;
    div_ville.value = $(pageSource+'old_ville').value;

    var value = testNewAddress(pageSource);
}

function keepAddress(pageSource) {
    insertQASValues(pageSource);
    $(pageSource+'show_result').innerHTML = "";
    $(pageSource+'result_qas').style.display = 'none';
}

function cancelAddress(pageSource) {
    cancelQASValues(pageSource);
    $(pageSource+'show_result').innerHTML = "";
    $(pageSource+'result_qas').style.display = 'none';
}

function testNewAddress(pageSource) {
    if (pageSource == 'billing:' || pageSource == 'shipping:') {
        var div_pays = $(pageSource+'country_id');
        var div_ligne1 = $(pageSource+'street_1');
        var div_ligne2 = $(pageSource+'street_2');
        var div_ligne3 = $(pageSource+'street_3');
        var div_ligne4 = $(pageSource+'street_4');
        var div_cp = $(pageSource+'postcode');
        var div_ville = $(pageSource+'city');
    } else {
        var div_pays = $('country');
        var div_ligne1 = $('street_1');
        var div_ligne2 = $('street_2');
        var div_ligne3 = $('street_3');
        var div_ligne4 = $('street_4');
        var div_cp = $('zip');
        var div_ville = $('city');
    }

    var pays = div_pays.value;
    var ligne1 = div_ligne1.value;
    var ligne2 = div_ligne2.value;
    var ligne3 = div_ligne3.value;
    var ligne4 = div_ligne4.value;
    var cp = div_cp.value;
    var ville = div_ville.value;

    if (pays != mem_pays || ligne1 != mem_ligne1 || ligne2 != mem_ligne2 || ligne3 != mem_ligne3 || ligne4 != mem_ligne4 || cp != mem_cp || ville != mem_ville) {
        mem_pays = div_pays.value;
        mem_ligne1 = div_ligne1.value;
        mem_ligne2 = div_ligne2.value;
        mem_ligne3 = div_ligne3.value;
        mem_ligne4 = div_ligne4.value;
        mem_cp = div_cp.value;
        mem_ville = div_ville.value;

        return true;
    } else {
        return false;
    }
}

/*** PANIER ***/
function changeQty() {
    $('cart-form').submit();
}

function selectOption() {
    var optionValueTab = this.id.split('_');
    optionValue = optionValueTab[1]+'_'+optionValueTab[2];

    checkOptionEnveloppe(optionValue);
    checkEnveloppe(optionValue);
    checkOptionRadio(optionValue);
}

function checkOptionRadio(optionValue) {
    var radio_option = $$('.radio_bt');
    radio_option.each(function(eachRadioOption) {
        if ('options_'+optionValue == eachRadioOption.id) {
            eachRadioOption.checked = true;
        } else {
            eachRadioOption.checked = false;
        }
    });
}

function checkOptionEnveloppe(optionValue) {
    var env_option = $$('.env_option');
    env_option.each(function(eachEnvOptions) {
        if (eachEnvOptions.id == 'options2_'+optionValue) {
            $(eachEnvOptions.id).setStyle({ backgroundImage: env_checked });
        } else {
            $(eachEnvOptions.id).setStyle({ backgroundImage: env_unchecked });
        }
    });
}

function checkEnveloppe(optionValue) {
    var enveloppes = $$('.enveloppes');
    enveloppes.each(function(eachEnveloppe) {
        if ('enveloppes_'+optionValue == eachEnveloppe.id) {
            $(eachEnveloppe.id).setStyle({ backgroundColor: env_selected_color, border: env_selected_border });
        } else {
            $(eachEnveloppe.id).setStyle({ backgroundColor: '', border: '' });
        }
    });
}

function overEnveloppe() {
    var currentEnv = this.id;
    var optionValueTab = this.id.split('_');
    optionValue = optionValueTab[1]+'_'+optionValueTab[2];

    if (!$('options_'+optionValue).checked) {
        $(currentEnv).setStyle({ border: env_selected_border });
    }
}

function outEnveloppe() {
    var blurEnveloppes = $$('.enveloppes');
    blurEnveloppes.each(function(eachBlurEnveloppe) {
        var currentEnv = eachBlurEnveloppe.id;
        var optionValueTab = currentEnv.split('_');
        optionValue = optionValueTab[1]+'_'+optionValueTab[2];

        if (!$('options_'+optionValue).checked) {
            $(currentEnv).setStyle({ border: '' });
        }
    });
}

