var decimalSeparator = ",";
var groupSeparator = ".";

function addMascaraData(element) {
    var dateMask1 = new DateMask("dd/MM/yyyy", element);
   $(function() {
       $(element).datepicker({
           changeMonth: true,
           changeYear: true
       });
   });
}


function addMascaraDataFromTo(elementFrom, elementTo, numeroDeMeses){
    new DateMask("dd/MM/yyyy", elementTo);
    new DateMask("dd/MM/yyyy", elementFrom);
    $(function() {
        var option = null;
        var instance = null;
        var date = null;
        var dates = null;

        dates = $(elementFrom).datepicker({
            changeMonth: true,
            changeYear: true,
            numberOfMonths: numeroDeMeses,
            onSelect: function(selectedDate) {
                option = "minDate";
                instance = $(this).data("datepicker");
                date = $.datepicker.parseDate
                (instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                dates.not(this).datepicker("option", option, date);
            }
        });
        dates = $(elementTo).datepicker({

            changeMonth: true,
            numberOfMonths: numeroDeMeses,
            changeYear: true,
            onSelect: function(selectedDate) {
                option = "maxDate";
                instance = $(this).data("datepicker");
                date = $.datepicker.parseDate
                (instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                dates.not(this).datepicker("option", option, date);
            }
        });
    });

}

function addMascaraHora(element) {
    var dateMask1 = new DateMask("HH:mm", element);
}

function addMascara(element, mascara) {
    mask = new InputMask(mascara, element);
//element.hasMask = true;
}

function addMascaraMoeda(element) {
    var numParser4 = new NumberParser(2, decimalSeparator, groupSeparator, true);
    numParser4.currencySymbol = "R$"
    numParser4.useCurrency = true;
    numParser4.negativeParenthesis = false;
    numParser4.currencyInside = true;
    var numMask4 = new NumberMask(numParser4, element , 9);
    element.casas = 2;
    element.ds = decimalSeparator;
    element.gs = groupSeparator;
    element.prefix = "";    
    element.hasMask = true;
}

function addMascaraFloat(element, digitos, casas) {
    if(digitos == undefined) digitos = 6;
    if(casas == undefined) casas = 3;
    var numParser3 = new NumberParser(casas, decimalSeparator, groupSeparator, true);
    var numMask3 = new NumberMask(numParser3, element, digitos);
    element.casas = casas;
    element.ds = decimalSeparator;
    element.gs = groupSeparator;
    element.prefix = "";
    //element.prefix = undefined;
    element.hasMask = true;
}

function addMascaraFloatPonto(element, digitos, casas) {
    if(digitos == undefined) digitos = 6;
    if(casas == undefined) casas = 3;
    var numParser3 = new NumberParser(casas, ".", ",", true);
    var numMask3 = new NumberMask(numParser3, element, digitos);
    element.casas = casas;
    element.ds = ".";
    element.gs = ",";
    element.prefix = undefined;    
    element.hasMask = true;
}



function addMascaraLong(element) {
    var numericMask = new InputMask(JST_MASK_NUMBERS, element);
//	 element.hasMask = true;
}


function integerValidator(value) {
    return true;
}

function floatValidator(value) {
    return true;
}

function currencyValidator(value) {
    return true;
}

function dateValidator(value) {
    return true;
}

function addMascaraNrDocumento(element) {
    
}



var separator__ = "&";
function formatFloatNumber(number, precision, ds, gs, prefix) {

    if(number=="") {
        return "";
    }

    if(number==undefined) {
        return "";
    }
    if(number.indexOf("undefined")>=0) {
        return "";
    }
    if(number.indexOf("UNDEFINED")>=0) {
        return "";
    }
    

    
    
    if(prefix!=undefined && prefix!="undefined" && prefix!="UNDEFINED") {
        if(number.indexOf(prefix)>=0) {
            number = number.replace(prefix,"");
        }
    }

    while(number.indexOf(ds)>=0) {
        number = number.replace(ds,"");
    }

    while(number.indexOf(gs)>=0) {
        number = number.replace(gs,"");
    }


    number = number.substring(0,( number.length - precision)) + separator__ + number.substring(( number.length - precision));


    while(  ((number.indexOf(separator__)-3)>0) && !isNaN(parseInt(number.substring( number.indexOf(separator__)-3, number.indexOf(separator__))))) {
        number = number.substring(0, number.indexOf(separator__)-3) + separator__ + number.substring(number.indexOf(separator__)-3);
    }
    number = number.substring(0, number.lastIndexOf(separator__)) + ds + number.substring(number.lastIndexOf(separator__)+1);

    while(number.indexOf(separator__)>0) {
        number = number.replace(separator__,gs);
    }
    if(prefix!=undefined && prefix!="undefined" && prefix!="UNDEFINED") {
        number = prefix + number;
    }
    
    return number;
}