var _JSdebug = true//false;

/***** BUTTONS *********/
function AddButton(TargetObject,CleanTarget,TheId,TheValue,TheClass,TheAction,attachEnter){
	if(TheId==null)TheId=''
	var TheButton = CreateGraphicObject({Otype:'BUTTON',id:TheId,className:TheClass,'class':TheClass,'style.width':'100%','style.textAlign':'center'})
	TheButton.innerHTML = TheValue
	TheButton.onclick = function(){eval(TheAction)}
	if(TargetObject!=null){
		if(typeof TargetObject !='object')TargetObject = PLg(TargetObject)
		if(TargetObject){
			if(CleanTarget)TargetObject.innerHTML = ""
			TargetObject.appendChild(TheButton)
		}
	}
	else{
		return TheButton
	}
	if(attachEnter && attachEnter=='DoLoginMember'){
		setGlobalEvent(document,"keydown",attachEnterEventToDoLoginMemberButton)
	}
}

function AddButtonHTML(TheId,TheValue,TheClass,TheAction,TheWidth){
	if(!TheWidth)TheWidth='100%'
	if(TheId==null)TheId=''
	return ButtonData='<button class="'+TheClass+'" onclick="'+TheAction+'" style="width:'+TheWidth+';text-align:center">'+TheValue+'</button>'
}

function pushMe(obj){
	if(typeof obj != 'object')return
	SetOpacity(obj,50)
	setGlobalEvent(obj,"mouseup",function(){SetOpacity(obj,100)})
	setGlobalEvent(obj,"mouseout",function(){SetOpacity(obj,100)})
}

function attachEnterEventToDoLoginMemberButton(e){
	evt = e || window.event;
	if(evt.keyCode==13){
		try{DoLoginMember()}
		catch(o){}
	}
}

