
function addFavorite(id) {
	initServerUrl();
 	var url= serverUrl + "ajax/?act=addFavorite&id="+id;
	httpRequest("GET",uncache(url),true,handleResponseFavorites);
}

function dropFavorite(id) {
	
	initServerUrl();
 	var url= serverUrl + "ajax/?act=dropFavorite&id="+id;
	httpRequest("GET",uncache(url),true,handleResponseFavorites);
}

function dropVendorFavoriteFromFavBox(id) {
	var favIcon = document.getElementById('favBoxIcon'+id);
	if (favIcon) favIcon.src = '../../../img/ajax/loading_indicator_tiny.gif';
	initServerUrl();
 	var url = serverUrl + "ajax/?act=dropFavorite&id="+id;
	httpRequest("GET",uncache(url),true,handleResponseFavorites);
}

function updateFavoritesBox() {
	initServerUrl();
 	var url = serverUrl + "ajax/?act=updateFavoritesBox";
	httpRequest("GET",uncache(url),true,handleResponseFavoritesBox);
}


//event handlers for XMLHttpRequest

function handleResponseFavorites(){

    var xmlReturnVal;
    var jsonReturnVal;

    if(request.readyState == 4){
        if(request.status == 200){

			jsonReturnVal = request.responseText;			
			var result = eval("(" +  jsonReturnVal + ")");
			// JSON lib gives error in Firefox, check later...
			//var reply = jsonReturnVal.parseJSON(); 

			if (result.act == 'add') {
			
				if (result.success) {
					//alert("Hallo");
					for (k=0; k < 200; k++){
						var favCb = document.getElementById('cb'+result.favid+"_"+k);
						if (favCb != null){
							favCb.onclick = new Function("dropFavorite(" + result.favid + ")");
							favCb.checked=true;
						}
					}
					//favLink.href = "javascript:dropFavorite(" + result.favid + ");";
				}
			
			} else {
				if (result.success) {
					for (k=0; k < 200; k++){
						var favCb = document.getElementById('cb'+result.favid+"_"+k);
						if (favCb != null){
							favCb.onclick = new Function("addFavorite(" + result.favid + ")");
							favCb.checked=false;
						}
					}
				}

			}
			updateFavoritesBox();
        } else {
            alert("Sorry, diese Funktion kann z.Zt. nicht ausgeführt werden.");
        }
    } //end outer if
}

function handleResponseFavoritesBox() {	
    var xmlReturnVal;
    var jsonReturnVal;
	var favBox = document.getElementById('favBox');
	var favListHtml = '';
	var endLoop;
	
    if(request.readyState == 4 && favBox){
        if(request.status == 200){

			jsonReturnVal = request.responseText;			
			var favs = eval( jsonReturnVal );
			// JSON lib gives error in Firefox, check later...
			//var reply = jsonReturnVal.parseJSON(); 
		
			endLoop = favs.length;
			//if (endLoop>5) endLoop=5;
			
			for (var i=0;i<=endLoop-1;i++) {
				var styleClass = (i%2==0)?"backDunkel":"backHell";				
				favListHtml +=
				    "<tr ><td class=\""+styleClass+"\"><a href="+favs[i].url+">" + favs[i].name + "</a></td><td class=\"borderLeft right\"><a href=javascript:dropVendorFavoriteFromFavBox('" + favs[i].id + "');><img src=../../../img/icon_tender_drop.gif id=favBoxIcon"+favs[i].id+"></a></td></tr>";
			}
			if (favs.length==0) favListHtml +="<tr ><td class=\"backDunkel\">leer</td><td class=\"borderLeft right\"> </td></tr><tr ><td class=\"backHell\">&nbsp;</td><td class=\"borderLeft right\"> </td></tr><tr ><td class=\"backDunkel\">&nbsp;</td><td class=\"borderLeft right\"> </td></tr><tr ><td class=\"backHell\">&nbsp;</td><td class=\"borderLeft right\"> </td></tr><tr ><td class=\"backDunkel\">&nbsp;</td><td class=\"borderLeft right\"> </td></tr>";
			favBox.innerHTML =  "<table class=\"small\"><colgroup><col id=\"col1\" width=\"85%\" /><col id=\"col2\" width=\"15%\" /></colgroup>" + favListHtml + "</table>"; ;

        } else {
            alert("Sorry, diese Funktion kann z.Zt. nicht ausgeführt werden.");
        }
    } //end outer if
}


