/*window.onload=show;*/
function show(id,affiche) {
	var d = id.getElementsByTagName("ul");
	if (d[0] && !affiche) 	d[0].style.display='none'; 
	else if (d[0] && affiche)	d[0].style.display='block'; 
}

function changeTabs(id) {
	document.formOnglets.onglet.value=$id;
	document.formOnglets.submit();	
}
function precharge(template){
	Img1 = new Image();
	Img1.src =  'fileadmin/templates/images/template/"'+template+'"/bl1Over.gif';
	
	Img2 = new Image();
	Img2.src = 'fileadmin/templates/images/template/"'+template+'"/bl2Over.gif';
	
	Img3 = new Image();
	Img3.src = 'fileadmin/templates/images/template/"'+template+'"/bl4Over.gif';
	
	Img4 = new Image();
	Img4.src = 'fileadmin/templates/images/template/"'+template+'"/bl5Over.gif';
}
// affiche le champs "Autres..." si on à l'option -1 séléctionnée.

function getXhr(){
	var xhr = null;
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer  
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP" );
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP" );
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur  
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
		xhr = false;
	}
	return xhr;
}

// Fonction masquant ou affichant un zone de formulaire suivant l'état d'une case à cocher seule
function toggleVisibility(id_caller, id_element) {
	if ($(id_caller).checked) {
		$(id_element).style.display = 'block';
	} else {
		$(id_element).style.display = 'none';
	}
}

// Fonction masquant ou affichant un zone de formulaire suivant l'état d'un bouton radio oui/non
function toggleVisibility_Radio(name_caller, id_element) {
	var myValue = 0;
	for (var i=0; i<document.getElementsByName(name_caller).length; i++) {
		if (document.getElementsByName(name_caller)[i].checked) {
			myValue =  document.getElementsByName(name_caller)[i].value;
		}
	}
	if (myValue == 1) {
		$(id_element).style.display = 'block';
	} else {
		$(id_element).style.display = 'none';
	}
}

function test_autre(structure_select) {
	// élement séléctionné :
	e = structure_select.options[structure_select.options.selectedIndex].value;
	if (e == '-1') {
		// on affiche le div autre
		document.getElementById('structure_autre').style.display='';
	}
	else {
		document.getElementById('structure_autre').style.display='none';
	}
}
// fonction ajax qui opère un filtre sur la liste des structures des préinscriptions
function update_struct_list(cp) {
	// on ne fait rien tant que la taille du cp n'est pas de 5 caractères
	if (cp.value.length == 5) {
		httpObject = getXhr(); 	// initialisé en global car pas de var !
		if(httpObject != null) {			
		//	httpObject.open("GET", "typo3conf/ext/japroinscription/ajax.php?function=structure&cp="+cp,true);
		//  httpObject.send(null);
			httpObject.open("POST", "typo3conf/ext/japroinscription/ajax.php",true);
			httpObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			httpObject.send('function=structure&cp=' + cp.value );
		
			httpObject.onreadystatechange = function () {
				if (httpObject.readyState == 4	&& httpObject.status==200) {
					var rep = httpObject.responseText;
					//alert ("on recupere ca : " + rep);
					document.getElementById('structure_select').innerHTML = rep;
				}
			}
		}
	}
	else
	{
		console.log ("taille cp : " + cp.value.length);
	}
}

/***************************************************************************************/
function show_type_desc(sel) {
		// on cache tous les div
		for (i=0;i < document.getElementsByName('div_type').length;i++) {
			document.getElementsByName('div_type')[i].style.display='none';
		}
		document.getElementById('div_type_'+sel.options[sel.options.selectedIndex].value ).style.display='';
}

function check_mail (lemail) {
	flag = true;
	
	if ( (lemail.indexOf('@',0) == -1) ||( lemail.indexOf ( '@', 0 ) < 1)  || (lemail.indexOf ( '.', 0 ) == -1) ) {
		flag = false;
	}
	var len = lemail.length;
	var pos = lemail.lastIndexOf ('.', len - 1 ) + 1;
	if ( (len - pos) < 2 || (len - pos) > 3) {
		flag = false;
	}
	
	return flag;
}

function check_phone (phone) {
		var regExpPhone=/^[0-9]{2}[ \.\-][0-9]{2}[ \.\-][0-9]{2}[ \.\-][0-9]{2}[ \.\-][0-9]{2}$/g;
		var result = phone.match(regExpPhone) ;
		
		if (result != null && result.length == 1) return true ;
		else return false;
}

