/***********************
 * Objet "ih" avec ses fonctions obligatoires.
 */
 
var ih = {

/* Active / désactive le Mode Debug. */
DEBUG : false,

/* référence aux frames. */
fFrameCadres : null,
fFramePlan : null,
fFrameContenu : null,
/* memoire des pages à charger en attendant que cadres.html soit chargée. */
fUrlToLoad : null,
fTargetToLoad : null,
fStatut : null,

/* Charge une page */
load : function (pUrl, pTarget) {
	var vMd=pTarget.substring(0,4);
	if(vMd=='main') {
		if(this.fFrameContenu) {			
			this.fFrameContenu.src = "../"+pUrl;
		} else  {
			this.fFrameCadres.src = "html/cadres.html";
			this.fUrlToLoad = pUrl;
			this.fTargetToLoad = pTarget;
		}
	} else if (vMd=='plan') {
		if(this.fFramePlan) {
			this.fFramePlan.src = "../"+pUrl;
		} else  {
			this.fFrameCadres.src = "html/cadres.html";
			this.fUrlToLoad = pUrl;
			this.fTargetToLoad = pTarget;
		}
	} else if (vMd=='accu') {
		this.fFramePlan = null;
		this.fFrameContenu = null;
		this.fMarge = "";
		this.fFrameCadres.src = pUrl;
	} else if (vMd=='impr') {
		if(ut.ns6){
			pUrl='../'+pUrl;
		}
		window.open(pUrl, 'impression', 'width=650, height=500, status=no, toolbar=no, location=no, menubar=no, scrollbars=yes');
	}  else if (vMd=='subp') {
		try{window.cadres.loadSubPage(pUrl, pTarget);}catch(e){if(ih.DEBUG)alert("loadSubPage:"+e.description);}
	} else {
		if(this.DEBUG) alert("Le target '"+pTarget+"' au chargement de la page '"+pUrl+"' est inconnu.");
	}
},

/** Quitte la prescription. L'univers doit être appelé en premier qui appelle à son tour l'Ihm. */
quit :function () {
	if(confirm("Voulez vous réellement quitter la formation?")){
		un.xQuit();
	}
},

/** Retour à l'accueil. L'univers doit être appelé en premier qui appelle à son tour l'Ihm. */
retouraccueil :function () {
	un.xRetouraccueil();
	ih.load('co/a61374.html','accueil.html.wm');;
},

/** Enregistre les paramètres de l'IHM avant de quitter. Ces paramètres seront réexploités dans ih.xInit(). */
xSaveBeforeQuit :function () {
	un.setVal("sc.ih.enCours.url", (this.fPageUrlMain)? this.fPageUrlMain : "");
	un.setVal("sc.ih.enCours.modele", (this.fPageModeleMain)? this.fPageModeleMain : "");
},


/** Init du contexte. L'univers doit être appelé en premier qui appelle à son tour l'Ihm. */
xInit : function () {
	this.fFrameCadres = document.getElementById("cadres");
	this.fFramePlan = null;
	this.fFrameContenu = null;
	//this.retouraccueil();
	var vUrl = un.getVal("sc.ih.enCours.url");
	var vModele = un.getVal("sc.ih.enCours.modele");
	if(vUrl && vModele) {
// avant c'était comme ça (ligne en-dessous) on a ajouté sustring(1) car sinon, quand on revenait
// sur une page après avoir quitté le hta, les liens vers les ressources de cette page étaient mal formés	
//		this.load(vUrl, vModele);
		this.load(vUrl.substring(1), vModele);
	} else {
		this.retouraccueil();
	}
},

/** Clos l'IHM (empeche toute nouvelle manipulation exemple : écran blanc). Utile en mode LMS. Appelée par l'univers. */
xClose : function () {
	this.fFrameCadres.src = "about:blank";
	window.bordh.document.location.href = "angle.html";
	window.bordd.document.location.href = "angle.html";
	window.bordb.document.location.href = "angle.html";
	window.bordg.document.location.href = "angle.html";
}

}//Fin de l'objet ih.


/***********************
 * Fonctions spécifiques pour cette IHM.
 */

 /* Méthode appelée par la page cadres.html indiquant qu'elle chargée. */
 ih.cadresLoaded = function () {
	this.fFramePlan = window.cadres.document.getElementById("plan");
	this.fFrameContenu = window.cadres.document.getElementById("contenu");
	//this.setMarge("plan");
	if(this.fUrlToLoad) ih.load(this.fUrlToLoad, this.fTargetToLoad);
 }
 
