YAHOO.namespace("favourites.container");


function popUp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=560,height=300,left = 300,top = 300');");
}
function callBackPopUp(e, obj) {
	YAHOO.util.Event.preventDefault(e);
	popUp(obj[0]); 
}

function refreshParent() {
 	window.opener.location.href = '/';
  	window.close();
}

function setVisibility(id, visibility) {
	YAHOO.util.Dom.setStyle(id, 'visibility', visibility); 
}
function callBackSetVisibility(e, obj) {
	setVisibility(obj[0], obj[1]); 
}

function callBackRemoveFavourite(e, obj) {
	YAHOO.util.Event.preventDefault(e);
	if(favouritesService)
	   favouritesService.removeFavourite(obj[0], 'removeFavouriteSvcCallBack');
}
function removeFavouriteSvcCallBack(obj) {
	var result = obj.result;
	  	if(result.error)
	  		Error(result.error);
	  	else
	  		window.location.reload(true);	
}

function callBackAddFavourite(e, obj) {
	YAHOO.util.Event.preventDefault(e);
	if(favouritesService)
	   favouritesService.addFavourite(YAHOO.util.Dom.get('favourite_url').value, YAHOO.util.Dom.get('favourite_name').value, YAHOO.util.Dom.get('category_name').value, 'addFavouriteCallBack');
}
function addFavouriteCallBack(obj) {
	var result = obj.result;
	  	if(result.error)
	  		Error(result.error);
	  	else
	  		refreshParent();	
}

function callBackEditFavourite(e, obj) {
	YAHOO.util.Event.preventDefault(e);
	if(favouritesService)
	   favouritesService.editFavourite(YAHOO.util.Dom.get('favourite_id').value, YAHOO.util.Dom.get('favourite_name').value, YAHOO.util.Dom.get('favourite_url').value, 'editFavouriteCallBack');
}
function editFavouriteCallBack(obj) {
	var result = obj.result;
	  	if(result.error)
	  		Error(result.error);
	  	else
	  		refreshParent();	
}

function setPreference(name, val) {
	if(favouritesService)
	   favouritesService.setPreference(name, val, 'setPreferenceCallBack');
}
function setPreferenceCallBack(obj) {
	if(obj.result) {
        var result = obj.result;
	    if(result.error)
    	   Error(result.error);
    }
    else if (obj.error) {
        var error = obj.error;
        if(error.message)
            Error(error.message);
    }
}

function Error(message) {
    if(message == 'Login required') {
        var login_url = "https://www.library.uq.edu.au/resServ.php?return=http://www.library.uq.edu.au/";
        try{
            if(window.opener.location.href) {
                if (window.opener.parent.frames.length > 0)
                    window.opener.parent.location.href = login_url;
                else
                    window.opener.location.href = login_url;
                window.close();
            }
            else
                window.location = login_url;
        }
        catch(err){}
    }
    else
        alert(message);
}
