// **************************************************************************************
// Common onload for each page
// **************************************************************************************
imagesFolder = "/wp-content/themes/lustucru/images";

jQuery(document).ready(function () {
	
	url = location.href;
	
	// contient les images à télécharger
	images = new Array();
	imagesToDownload(images, "images/bgd_input.png");
	layerZoomNeeded = false;
	
	if(document.getElementById("productListUL") != null)
	{
		// Le javascript pour le roll over effect
		ListElements = document.getElementById("productListUL").getElementsByTagName("li");
		for(var i = 0, m = ListElements.length; i < m; i++)
		{
			if(ListElements[i].getAttribute("id") != "emptyListElement")
			{
				LinkElement = ListElements[i].getElementsByTagName("img");
				ImagePath = LinkElement[0].src;
				// ImagePath = "images/" + stripImageName(LinkElement[0].src) + "-zoom.png";
				
				LinkElement[0].onmouseover = function () { 
					
					undisplayAllZoom();
				
					DivLayer = this.offsetParent.getElementsByTagName("div");
					DivLayer[0].style.display = "block";
				};
				
				DivElement = ListElements[i].getElementsByTagName("div");
				DivElement[0].onmouseout = function () { 
					intervalID = window.setTimeout(undisplayAllZoom, 200);
				};
				DivElement[0].onmouseover = function () { 
					if(intervalID)
							window.clearTimeout(intervalID);
				};
				
				LinkElements = DivElement[0].getElementsByTagName("a");
				for(var j = 0, b = LinkElements.length; j < b; j++)
				{
					LinkElements[j].onmouseover = function () {
						if(intervalID)
							window.clearTimeout(intervalID);
					};
					if(LinkElements[j].innerHTML == "Zoom")
					{
						layerZoomNeeded = true;
						LinkElements[j].onclick = function () {
							linkImage = this.offsetParent.offsetParent.getElementsByTagName("a")[0].getAttribute("href");
							//ImagePath (To comment)
							//openPopUpZoom(ImagePath);
							openPopUpZoom(linkImage);
						};
					}
				}
			}
		}
		
		if(layerZoomNeeded)
		{
			// le javascript pour le telechargement initiale des images utilisé par le popup
			imagesToDownload(images, imagesFolder + "/bgd_layer-zoom.png", imagesFolder + "/bgd_layer-cont.png", imagesFolder + "/btn_fermer.gif", imagesFolder + "/bgd_produit-ombre.png", imagesFolder + "/bgd_layer-picto-product.png", imagesFolder + "/picto_zoom.png", imagesFolder + "/btn_envoyer.png");
		}
		else
		{
			// le javascript pour le telechargement initiale des images utilisé par les mouse over 
			// effect de la page recettes
			imagesToDownload(images, imagesFolder + "/bgd_layer-picto-recettes.png", imagesFolder + "/ico_download.png", imagesFolder + "/ico_print.png", imagesFolder + "/ico_share.png", imagesFolder + "/ico_mail.png");
		}
	}
	
	if(document.getElementById("illustrationList") != null)
	{
		// Le javascript pour le mouse over effect du zoom sur la page
		ListElements = document.getElementById("illustrationList").getElementsByTagName("li");
		for(var i = 0, m = ListElements.length; i < m; i++)
		{
			LinkElement = ListElements[i].getElementsByTagName("img");
			
			LinkElement[0].onmouseover = function () { 
                undisplaySmallZoom();
				SpanLayer = this.offsetParent.getElementsByTagName("span")[0];
				SpanLayer.style.display = "block";
			};
			LinkElement[0].onmouseout = function () { 
				SpanLayer = this.offsetParent.getElementsByTagName("span")[0];
                if(intervalID)
                    window.clearTimeout(intervalID);
                intervalID = window.setTimeout(undisplaySmallZoom, 200);
			};
            
            SpanLayerDiv = LinkElement[0].offsetParent.getElementsByTagName("span")[0];
            SpanLayerDiv.onmouseover = function () {
                if(intervalID)
                    window.clearTimeout(intervalID);
            };
            SpanLayerDiv.onmouseout = function () {
                SpanLayer = this.offsetParent.getElementsByTagName("span")[0];
                if(intervalID)
                    window.clearTimeout(intervalID);
                intervalID = window.setTimeout(undisplaySmallZoom, 200);
            };
            SpanLayerDiv.onclick = function () {
                ImagePath = this.offsetParent.getElementsByTagName("a")[0].getAttribute("href");
                openPopUpZoom(ImagePath, true);
                
                return false;
            };
            
			LinkElement[0].onclick = function () { 
				ImagePath = this.parentNode.getAttribute("href");
				openPopUpZoom(ImagePath, true);
                
                return false;
			};
            
            
		}
		
		// le javascript pour le telechargement initiale des images utilisé par le popup
		imagesToDownload(images, imagesFolder + "/bgd_layer-zoom.png", imagesFolder + "/bgd_layer-cont.png", imagesFolder + "/btn_fermer.gif", imagesFolder + "/bgd_produit-ombre.png", imagesFolder + "/bgd_layer-picto-product.png", imagesFolder + "/picto_zoom.png", imagesFolder + "/btn_envoyer.png");
		
	}
	
	if(document.getElementById("morduDivCont") != null)
	{
		morduPersonDivs = document.getElementById("morduDivCont").getElementsByTagName("div");
		
		totalMordu = 0;
			
		for(var i = 0; i < morduPersonDivs.length; i++)
		{
			if(morduPersonDivs[i].className == "morduPerson")
			{
				totalMordu++;
			}
		}
			
		if(totalMordu > 0)
			displayMordu(true);
	}
			
	if(document.getElementById("prevMordusList") != null)
	{
		prevMordusList = document.getElementById("prevMordusList").getElementsByTagName("li");
		listnum = -1;
			
		for(var i = 0; i < prevMordusList.length; i++)
		{
			if(prevMordusList[i].tagName.toLowerCase() == "li")
			{
				listnum++;
				if(listnum >= pageMordu * 15 && listnum < (pageMordu + 1) * 15)
				{
					prevMordusList[i].style.display = "block";
				}
				else
				{
					if(prevMordusList[i].getAttribute("id") != "morduSuivantID")
						prevMordusList[i].style.display = "none";
					else
						prevMordusList[i].style.display = "block";
				}
			}
		}
			
        if(listnum <= 15)
        {
            document.getElementById("morduSuivantID").style.display = "none";
        }    
        
		totalPageMordu = Math.ceil(listnum / 15);
	}
	
    if(document.getElementById("donnezAvisLink") != null)
	{
		document.getElementById("donnezAvisLink").onclick = function () {
			posteCommentsClicked();
		};
	}
    
});

 var selectYear = '<option value=\"\">...</option>';
                                
 var today=new Date();  
 var thisyear=today.getFullYear();
 for (var y=thisyear; y>(thisyear-100); y--){
    selectYear+='<option value=\"'+y+'\">'+y+'</option>';  
 }
                          
