//////////////////////////////////////////////////////////////////////////////////////////
// 
//////////////////////////////////////////////////////////////////////////////////////////

YAHOO.namespace("mmyForm");

// /////////////////////////////////////////////////////////////////////////////////////////////////
// mmyForm object
// /////////////////////////////////////////////////////////////////////////////////////////////////
var mmyFormObj1,mmyFormObj2;

var path = '';
if (document.URL.indexOf('/staging') != -1) {
	path = '/staging';
}

var MMYForm = function(name) {
	if (arguments.length > 0) {
		this.formName = name;
		this.mmyFormGutsModule = $('#' + name).find('.mmyFormGutsModule');
		this.mmyFormResultsModule = $('#' + name).find('.mmyFormResultsModule');
	}
};

MMYForm.prototype = {
	mmyForm : this,
	populated : false,
	contextPath : path,
	request : null,
	success : function(mmyForm) {
		
		var onchange = function(e){
			return mmyForm.populateForm(e,false);
		};
	    return function(msg) {
	    	if (msg.indexOf("id=\"ajaxErrors\"") != -1) {
				// Errors
				mmyForm.mmyFormResultsModule.empty();
				mmyForm.mmyFormGutsModule.html(msg);
				mmyForm.mmyFormGutsModule.find('.yearDropDown').change(onchange);
				mmyForm.mmyFormGutsModule.find('.makeDropDown').change(onchange);
			} else if (msg.indexOf("mmyFormGuts.jsp") != -1) {
				// Success
				mmyForm.mmyFormResultsModule.empty();
				mmyForm.mmyFormGutsModule.html(msg);
				mmyForm.mmyFormGutsModule.find('.yearDropDown').change(onchange);
				mmyForm.mmyFormGutsModule.find('.makeDropDown').change(onchange);
			} else {
				// The shipping options might not appear if there was a timeout or
				// nothing is in the cart.
				this.sessionTimeout();
			}
	    };
	},
	failure : function(mmyForm) {
		return function(jqXHR, textStatus) {
			mmyForm.mmyFormResultsModule.html('');
			mmyForm.mmyFormGutsModule.html(textStatus);
		};
	},
	populateForm : function(e) {
		this.populateForm(e, false);
	},
	populateForm : function(e, reset) {
		this.mmyFormResultsModule.html('<img src="' + this.contextPath + '/administrator/yui/assets/skins/sam/wait.gif"/>');
		if (reset) {
			this.request = $.ajax({
			  url: this.contextPath + '/AjaxMMYForm.do?year=',
			  type: "POST",
			  data: $('#' + this.formName).serialize()
			});
		} else {
			this.request = $.ajax({
			  url: this.contextPath + '/AjaxMMYForm.do',
			  type: "POST",
			  data: $('#' + this.formName).serialize()
			});
		}
		this.request.done(this.success(this));
		this.request.fail(this.failure(this));
	},
	sessionTimeout : function() {
		document.location = this.contextPath + "/Welcome.do";
	}
};

$(document).ready(function() {	
	mmyFormObj1 = new MMYForm("mmyForm1");
	mmyFormObj1.populateForm(null);
	mmyFormObj2 = new MMYForm("mmyForm2");
	mmyFormObj2.populateForm(null);
});

YAHOO.util.Event.onDOMReady(function() {
	// Set up listeners
	YAHOO.util.Event.addListener("snowsporthdtab", "click",
			YAHOO.mmyForm.switchTabssnowsporthd);
	YAHOO.util.Event.addListener("snowsportatvtab", "click",
			YAHOO.mmyForm.switchTabssnowsportatv);
	YAHOO.util.Event.addListener("snowsportztrtab", "click",
			YAHOO.mmyForm.switchTabssnowsportztr);

});

YAHOO.mmyForm.switchTabssnowsporthd = function(e) {
	YAHOO.util.Dom.get("mmyForm1").orderProductCodes.value = 'snowsporthd';
	YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getElementsByClassName('mmyTab'),
			'active');
	YAHOO.util.Dom.addClass('snowsporthdtab', 'active');
	mmyFormObj1.populateForm(e, true);
};

YAHOO.mmyForm.switchTabssnowsportatv = function(e) {
	YAHOO.util.Dom.get("mmyForm1").orderProductCodes.value = 'snowsportatv';
	YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getElementsByClassName('mmyTab'),
			'active');
	YAHOO.util.Dom.addClass('snowsportatvtab', 'active');
	mmyFormObj1.populateForm(e, true);
};

YAHOO.mmyForm.switchTabssnowsportztr = function(e) {
	YAHOO.util.Dom.get("mmyForm1").orderProductCodes.value = 'snowsportztr';
	YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getElementsByClassName('mmyTab'),
			'active');
	YAHOO.util.Dom.addClass('snowsportztrtab', 'active');
	mmyFormObj1.populateForm(e, true);
};


