// partie drag & drop



var II_DD_nn6=document.getElementById&&!document.all; 
var II_isDrag=false;
var II_DD_x,II_DD_y;
var II_DD_dObj;
var II_DD_tx;
var II_DD_ty;
var II_DD_dx=0;
var II_DD_dy=0;
var II_DD_ddx=0;
var II_DD_ddy=0;
var _dx1;var _dy1;var _dx;var _dy
function dropObject(){
   II_DD_dObj.style.left = ( II_DD_tx + II_DD_dx+0.75* II_DD_ddx) +'px';
   II_DD_dObj.style.top = ( II_DD_ty + II_DD_dy+0.75 * II_DD_ddy) +'px';  
  // alert(II_DD_ddy+'*'+_dy+'/'+_dy1);

} 
function movemouse(e)
{ 
  if (II_isDrag){ 
   // _dx=_dx1;_dy=_dy1;
    _dx=II_DD_dx;
    _dy=II_DD_dy;
    //alert((e.clientX )+'-'+ (II_DD_x));
    II_DD_dx=(II_DD_nn6 ?   (e.clientX - II_DD_x)*1  :   (event.clientX - II_DD_x)*1 );
    II_DD_dy= (II_DD_nn6 ?   (e.clientY - II_DD_y)*1  : ( event.clientY - II_DD_y)*1 );
    II_DD_ddx=II_DD_dx- _dx;
    II_DD_ddy=II_DD_dy- _dy; 
	dropObject();
    return false;
  }
} 

function selectmouseElement(e) 
{  //alert('l28');
  var fobj = this;
  var topelement = II_DD_nn6 ? "HTML" : "BODY"; 
  while (fobj.tagName != topelement &&  fobj.className != "dragme" && fobj.tagName !='DIV')
  {
    fobj = II_DD_nn6 ? fobj.parentNode : fobj.parentElement;
  }
   // alert(fobj.tagName+'-'+ this.tagName)
  if (fobj.className=="dragme" || fobj.tagName =='DIV')
  {
    II_isDrag = true;
    II_DD_dObj = fobj;
    II_DD_tx = parseInt(II_DD_dObj.style.left+0);
    II_DD_ty = parseInt(II_DD_dObj.style.top+0);
    II_DD_x = II_DD_nn6 ? e.clientX : event.clientX;
    II_DD_y = II_DD_nn6 ? e.clientY : event.clientY;
    document.onmousemove=movemouse;  
    II_DD_dx=0; II_DD_dy =0;
    
    return false;
  }
} 
// l'element dragAnchorEltId sert de poignée.
// c'est l'élément parent le premier qui est de type 'DIV' ou avec une class 'dragme' qui est transporté

function initDragDrop(dragAnchorEltId){ 
document.getElementById( dragAnchorEltId ).style.cursor = 'move'
document.getElementById( dragAnchorEltId ).onmousedown=selectmouseElement;
document.getElementById(dragAnchorEltId).onmouseup=new Function("II_isDrag=false");
 document.getElementById(dragAnchorEltId).onmouseout=new Function("II_isDrag=false;");
} 

// fin partie Drag & drop 
 
 
// prepa popup: fct generique ecran et scroll
function oldonscroll (){};

var II_scrollX =0;
var II_scrollY =0;
var II_windowHeight = 0;

var II_windowWidth = 0;

function II_calculScroll(){ 
	if (document.all) { 
		var de=!document.documentElement.clientWidth?document.body:document.documentElement 
        II_scrollX = de.scrollLeft;
        II_scrollY = de.scrollTop;
        II_windowHeight=de.clientHeight;
		II_windowWidth=de.clientWidth; 
        }  
     else { 
		II_scrollX=window.pageXOffset;
		II_scrollY=window.pageYOffset;
		II_windowHeight=window.innerHeight;
		II_windowWidth=window.innerWidth;
     }
}   

 
//partie Popup
var isnew_page_action = false;
var page_action = null ;
var  page_action_opener = null; 
var page_action_td_close_button_fenetre_innerHTML = '<a target="_self" href="javascript:click_close_page_action()">[X]</a>';


