//GENERAL FUNCTIONS - ADMIN AND FRONT END

//-------------------------------------------------------------------------------------------
// validates input - currency values only using an object
//-------------------------------------------------------------------------------------------
function validateInputCurrency(obj) {
	var numbers=new Array(0,1,2,3,4,5,6,7,8,9,'-','.');
	if (document.getElementById(obj)!=null) {
		var number=document.getElementById(obj).value.toString();
		var newnumber='';
		var n=0;
		var numberStart=false;
		var removeCommas=false;

		//allow negative values
		var minus=false;

		if (number.substring(0,1)=='-') minus=true;
		for(i=(number.length-1);i>=0;i--) {
			var numbChar=number.substring(i,(i+1));
			if (this.in_Array(numbChar,numbers)!==false) {
				//if (n>0 && n%3==0) newnumber=','+newnumber;
				newnumber=numbChar+newnumber;
				n++;
			}
		}

		var finalNumber='';
		//remove 0s from the start of a number
		for(i=0;i<newnumber.length;i++) {
			var numbChar=newnumber.substring(i,(i+1));
			if (!numberStart && numbChar>0) numberStart=true;
			//if (numberStart || numbChar>0) {
				finalNumber+=numbChar;
			//}
		}
		if (minus) document.getElementById(obj).value='-'+finalNumber
		else document.getElementById(obj).value=finalNumber;
	}
}




function validateInputInteger(obj) {
	var numbers=new Array(0,1,2,3,4,5,6,7,8,9);
	if (document.getElementById(obj)!=null) {
		var number=document.getElementById(obj).value.toString();
		var newnumber='';
		var n=0;
		var numberStart=false;
		var removeCommas=false;

		//allow negative values
		var minus=false;

		if (number.substring(0,1)=='-') minus=true;
		for(i=(number.length-1);i>=0;i--) {
			var numbChar=number.substring(i,(i+1));
			if (this.in_Array(numbChar,numbers)!==false) {
				//if (n>0 && n%3==0) newnumber=','+newnumber;
				newnumber=numbChar+newnumber;
				n++;
			}
		}

		var finalNumber='';
		//remove 0s from the start of a number
		for(i=0;i<newnumber.length;i++) {
			var numbChar=newnumber.substring(i,(i+1));
			if (!numberStart && numbChar>0) numberStart=true;
			//if (numberStart || numbChar>0) {
				finalNumber+=numbChar;
			//}
		}
		if (minus) document.getElementById(obj).value='-'+finalNumber
		else document.getElementById(obj).value=finalNumber;
	}
}


//-------------------------------------------------------------------------------------------
// validates input - numeric values only
//-------------------------------------------------------------------------------------------
this.validateInputNumeric = function(obj) {
	var numbers;
	var err=false;
	numbers=new Array(0,1,2,3,4,5,6,7,8,9,'-','.');
	if (document.getElementById(obj)!=null) {
		var number=document.getElementById(obj).value.toString();
		var newnumber='';
		var decUsed=false;

		for(var i=0;i<number.length;i++) {
			var numbChar=number.substring(i,(i+1));
			if (this.in_Array(numbChar,numbers)!==false) {
				if (numbChar=='-' && i>0) continue;
				if (numbChar=='.') {
					if (decUsed) continue;
					else decUsed=true;
				}
				newnumber+=numbChar;
			} else {
				err=true;
			}
		}
		document.getElementById(obj).value=newnumber;
		if (err)document.getElementById(obj).style.border = '1px solid #FF0000';
		//else document.getElementById(obj).style.border = '1px solid #AAAACC';
		else document.getElementById(obj).style.border = '';
	}
}







// GENERIC FUNCTIONS //

//-------------------------------------------------------------------------------------------
// Find a value in an array returns element position if found otherwise it returns false
//-------------------------------------------------------------------------------------------
function in_Array(needle,haystack,offset) {
	if (offset==null || offset==undefined) offset=0;
	for(var i=offset;i<haystack.length;i++) {
		if (haystack[i]==needle) return i;
	}
	return false;
}


function show2dp(curAmount)
{
	//Requires isNumeric function

	strZeros = "00"
	if (curAmount===0) {
		return "0.00";
		}
	else if (isNumeric(curAmount)==false)
		{
		if (curAmount != "") {alert("This value must be numeric.")}
		return "";
		}
	else
		{
		intLen = (curAmount + "").length;
		intPoint = (curAmount + "").indexOf(".");
		if (intPoint == -1)
			{
			return curAmount + ".00"	
			}
		else
			{
			//curAmount = Math.floor(curAmount + 0.5);	//Round down to nearest whole number
			curAmount = curAmount + 0.005;
			curAmount = curAmount + strZeros.substring(intLen-intPoint-1)
			curAmount = curAmount.substring(0,intPoint+3)	//Handles rounding errors eg 15.000000001
			return curAmount
			}			
		}
	
}


function isNumeric(strString)
{
   //  check for valid numeric strings
	var strValidChars = "0123456789.";
	var strChar;
	var blnResult1 = true;   
   
   if ((strString == "") || (strString == null))
   {   
		blnResult1 = false;
		return blnResult1;
	}	
   else
   {	
	for (i = 0; i < strString.length && blnResult1 == true; i++)
	   {
	   strChar = strString.charAt(i);
	   if (strValidChars.indexOf(strChar) == -1)
	      {
	      blnResult1 = false;
	      }
	   }
	return blnResult1;
   }
}

function leftTrim(sString) {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	return sString;
}

function rightTrim(sString){
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function trimAll(sString) {
	sString = leftTrim(sString);
	sString = rightTrim(sString);
	return sString;
}
