////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	DATE DE CREATION: 20/01/2008 .::. FICHIER: MSGBOX.JS .::. EMAIL: sebmoine5485@hotmail.fr
//

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	IDENTIFICATEUR [ ID ]
//	- INFO - 
//	C'est un identificateur, il se trouve généralement xxx d'où '<div id=xxx [...]>TEXTE</div>'
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function $(f_d){return document.getElementById(f_d)}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	MESSAGE OU BOITE DE DIALOGUE [ MsgBox ]
//	- INFO - 
//	Toujour mettre "MsgBox." suivi d'une des 11 types de message suivant: [ par ex: MsgBox.Info() ]
//	> Voir les descriptions de chaque fonction <
//	Sinon, vous risquez ne pas avoir afficher le message et l'envoi un erreur de script
//	La fonction 'MsgBoxInit()', initial de message
//	La fonction 'MsgBoxBtnCmd()', Les boutons sera affiché que si la fonction existe.
//	La fonction 'MsgBoxShow()', afficher le message de dialogue
//	La fonction 'MsgBoxHide()', cacher le message de dialogue
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function MsgBoxInit(f_ttl){
$("ShowBox").style.display="";$("TxtOnly").style.display="none";$("TxtImg").style.display="none";$("TxtPrompt").style.display="none";$("TxtTextarea").style.display="none";// Masquer d'abord.
//$("TxtOnly_txt").innerHTML="";$("TxtImg_img").innerHTML="";$("TxtImg_txt").innerHTML="";$("TxtPrompt_txt").innerHTML="";$("TxtTextarea_txt").innerHTML="";// Texte vide
$("TxtPrompt_repreq").value="";$("inpt_multiline").value="";// Formulaire en vide
$("box_tt").innerHTML=f_ttl;
$("win_close").onmouseover=function(){$("win_close").className="tool tool-toggle tool-close-over"}// Bouton croix, sur le curseur
$("win_close").onmouseout=function(){$("win_close").className="tool tool-toggle tool-close"}// Bouton croix, hors curseur
$("win_close").onclick=function(){MsgBoxHide()}// Cliquer le croix
Img_box="";
}

function MsgBoxShow(){
if(Img_box){$("TxtImg_img").innerHTML="<img src='images/"+Img_box+".png' width=48 height=48>"}// Afficher une icône si le variable <Img_box> est disponible, la source image est ./img/...
size_x=document.body.offsetWidth;// Total en largeur
size_y=document.body.offsetHeight// Total en hauteur

if(navigator.appName!="Netscape") {
	winresizebox.style.width=sizetable.offsetWidth+8+"px";// Largeur total dans la boite de dialogue
}

MsgBoxWidth=$("msg-box").offsetWidth
MsgBoxHeight=$("msg-box").offsetHeight

// Ces 4 lignes suivant sont ajustés pour le message en centré 
$("msg-box").style.top=[(size_y/2)-(MsgBoxHeight/2)];
$("msg-box").style.left=[(size_x/2)-(MsgBoxWidth/2)];
$("shadow").style.width=[MsgBoxWidth+2]
$("shadow").style.height=[MsgBoxHeight+2]
DragMouse(true);
}

function MsgBoxHide(){
$("ShowBox").style.display="none";
DragMouse(false);
}

function MsgBoxBtnCmd(f_ok,f_yes,f_no,f_cancel){
$("shw_ok").style.display="none";$("shw_yes").style.display="none";$("shw_no").style.display="none";$("shw_cancel").style.display="none";// Masquer les bouton
if(f_ok)// Charger le bouton OK
	{
	$("btn_ok").onmouseover=function(){$("shw_ok").className="btn_over";}
	$("btn_ok").onmousedown=function(){$("shw_ok").className="btn_click";}
	$("btn_ok").onmouseout=function(){$("shw_ok").className="";}
	$("btn_ok").onclick=function(){eval(f_ok);}
	$("shw_ok").style.display="";
	}
else{$("btn_ok").onclick=function(){}}
if(f_yes)// Charger le bouton OUI
	{
	$("btn_yes").onmouseover=function(){$("shw_yes").className="btn_over";}
	$("btn_yes").onmousedown=function(){$("shw_yes").className="btn_click";}
	$("btn_yes").onmouseout=function(){$("shw_yes").className="";}
	$("btn_yes").onclick=function(){eval(f_yes)}
	$("shw_yes").style.display="";
	}
else{$("btn_no").onclick=function(){}}
if(f_no)// Charger le bouton NON
	{
	$("btn_no").onmouseover=function(){$("shw_no").className="btn_over";}
	$("btn_no").onmousedown=function(){$("shw_no").className="btn_click";}
	$("btn_no").onmouseout=function(){$("shw_no").className="";}
	$("btn_no").onclick=function(){eval(f_no)}
	$("shw_no").style.display="";
	}
else{$("btn_no").onclick=function(){}}
if(f_cancel)// Charger le bouton ANNULER
	{
	$("btn_cancel").onmouseover=function(){$("shw_cancel").className="btn_over";}
	$("btn_cancel").onmousedown=function(){$("shw_cancel").className="btn_click";}
	$("btn_cancel").onmouseout=function(){$("shw_cancel").className="";}
	$("shw_cancel").style.display="";
	$("btn_cancel").onclick=function(){eval(f_cancel)}
	}
else{$("btn_cancel").onclick=function(){}}
}

