
// JavaScript Document

//----------------------------------------------------------------------------------------------------
// Fonctions spécifiques Client_YRD
//----------------------------------------------------------------------------------------------------

/**
 * @doc
 *
 * keypress	= event.which
 * keydown	= event.keyCode
 * event.which correspond au caractere tapé !
 * event.keyCode correspond à la touche tapé différente sur mac windows.. je pense
 * donc préferer which ou charCode !
 * Les numero sont différents !!!
 * alert('keyCode:' + event.keyCode + ' - which:' + event.which + ' - caracterekeycode:' + String.fromCharCode(event.keyCode) + ' - caracterewhich:' + String.fromCharCode(event.which));
 * 
 */

$(document).ready(function(){
    /**
     * Binding automatic des fonctions de callback de vérifications
     */
    function __checkKeyCodeNumeric(ev){
       /* if(ev.keyCode < 45 || ev.keyCode > 57) ev.returnValue = false;
		if(ev.which < 45 || ev.which > 57) return false;
		*/
	   return keyCodeIsNumeric(ev);
    }
    function __checkKeyCodeAlphabetic(ev){
		return keyCodeIsAlphebetic(ev);
    }
    /**
     * Téléphone et mobile sont des champs qui n'autorisent
     * que les caractères numériques
     */
    if (document.getElementById('telephone'))
        $('#telephone').keypress(__checkKeyCodeNumeric);
    if (document.getElementById('mobile'))
        $('#mobile').keypress(__checkKeyCodeNumeric);
    if (document.getElementById('num_client'))
        $('#num_client').keypress(__checkKeyCodeNumeric);
	if (document.getElementById('code_postal'))
		$('#code_postal').keypress(__checkKeyCodeNumeric);

    /**
     * Nom et prénom sont des champs
     * qui n'acceptent pas les nombres
     */
    if (document.getElementById('prenom'))
        $('#prenom').keypress(__checkKeyCodeAlphabetic);
    if (document.getElementById('nom'))
        $('#nom').keypress(__checkKeyCodeAlphabetic);
});

//----------------------------------------------------------------------------------------------------
// Fonctions génériques
//----------------------------------------------------------------------------------------------------

function keyCodeIsBlank (event, allowSpace){
    var key = event.keyCode;
    if ( key == 8       // suppr back
        || (key == 32 && allowSpace == true)   // espace
        || key == 46   // espace
        || key == 9    // tab
        || key == 16   // shit
        || key == 17   // ctrl
        || key == 18   // alt
        || key == 20   // cpas lock
        || key == 27   // echap
        || key == 27   // verr num
        || key == 34   // page dwn
        || key == 33   // page up
        || key == 35   // fin ??
        || key == 36   // ??
        || key == 37   // fleche gauche
        || key == 38   // fleche haut
        || key == 39   // fleche droite
        || key == 40   // fleche bas
        || key == 46   // fleche bas
            )
        return true;
    return false;
}

function keyCodeIsAlphaNumeric (event){
    var key = (event.keyCode != 0) ? event.keyCode : event.charCode ;

    if ( keyCodeIsNumeric (event) || keyCodeIsAlphebetic(event) )
        return true;

    return false;
}

function keyCodeIsNumeric (event){
    var key			= event.which;
	var key_Code	= event.keyCode;
	var char_Code	= event.charCode;
	var ev_type		= event.type;
	//alert(String.fromCharCode(key) + '-' + key + '-' + key_Code + '-' + char_Code + '-' + ev_type);
 	// Interdire l'espace
	if(key == 32)
		return false;
	// IE
	if(char_Code == undefined && ev_type == "keydown"){
		// fleche directionnelles
		if(key_Code >36 && key_Code < 41)
			return true;
		// touche BACKSLASH and SUPPR and TAB
		if(key_Code == 8 || key_Code == 46 || key_Code == 9)
			return true;
		// touche SHIFT and CTRL and ALT and MAJ
		if(key_Code == 16 || key_Code == 17 || key_Code == 18 || key_Code == 20)
			return true;
	}
	// Firefox & Others
	if(char_Code == 0){
		if(keyCodeIsBlank(event, false))
		   return true;
	}
	// Clavier numérique inter-navigateurs
	if(ev_type == 'keydown'){
		if(key > 95 && key <106)
				return true;
	}
	// Caractere numerique ?
	return !isNaN(String.fromCharCode(key));
}

function keyCodeIsAlphebetic (event){
    var key         = (event.keyCode != 0) ? event.keyCode : event.charCode;
    var hasShift    = event.shiftKey;

	/* Interdire l'espace */
	if(key == 32)
		return true;
	/* Tabulation */
	if(key ==9)
		return true;
	/* Caractere Not a Number ? */
	return isNaN(String.fromCharCode(key));
	
	/**
     * Pour interdire le pavés numérique
     */
    if ( (key > 94 && key < 106) ){
        return false;
    }
    /**
     * Pour interdire les chiffres de 0 à 9 sur le haut du clavier
     */
    if ( hasShift && (key > 47 && key < 58) ){
        return false;
    }
	
    return true;
}
