/*
// 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 Pop Up
//----------------------------------------------------------------------------------------------------
function Open (url, width, height){
    window.open(url, "Ricaud", "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(){
    var height              =  0; /* prévient les débords dus aux margins */
    height                  += $("#header").outerHeight();
    height                  += $("#breadcrumbs").outerHeight();
    height                  += $("#page-container").outerHeight();
    height                  += $("#footer").outerHeight();
    var clientHeight        = window.innerHeight;
    if (clientHeight == undefined)
        clientHeight        = document.body.clientHeight;
    if (clientHeight>height)
        height              = clientHeight;
    return height;
}

//----------------------------------------------------------------------------------------------------
// Fonction pour affiché le Background foncé
//----------------------------------------------------------------------------------------------------
function Bkg(){
    if (document.getElementById("iframe_bg_fonce")){
        var height = pageHeight();
        document.getElementById("iframe_bg_fonce").style.visibility = 'hidden';
        document.getElementById("iframe_bg_fonce").src				= '/pages/htmlpromtevent.html';
        document.getElementById("iframe_bg_fonce").style.visibility = 'visible';
        document.getElementById("bg_fonce").style.height			= height+"px";
    }
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives aux popins Ajax
//----------------------------------------------------------------------------------------------------
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);
        });
    }
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives au HEADER / CUSTOMER AREA
//----------------------------------------------------------------------------------------------------
function ActivateCustomerArea(id, objectID, storedLocation, classBaseName) {
	eval(storedLocation+"=0;");
	$(id).mouseover(function(){
		window.clearTimeout(trackerID_Customer);
	});
	$(id).mouseout(function(e){
		window.clearTimeout(trackerID_Customer);
		trackerID_Customer = window.setTimeout('close_Area("'+objectID+'", "'+storedLocation+'", "'+classBaseName+'")',250);
	});
	$(id).click(function(){
		$(id).removeClass("customer-on");
		$(id).removeClass("customer-off");
		$(id).addClass("customer-on");
	});
}
function close_CustomerArea(){
	window.clearTimeout(trackerID_Customer);
	trackerID_Customer = window.setTimeout('close_Area("customer_area", "customer_area_done", "customer")',250);
}
function menuCustomerArea (objectID, classBaseName){
    elementID = document.getElementById(objectID);
    if (elementID)
		ActivateCustomerArea("#"+objectID, objectID, objectID+"_done", classBaseName);
}

//----------------------------------------------------------------------------------------------------
// Fonctions relatives au HEADER / BASKET AREA
//----------------------------------------------------------------------------------------------------
function ActivateBasketArea(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 menuBasketArea (objectID, classBaseName){
    elementID = document.getElementById(objectID);
    if (elementID)
		ActivateBasketArea("#"+objectID, objectID, objectID+"_done", classBaseName);
}

//----------------------------------------------------------------------------------------------------
// 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){
	var index=0;
	while (document.getElementById('catalog_'+index)){
		ActivateCatalogArea("#catalog_"+index, "catalog_"+index, "catalog_area_"+index+"_done", classBaseName);
		index++;
	}
}

//----------------------------------------------------------------------------------------------------
// 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");
			}
        }
    }
}

//----------------------------------------------------------------------------------------------------
// 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');
}

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

//----------------------------------------------------------------------------------------------------
// Exécution automatique des fonctions
//----------------------------------------------------------------------------------------------------
$(document).ready(function () {
    if( clearAreas != null )
        clearAreas();
    if( menuCustomerArea != null )
        menuCustomerArea		(	'customer_area',			'customer');
    if( menuBasketArea != null )
        menuBasketArea			(	'basket_area',				'basket');
    if( menuCatalogArea != null )
        menuCatalogArea			(	'catalog',					'catalog');
    if( menuDesignSelect != null )
        menuDesignSelect		(	'designselect_countries',	'designselectbox');
    if( menuDesignSelect != null )
        menuDesignSelect		(	'designselect_tranchesdage','designselectbox');
    if( menuDesignBreadCrumb != null )
		menuDesignBreadCrumb	(	'breadcrumb',				'designselectbox');
});