var MsgBox = {};// Fonction initial de MsgBox, ne rien mettre entre '{ et '}'.

/*
 - EXEMPLE DES FONCTIONS POUR LE MESSAGE DE BIALOGUE -

01 MsgBox.Info=function(f_ttl,f_txt,f_fnt){             > Fonction initial
02 MsgBoxInit(f_ttl);                                   > Charger avant de mettre la position message en centrer
03 Img_box="info";                                      > Mettre variable <Img_box> en icône [ icône doît être identique à une fichier image en format PNG ]
04 $("TxtImg").style.display="";                        > Afficher image icône
05 $("TxtImg_txt").innerHTML=f_txt;                     > Mettre un texte dans l'identificateur de <TxtImg_txt>
06 MsgBoxBtnCmd("MsgBoxHide();"+f_fnt,"","","");        > Afficher les boutons
07 MsgBoxShow();                                        > Afficher final de message dialogue
08 }

Vous pouvez recopier cette fonction et en modifiant seulement la ligne 03, 04, 05 et 06
> Ligne 02 et 06 et 07 sont obligatoire de garder pour la meilleur résultat <
*/

//	Info = Information
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction (si existe)
MsgBox.Info=function(f_ttl,f_txt,f_fnt){
MsgBoxInit(f_ttl);
Img_box="info";
$("TxtImg").style.display="";
$("TxtImg_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();"+f_fnt,"","","");
MsgBoxShow();
}

//	Alert = Avertissement
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction après "OK"
MsgBox.Alert=function(f_ttl,f_txt,f_fnt){
MsgBoxInit(f_ttl);
Img_box="exclamation";
$("TxtImg").style.display="";
$("TxtImg_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();"+f_fnt,"","","");
MsgBoxShow();
}

//	Confirm = Confirmation
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fny => Appel un fonction après "OUI"
MsgBox.Confirm=function(f_ttl,f_txt,f_fny){
MsgBoxInit(f_ttl);
Img_box="question";
$("TxtImg").style.display="";
$("TxtImg_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();"+f_fny,"","","MsgBoxHide()");
MsgBoxShow();
}

//	Error = Erreur de fonctionnement ou erreur connu
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction apèrs "OK"
MsgBox.Error=function(f_ttl,f_txt,f_fnt){
MsgBoxInit(f_ttl);
if(f_ttl==""){$("box_tt").innerHTML="Erreur"}
Img_box="error";
$("TxtImg").style.display="";
$("TxtImg_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();"+f_fnt,"","","");
MsgBoxShow();
}

//	Stop = Problème s'est produit ou erreur de procédure
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction après "OK"
MsgBox.Stop=function(f_ttl,f_txt,f_fnt){
MsgBoxInit(f_ttl);
if(f_ttl==""){$("box_tt").innerHTML="Erreur"}
Img_box="stop";
$("TxtImg").style.display="";
$("TxtImg_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();"+f_fnt,"","","");
MsgBoxShow();
}

//	YesNo = Confirmation avant de continuer
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fny => Appel un fonction après "OUI"
//		f_fnn => Appel un fonction après "NON"
MsgBox.YesNo=function(f_ttl,f_txt,f_fny,f_fnn){
MsgBoxInit(f_ttl);
Img_box="question"
$("TxtImg").style.display="";
$("TxtImg_txt").innerHTML=f_txt;
if(!f_fny){f_fny="";}
if(!f_fnn){f_fnn="";}
MsgBoxBtnCmd("","MsgBoxHide();"+f_fny,"MsgBoxHide();"+f_fnn,"MsgBoxHide();");
MsgBoxShow();
}

