xajax_checkBasket();
basketItems();
editBasket();

function basketItems(){

	var items = $$('#main-content-area .order-number');

	items.each(function(item){

		item.onclick = function(event){
			var idString = this.parentNode.parentNode.id;
			var aId = idString.split('-');
			var parentH3 = this.parentNode;
			var orderNumber = trim(item.innerHTML);
			parentH3.id = orderNumber;
			//var h3
			var price = '';
			var aPrice = $$('#' + this.parentNode.id + ' .price');
			if(aPrice.length > 0){
				//alert(aPrice[0].innerHTML);
				var price = trim(aPrice[0].innerHTML);
			}

			xajax_addToBasket(aId[1], orderNumber, price, this.parentNode.innerHTML);

			return false;
		};

		item.onmouseover = function(event){
			this.addClassName('hilite');

		};
		item.onmouseout = function(event){
		 	this.removeClassName('hilite');
		};
		item.title = 'order now!';
	});

}

function activeBasketItem(element, number){

	var items = $$('#' +element +' .order-number');

	if(items.length < 1){
		return false;
	}

	var idString = element;
	var aId = idString.split('-');
	var headline1 = $('h1-' + aId[1]);
	var headline2 = $('h2-' + aId[1]);

	items.each(function(item){
		var text = trim(item.innerHTML);
		if(text == number){

			item.addClassName('active');
			item.title = 'appointed';
			if(headline1){
				headline1.addClassName('order');
			}
			if(headline2){
				headline2.addClassName('order');
			}

		}

	});

}

function basketIndicator(text){

	var items = $$('.basket-indicator');

	items.each(function(item){
		item.style.display = 'block';
		item.innerHTML = text;
	});
}

function editBasket(){

	var items = $$('#edit-basket a.remove');

	items.each(function(item){
		item.onclick = function(event){
			var idString = item.id;
			var aId = idString.split('_');
			xajax_removeFromBasket(aId[1]);
			return false;
		};

	});
}
xajax.callback.global.onRequest = function() {
	    $('loading').style.display = 'block';
	}
xajax.callback.global.onComplete = function() {
	$('loading').style.display = 'none';
}

/**
*
*  Javascript trim, ltrim, rtrim
*  http://www.webtoolkit.info/
*
*
**/

/*Without the second parameter, they will trim these characters:

    * " " (ASCII 32 (0x20)), an ordinary space.
    * "\t" (ASCII 9 (0x09)), a tab.
    * "\n" (ASCII 10 (0x0A)), a new line (line feed).
    * "\r" (ASCII 13 (0x0D)), a carriage return.
    * "\0" (ASCII 0 (0x00)), the NUL-byte.
    * "\x0B" (ASCII 11 (0x0B)), a vertical tab.
*/

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}