if(!document.getElementById && document.all)
	document.getElementById = function(id) {return document.all[id];};
else if(!document.getElementById && !document.all)
	document.getElementById = function(id) {return { style: {} };};

function logout(){
	var xhr = getXhr();
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			if(xhr.responseText.trim() == 'false'){alert("erreur : "+xhr.responseText);}
			else{window.location.href= '?';}
			}
	}
	xhr.open("POST","?module=action",true);
	xhr.setRequestHeader( "Content-type" , "application/x-www-form-urlencoded" ); 
	xhr.send('action=logout');
	}

	function G_ex_interdit(ide){
		var Myvalue = ide.value;
		reg=new RegExp("[\|~`]", "gi");
		Myvalue=Myvalue.replace(reg, "");
		if(Myvalue != ide.value){
			ide.value = Myvalue;
			alert(_JAVA_FORBIDDEN_CARACTER);
			}
		}
		
function isdate(ide){
		reg=new RegExp("[^0-9/]", "gi");
		ide.value=ide.value.replace(reg, "");
		var ch;
		var ch_gauche, ch_droite;
		ch = ide.value;
		ch.toString();
		if ( ( (ch.slice(2,3)) != ("/") ) && (ch.length >= 3) ){
			ch_gauche = ch.slice(0,2);
			ch_droite = ch.slice(2);
			ide.value = ch_gauche + "/" + ch_droite;
			}
		if ( ( (ch.slice(5,6)) != ("/") ) && (ch.length >= 6) ){
			ch_gauche = ch.slice(0,5);
			ch_droite = ch.slice(5);
			ide.value = ch_gauche + "/" + ch_droite;
			}
		if(ide.value.length > 10){
			ide.value = ide.value.substr(0 , 10);
			}
		return;
		}

function verifdate(saisie) {
	if (saisie == "") return false;
	saisie = (saisie).split("/");
	if ((saisie.length != 3) || isNaN(parseInt(saisie[0] , 10)) || isNaN(parseInt(saisie[1] , 10)) || isNaN(parseInt(saisie[2] , 10))) return false;
	saisie[0] = parseInt(saisie[0] , 10);
	saisie[1] = parseInt(saisie[1] , 10);
	saisie[2] = parseInt(saisie[2] , 10);
	var laDate = new Date(eval(saisie[2]),eval(saisie[1])-1,eval(saisie[0]));
	var annee = laDate.getYear();
	if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;
	return ((laDate.getDate() == eval(saisie[0])) && (laDate.getMonth() == eval(saisie[1])-1) && (annee == eval(saisie[2])));
	}
				
function isfloat(ide){
	reg=new RegExp("[^0-9.,]", "gi");
	ide.value=ide.value.replace(reg, "");
	ide.value=ide.value.replace(",", ".");
	}

function isnumber(ide){
	reg=new RegExp("[^0-9]", "gi");
	ide.value=ide.value.replace(reg, "");
	}

function isphone(ide){
	reg=new RegExp("[^0-9 .+()]", "gi");
	ide.value=ide.value.replace(reg, "");
	}

	function handleEnter (event) {
			var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
			if (keyCode == 13) {return false;} else {return true;}
		}      

	function G_bSyntaxeEmail(sMail){
		var re=/^[a-z0-9A-Z]+[-._\'a-z0-9A-Z]*@[-._a-z0-9A-Z]+\.[a-z]{2,6}$/gi;
		return (sMail.match(re)==sMail)&&(sMail.substr(sMail.lastIndexOf("@")).length<=256);
		}

	function G_bDomainTLD(sMail){
		var re=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|aero|arpa|biz|com|coop|edu|eu|gov|info|int|mil|museum|name|net|org|pro|jobs|travel)$/gi;
		return sMail.substr(sMail.lastIndexOf(".") + 1).match(re)!=null;
		}

	function G_testmail(sMail){
		if (!G_bSyntaxeEmail(sMail)){return false;}
//	  else if (!G_bDomainTLD(sMail)){return false;}
	  else {return true;}
		}

function html_entity_decode(str) {
  	var ta=document.createElement("textarea");
   	ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
   	return ta.value;
}

