var Helpers = {
	odd: function(nth) {
		$(el+":nth-child("+nth+")").addClass("odd")
	},
	classToLast: function(In, to) {
		$(In).find(to+":last").addClass("last")
	},
	classToFirst: function(In, to) {
		$(In).find(to+":first").addClass("first")
	}
}

var Dropdown = {
	domReady: function() {
		Dropdown.slideToggle()
		$(".dropdown > ul > li > ul").hide()
		$(".dropdown ul li .active").find(".toggle").trigger("click")
		var root = $(".dropdown ul li")
        if (root.children().has('a.active').length > 0) {
            parent = root.find(".active").parent().parent().parent()
            $('>a', parent).addClass("active").find(".toggle").trigger("click")
        }
	},
	slideToggle: function() {
		$(".dropdown > ul > li:has(ul) > a").append("<span class='toggle icon arrow_t2b'></span>")
		.find(".toggle").toggle(function() {
			$(this).removeClass("arrow_t2b").addClass("arrow_b2t")
			$(this).parent().parent().find("ul").show()
		}, function() {
			$(this).removeClass("arrow_b2t").addClass("arrow_t2b")
			$(this).parent().parent().find("ul").hide()
		})
	}
}

var Extras = {
	domReady: function() {
		Extras.qtyEdit()
		Extras.promptRemove()
	},
	qtyEdit: function() {
		var _form = "#cart"
		
		$("table tr.item td.action a.edit").toggle(function() {
			$(this).removeClass("edit").addClass("tick")
			var qty_field = $(this).parent().parent(".item")
			$(".qty_disabled", qty_field).hide()
			$(".qty", qty_field).show()
		}, function() {
			$(this).removeClass("tick").addClass("edit")
			var qty_field = $(this).parent().parent(".item")
			val = $(".qty", qty_field).hide().find("input").val()
			$(".qty_disabled", qty_field).show().html(val)
			$(_form).submit()
		})
	},
	
	promptRemove: function(el) {
		$(el).remove()
	}
}

var Form = {

	showMe: function(selector) {
		$(selector).show()
	},

	hideForMe: function(selector) {
		$(selector).hide()
	},

	checkToggle: function(obj, selector) {
		if ($(obj).attr("checked")) {
			$(selector).hide()
		} else {
			$(selector).show()
		}
	}
	
}

var Ajax = {
	autoLoad: function() {
		$(".ajax").bind("click", function() {
			Ajax.remote($(this).attr("href"), $(this).attr("rel"), true)
			return false
		})
	},
	
	remote: function(remoteUrl, tar, insert) {
		try{
			$(Ajax.lastContainer).children().remove()
		} catch(err) {}
		
		$(".remoteContainer").remove()
		$.ajax({
			url	: remoteUrl,
			data	: "requestType=ajax",
			success	: function(data) {
				if (insert == undefined || insert == false) {
					$(tar).html(data)
				} else {
					$(tar).append(data)
				}
			}
		})
		
		Ajax.lastContainer = tar;
	}
}

var Facebox = {
    showFlash: function() {
        $.facebox({ div: '#flash_message' });
    }
}

$(document).ready(function()
{
	Dropdown.domReady()
	Helpers.classToLast("table.rounded", "tr:not(.border)")
	Helpers.classToFirst("table.rounded", "tr:not(.border)")
	Helpers.classToLast("form", ".section")
	Extras.domReady()
	Ajax.autoLoad()
})

