//fonction popUp1 (parfaite en haut à gauche)

var newWin = null;
function closeWin(){
	if (newWin != null){
		if(!newWin.closed)
			newWin.close();
		}
}

function popUp1(page,largeur,hauteur,options) {
	closeWin();
	var top=(screen.height-hauteur)/6;
	var left=(screen.width-hauteur)/6;	
	newWin = window.open(page,'newWin',"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}	

// (appel) <a href="ma_fenetre.htm" onclick="popUp1(this.href,400,200,'menubar=no,scrollbars=no,statusbar=no,resizable=no');return false;">Lien vers une nouvelle fenêtre</a>

// Fonction HideAndShow
function HideAndShow(calque1,calque2) {
document.getElementById(calque1).style.display = "none";
document.getElementById(calque2).style.display = "block";
}

// Fonction HideAndShowBis
function HideAndShowBis(calque1,calque2,calque3,calque4) {
document.getElementById(calque1).style.display = "none";
document.getElementById(calque2).style.display = "none";

document.getElementById(calque3).style.display = "block";
document.getElementById(calque4).style.display = "block";
}

//Fonction ShowDate
function ShowDate (dateNumber) {
	
var dateCal = new Date();
var monthCal = dateCal.getMonth() + 1;	// mois en cours
var dayCal = dateCal.getDate();	// jour en cours
//alert (monthCal);

//var eventElements = document.getElementsByClassName('eventBox');

	for (k=6; k<=23; k++) {
		
		var date = "date" + k;
		var day = "day" + k;
		//alert (date);
		
		// Réinitialisation
		if (document.getElementById(date)) {	// evite les div inexistantes
			document.getElementById(date).style.display = "none";
			
			if (document.getElementById(day).className == "day-past") {	// jour passé
				document.getElementById(day).className = "day-past";
			}
			else if ( (document.getElementById(day).className == "day-click") && (dayCal > k) && (monthCal  >= "5")) {	// jour et date passés
				document.getElementById(day).className = "day-past";
			}
			else {
				document.getElementById(day).className = "day-cal";
			}
		}			
	}
	// Affichage de la div concernée
	document.getElementById("date" + dateNumber).style.display = "block";
	document.getElementById("day" + dateNumber).className = "day-click";		
}

// Fonction dayOn
function dayOn(div) {
	if (div.className == "day-click") {
		div.className = "day-click";
	}
	else if (div.className == "day-past") {
		div.className = "day-past";
	}
	else {
		div.className = "day-on";
	}	
}

// Fonction dayOff
function dayOff(div) {
	if (div.className == "day-click") {
		div.className = "day-click";
	}
	else if (div.className == "day-past") {
		div.className = "day-past";
	}
	else {
		div.className = "day-off";
	}	
}

//Tests onclick
function Info()
{
     window.alert("Nos produits sont en general vraiment perimes");
}

//Fonction bloque_clic droit
function bloque_clic()
{
alert("Si les photos du site espritjazz.com vous intéressent, veuillez contacter Donatienne Hantin par mail : donatienne@espritjazz.com afin d'obtenir l'autorisation de publication de la part de ses auteurs. Merci.");
return false;
}

//A appeller dans le body :	<body onContextMenu="return bloque_clic();"> </body>  ou bien  <body onContextMenu="return false;"> Rien ne se passera ...


//Validation Formulaire Newsletter

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' doit contenir une adresse email valide !\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' doit contenir un nombre !\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' doit contenir un nombre entre '+min+' et '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' est vide !\n'; }
  } if (errors) alert('Revoyez les points suivants:\n'+errors);
  document.MM_returnValue = (errors == '');
}


// Fonctions Infobulles

function GetId(id) {	
	return document.getElementById(id);
}
	
var bulle = false; // La variable bulle nous dit si la bulle est visible ou non
	
function move(e) {
  if(bulle) {  	// Si la bulle est visible, on calcule en temps reel sa position ideale
	if (navigator.appName!="Microsoft Internet Explorer") { 		// Si on n'est pas sous IE
		GetId("curseur").style.left = e.pageX + 5+"px";
		GetId("curseur").style.top = e.pageY + 10+"px";
	}
	else { 
		if(document.documentElement.clientWidth>0) {		// Si IE
			GetId("curseur").style.left = 20+event.x+document.documentElement.scrollLeft+"px";
			GetId("curseur").style.top = 10+event.y+document.documentElement.scrollTop+"px";
		}
		else {
			GetId("curseur").style.left = 20+event.x+document.body.scrollLeft+"px";
			GetId("curseur").style.top = 10+event.y+document.body.scrollTop+"px";
		}
	}
  }
}
				
