/******************************************************************/
/*	Vérification du Rib par les données d'entrée :                */
/*  cb = code banque                                              */
/*  cg = code guichet                                             */
/*  nc = n° de compte                                             */
/*  cr = clé RIB                                                  */
/*  ob = RIB non vide obligatoire                                 */
/******************************************************************/
function verifRIB(cb,cg,nc,cr,ob)
{

	if ( (cb=="") && (cg=="") && (nc=="") && (cr=="") && (!ob)) return true;

	var a,b,c,d,e,f,g,h,i,j,k,l;
	var x1 = 0, x2;
	var valrib = "A1B2C3D4E5F6G7H8I9J1K2L3M4N5O6P7Q8R9S2T3U4V5W6X7Y8Z9";
	do
	{

		if ( nc.charCodeAt(x1) > 57 )
		{

		  for ( x2 = 0; x2 < valrib.length; x2 += 2 )
		  {
			  if (  valrib.charCodeAt(x2) == nc.charCodeAt(x1) )
			  {
				 if (x1 != nc.length - 1)
					nc = nc.substr( 0, x1  ) + valrib.charAt( x2 + 1) + nc.substr( x1+1 , nc.length);
				 else
					nc = nc.substr( 0, x1  ) + valrib.charAt( x2 + 1);

				 break;
			  }
		  }
		}
		x1++;
	}while ( x1 < nc.length )

	//alert( nc );
	a = cb;
	b = cg;
	c = nc;

	d = (a*8);
	a = Math.floor(d/97);
	a = d-(a*97);

	e = (b*15);
	b = Math.floor(e/97);
	b = 97-(e-(b*97));

	f = (c*3);
	c = Math.floor(f/97);
	c = 97-(f-(c*97));

	g = a+b+c;
	h = Math.floor(g/97);
	i = g-(h*97);

	if (i==0) i = 97;

	if (i == cr  && cb.length == 5 && cg.length == 5 && nc.length == 11 && cr.length == 2)
		return true;
	else
		return false;
}
//*************************************************************************************************************************
//*************************************************************************************************************************
// retourne true si la chaine passée en paramètres ne contient pas d'autres caractères que ceux saisis en parametre
// valeur --> chaine à tester
// charPoss --> caractères tolérés
function charOk(valeur, charPoss)
{
    var i=0;
    var val;
    for (i=0;(i<valeur.length);i++) {
        val = charPoss.search(valeur.charAt(i));
	if (val == -1) {
	    return false;
	}
    }

return true;

}
//*************************************************************************************************************************
// retourne FALSE si la chaine passée en paramètres  contient un ou plusieurs caractères saisis en parametre
// valeur --> chaine à tester
// charInterd --> caractères interdits
function charKo(valeur, charInterd) {

    i=0;
    ok='ok';
    for (i=0; (ok=='ok' ) && (i<valeur.length);i++) {
	val = charInterd.search(valeur.charAt(i));
            if (val!= -1 ) {
	        return false;
	    }
    }

return true;

}

//*************************************************************************************************************************
function controleCharOk (valeur){

	return charOk(valeur, "ABCDEFGHIJKLMNOPQRSTUVWXYZ -'");
}

//*************************************************************************************************************************
function controleCharKo (valeur){

	return charKo (valeur,"&#~{([|`_]=+}£%µ*§$!012345\6789/;,");
}

function sysdate () {

var d=new Date();

return d.getFullYear() +''+ (d.getMonth()+1) +''+ d.getDate();

}

// naiss : date de naissance
// min : age mini
// max : age max
function verifAge(n, min, max) {
	var d = new Date();
	var nmax = new Date(0);
	nmax.setFullYear(parseInt(n.substr(6,4))+max, parseInt(n.substr(3,2)-1) , n.substr(0,2) );
	var nmin = new Date(0);
	nmin.setFullYear(parseInt(n.substr(6,4))+min, parseInt(n.substr(3,2)-1) , n.substr(0,2) );

	return ( nmin < d && d < nmax );
}
// function pour effacer tous les champs d'un formulaire
function effacerForm(f) {
	for (var i=0 ; i<document.forms[f].elements.length; i++) {
		try {
				if (document.forms[f].elements[i].type!='radio') {
					document.forms[f].elements[i].value='';
				}
				else {
					document.forms[f].elements[i].checked=false;
				}
		}
		catch (e) {}
		try {
				if (document.forms[f].elements[i].name.substr(document.forms[f].elements[i].name.length-4)=='_LST' ) {
					document.forms[f].elements[i].options.length=0;
					findDOM(document.forms[f].elements[i].name.substr(0, document.forms[f].elements[i].name.length-4)+'_DIV').style.display='none';
				}
		}
		catch (e) {}
		try {
				document.forms[f].elements[i].checked=false;
		}
		catch (e) {}
		try {
				runEvent('coche' + i + '_BOX', 'onclick');
		}
		catch (e) {}
		try {
				runEvent('coche' + i + '_BOX', 'onchange');
		}
		catch (e) {}
	}
	try {
		document.forms[f].elements['recherche'].value=1;
	}
	catch (e) {}
	try {
		document.forms[f].elements['recherche_etat'].value='tous';
	}
	catch (e) {}
	try {
		document.forms[f].elements['recherche_demande_date_de_creation_operateur_RADIO_2'].checked=true;
	}
	catch (e) {}
}

function openwin(url, name, opt, hist) {
	var w=window.open(url, name, opt, hist);
	w.window.focus();
}

function trim(s) {
    return s.replace(/^\s+/, '').replace(/\s+$/, '');
}
//*************************************************************************************************************************
// o	l'objet en question
// c1	le nom de la première classe
// c2	le nom de la deuxième classe
// a	définit l'action que vous souhaitez effectuer
//		actions :
//		- swap :	remplace la classe c1 avec la classe c2 dans l'objet o
//		- add :		ajoute la classe c1 à l'objet o
//		- remove :	supprime la classe c1 de l'objet o
//		- check	 :	test si la classe c1 est déjà appliquée à l'objet o et retourne true ou false
function jsclass(a,o,c1,c2) {
  switch (a){
    case 'swap':
      o.className=!jsclass('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jsclass('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}

function str_pad( input, pad_length, pad_string, pad_type ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // + namespaced by: Michael White (http://crestidg.com)
    // *     example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT');
    // *     returns 1: '-=-=-=-=-=-Kevin van Zonneveld'
    // *     example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH');
    // *     returns 2: '------Kevin van Zonneveld-----'

    var half = '', pad_to_go;

    var str_pad_repeater = function(s, len){
            var collect = '', i;

            while(collect.length < len) collect += s;
            collect = collect.substr(0,len);

            return collect;
        };

    if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }
    if ((pad_to_go = pad_length - input.length) > 0) {
        if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; }
        else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
        else if (pad_type == 'STR_PAD_BOTH') {
            half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
            input = half + input + half;
            input = input.substr(0, pad_length);
        }
    }

    return input;
}
var euro = String.fromCharCode(8364);

