	// var http_request = false; // use global var if we want multiple calls to overwrite each other ?	var http_request_methods = new Array();	var isIE = false;	var ua = navigator.userAgent.toLowerCase();	if ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)) isIE = true; 	function makeXMLRequest(scripturl,func,params) {		//http_request = false;		if (window.XMLHttpRequest) { // Mozilla, Safari,...			http_request = new XMLHttpRequest();			if (http_request.overrideMimeType) {				http_request.overrideMimeType('application/xml');			}		} else if (window.ActiveXObject) { // IE			try {				http_request = new ActiveXObject("Msxml2.XMLHTTP");			} catch (e) {				try {					http_request = new ActiveXObject("Microsoft.XMLHTTP");				} catch (e) {}			}		}		if (!http_request) {			// alert('Giving up :( Cannot create an XMLHTTP instance');			return true; // allow href attribute to load new page as request has failed		}		if (params['indicator']) {			document.getElementById(params['indicator'][0]).src = params['indicator'][1];		}		http_request.onreadystatechange = function () { return ajaxUpdate(http_request,func,params) }		http_request.open('GET', scripturl, true);		http_request.send(null);				return false; // stop href from being loaded	}	function ajaxUpdate(http_request,func,params) {		try {			if (http_request.readyState == 4) {				if (http_request.status == 200) {										if (params['indicator']) {						document.getElementById(params['indicator'][0]).src = params['indicator'][2];					}										if (http_request_methods[func](http_request.responseXML, params)) {						return false;					}					else {						if (params['input']) {							window.location = params['input'].href;						}												return true;					}								} else {				    // alert('There was a problem with the request.');					if (params['indicator']) {						document.getElementById(params['indicator'][0]).src = params['indicator'][2];					}					if (params['input']) {						window.location = params['input'].href;					}					return true;				}			}		}		catch(e) {			// alert('Caught Exception: ' + e.description);			if (params['indicator']) {				document.getElementById(params['indicator'][0]).src = params['indicator'][2];			}			if (params['input']) {				window.location = params['input'].href;			}						return true;		}	}			http_request_methods['updateComments'] = function (responseXML, params) {				var commentarr = responseXML.getElementsByTagName('comment');				var tmpstr = "";				for (var i=0;i<commentarr.length;i++) {						var id = getTextFromXMLNode(commentarr[i].getElementsByTagName('id')[0]);			var userid = getTextFromXMLNode(commentarr[i].getElementsByTagName('userid')[0]);			var usersafename = getTextFromXMLNode(commentarr[i].getElementsByTagName('usersafename')[0]);			var userfirstname = getTextFromXMLNode(commentarr[i].getElementsByTagName('userfirstname')[0]);			var usersurname = getTextFromXMLNode(commentarr[i].getElementsByTagName('usersurname')[0]);			var userfullname = getTextFromXMLNode(commentarr[i].getElementsByTagName('userfullname')[0]);			var text = getTextFromXMLNode(commentarr[i].getElementsByTagName('text')[0]);			var created = getTextFromXMLNode(commentarr[i].getElementsByTagName('created')[0]);			if (commentarr[i].getElementsByTagName('avgrating').length) {                var avgrating = getTextFromXMLNode(commentarr[i].getElementsByTagName('avgrating')[0]);                    if (avgrating.length > 0) {                    var ratingstr = avgrating + "<br />";                }                else {                     var ratingstr = "<br />";                }            }            else {                var ratingstr = "<br />"            }			if (commentarr[i].getElementsByTagName('alertlink').length) {                var alertlink = "<span class=\"contentcommentalert\">" + getTextFromXMLNode(commentarr[i].getElementsByTagName('alertlink')[0]) + "</span>";            }            else {                var alertlink = "";            }            			if (userid == params['authorid'] && userid != 0)				var classstr = " highlight";			else				var classstr = "";                        var tmpname = userfullname;                        if (tmpname.length < 1) {            	tmpname = userfirstname + " " + usersurname;            }                        if (commentarr[i].getElementsByTagName('npref').length) {                                var npref = getTextFromXMLNode(commentarr[i].getElementsByTagName('npref')[0]);                    if (npref.length > 0) {                    var tmparr = npref.split("^");                    var tmpname = tmparr[0];                }            }            			tmpstr += "<div class=\"contentcommentblock" + classstr + "\"><p>" + tmpname + " " + created + ratingstr + text + alertlink + "</p></div>";					}	   		document.getElementById(params['target']).innerHTML = tmpstr;				document.getElementById(params['navistr']).innerHTML = getTextFromXMLNode(responseXML.getElementsByTagName('navistr')[0]);		document.getElementById(params['numnavi']).innerHTML = getTextFromXMLNode(responseXML.getElementsByTagName('numnavi')[0]);        if (responseXML.getElementsByTagName('averages').length > 0) {            var averages = responseXML.getElementsByTagName('averages')[0];            document.getElementById('avgrating').innerHTML = getTextFromXMLNode(averages.getElementsByTagName('avgrating')[0]);			if (params['numprefs'] > 1) { // if just one pref we have only shown an average				for (var i=1; i<=params['numprefs'];i++) {					document.getElementById('value'+i).innerHTML = getTextFromXMLNode(averages.getElementsByTagName('value'+i)[0]);				}			}		}				sf_addOnClickHandlers();				return true;	}		function getTextFromXMLNode(node) {		if (isIE) {			return node.text;		}		else {			if (node.hasChildNodes()) {				return node.childNodes[0].nodeValue;			}			else {				return "";			}		}	}		function expandCommentForm(link,idstr) {				var style = document.getElementById(idstr).style;				if (style.display != 'none') {			style.display = 'none';						// need to keep anchor at the end of the url			var anchor = link.href.match(/#[^&]+/);			if (anchor != null) {				 link.href = link.href.replace(/#[^&]+/,'');			}						if (link.href.match(/\?/)) {				 link.href += '&';			}			else {				 link.href += '?';			}						link.href += 'showcommentform=1#contentcomments';						/*if (anchor != null) {				link.href += anchor[0];			}*/						link.innerHTML = 'Show Comment Form';		}		else {			style.display = 'block';			link.href = link.href.replace(/([\&\?])showcommentform=[0-9]*/i,''/*'$1showcommentform=0'*/);			link.href = link.href.replace(/#[^&]+/,'');			link.innerHTML = 'Hide Comment Form';		}				link.blur();				return false;	}