function hideajaxloader(ctrl,obj_name)
{
	$("#"+obj_name).hide();
	ctrl.style.display = "inline";
}

function number_format(number,digits,coma,separator)
{
	if (digits==undefined) digits = 2;
	if (coma==undefined) coma = ".";
	if (separator==undefined) separator = " ";
	
	var sign = number<0 ? "-" : "";
	number = Math.abs(number);
	var int = Math.floor(number);
	if (digits==0)
	{
		int = Math.round(number);
		var float = "";
		coma = "";		
	}
	else
	{
		var ten = Math.pow(10,digits);
		var float = (Math.round((number-int)*ten)/ten).toString();
		if (float == "0") float = "0.";
		for (i=0; i<digits; i++) float += "00";
		float = float.substr(2,digits);
	}
	if (int >= 1000)
	{
		for (i=0, tmp=int.toString(), n=tmp.length, int=""; i<n; i++)
		{
			int = tmp.charAt(n-1-i)+ (i>1 && i % 3 ==0 ? separator : "")+ int;
		}
	}
	else int = int.toString();
	return sign + int + coma + float;
}

function sprintf()
{
	var chaine = arguments[0];
	for(var sum="",j=0,i=1,n=chaine.length; j<n; j++)
	{
		if (chaine.charAt(j)=="%" && j+1<n && (chaine.charAt(j+1)=="%" || chaine.charAt(j+1)=="d" || chaine.charAt(j+1)=="s"))
		{
			var add = "";
			switch(chaine.charAt(j+1))
			{
				case "%": add="%"; break;
				case "s": add=""+arguments[i]; break;
				case "d": add=Math.floor(1*arguments[i]); break;				
				case "f": add=1.0*arguments[i]; break;				
				case "x": add=""+arguments[i]; add=add.toString(16); break;				
			}
			sum += add;
			i++;
			j++;
		}
		else sum += chaine.charAt(j);
	}
	return sum;
}

function trim(str)
{
	str = ""+str;
	while (str.charCodeAt(0)<=32) str = str.substr(1,str.length);
	while (str.charCodeAt(str.length-1)<=32) str = str.substr(0,str.length-1);
	return str;
}

function timestamp()
{
	var today = new Date();
	return today.getTime();
}

function get_from_location(name)
{
	var tmp0 = ""+window.location.search;
	if (tmp0=="") return "";
	var tmp1 = tmp0.split('?');
	if (tmp1.length!=2) return "";
	var tmp2 = tmp1[1].split('&');
	for (var i=0,f=false,n=tmp2.length; i<n; i++)
	{
		if (tmp2[i].indexOf(name+"=")>=0)
		{
			f = true;
			var tmp3 = tmp2[i].split("=");
			tmp3[1] = unescape(tmp3[1]);
			break;
		}
	}
	if (f) return tmp3[1].split("+").join(" "); else return "";
}

function parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}	


// (c) http://www.sly63.com
function introspection(objet)
{
	if (objet===null) return "null";
	var methodes = new Array();
	var proprietes = new Array();
	for (var item in objet )
	{
		var valeur = typ = "undefined";
		var ok = true;
		try { eval(" valeur = objet."+ item +";"); } catch(e) { ok = false; valeur = ""; }
		if(ok) typ = typeof(valeur); else typ = "function";
		if(typ=='object' && valeur==null) 
		{ 
			typ = "function"; valeur = ""; 
			try { eval(" valeur = objet."+ item +"();"); } catch(e) { ok = false; valeur = ""; }
			if(ok) typ = typeof(valeur); else typ = "function";
		}
		if(typ=='string' ? valeur.length>20 : false ) valeur = escape(valeur.substr(0,20))+'...';
		if(typ=='function') 
			methodes.push ( '<strong>'+ item +'()</strong> = '+ valeur ); 
		else 
			proprietes.push ( '<strong>'+ item +'</strong> = ('+ typ +') '+ valeur );;
	}
	return methodes.length +' m&eacute;thodes et '+ proprietes.length +' propri&eacute;t&eacute;s<br/>'+ methodes.sort().join('<br/>') +'<hr/>'+ proprietes.sort().join('<br/>');
}


function toggle(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}

// (c) http://www.embimedia.com/resources/labs/js-inarray.html
Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

// (c) http://simon.incutio.com/archive/2004/05/26/addLoadEvent
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

// (c) http://www.dustindiaz.com/getelementsbyclass/
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

//*/