/** Fonctions de navigation : Demande la modifictaion de la Marge en cours de l'ihm. */
ih.fMarge = ""; // Valeurs : "plan", "outils", "annot" ou "" pour éliminer tous les boutons	
ih.setMarge = function(pCode, pForceMain){	
	switch(pCode){
		case "plan" : {
			ih.load('co/a87543.html','plan.html.wm');
			if(pForceMain && this.fMarge!="annot") {
				if(this.fPageUrlMain) {					
					this.load(this.fPageUrlMain, this.fPageModeleMain);
				} else {
					retouraccueil();
				}
			}
			break;
		}
		case "outils" : {
			ih.load('co/a8275.html','plan.html.wm');
			if(pForceMain) {
				if(this.fPageUrlMainOutils) {
					this.load(this.fPageUrlMainOutils, this.fPageModeleMainOutils);
				} else {
					ih.load('co/a38298.html','main.html.wm');
				}
			}
			break;
		}
		case "annot" : {
			ih.load("html/annot.html", "plan");
			if(pForceMain && this.fMarge!="plan") {
				if(this.fPageUrlMain) {
					this.load(this.fPageUrlMain, this.fPageModeleMain);
				} else {
					retouraccueil();
				}
			}
			break;
		}
		default :{
			ih.fMarge = "";
			//ih.load("html/margeVide.html", "plan");
		}
	}
}

/** Fonctions de navigation : informe du changement de la marge.*/
ih.fireChangeMarge = function(pCode){
	this.fMarge = pCode;
	try{window.bordg.changeMarge();}catch(e){if(ih.DEBUG)alert("fireChangeMarge:"+e.description);};
}

/** Fonctions de navigation : aller à la page suivante. */
ih.loadNext = function(){
	try{window.cadres.goToNext();}catch(e){if(ih.DEBUG)alert("loadNext:"+e.description);};
}

/** Fonctions de navigation : affiche le bouton suivant. */
ih.fShowNext = true;
ih.showNext = function(pValue){
	ih.fShowNext = pValue;
	try{window.bordd.showNext();}catch(e){if(ih.DEBUG)alert("showNext:"+e.description);};
}
/** Fonctions de navigation : aller à la page précédente. */
ih.loadPrec = function(){
	try{window.cadres.goToPrec();}catch(e){if(ih.DEBUG)alert("loadPrec:"+e.description);};
}
/** Fonctions de navigation : affiche le bouton précédent. */
ih.fShowPrec = true;
ih.showPrec = function(pValue){
	ih.fShowPrec = pValue;
	try{window.bordd.showPrec();}catch(e){if(ih.DEBUG)alert("showPrec:"+e.description);};
}

/** Fonctions d'impression : affiche le bouton impression. */
ih.fShowPrint = true;
ih.showPrint = function(pValue){
	ih.fShowPrint = pValue;
	try{window.bordb.showPrint();}catch(e){if(ih.DEBUG)alert("showPrint:"+e.description);};
}

/** Fonction d'impression. */

ih.imprimer = function() {
	try{window.cadres.imprimer();}catch(e){}
}

/** Fonctions de navigation : Accès à la page d'aide */
ih.aide = function(){
	if(ut.ie) {
//		window.showModalDialog("aide/index.html","","dialogHeight:"+(this.fContenuHeight-100)+"px; dialogWidth:"+(this.fContenuWidth+200)+"px; edge:Raised; center:Yes; help:No; resizable:No; status:No;");
		window.showModalDialog("aide/index.html","","dialogHeight:520px; dialogWidth:680px; edge:Raised; center:Yes; help:No; resizable:No; status:No;");
	} else {
//		var vFen = window.open("aide/index.html", "aide", "height="+(this.fContenuHeight-100)+",width="+(this.fContenuWidth+200)+",titlebar=no,status=no,resizable=no,menubar=no,location=no");		
		var vFen = window.open("../aide/index.html", "aide", "height=520,width=680,titlebar=no,status=no,resizable=no,menubar=no,location=no");
		vFen.focus();
	}
}


 /* Variable partagée de l'IHM : Tailles des frames (définies dans la frameset). */
