/*****************************************************************
fichier : browse.js
	librairie utilisee pour : 
		la navigation dans les listes paginees
		les submit
		l'ouverture d'une popup
	@creation 29/04/2003
	@version 1.0
*****************************************************************/


/*****************************************************************
variable globale javascript pour empecher les submits multiples
*****************************************************************/
var isSubmit=false;
var txtConfirmationSubmit="";
var txtConfirmationF5="";
var b_browseSubmit=false;
var b_browseAnswer=false;

function browse_confirmSubmit() {
	b_browseAnswer=b_browseSubmit;
	b_browseSubmit=true;
	if (b_browseAnswer) {
		b_browseAnswer=!confirm(txtConfirmationSubmit)
	}
	return !b_browseAnswer;
}
function browse_f5() {
	if (event.keyCode==116) {
		if (confirm(txtConfirmationF5)) {
			event.keyCode=116
			
		}else{
			event.keyCode=0;
				window.event.returnValue=false;	
		}
	}
}



    //*************************************************************************
    //
    // bloque le combo Ctrl+N sur uen session explorer
    //
    //@return false si Ctrl+N, true dans le cas contraire.
    //
    //*************************************************************************
   
function browse_blockDuplicateSession(){
  if(event.ctrlKey){ //Touche Ctrl enfoncée
    if((event.keyCode ==  78) || (event.keyCode == 104)){ //touche n ou N  enfoncée
      event.returnValue = false;
	}
  }
}


document.onkeydown =browse_blockDuplicateSession;



/*****************************************************************
But : submit protege
	@param String form : nom du formulaire
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_posterFormulaire(form) {
	if (!isSubmit) {
		try{
			document.forms[form][0].submit();
			isSubmit=true;
		}catch(e){
		}
		try{
			document.forms[form].submit();
			isSubmit=true;
		}catch(e){
		}
	}
}

/*****************************************************************
But : ouverture d'une popup de recherche
	@param String dir : nom du target (ex "/webApps/popup.do")
	@param String form : nom du formulaire (ex "document.loginForm")
	@param Array tabChamps : liste des inputs pour la fonction de retour
		(ex : tabChamp=new Array(); tabChamp[0]="login"; tabChamp[1]="password";)
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_openPopup(cible, formulaire, input) {
	var target="";
	target=cible+"?init=true"
	for(var i=0; i<input.length; i++) {
		target=target+"&";
		target=target+input[i]+"="+eval("document."+formulaire+"."+input[i]+".value");
	}
	window.open(target, 'SearchWindow', 'toolbar=no, status=no, menubar=no, scrollbars=no, directories=no, localisation=no, resizable=no, height=600, width=800, left=100, top=5');
	return true;
}

/*****************************************************************
But : fermeture d'une fenetre de message
*****************************************************************/
function valider(ret) {
	window.returnValue=ret;
	window.close();
}
/*****************************************************************
But : ouverture d'une popup de recherche
	@param String dir : nom du target (ex "/webApps/popup.do")
	@param String form : nom du formulaire (ex "document.loginForm")
	@param Array tabChamps : liste des inputs pour la fonction de retour
		(ex : tabChamp=new Array(); tabChamp[0]="login"; tabChamp[1]="password";)
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function kb_onclick(input) {
	if (event.keyCode==13) {
		input.onclick()
	}
	event.keyCode=0;
	window.event.returnValue=false;
}

/*****************************************************************
But : ouverture d'une popup de recherche
	@param String dir : nom du target (ex "/webApps/popup.do")
	@param String form : nom du formulaire (ex "document.loginForm")
	@param Array tabChamps : liste des inputs pour la fonction de retour
		(ex : tabChamp=new Array(); tabChamp[0]="login"; tabChamp[1]="password";)
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function kb_ondblclick(input) {
	if (event.keyCode==13) {
		input.ondblclick()
	}
	event.keyCode=0;
	window.event.returnValue=false;
}

/*****************************************************************
But : on deplace le document
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_gotoLocation(page) {
	document.location=page
}

/*****************************************************************
But : tri d'un SmartVector
	@param String form : nom du formulaire
	@param String colonne : nom de la colonne de tri
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function sortBy(form, colonne) {
	try {
		document.forms[form][0].elements["sortCol"].value=colonne;
		document.forms[form][0].elements["navigationMode"].value=1;
	
	}catch(e){
	}
	try {
		document.forms[form].elements["sortCol"].value=colonne;
		document.forms[form].elements["navigationMode"].value=1;
	}catch(e){
	}
	browse_posterFormulaireNavigation(form);
}



/*****************************************************************
But : positione la SmartVector sur la page "page"
	@param String form : nom du formulaire
	@param String page : page recherchee
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_gotoPage(form, page) {
	try {
		document.forms[form][0].elements["gotoPage"].value=page;
		document.forms[form][0].elements["navigationMode"].value=2;
	}catch(e){
	}
	try {
		document.forms[form].elements["gotoPage"].value=page;
		document.forms[form].elements["navigationMode"].value=2;
	}catch(e){
	}
	browse_posterFormulaireNavigation(form);
}
/*****************************************************************
But : positione la SmartVector sur la page "page" et mémorise les employés
	  sélectionnées
	@param String form : nom du formulaire
	@param String page : page recherchee
	@author ATAR
	@version 1.0
*****************************************************************/
function browse_gotoPageWithMemory(form, page) {
	for (var i=0; i<nav_objetSelected.length;i++) {
		if (document.forms[form].elements["nav_objetSelected_global"].value==''){
			var newValue = nav_objetSelected[i];
			try {
			document.forms[form][0].elements["nav_objetSelected_global"].value=newValue;
			}catch(e){
			}
			try {
			document.forms[form].elements["nav_objetSelected_global"].value=newValue;
			}catch(e){
			}
		}else{
			var newValue = document.forms[form].elements["nav_objetSelected_global"].value+"|"+nav_objetSelected[i];
			try {
			document.forms[form][0].elements["nav_objetSelected_global"].value=newValue;
			}catch(e){
			}
			try {
			document.forms[form].elements["nav_objetSelected_global"].value=newValue;
			}catch(e){
			}			
		}
	}
	try {
		document.forms[form][0].elements["gotoPage"].value=page;
		document.forms[form][0].elements["navigationMode"].value=2;
	}catch(e){
	}
	try {
		document.forms[form].elements["gotoPage"].value=page;
		document.forms[form].elements["navigationMode"].value=2;
	}catch(e){
	}
	browse_posterFormulaireNavigation(form);
}


