
function loadpage(url,target){
		window.open(url,target);
}
function popup(url,title,width,height){
	fenetre = window.open(url,title,"width="+width+",height="+height+",resizable=yes,scrollbars=yes");
	fenetre.focus();
}

String.prototype.startsWith = function(str) 
{return (this.match("^"+str)==str)}

// Ouverture d'un popup
function OpenWin(url,w,h,win){


// url  : url à lancer
//h: hauteur en pixels
//w Largeur en pixels
//win: nom de la fenetre
var ns4=(document.layers)?true:false; // NS4
var ie4=(document.all)?true:false;      //Ie4
var dom=(document.getElementById)? true:false; 
var xMax,yMax,xOffset,yOffset;
var w2=200
var h2=300

// Récup taille de la fenetre du navigateur 
if (ie4 || dom)
{
xMax=screen.width;
yMax=screen.height;
 }
 else if(ns4)
 {
 xMax=window.outerWidth;
 yMax=window.outerHeight;
 }
 else
 {
 xMax=800;
 yMax=600;
 }

// Calcul de la taille du popup s'il n'a pas été fourni en paramètres 
if (w == "0")
{
w=w2;
 }

if (h == "0")
{
h = h2;
}

// Réajustement de la taille du popup si la fenetre du navigateur est + grande que 800x600
if (xMax > 650) {
//w=w/800*xMax
//h=h/600 *yMax

w=w*1.2;
h=h*1.2;
}
 
// Calcul de la position du popup dans la fenetre

 xOffset=(xMax - w)/2;
 yOffset=(yMax -h)/2;
var Params = "'toolbar=no,width=" + w + ",height=" + h 
+",screenX="+xOffset
+",screenY="+yOffset
+",top="+yOffset
+",left="+xOffset
+ ",scrollbars=yes,resize=yes'";
window.open(url,"",Params,win);
} 

function isNumeric(object){
	var validChars = "0123456789";
   	var isNumber=true;
   	var char;
   	var sText = object.value;

   	for (i = 0; i < sText.length && isNumber == true; i++){ 
    	char = sText.charAt(i); 
    	if (validChars.indexOf(char) == -1){
        	isNumber = false;
        	object.value=sText.substring(0,i);
      	}
   	}
   	return isNumber;
}

function chargementIframe(id, url){
	if (document.getElementById(id) != null){
		iframe = document.getElementById(id);
		iframe.src = url;
	}
}

function showDiv(div_id,source_element,position,xDecal,yDecal){
	
	if(document.getElementById(div_id)){
		document.getElementById(div_id).style.display = 'block'; 
			
		
		var heightElement = 0;
		var widthElement = 0;
		if('up' == position){
			
			var obj = document.getElementById(div_id);
			var size = findSize(obj);
			heightElement = size[1];
			heightElement += 0;
		}
		else if('up2' == position){
			
			var obj = document.getElementById(div_id);
			var size = findSize(obj);
			heightElement = size[1];
			heightElement -= 22;
		}
		else if('left' == position){
			
			var obj = document.getElementById(div_id);
			var size = findSize(obj);
			var sizeSource = findSize(source_element);
			widthElement = sizeSource[0];
			widthElement += 22;
			
			heightElement = (size[1])/2;
			heightElement -= (sizeSource[1])/2;
		}
		else if('down' == position){
			
			var obj = document.getElementById(div_id);
			var size = findSize(obj);
			var sizeSource = findSize(source_element);
			
			//heightElement = size[1];
			heightElement -= sizeSource[1];
			
			widthElement = (size[0])/2;
			widthElement -= (sizeSource[0])/2;
		}
		else if('topLeft' == position){
			
			var obj = document.getElementById(div_id);
			var size = findSize(obj);
			var sizeSource = findSize(source_element);
			
			heightElement = size[1];
			heightElement += 0;
			
			//alert('width source = '+sizeSource[0]);
			
			//alert('width div = '+size[0]);
			widthElement = size[0];
			widthElement += 0;
		}
		else if('topRight' == position){
			
			var obj = document.getElementById(div_id);
			var size = findSize(obj);
			var sizeSource = findSize(source_element);
			
			heightElement = size[1];
			heightElement += 0;
			
			//alert('width source = '+sizeSource[0]);
			
			//alert('width div = '+size[0]);
			//widthElement = size[0];
			widthElement += 0;
		}
		
		var decalageLateral = 0;
		if( xDecal != null && !isNaN(xDecal)){
			decalageLateral = xDecal;
		}
		
		var decalageVertical = 0;
		if( yDecal != null && !isNaN(yDecal)){
			decalageVertical = yDecal;
		}
		
		var pos = findPos(source_element);
		//alert("left source : "+pos[0]);
		//alert("top source : "+pos[1]);
		
		
		document.getElementById(div_id).style.left = ((pos[0] 	 - widthElement)  + decalageLateral 	)+'px';
		document.getElementById(div_id).style.top =  ((pos[1] 	 - heightElement) + decalageVertical )+'px';
		document.getElementById(div_id).style.display = 'block';
		
		if(navigator.userAgent.toLowerCase().indexOf('chrome') != -1){
			document.getElementById(div_id).style.position = 'fixed'; 
		}else{
			document.getElementById(div_id).style.position = 'absolute';
		}
		
		// pour bug IE des select tjrs visibles sous les div
		
		if(navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.toLowerCase().indexOf('mozilla') == -1)
			maskSelects(document.getElementById(div_id),true);
	}// else alert('oups');
}

