/*******************************************************
	----------------------------------------
	----------------------------------------
			Common Validation functions
	----------------------------------------
	----------------------------------------
*******************************************************/

/////////////////// truncateDecimal /////////////////////////////
// Truncate decimal
function truncateDecimal( num )
{
//	alert("truncateDecimal")
//	alert(num)

	var k 			= 0 ;
	var end_pos		= 0 ;

	temp = new String(num) ;
	
	// truncate decimal
	if (temp.indexOf(".") == -1)
		end_pos = 0
	else
		end_pos = temp.length - temp.indexOf(".") ;

	temp = temp.substring(0, ( temp.length - end_pos )) ;
		
	return temp ;
}
/////////////////// End truncateDecimal /////////////////////////////

/////////////////// removeComma /////////////////////////////
// Remove all commas, if present
function removeComma( num )
{
//	alert("removeComma")
//	alert(num)

	var new_temp ;
	var k 			= 0 ;
	var end_pos		= 0 ;

	temp = new String(num) ;

	//	remove comma, if present
	if (temp.indexOf(",") != -1)
	{
		k = 0 ;
		for( var i = 0 ; i < temp.length ; i++ ) 
		{
			if ( temp.charAt(i) != "," )
			{
				if ( k == 0 )
					new_temp = temp.charAt(i)
				else
					new_temp = new_temp + temp.charAt(i) ;

				k += 1 ;
			}
		}
		temp = new_temp ;
	}

	return temp ;
}
/////////////////// End removeComma /////////////////////////////

/////////////////// removeLeadDollar /////////////////////////////
// Remove leading $ if present
function removeLeadDollar( num )
{
//	alert("removeDollar") ;
//	alert(num) ;

	temp = new String(num) ;

	// Remove leading $, if present
	if ( temp.indexOf("$") != -1 )
	{
		if ( temp.charAt(0) == "$" )
			temp = temp.substring(temp.indexOf("$")+1, temp.length) ;
	}

	return temp ;
}
/////////////////// End removeLeadDollar /////////////////////////////

/////////////////// stripDown /////////////////////////////
// Remove leading $ if present and all commas and truncate decimal
function stripDown( num )
{
//	alert("stripDown")
//	alert(num)

	temp = new String(num) ;

	temp = removeLeadDollar( temp ) ;
	temp = removeComma( temp ) ;
	temp = truncateDecimal( temp ) ;
	
	return temp ;
}
/////////////////// End stripDown /////////////////////////////

////////////////// formatCurrency ////////////////////////////
// Checks if the value of the field is a valid currency and then formats it
function formatCurrency( num, mkdec )
{
//	alert("formatCurrency")

	var num_dollar	= 0 ;
	var new_temp ;
	var k 			= 0 ;
	var comma_pos 	= 0 ;
	var end_pos		= 0 ;

	temp = new String( num ) ;

	//strip down of leading $, ','
	temp = removeLeadDollar( temp ) ;
	temp = removeComma( temp ) ;

	// Validate number
	if ( isNumber ( temp ) == false )
		return false ;

	new_temp = "" ;

	// Check if needed to make it decimal
	if ( mkdec == "noMkDecimal" )
	{
		temp 			= truncateDecimal( temp ) ;
		end_digit_num	= temp.length ;
	}
	else
	{
		temp = mkDecimal (temp) ;
		for( var i = temp.indexOf("."); i < temp.length ; i++ ) 
		{
			new_temp = new_temp + temp.charAt(i);
		}

		end_digit_num = temp.indexOf(".") ;
	}

	// Add comma
	comma_pos = 1 ;

//	for( var i = (temp.length-1) ; i > -1; i-- ) 
	for( var i = (end_digit_num-1) ; i > -1; i-- ) 
	{
		if ( comma_pos > 3 )
		{
			new_temp = "," + new_temp ;
			comma_pos = 2 ;
		}
		else
			comma_pos += 1;

		k = i ;

//		if ( ( i == (temp.length-1) ) && (num == "") )
//		if ( ( i == (end_digit_num-1) ) && (num == "") )
//			new_temp = temp.charAt(k)
//		else
//			new_temp = temp.charAt(k) + new_temp ;
		new_temp = temp.charAt(k) + new_temp ;
	}

	temp = new_temp ;

	// make it currency
	temp = "$" + temp ;

	return temp ;
}
///////////////////// End formatCurrency ////////////////////

//////////////////// isSomeValue //////////////////
function isSomeValue( num )
{
//	alert("isSomeValue" + num)

	var err02   = "Please enter some value.";

	fieldValue	= num ;
	fieldLength = num.length ;

	if( fieldValue == "" ) 
	{
		return false;
	}

    return true;
}
/////////////////////// End isSomeValue ///////////////////

