//STRING FUNCTIONS-----------------------------------------------------------

function replaceAll(myString, oldChar, newChar)
{
        var leftHalf="";
        var rightHalf="";
        while (myString.indexOf(oldChar) != -1)
        {
                leftHalf=myString.substring(0,myString.indexOf(oldChar));
                rightHalf=myString.substr(myString.indexOf(oldChar)+oldChar.length);
                myString=leftHalf + newChar + rightHalf;
        }
        return myString;
}

function removeAll(myString, oldChar)
{
	return replaceAll(myString, oldChar, "");
}

function Len(myString)
{
	return myString.length;
}

function Left(myString, charCount)
{
	if (myString.length < charCount)
		return -1;
	return myString.substr(0,charCount);
}
function Right(myString, charCount)
{
	if (myString.length < charCount)
		return -1;
	return myString.substr(myString.length-charCount,myString.length);
}

function Trim(myString)
{
	//trim front
	while (myString.charAt(0) == " " || escape(myString.charAt(0)) == "%0A" || escape(myString.charAt(0)) == "%0D" || escape(myString.charAt(0)) == "%09")
		myString=myString.substring(1)
	//trim back
	while (myString.charAt(myString.length-1) == " " || escape(myString.charAt(myString.length-1)) == "%0A" || escape(myString.charAt(myString.length-1)) == "%0D")
		myString=myString.substring(0,myString.length-1)
	return myString;
}

function getParameter(URL, Parameter)
{
	if (URL.indexOf("?" + Parameter + "=") == -1 && URL.indexOf("&" + Parameter + "=") == -1)
		return false;
	else
	{
		var parameterPos=(URL.indexOf("?" + Parameter + "=") > URL.indexOf("&" + Parameter + "="))?URL.indexOf("?" + Parameter + "="):URL.indexOf("&" + Parameter + "=");
		parameterPos+=2+Parameter.length;
		var parameterValue=URL.substr(parameterPos);
		if (parameterValue.indexOf("&") != -1)
			parameterValue=parameterValue.substring(0,parameterValue.indexOf("&"));
		return parameterValue;
	}
	
}

function isNumeric(thisString)
{
	for (var d=0; d<thisString.length; d++)
	{
		if (thisString.charCodeAt(d) < 48 || thisString.charCodeAt(d) > 57)
		{
			if (thisString.charCodeAt(d) != 46)
				return false;
		}
	}
	if (charCount(thisString, ".") > 1)
		return false;
	return true;
}

function containsNumeric(thisString)
{
	var containsNumeric=false;
	var containsCharacter=false;
	for (var d=0; d<thisString.length; d++)
	{
		if (thisString.charCodeAt(d) > 47 && thisString.charCodeAt(d) < 58)
		{
			containsNumeric=true;
		}
	}
	return containsNumeric;
}

function containsAlpha(thisString)
{
	var containsAlpha=false;
	for (var d=0; d<thisString.length; d++)
	{
		if (thisString.charCodeAt(d) > 64 && thisString.charCodeAt(d) < 123)
		{
			containsAlpha=true;
		}
	}
	return containsAlpha;
}

function charCount(thisString, targetChar)
{
	var count=0;
	for (var d=0; d<thisString.length; d++)
	{
		if (thisString.charAt(d) == targetChar)
			count++
	}
	return count;
}

function Find(thisString, targetSubString, instance)
{
	//instance is the nth targetSubString index to find (like find the 3rd instance of "@!!")
	var newString=thisString;
	var charCount=0;
	while (instance>0)
	{
		if (newString.indexOf(targetSubString) != -1)
		{
			charCount+=newString.indexOf(targetSubString)+1;
			newString=newString.substr(newString.indexOf(targetSubString)+1);
			instance--;
		}	
		else
			return -1;
	}
	return charCount;
}