function check_url (url) {
	/*var regExpUrl=/^((http(s?))\:\/\/)?(([a-zA-Z0-9]+([@\-\.]?[a-zA-Z0-9]+)*)(\:[a-zA-Z0-9\-\.]+)?@)?(www.|ftp.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})(\:[0-9]+)?\/?/g;*/
	var regExpUrl = /^(http:\/\/)?([a-zA-Z0-9\-_]+\.)*([a-zA-Z]){2,}([a-zA-Z0-9\/\-_])*$/g;
	var result = url.match(regExpUrl) ;
	
	if (result != null && result.length == 1 ) return true ;
	else return false;
}

function check_cp (lecp) {
	flag = true;
	len = lecp.length;
	if (len != 5) {
		flag = false;
	}
	if (isNumeric(lecp) == false) {
		flag = false;
	}
	
	return flag;
	
}

function isNumeric(sText){
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	for (j = 0; j < sText.length ; j++){
		Char = sText.charAt(j);
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
} 

function check_formcontact() {
	// on parcours tous les éléments de la form formcontact
	tab_requis = document.getElementsByName('required_list')[0].value.split(';');
	
	//alert ("liste des champs requis : "+document.getElementsByName('required_list')[0].value);
	for (i=0;i < tab_requis.length;i++) {
		if ( tab_requis[i].length > 0) {
			elem_requis = tab_requis[i].split('|');
			if (elem_requis[2] == 'mail') {
				lemail = document.getElementsByName(elem_requis[0])[0].value ;
				if (check_mail (lemail) ==false) {
					alert ("le champ " + elem_requis[1] + " n'est pas un email valide.");
					document.getElementsByName(elem_requis[0])[0].focus();
					return false;
				}
			} 
			else if (elem_requis[2] == 'cp' ) {
				// on vérifie que c'est tout numérique et de taille 5
				lecp = document.getElementsByName(elem_requis[0])[0].value;
				if (check_cp (lecp) ==false) {
					alert ("le champ " + elem_requis[1] + " n'est pas un code postal valide.");
					document.getElementsByName(elem_requis[0])[0].focus();
					return false;
				}
			} 
			else {
				if (document.getElementsByName(elem_requis[0])[0].value == '') {
					alert ("Veuillez renseigner le champ " + elem_requis[1] + ".");
					document.getElementsByName(elem_requis[0])[0].focus();
					return false;
				}
			}
		}
	}
	document.formcontact.submit();
	return true;
}
/***************************************************************************************/


// Flash Player Version Detection - Rev 1.6
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
			/*alert("flashVer="+flashVer);*/
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
    var str = '';
    if (isIE && isWin && !isOpera)
    {
  		str += '<object ';
  		for (var i in objAttrs)
  			str += i + '="' + objAttrs[i] + '" ';
  		for (var i in params)
  			str += '><param name="' + i + '" value="' + params[i] + '" /> ';
  		str += '></object>';
    } else {
  		str += '<embed ';
  		for (var i in embedAttrs)
  			str += i + '="' + embedAttrs[i] + '" ';
  		str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "id":
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function showSite(src,largeur,hauteur){
var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	if (hasReqestedVersion) {
		AC_FL_RunContent(
					"src", src,
					"width", largeur,
					"height", hauteur,
					"align", "middle",
					"id", "detectionExample",
					"quality", "high",
					"wmode", "transparent",
					"name", "detectionExample",
					"allowScriptAccess","sameDomain",
					"type", "application/x-shockwave-flash",
					'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
					"pluginspage", "http://www.adobe.com/go/getflashplayer"
		);
	} else {  
		var alternateContent = '<h2 class=\"blanc\"><p align=\"center\">Bonjour, vous ne disposez pas du dernier Plug-In Adobe Flash Player .<BR>'
		+ 'Vous pouvez vous procurez gratuitement ce Plug-In  '
		+ '<a href=\"http://www.adobe.com/go/getflash/\" target=\"_blank\"><strong>ICI</a></p></h2>';
		document.write(alternateContent);  
	}
}

function generer_mot_de_passe (champ_mot_passe) 
{
    var length=8;
    var sPassword = "";

    for (i=0; i < length; i++) {

        numI = getRandomNum();
        while (checkPunc(numI)) { numI = getRandomNum(); }

        sPassword = sPassword + String.fromCharCode(numI);
    }
	
	$(champ_mot_passe).value = sPassword;
}

function getRandomNum() 
{
    // between 0 - 1
    var rndNum = Math.random();
    // rndNum from 0 - 1000
    rndNum = parseInt(rndNum * 1000);
    // rndNum from 33 - 127
    rndNum = (rndNum % 94) + 33;

    return rndNum;
}

function checkPunc(num) {

    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }

    return false;
}
