/*
  Output images in random order
*/
var imageNb = new Array(6,2,3,1);
var suffixName = new Array("White", "Black", "Orange", "Texte");
var allImages = new Array();
var barre = new Image(60,15);
var loaded = 0;
var nbSquare;
/* 0 = White, 1 = Black, 2 = Orange, 3 = Texte */

function getBrowser() {
	var agent;
  if(window.opera) {
    return "op";
  } else {
    agent = navigator.userAgent.toLowerCase(); 
    if(agent.indexOf("gecko")>-1 || window.sidebar) {
	  	return "moz";
		} else if(agent.indexOf("msie")>-1) {
	  	return "ie";
		} else {
	  	return "def";
		}
  }
}

function initialize(nb) {
//  createMenu();
  ulImageOpera();
  nbSquare = nb;
}

function ulImageOpera() {
/*  if(window.opera) {
    document.write('<style type="text/css">ul {list-style-image: url(logo/left-long.gif)}</style>');
    document.write('<style type="text/css">ul ul {list-style-image: url(logo/puce-long.gif)}</style>');
  };*/
}

function doPreload() {
  for(var i=0; i<imageNb.length; i++) {
    allImages[i] = new Array(imageNb[i]);
    for(var j=0; j<imageNb[i]; j++) {
  	  allImages[i][j] = new Image(60,60);
  	  allImages[i][j].src = "dessin/Personnage" + suffixName[i] + "-" + j + ".gif";
  	}
  }
  barre.src = "dessin/Barre.gif";
  loaded=1;
}

function chooseRandomImages(nb, sequence, idSide) {
  var j;
  var innerStr = '';
  var nbDisplayed = new Array(imageNb.length);
  var nbTypeDisplayed = new Array(imageNb.length);
  /* Initialize nbDisplayed */
  for(var i=0; i<imageNb.length; i++) {
    nbDisplayed[i] = new Array(imageNb[i]);
	for(var j=0; j<imageNb[i]; j++) {
	  nbDisplayed[i][j] = 0;
	}
	nbTypeDisplayed[i] = 0;
  }
  if(loaded == 0) {
    doPreload();
  }
  for(var i=0; i<nb; i++) {
    var k = sequence[i%sequence.length];
    j = Math.floor((allImages[k].length - 1e-6)*Math.random());
		while(nbDisplayed[k][j] >= 1 + Math.floor(nbTypeDisplayed[k]/allImages[k].length)) {
		  j = (j+1)%allImages[k].length;
		}
		nbDisplayed[k][j]++;
		nbTypeDisplayed[k]++;
	
		innerStr += '<img src="' + allImages[k][j].src +
			'" width="' + allImages[k][j].width +
			'" height="' + allImages[k][j].height +
			'" border="0">';
  }
  innerStr += '<img src="' + barre.src +
  	'" width="' + barre.width +
		'" height="' + barre.height +
		'" border="0">';
	document.getElementById(idSide).innerHTML = innerStr;
}

function updateSideLength() {
	nbSquare = document.getElementById('contentcenter').scrollHeight  / 60;
	chooseRandomImages(nbSquare, [0,2,3,0,1,0,2,0,1,0,3,0,2], 'contentleft');
	chooseRandomImages(nbSquare, [0,2,0,1,3,0,2,0,3,0,1,0,2], 'contentright');
}

function getWinSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == "number" ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ];
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == "number" ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function showBox(id1, id2) {
  msgBox = document.getElementById(id1);
  msgBox.style.height = (document.body.scrollHeight + 10) + "px";
  msgBox.style.width = (document.body.scrollWidth + 10) + "px";
  var sizes = getWinSize();
  var offsets = getScrollXY();
  myInnerMsgBox = document.getElementById(id2);
  myInnerMsgBox.style.top = (offsets[1] + (sizes[1] - (myInnerMsgBox.offsetHeight+0))/2) + "px";
  myInnerMsgBox.style.left = (offsets[0] + (sizes[0] - (myInnerMsgBox.offsetWidth+0))/2) + "px";
  msgBox.style.visibility="visible";
}

function hideBox(id1) {
  document.getElementById(id1).style.visibility = "hidden";
}

function isBlank(str) {
  for(var i = 0; i < str.length; i++) {
	  var c = str.charAt(i);
		if((c != ' ') &&(c != '\n') && (c != '\r') && (c != '')) return false;
	}
	return true;
}