/*****************************************************************
But : positione la SmartVector sur la page "page"
	@param String form : nom du formulaire
	@param String page : page recherchee
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_gotoNextPage(form) {
	var t=document.forms[form].elements["gotoPage"].value;
	document.forms[form].elements["gotoPage"].value=eval(t+"+1")
	browse_posterFormulaire(form);
}

/*****************************************************************
But : positione la SmartVector sur la page "page"
	@param String form : nom du formulaire
	@param String page : page recherchee
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_gotoPrevPage(form) {
	var t=document.forms[form].elements["gotoPage"].value;
	document.forms[form].elements["gotoPage"].value=eval(t+"-1")
	browse_posterFormulaire(form);
}

/*****************************************************************
But : submit protege
	@param String form : nom du formulaire
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_posterFormulaireNavigation(form) {
	if (!isSubmit) {
		try {
			document.forms[form].elements['id'].value=null;
		}catch(e) {
		}
		try{
			document.forms[form][0].elements["method"].value=document.forms[form][0].elements["jsMethodNoAction"].value;				
			document.forms[form][0].submit();
			isSubmit=true;
		}catch(e) {
		}
		try{
			document.forms[form].elements["method"].value=document.forms[form].elements["jsMethodNoAction"].value;				
			document.forms[form].submit();
			isSubmit=true;
		}catch(e) {
		}
	}
}




/*****************************************************************
But : affichage d'un popup si en cours de transmission
	@param String form : nom du formulaire
	@author DTHO
	@creation 29/04/2003
	@version 1.0
*****************************************************************/
function browse_wait() {
	var versionIE=navigator.appVersion
	versionIE=versionIE.substring(22,25);
	if (eval(versionIE)>=5.5) {
		dialog_showMsg();
		document.body.style.cursor="wait";
		document.onclick=dialog_showMsg;
	}
}


/*****************************************************************
But : affichage d'une progress_bar si formulaire en cours d'envoi
	@author VJAC
	@creation 22/05/2007
	@version 1.0
*****************************************************************/

var N=-1;
var oPopup;


function createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,count,action){

oPopup=window.createPopup();
var t='<div id="_xpbar'+(++N)+'" style="visibility:visible; position:relative; overflow:hidden; width:'+w+'px; height:'+h+'px; background-color:'+bgc+'; border-color:'+brdC+'; border-width:'+brdW+'px; border-style:solid; font-size:1px;">';
t+='<span id="blocks'+N+'" style="left:-'+(h*2+1)+'px; position:absolute; font-size:1px">';
for(i=0;i<blocks;i++){
t+='<span style="background-color:'+blkC+'; left:-'+((h*i)+i)+'px; font-size:1px; position:absolute; width:'+h+'px; height:'+h+'px; '
t+='filter:alpha(opacity='+(100-i*(100/blocks))+')';
t+='"></span>';
}
t+='</span></div>';
oPopup.document.body.innerHTML=t;

var bA=oPopup.document.getElementById('blocks'+N);

bA.bar=oPopup.document.getElementById('_xpbar'+N);

bA.blocks=blocks;
bA.N=N;
bA.w=w;
bA.h=h;
bA.speed=speed;
bA.ctr=0;
bA.count=count;
bA.action=action;

bA.showBar=function(){
this.bar.style.visibility="visible";
}

bA.hideBar=function(){
this.document.body.style.visibility="hidden";
}
bA.tid=setInterval('startBar('+N+')',speed);
return oPopup;
}


