var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var DDM = YAHOO.util.DragDropMgr;
var Connect = YAHOO.util.Connect;

//////////////////////////////////////////////////////////////////////////////
// example app
//////////////////////////////////////////////////////////////////////////////
YAHOO.example.Favourites = {
    init: function() {

    	panels = YAHOO.util.Selector.query(".favouriteOptions.js");

    	for(i=0;i<panels.length;i++) {
    		Dom.addClass(panels[i], 'show');
    		link = YAHOO.util.Selector.query(".opener a", panels[i], true);
    		Event.on(link, 'click', YAHOO.example.Favourites.open);
        }
        
    },
    
    open: function() {
    	Dom.addClass(this.parentNode.parentNode, 'open');
    },
       
    request: function(obj) {

    	Connect.asyncRequest('POST', obj.href, {success: function(o) {
    		if(o.responseText.match(/delete/)) {
    			obj.parentNode.parentNode.parentNode.style.display = 'none';
    			return;
    		}
    		
    		cell = obj.parentNode;
    		selected = YAHOO.util.Selector.query('.selected', cell);
    		for(i=0;i<selected.length;i++) {
    			Dom.removeClass(selected[i], 'selected');
    		}
    		
    		Dom.addClass(obj, 'selected');
    		
    	} }, 'ajax=1');
    	
    	return false;
        
    },
    
    switchMode : function(obj, id) {
    	YAHOO.example.Favourites.setSuccess(obj, false);
    	YAHOO.example.Favourites.setLoading(obj, true);
    	
    	Connect.asyncRequest('POST', obj.checked ? '/favourites/' + id + '/action:add' : '/favourites/' + id + '/action:delete', {success: function(o) {
    	allTheDiv = obj.parentNode.parentNode;
    		if(obj.checked) {
    			sel = YAHOO.util.Selector.query('select', allTheDiv, true);
				Connect.asyncRequest('POST', '/favourites/' + id + '/notify:' + sel.value, {success: function() {
					YAHOO.example.Favourites.setLoading(obj, false);
				}}, 'ajax=1');
				
    			Dom.addClass(allTheDiv, 'enabled');
    			Dom.removeClass(allTheDiv, 'disabled');
    		} else {
		    	YAHOO.example.Favourites.setLoading(obj, false);
    			Dom.addClass(allTheDiv, 'disabled');
    			Dom.removeClass(allTheDiv, 'enabled');
    		}
    		
    		YAHOO.example.Favourites.hideOpener();
    		YAHOO.example.Favourites.setSuccess(obj, true);
    		   		
    		window.setTimeout(function() {
    			YAHOO.example.Favourites.setSuccess(obj, false);
    		}, 3000);
    	}}, 'ajax=1');
    },
    
    switchNotify : function(obj, id) {
    	YAHOO.example.Favourites.setSuccess(obj, false);
    	YAHOO.example.Favourites.setLoading(obj, true);
    	
    	allTheDiv = obj.parentNode.parentNode;
    	act = YAHOO.util.Selector.query('input', allTheDiv, true);
    	if(!act.checked) {
    		act.checked = true;
    		
    		return YAHOO.example.Favourites.switchMode(act, id);
    	}
    	
    	Connect.asyncRequest('POST', '/favourites/' + id + '/notify:' + obj.value, {success: function(o) {
    		YAHOO.example.Favourites.hideOpener();
    		YAHOO.example.Favourites.setSuccess(obj, true);
	    	YAHOO.example.Favourites.setLoading(obj, false);
    		
    		window.setTimeout(function() {
    			YAHOO.example.Favourites.setSuccess(obj, false);
    		}, 3000);
    	}}, 'ajax=1');
    },
    
    setSuccess : function(obj, s) {
    	successDiv = YAHOO.util.Selector.query('.success', obj.parentNode, true);
    	
    	successDiv.innerHTML = s ? '<img src="/images/layout/icons/accept.png" alt="fertig!">' : '';
    },
    
    setLoading : function(obj, s) {
    	loadingDiv = YAHOO.util.Selector.query('.loading', obj.parentNode, true);
    	
    	loadingDiv.innerHTML = s ? '<img src="/images/ajax-loader.gif" alt="laden...">' : '';
    },
        
    hideOpener: function() {
    	openers = YAHOO.util.Selector.query('.favouriteOptions .opener');
    	for(i=0;i<openers.length;i++) {
    		Dom.setStyle(openers[i], 'display', 'none');
    	}
    }
};


Event.onDOMReady(YAHOO.example.Favourites.init, YAHOO.example.Favourites, true);

