String.prototype.convertHTMLEntity = function(){
	var myString = this;
	myString = myString.replace( /\&amp;/g, '&' );
	myString = myString.replace( /\&lt;/g, '<' );
	myString = myString.replace( /\&gt;/g, '>' );
	myString = myString.replace( /\&quot;/g, '"' );
	myString = myString.replace( /\&copy;/g, '©' );
	myString = myString.replace( /\&reg;/g, '®' );
	myString = myString.replace( /\&laquo;/g, '«' );
	myString = myString.replace( /\&raqou;/g, '»' );
	myString = myString.replace( /\&apos;/g, "'" );
	return myString;
}

function makeCartRequest(url){
	var http_request = false;
	if(document.body) document.body.style.cursor = 'progress';

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            //http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/plain');
            // See note below about this line
        }
    } 
	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) {
    	//posting the form because they don't support AJAX
        //alert('Giving up :( Cannot create an XMLHTTP instance');
        //return false;
        document.forms['productForm'].submit();
    }
	*/
    http_request.onreadystatechange = function() { processCartsummContent(http_request); if(document.body) document.body.style.cursor = 'auto'; };
    http_request.open('GET', url, true);
    http_request.send(null);
}

function processCartsummContent(http_request){
	var vElm='';
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	//alert(TrimString(http_request.responseText));
			var jsonData = eval('('+ TrimString(http_request.responseText) +')');
			//alert("jsonData.welcomeName= " + jsonData.welcomeName);
			//alert("jsonData.loginLink= " + jsonData.loginLink);
			//alert("jsonData.cartSummary= " + jsonData.cartSummary);
			vElm=document.getElementById('welcomeName');
			if (vElm) vElm.innerHTML=jsonData.welcomeName.convertHTMLEntity();
			vElm=document.getElementById('loginLink');
			if (vElm) vElm.innerHTML=jsonData.loginLink.convertHTMLEntity();
			vElm=document.getElementById('cartSummary');
			if (vElm) vElm.innerHTML=jsonData.cartSummary.convertHTMLEntity();
			vElm=document.getElementById('accountLink');
			if (vElm) vElm.innerHTML=jsonData.accountLink.convertHTMLEntity();
		}
	}
}

function TrimString(sInString){
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

