/**
 * @author hsc
 */
Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};

function cartItem(eventid, dayOfTime, title) {
	this.eventid = eventid;
	this.dayOfTime = dayOfTime;
	this.title = title; 
}

function loadCart() {
	var cartCookie = '{}'; 
	if (jq.cookie('eventCart')) {
	   cartCookie = jq.cookie('eventCart');
	}
	var cart = new Array();
	cart = jq.secureEvalJSON(cartCookie);
	return cart;
}

function udpateCookie(cart) {
    jq.cookie('eventCart',jq.toJSON(cart), {'path':'/'});
}

function deleteItemCookieFromCart(item) {
	var cart = loadCart();
	delete cart[item];
	udpateCookie(cart);
}

function createPortletItem(item, oid) {
	jq('#' + oid).html('<a href="' + item.eventid +'">' + item.title + '</a>');
	jq('#eventCartForm input[name=' + oid + ']').attr('value',item.eventid);
}

function removeFromCart(eventid) {
	if (eventid == 'removeamItem') {
		deleteItemCookieFromCart('0');
	}
	else if (eventid == 'removepmItem') {
        deleteItemCookieFromCart('1');
    }
}

function removePortletItem(oid) {
	jq('#' + oid).html('');
    jq('#eventCartForm input[name=' + oid + ']').attr('value','');
}

function infoBox(text) {
    //jq('#event-info-overlay').overlay({
    // disable this for modal dialog-type of overlays
    //closeOnClick: false
    // load it immediately after the construction
    //load: true

    //});
	if ( jq('#region-content').is(':visible') ) {
		jq('#eventcart-info').hide()
	}
    jq('#region-content').prepend('<dl style="position:absolute;" class="portalMessage info" id="eventcart-info"><dt>Info</dt><dd>' + text + '</dd></dl>');
    jq('#eventcart-info').animate({ "opacity": "toggle"}, 5000);
}
function updateCartPortlet(init) {
	cart = loadCart();
    var hasAMItem = false;
    var hasPMItem = false;
    if (cart[0]) {
            createPortletItem(cart[0], 'amItem');
            hasAMItem=true;
			jq('#removeamItem').show();
    }
	else {
		removePortletItem('amItem');
        jq('#removeamItem').hide();
	}
    if (cart[1]) {
            createPortletItem(cart[1], 'pmItem');
            hasPMItem=true;
            jq('#removepmItem').show();
    }
    else {
        removePortletItem('pmItem');
        jq('#removepmItem').hide();
    }
	if (init == null) {
		if (hasAMItem == true || hasPMItem == true) {
			//jq('.portleteventShoppingCart').show();
			infoBox('Der Warenkorb wurde aktualisiert.');
		}
		else 
			if (hasAMItem == false && hasPMItem == false) {
				//jq('.portleteventShoppingCart').hide();
				infoBox('Warenkorb leer.')
			}
	}
}

jq(document).ready(function(){
	// initialize the cart portlet
    updateCartPortlet(init=true);
	jq('.portleteventShoppingCart a.removeEventCartItem').click(function() {
		removeFromCart(jq(this).attr('id'));
        updateCartPortlet();
	});
	
    jq('input.addToCart').click(function(e) {
		e.preventDefault();
	    var eventid = jq(this).attr('eventid');
	    var dayOfTime = jq(this).attr('dayOfTime');
	    var title =jq(this).attr('eventtitle');
	    var newCartItem = new cartItem(eventid, dayOfTime, title);
		cart = loadCart();
		if (dayOfTime == 'am') {
			cart[0]=newCartItem
		}
		else {
			cart[1]=newCartItem
		}
		udpateCookie(cart);
		updateCartPortlet();
	});
	jq('#eventCartOrder').click(function(e) {
        e.preventDefault();
        cart = loadCart();
		if (Object.size(cart) != 2) {
			alert("Bitte zwei Seminare auswaehlen!");
		}
		else {
			jq(this).parent('form').submit();
		}
	});

    // if the function argument is given to overlay,
    // it is assumed to be the onBeforeLoad event listener


    /*jq("input[rel]").overlay({

        onBeforeLoad: function() {

            // grab wrapper element inside content
            var wrap = this.getOverlay().find(".contentWrap");

            // load the page specified in the trigger
            wrap.load(this.getTrigger().attr("href") + ' #event-booking');
        }

    });*/
});

