var catLastToggle;
var catCurrentToggle;
var busy = true;
var prodActiveToggle = "prod_active_toggle";
var catActiveToggle = "cat_active_toggle";
var itemActiveToggle = "item_active_toggle";

function resetCatBlinds()
{
	if (catLastToggle) {

		lastImg = catLastToggle.getElementsBySelector('img')[0];
		if (lastImg)
			lastImg.writeAttribute( {
				src : "images/icons/16x16/Arrow3 Down.png"
			});

		catLastToggle.removeClassName(catActiveToggle);
		Effect.BlindUp(catLastToggle.next(), {
			duration : 0
		});
	}
	catLastToggle = toggle;
	var cat_toggles = $$('.cat_toggle');
	if (cat_toggles && cat_toggles.length > 0) {
		for (i = 0; i < cat_toggles.length; i++) {
			toggle = cat_toggles[i];
			Event.observe(toggle, 'click', function(event) {
				activateCatBlind(this);
			});
			toggle.next().innerHTML = "Please Wait";
		}
	}
}

function activateCatBlind(toggle) {
	if (busy)
		return;
	busy = true;

	toggleImg = toggle.getElementsBySelector('img')[0];

	if (!toggle.hasClassName(catActiveToggle)) {

		if (toggleImg) {
			rightDiv = toggleImg.parentNode;
			Element.extend(rightDiv);
			toggleImg.writeAttribute( {
				src : "images/icons/16x16/Minus.png"
			});
		}

		toggle.addClassName(catActiveToggle);
		toggleImg = toggle.getElementsBySelector('img')[0];

		Effect.BlindDown(toggle.next(), {
			duration : .4
		});

		if (catLastToggle) {

			lastImg = catLastToggle.getElementsBySelector('img')[0];
			if (lastImg)
				lastImg.writeAttribute( {
					src : "images/icons/16x16/Arrow3 Down.png"
				});

			catLastToggle.removeClassName(catActiveToggle);
			Effect.BlindUp(catLastToggle.next(), {
				duration : .4
			});
		}
		catLastToggle = toggle;
	} else {
		Effect.BlindUp(toggle.next(), {
			duration : .4
		});
		catLastToggle = null;
		setTimeout(function() {

			if (toggleImg)
				toggleImg.writeAttribute( {
					src : "images/icons/16x16/Arrow3 Down.png"
				});

			this.removeClassName(catActiveToggle);
		}.bind(toggle), 400);

	}

	if (itemLastToggle) {
		setTimeout(function() {
			this.removeClassName(itemActiveToggle);
			itemLastToggle = null;
		}.bind(itemLastToggle), 400);
		Effect.BlindUp(itemLastToggle.next(), {
			duration : .4
		});
	}
	setTimeout("busy = false;", 440);

}

var prodLastToggle;
var prodCurrentToggle;
var toggleImg;
var rightDiv;
var yummyDiv;

function activateProdBlind(toggle) {
	if (busy)
		return;
	busy = true;

	// if toggle is open, then we do stuff with the image
	if (!toggle.hasClassName("closed_toggle"))
		toggleImg = toggle.getElementsBySelector('img')[0];
	else
		toggleImg = null;

	if (!toggle.hasClassName(prodActiveToggle)) {

		if (toggleImg) {
			rightDiv = toggleImg.parentNode;
			Element.extend(rightDiv);
			toggleImg.writeAttribute( {
				src : "images/icons/32x32/Minus.png"
			});
		}

		toggle.addClassName(prodActiveToggle);
		Effect.BlindDown(toggle.next(), {
			duration : .4
		});

		setTimeout(function() {
			Element.extend(toggle);
			var id = toggle.select('.manu_id')[0].value.toString();
			window["initializeManuMap_" + id]();
		}, 400);

		if (prodLastToggle) {

			if (!prodLastToggle.hasClassName("closed_toggle")) {
				lastImg = prodLastToggle.getElementsBySelector('img')[0];
			} else {
				lastImg = null;
			}
			if (lastImg)
				lastImg.writeAttribute( {
					src : "images/icons/32x32/Arrow3 Down.png"
				});

			prodLastToggle.removeClassName(prodActiveToggle);
			Effect.BlindUp(prodLastToggle.next(), {
				duration : .4
			});
		}
		prodLastToggle = toggle;

	} else {

		Effect.BlindUp(toggle.next(), {
			duration : .4
		});
		prodLastToggle = null;
		setTimeout(function() {
			if (toggleImg)
				toggleImg.writeAttribute( {
					src : "images/icons/32x32/Arrow3 Down.png"
				});
			this.removeClassName(prodActiveToggle);
		}.bind(toggle), 400);
	}
	setTimeout("busy = false;", 440);
}

var itemLastToggle;
var itemCurrentToggle;

function activateItemBlind(toggle) {
	if (busy)
		return;
	busy = true;

	if (!toggle.hasClassName(itemActiveToggle)) {

		toggle.addClassName(itemActiveToggle);
		Effect.BlindDown(toggle.next(), {
			duration : .4
		});

		if (itemLastToggle) {

			itemLastToggle.removeClassName(itemActiveToggle);
			Effect.BlindUp(itemLastToggle.next(), {
				duration : .4
			});
		}
		itemLastToggle = toggle;

	} else {

		Effect.BlindUp(toggle.next(), {
			duration : .4
		});
		itemLastToggle = null;
		setTimeout(function() {
			this.removeClassName(itemActiveToggle);
		}.bind(toggle), 400);
	}
	setTimeout("busy = false;", 440);
}

function initializeBlinds() {

	var prod_toggles = $$('.prod_toggle');

	if (prod_toggles && prod_toggles.length > 0) {
		for ( var i = 0; i < prod_toggles.length; i++) {
			toggle = prod_toggles[i];
			Event.observe(toggle, 'click',
					function() {
						if (!arguments[0].findElement().hasClassName(
								"restaurant_name"))
							activateProdBlind(this);
					});
		}
	}

	var cat_toggles = $$('.cat_toggle');
	if (cat_toggles && cat_toggles.length > 0) {
		for (i = 0; i < cat_toggles.length; i++) {
			toggle = cat_toggles[i];
			Event.observe(toggle, 'click', function(event) {
				activateCatBlind(this);
			});
		}
	}

	var item_toggles = $$('.item_toggle');
	if (item_toggles && item_toggles.length > 0) {
		for (i = 0; i < item_toggles.length; i++) {
			toggle = item_toggles[i];
			Event.observe(toggle, 'click', function(event) {
				if (!arguments[0].findElement().hasClassName("item_price")
						&& !arguments[0].findElement().hasClassName(
								"mainOptionLabel"))
					activateItemBlind(this);
			});
		}
	}
	busy = false;
}