function show_page_action(url, paneltitle, close_authorised, isModal,showwhencenter,iframeopener)
{
	page_action = document.getElementById("page_action") ;
	if (showwhencenter) 
	{
	    page_action.style.left= '-2000px';
	    document.body.style.cursor='wait';
    }
	if (document.getElementById('page_action_td_close_button_fenetre').innerHTML!='')
	    page_action_td_close_button_fenetre_innerHTML = document.getElementById('page_action_td_close_button_fenetre').innerHTML;
	oldonscroll = window.onscroll;
	if (isModal)
	{
		document.getElementById("page_action_calque").style.visibility ='visible'; 
		window.onscroll = function()
		{
		    window.scrollTo(II_scrollX,II_scrollY);
        }
	}
	
	if (paneltitle+''!='') 
		document.getElementById('page_action_td_titre_fenetre').innerHTML=paneltitle;
	else
		document.getElementById('page_action_td_titre_fenetre').innerHTML='fenêtre';
		
	document.getElementById('page_action_iframe').contentWindow.document.body.innerHTML='Chargement en cours...';
	page_action.className ='divShow'; 
	iiCalCb_HideAllCb();
// ici, l'iframe prend tout la place disponible, mais il est aussi pssible de definir une largeur et une hauteur finie
	document.getElementById("page_action_iframe").style.width = "100%";
	document.getElementById("page_action_iframe").style.height = "100%";
	document.getElementById('page_action_td_close_button_fenetre').innerHTML=page_action_td_close_button_fenetre_innerHTML;
	if (!close_authorised && !close_authorised)
		document.getElementById('page_action_td_close_button_fenetre').innerHTML='';		 
		
	frames['page_action_iframe'].location.href= url ;
	
	if (iframeopener)
	    page_action_opener = iframeopener;
	else
	    page_action_opener = null; 
	    
	initDragDrop('page_action_td_titre_fenetre');
	
	II_calculScroll();
	document.getElementById("page_action_calque").style.left = II_scrollX+'px';
	document.getElementById("page_action_calque").style.top = II_scrollY+'px'; 
	isnew_page_action = true;
	//alert('fin showpage');
}

function center_page_action(_width,_height,paneltitle,cancelbuttontitle,allways) { 
	document.body.style.cursor='default';
	
	if ((isnew_page_action ||allways) && page_action) {
		page_action.style.left =  ((II_windowWidth  - _width )/2+II_scrollX)+'px';
		page_action.style.top =  ((  II_windowHeight - _height)/2+II_scrollY)+'px'; 
		isnew_page_action = false;
		if (paneltitle+''!='') {
			document.getElementById('page_action_td_titre_fenetre').innerHTML=paneltitle 
		}
		if (cancelbuttontitle+''!='') { 
			document.getElementById('page_action_img_close_button').title=cancelbuttontitle
		} 
	} 
	isnew_page_action=false; 
}

function hide_page_action() {
	window.onscroll=oldonscroll  ;
	if (page_action.className=='divShow') {
		page_action.className ='divHide';
		iiCalCb_ShowAllCb()
	}
	document.getElementById("page_action_calque").style.visibility ='hidden';
	document.getElementById("page_action_iframe").style.width = "1px";
	document.getElementById("page_action_iframe").style.height = "1px";
	}
function close_page_action() {
	hide_page_action();
	frames['page_action_iframe'].location.href= 'empty.html' ;
}
function click_close_page_action() { 
	var win_Iframe_Action = frames['page_action_iframe'];
	 if (frames['page_action_iframe'].onclick_close_page_action) {
		win_Iframe_Action.onclick_close_page_action() ;
		}
	  else { 
		close_page_action() 
		}
} 
 
var HTMLAreaMaxWidth = 0;
   
