// JavaScript Document
// example of custom renderer function
function euroRenderer(val){
    if(val > 0){
        return '<span style="color:green;">' + val + '</span>';
    }else if(val < 0){
        return '<span style="color:red;">' + val + '</span>';
    }
    return val;
}
    
function XRenderer(val){
    if(val =='0'){
        return "";
    }else{
        return "X";
    }
}

function assoDateRenderer(value){
    return value ? value.dateFormat('d/m/Y') : '';
}

function assoDateFormat() {return 'd/m/Y';}

function MaterielClassRenderer(rowSwitch) {
    var cls;
    switch (rowSwitch) {
        case 0 :
            cls = 'materiel-ko-row';
            break;
        default:
            cls = 'materiel-ok-row';
            break;
    }//end switch
    return cls;
}


function CompteClassRenderer(rowSwitch) {
    switch (rowSwitch) {
        case 0 :
            cls = 'compte-etat0-row';// highlight row yellow
            break;
        case 1 :
            cls = 'compte-etat1-row' ;
            break;
        case 2 :
            cls = 'compte-etat2-row' ;
            break;
        case 3 :
            cls = 'compte-etat3-row';
            break;
        case 4 :
            cls = 'compte-etat4-row';
            break;
        case 5 :
            cls = 'compte-etat5-row';
            break;
        case 6 :
            cls = 'compte-etat6-row';
            break;
    }//end switch
    return cls;
}

// create reusable renderer
Ext.util.Format.comboRenderer = function(combo){
    return function(value){
        var record = combo.findRecord(combo.valueField, value);
        return record ? record.get(combo.displayField) : combo.valueNotFoundText;
    }
}


Ext.apply(Ext.form.VTypes, {
    daterange : function(val, field) {
        var date = field.parseDate(val);

        if(!date){
            return;
        }
        if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
            var start = Ext.getCmp(field.startDateField);
            start.setMaxValue(date);
            start.validate();
            this.dateRangeMax = date;
        } 
        else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
            var end = Ext.getCmp(field.endDateField);
            end.setMinValue(date);
            end.validate();
            this.dateRangeMin = date;
        }
        /*
         * Always return true since we're only using this vtype to set the
         * min/max allowed values (these are tested for after the vtype test)
         */
        return true;
    },

    passwordMinMax : function(val, field) {
        if( val.length<6 || val.length > 40 )  {
            return false;
        }
        return true;
    },

    passwordMinMaxText : 'La longueur du mot de passe doit etre entre 6 et 40 caracteres',
    
    firstcapital: function(val, field) {

        field.setRawValue( firstCapital(val) );
        return true;
    },

    withoutaccent: function(val, field) {

        var valSsAccent  = convertirChaineSansAccent(val)
        field.setRawValue( valSsAccent );

        return true;
    },

    withoutaccentError: function(val, field) {

        var valSsAccent  = convertirChaineSansAccent(val)
        field.setRawValue( valSsAccent );

        return val == valSsAccent;
    },
    withoutaccentErrorText : 'Les accents ne sont pas accept&eacute;s',

    capital: function(val, field) {

        field.setRawValue( Capitalize(val) );
        return true;
    },

    phoneNumber: function(val, field) {
        return true;
    },
    phoneNumberText : 'Num&eacute;ro de t&eacute;l&eacute;phone non valide'


});

