/*----------------------------initCart()--------------------------------
Role 		=  	init the cart
Return  	= 	nothing
Arguments 	= 	nothing
----------------------------------------------------------------------------*/
var cartContent;
var cookieForm="";
var arr_cart =new Array(); //to know which events are in the cart
var arr_cartContent = [];
function initCart(){

	if( cartContent = Cookie.get("CartEvents")){
			if(cartContent != '|'){
				arr_cartContent = cartContent.split('|');
				arr_cart = cartContent.split('|');
			}	  
		}else{
			cartContent = '|'; 
		}

}
/**
 * 
 * 
 */
function loadCartItems(){
	var request = new Json.Remote('/json/json_cart_items.js', {
		method: 'get',
		onComplete: function(jsonObj) {
			jsonObj.items.each(function(el){ build_cart(el.id, el.title, el.city ) ; $('orderEvents').value += el.id + '|';  });
		}
	}).send();
}
function addCartCookie(ev){
	
	if( !arr_cart[ev]){
		$('orderEvents').value += ev + '|';
		cartContent += ev + '|';
		Cookie.set("CartEvents", cartContent, {
			duration: 30
		});
		arr_cart[ev] = true ;
	}
}
/*----------------------------delCart(ev)--------------------------------
Role 		=   delete an event in cart
Return  	= 	nothing
Arguments 	= 	ev : an html object ( DIV ) with an event inside
----------------------------------------------------------------------------*/
function delCart(ev){
	arr_cart[ev]=false;
	$('order'+ev).remove(); //remove div
	$('orderEvents').value = $('orderEvents').value.replace('|' + ev + '|','|'); //remove id in form
	//remove cookie 
	cartContent = cartContent.replace('|' + ev + '|','|');
	Cookie.set("CartEvents", cartContent , 1);
	return Cookie.get("CartEvents");
}
/*----------------------------addCart(ev)--------------------------------
Role 		=   Createa clone of an event and place him in the basket with animation
Return  	= 	nothing
Arguments 	= 	ev : an html object ( DIV ) with an event inside
----------------------------------------------------------------------------*/
//initialize effect for addcart

function addCart(ev){
	var eventId="event"+ev;
	if( ! arr_cart[ev] ){ //check if this event already exist
		var eclone = 	$(eventId) ;
		if (eclone) {
			//creat a clone of an event
			var clone = eclone.clone().setStyles($(eventId).getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
.setStyles({
				'opacity': 0.7,
				'position': 'absolute',
				'overflow': 'hidden'
			}).inject(document.body);
			
			//creat an Fx to anim this event		
			var EventChange = new Fx.Styles(clone, {
				duration: 500,
				wait: false,
				onComplete: function(){
					clone.remove();
					var orderTitle = $ES('h2',eclone).getText();
					//var orderCity = $ES('.city',eclone).getText();
					var orderCity = '';
					build_cart(ev,orderTitle,orderCity);
					addCartCookie(ev) ;
				}
			});
			//begin animation of this event
			EventChange.start({
				'top': $ES('div', 'cart').getLast().getTop(),
				'left': $ES('div', 'cart').getLast().getLeft(),
				'height': 75,
				'width': 75
			})
		}
	}
}

function build_cart(idEvent, title, city){
	if( ! arr_cart[idEvent] ){ //check if this event already exist
		 var OrderEvent = new Element('div',{'class': 'order','id': 'order' +  idEvent}).inject($('cartContent'));
		 var Event 		= new Element('div',{'class': 'cartTitle'}).setHTML(title).injectInside(OrderEvent);
		 var EventDel 	= new Element('div',{'class': 'delete'}).injectAfter(Event);
		 var DelEvent 	= new Element('input',{'type': 'button', 'value': 'X'}).injectInside(EventDel);
		 DelEvent.onclick=function(){delCart(idEvent);};
		 var EventCity 	= new Element('div',{'class': 'city'}).setHTML( city ).injectAfter(EventDel);
	}
}

window.addEvent('domready', function() {
	$$('.order input').each(function(el){
				el.onclick = function(){delCart(el.parentNode.parentNode.id.substring(5));};
		});
	initCart();
	loadCartItems();
	//set array of event
	$$('.order').each(function(el){
		arr_cart[el.id.substring(5)]=true;
	});
	
});