// **************************************************************************************
// Print
// **************************************************************************************

function printPage(Page)
{   
    window.open(Page, "PrintWindow", "width=600,height=400,scrollbars,resizable");
}

// **************************************************************************************
// Validation
// **************************************************************************************

/**
 * isEmpty(str) valide si le seul paramètre du fonction est vide ou pas.
 */
function isEmpty(str)
{
	var regexp1 = /^\s+$/;
	var result = new String(str).search(regexp1);
	if(str.length == 0 || str == null || result != -1)
		return true;
	else
		return false;	
}

function isCodePostal(str)
{
	var regexp1 = /^\d{5}$/;
	var result = new String(str).search(regexp1);
	if(str.length == 0 || str == null || result != -1)
		return true;
	else
		return false;	
}

/**
 * CheckForm est un fonction qui est appelé pour valider une formulaire.
 * Les différents paramètres du fonction sont les suivants:
 * 
 * Form - Type Form (Javascript); Le formulaire en question
 * NonRequiredFields - Type String (Javascript); Contient les noms des champs qui ne sont pas obligatoires
 */
function checkForm(Form, NonRequiredFields)
{
    Elements = Form.elements;
    ResultNotCorrect = false;
	
    // Validez les champs obligatoires
    for(var i = 0; i < Elements.length; i++)
    {   
        if((Elements[i].type == "text" || Elements[i].type == "textarea" || Elements[i].type == "select-one" || Elements[i].type == "radio") 
			&&
            NonRequiredFields.indexOf("," + Elements[i].name + ",") < 0)
        {
			
            if(Elements[i].type == "radio")
            {
                RadioChecked = false;
                for(var j = i; j < Elements.length; j++)
                {
                    if(Elements[j].type != "radio")
                        break;
                    if(Elements[j].checked)
                        RadioChecked = true;
                }
                if(!RadioChecked)
                {
                    for(var j = i; j < Elements.length; j++)
                    {
                        if(Elements[j].type != "radio")
                            break;
                        setErrorField(Elements[j]);
				        ResultNotCorrect = true;
                    }
                }
                
                i = j - 1;
                continue;
            }
            
            if(isEmpty(Elements[i].value))
			{
				setErrorField(Elements[i]);
				ResultNotCorrect = true;
			}
			
            validationFunction = Elements[i].getAttribute("validationtxt");
			errorMessage = Elements[i].getAttribute("errortxt");
			
			if(validationFunction)
			{
				if(!eval(validationFunction + "(Elements[i].value)"))
				{
					setErrorField(Elements[i], errorMessage);
					ResultNotCorrect = true;
				}
			}
        }
    }
    
    if(ResultNotCorrect)
    {
            return false;
    }
    
    return true;
    
}

