var LangTranslator = Class.create();
LangTranslator.prototype = {
    nv:{ 'FR' : {
                    'validate-select': 'Merci de s&eacute;lectionner une option.',
                    'required-entry': 'Ce champ est obligatoire.',
                    'validate-number': 'Merci de saisir un num&eacute;ro valide.',
                    'validate-digits': 'Merci de ne saisir que des nombres dans ce champ.',
                    'validate-alpha': 'Merci de ne saisir que des lettres (a-z ou A-Z) dans ce champ.',
                    'validate-code': 'Merci de ne saisir que des lettres (a-z), chiffres (0-9) ou tiret bas (_) dans ce champ, le premier caractère devant être une lettre.',
                    'validate-alphanum': 'Merci de ne saisir que des lettres (a-z ou A-Z) ou chiffres (0-9) dans ce champ.',
                    'validate-street': 'Merci de ne saisir que des lettres (a-z ou A-Z), chiffres (0-9), espace ( ) ou dièse (#) dans ce champ.',
                    'validate-phoneStrict': 'Merci de saisir un num&eacute;ro de t&eacute;l&eacute;phone valide.',
                    'validate-phone-fr': 'Merci de saisir un num&eacute;ro de t&eacute;l&eacute;phone valide.',
                    'validate-phoneLax': 'Merci de saisir un num&eacute;ro de t&eacute;l&eacute;phone valide.',
                    'validate-fax': 'Merci de saisir un num&eacute;ro de fax valide.',
                    'validate-date': 'Merci de saisir une date valide.',
                    'validate-email': 'Merci de saisir une adresse email valide.',
                    'validate-emailSender': 'Merci de ne saisir que des caractères visibles ou espace.',
                    'validate-password': 'Merci de saisir au moins 6 caractères. Les espaces au d&eacute;but et &agrave; la fin de la chaîne de caractères sont ignor&eacute;s.',
                    'validate-admin-password': 'Merci de saisir au moins  7 caractères. Le mot de passe doit comporter des chiffres et de caractères.',
                    'validate-cpassword': 'Merci de v&eacute;rifier que les mots de passe correspondent.',
                    'validate-url': 'Merci de saisir une  URL valide, commençant par http://',
                    'validate-clean-url': 'Merci de saisir une  URL valide.',
                    'validate-identifier': 'Merci de saisir une  URL valide. Par exemple "page-exemple", "page-exemple.html" ou "sousdomaine/page-exemple"',
                    'validate-xml-identifier': 'Merci de saisir un identifiant XML valide. Par exemple quelquechose_1, bloc5, id-4',
                    'validate-ssn': 'Merci de saisir un num&eacute;ro de s&eacute;curit&eacute; sociale valide. Par exemple 123-45-6789.',
                    'validate-zip': 'Merci de saisir un code postal valide.',
                    'validate-zip-international': 'Merci de saisir un code postal valide.',
                    'validate-date-au': 'Merci de suivre ce format de date: jj/mm/aaaa. Par exemple 17/03/1980 pour le 17 Mars 1980.',
                    'validate-currency-dollar': 'Merci de saisir un montant valide.',
                    'validate-one-required': 'Merci de s&eacute;lectionner une des options disponibles ci-dessus.',
                    'validate-one-required-by-name': 'Merci de s&eacute;lectionner une des options.',
                    'validate-not-negative-number': 'Merci de saisir un nombre valide dans ce champ.',
                    'validate-state': 'Merci de s&eacute;lectionner un D&eacute;partement/R&eacute;gion.',
                    'validate-new-password': 'Merci de saisir au moins 6 caractères. Les espaces au d&eacute;but et &agrave; la fin de la chaîne de caractères sont ignor&eacute;s.',
                    'validate-greater-than-zero': 'Merci de saisir un nombre sup&eacute;rieur &agrave; 0 dans ce champ.',
                    'validate-zero-or-greater': 'Merci de saisir un nombre sup&eacute;rieur ou &eacute;gal &agrave; 0 dans ce champ.',
                    'validate-cc-number': 'Merci de saisir un num&eacute;ro de carte de cr&eacute;dit valide dans ce champ.',
                    'validate-cc-type': 'Le num&eacute;ro de carte de cr&eacute;dit saisi ne correspond pas au type de carte de cr&eacute;dit s&eacute;lectionn&eacute;.',
                    'validate-cc-type-select': 'Le type de carte de cr&eacute;dit s&eacute;lectionn&eacute; ne correspond pas au num&eacute;ro de carte de cr&eacute;dit saisi.',
                    'validate-cc-exp': 'La date d\'expiration la carte de cr&eacute;dit est incorrect.',
                    'validate-cc-cvn': 'Merci de saisir un code CSC valide.',
                    'validate-data': 'Merci de ne saisir que des lettres (a-z ou A-Z), chiffres (0-9) ou tiret bas (_) dans ce champ, le premier caractère devant être une lettre.',
                    'validate-css-length': 'Merci de saisir une valeur CSS valide. Par exemple, 100px ou 77pt ou 20em ou .5ex ou 50%',
                    'validate-length': 'Nombre maximum de caractères d&eacute;pass&eacute;.',
                    'validate-percents': 'Merci de saisir un nombre inf&eacute;rieur &agrave; 100'
                },
        'EN' : {
                    'validate-select': 'Please select an option.',
                    'required-entry': 'This field is required.',
                    'validate-number': 'Please enter a valid number in this field.',
                    'validate-digits': 'Please use numbers only in this field. please avoid spaces or other characters such as dots or commas.',
                    'validate-alpha': 'Please use letters only (a-z or A-Z) in this field.',
                    'validate-code': 'Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.',
                    'validate-alphanum': 'Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.',
                    'validate-street': 'Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.',
                    'validate-phoneStrict': 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.',
                    'validate-phone-fr': 'Please enter a valid phone number.',
                    'validate-phoneLax': 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.',
                    'validate-fax': 'Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.',
                    'validate-date': 'Please enter a valid date.',
                    'validate-email': 'Please enter a valid email address. For example johndoe@domain.com.',
                    'validate-emailSender': 'Please use only visible characters and spaces.',
                    'validate-password': 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.',
                    'validate-admin-password': 'Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.',
                    'validate-cpassword': 'Please make sure your passwords match.',
                    'validate-url': 'Please enter a valid URL. http:// is required',
                    'validate-clean-url': 'Please enter a valid URL. For example http://www.example.com or www.example.com',
                    'validate-identifier': 'Please enter a valid URL Key. For example "example-page", "example-page.html" or "anotherlevel/example-page"',
                    'validate-xml-identifier': 'Please enter a valid XML-identifier. For example something_1, block5, id-4',
                    'validate-ssn': 'Please enter a valid social security number. For example 123-45-6789.',
                    'validate-zip': 'Please enter a valid zip code. For example 90602 or 90602-1234.',
                    'validate-zip-international': 'Please enter a valid zip code.',
                    'validate-date-au': 'Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.',
                    'validate-currency-dollar': 'Please enter a valid $ amount. For example $100.00.',
                    'validate-one-required': 'Please select one of the above options.',
                    'validate-one-required-by-name': 'Please select one of the options.',
                    'validate-not-negative-number': 'Please enter a valid number in this field.',
                    'validate-state': 'Please select State/Province.',
                    'validate-new-password': 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.',
                    'validate-greater-than-zero': 'Please enter a number greater than 0 in this field.',
                    'validate-zero-or-greater': 'Please enter a number 0 or greater in this field.',
                    'validate-cc-number': 'Please enter a valid credit card number.',
                    'validate-cc-type': 'Credit card number doesn\'t match credit card type',
                    'validate-cc-type-select': 'Card type doesn\'t match credit card number',
                    'validate-cc-exp': 'Incorrect credit card expiration date',
                    'validate-cc-cvn': 'Please enter a valid credit card verification number.',
                    'validate-data': 'Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.',
                    'validate-css-length': 'Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%',
                    'validate-length': 'Maximum length exceeded.',
                    'validate-percents': 'Please enter a number lower than 100'
                }
        },

    initialize : function(language){
        if(typeof language == 'string' && language != '')
            this.setLanguage(language);
        else
            this.setLanguage('FR');

    },

    setLanguage : function(lang){
        this._language = lang;
    },

    getLanguage : function(){
        return this._language;
    },

    getLanguageOptions: function(){
        return this.nv;
    },

    translate: function(key){
        return (this.nv[this.getLanguage()][key]?this.nv[this.getLanguage()][key]:key);
    }
}

if(typeof(TranslatorObject)=="undefined"){
    var TranslatorObject = new LangTranslator();
}