function ImgSet(champs , statut){
	if(G_obj('img_'+champs))
		G_obj('img_'+champs).src = './images/'+statut+'.gif';
	if(G_obj(champs))
		if(statut == 1){
			G_obj(champs).style.backgroundColor = '#ffffff';
			$('#'+champs+'[type=text]').css('border' , '1px solid #1F96C0');
			$('select#'+champs+'').css('border' , '1px solid #1F96C0');
			$('textarea#'+champs+'').css('border' , '1px solid #1F96C0');
		}else{
			G_obj(champs).style.backgroundColor = '#FAEBD7';
			$('#'+champs+'[type=text]').css('border' , '1px solid #ff0000');
			$('select#'+champs+'').css('border' , '1px solid #ff0000');
			$('textarea#'+champs+'').css('border' , '1px solid #ff0000');
		}
	}

function G_obj(objname){
    testObj = document.getElementById(objname);return testObj;
}

function test_mail(champs){
	if(!G_testmail(champs.value)){ImgSet(champs.name , '0');}else{ImgSet(champs.name , '1');}
}

function uncheck(form, MyName) {
	if(document.forms[form]){
		document.forms[form].elements[MyName].checked = false;
		}
}

function Mydelete(Myelement , Mymessage) {
	if(!confirm(Mymessage)){return false;}
	else{Myelement.form.submit();}
	}

function maxLength(field, maxChars)
{
	if(field.length >= maxChars) {
        return true;
    } else {
    	return false;
    }
}

function test_length(field, maxChars){
	if(maxLength(field.value, maxChars)){
		ImgSet(field.name , '0')
	} else {
		ImgSet(field.name , '0')
	}
}

function disable_select(value, src_select, dest_select){
	if(src_select.value == 'NULL'){
		src_select.form[dest_select].disabled = "";
	} else {
		src_select.form[dest_select].disabled = "true";
	}
}
		
