var Wishlist = {
	formID: '#orderForm',
	multiAdd: true,

	renderWishlistButton: function() {
		var button = jQuery('<input/>').attr('type','submit').attr('value','Add to Wishlist');
	},

	doAdd: function(evt) {
		var form = jQuery(Wishlist.formID);
		if (form.length == 0) { return; }
		if (Wishlist.multiAdd) {
			var item = Wishlist.processMultiAddForm(form);
			Wishlist.addToWishlist(item);
		} else {
			// doSomethingElse
		}	
		
	},

	processMultiAddForm: function(form)
	{
		var $context = jQuery('select, input');
		var obj = this;
		var item = {id: null, quantity: 0, options: []};
		form.find('select, input').each(function() {

			var el = jQuery(this);
			var itemNum = null;
			if (el.attr('name') != undefined) {
				if (obj.isItem(el)) {
					if (el.val() != '') {
						item.id = el.val();
					}
				} else if (obj.isQuantity(el)) {

					if(el.val() != '') {
						item.quantity = el.val();
					}

				} else if (obj.isMultiOption(el)) {
					var optionName = obj.getOptionName(el);
					item.options.push({ 'name' :  optionName, 'value' : el.val() });
				}
			}
		});

		if (item.quantity == 0) {
			item.quantity = 1;
		}

		return item;

	},

	addToWishlist: function(item)
	{
		var form = jQuery('<form/>')
			.attr('method','get')
			.attr('action','http://myaccount.americanmuscle.com/Wishlist/index/additem')
			.attr('id','wishlist-form')
			.appendTo("body");

		var itemIdInput = jQuery('<input/>')
			.attr('type', 'hidden')
			.attr('name', 'item')
			.attr('value', item.id);

		form.append(itemIdInput);

		var itemImageInput = jQuery('<input/>')
			.attr('type','hidden')
			.attr('name','image')
			.attr('value', WishlistItemProps.image);

		form.append(itemImageInput);

		var itemQtyInput = jQuery('<input/>')
			.attr('type', 'hidden')
			.attr('name', 'quantity')
			.attr('value', item.quantity);

		form.append(itemQtyInput);

		var itemNameInput = jQuery('<input/>')
			.attr('type', 'hidden')
			.attr('name', 'name')
			.attr('value', WishlistItemProps.name);

		if (item.options.length > 0) {
			for(var i = 0; i < item.options.length; i++) {
				var optionInput = jQuery('<input/>')
					.attr('type', 'hidden')
					.attr('name', item.options[i].name)
					.attr('value', item.options[i].value);
				form.append(optionInput);
			}
		}

		form.append(itemNameInput);
		form.appendTo("body").submit();
	},

	isMainItem: function(el)
	{

		var name = el.attr('name');
		var pattern = /vwitem0/;
		var match = name.match(pattern);

		if (match) {
			return match[1];
		}

		return null;
	},

	getOptionName: function(el)
	{
		var name = el.attr('name');
		var pattern = /vwattr0_([-a-zA-Z0-9]+)/
		var match = name.match(pattern);
		
		if (match) {
			return match[1];
		}

		return null;
	},

	isQuantity: function(el) {
		var name = el.attr('name');
		var pattern = /vwquantity0/;
		var match =	name.match(pattern);

		if (match) {
			return true;
		}

		return false;
	},

	isItem: function(el)
	{
		var name = el.attr('name');	
		var pattern = /vwitem0/;
		var match = name.match(pattern);

		if (match) {
			return true;
		}
		
		return false;
	},

	isMultiOption: function(el)
	{
		var name = el.attr('name');
		var pattern = /vwattr0/
		var match = name.match(pattern);

		if (match) {
			return true;
		}

		return false;
	}
}

jQuery(document).ready(function() { try { jQuery("#wishlist-button").click(Wishlist.doAdd);} catch (e) { alert(e); }});

