Control.DatePicker.Language['ro'] = { months: ['Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie', 'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie'], days: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sa'], strings: { 'Now': 'Acum', 'Today': 'Astazi', 'Time': 'Ora', 'Exact minutes': 'Minute exacte', 'Select Date and Time': 'Selecteaza Data si Ora', 'Open calendar': 'Deschide calendar' }};
Control.DatePicker.Locale['ro_RO'] = { dateTimeFormat: 'dd/MM/yyyy HH:mm', dateFormat: 'dd/MM/yyyy', firstWeekDay: 1, weekend: [0,6], language: 'ro'};

Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
};

Date.prototype.clone = function () {
  return new Date(this.getTime());
}

String.prototype.pad = String.prototype.pad || function(len, chr, dir) {
    var str = this;
    len = (typeof len == 'number') ? len : 0;
    chr = (typeof chr == 'string') ? chr : ' ';
    dir = (/left|right|both/i).test(dir) ? dir : 'right';
    var repeat = function(c, l) { // inner "character" and "length"
        var repeat = '';
        while (repeat.length < l) {
            repeat += c;
        }
        return repeat.substr(0, l);
    }
    var diff = len - str.length;
    if (diff > 0) {
        switch (dir) {
            case 'left':
                str = '' + repeat(chr, diff) + str;
                break;
            case 'both':
                var half = repeat(chr, Math.ceil(diff / 2));
                str = (half + str + half).substr(1, len);
                break;
            default: // and "right"
                str = '' + str + repeat(chr, diff);
        }
    }
    return str;
};

String.prototype.checkCNP = function () {
    var constanta = new String("279146358279");

    if (this.length != 13) {
        return false;
    };

    var suma = 0;

    for (var i = 0; i < constanta.length; i++) {
        suma = suma + this.charAt(i) * constanta.charAt(i);
    }

    var rest = suma % 11;

    if ((rest <10 && rest == this.charAt(12)) || (rest == 10 && this.charAt(12) == 1)) {
        return true;
    } else {
        return false;
    }
};

String.prototype.checkIBAN = function (iban) {
    try {
        var tmp       = (typeof(iban) == 'undefined') ? (this.toUpperCase()) : (iban.toUpperCase());
        tmp           = tmp.replace(" ", "");
        var tmpLength = tmp.length;
        if ((tmpLength == undefined) || (tmpLength < 8)) {
            return false;
        }
        var sCheck    = new String(tmp.substring(4,8) + tmp.substring(8, tmpLength) + tmp.substring(0,2) + tmp.substring(2,4));
        var newS      = new String('');
        var n;

        for (var i = 0; i < tmpLength; ++i) {
            var a = sCheck.charCodeAt(i);
            if ((a >= 65) && (a <= 90)) {
                n = a - 55;
            } else {
                n = sCheck.charAt(i);
            }
            newS += n;
        }
        
        var newSLength = newS.length;
        var newM       = parseInt(newS.substring(0,2),10);
        var r          = newM % 97;
        for (i = 2; i < newSLength; ++i) {
            newM = 10*r + parseInt(newS.substring(i, i+1),10);
            r = newM % 97;
        }
        
        return (r == 1);
    }
    catch(e) { return false; }
};

document.observe("dom:loaded", function() {
    $$('a[rel="external"]').each(function(link){
        if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
    		link.writeAttribute('target','_blank');
        }
    });

    APP.growler = new k.Growler();
});