var iframe_max_width = 800;
var iframe_max_height = 520;
var iframe_width = iframe_max_width;
var iframe_height = iframe_max_height  ;
var objIframeInParentWindow = null;
function page_action_iframe_init(div, iFrameId,spewindow,_width,_height)
{
    var scroll=false;
	objIframeInParentWindow = null;
	var _window = window;
	if (spewindow) _window=spewindow;
//alert(div.offsetWidth+'-'+div.offsetHeight);

    if (iFrameId)
        objIframeInParentWindow = _window.parent.document.getElementById(iFrameId); 
	
	if (objIframeInParentWindow)
	{
		_window.parent.II_calculScroll();
		iframe_max_width = window.parent.II_windowWidth-40;
		if (iframe_max_width<400)
		    iframe_max_width=400		    
		if (iframe_max_width>1200)
		    iframe_max_width=1200;
		    
		iframe_max_height = _window.parent.II_windowHeight-90;		
		if (iframe_max_height<300)
		    iframe_max_height=300;
		if (iframe_max_height>650)
		    iframe_max_height=650;
	}
	else
	{
		iframe_max_width = 800;
		iframe_max_height = 520;
	}
	iframe_width = iframe_max_width;
	iframe_height = iframe_max_height;
    
    var divWidth = _width;
    var divHeight = _height;
    
    var offsetDiv = 0;
    
    if (div!=null) {
		divWidth = div.offsetWidth; 
		divHeight = div.offsetHeight ;
        offsetDiv = offsetElement(div);
     }
    if(divWidth < offsetDiv[0])
        divWidth = offsetDiv[0];	                
 
	if (divWidth < iframe_width) 
	    iframe_width = divWidth;
 
	if (HTMLAreaMaxWidth && (HTMLAreaMaxWidth > iframe_width-4))
	    iframe_width = HTMLAreaMaxWidth+4;
	    
	if (divHeight< iframe_height)
	    iframe_height=divHeight;

	// on a du scroll //
	if  ((iframe_height >= iframe_max_height) || (iframe_width >= iframe_max_width)) 		
		scroll=true; 

	if (!objIframeInParentWindow)
	{
	    iframe_width += 28;
	    iframe_height += 28;
	}
	else if (scroll)
	{
	    iframe_width += 12;
	    iframe_height += 28;
    }
	
	if (!document.all)
	{	
		// center on parent
		if (!opener)
		{
			var x =  top.screenX + ( top.outerWidth - iframe_width) / 2;
			var y =  top.screenY + (top.outerHeight - iframe_height) / 2;
		}
		else
		{
			var x = opener.top.screenX + (opener.top.outerWidth - iframe_width) / 2;
			var y = opener.top.screenY + (opener.outerHeight - iframe_height) / 2;
		} 
		if (scroll)
		{
		    iframe_width += 12;		    
		    _window.resizeTo(iframe_width,iframe_height);
        }
		else
		    _window.sizeToContent(); 
		 
		if (!objIframeInParentWindow)
		    _window.moveTo(x, y);
    }
	else
	{
        iframe_width += 3;
        iframe_height += 3; 
        var parentPageAction;
        if(parent && parent.document && (parentPageAction=parent.document.getElementById('page_action')) && (parentPageAction.offsetWidth < iframe_max_width) && (parentPageAction.offsetWidth > iframe_width))
            iframe_width = parentPageAction.offsetWidth;            

        _window.resizeTo(iframe_width,iframe_height);  
        //alert('l242+'+iframe_height)
        var x = (screen.availWidth - iframe_width) / 2;
        var y = (screen.availHeight - iframe_height) / 2;
        if (!objIframeInParentWindow)
            _window.moveTo(x, y);
	}  
	
	if(objIframeInParentWindow)
	{ 
		objIframeInParentWindow.style.width = iframe_width+'px';
		objIframeInParentWindow.style.height = iframe_height+'px'; 
	}
	
	return scroll;
}

function offsetElement(element)
{
	var pos = posElement(element);
	var point = maxPointElement(element, [0, 0]);

	for(var i = 0; i < 2; i++)
		point[i] -= pos[i];
			
	return point;
}

function maxPointElement(element, point)
{
	if(element.style && (element.style.position == 'absolute'))
		return point;

	for(var i = 0; i < element.childNodes.length; i++)
		point = maxPointElement(element.childNodes[i], point);

	var pos = posElement(element);
	pos[0] += element.offsetWidth;
	pos[1] += element.offsetHeight;

	for(var i = 0; i < 2; i++)
		if(point[i] < pos[i])
			point[i] = pos[i];

	return point;
}

function posElement(element)
{
	var left = element.offsetLeft;
	var top = element.offsetTop;

	while ((element.offsetParent != null) && element.style && (element.style.position != 'absolute'))
	{
		var parent = element.offsetParent;
		left += parent.offsetLeft;
		top += parent.offsetTop;
		element = parent;
	} 
	return [left, top];
}

function getElementByRightId(rightId,tagName) {
  var objs= document.getElementsByTagName(tagName);
  var obj;
  var obj_i;
  var objId;
  var l=rightId.length;
  var x;
  rightId=rightId.toLowerCase();
	   
	 for (i=0; i<objs.length; i++) {
		objId = objs[i].id.toLowerCase();
		x = objId.indexOf( rightId);
		if (objId.length== x+l ) return (objs[i]);
	}
}


function IsDirty(eForm)
{	if (!eForm && theForm) eForm = theForm ;
	if (!eForm){eForm =document.forms[0]}
	if (!eForm) {return false;};
	var iNumElems = eForm.elements.length; 
	
	if (typeof  eForm.onhtmlareasgethtml == "function") {
		var coderetouronhtmlareasgethtml = eForm.onhtmlareasgethtml(); 
		}
	for (var i=0; i<iNumElems; i++){   
		var eElem = eForm.elements[i]; 
		if ("text" == eElem.type || "TEXTAREA" == eElem.tagName)
			{ 
			if (eElem.value != eElem.defaultValue) return true;
			}
		else if ("checkbox" == eElem.type || "radio" == eElem.type)
			{
				if (eElem.checked != eElem.defaultChecked) return true;
			}
			else if ("SELECT" == eElem.tagName && eElem.id)
				{
				var cOpts = eElem.options;
				var iNumOpts = cOpts.length;
				for (var j=0; j<iNumOpts; j++)
					{
					var eOpt = cOpts[j];
					// alert(eOpt.defaultSelected);
					if (eOpt.selected != eOpt.defaultSelected) return true;
					}
				}
	}
	return false;
}
function confirmOrNotDirty (msg){
  if (!IsDirty()) return true;
  return (confirm(msg));
  }
  
  
