/*
// JavaScript Document
*/
//----------------------------------------------------------------------------------------------------
// Fonction de sousmission des formulaires
//----------------------------------------------------------------------------------------------------
function send (itemEl){
    var form = document[itemEl];
    if (form)
        form.submit();
    return false;
}

//----------------------------------------------------------------------------------------------------
// Fonctions moteur de recherche
//----------------------------------------------------------------------------------------------------
function chercher (){
    var recherche	= document.f_search.cle.value;
	var base_url	= document.f_search.action;
    getUrl(base_url+'mot_cle/'+recherche+'/recherche.htm');
    return false;
}

//----------------------------------------------------------------------------------------------------
// Fonctions onClick sur DIV
//----------------------------------------------------------------------------------------------------
function getUrl (url){
    document.location.href = url;
    return false;
}

//----------------------------------------------------------------------------------------------------
// Fonctions pour aller à une ancre
//----------------------------------------------------------------------------------------------------
function getAnchor (Id, speed, topReduce){
	if( speed == undefined )
		speed	= "slow";
	var top		= $("#"+Id).offset().top;
	if( topReduce != undefined && isNaN(topReduce) == false )
		top		-= topReduce;
	$('html,body').animate({ scrollTop: top }, speed);
	return false;
}

//----------------------------------------------------------------------------------------------------
// Fonctions pour formulaires
//----------------------------------------------------------------------------------------------------
function getCheckedElementValue (selObj){
	if (selObj.value!=undefined){
		if ( selObj.checked )
			return selObj.value;
	}else{
		for (var i=0;i < selObj.length; i++){
			if ( selObj[i].checked )
				return selObj[i].value;
		}
	}
	return "";
}
function getSelectedElementValue (selObj){
	return selObj.options[selObj.selectedIndex].value;
}

//----------------------------------------------------------------------------------------------------
// Fonctions Pop Up
//----------------------------------------------------------------------------------------------------
function Open (url, width, height){
    window.open(url, "LBI", "menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,width="+width+",height="+height+",top=100,left=100");
}

//----------------------------------------------------------------------------------------------------
// Fonctions onClick de gestion des textes  de formulaires
//----------------------------------------------------------------------------------------------------
function assocTextToFormInput (itemEl, value){
    if (itemEl.value == value)
        itemEl.value = '';
    else if (itemEl.value == '')
        itemEl.value = value;
    return false;
}

//----------------------------------------------------------------------------------------------------
// Fonction d'impression de document
//----------------------------------------------------------------------------------------------------
function imprimer (){
    window.print();
    return false;
}

//----------------------------------------------------------------------------------------------------
// Fonction pour fermer le document
//----------------------------------------------------------------------------------------------------
function fermer (){
    window.close();
    return false;
}

//----------------------------------------------------------------------------------------------------
// Fonction pour confirmer un choix
//----------------------------------------------------------------------------------------------------
function confirmer (value, form){
    if (confirm(value)){
        send(form);
        return true;
    }else{
        return false;
    }
}

//----------------------------------------------------------------------------------------------------
// Fonction pour contrôler s'il s'agit d'IE6
//----------------------------------------------------------------------------------------------------
function isIE6(){
    var navigateur = navigator.appVersion;
    if (navigateur.indexOf('MSIE 6',0) == -1)
        return false;
    else
        return true;
}

//----------------------------------------------------------------------------------------------------
// Fonction de réceupération de la hauteur exacte de la page.
// Nota : ne pas utiliser le DOM body, car non compatible IE pour le calcul de la hauteur de page.
//----------------------------------------------------------------------------------------------------
function pageHeight(){
    return $(window).height();
}
function pageWidth(){
    return $(window).width();
}