String.prototype.Trim = function(){return this.replace(/\s+/g,"");}
String.prototype.RemoveQuotes=function(){return this.replace(/'/g,"");}
String.prototype.JSQuotes=function(){return this.replace(/'/g,"\\'");}
Function.prototype.bind = function(scope){var method = this;return function (){return method.apply(scope, arguments);};} 

function JumpTo(url){document.location=url}

function pourcentage(nombre,pourcentage){return ((nombre/100)*pourcentage)}

var RemoveElement = function(Obj,Q){
	if(typeof Obj!='object'){var Obj=PLg(Obj);}
	if(!Obj)return;
	if(Q || Obj.id==""){if(Obj && Obj.parentNode)Obj.parentNode.removeChild(Obj);return;};

	if(Obj.style){
		if(isNaN(parseInt(Obj.style.opacity,10)))Obj.style.opacity=1;
		SetOpacity(Obj,(Obj.style.opacity-.3)*100);
	}

	if(Obj.style.opacity<.1){if(Obj && Obj.parentNode)Obj.parentNode.removeChild(Obj)}
	else{
		var T = window.setTimeout(function(){RemoveElement(Obj)},1)
	}
}

function FadeInObject(Obj){
	if(typeof Obj!='object')var Obj=PLg(Obj)
	if(!Obj)return;
	if(Obj.id==""){return;};
	
	if(Obj.style){
		if(typeof Obj.style.opacity == 'undefined')Obj.style.opacity=0.1;
		SetOpacity(Obj,(0.3+(parseFloat(Obj.style.opacity,10)))*100);
	}

	if(Obj.style.opacity >= 0.8){
		if(Obj.id=='ThePopUpBackgroundDiv'){SetOpacity(Obj,70);}
		else{SetOpacity(Obj,100);}
	}
	else{var T = window.setTimeout(function(){FadeInObject(Obj)},1)}
}

function SetOpacity(obj,val){
	obj.style.opacity = val/100;
	obj.style.filter = 'alpha(opacity=' + val + ')';
}

function SetObjectCoords(Obj,top,left,width,height){
	if(typeof Obj != 'object')return;
	if(!isNaN(parseInt(top,10)))Obj.style.top = parseInt(top,10)+'px';
	if(!isNaN(parseInt(left,10)))Obj.style.left = parseInt(left,10)+'px';
	if(!isNaN(parseInt(width,10)))Obj.style.width = parseInt(width,10)+'px';
	if(!isNaN(parseInt(height,10)))Obj.style.height = parseInt(height,10)+'px';
}

function ListAppend(liste,value,separateur){
	if(!separateur)var separateur=","
	if(liste.length<1){return value}
	else{return [liste,'',separateur,'',value].join('')}
}

function ListAppendUnic(liste,value,separateur){
	if(!separateur)var separateur=","
	if(liste.length<1){return value}
	else{
		var Tliste = liste.split(separateur)
		for(var i=0,ii=Tliste.length;i<ii;i++){if(Tliste[i]===value)return liste}
		return [liste,'',separateur,'',value].join('')
	}
}

function GetURLParameter(UP,URL){
	if(!URL)URL=window.location.href
	UP = UP.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	regex = new RegExp( "[\\?&]"+UP+"=([^&#]*)" );
	results = regex.exec(URL);
	if(results == null)return false;
	else return results[1];
}

function appendUrlAttribute(url,attribute,value){
	if( (/\?/).test(url) )return url + '&' + attribute + '=' + value
	else return url + '?' + attribute + '=' + value
}

/* Coche/decoche toutes les cases d'une page */
/* Argument : 1=cocher, 0=decocher */
function checkAllCheckBoxs(arg,racine){
	if(!racine)racine=''
	var Boxes=document.getElementsByTagName("input")
	for(var i=0,Li=Boxes.length; i<Li;i++){
		if(Boxes[i].type=='checkbox'){
			if(Boxes[i].id.indexOf(racine)>-1){
				if(arg=='reverse'){
					if(Boxes[i].checked)Boxes[i].checked=false
					else Boxes[i].checked=true
				}
				else Boxes[i].checked=arg;
			}
		}
	}
}

var _PLDisplayMessageTimer=null;
function PLDisplayMessage(target,mssg,remanent){
	if(PLg(target)){
		var TmpValue = PLg(target).innerHTML.JSQuotes()
		PLg(target).innerHTML = '<span style="color:red">'+mssg+'</span>'
		if(!remanent)_PLDisplayMessageTimer = window.setTimeout("PLDisplayMessageReset('"+target+"','"+TmpValue+"')", 6000)
		PLpopUpResize()
	}
}
function PLDisplayMessageReset(target,value){
	_PLDisplayMessageTimer=null;
	if(PLg(target)){PLg(target).innerHTML = value;PLpopUpResize()}
}

function CreateGraphicObject(ParamsObj){
	if(!ParamsObj || typeof ParamsObj !='object' || !IsDefined(ParamsObj.type))return
	var TGO = document.createElement(ParamsObj.Otype)
	for(var key in ParamsObj){
		try{
			if(key!='Otype' && key!='Otarget'){eval('TGO.'+key+'=\''+ParamsObj[key]+'\'')}
		}catch(o){}
	}

	if(ParamsObj.Otarget && typeof ParamsObj.Otarget=='string'){
		if(ParamsObj.Otarget=='body')document.body.appendChild(TGO);//Pour opera
		else if(PLg(ParamsObj.Otarget)){PLg(ParamsObj.Otarget).appendChild(TGO);}
	}
	else return TGO
}

function PLSignalInputError(target,mssg){
	if(PLg(target)){
		if( (PLg(target).tagName.toLowerCase()=='input' && PLg(target).type.toLowerCase()!='password') || PLg(target).tagName=='TEXTAREA'){
			if(PLg(target).value==mssg)return
			var OriginalValue = PLg(target).value.JSQuotes()
			PLg(target).style.color = PLg(target).style.borderColor = _ColorA
			PLg(target).value = mssg
		}
		else if((PLg(target).tagName.toLowerCase()=='input' && PLg(target).type.toLowerCase()=='password')){
			PLg(target).style.position='relative'
			var OriginalValue=''
			if(mssg){
	CreateGraphicObject({Otarget:'body',Otype:'DIV',id:'SignalInputErrorDiv',className:'txt','class':'txt','style.color':'#'+_ColorA,'style.position':'absolute','style.top':(PLgetPosTop(PLg(target))+19),'style.left':(PLgetPosLeft(PLg(target))+19),'style.zIndex':999999,'style.background':'white','innerHTML':mssg.JSQuotes()})
			PLg('SignalInputErrorDiv').onclick = function(){
			PLSignalInputErrorReset(target,OriginalValue)
		}
			}
		}
		else if(PLg(target).tagName.toLowerCase()=='div'){
			var OriginalValue=''
			PLg(target).style.border='2px dotted #'+_ColorA
			PLg(target).style.padding='5px'
			PLg(target).style.position='relative'
			PLg(target).style.marginBottom = '20px'
			if(mssg)CreateGraphicObject({Otarget:'body',Otype:'DIV',id:'SignalInputErrorDiv',className:'txt','class':'txt','style.color':'#'+_ColorA,'style.position':'absolute','style.top':(PLgetPosTop(PLg(target))+PLg(target).offsetHeight),'style.left':PLgetPosLeft(PLg(target)),'style.clear':'both','style.marginTop':'3px','innerHTML':mssg.JSQuotes()})
		}
		PLg(target).onfocus = function(){
			PLSignalInputErrorReset(target,OriginalValue)
		}
		_PLSignalInputErrorTO[target]=setTimeout("PLSignalInputErrorReset('"+target+"','"+OriginalValue+"')", 1500)
	}
}
var _PLSignalInputErrorTO=[]
function PLSignalInputErrorReset(target,OriginalValue){
	if(typeof _PLSignalInputErrorTO[target]=='number')clearTimeout(_PLSignalInputErrorTO[target])
	if(PLg(target)){
		PLg(target).onfocus = ""
		if( (PLg(target).tagName.toLowerCase()=='input' && PLg(target).type.toLowerCase()!='password') || PLg(target).tagName=='TEXTAREA'){
			PLg(target).style.color = PLg(target).style.borderColor = ''
			PLg(target).value = OriginalValue
			PLg(target).focus()
		}
		else if((PLg(target).tagName.toLowerCase()=='input' && PLg(target).type.toLowerCase()=='password')){
			RemoveElement('SignalInputErrorDiv')
			PLg(target).focus()
		}
		else if(PLg(target).tagName.toLowerCase()=='div'){
			PLg(target).style.border=''
			PLg(target).style.padding=''
			PLg(target).style.marginBottom =''
			RemoveElement('SignalInputErrorDiv')
		}
	}
}

function ResetMultipleObjectsBorders(type,prefixe,width,render,color){
	var TheColl = document.getElementsByTagName(type)
	for(var i=0,ii=TheColl.length;i<ii;i++){
		if(TheColl[i].id.length>0 && TheColl[i].id.indexOf(prefixe)==0){
			TheColl[i].style.border = width+'px '+render+' '+color
		}
	}
}

function PLgetPosLeft(obj){if (obj.offsetParent)return (parseInt(obj.offsetLeft,10) + PLgetPosLeft(obj.offsetParent));else return (parseInt(obj.offsetLeft,10))}
function PLgetPosTop(obj){if (obj.offsetParent)return (parseInt(obj.offsetTop,10) + PLgetPosTop(obj.offsetParent));else return (parseInt(obj.offsetTop,10))}

function GetWindowSize(FFreduce){
  var TwindowWidth =  window.innerWidth;
  var TwindowWidth = (TwindowWidth)? TwindowWidth : document.documentElement.clientWidth;
  var TwindowWidth = (TwindowWidth)? TwindowWidth : document.body.clientWidth;
  if(typeof(window.innerWidth)=='number' && FFreduce)TwindowWidth =  window.innerWidth-FFreduce
  var TwindowHeight =  window.innerHeight;
  var TwindowHeight = (TwindowHeight)? TwindowHeight: document.documentElement.clientHeight;
  var TwindowHeight = (TwindowHeight)? TwindowHeight: document.body.clientHeight;
  return {'width': TwindowWidth, 'height': TwindowHeight};
}

function getPageSize(){
  var windowSize = GetWindowSize()
  var xScroll = document.body.scrollWidth;
	var yScroll = (window.innerHeight && window.scrollMaxY)? window.innerHeight + window.scrollMaxY : document.body.scrollHeight;
	var pageWidth = (xScroll < windowSize.width)? windowSize.width : xScroll;  
  var pageHeight = (yScroll < windowSize.height)? windowSize.height : yScroll;
  return {'width': pageWidth, 'height': pageHeight};
}

var _SendToProductCategory
function SendToProduct(product){
	if(!product || product=='')return
	switch(product.toLowerCase()){
		case 'tirage' :
			JumpTo('/produits_photo/tirage_photo.cfm')
		break;
		
		case 'book':
		case 'livre':
			_SendToProductCategory = 'book'
		break;
		
		case 'calendrier':
			_SendToProductCategory = product
		break;
		
		default:
			alert("En cours de developpement")
			return
		break;
	}
	
	PLpopUpWait("Appel en cours","Merci de patienter un instant")
	var requestData='action=listAlbums'
	var RequestUrl=_RessourcesFolderEditeur+'grabAlbums.cfm'
	makeRequest(RequestUrl,requestData,'SelectPicturesSource')
}

function SendToSelection(IDALBUM){
	JumpTo('/tirages_photo/selection.cfm?action='+_SendToProductCategory+'&a='+IDALBUM)
}

function SendToUpload(){
	JumpTo('/telechargement/index.cfm?action='+_SendToProductCategory)
}

function GoToMediaSelector(){
	JumpTo('/partner/orange/mediaselector.cfm?action='+_SendToProductCategory)
}

function SelectPicturesSource(result){
	var AlbumsList = evalRequestResponse(result)
	if( PLpopUp("large","Vos photos","Que souhaitez-vous faire ?",false) ){
		var WindowData = ""
		if(AlbumsList!=null){
			
		WindowData+='<span class="Mtxt"><b>T&eacute;l&eacute;charger des photos depuis votre ordinateur :</b></span><br>'
		WindowData += '<div style="margin-top:10px;margin-bottom:10px">' + AddButtonHTML(null,"T&eacute;l&eacute;charger des photos","buttonsA","SendToUpload()") + '</div>'
			
			if(AlbumsList.length<2 && AlbumsList[0].NBOBJECT==0){
				// Ne possede pas de photos
			}
			else{
				WindowData+='<span class="Mtxt"><b>Utiliser des photos de vos albums :</b></span><br>'
				WindowData+='<div style="margin-top:10px;height:270px;overflow:auto">'
				for(var i=0,ii=AlbumsList.length;i<ii;i++){
					WindowData += '<div class="Alb_Div_album Lnk" onclick="SendToSelection('+AlbumsList[i].IDALBUM+')"><table cellpadding="0" cellspacing="0" border="0" class="content"><tr><td valign="middle" class="txt"><b>'
					if(AlbumsList[i].STATUS=='S'){
						WindowData += '<img src="'+AlbumsList[i].PICTUREURL+'t'+'_'+AlbumsList[i].IDPICTURE+'_'+AlbumsList[i].ROTATION+'.jpg"><br>'
					}
					if(AlbumsList[i].TITLE.Trim()!="")WindowData += AlbumsList[i].TITLE
					else WindowData += "Sans-titre"
					
					WindowData += '</b><br><b class="txts">'+AlbumsList[i].NBOBJECT+' photo(s)</b>'
					WindowData += '</td></tr></table>'
					WindowData += '</div>'
				}
				WindowData+='</div>'
			}
		}
		
		if(G_User.PartnerShip == 11 && G_User.IsMember && G_User.ORAalbums){
			// Membre orange avec albums
			WindowData+='<span class="Mtxt"><b>Utiliser des photos de mes albums Orange :</b></span><br>'
			WindowData += '<div style="margin-top:10px;margin-bottom:10px">' + AddButtonHTML(null,"Mes albums Orange","buttonsA","GoToMediaSelector()") + '</div>'
		}
		PLg("ThePopUpDivContent").innerHTML=WindowData
	}
}

/***********************/
/*** EVENTS HANDLING ***/
/***********************/

function setGlobalEvent(obj,evt,fnc){
	if(obj.addEventListener){ // Mozilla
		obj.addEventListener(evt,fnc,false);
	}
	else if (obj.attachEvent){ // IE
		obj.attachEvent('on'+evt,fnc);
	}
}

function removeGlobalEvent(obj,evt,fnc) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fnc,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fnc);
}

/***********************/
/***** SCROLLIFY *******/
/***********************/
function Scrollify(TheDiv,width,height,orientation,pas,delay,mouseWheel){
	if(PLg(TheDiv.id+'_container')){
		var TheDivContainer=PLg(TheDiv.id+'_container');
		TheDivContainer.style.width=width;
		TheDivContainer.style.height=height;
		TheDivContainer.style.position="relative"
		//TheDivContainer.style.border='1px solid red'
	}
	
	TheDiv.style.position="absolute"
	TheDiv.style.left=TheDiv.style.top=0;
	TheDiv.M_orientation=orientation;
	TheDiv.M_delay=delay;
	TheDiv.M_clipWidth=TheDiv.M_InitclipWidth=width;
	TheDiv.M_clipHeight=TheDiv.M_InitclipHeight=height;
	TheDiv.M_clipTop=TheDiv.M_clipLeft=0;
	TheDiv.M_pas = pas;
	
	if(mouseWheel){
		if(isIE){
			TheDiv.onmousewheel = function(){
				var WheelSens = (event.wheelDelta < 0)?true:false;
				DoScroll(TheDiv,WheelSens);
				DoScrollStop(TheDiv);
				return false;
			}
		}
		else{
			TheDiv.addEventListener("DOMMouseScroll", function(event){
				var WheelSens = (event.detail < 0)?false:true;
				DoScroll(TheDiv,WheelSens);
				DoScrollStop(TheDiv);
				if(event.preventDefault)event.preventDefault();
			}, false);

		}
	}
	
	TheDiv.style.clip = 'rect('+TheDiv.M_clipTop+'px,'+TheDiv.M_clipWidth+'px,'+TheDiv.M_clipHeight+'px,'+TheDiv.M_clipLeft+'px)';

	if(PLg(TheDiv.id+'_next')){
		var PlusButton=PLg(TheDiv.id+'_next');
		PlusButton.onmousedown=function(){DoScroll(TheDiv,true)}
		PlusButton.onmouseup=function(){DoScrollStop(TheDiv)}
		PlusButton.onmouseout=function(){DoScrollStop(TheDiv)}
	}

	if(PLg(TheDiv.id+'_prev')){
		var MoinsButton=PLg(TheDiv.id+'_prev');
		MoinsButton.onmousedown=function(){DoScroll(TheDiv,false)}
		MoinsButton.onmouseup=function(){DoScrollStop(TheDiv)}
		MoinsButton.onmouseout=function(){DoScrollStop(TheDiv)}
	}
}
function DoScroll(TheDiv,sens,decal){
	var clipLeft=parseInt(TheDiv.M_clipLeft,10)
	var clipTop=parseInt(TheDiv.M_clipTop,10)
	var clipWidth=parseInt(TheDiv.M_clipWidth,10)
	var clipHeight=parseInt(TheDiv.M_clipHeight,10)
	var lefter=parseInt(TheDiv.style.left,10)
	var topper=parseInt(TheDiv.style.top,10)
	
	if(sens)var pas=TheDiv.M_pas
	else var pas=TheDiv.M_pas*-1
	
	if(TheDiv.offsetWidth > TheDiv.M_InitclipWidth || TheDiv.offsetHeight > TheDiv.M_InitclipHeight){
		if(typeof(decal)!='number'){
			if(TheDiv.M_orientation=='h'){
				clipLeft += pas;
				clipWidth += pas;
				lefter -= pas;
				if (clipLeft < 5){
					clipLeft = 0;
					clipWidth = TheDiv.M_InitclipWidth;
					lefter = 0;
				}
				if(clipWidth > TheDiv.offsetWidth){
					clipLeft = TheDiv.offsetWidth-TheDiv.M_InitclipWidth;
					clipWidth = TheDiv.offsetWidth;
					lefter = clipLeft*-1;
				}
				clipstring = 'rect('+clipTop+'px,'+clipWidth+'px,'+clipHeight+'px,'+clipLeft+'px)';
				TheDiv.style.clip = clipstring;
				TheDiv.style.left = lefter + 'px';
			}
			else{alert('a faire...')}
			
			TheDiv.M_clipLeft=clipLeft
			TheDiv.M_clipTop=clipTop
			TheDiv.M_clipWidth=clipWidth
			TheDiv.M_clipHeight=clipHeight
		
			TheDiv.timer = window.setTimeout(CallDoScroll(TheDiv.id,sens), TheDiv.M_delay)
		}
		else{
			if(TheDiv.M_orientation=='h'){
				clipLeft = decal;
				clipWidth = decal+TheDiv.M_InitclipWidth;
				lefter = decal*-1;
				if(clipWidth > TheDiv.offsetWidth){
					clipLeft = TheDiv.offsetWidth-TheDiv.M_InitclipWidth;
					clipWidth = TheDiv.offsetWidth;
					lefter = clipLeft*-1;
				}
				clipstring = 'rect('+clipTop+'px,'+clipWidth+'px,'+clipHeight+'px,'+clipLeft+'px)';
				TheDiv.style.clip = clipstring;
				TheDiv.style.left = lefter + 'px';
				
				TheDiv.M_clipLeft=clipLeft
				TheDiv.M_clipTop=clipTop
				TheDiv.M_clipWidth=clipWidth
				TheDiv.M_clipHeight=clipHeight
			}
		}
	}
}

function CallDoScroll(id,sens){
	return function(){
		DoScroll(PLg(id),sens)
	}
}

function DoScrollStop(TheDiv){
	if(TheDiv.timer)clearTimeout(TheDiv.timer);
}

function FormatPrice(price){
	if(isNaN(parseInt(price,10)))return
	price = price.toString()
	price = price.split('.')
	
	var entier = price[0].toString()
	if(price[1])var flottant = price[1].toString()
	else flottant = '00'
	flottant = (flottant.length<2)? flottant+'0' : flottant
	flottant = (flottant.length>2)? flottant.substring(0,2) : flottant
	return entier+','+flottant+'&nbsp;&euro;'
}

String.prototype.isValidEmail = function(){
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    return re.test(this);
}
String.prototype.isValidDate = function () {
	/* si la date est au format dd/mm/yyyy */   
   var ladate = (this).split("/");
	
   if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false;

   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));
   
   var annee = unedate.getYear();
   if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;

   return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])));
}

