﻿////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	DATE DE CREATION: 20/01/2008 .::. DATE DE MISE A JOUR: 26/05/2009 .::. FICHIER: MSGBOX.JS .::. VERSION:1.1
//

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	MESSAGE OU BOITE DE DIALOGUE [ MsgBox ]															EN COURS
//	- INFO - 
//	Toujour mettre "MsgBox." suivi d'une des 11 types de message suivant: [ par ex: MsgBox.Info() ]
//	Sinon, vous risquez ne pas avoir afficher le message et l'envoi un erreur de script
//	La fonction 'MsgBoxInit()', initila de message et 
//	La fonction 'MsgBoxBtnCmd', Les boutons. Les boutons sera affiché que si la fonction existe par la fonction de départ.
//	La fonction 'MsgBoxShow', afficher le message au centré de la fenêtre
////////////////////////////////////////////////////////////////////////////////////////////////////////////
var MsgBox = {};

function MsgBoxInit(f_ttl){
$("winresizebox").style.width=document.body.offsetWidth;
$("TxtImg").style.display="none";
$("TxtPrompt").style.display="none";
$("TxtOnly").style.display="none";

$("shw_ok").style.display="none";
$("shw_yes").style.display="none";
$("shw_no").style.display="none";
$("shw_cancel").style.display="none";

$("box_tt").innerHTML=f_ttl;
$("win_close").onmouseover=function(){$("win_close").className="tool tool-toggle tool-close-over";}
$("win_close").onmouseout=function(){$("win_close").className="tool tool-toggle tool-close";}
$("win_close").onclick=function(){MsgBoxHide()}
Img_box="";
}

function MsgBoxShow(){
if(Img_box){$("TxtImg_img").innerHTML="<img src='img/ico/"+Img_box+".png' width=48 height=48>"}
//document.body.style.overflow='hidden';// Masquer le scroll (/!\ Bug dans FF/!\)
$("fond_mask").style.top=document.body.scrollTop;
$("fond_mask").style.width=document.body.offsetWidth;
$("fond_mask").style.height=document.body.offsetHeight;
$("IdMsgBox").style.display=""
size_x=document.body.clientWidth;
size_y=document.body.clientHeight;
MsgBoxIn=$("sizetable").offsetWidth+14;
$("winresizebox").style.width=MsgBoxIn+"px";// 	LARGEUR TOTAL DANS LA BOIOTE DE DIALOGUE
MsgBoxWidth=$("x-msg-box").offsetWidth;//					BOITE DE DIALOGUE
MsgBoxHeight=$("x-msg-box").offsetHeight;//					BOITE DE DIALOGUE


// Ces 2 lignes suivant sont ajustés pour le message en centré 
$("x-msg-box").style.top=[(size_y/2)-(MsgBoxHeight/2)+document.body.scrollTop];
$("x-msg-box").style.left=[(size_x/2)-(MsgBoxWidth/2)+document.body.scrollLeft];

$("shadow").style.width=[MsgBoxIn+15]+"px";
$("xstc").style.width=[MsgBoxIn-1]+"px";
$("xsmc").style.width=[MsgBoxIn-1]+"px";
$("xsbc").style.width=[MsgBoxIn-1]+"px";
$("xsc").style.height=[MsgBoxHeight-8]+"px";

$("IdMsgBox").style.display="";
DragMouse(true);
}


function MsgBoxHide(){
//document.body.style.overflow='';// Afficher le scroll (si le scroll est dépasser la limite de la page) (/!\ bug dans FF /!\)
$("IdMsgBox").style.display="none";//Masquer le message
$("winresizebox").style.width=document.body.offsetWidth;// BOITE DE DIALOGUE
MsgBoxHeight=document.body.offsetHeight// BOITE DE DIALOGUE	
DragMouse(false);
}

function MsgBoxBtnCmd(f_ok,f_yes,f_no,f_cancel){
if(f_ok || f_yes || f_no || f_cancel){$("ShowBtn").style.display="";}
if(f_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="";
	}
if(f_yes)
	{
	$("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="";
	}
if(f_no)
	{
	$("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="";
	}
if(f_cancel)
	{
	$("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)}
	}
}

//	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);
Img_box="error";
if(f_ttl==""){$("box_tt").innerHTML="Erreur"}
$("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();
$("TxtPrompt_repreq").focus();
}

//	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();
$("inpt_multiline").focus();
}

//	Textonly = Message simple [ seul un message et sans icône ]
//		f_ttl => Titre de message
//		f_txt => Un message
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
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
//	
//	f_bit => (binaire) activer => "true", sinon => "false"
////////////////////////////////////////////////////////////////////////////////////////////////////////////
var dragok = false;
function DragMouse(f_bit){
if(f_bit==true)
	{
	document.onmousedown=drags;document.onmouseup=new Function("DisplayDrag(0);dragok=false");
	}
else
	{
	document.onmousedown="";document.onmouseup="";
	}
}

function move(e){
if(!e){e=window.event;}
if(dragok)
	{
	$("x-msg-box").style.left=dx+e.clientX-x+"px";
	$("x-msg-box").style.top=dy+e.clientY-y+"px";
	return false;
	}
}

function drags(e){
if(!e){e=window.event;}
var temp=(typeof e.target!="undefined")?e.target:e.srcElement;
evclass=temp.className;
if(evclass=="window-header"||evclass=="window-header-text"||evclass=="panel-tc"||evclass=="panel-tr"||evclass=="panel-header-text")// Déplacer par la souris en utilisant la CLASS=
	{
	DisplayDrag(1);
	dragok=true;
	d=temp;
	dx=parseInt($("x-msg-box").style.left+0);
	dy=parseInt($("x-msg-box").style.top+0);
	x=e.clientX;
	y=e.clientY;
	document.onmousemove=move;
	return false;
	}
}

function DisplayDrag(f_bit){
if(f_bit==1)
	{
	$("shadow").style.display="none";
	$("sizetable").style.display="none";
	}
else
	{
	$("shadow").style.display="";
	$("sizetable").style.display="";
	}
}
