/**********************************************************************
Parametri di input:
NUM \u2013 numero da fattare
decimalNum \u2013 numero di decimali da formattare
bolLeadingZero - true / false \u2013 mostro I decimali se la parte decimale è zero?
                                                                            numbers between -1 and 1
bolParens - true / false \u2013 uso la parentesi per I numeri negative?
bolCommas \u2013 uso la virgola come separatore?.

Parametro di ritorno:
numero formattato
 **********************************************************************/
function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas) {
        if (isNaN(parseInt(num))) return "NaN";

        var tmpNum = num;
        var iSign = num < 0 ? -1 : 1;
        tmpNum *= Math.pow(10,decimalNum);
        tmpNum = Math.round(Math.abs(tmpNum))
        tmpNum /= Math.pow(10,decimalNum);
        tmpNum *= iSign;


        var tmpNumStr = new String(tmpNum);

        if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
               if (num > 0)
                       tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
               else
                       tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);

        if (bolCommas && (num >= 1000 || num <= -1000)) {
               var iStart = tmpNumStr.indexOf(".");
               if (iStart < 0)
                       iStart = tmpNumStr.length;

               iStart -= 3;
               while (iStart >= 1) {
                       tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
                       iStart -= 3;
               }
        }

        if (bolParens && num < 0)
               tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
        return tmpNumStr;
}

function isPhoneNumber(s){
    var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (!documentIsdigit(c)) return false;
    }
    // All characters are numbers.
    return true;
}

function isValidFirstNameLastName(s){
    var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (documentIsdigit(c)==true) return false;
        if (isValidCharForFirstNameLastName(c)==false) return false;
    }
    // All characters are numbers.
    return true;
}

function isValidCharForFirstNameLastName( c )
{
	//lettere minuscole
	return ((c.charCodeAt(0)>="a".charCodeAt(0) && c.charCodeAt(0)<="z".charCodeAt(0)) || (c.charCodeAt(0)>="A".charCodeAt(0) && c.charCodeAt(0)<="Z".charCodeAt(0)) || (c.charCodeAt(0)=="`".charCodeAt(0)) || (c.charCodeAt(0)=="'".charCodeAt(0))|| (c==" "));
}

function documentLeftPad( str, size, padchar )
{
	while (str.length<size)
		str = padchar + str;
	return str;
}

function documentIsdigit( c )
{
	return c.charCodeAt(0)>="0".charCodeAt(0) && c.charCodeAt(0)<="9".charCodeAt(0);
}

function documentAtoi( str )
{
	var ret = "";
	var i = 0;
	while (i<str.length && documentIsdigit(str.charAt(i)))
	{
		if (ret.length>0 || str.charAt(i)!='0')
			ret += str.charAt(i);
		i++;
	}
	if (ret.length==0)
		return 0;
	return parseInt(ret);
}

function err(errorMessage, field) {
  alert(errorMessage);
  if (field != null) {
    field.focus();
  }
}

function documentEmailValida(email) {
	 var i;
	 var j;
	 //
	 email =  documentTrim(email);
	 //
	 if (email == "")
		return false;

	 // Contiene spazi -> false
	 if (email.indexOf(" ") != -1)
		return false;
	 //
	 i = email.indexOf("@")
	 // Non contiene @ -> false
	 if (i == -1)
	  return false;
	 // @ è il 1 car -> false
	 if (i == 0)
		return false;
	 // Non contiene . dopo @ -> false
	 j = email.indexOf(".",i+1);
	 if (j == -1)
		return false;
	 // . dopo @ senza carattere -> false
	 if (j == i +1)
		return false;
	 // . ultimo carattere -> false
	 if (j == email.length-1)
		 return false;
	 // Contiene @ dopo @ -> false
	 j = email.indexOf("@",i+1);
	 if (j != -1)
		return false;
	 //
	 return true;
}

function documentTrim(str)
{
	var ret = ''+str;
	while (ret.length>0)
	{
		if (ret.charAt(0)==' ' || ret.charAt(0)=='\t')
			ret = ret.substr(1);
		else
		if (ret.charAt(ret.length-1)==' ' || ret.charAt(ret.length-1)=='\t')
			ret = ret.substr(0,ret.length-1);
		else
			return ret;
	}
	return ret;
}
