﻿
// *** IN QUESTA CLASSE SI ESTENDERANNO LE LIBRERIE JAVASCRIPT PER 
// AGGIUNGERE FUNZIONALITA' NON DISPONIBILI DI DEFAULT. ***


// class: Array
// method: indexOf
// parameters: Object
// return: int
// aim: ritorna l'indice dell'elemento passato in argomento.
Array.prototype.indexOf = function (obj) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == obj) {
            return i;
        }
    }
    return -1;
}


// class: Array
// method: exist
// parameters: Object
// return: boolean
// aim: informa sull'esistenza di un oggetto nell'array.
Array.prototype.exists = function (obj) {
    for (var i = 0; i < this.length; i++){
        if (this[i] === obj) {
            return true;
        }
    }
    return false;
}


// class: Number
// method: roundTo
// parameters: int
// return: int
// aim: arrotonda un decimale alla posizione passata in argomento.
Number.prototype.roundTo = function(decimalpositions) {
    var i = this * Math.pow(10, decimalpositions);
    i = Math.round(i);
    return i / Math.pow(10, decimalpositions);
}


// class: Number
// method: currencyFormat
// parameters: int
// return: string
// aim: formatta valute senza i decimali
Number.prototype.currencyFormat = function () {
    var i = parseFloat(this);
    if (isNaN(i)) { i = 0.00; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if (s.indexOf('.') < 0) { s += '.00'; }
    if (s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s.replace(".", ",");
    var interi = s.substring(0, s.indexOf(",")).split("").reverse();
    var decimali = s.substring(s.indexOf(","), s.length);
    var newInteri = [];
    for (x = 0; x < interi.length; x++) {
        if (x > 0 && x % 3 == 0) {
            newInteri.push(".");
        }
        newInteri.push(interi[x]);
    }

    newInteri.reverse();
    s = newInteri.join(""); // +decimali;
    return s;
}


// class: String
// method: pad
// parameters: int, string, int
// return: string
// aim: esegue il padding di una stringa.
String.prototype.pad = function (l, s, t) {
    return s || (s = " "), (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length)
           + 1).join(s)).substr(0, t = !t ? l : t == 1 ? 0 : Math.ceil(l / 2))
           + this + s.substr(0, l - t) : this;
};


// class: String
// method: cpitalize
// return: string
// aim: capitalizza la stringa.
String.prototype.capitalize = function () {
    return this.toLowerCase().charAt(0).toUpperCase() + this.slice(1).toLowerCase();
}


/*
String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g, "");
}
*/