//	Prompt = Message de saisi
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction après "OK"
MsgBox.Prompt=function(f_ttl,f_txt,f_fnt){
MsgBoxInit(f_ttl);
$("TxtPrompt").style.display=""
$("TxtPrompt_txt").innerHTML=f_txt;
MsgBoxBtnCmd(f_fnt+";MsgBoxHide();","","","MsgBoxHide()");
MsgBoxShow();
}

//	Multiline = Message et saisi libre
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction après "OK"
//		f_fnc => Appel un fonction après "ANNULER"
MsgBox.Multiline=function(f_ttl,f_txt,f_fnt,f_fnc){
MsgBoxInit(f_ttl);
$("TxtTextarea").style.display="";
$("TxtTextarea_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();"+f_fnt,"","","MsgBoxHide();"+f_fnc);
MsgBoxShow();
}

//	Textonly = Message simple [ seul un message et sans icône ]
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction
MsgBox.Textonly=function(f_ttl,f_txt){
MsgBoxInit(f_ttl);
$("TxtOnly").style.display="";
$("box_tt").innerHTML=f_ttl;
$("TxtOnly_txt").innerHTML=f_txt;
MsgBoxBtnCmd("MsgBoxHide();","","","");
MsgBoxShow();
}

//	TextNoNutton = Message simple [ seul un message et sans icône et sans bouton ]
//		f_ttl => Titre de message
//		f_txt => Un message
//		f_fnt => Appel un fonction
MsgBox.TextNoButton=function(f_ttl,f_txt){
MsgBoxInit(f_ttl);
$("TxtOnly").style.display="";
$("box_tt").innerHTML=f_ttl;
$("TxtOnly_txt").innerHTML=f_txt;
MsgBoxShow();
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	ACTIVER/DESACTIVER LE CURSEUR EN DEPLACEMENT
//	- INFO -
//	Activer ou pas le menu glissant dans la selection active
//	La fonction 'DragMouse()', utilise la variatoin binaire <true/false> pour activer/désactiver le mouvement comme dans l'exemple <DragMouse(true)> ou <DragMouse(false)>
//	La fonction 'drags()' detecte le clique pour déplacer par la <class>
//	La fonction 'MoveMouseBox(e)' indique la position de curseur [Ne rien modifier, sinon la position sont irrégulier]
////////////////////////////////////////////////////////////////////////////////////////////////////////////
var ie=document.all;
var isdrag=false;
var x,y;
var dobj;

var dragapproved=false
var z,x,y
function move(){
if(event.button==1&&dragapproved)
	{
	$("msg-box").style.pixelLeft=temp1+event.clientX-x
	$("msg-box").style.pixelTop=temp2+event.clientY-y
	return false
	}
}

function drags(){
if(!document.all){return}
evclass=event.srcElement.className
//alert(evclass);
if(evclass=="win-header" || evclass=="win-tl" || evclass=="win-tc" || evclass=="win-tr" || evclass=="win-header-text")
	{
	dragapproved=true
	temp1=$("msg-box").style.pixelLeft
	temp2=$("msg-box").style.pixelTop
	x=event.clientX
	y=event.clientY
	document.onmousemove=move}
}

document.onmousedown=drags
document.onmouseup=new Function("dragapproved=false")

function MoveMouseBox(e){
if (isdrag)
	{
	dobj.style.left = tx + event.clientX - x;
	dobj.style.top  = ty + event.clientY - y;
	return false;
	}
}

function MouseClick(e){
alert();
var fobj = event.srcElement;
var topelement = "BODY";
//alert(true);
while (fobj.tagName != topelement && fobj.className != "dragmsgbox"){fobj = fobj.parentElement;}
if (fobj.className=="dragmsgbox")
	{
	isdrag = true;
	dobj = fobj;
	tx = parseInt(dobj.style.left+0,10);
	ty = parseInt(dobj.style.top+0,10);
	x = event.clientX;
	y = event.clientY;
	document.onmousemove=MoveMouseBox;
	return false;
	}
}

function DragMouse(f_bit){
if(f_bit==true)
	{
	document.onmousedown=drags;
	document.onmouseup=new Function("dragapproved=false")
	}
else
	{
	document.onmousedown="";
	document.onmouseup="";
	}
}