var DOM = (document.getElementById) ? true : false; 
var IE4 = (document.all) ? true : false;
var NS4 = (document.layers) ? true : false;

if (DOM)
{
	document.write('<script type="text/javascript" src="/javascript/prototype.js"></script>');
	document.write('<script type="text/javascript" src="/javascript/scriptaculous/scriptaculous.js?load=effects"></script>');
}

function shakePuce(id)
{return;
	element = $(id);
	if (! element)
		return;
	var oldStyle = {top: element.getStyle('top'), left: element.getStyle('left')};
	return new Effect.Move(element, 
	      { x:  2, y: 0, duration: 0.05, afterFinishInternal: function(effect) {
	    new Effect.Move(effect.element,
	      { x: -4, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
	    new Effect.Move(effect.element,
	      { x:  6, y: 0, duration: 0.05,  afterFinishInternal: function(effect) {
	    new Effect.Move(effect.element,
	      { x: -6, y: 0, duration: 0.05,  afterFinishInternal: function(effect) {
	    new Effect.Move(effect.element,
	      { x:  4, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
	    new Effect.Move(effect.element,
	      { x: -2, y: 0, duration: 0.05, afterFinishInternal: function(effect) {
	        effect.element.undoPositioned().setStyle(oldStyle);
	}}) }}) }}) }}) }}) }});
}

var faireLombre= false;
var decalageOmbre= {x:0,y:0};
var effectShadow;
var effectShadowHide;
var attributesShow= {};
var attributesHide= {};
function showHideDiv(Obj,visStr)
{
//-------------------------------------------
// Gestion d'un Div (visible/invisible)
// P1 (obj) = Id du div
// P2 (visstr) = 'show' ou 'hide'
//-------------------------------------------

    if(DOM)
    { 
    	{//sans effet
    		var doSafeFrame= false;;
			if (navigator.appVersion.indexOf("MSIE")!=-1)
			{
				var temp= navigator.appVersion.split("MSIE")
				version=parseFloat(temp[1])
				if (version<7.0) //IE 5 ou 6
				{
					doSafeFrame= true;
				}
			}
    		var vis= document.getElementById(Obj).style.visibility;
	    	document.getElementById(Obj).style.visibility= (visStr== 'hide') ? 'hidden': 'visible' ;
	    	if (doSafeFrame && vis != document.getElementById(Obj).style.visibility)
	    	{
				var iframe= getSafeFrame(Obj);
	    		$(iframe).setStyle({display: visStr == 'hide' ? 'none': 'block'}); 
	    	}
	    	if (faireLombre && vis != document.getElementById(Obj).style.visibility)
	    	{
				var shadow= getShadow(Obj);
	    		$(shadow).setStyle({display: visStr == 'hide' ? 'none': 'block'}); 
		    	if (doSafeFrame && vis != document.getElementById(Obj).style.visibility)
		    	{
					var iframe= getSafeFrame(shadow);
		    		$(iframe).setStyle({display: visStr == 'hide' ? 'none': 'block'}); 
		    	}
	    	}
	    	return ;
	   	}
		//avec effet
		if (window.opera)
		{
			document.getElementById(Obj).style.visibility= (visStr== 'hide') ? 'hidden': 'visible' ;
			document.getElementById(Obj).style.display= (visStr== 'hide') ? 'none': 'block' ;
			return;
		}
		var d= $(Obj);
		if (visStr != 'hide')
		{
			//bug mozilla
			d.savedClientHeight= d.savedClientHeight || d.clientHeight;
			if (d.savedClientHeight)
				d.setStyle({height: d.savedClientHeight});

			//les divs sont 'hidden' par défaut	
			if (d.getStyle('visibility') == 'hidden')
				d.setStyle({visibility: 'visible', display: 'none'});

			if (d.getStyle('display') == 'none')
			{
		    	var options= arguments[2] || attributesShow || {};
		    	options.objet= Obj;
				options.height= d.savedClientHeight;
    			options= getOptionsShow(options);
				new options.effect(Obj, options);
			}
		}
		else
		{
			if (d.getStyle('visibility') == 'hidden')
				d.setStyle({visibility: 'visible', display: 'none'});
			else if (d.getStyle('display') != 'none')
			{
		    	var options= arguments[2] || attributesHide || {};
		    	options.objet= Obj;
				options.height= d.savedClientHeight;
    			options= getOptionsHide(options);
				new options.effect(Obj, options);
			}
		}
    }
    else if (navigator.appName == 'Netscape') {
        if (document.layers != null)  {eval('document.' + Obj + '.visibility = "' + visStr + '"');}
      }
    else { //IE
        if (visStr == 'show') visStr = 'visible'; //convert vals
        if (visStr == 'hide') visStr = 'hidden';
        if (document.all != null) eval('document.all.' + Obj + '.style.visibility = "'+visStr+'"');
    }
} // showHideDiv