//////////////////// isNumber //////////////////////
function isNumber( num )
{
//	alert("isNumber")

	validChars		= "0123456789";
	CommaDot		= ",." ;
	dot				= "." ;

	var numfound = "N" ;
	var	num_of_dots ;

	fieldValue	= new String(num) ;
	fieldLength = num.length ;

	num_of_dots = 0 ;

	for( var i = 0; i < fieldLength; i++ ) 
	{
		if ( validChars.indexOf( fieldValue.charAt( i )) == -1 )
		{
			if ( CommaDot.indexOf( fieldValue.charAt( i )) == -1 )
				return false;
		}
		else
			numfound = "Y"

		if ( fieldValue.charAt( i ) == dot )
			if ( num_of_dots == 0 )
				num_of_dots = 1
			else
				return false;
	}
	
	if ( numfound == "N" )
		return false ;

    return true;
}
///////////////////// End isNumber ////////////////////////

////////////////// isNonZero //////////////////////
function isNonZero( num )
{
	fieldValue	= num ;

	if ( fieldValue < 0 )
		return false;

    return true ;
}
/////////////////////// End isNonZero ////////////////////////

/////////////////////////// isRatio //////////////////////////
function isRatio( num )
{
	fieldValue	= num ;
	fieldLength = num.length ;

	if ( ( fieldValue < 0 ) || ( fieldValue > 100 ) )
		return false;

    return true;
}
/////////////////// End isRatio //////////////////

////////////////// isNonZero //////////////////////
function compareFinAmount( amount1, amount2 )
{
//	alert("compareFinAmount") ;

//	temp1	= stripDown(amount1) ;
//	temp2	= stripDown(amount2) ;

	temp1 = amount1 ;
	temp1 = removeLeadDollar( temp1 ) ;
	temp1 = removeComma( temp1 ) ;
	temp1 = mkDecimal( temp1 ) ;

	temp2 = amount2 ;
	temp2 = removeLeadDollar( temp2 ) ;
	temp2 = removeComma( temp2 ) ;
	temp2 = mkDecimal( temp2 ) ;

	if ( parseFloat(temp1) <  parseFloat(temp2) )
		return -1 ;

	if ( parseFloat(temp1) >  parseFloat(temp2) )
		return 1 ;
	
    return 0 ;
}
/////////////////////// End compareFinAmount ////////////////////////

/////////////////// mkDecimal ///////////////
function mkDecimal(amount)
{
//	alert("mkDecimal")

	//Convert into a floating point number and format as 2 decimal points
	temp	= parseFloat( amount ) ;
	temp	= Math.floor( 100 * amount ) / 100 ;
	temp	= String(temp) ;
	if (temp.indexOf(".") == -1)
	{
		temp = temp + ".00"
	}
	if (temp.indexOf(".") == temp.length -2)
	{
		temp = temp + "0"
	}

	// if zero value make blank
	if (temp == "0.00")
	{
		temp = ""
	}

	return temp ;
}
///////////////////// End mkDecimal ///////////////////

/////////////////// computeRatio ///////////////
function computeRatio(amount1, amount2)
{
//	alert("computeRatio") ;

	temp1 = amount1 ;
	temp1 = removeLeadDollar( temp1 ) ;
	temp1 = removeComma( temp1 ) ;
	temp1 = mkDecimal( temp1 ) ;

	temp2 = amount2 ;
	temp2 = removeLeadDollar( temp2 ) ;
	temp2 = removeComma( temp2 ) ;
	temp2 = mkDecimal( temp2 ) ;
	
	percentage = "" ;
	if ( temp2 != 0 )
		percentage	= mkDecimal ((temp1 / temp2) * 100) ;

	return percentage ;
}
///////////////////// End computeRatio ///////////////////

/////////////////// computeShare ///////////////
function computeShare(amount, percentage)
{
//	alert("computeShare");
//	alert(amount);
//	alert(percentage);

	temp1 = amount ;
	temp1 = removeLeadDollar( temp1 ) ;
	temp1 = removeComma( temp1 ) ;
	temp1 = mkDecimal( temp1 ) ;

	temp2 = percentage ;
	temp2 = removeLeadDollar( temp2 ) ;
	temp2 = removeComma( temp2 ) ;
	temp2 = mkDecimal( temp2 ) ;

	num_share	= parseFloat(temp1) * (parseFloat(temp2) / 100) ;

	return num_share ;
}
///////////////////// End computeShare ///////////////////

/*******************************************************
	--------------------------------------
	--------------------------------------
	 End Common Validation functions
	--------------------------------------
	--------------------------------------
*******************************************************/