Toolbar={}

/**
 * Overlays.
 */
Toolbar.Overlay = {

    init: function() {

        Toolbar.Overlay.initPart('sendForm'    , 'showSend');
        Toolbar.Overlay.initPart('feedbackForm', 'showFeedback');

        Toolbar.Overlay.Manager = new YAHOO.widget.OverlayManager();
        Toolbar.Overlay.Manager.register(
            [ Toolbar.Overlay.sendForm,
    		  Toolbar.Overlay.feedbackForm ]
    	);
    },

    initPart: function(what, btn) {

    	var handleSubmit = function() {

    	    this.submit();
    	};

    	var handleCancel = function() {

    	    this.cancel();
    	};

    	var handleSuccess = function(o) {

    	    var response = o.responseText;
    		response = response.split('&lt;!')[0];
    		document.getElementById("toolbarResponse").style.display = 'block';
    		document.getElementById("toolbarResponse").innerHTML = response;
    	};

    	var handleFailure = function(o) {

    	    alert("Submission failed: " + o.status);
    	};

    	Toolbar.Overlay.What = new YAHOO.widget.Dialog(what,
    	{ fixedcenter : false,
    	  visible : false,
    	  close: false,
    	  modal: true,
    	  hideaftersubmit: true,
    	  constraintoviewport: true,
    	  context: [ "toolbarList","tl","bl", ["beforeShow", "windowResize"] ],
    	  effect: {effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.25}
    	});
    	Emv.Effects.Overlay.add(Toolbar.Overlay.What);

    	Toolbar.Overlay.What.validate = function() {

    	    var data = this.getData();
    		if( data.sendMail == '' ) {

    		    alert('Bitte geben Sie einen Empfänger ein.');
    			return false;
    		} else if( data.sendSubject == '' ) {

    		    alert('Bitte geben Sie einen Betreff ein.');
    			return false;
    		} else if( data.sendMsg == '' ) {

    		    alert('Bitte geben Sie einen Text ein.');
    			return false;
    		} else if( data.feedbackMsg == '' ) {

    		    alert('Bitte geben Sie einen Feedback-Text ein.');
    			return false;
    		} else {

    		    return true;
    		}
    	};

    	Toolbar.Overlay.What.callback = { success: handleSuccess, failure: handleFailure };
    	Toolbar.Overlay.What.render();
    	YAHOO.util.Event.addListener(btn, "click", Toolbar.Overlay.What.show, Toolbar.Overlay.What, true);
    }

}

/**
 * Manage community calendar.
 */
Toolbar.CommunityCalendar = {

	requestUrlAdd:    '/community/add-event-ajax',
	requestUrlRemove: '/community/remove-event-ajax',
    args: { tId: '' },

	add: function(tId) {

		var requestUrlAdd = this.requestUrlAdd + '?';
		requestUrlAdd += 'tnr=' + tId + '&format=json';

        Toolbar.CommunityCalendar.args.tId = tId;
        var request = YAHOO.util.Connect.asyncRequest('GET', requestUrlAdd, Toolbar.CommunityCalendar.addCallback);
    },

	remove: function(tId) {

		var requestUrlRemove = this.requestUrlRemove + '?';
		requestUrlRemove += 'tnr=' + tId + '&format=json';

        Toolbar.CommunityCalendar.args.tId = tId;
        var request = YAHOO.util.Connect.asyncRequest('GET', requestUrlRemove, Toolbar.CommunityCalendar.removeCallback);
    }
}

Toolbar.CommunityCalendar.addCallback = {

    success: function(o) {

        var resp     = eval('(' + o.responseText + ')');
        var respDiv  = document.getElementById("toolbarResponse");
        var listItem = document.getElementById("toolbarCommunityCalendar");

        var response = o.responseText;
		response = response.split('&lt;!')[0];
		if( response == '' || response == '[]' ) {

		    response = 'Der Termin wurde Ihrem Community-Kalender hinzugefügt.';
		}

		if( respDiv ) {

    		respDiv.style.display = 'block';
    		respDiv.innerHTML = response;
		}
		if (listItem) {

		    listItem.innerHTML = '<a href="javascript:" class="removeFromCalendar" id="removeCalendar" onclick="Toolbar.CommunityCalendar.remove(\'' + o.argument.tId + '\');">Aus eigenem Community-Kalender löschen</a>';
		}
    },

    failure: function(o) {},

    argument: Toolbar.CommunityCalendar.args
}

Toolbar.CommunityCalendar.removeCallback = {

    success: function(o) {

        var resp     = eval('(' + o.responseText + ')');
        var respDiv  = document.getElementById("toolbarResponse");
        var listItem = document.getElementById("toolbarCommunityCalendar");

        var response = o.responseText;
		response = response.split('&lt;!')[0];
		if( response == '' || response == '[]' ) {

		    response = 'Der Termin wurde aus Ihrem Community-Kalender gelöscht.';
		}

		if( respDiv ) {

    		respDiv.style.display = 'block';
    		respDiv.innerHTML = response;
		}
		
		if (listItem) {

            listItem.innerHTML = '<a href="javascript:" class="addToCalendar" id="showCalendar" onclick="Toolbar.CommunityCalendar.add(\'' + o.argument.tId + '\');">Zum eigenen Community-Kalender hinzufügen</a>';
        }
    },

    failure: function(o) {},

    argument: Toolbar.CommunityCalendar.args
}

// Init overlays
YAHOO.util.Event.onDOMReady(Toolbar.Overlay.init);