//----------------------------------------------------------------------------------------------------
// Fonction pour affiché le Background foncé
//----------------------------------------------------------------------------------------------------
function Bkg(){
    var el, isNew = false;
    if( ! document.getElementById("bg_fonce") ){
        el = document.createElement("iframe");
        el.id   = "bg_fonce";
        isNew   = true;
    }else{
        el = document.getElementById("bg_fonce");
    }
    var height = pageHeight();
    var width = pageWidth();
    el.style.visibility     = 'hidden';
    el.src                  = '/bkg-iframe.html';
    el.style.visibility     = 'visible';
    el.style.borderStyle    = 'none';
    el.style.borderWith     = '0';
    el.style.margin         = '0';
    el.style.padding        = '0';
    el.style.position       = 'fixed';
    el.style.top            = '0';
    el.style.zIndex         = '900';
    el.style.height         = "100%";
    el.style.width          = "100%";
    el.style.filter         = "progid:DXImageTransform.Microsoft.Alpha(opacity=55)";
    el.style.opacity        = 0.5;

    if( isNew )
        document.body.appendChild(el);
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives aux popins Ajax
//----------------------------------------------------------------------------------------------------
function AfficherPopin ( Url ){
    $.get(  Url, {},
            function(data){
                PopInRender (data);
            }
    );
}
function AfficherPopinClient ( Url ){
    $.get(  Url, {},
            function(data){
                PopInRenderClient (data);
            }
    );
}
function MasquerPopin ( ){
    PopInDesctruct(null);
}
function ActionDAffichage ( Url, classAction ){
    if (document.getElementById('popinAjax')&&document.getElementById('popinRender')){
        var AjaxFile			= Url;
        var class_action_		= classAction;
        $.post(AjaxFile, {
            class_action:class_action_
        }, function(data){
			PopInRender (data);
        });
    }
}
function afficherActionDAffichage ( Url, classAction ){
    PopInCreate ("", "popin");
	ActionDAffichage ( Url, classAction );
}
function rechargerActionDAffichage ( Url, classAction ){
	ActionDAffichage ( Url, classAction );
}
function executerActionDePost ( f_name ){
    if (!document.getElementById('popinAjax')&&!document.getElementById('popinRender'))
		PopInCreate ("", "popin");
	var AjaxFile			= document[f_name].action;
	$.post(AjaxFile,
		$("#"+f_name).serialize()
	, function(data){
		PopInRender (data);
	});
}

//----------------------------------------------------------------------------------------------------
// Fonctions Loading Ajax
//----------------------------------------------------------------------------------------------------
function AjaxReset ( target ){
    if (document.getElementById(target+"Ajax"))
        document.getElementById(target+"Ajax").innerHTML = "<br /><br />";
    if (document.getElementById(target+"Render"))
        $("#"+target+"Render").addClass("loader");
}
function AjaxRender (data, target){
    document.getElementById(target+"Ajax").innerHTML = data;
    $("#"+target+"Render").removeClass("loader");
}

//----------------------------------------------------------------------------------------------------
// Fonction pour afficher/masquer un DIV
//----------------------------------------------------------------------------------------------------
function autoShowHide (itemEl, value, fade, callback){
/*
 * itemEl       : id de l'élément cible
 * value        : show pour afficher un élément masqué, hide masquer un élément affiché
 * fade         : true pour animer
 * callback     : fonction post exécution
 */
    if (document.getElementById(itemEl)){
        if (fade==true && value=="show"){
            $("#"+itemEl).fadeIn("slow");
            $("#"+itemEl).queue(function(){
                autoShowHide (itemEl, value, false, callback);
                $(this).dequeue();
            });
        }
        else if (fade==true && value=="hide"){
            $("#"+itemEl).fadeOut("slow");
            $("#"+itemEl).queue(function(){
                autoShowHide (itemEl, value, false, callback);
                $(this).dequeue();
            });
        }
        else{
            hideElement(itemEl);
            $("#"+itemEl).addClass(value);
            $("#"+itemEl).queue(function(){
                var execallback = eval(callback);
                $(this).dequeue();
            });
        }
    }
}
function hideElement (itemEl){
    $("#"+itemEl).removeClass("display");
    $("#"+itemEl).removeClass("show");
    $("#"+itemEl).removeClass("hide");
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives au Panier
//----------------------------------------------------------------------------------------------------
var _miniShopperListingNeedUpdate = true;
function AddToShopperCallBack( content_generated ){
    window.setTimeout("miniShopperRender()", 1000);
	PopInRender (content_generated);
}
function AddToShopper (ObjectID, f_name){
    PopInCreate ("", "popin");
	var position				= $("#"+ObjectID);
    var offset					= position.offset();
    $("#popin").css({
        top: (offset.top-100)
    });
	
    if (document.getElementById('popinAjax')&&document.getElementById('popinRender')){
		var AjaxFile			= document[f_name].action;
		$.post(AjaxFile, 
            $("#"+f_name).serialize()
        , function(data){
            AddToShopperCallBack (data);
        });
    }
}
function miniShopperRender(){
	var AjaxFile				= "/fr/";
    /* mini-shopper */
	if (document.getElementById('monpanier')){
		$("#monpanier").removeClass("sprite");
		$("#monpanier").addClass("loader");
        $.post(AjaxFile, {
            class_action:"Panier/mini_shopper"
        }, function(data){
			document.getElementById("monpanier").innerHTML = data;
			$("#monpanier").removeClass("loader");
			$("#monpanier").addClass("sprite");
        });
    }
	/* right-bar shopper */
    if (document.getElementById('rbleft-panier')){
		$("#rbleft-panier").addClass("loader");
        $.post(AjaxFile, {
            class_action:"Panier/mini_shopper_right"
        }, function(data){
			document.getElementById("rbleft-panier").innerHTML = data;
			$("#rbleft-panier").removeClass("loader");
        });
    }
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives au HEADER / CATALOG AREA
//----------------------------------------------------------------------------------------------------
function ActivateCatalogArea(id, objectID, storedLocation, classBaseName) {
    var trackerID;
	eval(storedLocation+"=0;");
    $(id).mouseover(function(){
        if(eval(storedLocation) == 0)
            trackerID = window.setTimeout('open_Area("'+objectID+'", "'+storedLocation+'", "'+classBaseName+'")',350);
        else
            window.clearTimeout(trackerID);
    });
    $(id).mouseout(function(){
       window.clearTimeout(trackerID);
       trackerID = window.setTimeout('close_Area("'+objectID+'", "'+storedLocation+'", "'+classBaseName+'")',250);
    });
}
function menuCatalogArea (objectID, classBaseName){
    elementID 	= document.getElementById(objectID);
    if (elementID){
        var nbNodes = document.getElementById(objectID).childNodes.length;
        for (var i=0; i<nbNodes; i++){
            var node = document.getElementById(objectID).childNodes[i];
            if ( node.nodeName.toLowerCase() == "div" && node.id.match("categ_") ){
                if (document.getElementById(node.id)){
					ActivateCatalogArea("#"+node.id, node.id, "catalog_area_"+node.id+"_done", classBaseName);
                }
            }
        }
    }
}

//----------------------------------------------------------------------------------------------------
// Fonctions AREA génériques
//----------------------------------------------------------------------------------------------------
/**
 * Ouvre un panneau
 */
function open_Area(objectID, storedLocation, classBaseName){
    clearAreas ();
	eval(storedLocation+"=1;");
    if (document.getElementById(objectID)){
        $("#"+objectID).removeClass(classBaseName+"-off");
        $("#"+objectID).removeClass(classBaseName+"-up");
        $("#"+objectID).addClass(classBaseName+"-on");
    }
}
/**
 * Ferme un panneau
 */
function close_Area(objectID, storedLocation, classBaseName){
    eval(storedLocation+"=0;");
    if (document.getElementById(objectID)){
        $("#"+objectID).removeClass(classBaseName+"-on");
        $("#"+objectID).removeClass(classBaseName+"-up");
        $("#"+objectID).addClass(classBaseName+"-off");
    }
}
/**
 * Ferme tous les panneaux
 */
function clearAreas (){
	close_Area		('customer_area',	'customer_area_done',	'customer');
	close_Area		('basket_area',		'basket_area_done',		'basket');
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives au DESIGN SELECT
//----------------------------------------------------------------------------------------------------
function ActivateDesignSelect(id, objectID, storedLocation, classBaseName, mode) {
    if (mode==null)
        mode = "mouseover";
    var trackerID;
	eval(storedLocation+"=0;");
	if (mode=="click"){
		$(id).mouseover(function(){
			window.clearTimeout(trackerID);
			$(id).removeClass("designselectbox-off");
			$(id).removeClass("designselectbox-up");
			$(id).addClass("designselectbox-up");
		});
		$(id).mouseout(function(e){
			window.clearTimeout(trackerID);
			trackerID = window.setTimeout('close_Area("'+objectID+'", "'+storedLocation+'", "'+classBaseName+'")',250);
		});
		$(id).click(function(){
			$(id).removeClass("designselectbox-up");
			$(id).removeClass("designselectbox-off");
			$(id).removeClass("designselectbox-on");
			$(id).addClass("designselectbox-on");
			//return false;
		});
	} else {
		$(id).mouseover(function(){
			if(eval(storedLocation) == 0)
				trackerID = window.setTimeout('open_Area("'+objectID+'", "'+storedLocation+'", "'+classBaseName+'")',350);
			else
				window.clearTimeout(trackerID);
		});
		$(id).mouseout(function(){
		   window.clearTimeout(trackerID);
		   trackerID = window.setTimeout('close_Area("'+objectID+'", "'+storedLocation+'", "'+classBaseName+'")',250);
		});
	}
}
function ActivateDesignSelectContent(id, objectID, classBaseName) {
    $(id).mouseover(function(){
        open_Area(objectID, 'designselect_elements_done', classBaseName);
    });
    $(id).mouseout(function(){
        close_Area(objectID, 'designselect_elements_done', classBaseName);
    });
}
function menuDesignSelect (objectID, classBaseName, mode){
    elementID = document.getElementById(objectID);
    if (elementID){
		ActivateDesignSelect("#"+objectID, objectID, objectID+"_done", classBaseName, mode);
		menuDesignSelectContent (objectID, classBaseName);
	}
}
function menuDesignSelectContent (objectID, classBaseName){
	elementID = document.getElementById(objectID);
    if (elementID){
        var nbNodes = document.getElementById(objectID).childNodes.length;
        for (var i=0; i<nbNodes; i++){
            var node = document.getElementById(objectID).childNodes[i];
			if ( node.nodeName.toLowerCase() == "div" && node.className.match("designselectbox_on") ){
				var real_node		= node;
				var nb_real_node	= real_node.childNodes.length;
				for (var j=0; j<nb_real_node; j++){
					var current_node = real_node.childNodes[j];
					if ( current_node.nodeName.toLowerCase() == "a" && current_node.id.match(objectID+"_element_") ){
						var index = current_node.id.substr((objectID+"_element_").length);
						ActivateDesignSelectContent("#"+objectID+"_element_"+index, objectID+"_element_"+index, classBaseName+"-content");
					}
				}
				break;
			}
        }
    }
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives à la BREADCRUMB
//----------------------------------------------------------------------------------------------------
function menuDesignBreadCrumb (objectID, classBaseName){
	elementID = document.getElementById(objectID);
    if (elementID){
        var nbNodes = document.getElementById(objectID).childNodes.length;
        for (var i=0; i<nbNodes; i++){
            var node = document.getElementById(objectID).childNodes[i];
			if ( node.nodeName.toLowerCase() == "div" && node.id.match("breadcrumb_design_") ){
				menuDesignSelect ("designselect_"+node.id, classBaseName, "click");
			}
        }
    }
}

//----------------------------------------------------------------------------------------------------
// Variables générales
//----------------------------------------------------------------------------------------------------
var timer;
var trackerID_Customer;

//----------------------------------------------------------------------------------------------------
// Exécution automatique des fonctions
//----------------------------------------------------------------------------------------------------
$(document).ready(function () {
    if( clearAreas != null )
        clearAreas();
    if( menuCatalogArea != null )
        menuCatalogArea			(	'navigation-catalogue',					'navigation-catalogue');
	if( menuDesignSelect != null )
        menuDesignSelect('designselect_countries', 'designselectbox');
    if( menuDesignBreadCrumb != null )
		menuDesignBreadCrumb('breadcrumb', 'designselectbox');
});
