var req;

function loadXMLDoc(url, reqchange) 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = reqchange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = reqchange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

function addToFavourite(favourite, favourite_type) {
    url = 'index.php?action=favourite_rpc&function=addToFavourite&favourite='+favourite+'&favourite_type='+favourite_type;
    loadXMLDoc(url, addToFavouriteReqChange);
}

function addToFavouriteReqChange() {
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
			response = req.responseXML.documentElement;

			successful = response.getElementsByTagName('successful')[0].firstChild.data;
//			if (successful == "session_expired") {
//				alert(<?php echo FAVOURITE_ERROR_01; ?>);
//				document.location.reload();
//				return false;
//			}
			if (successful == "true") {
				var addfav_link = document.getElementById("addfav_link");
				var delfav_link = document.getElementById("delfav_link");
				addfav_link.style.display = "none";
				delfav_link.style.display = "block";
			}
			else {
				error_message = response.getElementsByTagName('error_message')[0].firstChild.data;
				alert(error_message);
			}

        }
		else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}

function delFromFavourite(favourite, favourite_type) {
    url = 'index.php?action=favourite_rpc&function=delFromFavourite&favourite='+favourite+'&favourite_type='+favourite_type;
    loadXMLDoc(url, delFromFavouriteReqChange);
}

function delFromFavouriteReqChange() {
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
			response = req.responseXML.documentElement;

			successful = response.getElementsByTagName('successful')[0].firstChild.data;
			if (successful == "true") {
				var addfav_link = document.getElementById("addfav_link");
				var delfav_link = document.getElementById("delfav_link");
				addfav_link.style.display = "block";
				delfav_link.style.display = "none";
			}
			else {
				error_message = response.getElementsByTagName('error_message')[0].firstChild.data;
				alert(error_message);
			}

        }
		else {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}

