// ../javascript/function.js
// masque un div
function masquer (id_name) {
		 document.getElementById(id_name).style.display="none";
}

// demasque un div
function demasquer (id_name) {
		 document.getElementById(id_name).style.display="block";
}

// masque ou demasque un div
function change_display (id_name) {
		 if(document.getElementById(id_name).style.display=="block"){
				masquer(id_name);
		}else{
				demasquer(id_name);		
		}
}

//Using purely DOM methods as proposed by W3C to simulate .innerHTML  is a little
//tricky, and alludes even a lot of seasoned DHTML programmers. Nevertheless,
//it's doable.
//The following elegant code is devised by Rey Nunez, a surfer of JavaScript Kit 
//and active helper in the JK Forum. Using the below function, we can accomplish 
//dynamic content in NS 6 using DOM methods:

function dynamiccontentNS6(elementid,content){
    if (document.getElementById){
        rng = document.createRange();
        el = document.getElementById(elementid);
        rng.setStartBefore(el);
        htmlFrag = rng.createContextualFragment(content);
        while (el.hasChildNodes()){
            el.removeChild(el.lastChild);
        }
        el.appendChild(htmlFrag);
    }
}

// fonctions servant à la validation des formulaires

// test de la longeur d'une chaine de caractère
function longueur_inferieur_a(obj, n) {
    return (obj.value.length <= n);
}

// verifie les mails
function email_valid(obj) {
    return obj.value.match(/^[\w_.~-]+@[\w][\w.\-]*[\w]\.[\w][\w.]*[a-zA-Z]$/i);
}

function invalidEmail(mail){
 	return ((mail.indexOf("@") < 0) || (mail.indexOf(".") < 0));
}
	
//verifier si la chaine contient des characters, retour faux si c'est le cas
function isNumeric(x) {
  	var numbers=".0123456789";	
    // is x a String or a character?
    if(x.length>1) {
      // remove negative sign
      x=Math.abs(x)+"";
      for(j=0;j<x.length;j++) {
        // call isNumeric recursively for each character
        number=isNumeric(x.substring(j,j+1));
        if(!number) return number;
      }
      return number;
    } else {
      // if x is number return true
      if(numbers.indexOf(x)>=0) return true;
      return false;
    }
}

// val: nom de la colonne par laquelle on effectue le trie
// ord : l'ordre du trie - asc, desc
// type de colonne: on cast un string en int pour effectuer le trie 
function sortBy(val, ord, type){
	with(document.forms.recherche){
		sort_arr = sort_liste.value.split(",");

		if(type == 1){ //cast string en integer
			sort_liste.value = 'cast(trim(leading 0 from '+val+') As integer) '+ord;			
			temp_asc = 'cast(trim(leading 0 from '+val+') As integer) '+'asc';
			temp_desc = 'cast(trim(leading 0 from '+val+') As integer) '+'desc';						
		}else{
			sort_liste.value = val+' '+ord;
			temp_asc = val+' asc';
			temp_desc = val+' desc';						
		}

		for(i=0;i<sort_arr.length;i++){
			if(!(sort_arr[i]==temp_asc || sort_arr[i]==temp_desc))
				sort_liste.value = sort_liste.value+','+sort_arr[i];
		}
		submit();
	}
}

function submitOnKeyPress(e){
  if (e.keyCode) code = e.keyCode;
  else if (e.which) code = e.which;
  
  if(code=='13'){
    rechercher();
  }
}

//-------------- Trimming -------------------
function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){ return"";}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){ return ""; }else{ return TRIM_VALUE;}
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	
	if(v_length < 0)
		return"";

	var iTemp = v_length -1;
	
	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
			//do nothing
		}else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;				
	} //End While
	return strTemp;				
} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";					
	var iTemp = 0;
	
	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
			//do nothing
		}else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function

function checkTelephone(telephone)
{
  var ccCheckRegExp = /[^\d()^\s^\.]/;
  var isValid = false;
  isValid = !ccCheckRegExp.test(telephone);
  return isValid;
}//end function

function replaceExtChars(text,output) {
  text = text.replace(eval('/&amp;/g'), '&');
  fromTo = new Array('&AElig;','Æ','&Aacute;','Á','&Acirc;','Â','&Agrave;',
                    'À','&Aring;','Å','&Atilde;', 'Ã','&Auml;','Ä','&Ccedil;','Ç','&ETH;','Ð',
                    '&Eacute;','É','&Ecirc;','Ê','&Egrave;','È ','&Euml;','Ë','&Iacute;','Í',
                    '&Icirc;','Î','&Igrave;','Ì','&Iuml;','Ï','&Ntilde;','Ñ', '&Oacute;','Ó',
                    '&Ocirc;','Ô','&Ograve;','Ò','&Oslash;','Ø','&Otilde;','Õ','&Ouml;','Ö',
                    '&THORN; ','Þ','&Uacute;','Ú','&Ucirc;','Û','&Ugrave;','Ù','&Uuml;','Ü',
                    '&Yacute;','Ý','&aacute;', 'á','&acirc;','â','&aelig;','æ','&agrave;','à',
                    '&aring;','å','&atilde;','ã','&auml;','ä ','&brvbar;','¦','&ccedil;','ç',
                    '&cent;','¢','&copy;','©','&deg;','°','&eacute;','é', '&ecirc;','ê','&egrave;',
                    'è','&eth;','ð','&euml;','ë','&frac12;','½','&frac14;','¼','&frac34; ','¾',
                    '&gt;','>','&gt','>','&iacute;','í','&icirc;','î','&iexcl;','¡','&igrave;','ì',
                    '&iquest;','¿','&iuml;','ï', '&laquo;','«','&lt;','<','&lt','<','&mdash;','',
                    '&micro;','µ','&middot;','·','&ndash;','','&not;','¬','&ntilde;','ñ', '&oacute;',
                    'ó','&ocirc;','ô','&ograve;','ò','&oslash;','ø','&otilde;','õ','&ouml;','ö',
                    '&para;','¶','&plusmn;','±','&pound;',' £','&quot;','\"','&raquo;','»','&reg;',
                    '®','&sect;','§','&shy;','*','&sup1;','¹','&sup2;','²', '&sup3;','³','&szlig;',
                    'ß','&thorn;','þ','&tilde;','','&trade;','','&uacute;','ú','&ucirc; ','û',
                    '&ugrave;','ù','&uuml;','ü','&yacute;','ý','&yen;','¥','&yuml;','ÿ');
  
  if (output) {
    fromTo[fromTo.length] = '&amp;';
    fromTo[fromTo.length] = '&';
  }
  
  for (i=0; i < fromTo.length; i=i+2){
    text = text.replace(eval('/'+fromTo[i]+'/g'), fromTo[i+1])
  }
  return (text);
}