// Validations
$(document).ready(function() {
  //Campaign Create Form
    $("#create_campaign_form").validate({
      rules:{
        name: {required: true, minlength: 3},
        startDate: {required: true, date: true},
        endDate: {required: true, date: true}
        },
      messages:{
        name: {required: "You must provide a Campaign Name.", minlength: "Your Campaign name must be at least 3 characters long."},
        startDate: "You must provide a start date.",
        endDate: "You must provide an end date."
        }
      });
//Broadcast Form
  $("#campaignBroadcast").validate({
    rules:{
      broadcastTitle: 'required',
      broadcastMessage: 'required',
      broadcastTermsCheckbox: 'required'
      },
    messages:{
      broadcastTitle: 'You must provide a Broadcast Title.',
      broadcastMessage: 'You must provide a message.',
      broadcastTermsCheckbox: 'You must agree to the terms.'
      }
    });
 // Keyword Request Form
    $("#keyword_request_form").validate({
       rules:{
         clientName: 'required',
         clientContactName: 'required',
         keywordRequested: {required: true, minlength: 3, nowhitespace: true}
       },
       messages: {
         clientName: 'An Advertiser name must be provided.',
         clientContactName: 'A Reseller name must be provided.',
         keywordRequested: {required: 'You must provide a Keyword.',
                             minlength: 'A Keyword must be at least 3 characters.',
                             nowhitespace: 'A keyword cannot contain space.'}
       } 
      });
 //Reseller Create Advertiser Form
      $("#createAdvertiser").validate({
        rules:{
          advertKeyword: "required",
          advertName: "required",
          locationAddress1: "required",
          advertiserURL: {url: true},
          locationPostalCode: {required: true, digits: true, rangelength: [5,5]},
          locationAreaCode: {required: true, digits: true, rangelength: [3,3]},
          locationPhone: "required",
          username: "required",
          first_name: "required",
          last_name: "required",
          person_email: {required: true, email: true},
          personAddress1: "required",
          personCity: "required",
          personPostalCode: {required: true, digits: true, rangelength: [5,5]},
          personCellAreaCode: {required: true, digits: true, rangelength: [3,3]},
          personCellPhone: "required",
          personAreaCode: {required: true, digits: true, rangelength: [3,3]},
          personPhone: "required"
        },
        messages: {
          advertKeyword: "Please Enter a Keyword.",
          advertName: "Please specify your name",
          locationAddress1: "You must provide an Address",
          advertiserURL: {url: "Url must be in the format http://www.domain.com"},
          locationPostalCode: { required: "A Postal Code is required.", 
                                digits: "Postal Code can only contain numbers.", 
                                rangelength: "Must be 5 numbers."},
          locationAreaCode: { required: "An Area Code is required.", 
                              digits: "Area Code can only contain numbers.", 
                              rangelength: "Must be 3 numbers only."},
          locationPhone: "A Phone number is required.",
          username: "A username is required",
          first_name: "A first name is required",
          last_name: "A last name is required",
          person_email: {required: "A valid email is required", 
                         email: "Please enter a valid email. name@domain.com"},
          personAddress1: "You must provide an Address",
          personCity: "Please provide a city.",
          personPostalCode: { required: "A Postal Code is required.", 
                                 digits: "Postal Code can only contain numbers.", 
                                 rangelength: "Must be 5 numbers."},
          personCellAreaCode: { required: "An Area Code is required.", 
                                digits: "Area Code can only contain numbers.", 
                                rangelength: "Must be 3 numbers only."},
          personCellPhone: "A Phone number is required.",
          personAreaCode: { required: "An Area Code is required.", 
                            digits: "Area Code can only contain numbers.", 
                            rangelength: "Must be 3 numbers only."},
          personPhone: "A Phone number is required."
        }
          });
   //Reseller Profile Update Form
      $('#reseller_profile_update_form').validate({
          rules:{
            resellerName: 'required',
            contactName: {required: true, lettersonly: true},
            contactEmail: {required: true, email: true},
            locationAddress1: "required",
            advertiserURL: {url: true},
            locationCity: 'lettersonly',
            locationPostalCode: {required: true, digits: true, rangelength: [5,5]},
            locationAreaCode: {required: true, digits: true, rangelength: [3,3]},
            locationPhone: {required: true, digits: true, rangelength: [7,7]}
          },
          messages: {
            resellerName: 'Please provide a business name.',
            contactName: { required: "A contact name is required.", 
                           lettersonly: "Your mother didnt name you 7, letters only please."},
            contactEmail: {required: "A valid email is required", 
                           email: "Please enter a valid email. name@domain.com"},
            locationAddress1: "You must provide an Address",
            locationCity: "Please enter a valid city name.",
            advertiserURL: {url: "Url must be in the format http://www.domain.com"},
            locationPostalCode: {required: "A Postal Code is required.", 
                                 digits: "Postal Code can only contain numbers.", 
                                 rangelength: "Must be 5 numbers."},
            locationAreaCode: {required: "An Area Code is required.", 
                               digits: "Area Code can only contain numbers.", 
                               rangelength: "Must be 3 numbers only."},
            locationPhone: {required: "A 7 digit number is required.", 
                            digits: "Can contain only numbers", 
                            rangelength: "Must be 7 numbers."}
         }
        });
   //Advertiser Profile Update Form
        $('#advertiserProfile').validate({
          rules:{
            advertName: "required",
            locationAddress1: "required",
            advertiserURL: {url: true},
            locationPostalCode: {required: true, digits: true, rangelength: [5,5]},
            locationAreaCode: {required: true, digits: true, rangelength: [3,3]},
            locationPhone: "required",
            username: "required",
            first_name: "required",
            last_name: "required",
            person_email: {required: true, email: true},
            personAddress1: "required",
            personCity: "required",
            personPostalCode: {required: true, digits: true, rangelength: [5,5]},
            personCellAreaCode: {required: true, digits: true, rangelength: [3,3]},
            personCellPhone: "required",
            personAreaCode: {required: true, digits: true, rangelength: [3,3]},
            personPhone: "required"
          },
          messages: {
            advertName: "Please specify your name",
            locationAddress1: "You must provide an Address",
            advertiserURL: {url: "Url must be in the format http://www.domain.com"},
            locationPostalCode: { required: "A Postal Code is required.", 
                                  digits: "Postal Code can only contain numbers.", 
                                  rangelength: "Must be 5 numbers."},
            locationAreaCode: { required: "An Area Code is required.", 
                                digits: "Area Code can only contain numbers.", 
                                rangelength: "Must be 3 numbers only."},
            locationPhone: "A Phone number is required.",
            username: "A username is required",
            first_name: "A first name is required",
            last_name: "A last name is required",
            person_email: {required: "A valid email is required", 
                           email: "Please enter a valid email. name@domain.com"},
            personAddress1: "You must provide an Address",
            personCity: "Please provide a city.",
            personPostalCode: { required: "A Postal Code is required.", 
                                   digits: "Postal Code can only contain numbers.", 
                                   rangelength: "Must be 5 numbers."},
            personCellAreaCode: { required: "An Area Code is required.", 
                                  digits: "Area Code can only contain numbers.", 
                                  rangelength: "Must be 3 numbers only."},
            personCellPhone: "A Phone number is required.",
            personAreaCode: { required: "An Area Code is required.", 
                              digits: "Area Code can only contain numbers.", 
                              rangelength: "Must be 3 numbers only."},
            personPhone: "A Phone number is required."
          }
        });
   // Reset Password Widget
        $('#resetPassword').validate({
          rules:{
            oldPassword: 'required',
            newPassword: 'required',
            newConfirmPassword: 'required'
          },
          messages:{
            oldPassword: 'Please provide your old password.',
            newPassword: 'Please eneter a new password.',
            newConfirmPassword: 'Please confirm your new password.'
          }
        });
        // Add Member Widget
          $('#addMember').validate({
            rules: {
              name: {lettersonly: true},
              email: {email: true},
              memberAreaCode: {required: true, digits: true, rangelength: [3,3]},
              memberPhone: {required: true, digits: true, rangelength: [7,7]}
            },
            messages: {
              name: {lettersonly: "Letters only please."},
              email: {email: "Please enter a valid email. name@domain.com"},
              memberAreaCode: {required: "You must provide an area code.", digits: "Can only contain numbers.", rangelength: "Can only be 3 characters long."},
              memberPhone: {required: "Please provide a valid phone number.", digits: "can only contain numbers.", rangelength: "7 numbers only."}
            }
          });
          //Index Request Info Form
           $('#request_info_form').validate({
             rules: {
               businessName: 'required',
               contactEmail: {required: true, email: true},
               contactPhone: {required: true, digits: true, rangelength: [10,10]},
               infoRequestMessage: 'required'
             },
             messages: {
               businessName: 'Please enter a Business Name.',
               contactEmail: {required: 'An email address is required.'},
               contactPhone: {required: 'A phone number is required.', digits: 'Can contain only numbers.', rangelength: 'must be 10 digits.'},
               infoRequestMessage: 'Please enter a message.'
             }
           });
});
//end validations