function checkString(str) {
	return (str.search(/[\u0000-\u001F]/) < 0);
}

function checkEmail(str) {
  return (str.search(/^([\w\.\-]+@[\w\.\-]+)?$/) == 0);
}

function checkTelephone(str) {
  return (str.search(/^[\d\+\.\- \(\)]*$/) == 0);
}

function checkAlphabetical(str) {
  return (str.search(/^[A-za-z\u00C0-\u00FF\-\u0027\. ]*$/) == 0);
}

function checkAddress(form) {
  var errors = new Array();
	for(var i = 0; i < form.length; i++) {
	  var e = form.elements[i];
		if(!e.check) {
		  continue;
		}
	  if(e.type == "text") {
			if((!e.optional && ((e.value == null) || (e.value == ""))) ||
			   !checkString(e.value) ||
				 (e.alphabetical && !checkAlphabetical(e.value)) ||
				 (e.email && !checkEmail(e.value)) ||
				 (e.telephone && !checkTelephone(e.value))) {
			  errors.push(e.name);
			}
			continue;
		}
		if((e.type == "textarea") && !e.optional) {
		  if((e.value == null) || (e.value == "") || isBlank(e.value)) {
			  errors.push(e.name);
			}
			continue;
		}
		if(e.numeric || (e.min != null) || (e.max != null)) {
		  var v = parseFloat(e.value);
			if(isNaN(v) ||
			   ((e.min != null) && (v < e.min)) ||
			   ((e.max != null) && (v > e.max))) {
				errors.push(e.name);
			}
			continue;
		}
	}
	return errors;
}

function checkInscrForm(f) {
	f.Nom.check = true;
	f.Prenom.check = true;
	f.Rue.check = true;
	f.Rue2.check = true;
	f.CodePostal.check = true;
	f.Ville.check = true;
	f.Pays.check = true;
	f.email.check = true;
	f.Telephone.check = true;
  f.Nom.alphabetical = true;
  f.Prenom.alphabetical = true;
  f.Ville.alphabetical = true;
  f.Pays.alphabetical = true;
	f.Rue2.optional = true;
	f.email.optional = true;
	f.email.email = true;
	f.Telephone.optional = true;
	f.Telephone.telephone = true;
	f.CodePostal.min = 1000;
	f.CodePostal.min = 99999;
	var errors = checkAddress(f);
	if(errors.length == 0) {
	  showBox("messageBox", "innerMsgBox");
	} else {
	  showBox("checkErrorBox", "innerCheckErrorBox");
		for(var i = 0; i < errors.length; i++) {
		  c = document.getElementsByName(errors[i]);
			for(var j = 0; j < c.length; j++) {
			  c[j].style.backgroundColor="Red";
			}
		}
	}
}

function checkInscrFormBene(f) {
	f.Nom.check = true;
	f.Prenom.check = true;
	f.Rue.check = true;
	f.Rue2.check = true;
	f.CodePostal.check = true;
	f.Ville.check = true;
	f.Pays.check = true;
	f.email.check = true;
	f.Telephone.check = true;
  f.Nom.alphabetical = true;
  f.Prenom.alphabetical = true;
  f.Ville.alphabetical = true;
  f.Pays.alphabetical = true;
	f.Rue2.optional = true;
	f.email.optional = true;
	f.email.email = true;
	f.Telephone.optional = true;
	f.Telephone.telephone = true;
	f.CodePostal.min = 1000;
	f.CodePostal.min = 99999;
	if(f.Autre.checked) {
		f.projet.check = true;
		f.projet.alphabetical = true;
	}
	var errors = checkAddress(f);
	if(errors.length == 0) {
		if(!(f.actif.checked || f.Secretariat.checked || f.CoAc.checked || f.Autre.checked)) {
	  showBox("checkBoxErrorBox", "innerCheckBoxErrorBox");
		} else {
		  showBox("messageBox", "innerMsgBox");
		}
	} else {
	  showBox("checkErrorBox", "innerCheckErrorBox");
		for(var i = 0; i < errors.length; i++) {
		  c = document.getElementsByName(errors[i]);
			for(var j = 0; j < c.length; j++) {
			  c[j].style.backgroundColor="Red";
			}
		}
	}
}
function submitInscrForm(form) {
  document.getElementById("messageBox").style.cursor="wait";
  hideBox("innerMsgBox");
	form.submit();
}
