function modifyQueryString(url, param, value)
{
	if (url.indexOf('?') == -1 )	 //if no querystring present
		return (url + "?" + param + "=" + urlEncode(value)); //x.asp?name=Peter+Paul
	else
	{
		if ((url.indexOf("?" + param + "=") == -1 ) && (url.indexOf("&" + param + "=") == -1)) //passed querystring not already present		
		{
			return (url + "&" + param + "=" + urlEncode(value)); //x.asp?Age=25&Name=Peter+Paul;
		}
		else //passed querystring already present, replace it no matter if it is ?name= or &name=
		{
			var replaceQSPrefix = (url.indexOf("?" + param + "=") == -1) ? "&" + param + "=" : "?" + param + "=";
			var replaceQSSuffix = ""; //this will be John in case of ?name=John or &name=John 
			var startpos = url.indexOf(replaceQSPrefix);
			
			for (a = (startpos + replaceQSPrefix.length); a < url.length; a++)
			{
				if (url.charAt(a) == "&") //next querystring beginning
					break;
				else
					replaceQSSuffix += url.charAt(a);
			}
			var newurl = url.replace(replaceQSPrefix + replaceQSSuffix, replaceQSPrefix + urlEncode(value));
			return newurl;
		}
	}
}

function urlEncode(text)
{
	//text = ReplaceAll(text, "/\", "%2F");
	text = replaceAll(text, "?", "%3F");
	text = replaceAll(text, "=", "%3D");
	text = replaceAll(text, "&", "%26");
	text = replaceAll(text, " ", "+");
	text = replaceAll(text, ",", "%2c");	
	
	return text;
}

//replace all given string from a string
function replaceAll(text, replaceThis, replaceBy)
{
	var newTextArray = text.split(replaceThis);
	var newText = newTextArray.join(replaceBy);	
	return newText;
}

//http://www.mediacollege.com/internet/javascript/text/case-capitalize.html
//capitalise words, eg. abc becomes Abc and dEf becomes Def
function capitalize(text)
{
	var tmpStr, tmpChar, preString, postString, strlen;
	tmpStr = text.toLowerCase();
	stringLen = tmpStr.length;
	
	if (stringLen > 0)
	{
		for (i = 0; i < stringLen; i++)
		{
			if (i == 0)
			{
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,stringLen);
				tmpStr = tmpChar + postString;
			}
			else
			{
				tmpChar = tmpStr.substring(i,i+1);
				if (tmpChar == " " && i < (stringLen-1))
				{
					tmpChar = tmpStr.substring(i+1,i+2).toUpperCase();
					preString = tmpStr.substring(0,i+1);
					postString = tmpStr.substring(i+2,stringLen);
					tmpStr = preString + tmpChar + postString;
				}
			}
		}
	}
	return tmpStr;
}

//go to page
function goto(link)
{
	document.location.href = link;
}

//set focus on first visible and enabled element
function setFocus()
{
	var bFound = false;

	// for each form
	for (f=0; f < document.forms.length; f++)
	{
		// for each element in each form
		for(i=0; i < document.forms[f].length; i++)
		{
			// if it's not a hidden element
			if (document.forms[f][i].type != "hidden")
			{
				// and it's not disabled
				if (document.forms[f][i].disabled != true)
				{
					// set the focus to it
					document.forms[f][i].focus();
					var bFound = true;
				}
			}
			// if found in this element, stop looking
			if (bFound == true)
				break;
		}
		// if found in this form, stop looking
		if (bFound == true)
			break;
	}
}

//allow only number for textbox keypress
function numberonly(e, alertUser, allowDot)
{
	if (alertUser == undefined || alertUser == null || alertUser == "")
	{
		alertUser = false;
	}
	
	if (allowDot == undefined || allowDot == null || allowDot == "")
	{
		allowDot = false;
	}
	
	var charCode = (e.which) ? e.which : event.keyCode;
	if (allowDot)
	{
		if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
		{
			if (alertUser)
			{
				alert("Please enter only numbers");
			}
			return false;
		}
	}
	else
	{
		if (charCode > 31 && (charCode < 48 || charCode > 57))
		{
			if (alertUser)
			{
				alert("Please enter only numbers");
			}
			return false;
		}
	}
	
	return true;
}

function numberToCurrency(number)
{
	var i = parseFloat(number);
	
	if(isNaN(i))
	{
		i = 0.00;
	}
	
	var minus = '';
	
	if(i < 0)
	{
		minus = '-';
	}
	
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	
	if(s.indexOf('.') < 0)
	{
		s += '.00';
	}
	
	if(s.indexOf('.') == (s.length - 2))
	{
		s += '0';
	}
	s = minus + s;
	
	s = "$" + commaFormatted(s);
	
	return s;
}

function commaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2);
	var d = a[1];
	var i = parseInt(a[0]);
	
	if(isNaN(i))
	{
		return '';
	}
	
	var minus = '';
	
	if(i < 0)
	{
		minus = '-';
	}
	
	i = Math.abs(i);
	
	var n = new String(i);
	var a = [];
	
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	
	if(n.length > 0)
	{
		a.unshift(n);
	}
	
	n = a.join(delimiter);
	
	if(d.length < 1)
	{
		amount = n;
	}
	else
	{
		amount = n + '.' + d;
	}
	
	amount = minus + amount;
	
	return amount;
}

function currencyToNumber(dollar)
{
	y = dollar.replace(/^\s+/, '').replace(/\s+$/, ''); //strip trailing spaces
	y = y.replace(/,/g,""); //strip comma
	y = y.replace(/\$/g,""); //strip dollar sign
	
	return y;
}

function getQueryString(queryString)
{
	var toReturn = '';

	var urlHalves = String(document.location).split('?');

	if(urlHalves[1])
	{
		var urlVars = urlHalves[1].split('&');
		for(i=0; i<=(urlVars.length); i++)
		{
			if(urlVars[i])
			{
				var urlVarPair = urlVars[i].split('=');
				if (urlVarPair[0] && urlVarPair[0] == queryString)
				{
					toReturn = urlVarPair[1];
				}
			}
		}
	}
	return toReturn;
}