//Global Mega Options AJAX product submit with validation
//Joseph De Araujo 2010 www.alreadymade.com

$(document).ready(function() {
	$('#add_to_cart').removeAttr('onclick');
	
	function validate_form(){
          var model_error = false;
          var skirt_error = false;
          var measurement_error = false;
          var measurement_toobig = false;
          var message = 'Invalid Form:\n';
          var product_id = $("[name='product_id']").val();
          var maxsize = 96;
          var undersized = false;
          
          if ($("[name='product_id']").val() == '82'){
               maxsize = 108;
               undersized = true;
          }         
          
          if ($("#Model").val() == ''){
               model_error = true;
          }
          if ($("#SkirtLength").val() == ''){
               skirt_error = true;
          }
          $("#A,#B,#C,#D,#E,#F,#G,#H,#I,#J,#K,#L,#M,#N,#O,#P,#Q,#R,#S,#T,#U,#V,#W,#X,#Y,#Z").each(function(i){
          	if ($(this).val() == '' || isNaN($(this).val())){
          		measurement_error = true;	
          	}
          	if (product_id == 82){
          	     if(this.id == 'B'){
                         if (parseFloat($(this).val()) > 108 || parseFloat($(this).val()) <= 0){
                              measurement_toobig = true;
                         }
                         if (parseFloat($(this).val()) > 96){
                              undersized = false;
                         }
                    }
                    else{
                         if (parseFloat($(this).val()) > 96 || parseFloat($(this).val()) <= 0){
                              measurement_toobig = true;
                         }     
                    }              
               }
               else{
                    if (parseFloat($(this).val()) > 96 || parseFloat($(this).val()) <= 0){
                         measurement_toobig = true;
                    }
               }

          });
          if (model_error || skirt_error || measurement_error || measurement_toobig || undersized){
               if (model_error){
                    message = message + 'Select a Model\n';    
               }
               if (skirt_error){
                    message = message + 'Select a Skirt Length\n';    
               }
               if (measurement_error){
                    message = message + 'Check your measurements\n';    
               }
               if (measurement_toobig){
                    if (product_id == 82){
                         message = message + 'One or more of your measurements is too big.\n';    
                    }
                    else{
                         message = message + 'For Spa Covers bigger than 96" check our oversized cover models or call for a quote.\n';                        
                    }
                }
               if (undersized && (!measurement_error)){
                    message = message + 'Your measurements do not require an oversized cover, please pick a standard cover and save yourself money!!!\n';
               }
               
               alert(message);
               return false;  
          }
          else{
               return true;
          }
     }
	
	$('#add_to_cart').click(function () {
          if(validate_form()){
              var submitted = $('#product :input').serialize();

               $.ajax({
     			type: 'post',
     			url: 'index.php?route=module/cart/callback',
     			dataType: 'html',
                    data: submitted,
     			success: function (html) {
     				$('#module_cart .middle').html(html);
     			},
     			complete: function () {
     				var image = $('#image').offset();
     				var cart  = $('#module_cart').offset();
     
     				$('#image').before('<img src="' + $('#image').attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />');
     
     				params = {
     					top : cart.top + 'px',
     					left : cart.left + 'px',
     					opacity : 0.0,
     					width : $('#module_cart').width(),
     					heigth : $('#module_cart').height()
     				};
     
     				$('#temp').animate(params, 'slow', false, function () {
     					$('#temp').remove();
     				});
     				window.location.replace("http://www.affordablespacovers.com/store/index.php?route=checkout/cart");
     			}
     		});
          }             
 
     });

});

