// common js functions
// 
// Copyright (c) 2004 Tribal DDB Canada
// James Marshall www.tribalddb.ca
// 
// v3.01

// image swapping
function swap( id, img ) {
	document.getElementById( id ).src = img.src;
}

function handleMO( btype ) {
	document.getElementById( btype ).src = "/Images/" + btype + "_roll.gif";
}

function handleMout(btype) {
	document.getElementById( btype ).src = "/Images/" + btype + ".gif";
}	 
		
function isNumeric(alphaField, errMsg ) {
	if (isNaN(alphaField.value)==false  && alphaField.value > 0)
	{
		return true;
	}else{
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isNumericMaxLength(alphaField, errMsg, maxLength ) {
	if (isNaN(alphaField.value)==false  && alphaField.value > 0 && alphaField.value.length <= maxLength ) {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isName( alphaField, errMsg ) {
	if ( alphaField.value.match(/^[A-Za-z\'\- ]+$/) ) {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isEmail( alphaField, errMsg ) {
	if ( alphaField.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1 ) {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isEmailMulti( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value.search(/^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+(,( )?)?)+$/) != -1 ) {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function isEmpty( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value != "") {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
	}
}

function hasValues( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value == "") {
		return false;
	} else {
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return true;
	}
}

function isSelectEmpty( alphaField, errMsg ) {
	// email addresses separated by commas
	if ( alphaField.value != "") {
		return true;
	} else {
		alert(errMsg);
		alphaField.focus();
		return false;
	}
}

function isDate(year, month, day) {
	// month argument must be in the range 1 - 12
	month = month - 1; // javascript month range : 0- 11
	var tempDate = new Date(year,month,day);
	if( (tempDate.getYear() == year) && (month == tempDate.getMonth()) && (day == tempDate.getDate()) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function isAdminDate( alphaField, errMsg ) {
	// 3+3+4 digit
	if( alphaField.value.match(/^\d\d\d\d\-\d\d\-\d\d$/) )
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function isPhone( alphaField, errMsg ) {
	// 3+3+4 digit
	if( alphaField.value.match(/^\d\d\d\-\d\d\d\-\d\d\d\d$/) )
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function fixPhone( phone ) {
	var num = phone.value;
	var newnum = "";
	var output = "";
	// strip out non-numbers
	for ( var i = 0; i < num.length; i++ )
		if ( num.charAt( i ).match(/\d/) )
			newnum += num.charAt( i );
	if ( newnum ) {
		// rebuild number with hyphen
		for ( var i = 0; i < newnum.length; i++ ) {
			if ( i == 3 || i == 6 )
				output += "-";
			else if ( i == 10 )
				output += " ";
			output += newnum.charAt( i )
		}
	}
	// return value
	phone.value = output;
}

function isZip( alphaField, errMsg ) {
	// 5 digit zips
	if( alphaField.value.match(/^\d\d\d\d\d$/) )
	{
		return true;
		}
	// 5+4 digit zips
	if( ( alphaField.value.match(/^\d\d\d\d\d\d\d\d\d$/) ) || ( zip.match(/^\d\d\d\d\d\-\d\d\d\d$/) ) )
	{
		return true;
	}else{	
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function isPostalCode( alphaField, errMsg ) {
	// canadian postal codes (6 or 7 characters)
		pc=alphaField.value;
		if( ( pc.match(/^[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d$/) ) || ( pc.match(/^[A-Za-z]\d[A-Za-z] \d[A-Za-z]\d$/) ) )
		{
		return true;
		}else{
		alert(errMsg);
		alphaField.focus();
		alphaField.select();
		return false;
		}
}

function fixPostalCode( pc ) {
	var newpc = "";
	var output = "";
	// strip out non-alphanumeric
	for ( var i = 0; i < pc.value.length; i++ )
		if ( pc.value.charAt( i ).match(/\w/) )
			newpc += pc.value.charAt( i );
	if ( newpc ) {
		// rebuild number with space
		for ( var i = 0; i < 6; i++ ) {
			output += newpc.charAt( i )
			if ( i == 2 )
				output += " ";
		}
	}
	// return value in uppercase
	pc.value = output.toUpperCase();
}

// popup windows
function popup( url, name, w, h ) {
	var x = (screen.width - w) / 2;
	var y = (screen.availHeight - h) / 2;
	var page = window.open(url,name,"toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=no,width=" + w + ",height=" + h + ",screenX=" + x + ",screenY=" + y + ",top=" + y + ",left=" + x + "");
	page.focus();
	return page;
}

// popup windows
function popupScroll( url, name, w, h ) {
	var x = (screen.width - w) / 2;
	var y = (screen.availHeight - h) / 2;
	var page = window.open(url,name,"toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=" + w + ",height=" + h + ",screenX=" + x + ",screenY=" + y + ",top=" + y + ",left=" + x + "");
	page.focus();
	return page;
}

function isSku( alphaField, errMsg ) {
	// 3+3+4 digit
	if( alphaField.value.match(/^\d\d\d\d\_\d\d\d\d\d$/) )
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

//*** < $1000
function isPrice( alphaField, errMsg ) {
	// 3+3+4 digit
	if(alphaField.value.match(/^\d{1,3}\.\d{2}$/))
	{
	return true;
	}else{
	alert(errMsg);
	alphaField.focus();
	alphaField.select();
	return false;
	}
}

function trim(strToTrim) 
{
	return strToTrim.replace(/^(\s+)?(.*\S)(\s+)?$/, '$2');
}

function checkAlphaNumeric(alphaField, illegalChars)
	{
				for(var j=0; j< alphaField.length; j++)
					{
					theChar = alphaField.charAt(j);

						if(illegalChars.indexOf(theChar) > -1)
						{
							return false;
						} 
					}
				return true;
			}

			function validateAlphaNumeric(alphaField, minLength, maxLength, errorMsg)
			{
			illegalChars="\"\'()\\";
			alphaValue = trim(alphaField.value);
			
			if(((alphaValue.length > 0) && (!checkAlphaNumeric(alphaValue,illegalChars)) || (alphaValue.length > maxLength) || (alphaValue.length < minLength))){
				
					if(alphaValue.length < minLength)
					{
					alert(errorMsg);
					}else{
					alert(errorMsg + "(" + illegalChars + ")" );
					}
				
				alphaField.focus();
				alphaField.select();
				return false;
				}else{
				return true;
				}
			}

		function validateDDChosen(ddName, errorMsg)
		{
			if(ddName.selectedIndex == -1)
			{
			alert(errorMsg);
			ddName.focus();
			return false;
			}else{
			return true;
			}
		}

var req;
var msg;

//***************************************
// Simple Ajax Code, does get or post on passed Query String

function Ajax2Page(fct, url, formStr, successMsg, errorMsg) 
{
  success = successMsg;
  failure = errorMsg; 
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest)
     {
        req = new XMLHttpRequest();

    } else if (window.ActiveXObject) 
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    } 
        
        if (req)
        {
            req.onreadystatechange = processReqChange;
           
				if(fct=="POST")
				{
					req.open("POST", url, true);
					req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					req.setRequestHeader("Content-length", formStr.length);
					req.setRequestHeader("Connection", "close");
					req.send(formStr);
				}else{       
					req.open("GET", url+"?"+formStr, true);
					req.send(null);
				}
        }
}

function processReqChange() 
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        if (req.status == 200) {  
			if(success != ""){alert(success);}
        } else {
            if(failure != ""){alert(failure);}
        }
    }
}

//**************** Media Player **********************

function menuPlayerOff()
{
	document.getElementById("ap").src = "/images/menu/ap_f2.gif";
}

function menuPlayerOn()
{
	document.getElementById("ap").src = "/images/menu/ap.gif";
}

function setPlayerInMenu()
{
	if(isPageInFrameSet())
	{
		document.getElementById("audioLayer").style.visibility="visible";
		if(isPlayerOn() == false)
		{
		menuPlayerOff();
		}
	}
}

function isPlayerOn()
{
	if(parent.musicFrame.location.href.indexOf("audioplayer.php") != -1)
	{
	return true;
	}else{
	return false;
	}
}

function isPageInFrameSet()
{
	if(top.location == self.location)
	{
	return false;
	}else{
	return true;
	}
}

function toggleMusicFrame(isFromHTML)
{
	if(isPageInFrameSet())
	{
		if(isPlayerOn())
		{
			if(isFromHTML){menuPlayerOff()};
			parent.musicFrame.location.href="blank.html";
		}else{
			if(isFromHTML){menuPlayerOn()};
		parent.musicFrame.location.href="audioplayer.php";
		}
	}
}

//****************************************************************************************
//* LIGHTBOX OVERLAYS 									*
//****************************************************************************************

var RootURL ="/";


function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return htmlEscape(pair[1]);
    }
  } 
  return null;
}

//validate the Source feild
function Test_For_Source(Source)
{
    if(Source.lenght==0)
        return false;
    if(Source=="null")
        return false;
    if(Source=="http://")
        return false;
    if(Source=="http%3A%2F%2F")
        return false;
        
    return true;
}

//validate the Link feild
function Test_For_Link(Link)
{
    if(Link.length==0)
        return false;
    if(Link=="null")
        return false;
    if(Link=="http://")
        return false;
    if(Link=="http%3A%2F%2F")
        return false;
        
    return true;
}

function URLDecode(encoded)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
	
   return plaintext;
}

function checkMail(EmailToCheck)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(EmailToCheck)) return true;
	else return false;
}

function URLEncode(valueToCode)
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = valueToCode;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return plaintext;
}
function PageTitle()
{
    document.write(decodeURI(getQueryVariable("T")));
}

function taLimit(e) {
	var taObj;
	if (window.event) { // IE
		taObj=e.srcElement;
	}
	else { // Firefox, Opera, Etc.
		taObj = e.target;
	}
	var maxlength;
	if (typeof(taObj.maxLength) == 'undefined') { // Firefox, Opera, Etc.
		maxlength = parseInt(taObj.getAttribute("maxlength"));
	}
	else { // IE
		maxlength = taObj.maxLength;
	}
	if (taObj.value.length >= maxlength*1) return false;
}

function taCount(e) { 
	var taObj;
	if (window.event) { // IE
		taObj=e.srcElement;
	}
	else { // Firefox, Opera, Etc.
		taObj = e.target;
	}
	var maxlength;
	if (typeof(taObj.maxLength) == 'undefined') { // Firefox, Opera, Etc.
		maxlength = parseInt(taObj.getAttribute("maxlength"));
	}
	else { // IE
		maxlength = taObj.maxLength;
	}
	if (taObj.value.length>maxlength*1) taObj.value=taObj.value.substring(0,maxlength*1);
	var visCnt = document.getElementById("myCounter");
	if (visCnt) visCnt.innerHTML=maxlength-taObj.value.length;
}

function clear(obj)
{
    alert("howdy");
    document.getElementById(obj).value="";
}

function printThis()
{	
	var container = document.getElementById( "contentcontainer" );

	if ( container )
	{
		var content = "<html>";
		content +="<head>";
		content +="<link rel=\"stylesheet\" type=\"text/css\" href=\"/CSS/style.css\">";
		content +="<link rel=\"stylesheet\" type=\"text/css\" href=\"/CSS/thickbox.css\">";
		content +="<script src=\"/JS/common.js\" type=\"text/javascript\"></script>";
		content +="<title>Healthy U Printer-Friendly</title>";
		content +="</head>";
		content	+= "<body style=\"background-color: #fff;\"><table border=0 cellpadding=0 cellspacing=0 width='650px' summary='main page table' style='width:650px'><tr><td>";
		content += "<p style=\"clear: left\"><img src=\"/Images/healthy_U_logo.gif\" border=\"0\"><span class=\"logo\">Healthy U</span></p>";

		var header = document.getElementById("header");
		var sourceFound = false;
		var isArticle = document.getElementById("article")

		if (header)
		{
			try
			{
				if (pageCount)
				{
					content += "<div id=\"header\">" + header.innerHTML + "</div>";					
					content += "<br/>";

					for (var i = 0; i < pageCount; i++)
					{	
						var source = document.getElementById("cgiPagerPage_" + i);		
						if (source)
						{
							content += source.innerHTML;
							sourceFound = true;
						}
					}
				}
			}
			catch (e)
			{
				if (typeof(pageCount) == 'undefined')
				{
					if (isArticle && isArticle.value == "recipe")
					{
					
						content += "<link rel=\"stylesheet\" type=\"text/css\" href=\"/CSS/thickbox.css\">";

						content += "<script type=\"text/javascript\" src=\"/JS/jquery.js\"></script>";

						content += "<script type=\"text/javascript\" src=\"/JS/thickbox.js\"></script>";
						content += "<div>" + header.innerHTML + "</div>";
						
						var servingInformation = document.getElementById("print1");
						var ingredients = document.getElementById("print2");
						var directions = document.getElementById("print3");						

						if (ingrTable && ingredients)
						{
							// Get the index of the end of the first <div> tag
							content += 
								"<style type=\"text/css\">\n" +
						        "    #ingredTable table { \n" +
								"		border-bottom: solid gray 1px;\n" +
								"		border-left: solid gray 1px;\n" +
								"		border-right: solid gray 1px;\n" +
								"		border-collapse: collapse;\n" +
					 			"	  }\n" +
					            "    #ingredTable td { border-top: solid gray 1px; }\n" +
								"	#ingredTable tr.theme1 { background-color:#B7D99A; }\n" +
					            "    #ingredTable tr.theme2 { background-color:#D8EBC6; }\n" +
								"	img.theme1 { background-color:#B7D99A; padding-left: 5px; }\n" +
					            "    img.theme2 { background-color:#D8EBC6; padding-left: 5px; }\n" +
					            "</style>     \n" +
								"<div style=\"width: 66%; float:left; margin: 0px 0px 20px 0px\">" + 
								ingredients.innerHTML + "</div>";
							if ((typeof(exists) != 'undefined') && (exists != null) && (exists != ''))
								content += "<img src=\"" + exists + "\" style=\"float: right; margin: 0px 0px 0px 0px; border: solid black 1px; width: 193px\">\n" +
									"<div style\"clear: both\">&nbsp;</div>";

							if (directions)
							{
								content += "<br/>" + "<div style=\"clear: left\">" + directions.innerHTML + "</div>";
							}
	
							if (servingInformation)
								content += "<div>" + servingInformation.innerHTML + "</div>";
								
							var disclaimer = '<br />\n<div>' +
					            'Through a partnership with the University of Alberta Faculty of Nutrition and ' +
								'Food Science and Alberta Health and Wellness, ' +
					            'all recipes were analyzed using the <em>Esha Food Processor</em> version 9.8, ' +
								'2004 database. Adobe Photoshop was used to create ' +
					            'the final Nutrition Facts label.</div>';
			
							if ((typeof(exists) != 'undefined') && (exists != null) && (exists != ''))
								content += disclaimer;
							
							sourceFound = true;	
						}

					}
					else
					{
						var source = document.getElementById("articlebox");
						
						if (source)
						{
							content += "<script src=\"/JS/HealthyUAJAX.js\" type=\"text/javascript\"></script>";
	
							content += "<div id=\"header\">" + header.innerHTML + "</div>";					
							content += "<br/>";
							content += source.innerHTML;

							sourceFound = true;
						}
						else
						{
							content += "<script src=\"/JS/HealthyUAJAX.js\" type=\"text/javascript\"></script>";
	
							content += container.innerHTML;
							
							sourceFound = true;
						}
					}
				}
			}
		}

		content += "</td></tr></table></body></html>";

		if (sourceFound)
		{
			top.consoleRef=window.open('','_blank',
	  				'width=800,height=600,left=50,top=50'
	   				+',menubar=1'
	   				+',toolbar=1'
		   			+',status=1'
	   				+',scrollbars=1'
	   				+',resizable=1');
			top.consoleRef.document.write(content);
			top.consoleRef.document.close();
		}
	}
}

function LinksPolicy_link()
{

    var URL = "";
    var PageTitle = "Links Policy";
    
    URL = "<a href=\"/LinksPolicy.htm?T=" + PageTitle;
    URL += "&keepThis=true&TB_iframe=true&height=500&width=520&scrolling=auto\" title=\"\" class=\"thickbox\">Links Policy</a>";  
    
    document.write(URL); 

}

//****************************************************************************************
//* Encoding to fix XSS attacks				*
//****************************************************************************************

	var hex=new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
	
	function htmlEscape(input)
	{
		var preescape=input;
		var escaped="";
			
		var i=0;
		for(i=0;i<preescape.length;i++)
		{
			escaped=escaped+escapeChar(preescape.charAt(i));
		}
			
		return escaped;
	}

	function escapeChar(original)
	{
 	   	var found=true;
  	   	var thechar=original.charCodeAt(0);
		switch(thechar) {				
			case '\n': return "<br/>"; break; //newline
			case '\r': break;
			case 60:return "&lt;"; break; //<
			case 62:return "&gt;"; break; //>
			case 38:return "&amp;"; break; //&
			case 34:return "&quot;"; break; //"
			case 198:return "&AElig;"; break; //Æ
			case 193:return "&Aacute;"; break; //Á
			case 194:return "&Acirc;"; break; //Â
			case 192:return "&Agrave;"; break; //À
			case 197:return "&Aring;"; break; //Å
			case 195:return "&Atilde;"; break; //Ã
			case 196:return "&Auml;"; break; //Ä
			case 199:return "&Ccedil;"; break; //Ç
			case 208:return "&ETH;"; break; //Ð
			case 201:return "&Eacute;"; break; //É
			case 202:return "&Ecirc;"; break; //Ê
			case 200:return "&Egrave;"; break; //È
			case 203:return "&Euml;"; break; //Ë
			case 205:return "&Iacute;"; break; //Í
			case 206:return "&Icirc;"; break; //Î
			case 204:return "&Igrave;"; break; //Ì
			case 207:return "&Iuml;"; break; //Ï
			case 209:return "&Ntilde;"; break; //Ñ
			case 211:return "&Oacute;"; break; //Ó
			case 212:return "&Ocirc;"; break; //Ô
			case 210:return "&Ograve;"; break; //Ò
			case 216:return "&Oslash;"; break; //Ø
			case 213:return "&Otilde;"; break; //Õ
			case 214:return "&Ouml;"; break; //Ö
			case 222:return "&THORN;"; break; //Þ
			case 218:return "&Uacute;"; break; //Ú
			case 219:return "&Ucirc;"; break; //Û
			case 217:return "&Ugrave;"; break; //Ù
			case 220:return "&Uuml;"; break; //Ü
			case 221:return "&Yacute;"; break; //Ý
			case 225:return "&aacute;"; break; //á
			case 226:return "&acirc;"; break; //â
			case 230:return "&aelig;"; break; //æ
			case 224:return "&agrave;"; break; //à
			case 229:return "&aring;"; break; //å
			case 227:return "&atilde;"; break; //ã
			case 228:return "&auml;"; break; //ä
			case 231:return "&ccedil;"; break; //ç
			case 233:return "&eacute;"; break; //é
			case 234:return "&ecirc;"; break; //ê
			case 232:return "&egrave;"; break; //è
			case 240:return "&eth;"; break; //ð
			case 235:return "&euml;"; break; //ë
			case 237:return "&iacute;"; break; //í
			case 238:return "&icirc;"; break; //î
			case 236:return "&igrave;"; break; //ì
			case 239:return "&iuml;"; break; //ï
			case 241:return "&ntilde;"; break; //ñ
			case 243:return "&oacute;"; break; //ó
			case 244:return "&ocirc;"; break; //ô
			case 242:return "&ograve;"; break; //ò
			case 248:return "&oslash;"; break; //ø
			case 245:return "&otilde;"; break; //õ
			case 246:return "&ouml;"; break; //ö
			case 223:return "&szlig;"; break; //ß
			case 254:return "&thorn;"; break; //þ
			case 250:return "&uacute;"; break; //ú
			case 251:return "&ucirc;"; break; //û
			case 249:return "&ugrave;"; break; //ù
			case 252:return "&uuml;"; break; //ü
			case 253:return "&yacute;"; break; //ý
			case 255:return "&yuml;"; break; //ÿ
			case 162:return "&cent;"; break; //¢
			default:
				found=false;
				break;
		}
		if(!found)
		{
			if(thechar>127)
			{
				var c=thechar;
				var a4=c%16;
				c=Math.floor(c/16); 
				var a3=c%16;
				c=Math.floor(c/16);
				var a2=c%16;
				c=Math.floor(c/16);
				var a1=c%16;
				return "&#x"+hex[a1]+hex[a2]+hex[a3]+hex[a4]+";";		
			}
			else
			{
				return original;
			}
		}		
	}