function validateEmailAddress(emailAddress)
{
	if (emailAddress == "")
		return false;
	else if (Find(emailAddress, "@", 1) == -1)
		return false;
	else if (Right(emailAddress, 1) == ".")
		return false;
	else if (Right(emailAddress, 1) == "@")
		return false;
	else if (Find(emailAddress, "@.", 1) != -1)
		return false;
	else if (Find(emailAddress, ".", 1) == -1)
		return false;
	var emailCharList = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,_,@,.,-,!,#,$,%,&,',*,+,/,=,?,^,`,{,|,},~"; 
	for (var a=1; a<=Len(emailAddress); a++)
	{
		if (ListFind(emailCharList,Right(Left(emailAddress,a),1)) == 0)
			return false;
	}
	return true;
}

function Reverse(myString)
{
	var newString="";
	for (var d = 0; d<myString.length; d++)
	{
		newString=myString.substr(d,1)+newString;
	}
	return newString;
}

function URLEncodedFormat(myString)
{
	var newString=replaceAll(myString, "%", "%25");
	var newString=replaceAll(newString, " ", "%20");
	var newString=replaceAll(newString, "&", "%26");
	var newString=replaceAll(newString, "?", "%3F");
	var newString=replaceAll(newString, ".", "%2E");
	var newString=replaceAll(newString, "!", "%21");
	var newString=replaceAll(newString, "#", "%23");
	var newString=replaceAll(newString, "@", "%40");
	var newString=replaceAll(newString, "$", "%24");
	var newString=replaceAll(newString, "+", "%2B");
	var newString=replaceAll(newString, "[", "%5B");
	var newString=replaceAll(newString, "]", "%5D");
	var newString=replaceAll(newString, "{", "%7B");
	var newString=replaceAll(newString, "}", "%7D");
	var newString=replaceAll(newString, ";", "%3B");
	var newString=replaceAll(newString, ":", "%3A");
	var newString=replaceAll(newString, "'", "%27");
	var newString=replaceAll(newString, ",", "%2C");
	var newString=replaceAll(newString, "<", "%3C");
	var newString=replaceAll(newString, ">", "%3E");
	var newString=replaceAll(newString, "/", "%2F");
	var newString=replaceAll(newString, '"', '%22');
	return newString;
}

function MoneyFormat(thisNumber)
{
	var tempNumber=thisNumber+"";
	tempNumber=replaceAll(tempNumber, ",", "");
	while (Left(tempNumber,1) == "0")
	{
		tempNumber = Right(tempNumber,Len(tempNumber)-1);
	}
	if (Left(tempNumber,1) == ".")
		tempNumber = "0" + tempNumber;
	if (Trim(tempNumber) == "")
		return "0.00";
	var InDecPlaces=0;
	if (Find(tempNumber, ".", 1) == -1)	//check for no decimal
		tempNumber+=".";
	else					//check for too many digits
	{
		InDecPlaces=Len(tempNumber)-Find(tempNumber, ".", 1);
		if (InDecPlaces > 2)
		{
			tempNumber = Left(tempNumber, Find(tempNumber, ".", 1)+3);
			if (parseInt(Right(tempNumber,1)) > 4)
			{
				tempNumber*=1;
				tempNumber+=parseFloat(1*.01);
			}
			tempNumber = tempNumber + "";
			tempNumber = Left(tempNumber, Find(tempNumber, ".", 1)+2);
		}	
	}
	InDecPlaces=Len(tempNumber)-Find(tempNumber, ".", 1);
	for (var d=0; d<(2-InDecPlaces); d++)
		tempNumber+="0";
	if (Len(tempNumber) > 6)
	{
		var tempRH=Right(tempNumber, 3);
		var tempLH=Left(tempNumber, Len(tempNumber)-3);
		while (Len(replaceAll(tempLH,"-","")) > 3)
		{
			tempRH=Right(tempLH, 3) + tempRH;
			if (Len(replaceAll(tempLH,"-","")) > 3)
			{
				tempRH="," + tempRH;
				tempLH=Left(tempLH, Len(tempLH)-3);
			}
			else
				tempLH="";
		}
		tempNumber=tempLH+tempRH;	
	}
	return tempNumber;
}