function montre(text) {
  if (bulle == false) {
	  GetId("curseur").style.visibility = "visible"; // Si le texte n'est pas caché (la verif n'est qu'une securité) on le rend visible.
	  GetId("curseur").innerHTML = text;	 // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
	  bulle = true;
  }
}
function cache() {
	if (bulle == true) {
		GetId("curseur").style.visibility = "hidden"; // Si la bulle etait visible on la cache
		bulle = false;
	}
}

document.onmousemove = move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.

// Appel fonction : 
// <div id="curseur" class="infobulle"></div> A mettre n'importe ou dans le body
// <a href="http://mobman02.free.fr/blog/" onmouseover="montre('Blog du createur de cette source');" onmouseout="cache();">

// Fonction supprimant le contenu des attributs 'title' (et 'alt' par défaut) pour les images - Appel : <body onload="modiftitle();">
function modiftitle(){
	for ( j=0; j<document.getElementsByTagName("img").length; j++ ) {
		document.getElementsByTagName('img')[j].setAttribute('title',"");	// On renseigne l'attribut title pour tout le document avec ""
	}
}

// Fonction Imprimer Contenu			/* cf : http://www.asp-php.net/ressources/bouts_de_code.aspx?id=342 */
function TB_print(titre,contenu)
{
	// Définit la zone à imprimer
	var zoneId = document.getElementById(contenu).innerHTML;
	var Headers = '';
		Headers += '<!DOCTYPE HTML PUBLIC >\n<HTML>\n<HEAD>\n<title>'+titre+'</title>\n';
		Headers += '<link rel=\"stylesheet\" href=\"css/festival-esprit-jazz-2008.css\" type=\"text/css\" media=\"screen,print\" />\n';
		Headers += '<style type=\"text/css\">\n';
		Headers += 'body{padding:5px 10px}\n';
		Headers += '#printMailBox{display:none}\n';
		Headers += '</style />\n';
		Headers += '</HEAD>\n';
		Headers += '<BODY onload="window.print(); window.close()">\n';
		//Headers += '<body>\n';
		Headers += '<div id="' + contenu + '">\n';
		
	var Footers = '';	
		Footers += "</div>";
		Footers += "</body></html>";
	
	// Ouvre une nouvelle fenetre
	var f = window.open("", "ZoneImpr", "height=700, width=470, toolbar=no, menubar=no, scrollbars=auto, resizable=no, status=no, location=no, left=10, top=10");
	
	// Définit le Style de la page
	f.document.body.style.color = '#000000';
	f.document.body.style.backgroundColor = '#FFFFFF';
	f.document.body.style.padding = "5px";
	
	// Ajoute les Données	
	f.document.title = titre;
	f.document.write ("" + Headers + zoneId + Footers);
	f.document.close();	// Imprime et ferme la fenetre
	
	//f.document.getElementById('printMailBox').style.display = "none";

return;
}

// Preload Images
function preload()
{
	if (document.images) {
		tabImages = new Array;
		for (var i=0; i<preload.arguments.length; i++) {
			tabImages[i] = new Image();
			tabImages[i].src = preload.arguments[i];
		}
	}
}
var tabImages = new Array;

// Implemente la fonction document.getElementsByClassName
document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}

// Fonctions DOM			cf : http://communaute.medialibs.com/support/forum/post-652.html
function getElementsByClassNameCustom(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}


function testClass(){
  
  //var rubriqueElements = getElementsByClassNameCustom('menuContent');
  var rubriqueElements = document.getElementsByClassName('menuContent');
  alert (rubriqueElements.length);
  
//Ainsi, pour rechercher un span possédant une classe "title", il suffira d'appeler la fonction :
//var spans = getElementsByClassNameCustom('title','span');

//Si vous souhaitez obtenir tous les éléments portant une classe "test", il suffit de ne pas renseigner le second argument :
//var spans = getElementsByClassNameCustom('test');

//Enfin, si vous connaissez l'élément parent, vous pouvez le passer en troisième argument afin d'accélérer le traitement :
/*
var parent = document.getElementById('parent');
var spans = getElementsByClassNameCustom('title','span',parent);
*/
//Attention : Veuillez noter le "s" à Elements. En effet, le résultat de cette fonction sera une collection d'objet DOM.
//Ainsi, il faudra le traiter comme un tableau. Si seul le premier élément nous intéresse, nous utiliserons :
/*
var parent = document.getElementById('parent');
var spans = getElementsByClassNameCustom('title','span',parent);
alert(spans[0].innerHTML);
*/
}

/* ----- WEB GALERY ---- */

// Active ou non la selectBox
function checkAndSelect(checkBoxId,pictureId,formatType){
	
	var selectBoxId = "select-" + pictureId + "-" + formatType;
	var priceBoxId = "price-" + pictureId + "-" + formatType;

  //alert(document.getElementById(checkBoxId).checked);
  if (document.getElementById(checkBoxId).checked == true){
    document.getElementById(selectBoxId).disabled = false;
	document.getElementById(priceBoxId).style.visibility = 'visible';
  }
  else {
    document.getElementById(selectBoxId).disabled = true;
	document.getElementById(priceBoxId).style.visibility = 'hidden';
  }
}