ih.fContenuWidth = 0;
ih.fContenuHeight = 0;
ih.fPlanWidth = 0;
ih.fPlanHeight = 0;

 

/** Variable partagée de l'IHM : Titre de l'écran. */
ih.fTitre = "&nbsp;";
ih.setTitre = function(pValue){
	this.fTitre = pValue;
}

/** Variable partagée de l'IHM : Titre de la marge gauche. */
//ih.fTitreMarge = "&nbsp;";
//ih.setTitreMarge = function(pValue){
//	this.fTitreMarge = pValue;
//}

/** Variable partagée de l'IHM : Image de décoration. */
ih.fDeco = "";
ih.setDeco = function(pValue){
	if(pValue){
		this.fDeco=pValue;
	}else{
		this.fDeco="";
	}
	try{window.cadres.changeDeco();}catch(e){if(ih.DEBUG)alert("setDeco:"+e.description);};
}

/** Variable partagée de l'IHM : Type de la page principale en cours. */
ih.fTypeMain = null;
/** Variable partagée de l'IHM : Url de la page principale en cours. */
ih.fPageUrlMain = null;
/** Variable partagée de l'IHM : Modele de la page principale en cours. */
ih.fPageModeleMain = null;
/** Variable partagée de l'IHM : Url de la page principale en cours dans le menu Outils. */
ih.fPageUrlMainOutils = null;
/** Variable partagée de l'IHM : Modele de la page principale en cours dans le menu Outils. */
ih.fPageModeleMainOutils = null;
ih.setPageMain = function(pUrl, pModele, pType){
	this.fTypeMain = pType;
	if("outils"==pType.substring(0,6)) {
		this.fPageUrlMainOutils = pUrl;
		this.fPageModeleMainOutils = pModele;
	} else if("accueil"!=pType){			
		this.fPageUrlMain = pUrl;
		this.fPageModeleMain = pModele;
	}
}

/** Variable partagée de l'IHM : Code de l'agent de l'écran principal. */
ih.fCodeAgent = null;
/** Variable partagée de l'IHM : Code de l'agent dans sa hiérarchie de l'écran principal. */
ih.fCodeAgentDansHier = null;
/** Date d'affectation de ce code pour calcul du temps passé.*/
ih.fCodeTimeStamp = 0;
ih.setCodesAgent = function(pCodeAgent, pCodeAgentDansHier){
	var vTs = new Date().getTime();
	if(ih.fCodeTimeStamp>0){
		un.setElapseTime(this.fCodeAgentDansHier, vTs - ih.fCodeTimeStamp);
	}
	ih.fCodeTimeStamp = vTs;
	this.fCodeAgent = pCodeAgent;
	this.fCodeAgentDansHier = pCodeAgentDansHier;
}


/** Diffuse l'évenement de changement de pages.*/
ih.fireChangePage = function(){
	if(this.fTypeMain == "accueil") {
		try{window.bordg.changeMarge();}catch(e){if(ih.DEBUG)alert("fireChangePage:"+e.description);};
	} else {
		var vEcranOutil = (this.fTypeMain.substring(0,6) == "outils");
		if(! vEcranOutil && (ih.fMarge=="outils" || ih.fMarge=="")) {
			this.setMarge("plan");
		} else if (vEcranOutil && (ih.fMarge=="plan" || ih.fMarge=="")) {
			this.setMarge("outils");
		}
	}
	try{window.cadres.changePage();}catch(e){if(ih.DEBUG)alert("fireChangePage.plan:"+e.description);};
	try{window.bordh.changePage();}catch(e){if(ih.DEBUG)alert("fireChangePage.bordh:"+e.description);};
	un.setFlag(this.fCodeAgentDansHier, 2);
}

/** Diffuse l'évenement de changement d'un flag. (méthode appelée par un.setFlag(). */
ih.fireChangeFlag = function(pIdPage, pValeur){
	try{window.cadres.changeFlag(pIdPage, pValeur);}catch(e){if(ih.DEBUG)alert("changeFlag:"+e.description);};
}

/** Mode d'affichage du player d'évaluation.
 * 0 : mode normal
 * 1 : mode avec notes
 * 3 : mode avec notes et solutions
 */
ih.fPlayerMode = 0;
ih.setPlayerMode = function (pMode) {
	this.fPlayerMode = pMode;
}