$(function(){   
  $(".dialog").each(function(){

    var myClass = $(this).attr("id");

    $.ajax({
      type: "get",
      url: $(this).attr("href"),
      success: function(data) {
        $("<div class='" + myClass + "'/>").append(data).dialog({
          autoOpen: false,
          bgiframe: true,
          modal: true,
          width: 650,
          height: 'auto'
        }).children("div").append("<div class='close' style='margin-top: 1em'><a href='#' class='close'>Close this window</a></div>");  
        $(".close a").click(function(){
          $(".ui-dialog-content").dialog("close");
          return false;
        }); 
      }
    });
  }).click(function(){
    $(".ui-dialog-content." + $(this).attr("id")).dialog("open");
    return false;
  });  
    
  $(".returnform").submit(function(){
    return validate_return();
  })
     
  $(".verifyform").submit(function(){
    return validate_verify();
  }) 
    
}) 

/******************************************************************

  Validate new infopack request form.

******************************************************************/ 
  function validate_verify(){  
      	var valCheck;
      	var valNum = "01234567890";
      	var valChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
      	var valNameChars = " -.\'";
      	var valSpecChars = " -.,\'\&\#\*";
      	var invalChars = "!\@\$\%\^\?\<\>\:\;\\\{\}\[\]\|\/\~\`";
        var serialSpecial = "- ";  // for pump serial number format validation: xxxxxx-xx-xxx 

    // Validate First Name
        if (document.mmForm.first_name.value == "") {
        		alert("Please fill in your First name.");
        		document.mmForm.first_name.focus();
        		return false;
        } else {

        // VERIFIES THAT FIRST NAME FIELD CONTAINS ONLY LETTERS
          	var valCheck = "";
              var valCheck = valChars + valNameChars;
        	for (var i = 0; i < document.mmForm.first_name.value.length; i++) {
        	   	if (valCheck.indexOf(document.mmForm.first_name.value.charAt(i)) == -1) {
        			alert ("Please enter a valid First Name.");
        			document.mmForm.first_name.focus();
        			return false;
        		}
        	}
        }

    // Validate Last Name
        if (document.mmForm.last_name.value == "") {
        	alert("Please fill in your Last Name.");
        	document.mmForm.last_name.focus();
        	return false;
        } else {
        // VERIFIES THAT LAST NAME FIELD CONTAINS ONLY LETTERS/VALID CHARACTERS
        	var valCheck = "";
        	var valCheck = valChars + valNameChars;
        	for (var i = 0; i < document.mmForm.last_name.value.length; i++) {
        		if (valCheck.indexOf(document.mmForm.last_name.value.charAt(i)) == -1) {
        			alert ("Please enter a valid Last Name.");
        			document.mmForm.last_name.focus();
        			return false;
        		}
        	}
        }


    // Validate Phone number
        // VERIFIES THAT PHONE1 FIELD CONTAINS AT LEAST 3 CHARACTERS
        if (document.mmForm.phone1.value.length < 3) {
        	alert ("Please enter 3 digits into the first Phone number field.");
        	document.mmForm.phone1.focus();
        	return false;
        }

        var nums = "0123456789";
        for (var i = 0; i < document.mmForm.phone1.value.length; i++) {
        	if (nums.indexOf(document.mmForm.phone1.value.charAt(i)) == -1) {
        		alert ("Please enter only numbers into the first Phone number field.");
        		document.mmForm.phone1.focus();
        		return false;
        	}
        }

        // VERIFIES THAT PHONE2 FIELD CONTAINS AT LEAST 3 CHARACTERS
        if (document.mmForm.phone2.value.length < 3) {
        	alert ("Please enter 3 digits into the second Phone number field.");
        	document.mmForm.phone2.focus();
        	return false;
        }			
        var nums = "0123456789";
        for (var i = 0; i < document.mmForm.phone2.value.length; i++) {
        	if (nums.indexOf(document.mmForm.phone2.value.charAt(i)) == -1) {
        		alert ("Please enter only numbers into the second Phone number field.");
        		document.mmForm.phone2.focus();
        		return false;
        	}
        }

        // VERIFIES THAT PHONE3 FIELD CONTAINS AT LEAST 4 CHARACTERS
        if (document.mmForm.phone3.value.length < 4) {
        	alert ("Please enter 4 digits into the third Phone number field.");
        	document.mmForm.phone3.focus();
        	return false;
        }

        var nums = "0123456789";
        for (var i = 0; i < document.mmForm.phone3.value.length; i++) {
        	if (nums.indexOf(document.mmForm.phone3.value.charAt(i)) == -1) {
        		alert ("Please enter only numbers into the third Phone number field.");
        		document.mmForm.phone3.focus();
        		return false;
        	}
        }   

    // Email validation
        if (document.mmForm.email.value == "") {
         alert("Please fill in your E-mail address.");
         document.mmForm.email.focus();
         return false; 
        } 
        emailStr = document.mmForm.email.value;

        if (!validEmail(emailStr)) {
         alert("Please enter a valid email address.");
         document.mmForm.email.focus();
         return false; 
        }    

    // DOB Validation
      if (document.mmForm.dobMonth.selectedIndex == "" || document.mmForm.dobDate.selectedIndex == "" || document.mmForm.dobYear.selectedIndex == "") {
      	alert("Please provide your Date of Birth.");
      	document.mmForm.dobMonth.focus();
      	return false;
      } 

    // Pump Serial # Validation

    	if (document.mmForm.pump_serial.value == ""){
    	alert("Please provide your Insulin Pump Serial Number."   +
    		"\n You can find the serial numbers on the back of your insulin pump.");
    	document.mmForm.pump_serial.focus();
    	return false;
    	} else {

            var valCheck = ""
            var valCheck = valChars + valNum + serialSpecial

    	for (var i = 0; i < document.mmForm.pump_serial.value.length; i++) {
    	   if (valCheck.indexOf(document.mmForm.pump_serial.value.charAt(i)) == -1) {
    		alert ("Please enter numbers, letters, and dashes into the \"Pump Serial Number\" field." +
    		"\n You can find the serial numbers on the back of your insulin pump.");			
    		document.mmForm.pump_serial.focus();
    		return false;
    		}
    	}	
    } // end pump serial validation 

    // Validate address
          if (document.mmForm.address.value == "") {
                  alert ("Please enter your Address.");
                  document.mmForm.address.focus();
                  return false;
                } else {
      		// VERIFIES THAT ADDRESSEE FIELD CONTAINS VALID CHARACTERS
      			var valCheck = "";
      			var valCheck = valChars + valSpecChars + valNum;
      				for (var i = 0; i < document.mmForm.address.value.length; i++) {
      					if (valCheck.indexOf(document.mmForm.address.value.charAt(i)) == -1) {
      					alert ("Please enter a valid Address.");
      					document.mmForm.address.focus();
      					return false;
      				}
      			}
      		}

      		if (document.mmForm.address2.value != "") {
      		// VERIFIES THAT ADDRESS 2 FIELD CONTAINS VALID CHARACTERS
      	       	var valCheck = "";
      	       	var valCheck = valChars + valSpecChars + valNum;
      			for (var i = 0; i < document.mmForm.address2.value.length; i++) {
      				if (valCheck.indexOf(document.mmForm.address2.value.charAt(i)) == -1) {
      					alert ("Please enter a valid Address in the second Address field.");
      					document.mmForm.address2.focus();
      					return false;
      				}
      			}
      		}

      		if (document.mmForm.city.value == "") {
      			alert ("Please enter your City.");
      			document.mmForm.city.focus();
      			return false;

      		} else {
      		// VERIFIES THAT CITY FIELD CONTAINS ONLY LETTERS/VALID CHARACTERS
      			var valCheck = "";
      	        var valCheck = valChars + valNameChars;
      			for (var i = 0; i < document.mmForm.city.value.length; i++) {
      				if (valCheck.indexOf(document.mmForm.city.value.charAt(i)) == -1) {
      					alert ("Please enter a valid City.");
      					document.mmForm.city.focus();
      					return false;
      				}
      			}
      		}

      		if (document.mmForm.state.selectedIndex == "") {
      			alert("Please select your State.");
      			document.mmForm.state.focus();
      			return false;
      		} 

      		// Validate Zip code
              if (document.mmForm.zip.value == "") {
              	alert("Please fill in your Zip code.");
              	document.mmForm.zip.focus();
              	return false; 

              } else {
                // VERIFIES THAT ZIP FIELD CONTAINS AT LEAST 5 Characters
              	if (document.mmForm.zip.value.length != 5) {
              		alert ("Please enter 5 characters into the Zip code field.");
              		document.mmForm.zip.focus();
              		return false;
              	}

              	var nums = valNum;
              	for (var i = 0; i < document.mmForm.zip.value.length; i++) {
              		if (nums.indexOf(document.mmForm.zip.value.charAt(i)) == -1) {
              			alert ("Please enter only numbers into the Zip Code field.");
              			document.mmForm.zip.focus();
              			return false;
              		}
              	}	
              } // end Zip check


        // Validate Age Agreement
            if (!document.mmForm.agree.checked) {
            	alert("We're sorry, please confirm you are at least 13 years of age, or have a parent or legal guardian contact us with your question. Thank you.");
            	document.mmForm.agree.focus();
            	return false;
            }
        return true;
  }   
  
  function validate_return(){
  	var valCheck;
  	var valNum = "01234567890";
  	var valChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  	var valNameChars = " -.\'";
  	var valSpecChars = " -.,\'\&\#\*";
  	var invalChars = "!\@\$\%\^\?\<\>\:\;\\\{\}\[\]\|\/\~\`";
    var serialSpecial = " -";  // for pump serial number format validation: xxxxxx-xx-xxx
// Validate # of infusion sets
      if (document.mmForm.full_boxes.value.length < 1 && document.mmForm.individual_sets.value.length < 1) {
      	alert ("Please let us know how many \"Lot 8\" Quick-set infusion sets you have.")
      	document.mmForm.full_boxes.focus();
      	return false;
      }   

    
    // Validate Full Boxes
        var nums = "0123456789";
        for (var i = 0; i < document.mmForm.full_boxes.value.length; i++) {
        	if (nums.indexOf(document.mmForm.full_boxes.value.charAt(i)) == -1) {
        		alert ("Please enter only numbers into the Full Boxes field.");
        		document.mmForm.full_boxes.focus();
        		return false;
        	}
        }
        
        // Validate Individual Infusion Sets

        var nums = "0123456789";
        for (var i = 0; i < document.mmForm.individual_sets.value.length; i++) {
        	if (nums.indexOf(document.mmForm.individual_sets.value.charAt(i)) == -1) {
        		alert ("Please enter only numbers into the Individual Infusion Sets field.");
        		document.mmForm.individual_sets.focus();
        		return false;
        	}
        }       

// Validate First Name
    if (document.mmForm.first_name.value == "") {
    		alert("Please fill in your First name.");
    		document.mmForm.first_name.focus();
    		return false;
    } else {

    // VERIFIES THAT FIRST NAME FIELD CONTAINS ONLY LETTERS
      	var valCheck = "";
          var valCheck = valChars + valNameChars;
    	for (var i = 0; i < document.mmForm.first_name.value.length; i++) {
    	   	if (valCheck.indexOf(document.mmForm.first_name.value.charAt(i)) == -1) {
    			alert ("Please enter a valid First Name.");
    			document.mmForm.first_name.focus();
    			return false;
    		}
    	}
    }

// Validate Last Name
    if (document.mmForm.last_name.value == "") {
    	alert("Please fill in your Last Name.");
    	document.mmForm.last_name.focus();
    	return false;
    } else {
    // VERIFIES THAT LAST NAME FIELD CONTAINS ONLY LETTERS/VALID CHARACTERS
    	var valCheck = "";
    	var valCheck = valChars + valNameChars;
    	for (var i = 0; i < document.mmForm.last_name.value.length; i++) {
    		if (valCheck.indexOf(document.mmForm.last_name.value.charAt(i)) == -1) {
    			alert ("Please enter a valid Last Name.");
    			document.mmForm.last_name.focus();
    			return false;
    		}
    	}
    }
    

// Validate Phone number
    // VERIFIES THAT PHONE1 FIELD CONTAINS AT LEAST 3 CHARACTERS
    if (document.mmForm.phone1.value.length < 3) {
    	alert ("Please enter 3 digits into the first Phone number field.");
    	document.mmForm.phone1.focus();
    	return false;
    }

    var nums = "0123456789";
    for (var i = 0; i < document.mmForm.phone1.value.length; i++) {
    	if (nums.indexOf(document.mmForm.phone1.value.charAt(i)) == -1) {
    		alert ("Please enter only numbers into the first Phone number field.");
    		document.mmForm.phone1.focus();
    		return false;
    	}
    }

    // VERIFIES THAT PHONE2 FIELD CONTAINS AT LEAST 3 CHARACTERS
    if (document.mmForm.phone2.value.length < 3) {
    	alert ("Please enter 3 digits into the second Phone number field.");
    	document.mmForm.phone2.focus();
    	return false;
    }			
    var nums = "0123456789";
    for (var i = 0; i < document.mmForm.phone2.value.length; i++) {
    	if (nums.indexOf(document.mmForm.phone2.value.charAt(i)) == -1) {
    		alert ("Please enter only numbers into the second Phone number field.");
    		document.mmForm.phone2.focus();
    		return false;
    	}
    }

    // VERIFIES THAT PHONE3 FIELD CONTAINS AT LEAST 4 CHARACTERS
    if (document.mmForm.phone3.value.length < 4) {
    	alert ("Please enter 4 digits into the third Phone number field.");
    	document.mmForm.phone3.focus();
    	return false;
    }

    var nums = "0123456789";
    for (var i = 0; i < document.mmForm.phone3.value.length; i++) {
    	if (nums.indexOf(document.mmForm.phone3.value.charAt(i)) == -1) {
    		alert ("Please enter only numbers into the third Phone number field.");
    		document.mmForm.phone3.focus();
    		return false;
    	}
    }   
    
// Email validation
    if (document.mmForm.email.value == "") {
     alert("Please fill in your E-mail address.");
     document.mmForm.email.focus();
     return false; 
    } 
    emailStr = document.mmForm.email.value;

    if (!validEmail(emailStr)) {
     alert("Please enter a valid email address.");
     document.mmForm.email.focus();
     return false; 
    }    
  
// DOB Validation
  if (document.mmForm.dobMonth.selectedIndex == "" || document.mmForm.dobDate.selectedIndex == "" || document.mmForm.dobYear.selectedIndex == "") {
  	alert("Please provide your Date of Birth.");
  	document.mmForm.dobMonth.focus();
  	return false;
  } 

// Pump Serial # Validation

	if (document.mmForm.pump_serial.value == ""){
	alert("Please provide your Insulin Pump Serial Number."   +
		"\n You can find the serial numbers on the back of your insulin pump.");
	document.mmForm.pump_serial.focus();
	return false;
	} else {
	
        var valCheck = ""
        var valCheck = valChars + valNum + serialSpecial
	 
	for (var i = 0; i < document.mmForm.pump_serial.value.length; i++) {
	   if (valCheck.indexOf(document.mmForm.pump_serial.value.charAt(i)) == -1) {
		alert ("Please enter numbers, letters, and dashes into the \"Pump Serial Number\" field." +
		"\n You can find the serial numbers on the back of your insulin pump.");			
		document.mmForm.pump_serial.focus();
		return false;
		}
	}	
} // end pump serial validation 

// Validate address
      if (document.mmForm.address.value == "") {
              alert ("Please enter your Address.");
              document.mmForm.address.focus();
              return false;
            } else {
  		// VERIFIES THAT ADDRESSEE FIELD CONTAINS VALID CHARACTERS
  			var valCheck = "";
  			var valCheck = valChars + valSpecChars + valNum;
  				for (var i = 0; i < document.mmForm.address.value.length; i++) {
  					if (valCheck.indexOf(document.mmForm.address.value.charAt(i)) == -1) {
  					alert ("Please enter a valid Address.");
  					document.mmForm.address.focus();
  					return false;
  				}
  			}
  		}

  		if (document.mmForm.address2.value != "") {
  		// VERIFIES THAT ADDRESS 2 FIELD CONTAINS VALID CHARACTERS
  	       	var valCheck = "";
  	       	var valCheck = valChars + valSpecChars + valNum;
  			for (var i = 0; i < document.mmForm.address2.value.length; i++) {
  				if (valCheck.indexOf(document.mmForm.address2.value.charAt(i)) == -1) {
  					alert ("Please enter a valid Address in the second Address field.");
  					document.mmForm.address2.focus();
  					return false;
  				}
  			}
  		}

  		if (document.mmForm.city.value == "") {
  			alert ("Please enter your City.");
  			document.mmForm.city.focus();
  			return false;

  		} else {
  		// VERIFIES THAT CITY FIELD CONTAINS ONLY LETTERS/VALID CHARACTERS
  			var valCheck = "";
  	        var valCheck = valChars + valNameChars;
  			for (var i = 0; i < document.mmForm.city.value.length; i++) {
  				if (valCheck.indexOf(document.mmForm.city.value.charAt(i)) == -1) {
  					alert ("Please enter a valid City.");
  					document.mmForm.city.focus();
  					return false;
  				}
  			}
  		}

  		if (document.mmForm.state.selectedIndex == "") {
  			alert("Please select your State.");
  			document.mmForm.state.focus();
  			return false;
  		} 
  		
  		// Validate Zip code
          if (document.mmForm.zip.value == "") {
          	alert("Please fill in your Zip code.");
          	document.mmForm.zip.focus();
          	return false; 

          } else {
            // VERIFIES THAT ZIP FIELD CONTAINS AT LEAST 5 Characters
          	if (document.mmForm.zip.value.length != 5) {
          		alert ("Please enter 5 characters into the Zip code field.");
          		document.mmForm.zip.focus();
          		return false;
          	}

          	var nums = valNum;
          	for (var i = 0; i < document.mmForm.zip.value.length; i++) {
          		if (nums.indexOf(document.mmForm.zip.value.charAt(i)) == -1) {
          			alert ("Please enter only numbers into the Zip Code field.");
          			document.mmForm.zip.focus();
          			return false;
          		}
          	}	
          } // end Zip check

    
    // Validate Age Agreement
        if (!document.mmForm.agree.checked) {
        	alert("We're sorry, please confirm you are at least 13 years of age, or have a parent or legal guardian contact us with your question. Thank you.");
        	document.mmForm.agree.focus();
        	return false;
        }
    return true;
  }

function validEmail(str) {
  var validEmailRegEx = /^\s*([a-z0-9]+([+-.!=_][a-z0-9]+)*)\@(([a-z0-9\-])+\.)+([a-z0-9]{2,4})\s*$/i;
  return validEmailRegEx.test(str);
}