// Affiche le prix par ligne
function displayPriceByLine(selectBoxName,pictureId,formatType){
  
  var checkBoxId = "check-" + pictureId + "-" + formatType;
  var priceBoxId = "price-" + pictureId + "-" + formatType;	
  var f = document.forms["myOptions"];
  var priceByLine = "";
  /*  
  with(f){
    var itemNber = elements[selectBoxName].options[elements[selectBoxName].selectedIndex].value;
  }
  */
   var itemNber = selectBoxName.options[selectBoxName.selectedIndex].value;
  //alert(itemNber);
  
  if (formatType == 'a'){  	// Format 30*40
    switch(itemNber){
      case ("1") : priceByLine = "394";
  		break;
  		case ("2") : priceByLine = "788";
  		break;
  		case ("3") : priceByLine = "1182";
  		break;
  		case ("4") : priceByLine = "1576";
  		break;
  		case ("5") : priceByLine = "1970";
  		break;
    }
  }
  
  if (formatType == 'b'){  // Format 50*60
    switch(itemNber){
      case ("1") : priceByLine = "541";
  		break;
  		case ("2") : priceByLine = "1082";
  		break;
  		case ("3") : priceByLine = "1623";
  		break;
  		case ("4") : priceByLine = "2164";
  		break;
  		case ("5") : priceByLine = "2705";
  		break;
    }
  }
  
  if (formatType == 'c'){  // Format 60*80
    switch(itemNber){
      case ("1") : priceByLine = "644";
  		break;
  		case ("2") : priceByLine = "1289";
  		break;
  		case ("3") : priceByLine = "1934";
  		break;
  		case ("4") : priceByLine = "2578";
  		break;
  		case ("5") : priceByLine = "3223";
  		break;
    }
  }
  
  // Cas qté "0" -> on décoche la checkbox et on rend le select 'disabled'
  if (itemNber == "0"){
    //alert(checkBoxId + " : " + document.getElementById(checkBoxId).checked);
    document.getElementById(checkBoxId).checked = false;
    selectBoxName.disabled = "true";
  }
  
  // Affichage
  if (priceByLine != ""){
  	document.getElementById(priceBoxId).innerHTML = priceByLine + "&euro;";
  }
  else {
  	document.getElementById(priceBoxId).innerHTML = "&nbsp;";
  }
}

// Focus Input
function focusCol(obj){
  if (obj.className == 'blured'){
    obj.className = 'focused';
  }
  if (obj.className == 'bluredSmall'){
    obj.className = 'focusedSmall';
  }  
}

function blurCol(obj){
  if (obj.className == 'focused'){
    obj.className = 'blured';
  }
  if (obj.className == 'focusedSmall'){
    obj.className = 'bluredSmall';
  }  
}

function checkAndShow(checkBoxId,targetBoxId){
  if (document.getElementById(checkBoxId).checked == true){
    document.getElementById(targetBoxId).style.display = 'block';
  }
  else {
    document.getElementById(targetBoxId).style.display = 'none';
  }
}

// Affiche le prix par ligne au chargement de la page
function displayPriceByLineOnLoad(pictureId,formatType,itemNber){
  
  var priceBoxId = "price-" + pictureId + "-" + formatType;	
  //var f = document.forms["myOptions"];
  var priceByLine = "";
    
  if (formatType == 'a'){  	// Format 30*40
    switch(itemNber){
      case ("1") : priceByLine = "394";
  		break;
  		case ("2") : priceByLine = "788";
  		break;
  		case ("3") : priceByLine = "1182";
  		break;
  		case ("4") : priceByLine = "1576";
  		break;
  		case ("5") : priceByLine = "1970";
  		break;
    }
  }
  
  if (formatType == 'b'){  // Format 50*60
    switch(itemNber){
      case ("1") : priceByLine = "541";
  		break;
  		case ("2") : priceByLine = "1082";
  		break;
  		case ("3") : priceByLine = "1623";
  		break;
  		case ("4") : priceByLine = "2164";
  		break;
  		case ("5") : priceByLine = "2705";
  		break;
    }
  }
  
  if (formatType == 'c'){  // Format 60*80
    switch(itemNber){
      case ("1") : priceByLine = "644";
  		break;
  		case ("2") : priceByLine = "1289";
  		break;
  		case ("3") : priceByLine = "1934";
  		break;
  		case ("4") : priceByLine = "2578";
  		break;
  		case ("5") : priceByLine = "3223";
  		break;
    }
  }
  
  // Affichage
  if (priceByLine != ""){
  	document.getElementById(priceBoxId).innerHTML = priceByLine + "&euro;";
  }
  else {
  	document.getElementById(priceBoxId).innerHTML = "&nbsp;";
  }
}