
	// myLittleTools v0.1 - Claude Corpechot

	function e(element){if(arguments.length>1){var elements=[];for(var i=0;i< arguments.length;i++){elements.push(e(arguments[i]))};/*#1*/return elements}else{if(typeof(element)!='string'){var t=E(element,'fakeId');/*#2*/return t}else{var args=element.split(' ');if(args.length>1){for (var j=0, elements2 = [], length = args.length; j < length; j++)elements2.push(e(args[j]));/*#3*/return elements2}else{var tt= new E(document.getElementById(args[0]),args[0]);/*#4*/return tt;}}}}
	function E(e,id){this.e=e;this.id=id}// gérer le cas form et input
	E.prototype.o=function(){return this.e}
	E.prototype.Id=function(){alert('function(Id)')}
	E.prototype.Get=function(){return this.e.innerHTML}
	E.prototype.Set=function(html){this.e.innerHTML=html;return this}
	E.prototype.Reset=function(){this.e.innerHTML='';return this}
	E.prototype.insertTop=function(htmlTop){this.e.innerHTML=htmlTop+this.e.innerHTML;return this}
	E.prototype.insertBottom=function(htmlBottom){this.e.innerHTML+=htmlBottom;return this}
	E.prototype.tagName=function(){var str=this.e.tagName;return str.toLowerCase()}
	E.prototype.Type=function(){return typeof(this.o())}
	E.prototype.H=function(v){if(v){this.e.style.height=v+'px';return this}else{return this.e.style.height}}
	E.prototype.W=function(v){if(v){this.e.style.width=v+'px';return this}else{return this.e.style.width}}
	E.prototype.Show=function(){this.e.style.display='block';return this}
	E.prototype.Hide=function(){this.e.style.display='none';return this}
	E.prototype.Toggle=function(){if(this.e.style.display=='none'){this.e.style.display='block'}else{this.e.style.display='none'}return this}
	E.prototype.ClassName=function(v){if(v){this.e.className=v;return this}else{return this.e.className}}/*rajouter has/add/remove*/
	E.prototype.addClassName=function(v){if(v)this.e.className+=' '+v;return this}

	/*very simple forme serialization*/
	function $ccSerialize(form){
		var str='';for(var i=0;i<document.forms[form].elements.length;i++){if(i>0){str+='&'};str+=document.forms[form].elements[i].name+'='+encodeURIComponent(document.forms[form].elements[i].value)}
		return str;
	}

	/*generic ajax*/
	function $ccAjax(o){
	//console.profile() 
		var hasError=false;var hasErrorMsg='<b>Errors</n>:<br/>';var timeStamp='';
		//var url=o.url;var params=o.params;var form=o.form;var cache=o.cache;var method=o.method;var sync=o.sync;
		/*default settings & function parameters parsing*/
		if(!o.cache){o.cache=false;var d=new Date();timeStamp="&TimeStamp="+d.getYear()+d.getMonth()+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds()+d.getMilliseconds()}else{cache=true;}/*pas de cache par défaut, si on passe un param => cached... on enlève le timestamp*/
		if(!o.url){o.url='/'}
		if(o.params||o.form){o.method="POST";}/*if params are provided => POST*/
		if(o.form){if(o.params){o.params+='&'+$ccSerialize(o.form)}else{o.params=$ccSerialize(o.form)}}/*if form => formId to serizalize*/
		if(!o.url&&!o.params){hasError=true;hasErrorMsg+="No url, no params<br/>"}/*si pas d'url, ni de params => on bloque OPTION: appel vers la page en cours*/
		if(o.sync){o.sync=true}else{o.sync=false}/*default is false means async by default*/
		if(!o.method){o.method="GET"}else{o.method="POST"}/*should not be used... because POST and GET are based on url and params parameters provided to the main function*/
		if(o.google){_gaq.push(['_trackPageview', o.url+o.params]);}/*google*/
		if(o.method=="GET"){o.url+=timeStamp}else{o.params+=timeStamp}
		if(document.getElementById)var x=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest;if(x){
			if(!o.sync){
				x.onreadystatechange=function(){
					if(!o.status){
						var tId=false;
						/*htmlId as container for loading status*/if(o.html){tId=document.getElementById(o.html)}
						/*statusId as container... - option add a page param for global statusId*/if(o.statusId){tId=document.getElementById(o.statusId)}
						if(tId){tId.innerHTML='Loading...';}} // rajouter le cas show/hide d'un bloc qui contient le loader + loader dans un var js
					else{/*custom status management call*/o.status(o,0)}
					if(x.readyState==4){
						if(x.status==200){
								if(!o.status){
									var tId=false;
									/*htmlId as container for loading status*/if(o.html){tId=document.getElementById(o.html)}
									/*statusId as container... - option add a page param for global statusId*/if(o.statusId){tId=document.getElementById(o.statusId)}
									if(tId){tId.innerHTML='';}}
								else{/*custom status management call*/o.status(o,1)}
								if(!o.o2){
									/*load in html*/
									if(!o.success){
										if(o.html=='alert'){alert(x.reponseText)}
										else{
											var strText=$ccEval(x.responseText);
											if(o.html){document.getElementById(o.html).innerHTML=strText[0]};
											if(o.htmlTop){var tempStr=document.getElementById(o.html).innerHTML;document.getElementById(o.html).innerHTML=strText[0]+tempStr};
											if(o.htmlBottom){document.getElementById(o.html).innerHTML+=strText[0]};
											eval(strText[1]);
											}}
									/*callback function*/else{o.success(x,o);}}
								else{/*#1=true => Exec #2*/if(x.responseText=='True'||x.responseText=='true'||x.responseText==true){alert(true);$ccAjax(o.o2)}else{alert('The first request has returned "false"!')}}
						}else{alert('Error '+x.status+' '+x.statusText)} 
					}};
				if(o.method=="GET"){x.open("GET",o.url,true);x.send(null);
				}else{x.open("POST",o.url,true);x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");/*x.setRequestHeader("Content-length",o.params.length)*/;x.send(o.params);}
			}else{x.open("GET",o.url,false);x.send(null);alert('SYNC Response='+x.responseText)}
		}
	//console.profileEnd()
	}
		
	/*find js in string and eval it*/
	function $ccEvalOLD(data){
		var p1=0;var p2=0;var p3=0;
			p1=data.indexOf('<script')
			if(p1>0){
				p2=data.indexOf('>',p1)
				p3=data.indexOf('</script>',p2)
				var dataJS=data.substring(p2+1,p3);
				eval(dataJS);
		}
	}
	
	function $ccEval(content){ 
		var search = content; 
		var script;
		var js2eval
		while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/i)) 
		{ search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length); 
		  if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break; 
		  js2eval = search.substr(0, search.indexOf(RegExp.$1)); 
		  search = search.substring(js2eval.length + RegExp.$1.length); 
		  //var oScript = document.createElement('script'); 
		  //oScript.text = js2eval; 
		  //document.getElementsByTagName("head").item(0).appendChild(oScript);
		}
		var t= new Array(2);
		t[0]=content;
		t[1]=js2eval;
		return t; 
	}
	
	
	