function setErrorField(Element, Message)
{
		if(!Message)
			Message = 'Ce champ est obligatoire.';
	
        if(Element.type == "text" || Element.type == "textarea")
        {
            Element.onkeypress = function ()
                             	 {
                                	 unsetErrorField(this);
                             	 };
            toggleErrorMessage(Element, 'block', Message);
        }
        else if(Element.type == "radio")
        {
            Element.onclick = function ()
                             	 {
                                	 unsetErrorField(this);
                             	 };
            toggleErrorMessageRadio(Element, 'block', Message);
        }
        else if(Element.type == "select-one")
        {
            Element.onchange = function ()
                             	 {
                                	 unsetErrorField(this);
                             	 };
            toggleErrorMessage(Element, 'block', Message);
        }
}

function unsetErrorField(Element)
{
    if(Element.type == "radio")
    {
        toggleErrorMessageRadio(Element, 'none', '');
    } 
	else
	{
		// Element.style.border = '2px solid #036895';
		toggleErrorMessage(Element, 'none', '');
	}
	
}

function toggleErrorMessage(Element, Display, ErrorMessage)
{
	DivSiblings = Element.parentNode.getElementsByTagName("div");
	for(var i = 0, m = DivSiblings.length; i < m; i++)
	{
		if(DivSiblings[i].className == "errorMsg")
		{
			DivSiblings[i].innerHTML = ErrorMessage;
			DivSiblings[i].style.display = Display;	
			break;	
		}
	}
}

function toggleErrorMessageRadio(Element, Display, ErrorMessage)
{
	DivSiblings = Element.parentNode.parentNode.getElementsByTagName("div");
	for(var i = 0, m = DivSiblings.length; i < m; i++)
	{
		if(DivSiblings[i].className == "errorMsg")
		{
			DivSiblings[i].innerHTML = ErrorMessage;
			DivSiblings[i].style.display = Display;	
			break;	
		}
	}
}

function resetHiddenElements(FormName, ElementsName)
{
	for(var i = 0, m = ElementsName.length; i < m; i++)
	{
		document.forms[FormName].elements[ElementsName[i]].value = "";	
	}
}

// **************************************************************************************
// Nous Contacter - Formulaire Popup
// **************************************************************************************
function openPopUp(OffsetTop, PopUpId)
{
	
	document.getElementById("backgroundvoileAll").style.display = "block";
	DimensionArray = getDocumentDimension();
	Width = DimensionArray[0];
	Height = DimensionArray[1];
	
	document.getElementById("backgroundvoileAll").style.height = Height + "px";
	
	document.getElementById(PopUpId).style.display = "block";
	document.getElementById(PopUpId).style.top = OffsetTop + "px";
	
	WidthOfPopUp = document.getElementById(PopUpId).offsetWidth;
	Left = (Width / 2) - (WidthOfPopUp / 2);
	document.getElementById(PopUpId).style.left = Left + "px";

    if(document.getElementById(PopUpId + "Iframe") != null)
    {
        document.getElementById(PopUpId + "Iframe").style.visibility = 'visible';
		if(window.frames['bdrframe'].document.getElementById('statusMsg'))
			window.frames['bdrframe'].document.getElementById('statusMsg').style.visibility = "hidden";
        
        if(PopUpId == "bonDeReductionForm")
        {
            jQuery("#" + PopUpId + "Iframe").load(function () {
            
                var selectYear = '<option value=\"\">...</option>';
                                    
                var today=new Date();  
                var thisyear=today.getFullYear();
                for (var y=thisyear; y>(thisyear-100); y--){
                    selectYear+='<option value=\"'+y+'\">'+y+'</option>';  
                }
                  
                jQuery("#" + PopUpId + "Iframe").contents().find("#selectAnnee").html(selectYear);
            
            }); 
        }
        
        srcHTML = document.getElementById(PopUpId + "Iframe").getAttribute("title");
        document.getElementById(PopUpId + "Iframe").src = srcHTML;
       
    }

	window.scrollTo(0,0);
}