function getOptionsShow(options)
{
	var con=.0005;
	var min=.5;
	if (! effectShadow)
		effectShadow = function(element) {
		  var options= arguments[1] || {};
		  element = $(element).cleanWhitespace();
		  element.items= options.items || [];
		  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
		  var oldInnerBottom = element.down().getStyle('bottom');
		  var elementDimensions = element.getDimensions();
		  return new Effect.Scale(element, 100, Object.extend({ 
			duration: Math.min(0.2+(options.height || 0)*con, min), 
			queue: 'parallel',
		    scaleContent: false, 
		    scaleX: false, 
		    scaleFrom: window.opera ? 0 : 1,
		    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
		    restoreAfterFinish: true,
		    afterSetup: function(effect) {
		      effect.element.makePositioned();
		      effect.element.down().makePositioned();
		      if(window.opera) effect.element.setStyle({top: ''});
		      effect.element.makeClipping().setStyle({height: '0px'}).show(); 
		      for (var i= 0; i < effect.element.items.length; i++)
		      {
		      	  var item= effect.element.items[i];
			      item.makePositioned();
			      item.down() && item.down().makePositioned();
			      if(window.opera) item.setStyle({top: ''});
			      item.makeClipping().setStyle({height: '0px'}).show(); 
			  }
		    },
		    afterUpdateInternal: function(effect) {
		      effect.element.down().setStyle({bottom:
		        (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
		      for (var i= 0; i < effect.element.items.length; i++)
		      {
		      	  var item= effect.element.items[i];
			      item.down() && item.down().setStyle({bottom:
			        (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
			      var d= {};
			      d.height= effect.element.getStyle('height');
			      item.setStyle(d);
			  }
		    },
		    afterFinishInternal: function(effect) {
		      effect.element.undoClipping().undoPositioned();
		      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); 
		      for (var i= 0; i < effect.element.items.length; i++)
		      {
		      	  var item= effect.element.items[i];
			      item.undoClipping().undoPositioned();
			      item.down() && item.down().undoPositioned().setStyle({bottom: oldInnerBottom}); 
			      var d= {};
			      d.height= effect.element.getStyle('height');
			      item.setStyle(d);
			  }
			}
		    }, options)
		  );
		}
	options.effect= options.effect || effectShadow || Effect.SlideDown;
	options.items= [];
	if (options.effect == effectShadow)
		options.items.push($(getShadow(options.objet)));
	var version=0;
	if (navigator.appVersion.indexOf("MSIE")!=-1)
	{
		var temp= navigator.appVersion.split("MSIE")
		version=parseFloat(temp[1])
		if (version<7.0) //IE 5 ou 6
		{
			options.items.push($(getSafeFrame(options.objet)));
		}
	}
	return options;
}
function getOptionsHide(options)
{
	var con=.0005;
	var min=.5;
	if (!effectShadowHide)
		effectShadowHide = function(element) {
		  var options= arguments[1] || {};
		  element = $(element).cleanWhitespace();
		  element.items= options.items || [];
		  var oldInnerBottom = element.down().getStyle('bottom');
		  return new Effect.Scale(element, window.opera ? 0 : 1,
		   Object.extend({ scaleContent: false, 
			duration: Math.min(0.2+(options.height || 0)*con, min), 
			queue: 'parallel',
		    scaleX: false, 
		    scaleMode: 'box',
		    scaleFrom: 100,
		    restoreAfterFinish: true,
		    beforeStartInternal: function(effect) {
		      effect.element.makePositioned();
		      effect.element.down().makePositioned();
		      if(window.opera) effect.element.setStyle({top: ''});
		      effect.element.makeClipping().show();
		      for (var i= 0; i < effect.element.items.length; i++)
		      {
		      	  var item= effect.element.items[i];
			      item.makePositioned();
			      item.down() && item.down().makePositioned();
			      if(window.opera) item.setStyle({top: ''});
			      item.makeClipping().show();
			  }
		    },  
		    afterUpdateInternal: function(effect) {
		      effect.element.down().setStyle({bottom:
		        (effect.dims[0] - effect.element.clientHeight) + 'px' });
		      for (var i= 0; i < effect.element.items.length; i++)
		      {
		      	  var item= effect.element.items[i];
			      item.down() && item.down().setStyle({bottom:
			        (effect.dims[0]+10 - effect.element.clientHeight) + 'px' });
			      var d= {};
			      d.height= effect.element.getStyle('height');
			      item.setStyle(d);
			  }
		    },
		    afterFinishInternal: function(effect) {
		      effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom});
		      effect.element.down().undoPositioned();
		      for (var i= 0; i < effect.element.items.length; i++)
		      {
		      	  var item= effect.element.items[i];
			      item.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom});
			      item.down() && item.down().undoPositioned();
			  }
		    }
		   }, options)
		  );
		}
	options.effect= options.effect || effectShadowHide || Effect.SlideUp;
	options.items= [];
	if (options.effect == effectShadowHide)
		options.items.push($(getShadow(options.objet)));
	var version=0;
	if (navigator.appVersion.indexOf("MSIE")!=-1)
	{
		var temp= navigator.appVersion.split("MSIE")
		version=parseFloat(temp[1])
		if (version<7.0) //IE 4, 5 ou 6
		{
			options.items.push($(getSafeFrame(options.objet)));
		}
	}
	return options;
}

function getShadow(Obj)
{
	var nameShadow= Obj+'shadow';
	var d= $(Obj);
	var shadow= $(nameShadow);
	if (! shadow)
	{
		shadow= document.createElement('div');
		shadow.id= nameShadow;
		shadow.className="Ombre";
		shadow.innerHTML= "<table <table style='position:absolute;visibility:hidden;'><tr><td></td></tr></table>";
		d.parentNode.insertBefore(shadow, d);
		shadow= $(nameShadow);
		shadow.setStyle({
			left: d.getStyle('left'), 
			top: d.getStyle('top'),
			width: (d.clientWidth || d.getWidth()) + 'px',
			opacity: 0.4,
			display: 'none',
			height: (d.savedClientHeight || d.clientHeight || d.getHeight()) + 'px'
		});
	}
	else //if (d.savedClientHeight)
		shadow.setStyle({
			left: d.getStyle('left'), 
			top: d.getStyle('top'),
			width: (d.clientWidth || d.getWidth()) + 'px',
			height: (d.savedClientHeight || d.clientHeight || d.getHeight()) + 'px' 
		});
	return nameShadow;
}

function getSafeFrame(div)
{
	var f = document.getElementById("theFrame"+div);
	if (! f) {
		var d    = $(div);
		f= document.createElement("iframe");
		f.id= "theFrame"+div;
		f.setAttribute("scrolling","no");
		f.setAttribute("frameborder","0");
		d.parentNode.insertBefore(f, d);
		f= $(f.id);
		f.addClassName("SafeFrame");
		var style= {};
		style.position	= "absolute";
		style.width    	= d.getWidth()+ 'px';
		style.height	= d.getHeight()+ 'px';
		style.top		= (parseFloat(d.getStyle('top')) || 0) + (parseFloat(d.getStyle('margin-top')) || 0) + 'px';
		style.left		= (parseFloat(d.getStyle('left')) || 0) + (parseFloat(d.getStyle('margin-left')) || 0) + 'px';
		style.display  	= 'none';
		style.opacity 	= 0.01;
		f.setStyle(style);
	}
	return f;
}
function showHideDivSafe(div, show)
{
	showHideDiv(div, show);
}
function xshowHideDivSafe(div, show)
{
	var version=0;
	if (navigator.appVersion.indexOf("MSIE")!=-1)
	{
		var temp= navigator.appVersion.split("MSIE")
		version=parseFloat(temp[1])
	}
	//corr bug des div transparents pour éléments de formulaire select 
	var options= {};
/*	if (navigator.appVersion.indexOf("MSIE") != -1 && version<7.0) //IE 4, 5 ou 6
	{
		var f = document.getElementById("theFrame"+div);
		if (! f) {
			f= document.createElement("iframe");
			f.id= "theFrame"+div;
			document.body.appendChild(f);
			var d    = document.getElementById(div);
			with(f.style){
				position	= "absolute";
				width    	= d.offsetWidth+"px";
				height		= d.offsetHeight+"px";;
				top			= d.offsetTop+"px";
				left		= d.offsetLeft+"px";
				zIndex		= "1";
	//			visibility  = show == 'show' ? 'visible' : 'hidden';
				display  = 'none';
			}
		}
	
		options.items= [$(getShadow(div)), $(f)];
	}*/
	options.items= [$(getShadow(div)), $(getSafeFrame(div))];
	showHideDiv(div, show, options);
}
function makeCompleteFieldName (layerId,formId,fieldId)
{
// -----------------------------------------------------
// renvoie le nom complet d'un champ dans un formulaire.
// P1 (layerId) : Id/Name du div qui contient le champ ('' si pas de div)
// P2 (formId)  : Id/Name du formulaire
// P2 (fieldId)  : Id/Name du champ
// Renvoie le nom complet du champ
// -----------------------------------------------------

if (DOM)
{
str="document.getElementById('"+formId+"')."+fieldId;
}
else
{
/*      if (NS4) addObj = '';*/
      if (navigator.appName == 'Netscape') addObj = '';
      else addObj = 'all.';

      if (layerId!='') str= 'document.' + addObj + layerId + '.document.' + formId + '.' + fieldId;
      else str= 'document.' + addObj + formId + '.' + fieldId;
}
/*
      if (navigator.appName == 'Netscape') addObj = '';
      else addObj = 'all.';

      if (layerId!='') str= 'document.' + addObj + layerId + '.document.' + formId + '.' + fieldId;
      else str= 'document.' + addObj + formId + '.' + fieldId;
*/

      return(str);
} // makeCompleteFieldName

function exchangeData (layer1,form1,field1,layer2,form2,field2)
{
//------------------------------------------------------
// affecte le champ2 avec la valeur du champ1
//------------------------------------------------------
      eval (makeCompleteFieldName (layer2,form2,field2) + '.value = ' + makeCompleteFieldName (layer1,form1,field1) + '.value');
} // exchangeData

function exchangeDataListe (layer1,form1,field1,layer2,form2,field2)
{
//------------------------------------------------------
// affecte le champ2 avec la valeur du champ1 qui est une valeur choisie dans une liste
//------------------------------------------------------
	chps = eval(makeCompleteFieldName(layer1,form1,field1));
   	chainesel = new String(chps.options[chps.selectedIndex].value);
	eval (makeCompleteFieldName (layer2,form2,field2) + '.value = "' + chainesel + '"');
 } // exchangeDataListe

function displayMsg(strParam)
{
// affiche dans la barre de status le texte passe en parametres : strParam 
window.status = strParam;
}

