// JavaScript Document

// yzak_isNumber( valor )
// -----------------------------------------------------------------------------------------------------------------------------------------
function yzak_isNumber( valor )
{
	var por = new String( valor ); // Obtenemos el valor del porcentaje como una cadena
	por = por.replace( ",","." ); // Reemplazamos la coma por el punto, eso permite al javascript interpretar el valor como numero
	if ( isNaN (  por  ) ) { 
		return false;
	} else {
		return true;
	}
}
		
// yzak_numero_coma_a_punto( valor )
// -----------------------------------------------------------------------------------------------------------------------------------------
function yzak_numero_coma_a_punto( valor )
{
	var por = new String( valor ); // Obtenemos el valor del porcentaje como una cadena
	por = por.replace( ",","." ); // Reemplazamos la coma por el punto, eso permite al javascript interpretar el valor como numero
	if ( isNaN (  por  ) ) { 
		return -1;
	} else {
		return por;
	}
}

// clearCharsNoNumeric( valor ) : devuelve una cadena que solo contiene los numeros de otra cadena dada
// ------------------------------------------------------------------------------------------------------------------------------------
function yzak_numeros_clearCharsNoNumeric( valor ) {
	var str = new String( valor );
	var res = "";
	for ( n = 0; n < str.length; n++ ) {
		if ( str.charCodeAt( n ) > 47 && str.charCodeAt( n ) < 58 ) {
			res += str.charAt( n );
		}
	}
	return res;
}

// FormatNumber(Expression, NumDigitsAfterDecimal, IncludeLeadingDigit, UseParensForNegativeNumbers, GroupDigits)
// ======================================================================


function yzak_numeros_FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
  if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	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;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}

// NOTA: formatNumber con MINUSCULA
// ---------------------------------------------------------------------------------------------------
function yzak_numeros_formatNumber(num,prefix){
   prefix = prefix || '';
   num += '';
   var splitStr = num.split('.');
   var splitLeft = splitStr[0];
   var splitRight = splitStr.length > 1 ? '.' + splitStr[1] : '';
   var regx = /(\d+)(\d{3})/;
   while (regx.test(splitLeft)) {
      splitLeft = splitLeft.replace(regx, '$1' + ',' + '$2');
   }
   return prefix + splitLeft + splitRight;
}

// unformatNumber(num)
// ----------------------------------------------------------------------------------------------------
function yzak_numeros_unformatNumber(num) {
   return num.replace(/([^0-9\.\-])/g,'')*1;
}