function closePopUp(PopUpId)
{
	document.getElementById("backgroundvoileAll").style.display = "none";
	document.getElementById(PopUpId).style.display = "none";
	
	if(document.getElementById(PopUpId + "Iframe") != null)
    {
        document.getElementById(PopUpId + "Iframe").src = "";
	}
}

// **************************************************************************************
// Post Comments & Popup Zoom (Gnocchi Standards, Recettes en famille)
// **************************************************************************************
intervalID = null;
intervalIDComment = null;
respondLayer = null;
SpanLayer = null;

function posteCommentsClicked()
{
	respondLayer = document.getElementById("comments");

	if(respondLayer.style.display == "block")
	{
		location.replace("#comments");
	}
	else
	{
        jQuery("#comments").css({ display: 'block', opacity: 10}).animate({ opacity: 100 }, 800);
	}
	
}

function undisplayAllZoom()
{
	if(intervalID)
		window.clearTimeout(intervalID);
		
	DivElements = document.getElementById("productListUL").getElementsByTagName("div");
	for(var i = 0, m = DivElements.length; i < m; i++)
	{
		DivElements[i].style.display = "none";
	}
}

function undisplaySmallZoom()
{
    if(intervalID)
		window.clearTimeout(intervalID);
  
    if(SpanLayer)
    {
        SpanLayer.style.display = "none";
        SpanLayer = null;
    }
}

function openPopUpZoom(imageSrc, backgroundVoileDocHeight)
{
	displayTelechargement();
	
	document.getElementById("illusContImg").onload = function () {
		
		document.getElementById("backgroundvoile").style.display = "block";
		
		if(backgroundVoileDocHeight)
		{
			DimensionArray = getDocumentDimension();	
			Height = DimensionArray[1];
		}
		else
			Height = document.getElementById("container").offsetHeight;
			
		document.getElementById("backgroundvoile").style.height = Height + "px";
		
		if(navigator.userAgent.indexOf("Firefox") >= 0)
		{
			document.getElementById("backgroundvoile").style.top = "75px";
		}
		
		document.getElementById("layerZoomId").style.display = "block";
		
		DimensionArray = getDocumentDimension();
		DimensionWindowArray = getWindowDimension();
		
		HeightOfLayerZoom = document.getElementById("layerZoomId").offsetHeight;
		WidthOfLayerZoom = document.getElementById("layerZoomId").offsetWidth;
		
		Top = (DimensionArray[1] / 2) - (HeightOfLayerZoom / 2);
		Left = (DimensionWindowArray[0] / 2) - (WidthOfLayerZoom / 2);
		
		document.getElementById("layerZoomId").style.top = Top + "px";
		document.getElementById("layerZoomId").style.left = Left + "px"; 
		
		undisplayTelechargement();
		
	};
	document.getElementById("illusContImg").src = imageSrc;
	
}

function closePopUpZoom()
{
	document.getElementById("backgroundvoile").style.display = "none";
	document.getElementById("layerZoomId").style.display = "none";
	document.getElementById("illusContImg").src = "";
}

function displayTelechargement()
{
	DimensionWindowArray = getWindowDimension();
	
	DimensionScrollArray = getScrollDimension()
	
	DivTelechargement = document.createElement("div");
	DivTelechargement.innerHTML = "T&eacute;l&eacute;chargement en cours...";
	DivTelechargement.setAttribute("class", "telechargement");
	DivTelechargement.setAttribute("id", "telechargementId");
	DivTelechargement.style.top =  (DimensionScrollArray[1] + (DimensionWindowArray[1] / 2)) + "px";
	DivTelechargement.style.left =  (DimensionWindowArray[0] / 2) - 83 + "px";
	
	document.body.appendChild(DivTelechargement);
}	

function undisplayTelechargement()
{
	if(document.getElementById("telechargementId"))
	{
		document.body.removeChild(document.getElementById("telechargementId"));
	}
}

function stripImageName(image)
{
	imagePath = new String(image);
	
	start = imagePath.indexOf("images/") + 7;
	end = imagePath.lastIndexOf(".");
	
	if(end >= 0 && start >= 0)
	{
		str = imagePath.substr(start, end - start);	
		return str;
	}
	else
	{
		return imagePath;	
	}
}

function openFileDialog(FileInputId)
{
	document.getElementById("maPhotoFile").click();
}

