var hudPadding = 30;
var hudActif = false;
function DOM_HUD() {
if (navigateurEstIncompatible()) return false;
// ajout du div overlay à la fin du body
var overlay = document.createElement("div");
overlay.setAttribute('id', 'overlay');
overlay.style.opacity = '0';
document.body.insertBefore(overlay, document.body.childNodes[0]);
}
// WIMS OVERLAY *************************************************************************************************************
function DOM_HUD_WIMS() {
if (navigateurEstIncompatible()) return false;
// Recherche des liens
var liens, lien, sticky, reflet, icone = null;
liens = getElementsByClassName('lien_externe_reload(.*)');
for (i=0; i< liens.length; i++) { // boucle sur les liens
lien = liens[i];
if (lien.tagName.toLowerCase() == "a") {
lien.setAttribute('onclick', 'afficherOverlayWims();');
}
}
}
function afficherOverlayWims() {
if (navigateurEstIncompatible()) return false;
element = document.getElementById('hud_wims_actualiser');
if (element) {
hudCentrerElement(element);
hudAfficherOverlay()
element.style.display = 'block';
}
}
function masquerOverlayWims() {
//window.location.reload();
window.location.href = window.location.href;
}
// VIDEO INTRO OVERLAY *************************************************************************************************************
function afficherOverlayVideoIntro() {
if (navigateurEstIncompatible()) return false;
elementId = 'hud_video_intro';
element = document.getElementById(elementId);
if (element) {
hudActif = true;
hudCentrerElement(element);
hudAfficherOverlay()
setTimeout("hudAnimationOuverture(elementId)", 500);
}
}
function masquerOverlayVideoIntro() {
element = document.getElementById('hud_video_intro');
if (element) {
hudActif = false;
hudAnimationFermeture(element.id);
}
}
// AJOUT DES ELEMENTS *************************************************************************************************************
function hudCreerElement(lElement, lTitre, lLangue, lFeedbackObject, lElementWidth) { // Ajout de la class hud_element aux nodes qui ont un id
if (hudObjetEstValide(lElement)) {
// ajout de la classe et stockage d'un object de feedback different de l'element (si fourni)
addClassName(lElement, 'hud_element');
lElement.hudFeedbackObject = lFeedbackObject;
if (lElementWidth) { lElement.style.width = lElementWidth; }
desactiverAutocomplete(lElement);
// creation et ajout du titre
h = document.createElement("h3");
h.appendChild(document.createTextNode(lTitre));
lElement.insertBefore(h, lElement.firstChild);
// creation et ajout de la zone de boutons et du bouton annuler
boutons = document.createElement("div");
boutons.setAttribute('id', lElement.id+'_hud_boutons');
boutons.className = 'hud_boutons';
lElement.appendChild(boutons);
}
}
function hudAjouterBouton(lType, lElement, lTitre, lName, lLangue, lImg, lAction, lAppend, lOnClick) { // Ajout d'un bouton (annuler, enregistrer...) + stockage des objets
if (hudObjetEstValide(lElement)) {
boutons = document.getElementById(lElement.id+'_hud_boutons');
imgPath = 'images_css/boutons/'+lLangue+'/'+lImg;
if (lType == 'IMAGE') {
bouton = createImageLink(imgPath, "hudBoutonsAction(this)", lTitre, lAppend);
} else if (lType == 'SUBMIT') {
bouton = document.createElement("input");
bouton.setAttribute('type', 'image');
bouton.setAttribute('name', lName);
bouton.setAttribute('src', imgPath);
bouton.setAttribute('value', 'Valider');
} else {
return null;
}
bouton.hudElement = lElement;
bouton.hudAction = lAction;
bouton.hudAppend = lAppend;
if (lOnClick) { bouton.onclick = lOnClick; }
if (lAppend) { boutons.appendChild(bouton); }
return bouton;
}
return null;
}
function hudCreerBoutons(lElement, lInfosSubmit, lActionValider, lActionAnnuler, lLangue, lImg, lOnClick) { // Ajout des 2 boutons par défaut
hudAjouterBouton('IMAGE', lElement, lInfosSubmit['cancel'], '', lLangue, 'bouton_niveau4_annuler.png', lActionAnnuler, true, false);
hudAjouterBouton('SUBMIT', lElement, lInfosSubmit['value'], lInfosSubmit['name'], lLangue, 'bouton_niveau4_'+lImg+'.png', lActionValider, true, lOnClick);
}
function hudCreerBoutonLancement(lElement, lTitre, lAction, lLangue, lImg, lNiveau) { // creation du bouton de lancement du HUD (false => pas inseré dans bloc boutons)
return hudAjouterBouton('IMAGE', lElement, lTitre, '', lLangue, 'bouton_niveau'+lNiveau+'_'+lImg+'.png', lAction, false, false);
}
function hudCreerLancement(lElement, lTitre, lAction, lLangue, lImg, lNiveau, lId, lClass) { // creation du bouton de lancement du HUD et de son div
bouton = hudCreerBoutonLancement(lElement, lTitre, lAction, lLangue, lImg, lNiveau);
div = document.createElement("div");
div.setAttribute('id', lId);
div.setAttribute('class', 'hud_lancement');
if (lClass) { addClassName(div, lClass); }
div.appendChild(bouton);
return div;
}
// ACTIONS *************************************************************************************************************
function hudBoutonsAction(obj) { // appelé par click sur un des boutons hud
if (obj.hudAction) { obj.hudAction((obj.hudElement.hudFeedbackObject ? obj.hudElement.hudFeedbackObject : obj.hudElement)); } // appel du feedback avec element ou object feedback
if (!obj.hudAppend) { // bouton lancement (pas dans le bloc des boutons)
if (!hudActif) {
hudActif = true;
elementId = obj.hudElement.id;
//hudAfficherOverlay();
hudCentrerElement(obj.hudElement);
setTimeout("hudAnimationOuverture(elementId)", 500);
/*obj.hudElement.style.display = 'block';
obj.hudElement.style.opacity = 1;
obj.hudElement.style.zIndex = 9999;
obj.hudElement.style.position = 'absolute';*/
}
} else {
hudActif = false;
hudAnimationFermeture(elementId);
}
return false;
}
// ANIMATION ********************************************************************************************************
var z=0;
function hudAnimationOuverture(obj) { // animation d'ouverture
if(z==1){
element = document.getElementById(obj);
element.style.display = 'block';
//$(obj).effects({duration:1}).start({'opacity':[1,1]});
//$(obj).effects({duration:1500, transition:Fx.Transitions.Elastic.easeOut}).start({'padding':[0,hudPadding], 'margin':[0,-hudPadding]});
//setTimeout("hudFocus1erChamps(element)", 1501);
hudFocus1erChamps(element);
}
z=1;
}
function hudFocus1erChamps(obj) {
elementsForm = chercherElementsDeFormulaire(obj);
if (elementsForm.length > 0) {
if (elementsForm[0].type != 'image') { // AM : chercherElementsDeFormulaire renvoie d'abord les inputs => si pas d'input, renvoi le bouton submit => modifier en bouclant sur les champs et chercher autres que input
elementsForm[0].blur();
elementsForm[0].focus();
}
}
}
function hudAnimationFermeture(obj) { // animation de fermeture et masquage de l'overlay
tempVar = obj;
this._prepareIE("", "");
//$(obj).effects({duration:200}).start({'opacity':[1,0]});
str = "document.getElementById(tempVar).style.display = 'none';";
str = str + "document.getElementById(tempVar).style.position = 'relative';";
str = str + "document.getElementById(tempVar).style.top = '';";
str = str + "document.getElementById(tempVar).style.left = '';";
str = str + "document.getElementById(tempVar).style.padding = '0';";
str = str + "document.getElementById('overlay').style.display = 'none';";
str = str + "tempVar=false;";
setTimeout(str, 200);
chrono=null;
anime();
}
function hudCentrerElement(element) { // centrage d'un element
element.style.position = 'absolute';
element.style.zIndex = 9999;
tailleElement = getDimensions(element);
x = positionDocVisible().x+(tailleDocVisible().width - tailleElement.width)/2;
y = positionDocVisible().y+(tailleDocVisible().height - tailleElement.height)/3;
x = (x >= positionDocVisible().x ? x : positionDocVisible().x);
y = (y >= positionDocVisible().y ? y : positionDocVisible().y);
element.style.left = x+'px';
element.style.top = y+'px';
}
var k=0;
function hudAfficherOverlay() {
if(k==1){
this._setOverlay();
document.getElementById('overlay').style.opacity = '0.75';
document.getElementById('overlay').style.display = 'block';
}
k=1;
}
// UTILS *************************************************************************************************************
function hudObjetEstValide(lElement) { // verification de l'id de l'element
if (lElement) {
return (lElement.id != null && lElement.id != "");
}
return false;
}
function _setOverlay() {
if(navigator.appVersion.match(/\bMSIE\b/)) {
this._prepareIE("100%", "hidden");
//if (!navigator.appVersion.match(/\b7.0\b/)) window.scrollTo(0,0); // Disable scrolling on top for IE7
}
}
function _prepareIE(height, overflow){
var body = document.getElementsByTagName('body')[0];
body.style.height = height;
body.style.overflow = overflow;
var html = document.getElementsByTagName('html')[0];
html.style.height = height;
html.style.overflow = overflow;
}
// LOAD *******************************************************************************************************
addEvent(window,'load', function() { DOM_HUD();} );
addEvent(window,'load', function() { DOM_HUD_WIMS();} );
addEvent(window,'load', function() { afficherOverlayVideoIntro();} );