// dependency: check.js
function sURLEncode(a_sText, a_bSaveRes, a_bToSpecialHTMLEntities) {
	var bSaveRes = (!bIsDefined(a_bSaveRes) ? true : a_bSaveRes);
	var bToSpecialHTMLEntities = (!bIsDefined(a_bToSpecialHTMLEntities) ? false : a_bToSpecialHTMLEntities);

	// Niet om te zetten karakters eerst om zetten ih html entities
	if (bToSpecialHTMLEntities) {
		a_sText = a_sText.replace(/€/g, '&euro;');
	}
	
	// Unsafe characters
	a_sText = a_sText.replace(/%/g, '%25');
	a_sText = a_sText.replace(/ /g, '%20');
	a_sText = a_sText.replace(/"/g, '%22');
	a_sText = a_sText.replace(/</g, '%3C');
	a_sText = a_sText.replace(/>/g, '%3E');
	a_sText = a_sText.replace(/#/g, '%23');
	a_sText = a_sText.replace(/</g, '%3C');
	a_sText = a_sText.replace(/{/g, '%7B');
	a_sText = a_sText.replace(/}/g, '%7D');
	a_sText = a_sText.replace(/\|/g, '%7C');
	a_sText = a_sText.replace(/\\/g, '%5C');
	a_sText = a_sText.replace(/\^/g, '%5E');
	a_sText = a_sText.replace(/~/g, '%7E');
	a_sText = a_sText.replace(/\[/g, '%5B');
	a_sText = a_sText.replace(/\]/g, '%5D');
	a_sText = a_sText.replace(/`/g, '%60');
	a_sText = a_sText.replace(/\n/g, '%0A');
			
	// Reserved characters
	if (!bSaveRes) {
		a_sText = a_sText.replace(/\$/g, '%24');
		a_sText = a_sText.replace(/&/g, '%26');
		a_sText = a_sText.replace(/\+/g, '%2B');
		a_sText = a_sText.replace(/,/g, '%2C');
		a_sText = a_sText.replace(/\//g, '%2F');
		a_sText = a_sText.replace(/:/g, '%3A');
		a_sText = a_sText.replace(/;/g, '%3B');
		a_sText = a_sText.replace(/=/g, '%3D');
		a_sText = a_sText.replace(/\?/g, '%3F');
		a_sText = a_sText.replace(/@/g, '%40');
	}
	
	return a_sText;
}