﻿	//============================================================================
	//-                      Copyright © 2006 Maxxcom Sas                        -
	//-                           All rights reserved.                           -
	//-                                                                          -
	//-    Questo codice sorgente è protetto da copyright in base alle leggi e   -
	//-    ai trattati internazionali. L'uso non autorizzato, la riproduzione    -
	//-    parziale o totale, l'alterazione, la distribuzione di questo codice   -
	//-    sorgente saranno perseguite in sede penale e civile in ottemperanza   -
	//-    alle leggi esistenti. Sono soggette alle rispettive licenze freeware, -
	//-    GPL, LGPL o di altro tipo, le parti di codice sorgente acquisite da   -
	//-    terze parte anche senza il consenso scritto. In tal caso i nomi degli -
	//-    autori sono riportati a monte delle procedure utilizzate e/o incluse. -
	//-    Eventuali omissioni o errori potranno essere comunicati all'indirizzo -
	//-    email info@maxxcom.it per una pronta correzione e/o integrazione.     -
	//-                                                                          -
	//-    www.maxxcom.it                                                        -
	//============================================================================

    window.isValidDate = function(dateStr) 
	{
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
		var matchArray = dateStr.match(datePat);
		if (dateStr.length != 10) { return -1; }; //formato non valido
		if (matchArray == null) { return -1; }; //formato non valido
		return isValidDatePart(matchArray[1], matchArray[3], matchArray[4]);
	}

	window.isValidTime = function(value) 
	{
       var colonCount = 0;
       var hasMeridian = false;
       for (var i=0; i<value.length; i++) {
          var ch = value.substring(i, i+1);
          if ( (ch < '0') || (ch > '9') ) {
             if ( (ch != ':') && (ch != ' ') && (ch != 'a') && (ch != 'A') && (ch != 'p') && (ch != 'P') && (ch != 'm') && (ch != 'M')) {
                return false;
             }
          }
          if (ch == ':') { colonCount++; }
          if ( (ch == 'p') || (ch == 'P') || (ch == 'a') || (ch == 'A') ) { hasMeridian = true; }
       }
       if ( (colonCount < 1) || (colonCount > 2) ) { return false; }
       var hh = value.substring(0, value.indexOf(":"));
       if ( (parseFloat(hh) < 0) || (parseFloat(hh) > 23) ) { return false; }
       if (hasMeridian) {
          if ( (parseFloat(hh) < 1) || (parseFloat(hh) > 12) ) { return false; }
       }
       if (colonCount == 2) {
          var mm = value.substring(value.indexOf(":")+1, value.lastIndexOf(":"));
       } else {
          var mm = value.substring(value.indexOf(":")+1, value.length);
       }
       if ( (parseFloat(mm) < 0) || (parseFloat(mm) > 59) ) { return false; }
       if (colonCount == 2) {
          var ss = value.substring(value.lastIndexOf(":")+1, value.length);
       } else {
          var ss = "00";
       }
       if ( (parseFloat(ss) < 0) || (parseFloat(ss) > 59) ) { return false; }
       return true;
    }

	window.FormatNumber = function(amount) 
	{
		amount = parseInt(amount * 100);
		amount = parseFloat(amount/100);
		if (((amount) == Math.floor(amount)) && ((amount - Math.floor (amount)) == 0)) {
			amount = amount + ".00"
			return amount;
		}
		if (((amount * 10) - Math.floor(amount * 10)) == 0) {
			amount = amount + "0";
			return amount;
		}
		if (((amount * 100) - Math.floor(amount * 100)) == 0)	{
			amount = amount;
			return amount;
		}
		return amount; 	
	}	

    /*
    window.formatCurrency = function(num) 
    {
        num = num.toString().replace(/\$|\,/g,'');
        if(isNaN(num))
        num = "0";
        sign = (num == (num = Math.abs(num)));
        num = Math.floor(num*100+0.50000000001);
        cents = num%100;
        num = Math.floor(num/100).toString();
        if(cents<10)
        cents = "0" + cents;
        for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+'.'+
        num.substring(num.length-(4*i+3));
        return (((sign)?'':'-') + '&euro;' + num + ',' + cents);
    }
    */

    /*
    window.FormatNumberWithComma = function(amount)
    {
	    var delimiter = ","; // replace comma if desired
	    var a = amount.split('.',2)
	    var d = a[1];
	    var i = parseInt(a[0]);
	    if(isNaN(i)) { return ''; }
	    var minus = '';
	    if(i < 0) { minus = '-'; }
	    i = Math.abs(i);
	    var n = new String(i);
	    var a = [];
	    while(n.length > 3)
	    {
		    var nn = n.substr(n.length-3);
		    a.unshift(nn);
		    n = n.substr(0,n.length-3);
	    }
	    if(n.length > 0) { a.unshift(n); }
	    n = a.join(delimiter);
	    if(d.length < 1) { amount = n; }
	    else { amount = n + '.' + d; }
	    amount = minus + amount;
	    return amount;
    }
    */

	window.CurrencyToDecimal = function(currency) 
	{
		currency = currency.replace(/[^\d\x2D\x2C]/g,'');
		return currency;
	}

	window.DecimalToCurrency = function(amount) 
	{
		var symbols = new Array('\u20AC ', '', '-\u20AC ', '');
		var isPositive=(amount.match(/\x2D/)==null?true:false);
		amount=amount.replace(/\x2D/g,'');
		var dollars=amount.match(/\d+/);dollars=(dollars==null?'0':dollars[0]);
		var size=3;var position=dollars.length-size;
		while(position>0){
			dollars=dollars.substr(0,position)+'\x2E'+dollars.substr(position);position-=size;
		}
		var cents=amount.match(/\x2C\d+/);cents=(cents==null?'0':cents[0].substr(1));
		while(cents.length<2){cents+="0";}
		return (isPositive?symbols[0]+dollars+'\x2C'+cents+symbols[1]:symbols[2]+dollars+'\x2C'+cents+symbols[3]);
	}

    window.FormatCurrency = function(number) 
    {
        return DecimalToCurrency(number.toString().replace(".", ","));
    }

    /*
	window.ToCurrency = function (floatamount) 
	{
	    var amount = floatamount.toString().replace(".", ",");
		var symbols = new Array('&euro; ', '', '-&euro; ', '');
		var isPositive=(amount.match(/\x2D/)==null?true:false);
		amount=amount.replace(/\x2D/g,'');
		var dollars=amount.match(/\d+/);dollars=(dollars==null?'0':dollars[0]);
		var size=3;var position=dollars.length-size;
		while(position>0){
			dollars=dollars.substr(0,position)+'\x2E'+dollars.substr(position);position-=size;
		}
		var cents=amount.match(/\x2C\d+/);cents=(cents==null?'0':cents[0].substr(1));
		while(cents.length<2){cents+="0";}
		return (isPositive?symbols[0]+dollars+'\x2C'+cents+symbols[1]:symbols[2]+dollars+'\x2C'+cents+symbols[3]);
	}
    */
