window.addEvent('domready', function() {
    if($('Submit_button'))
	{
        $('Submit_button').addEvent('click', function() {
        	Redemption.validate();
        	});
	}
});

var Redemption = {
    name:"",
    last:"",
    address1:"",
    address2:"",
    city:"",
    state:"",
    zip:"",
    optinPeets:"",
    optinGrocery:"",
    serializer:null,
    JSONConverter:null,
    validate:function()
    {
        var trackJax = new Ajax("/callback/track/?action=couponButtonClicked&cid="+$("coupon_id").value,{
        	method:"get",onSuccess:function(rText){},onFailure:function(rText){}
        }).request();
    	//track('cmCreateConversionEventTag("Coupon Printed",1)');
        this.myVal = new Validate("coupon_summary");
        this.serializer = new Serializer();
        this.JSONConverter = null;
        this.serializer.init(["coupon_email",
                              "coupon_fname",
                              "coupon_lname",
                              "coupon_address1",
                              "coupon_address2",
                              "coupon_city",
                              "coupon_state",
                              "coupon_code",
                              "coupon_zipcode",
                              "coupon_id"]);
		this.myVal.isEmail("coupon_email","emailError","Enter your email");
        this.myVal.isEmpty("coupon_fname","fnameError","Enter your first name");
		this.myVal.isEmpty("coupon_lname","lnameError","Enter your last name");
		if($("fulfillmentType").value == "offline")
		{
		  this.myVal.isEmpty("coupon_address1","address1Error","Enter your address");
		  this.myVal.isEmpty("coupon_city","couponcityError","Enter your city");
		  this.myVal.isEmpty("coupon_state","stateError","Enter your state");
		}
		this.myVal.isEmpty("coupon_code","codeError","Enter the promotional code");
		this.myVal.isZipcode("coupon_zipcode","zipcodeError","Enter your zipcode");

		// FINAL STEP
		if(this.myVal.isValid())
        {
            this.submit();
        }
        else
        {
            this.myVal.peetsYield(true);
            return false;
        }
     },
    submit:function()
    {
        Utility.turnOnInline("coupon_loadingIcon");
        this.myAjax = new Ajax("/callback/redemption/?submit=true"+this.serializer.yield(),
			{
				method: 'get',
				onSuccess: function(obj)
				{
    	    		Utility.turnOff("coupon_loadingIcon");
				    this.JSONConverter = new JSONtoObject();
				    this.JSONConverter.convert(obj);
				    var oResponse = this.JSONConverter.get();
			    	switch(oResponse.status)
			    	{
			    	    // Utility.notify(id of summary, success/error[1,0],array of responses)
			    	    /*
			    	     * YOU CAN PASSING DELIMITER! ||
			    	     */
			    	    case "success":
			    	        //Redemption.myVal.generalError(null,oResponse.responses);
			    	        //Redemption.myVal.peetsYieldSuccess("CouponSuccess");
                            
			    	        if($("peetnikOptin").checked)
			    	        {
			    	        	new Newsletter().subscribe();
			    	        	Followup.schedule();
			    	        }
                            
                            setTimeout("new Crypt().go()",5000);
                            $("coupon_summary").innerHTML = "<b>You will be redirected to your coupon in just a moment.</b>";
                            $("coupon_summary").style.display = "block";
                            //$("Submit_button").disabled=true;
                            track('cmCreateConversionEventTag("Coupon Printed","2","Site Events","1");');
                            return;
			    	    break;
			    	    case "failed":
			    	        Redemption.myVal.generalError(null,oResponse.responses);
			    	    break;
			    	    case "repeat":
                            Redemption.myVal.generalError(null,oResponse.responses);
			    	    break;
			    	}
			    	Redemption.myVal.peetsYield(true);
			    	return;
				},
				onFailure: function(sender,responseText)
				{
					Utility.turnOff("coupon_loadingIcon");
				    alert('failed request');
				}
			}).request();
    }
}