function IsDefined(Var){return (typeof Var != undefined) ? true : false;}





// ==========================================================================
// Fuctions to mimic LTrim, RTrim, and Trim...
// Author          Aurélien Tisné	(CS)
// Date            03 avr. 2003 23:11:39
// Last Update     $Date$
// Version         $Revision$
// ==========================================================================

// --------------------------------------------------------------------------
// Remove leading blanks from our string.
// I               str - the string we want to LTrim
// Return          the input string without any leading whitespace
// Date            03 avr. 2003 23:12:13
// Author          Aurélien Tisné	(CS)
// --------------------------------------------------------------------------
function LTrim(str)
{
  var whitespace = new String(" \t\n\r");

  var s = new String(str);

  if (whitespace.indexOf(s.charAt(0)) != -1) {
    // We have a string with leading blank(s)...

    var j=0, i = s.length;

    // Iterate from the far left of string until we
    // don't have any more whitespace...
    while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
    j++;

    // Get the substring from the first non-whitespace
    // character to the end of the string...
    s = s.substring(j, i);
  }

  return s;
}

// --------------------------------------------------------------------------
// Remove trailing blanks from our string.
// I               str - the string we want to RTrim
// Return          the input string without any trailing whitespace
// Date            03 avr. 2003 23:13:50
// Author          Aurélien Tisné	(CS)
// --------------------------------------------------------------------------
function RTrim(str)
{
  // We don't want to trip JUST spaces, but also tabs,
  // line feeds, etc.  Add anything else you want to
  // "trim" here in Whitespace
  var whitespace = new String(" \t\n\r");

  var s = new String(str);

  if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
    // We have a string with trailing blank(s)...

    var i = s.length - 1;       // Get length of string

    // Iterate from the far right of string until we
    // don't have any more whitespace...
    while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
      i--;

    // Get the substring from the front of the string to
    // where the last non-whitespace character is...
    s = s.substring(0, i+1);
  }

  return s;
}

// --------------------------------------------------------------------------
// Remove trailing and leading blanks from our string.
// I               str - the string we want to Trim
// Return          the trimmed input string
// Date            03 avr. 2003 23:15:09
// Author          Aurélien Tisné	(CS)
// --------------------------------------------------------------------------
function Trim(str)
{
  return RTrim(LTrim(str));
}

function FormatPriceNoEuro(price){
	if(isNaN(parseInt(price,10)))return
	price = price.toString()
	price = price.split('.')
	
	var entier = price[0].toString()
	if(price[1])var flottant = price[1].toString()
	else flottant = '00'
	flottant = (flottant.length<2)? flottant+'0' : flottant
	flottant = (flottant.length>2)? flottant.substring(0,2) : flottant
	return entier+'.'+flottant;
}