function openpopupinparent(w, h, name, url)
{   var docdivblock =parent.document.getElementById('page_action');
	if (name+''=='') name='Edition'
    if (docdivblock) {
      parent.show_page_action(url,name ,true,true,true,window)  ;//(url, paneltitle, close_authorised, isModal, opener) 
    }
    else { 
		docdivblock = parent.document.getElementById('div_'+name)  
		//alert('name='+name);
		fentree=window.open('', name, 'top=' + (screen.height-h)/2 + ',left=' + (screen.width-w)/2 + ',width=' + w + ',height=' + h + ',resizable=yes,toolbar=no,location=no,menubar=no,scrollbars=yes,status=no');
		fentree.location=url;
		fentree.opener=window;   
		if (docdivblock)  { 
		   docdivblock.className='divShow';  
	   }
		else {
		//alert('erreur div block');
		}
		fentree.focus();
    };
}
function openpopup(w, h, name, url)
{   var docdivblock = document.getElementById('page_action'); 
	if (name+''=='') name='Edition'; 
    if (docdivblock) { 
       show_page_action(url,name ,true,true,true,window)  ;//(url, paneltitle, close_authorised, isModal,showwhencenter,iframeopener)
    }
    else { 
		name=name.replace(" " ,""); 
		docdivblock =  document.getElementById('div_'+name )   
		fentree=window.open('', name, 'top=' + (screen.height-h)/2 + ',left=' + (screen.width-w)/2 + ',width=' + w + ',height=' + h + ',resizable=yes,toolbar=no,location=no,menubar=no,scrollbars=yes,status=no');
		fentree.location=url;
		fentree.opener=window;   
		if (docdivblock)  { 
		   docdivblock.className='divShow';  
		   alert('l455');
	   }
		else {
		//alert('erreur div block');
		}
		fentree.focus();
    };
}

function openpopupSimpleAndCenter(w, h, name, url, closebuttontitle)
{   
var docdivblock = document.getElementById('page_action'); 
	if (name+''=='') name='Edition'; 
    if (docdivblock) { 
		show_page_action(url,name ,true,true,true,window)  ; 
		var spewindow= window.frames[0];
		objIframeInParentWindow=document.getElementById("page_action_iframe");  
		page_action_iframe_init(null, "page_action_iframe" ,spewindow,w,h)
		center_page_action(w,h,'Details',closebuttontitle,true)
    }
  }

var  iiCalCb_SelNu=null; 
function iiCalCb_InitSelNu(){
 if (!iiCalCb_SelNu) {
     iiCalCb_SelNu= document.getElementsByTagName('select');
	   
	 for (iiCalCb_i=0; iiCalCb_i<iiCalCb_SelNu.length; iiCalCb_i++) {
	  
		if ( iiCalCb_SelNu[iiCalCb_i].doNotDisappear!=1) {
		   if (!iiCalCb_SelNu[iiCalCb_i].style.visibility) {iiCalCb_SelNu[iiCalCb_i].style.visibility=''}
		   iiCalCb_SelNu[iiCalCb_i].visibility0=iiCalCb_SelNu[iiCalCb_i].style.visibility}
	  }
   };
 }



function iiCalCb_HideAllCb( ){

 if (!document.all){ return; }
 iiCalCb_InitSelNu(); 
 for (iiCalCb_i=0; iiCalCb_i<iiCalCb_SelNu.length; iiCalCb_i++) { 
   if   ( iiCalCb_SelNu[iiCalCb_i].doNotDisappear!=1){ 
   if  ( iiCalCb_SelNu[iiCalCb_i].visibility0=='visible'||iiCalCb_SelNu[iiCalCb_i].visibility0==''){  
      iiCalCb_SelNu[iiCalCb_i].style.visibility='hidden'; 
		   
	 }
   }
 }
}


function iiCalCb_ShowAllCb(){

 if (!document.all){ return; }
 for (iiCalCb_i=0; iiCalCb_i<iiCalCb_SelNu.length; iiCalCb_i++) { 
   if   ( iiCalCb_SelNu[iiCalCb_i].doNotDisappear!=1){ 
    if   (iiCalCb_SelNu[iiCalCb_i].style.visibility=='hidden' ){ 
      
      iiCalCb_SelNu[iiCalCb_i].style.visibility= iiCalCb_SelNu[iiCalCb_i].visibility0 ;
       
    }
   }
 }
}