function openPopUpMiddleDoc(DivFormId, contentImg)
{
	document.getElementById(DivFormId).style.display = "block";
	
	DimensionArray = getDocumentDimension();
	
	WidthOfPopUp = document.getElementById(DivFormId).offsetWidth;
	HeightOfPopUp = document.getElementById(DivFormId).offsetHeight;
	
	Left = (DimensionArray[0] / 2) - (WidthOfPopUp / 2);
	Top = (DimensionArray[1] / 2) - (HeightOfPopUp / 2);
	
	document.getElementById(DivFormId).style.left = Left + "px";
	document.getElementById(DivFormId).style.top = Top + "px";
	
}

function closePopUpMiddleDoc(DivFormId)
{
	document.getElementById(DivFormId).style.display = "none";
}


// **************************************************************************************
// Mordu du mois
// **************************************************************************************
currentMordu = -1;
totalMordu = 0;
pageMordu = 0;
totalPageMordu = 0;

function displayMordu(inc) 
{
	if(inc)
	{
		currentMordu++;
		
		if(currentMordu >= totalMordu)
			currentMordu = 0;
	}
	else
	{
		currentMordu--;
		
		if(currentMordu < 0)
			currentMordu = totalMordu - 1;	
	}

	morduPersonDivs = document.getElementById("morduDivCont").getElementsByTagName("div");
	
	for(var i = 0; i < morduPersonDivs.length; i++)
	{
		if(morduPersonDivs[i].className == "morduPerson")
		{
			morduPersonDivs[i].style.display = "none";
		}
	}
	
	iterateOverDiv = -1;
	for(var i = 0; i < morduPersonDivs.length; i++)
	{
		if(morduPersonDivs[i].className == "morduPerson")
		{
			iterateOverDiv++;
			if(currentMordu == iterateOverDiv)
			{
				morduPersonDivs[i].style.display = "block";
				break;
			}
		}
	}
}

function displayMordusMoisPrecedent()
{
	pageMordu++;
	
	if(pageMordu >= totalPageMordu)
	{
		pageMordu = 0;	
	}
	
	prevMordusList = document.getElementById("prevMordusList").getElementsByTagName("li");
	listnum = -1;
		
	for(var i = 0; i < prevMordusList.length; i++)
	{
		if(prevMordusList[i].tagName.toLowerCase() == "li")
		{
			listnum++;
			if(listnum >= pageMordu * 15 && listnum < (pageMordu + 1) * 15)
			{
				prevMordusList[i].style.display = "block";
			}
			else
			{
				if(prevMordusList[i].getAttribute("id") != "morduSuivantID")
					prevMordusList[i].style.display = "none";
				else
					prevMordusList[i].style.display = "block";
			}
		}
	}
}

// **************************************************************************************
// Dimensions and other Utils 
// **************************************************************************************
function imagesToDownload(imageArray)
{
	for(var i = 0, m = arguments.length; i < m; i++)
	{
		imageArray[i] = new Image();
		imageArray[i].src = arguments[i+1];
	}
}

function getDocumentDimension()
{
	if (document.documentElement && document.documentElement.scrollWidth) 
	{
		return [document.documentElement.scrollWidth, document.documentElement.scrollHeight];
	}
	else if (document.body.scrollWidth) 
	{
		return [document.body.scrollWidth, document.body.scrollHeight];
	}
}

function getWindowDimension()
{
	if(window.innerWidth)
	{
		innerWidth = window.innerWidth;
		innerHeight = window.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientWidth)
	{
		innerWidth = document.documentElement.clientWidth;
		innerHeight = document.documentElement.clientHeight;
	}
	else if(document.body.clientWidth)
	{
		innerWidth = document.body.clientWidth;
		innerHeight = document.body.clientHeight;
	}
	
	return [innerWidth, innerHeight];	
}

function getScrollDimension()
{
	if (window.innerWidth) { 
		
		if(window.pageXOffset)
		{
			// All browsers but IE
			scrollLeft = window.pageXOffset;
			scrollTop = window.pageYOffset;
		}
		else
		{
			// IE 7 & 8 Browsers
			scrollLeft = document.documentElement.scrollLeft;
			scrollTop = document.documentElement.scrollTop;
		}		
	}
	else if ((document.documentElement && document.documentElement.clientWidth) || window.ActiveXObject) {
		// These functions are for IE 6 when there is a DOCTYPE
		scrollLeft = document.documentElement.scrollLeft;
		scrollTop = document.documentElement.scrollTop;
	}
	else if (document.body.clientWidth) {
		// These are for IE4, IE5, and IE6 without a DOCTYPE
		scrollLeft = document.body.scrollLeft;
		scrollTop = document.body.scrollTop;
		
	}
	
	return [scrollLeft, scrollTop];
}

jQuery(window).load(function () { 
    
   if(document.getElementById("PrintPageDiv") != null)
    {
        window.print();
        window.close();
    }
    
});