function startBar(bn){

var t=oPopup.document.getElementById('blocks'+bn);
if(parseInt(t.style.left)+t.h+1-(t.blocks*t.h+t.blocks)>t.w){
t.style.left=-(t.h*2+1)+'px';
t.ctr++;
if(t.ctr>=t.count){
eval(t.action);
t.ctr=0;
}}else t.style.left=(parseInt(t.style.left)+t.h+1)+'px';
}


function browse_progress(){
		var bar = createBar(320,24,'white', 1,'black', 'green', 85,7,2,"");

		var height=0;
		var width=0;
		try {
			height=document.body.clientHeight;
			width=document.body.clientWidth;
		}catch(ex){
			height=768;
			width=1024;
		}
		
		bar.show(width/2-125,height/2-12,320,24, document.body)
		document.body.style.cursor="wait";
		//document.onclick=createBar;
}


/*****************************************************************
But : submit protege
	@param String form : nom du formulaire
	@param String idTable : nom de la table dans le formulaire
	@author Di08331
	@creation 18/11/2004
	@version 1.0
*****************************************************************/
function browse_posterFormulaireNavigationOnTable(form, idTable) {	
	var id = idTable+".id";	
	if (!isSubmit) {
		try {
					
			document.forms[form].elements[id].value=null;
		}catch(e) {		
		}
		try{
			document.forms[form][0].elements["method"].value=document.forms[form][0].elements["jsMethodNoAction"].value;				
			document.forms[form][0].submit();
			isSubmit=true;
		}catch(e) {
		}
		try{
			document.forms[form].elements["method"].value=document.forms[form].elements["jsMethodNoAction"].value;				
			document.forms[form].submit();
			isSubmit=true;
		}catch(e) {
		}
	}
}

/*****************************************************************
But : positione la SmartVector sur la page "page" et mémorise les lignes
	  sélectionnées
	@param String form : nom du formulaire
	@param String page : page recherchee
	@param String id : table recherchee
	@param String[] nav_obj : liste des object selectionnés pour la table en question
	@author Di08331
	@creation 18/11/2004
	@version 1.0
*****************************************************************/
function browse_gotoPageWithMemoryOnTable(form, page, id, nav_obj) {
		var nav_objetSelected = new Array();	
		nav_objetSelected=nav_obj;
//		alert(" browse_gotoPageWithMemoryOnTable(form:"+form+" page:"+page+" id:"+id+" navobject.length:"+nav_objetSelected.length+")");
		for (var i=0; i<nav_objetSelected.length;i++) {
		if (document.forms[form].elements[id+".objetSelected"].value==''){
			var newValue = nav_objetSelected[i];
			try {
			document.forms[form][0].elements[id+".objetSelected"].value=newValue;
			}catch(e){	
				
			}
			try {
			document.forms[form].elements[id+".objetSelected"].value=newValue;
			}catch(e){			
			}
		}else{
			var newValue = document.forms[form].elements[id+".objetSelected"].value+"|"+nav_objetSelected[i];
			try {
			document.forms[form][0].elements[id+".objetSelected"].value=newValue;
			}catch(e){
			}
			try {
			document.forms[form].elements[id+".objetSelected"].value=newValue;
			}catch(e){
			}			
		}
	}
	try {
		document.forms[form][0].elements[id+".gotoPage"].value=page;
		document.forms[form][0].elements[id+".navigationMode"].value=2;
	}catch(e){
	}
	
	try {
		document.forms[form].elements[id+".gotoPage"].value=page;
		document.forms[form].elements[id+".navigationMode"].value=2;
	}catch(e){	
	}	
	browse_posterFormulaireNavigationOnTable(form,id);
}



/*****************************************************************
But : tri d'un SmartVector
	@param String form : nom du formulaire
	@param String colonne : nom de la colonne de tri
	@param String id : nom de la table à trier
	@author Di08331
	@creation 18/11/2004
	@version 1.0
*****************************************************************/
function sortTableBy(form, colonne,id) {	
	try {
		document.forms[form][0].elements[id+".sortCol"].value=colonne;
		document.forms[form][0].elements[id+".navigationMode"].value=3;//1
	
	}catch(e){
	}
	try {
		document.forms[form].elements[id+".sortCol"].value=colonne;
		document.forms[form].elements[id+".navigationMode"].value=3;//1
	}catch(e){
	}
	browse_posterFormulaireNavigationOnTable(form,id);
}