function verifForm(champs){
	var MyForm = champs.form;
	var Mytype;
	var MyValue;
	var TabChamps = new Array();
	var Myref;
	var pos;
	var cont=0;
	if(MyForm.name == 'AccountCreate')
		TabChamps = new Array('text|user_nom' , 'text|user_prenom' , 'mail|user_mail', 'text|user_password', 'valid|user_password_valid');
	else if(MyForm.name == 'GroupCreate')
		TabChamps = new Array('text|group_name', 'textarea|group_desc', 'textarea|group_tags');		
	else if(MyForm.name == 'EventCreate')
		TabChamps = new Array('text|event_name', 'textarea|event_desc', 'textarea|event_place', 'textarea|event_tags', 'text|event_start' , 'text|event_end');		
	else if(MyForm.name == 'FileCreate')
		TabChamps = new Array('text|file_url' , 'text|file_name', 'textarea|file_desc', 'textarea|file_tags');
	else if(MyForm.name == 'UserInvite')
		TabChamps = new Array('text|user_mail');
	else if(MyForm.name == 'NewFieldCateg')
		TabChamps = new Array('text|categ_name');
	else if(MyForm.name == 'FastSearch')
		TabChamps = new Array('text|search');	
	else if(MyForm.name == 'CreatePage')
		TabChamps = new Array('text|page_title');	
	else if(MyForm.name == 'MenuCreate')
		TabChamps = new Array('text|menu_name');	
	else if(MyForm.name == 'NewField')
		TabChamps = new Array('text|field_name', 'select|field_categ_id');	
	else if(MyForm.name == 'FullAction_invit')
		TabChamps = new Array('text|list_uid');	
	else if(MyForm.name.substring(0,13) == 'post_message_')
		TabChamps = new Array('text|post_subject' , 'text|post_text');	
			
	if(TabChamps.length > 0){
		for(i=0;i<TabChamps.length;i++){
			MyValue = '';
			MyType = TabChamps[i].split('|');
	
			// type select
			if(MyType[0] == 'select')
				MyValue = MyForm.elements[MyType[1]].options[MyForm.elements[MyType[1]].selectedIndex].value;
			// typecheckbox
			else if(MyType[0] == 'checkbox'){
				if(MyForm.elements[MyType[1]].checked)
					MyValue = MyForm.elements[MyType[1]].value;
				else
					MyValue = '';
			}
			// type text et area et mail
			else
				MyValue = MyForm.elements[MyType[1]].value;
			
			if(MyValue != ''){
				if(MyType[0] == 'mail'){if(!G_testmail(MyValue)){cont=1;ImgSet(MyType[1] , '0');}else{ImgSet(MyType[1] , '1');}}
				else if(MyType[0] == 'textarea'){if(maxLength(MyValue, 255)){cont=1;ImgSet(MyType[1] , '0');}else{ImgSet(MyType[1] , '1');}}
				else if(MyType[0] == 'valid'){
					pos = MyType[1].lastIndexOf("_");
					Myref = MyType[1].substr(0, pos);
					if(MyForm.elements[Myref].value != MyValue){cont=1;ImgSet(MyType[1] , '0');}else{ImgSet(MyType[1] , '1');}
					}
				else{ImgSet(MyType[1] , '1');}
				}
			else{cont=1;ImgSet(MyType[1] , '0');}
			}
		if(cont == 0){
			G_obj(MyForm.name+'_BtnSubmit').className = "Activate";
			G_obj(MyForm.name+'_BtnSubmit').onclick = function() { 
				document.forms[MyForm.name].submit();
				};
			}
		else{
			G_obj(MyForm.name+'_BtnSubmit').className = "InActivate";
			G_obj(MyForm.name+'_BtnSubmit').onclick = function() {};
			}
		}
	}

	document.getElementsByClassName = function(nomClasse, element) {
  	var resulat = new Array();
  	if(nomClasse!="" || typeof element == 'object'){
  	  var mesFils = element.getElementsByTagName('*');
  	  var exp_reg = new RegExp("(^|\\s)" + nomClasse + "(\\s|$)");
  	  for (var i = 0; i < mesFils.length; i++) {
  	    var laClasse = (mesFils[i].className)? mesFils[i].className : "";
  	    if(laClasse != "" && (laClasse == nomClasse || laClasse.match(exp_reg))){
  	      resulat.push(mesFils[i])
   	   }
   	 }
  	}
  	return resulat;
		};

	function MydoStyle(ide , styl){
		if(G_obj('SubEntry_'+ide)){
			G_obj('SubEntry_'+ide).style.display = styl;
			}
		}

function DelFileShow(creator , Myfile){
	if(Myfile != ''){
		var xhr = getXhr();
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				if(xhr.responseText.trim() != 'true'){alert("erreur : "+xhr.responseText);}
				else{
					document.forms['FileCreate'].elements['file_url'].value= '';
					document.getElementById('UploadDone').style.visibility =  'hidden';
					document.getElementById('UploadDone').style.display =  'none';
					G_obj('FrameUpload').src = 'cgi/transfert.cgi?idc='+creator;
					document.getElementById('FrameUpload').style.visibility =  'visible';
					document.getElementById('FrameUpload').style.display =  'block';
					verifForm(document.forms['FileCreate'].elements['file_url']);
					}
				}
			}
		xhr.open("POST","?module=account&&action=delete_file",true);
		xhr.setRequestHeader( "Content-type" , "application/x-www-form-urlencoded" ); 
		xhr.send('doc='+Myfile+'');
		}
	}

	function getXhr(){
		var xhr = null; 
		if(window.XMLHttpRequest){xhr = new XMLHttpRequest();}
		else if(window.ActiveXObject){try {xhr = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {xhr = new ActiveXObject("Microsoft.XMLHTTP");}}
		else {alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false;} 
		return xhr
		}

String.prototype.trim = function(){return this.replace(/(?:^\s+|\s+$)/g, "");}

	function verifSubmit(Myform , champs, message){
		if(champs != ''){
			if(Myform.elements[champs].value == ''){
				return false;
				}
			else{if(!confirm(message)){return false;}else{Myform.submit();}}
			}
		else{
			if(!confirm(message)){return false;}else{Myform.submit();}
			}
		}

	function askConfirmation(module , actio , param , message){
		if(!confirm(message))
			return false;
		else
			window.location.href='?module='+module+'&action='+actio+param;
		}