function bookmark(url, sitename){
	ns="Netscape and FireFox users, use CTRL+D to bookmark this site."

	if((navigator.appName=='Microsoft Internet Explorer') && (parseInt(navigator.appVersion)>=4)){
		window.external.AddFavorite(url, sitename);
	}else if(navigator.appName=='Netscape'){
		alert(ns);
	}
}


//function for AJAX post request
function getXhttp(){
    var ajax_request;

    if(window.ActiveXObject){
        var mSoftVersions = [
            'MSXML2.DOMDocument.5.0',
            'MSXML2.DOMDocument.4.0',
            'MSXML2.DOMDocument.3.0',
            'MSXML2.DOMDocument.2.0',
            'MSXML2.DOMDocument',
            'Microsoft.XmlDom',
            'Msxml2.XMLHTTP',
            'Microsoft.XMLHTTP'
        ];

        for(i=0; i<mSoftVersions.length; i++){
            try {
                ajax_request = new ActiveXObject (  mSoftVersions[i]  );
            }catch(e){}
        }
    }else if(!ajax_request && typeof XMLHttpRequest != 'undefined'){
        try {
	            ajax_request = new XMLHttpRequest;
        }catch(e){}
    }else if(!ajax_request && window.createRequest){
        try {
	            ajax_request = window.createRequest;
        }catch(e){}
    }else{
        ajax_request = false;
   }
    return ajax_request;
}

//http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

//display dynamically obtained Residual Values Data Table
function addToFavourites(myListLink,listing){
	var xml = getXhttp( );
    
	if (!xml){
			alert("Error Occurred while trying to add Listing to MyList");
	}else{
		
		//prepare the submit string
		xml.open('POST', '/mylist.php',true);
		//make sure to add following header to dynamically generated page!!
	    xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xml.send('id='+listing+'&ot=lnk');

		xml.onreadystatechange = function(){
			if(xml.readyState == 4){
				if(xml.status == 200){
						//myListLink.childNodes[0].attributes[0].nodeValue = "/images/cc_03-2.jpg";//xml.responseText;
						if(myListLink.childNodes[0].src != null){ //event was triggered by a image button, change image
							myListLink.childNodes[0].src = "/images/cc_03-2.jpg";
						}else{ //event was triggered by simple link
							myListLink.innerHTML = xml.responseText;
						}
							myListLink.href = "/mylist.php";
							myListLink.onclick = function() {return true;};

				}else{
					alert("Error Occurred while trying to add Listing to MyList\nStatus is: "+xml.status)
				}
			}
		}//END onreadystatechange
	}
}

//this function filters out special characters from the input
function filterStr(str){
 if(str != null){
  str = str.replace(/[^a-zA-Z 0-9 &=;:@.,-\/]+/g,'');
 }
 return str;
}

//this function simulates clicking on gallery image link
function glClick(objId){
	var target=document.getElementById(objId);	
	if(document.dispatchEvent) { // W3C
	    var oEvent = document.createEvent( "MouseEvents" );
	    oEvent.initMouseEvent("click", true, true,window, 1, 1, 1, 1, 1, false, false, false, false, 0, target);
	    target.dispatchEvent( oEvent );
	}else if(document.fireEvent) { // IE
	    target.fireEvent("onclick");
    }    
}