
function removeChar(inputString, oldChar)
{
	var tmp="";

	for (var i=0; i<inputString.length; i++){
		if (inputString.charAt(i) != oldChar) tmp += inputString.charAt(i);
	}

	return tmp;

}

function replaceChar(inputString, oldChar, newChar)
{
	var tmp="";

	for (var i=0; i<inputString.length; i++){
		if (inputString.charAt(i) != oldChar) tmp += inputString.charAt(i);
		else  tmp += newChar;
	}

	return tmp;

}

function roundTo(val, numberOfDecimal)
{
 var roundBase = 1.0*Math.pow(10, numberOfDecimal);

 var nText = 1.0*(Math.round(val*roundBase)/roundBase);

 if (isNaN(nText)) nText = 0;

 return nText;

}

function convertSpace(str) {
 var res="";

 for(var i=0; i< str.length; i++) {
   if (str.charCodeAt(i) == 160) {
     res += ' ';
   }else
     res += str.charAt(i);
   }

  return res;
}

function getDataValue(val, jsThousandsSeperator, jsDecimalSeperator)
{
 var val_bk = "" + val;

  //remove seperator
 val_bk = convertSpace(val_bk);
 val_bk = removeChar(val_bk, jsThousandsSeperator);

 //use . as decimal sign
 val_bk = replaceChar(val_bk, jsDecimalSeperator, '.');

 var nText = 1.0*(val_bk);
 if (isNaN(nText)) nText = 0.0;

 return nText;
}



function FormatCurrency (val, jsThousandsSeperator, jsDecimalSeperator, jsDecimalDigits)
{

	var tmp;
	var strRtn;
	var strStart;

	var strWholeNumber="";
	var strDecimalNumber="";

	var i=0;
	var j=0;
	var imod=0;

	strRtn="";
	strStart="";

	tmp="" + getDataValue(val,  jsThousandsSeperator, jsDecimalSeperator);

	if (tmp.indexOf ( '+' )==0 || tmp.indexOf ( '-' )==0){
		strStart=tmp.substring(0,1);
		tmp=tmp.substring(1,tmp.length);
	}

	var nPos=tmp.indexOf ( '.' );
	if (nPos>=0) {
		strWholeNumber = tmp.substring(0,nPos);
		strDecimalNumber =  tmp.substring(nPos+1,tmp.length);
	}
	else
	{
		strWholeNumber = tmp;
		strDecimalNumber =  "";
	}

	j=strWholeNumber.length;
	i=parseInt(j/3);
	imod=j%3;

	if (j==0) strRtn="";
	if (imod>0) {
		if (j>3) strRtn=strWholeNumber.substring(0,imod) + jsThousandsSeperator;
		else strRtn=strWholeNumber.substring(0,imod);
	}

	if (i>1){
		for(var k=0; k<i-1; k++){
			strRtn += strWholeNumber.substring(imod + k*3,imod + (k+1)*3) + jsThousandsSeperator;
		}
		strRtn += strWholeNumber.substring(imod + (i-1)*3,imod + (i)*3);
	}else if (i==1) strRtn += strWholeNumber.substring(j-3,j);

  strDecimalNumber += "00000000000000";
  if (jsDecimalDigits > 0) strRtn += jsDecimalSeperator + strDecimalNumber.substring( 0, jsDecimalDigits);

  return strStart + strRtn;

}


var sMonths = new Array ( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" );
var sLongMonths = new Array ( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );

function FormatDateDMY (dateSeed) // get a simple date in "12/31/2000" format
{
   var date = new Date (dateSeed);

   return (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
}

function FormatDateDMYv (dateSeed) // get a verbose date in "Dec 12 2001" format
{
   var date = new Date ( dateSeed );

   return sMonths [ date.getMonth() ] + ' ' + date.getDate() + ' ' + date.getFullYear ( );
}

function FormatDateDMYverb (dateSeed) // get a verbose date in "Dec 12 2001" format
{
   var date = new Date ( dateSeed );

   return  date.getDate() + ' ' + sMonths [ date.getMonth() ] + ' ' + date.getFullYear ( );
}


function currentAge(birth) //the format: "yyyy/mm/dd"
{
	arrayOfStrings = birth.split("/");

	birthTime = new Date(arrayOfStrings[0],0+arrayOfStrings[1]-1,arrayOfStrings[2])
	todaysTime = new Date();

	todaysYear = todaysTime.getFullYear();
	todaysMonth = todaysTime.getMonth();
	todaysDate = todaysTime.getDate();

	birthYear = birthTime.getFullYear();
	birthMonth = birthTime.getMonth();
	birthDate = birthTime.getDate();

	diffYear = todaysYear - birthYear-1;
	if(todaysMonth>=birthMonth && todaysDate>=birthMonth)   diffYear++  ;

	return diffYear;

}

