function goodchars(e, goods) {
	var key, keychar;
	key = getkey(e);
	if (key == null) return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();
	if (goods.indexOf(keychar) != -1)
		return true;
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
		return true;
	return false;
}
function getkey(e) {
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
		return null;
}
function getBrowser() {
    brs=navigator.userAgent.toLowerCase();
    var retval;
    if (brs.search(/msie\s(\d+(\.?\d)*)/)!=-1) {
        retval='msie';
    } else if (brs.search(/netscape[\/\s](\d+([\.-]\d)*)/)!=-1) {
        retval='netscape';
    } else if (brs.search(/firefox[\/\s](\d+([\.-]\d)*)/)!=-1) {
        retval='firefox';
    } else {
        retval='unknown';
    }
    return retval;
}
function checkKeyPress(ev, obj, allowDot) {
    var keyCode = null;
    if ( getBrowser()=='msie' ) {
        keyCode = window.event.keyCode;
    } else if ( getBrowser()=='netscape' || getBrowser()=='firefox' ) {
        keyCode = ev.which;
    }
    var keyAllowed = true;
    if (keyCode==8||keyCode==9) {
        retval = true;
    } else {
		if (allowDot)
			keyAllowed =  ((keyCode >= 48) && (keyCode <= 57) || keyCode == 46)
		else
			keyAllowed = (keyCode >= 48) && (keyCode <= 57)

	    if (!keyAllowed) {
    	    if ( getBrowser()=='msie' ) {
        	    window.event.keyCode=0;
	        } else if ( getBrowser()=='netscape' || getBrowser()=='firefox' ) {
    	        ev.preventDefault();
        	    ev.stopPropagation();
            	ev.returnValue=false;
	        }
    	}
		   return false;
	}
}

function validate_email(input) {
	s= input.value
	if(s.search) {
		return (s.search(new RegExp("^([-!#$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}$","gi"))>=0)
	}
	if(s.indexOf) {
		at_character=s.indexOf('@')
		if(at_character<=0 || at_character+4>s.length)
			return false
	}
	if(s.length<6)
		return false
	else
		return true
}
function checkAll(f) {
  for(var i=0 ; i<f.elements.length; i++) {
      var e = f.elements[i];
      if((e.type == 'checkbox') && (e.name != 'checkall'))
 	  e.checked = f.checkall.checked;
  }
}

function checkCtrl(f) {
  var len = f.elements.length;
  var totboxes = 0;
  var toton = 0;

	for(var i=0 ; i<len ; i++) {
		var e = f.elements[i];
		if((e.type == 'checkbox') && (e.name != 'checkall')) {
			totboxes++;
			if(e.checked) {
				toton++;
			}
		}
	}
	if(totboxes == toton) {
		f.checkall.checked = true;
	} else {
		f.checkall.checked = false;
	}
}

function setSelectOptions(the_form, the_select, do_check) {
    var selectObject = document.forms[the_form].elements[the_select];
    var selectCount  = selectObject.length;

    for (var i = 0; i < selectCount; i++) {
        selectObject.options[i].selected = do_check;
    } // end for

    return true;
} // end of the 'setSelectOptions()' function