function maskDiv(div_id){
	if(document.getElementById(div_id)){
		document.getElementById(div_id).style.display = 'none';
		
		// pour bug IE des select tjrs visibles sous les div
		if(navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.toLowerCase().indexOf('mozilla') == -1)
			maskSelects(document.getElementById(div_id),false);
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	
	if (obj !=null && obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft - obj.scrollLeft;
			curtop += obj.offsetTop - obj.scrollTop;
		}

	}
		
	return [curleft,curtop];
}

function updateByAjax(source, targetSpanJsp, targetSrv, btAction, parametres, asynchrone){ 
	//alert(parametres);
	var req = null; 
	var url=targetSrv 					// ex : "/SalesOrder/SrvAjax_ControlFormatDate";		
	var pasDerreur = false;
		
	if(asynchrone != true && asynchrone	!= false)
		asynchrone = true;
	
	if(window.XMLHttpRequest) // Firefox et autres
		req = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e1) {
				req = null;
			}
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...\r\n Les dates ne pourront etre verifiées");
	}
	
	document.getElementById(targetSpanJsp).innerHTML = "";
	if(targetSpanJsp == 'divTableauDetailPrix'){
		document.getElementById(targetSpanJsp).innerHTML = '<table width="280px"><tr id="trWait"><td align="center"><img src="images/Wait.gif" class="noborder"/></td></tr></table>';
	}
	
	req.onreadystatechange = function()
	{ 	
					
		if(req.readyState == 4)
		{
			if(req.status == 200)
			{
					if(req.responseText == 'timeout'){
						document.location.href="/site/Pages/TimeOut.jsp";
						return false;
					}
					else if(req.responseText == 'error'){
						document.location.href="/site/Pages/Error.jsp";
						return false;
					}
					else if(req.responseText.startsWith("reroute:")){
						document.location.href=req.responseText.replace('reroute:','');
						return false;
					}
					else{
						document.getElementById(targetSpanJsp).innerHTML = req.responseText;
						document.body.style.cursor = 'auto';
					}
			}
		}
	}; 	
	req.open('GET', url + '?btAction='+ btAction + '&'+ parametres + '&' + source.id + '=' + source.value + '&ajax=1&nocache=' + Math.random()  , asynchrone); 
	//req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	req.send(null); 
	
	//appelé qu'en mode synchrone
	if(asynchrone == false){
		if(req.readyState == 4){
			if(req.status == 200)
			{
				if(req.responseText == 'timeout'){
					document.location.href="/site/Pages/TimeOut.jsp";
					return false;
				}
				else if(req.responseText == 'error'){
					document.location.href="/site/Pages/Error.jsp";
					return false;
				}
				else if(req.responseText.startsWith("reroute:")){
					document.location.href=req.responseText.replace('reroute:','');
					return false;
				}
				else{
					document.getElementById(targetSpanJsp).innerHTML = req.responseText;
				}
				
			}
		}
	}
}

function reinitSelecteur(select){
	while(select != undefined && 0 < select.length)
		select.options[0] = null;
	if(select != undefined)
		select.options[0]=new Option("Faites votre choix","vide");
}

function effacerMsgErreurs(){
	var listMsgErreur = document.getElementsByTagName('*');
	name = "msgErreur";
	for (i=0;i<listMsgErreur.length;i++){
		
		if (listMsgErreur[i].id.indexOf(name)>-1){
			document.getElementById(listMsgErreur[i].id).style.display = 'none';
		}
	}
}

function findSize(obj,width,height){
	
	if(obj != null){
		width = obj.offsetWidth;
		height = obj.offsetHeight;
		
		for (var i=0;i < obj.childNodes.length;i++) {
		
			nod = obj.childNodes[i];
					
			if(false == is_ignorable( nod )){
			
		  		if(width < nod.offsetWidth){
		  			width =  nod.offsetWidth ;
		  		}
		  		
		  		if(height < nod.offsetHeight){
		  			height =  nod.offsetHeight ;	
		  		}
		  		
		  		if(obj.childNodes[i].length > 0){
			  		dimensions = findSize(nod,width,height);
			  		
			  		if(dimensions[0]>width) width = dimensions[0];
			  		if(dimensions[1]>height) height = dimensions[1];
			  	}
		  		
			 }
	  		
		}
	}
	return [width,height];
}


function is_ignorable( nod )
{
  return ( nod.nodeType == 8) || // A comment node
         ( (nod.nodeType == 3) && is_all_ws(nod) ); // a text node, all ws
}

function is_all_ws( nod )
{
  // Use ECMA-262 Edition 3 String and RegExp features
  return !(/[^\t\n\r ]/.test(nod.data));
}

function cacheParent(obj){
	obj.offsetParent.style.display='none';
}



var formIsSubmit = false;
function isNotAlreadySubmit(){
	if(formIsSubmit){ 
		alert('Traitement en cours ... Veuillez patienter ...');
		return false;
	} else {
		return true;
	}	
}