function howMany(selectObject) {
var numberSelected = 0
	for (var i=0; i < selectObject.options.length; i++) {
		if (selectObject.options[i].selected==true)
			numberSelected++
	}
	return numberSelected
}
function CopyClipboard(text) {
    var flashcopier = 'flashcopier';
    // remplace les \n encodes en retours chariots correctement encodes
    var encoded = encodeURIComponent(text).split('%5Cn').join('%0A');
    if(!document.getElementById(flashcopier)) {
        var divholder = document.createElement('div');
        divholder.id = flashcopier;
        document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    // tag object et embed imbriques pour une meilleure compatibilite
    var divinfo = '<object width="0" height="0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"><param name="movie" value="/js/_clipboard.swf" /><param name="flashvars" value="clipboard='+encoded+'" /><embed src="/js/_clipboard.swf" flashvars="clipboard='+encoded+'" width="0" height="0" type="application/x-shockwave-flash"></embed></object>';
    document.getElementById(flashcopier).innerHTML = divinfo;
}

var overlayOpacity = 0.8;
var overlayDuration = 0.2;
function reportError() {
	alert('Unknown Error');
}
function tmp_Loading() {
/*
	var arrayPageScroll = getPageScroll();
	var arrayPageSize = getPageSize();
	var loadingTop = ( arrayPageScroll[1] + (arrayPageSize[3] / 10) ) - 50;
	var loadingLeft = arrayPageScroll[0];
	$('loading').style.top = loadingTop + "px";
	new Effect.Appear('loading', { duration: overlayDuration, from: 0.0, to: overlayOpacity });
*/
//	new Effect.Appear('loading', { duration: 0.2, from: 0.0, to: 0.8 });
	$('ajax_loading_box').show();
}
function tmp_Loaded() {
//	new Effect.Fade('loading', { duration: overlayDuration});
//	new Effect.Fade('loading', { duration: 0.2 });
//	pageScroll(0,0,10);
	$('ajax_loading_box').hide();
}
function getPageScroll(){
	var xScroll, yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}
	arrayPageScroll = new Array(xScroll,yScroll) 
	return arrayPageScroll;
}
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	

	if (self.innerHeight) {
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}
var pageScrollTimer;

function pageScroll(toX,toY,frms) {
	var tmpX = 0 + getScrollLeft();
	var tmpY = 0 + getScrollTop();
	var cuX = tmpX;
	var cuY = tmpY;

	if (pageScrollTimer) clearTimeout(pageScrollTimer);

	if (!toX || toX < 0 ) {toX = 0;}  
	if (!toY || toY < 0 ) {toY = 0;}

	if (!frms) frms = 6;

	cuX += (toX - getScrollLeft()) / frms;
	if (cuX < 0) cuX = 0;
	cuY += (toY - getScrollTop()) / frms;
	if (cuY < 0) cuY = 0;

	var posX = Math.floor(cuX);
	var posY = Math.floor(cuY);

	if (posX == tmpX) posX = toX;
	if (posY == tmpY) posX = toY;

	window.scrollTo(posX, posY);

	if (posX != getScrollLeft()) toX = getScrollLeft();
	if (posY != getScrollTop()) toY = getScrollTop();

	if (posX != toX || posY != toY) {
		pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+")",16);
	}
}
function getScrollLeft() {
	if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
		return document.body.scrollLeft;
	}else if(window.pageXOffset) {
		return window.pageXOffset;
	}else{
		return 0;
	}
}

function getScrollTop() { 
	if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
		return document.body.scrollTop;
	} else if (window.pageYOffset) {
		return window.pageYOffset;
	} else {
		return 0;
	}
}
function popUP(url, en, boy, param) {
	var params = "screenX=5,screenY=5,top=5,left=5,width="+en+",height="+boy+","+param;
	newWin = window.open(url, "Dummy", params)
	newWin.focus();
}
function printDiv(divId) {
	var divArray = document.getElementsByTagName('div');
	for (var i=0; i<divArray.length; i++) {
		divArray[i].style.display = 'none';
	}
	document.getElementById(divId).style.display = 'block';
	pausecomp(100);
	window.print();
	for (var i=0; i<divArray.length; i++) {
		divArray[i].style.display = 'block';
	}
}
function pausecomp(millis) {
	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); }
		while(curDate-date <millis);
}


function doTopSearch(val) {
	if(val.length<3) {
		alert('Type 3 chars at least');
		return false;
	}
	return true;
}

function check_top_search(v) {
	if(v=="") {
		alert("Type at least 3 chars");
		return false;
	}
	if(v.length<3) {
		alert("Type at least 3 chars");
		return false;
	}
	return true;
}
