
$(document).ready(function() {


    //FORM INLINE VALIDATION
    $(".form :input").blur(
		function() {
		    //validateField(this);
		    $(this).parent("span").parent("td").siblings("td").children("span").children("p.hint").hide();
		    $(this).parent("span").parent("td").siblings("td").children("span").children("p.stand-hint").hide();
		}

	);

    $(".form :input").focus(
		function() {
		    if (!($(this).parent("span").siblings("p").hasClass("warning"))) {
		        $(this).parent("span").parent("td").siblings("td").children("span").children("p.hint").fadeIn();
		        $(this).parent("span").parent("td").siblings("td").children("span").children("p.stand-hint").fadeIn();
		    }
		    if ($(this).hasClass("terms")) {
		        removeWarningText("td.terms");
		    }
		}
	);

    $(".req").blur(
		function() {
		    if ($(this).hasClass("req")) {
		        validateField(this);
		        $(this).parent("span").parent("td").siblings("td").children("span").children("p.hint").hide();
		    }
		}
	);

    //FIXATIVE/CLEANSER FIELD TOGGLE
    $(".fixative-opts").hide();
    $(".cleanser-opts").hide();

    $("input[id='c_fixative_user_y']").click(
		function() {
		    $(".fixative-opts").show();
		}
	);
    $("input[id='c_fixative_user_n']").click(
		function() {
		    $(".fixative-opts").hide();
		}
	);

    $("input[id='c_cleanser_user_y']").click(
		function() {
		    $(".cleanser-opts").show();
		}
	);
    $("input[id='c_cleanser_user_n']").click(
		function() {
		    $(".cleanser-opts").hide();
		}
	);

    //STANDALONE FORM SUBMISSION

    $("a.submit-forumpost").click(
        function() {
            PostComment();
            return false;
        }
	);
    $(".form a.c-submit").click(
        function() {
            if (formSubmit()) __doPostBack('', '');
            return false;
        }
	);
    $(".form a.j-submit").click(
        function() {
            if (formJoin()) {
                if (formSubmit()) __doPostBack('RegisterButton', '');
            }
            return false;
        }
	);

    $(".form a.p-submit").click(
        function() {
            formPost(true);

            return false;
        }
	);

    $(".submit-forumcomment").click(
        function() {
            PostComment();

            return false;
        }
	);

    $(".email-check-submit").click(
        function() {
            formSignInReg(true);

            return false;
        }
	);

    //	$(".email-check-submit-coupon").click(
    //        function() {
    //        	formSignInRegCoupon(true);

    //        	return false;
    //        }
    //	);


});


function closeOverlay() {
    $('#overlays').empty();
    $(".form :input").attr("disabled", "");
    return false
}




//FORM SUBMISSION

function formSubmit() {

  
    resetSubmission();

    $(".form :input").each(
				function() {
				    if ($(this).hasClass("req")) {
				        validateField(this, true);
				    }
				}
			);

    if (fieldErrors == 0) {

        //submit data, return sccess/failure message
        //addSubmitSuccess("Thank you. Your message has been sent to Poligrip.");

    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }

    return (fieldErrors==0);

}
function trackAmountTimesPlayed(){
    var watchedArticle = $("h1.alt2").text();
    $.post(site_root + "ajax/VideoWatchCounter.aspx", 
	        { 
	            watchedArticle: watchedArticle 
	         },
		        function(data) {
		        }
	        );
		
		return false;
}


function formSubmitOverlayForgotPassword() {
        resetSubmission();
        fieldErrors = 0;
        validateField("#c_emailaddress", true);
       if (fieldErrors == 0) {
		        var email = $('#c_emailaddress').attr('value');
		        $.post(site_root + "ajax/ForgottenPassword.aspx",
				{
				    email: email
				},
					function(data) {
					    if (data.toString().toLowerCase() == "true") {
					        $(".forgot").slideDown("500");
					        //submit data, return sccess/failure message
					        addSubmitSuccess("Your message has been sent to " + email + ".");
					    } else {
					        addWarning("#c_emailaddress", "Email not recognised");
					        addSubmitWarning();
					        $(".form :input").attr("disabled", "");
					        $(".loader").hide();
					        $(".ok").hide();
					    }
					}
				);
        
        
      
    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }
    
    return false;

}


//function formSignInReg() {
//    
//    resetSubmission();

//    $(".form :input").each(
//				function() {
//				    if ($(this).hasClass("req")) {
//				        validateField(this, true);
//				    }
//				}
//			);
//     if (fieldErrors == 0) {
//		        var email = $('#c_email').attr('value');
//		        var userPassword = $('#c_password').attr('value');
//		        var couponRegistration = 'False';
//				$.post(site_root + "ajax/UserLogin.aspx", 
//				{ 
//				    email: email, 
//				    password: userPassword,
//				    couponRegistration : couponRegistration
//				 },
//					function(data) {
//						if(data.toString().toLowerCase() == "true") {
//							//They are logged in
//							window.location.reload(true);
//						} else {
//							//They are not logged in
//							addWarning("#c_password", "Password not recognised");
//				            addSubmitWarning();
//							$(".form :input").attr("disabled", "");
//				            $(".loader").hide();
//						}
//					}
//				);
//        
//        
//        //submit data, return sccess/failure message
//        addSubmitOverlaySuccess("Your message has been sent to [EMAILS].");
//    } else {
//        $(".form :input").attr("disabled", "");
//        $(".loader").hide();
//    }
//    
//    return false;

//}

//function formSignInRegCoupon() {
//    
//    resetSubmission();
//    $(".form :input").each(
//				function() {
//				    if ($(this).hasClass("req")) {
//				        validateField(this, true);
//				    }
//				}
//			);
//     if (fieldErrors == 0) {
//		        var email = $('#c_email').attr('value');
//		        var userPassword = $('#c_password').attr('value');
//		        var couponRegistration = 'True';
//				$.post(site_root + "ajax/UserLogin.aspx", 
//				{ 
//				    email: email, 
//				    password: userPassword,
//				    couponRegistration : couponRegistration
//				 },
//					function(data) {
//						if(data.toString().toLowerCase() == "true") {
//							//They are logged in
//							window.location.reload(true);
//						} else {
//							//They are not logged in
//							window.location=site_root + "join/";
//						}
//					}
//				);
//        
//        
//        //submit data, return sccess/failure message
//        addSubmitOverlaySuccess("Your message has been sent to [EMAILS].");
//    } else {
//        $(".form :input").attr("disabled", "");
//        $(".loader").hide();
//    }
//    
//    return false;

//}

function formJoin() {

    resetSubmission();

    $(".form :input").each(
				function() {
				    if ($(this).hasClass("req")) {
				        validateField(this, true);
				    }
				}
			);
	
	
	 var terms_checked = $(".terms:checked").length;
				if (terms_checked == 0) {
					$("td.terms").children("span").addClass("warning");
					if (!($("td.terms").children("span").siblings("p").hasClass("warning"))) {
						$("td.terms").children("span").after("<p class='warning'>You must agree to the terms &amp; conditions</p>");
					}
					if (fieldErrors == 0) {
						addSubmitWarning();
						fieldErrors = 1;
					}
				} else {
					removeWarningText("td.terms", 1);
		    }
	

    if (fieldErrors == 0) {
                var title = $('#c_title').attr('value');
		        var firstName = $('#c_firstname').attr('value');
		        var lastName = $('#c_lastname').attr('value');
		        var screenName = $('#c_screenname').attr('value');
		        var gender =  $('#c_gender').attr('value');
		        var resident =  $('#c_resident').attr('value');
		        var day = $('#day').attr('value');
		        var month = $('#c_month').attr('value');
		        var year = $('#year').attr('value');
		        var email = $('#c_emailaddress').attr('value');
		        var password = $('#Password1').attr('value');
		        var thankYouPage = $('#urlThankyou').attr('value');
		        var poligripOptin;
		        var poligripOptin_checked = $("#c_subject_1:checked").length;
		        if (poligripOptin_checked == 1) {
		            poligripOptin = true;
		        }
		        else {
		            poligripOptin = false;
		        }
		        var gskOptin;
		        var gskOptin_checked = $("#c_subject_2:checked").length;
		        if (gskOptin_checked == 1) {
		            gskOptin = true;
		        }
		        else {
		            gskOptin = false;
		        }
		        var fittDay = $('#fittDay').attr('value');
		        
		        var fittMonth = $('#fittMonth').attr('value');
		        var fittYear = $('#fittYear').attr('value');
		        var DentureTime = $('#c_denture_use').attr('value');
		        var fixativeUser;
		        var fixativeUser_checked = $("#c_fixative_user_y:checked").length;
		        if (fixativeUser_checked == 1) {
		            fixativeUser = true;
		        }
		        else {
		            fixativeUser = false;
		        }
		        
		        var Fixodent;
		        var Fixodent_checked = $("#c_fixative_fixodent:checked").length;
		        if (Fixodent_checked == 1) {
		            Fixodent = true;
		        }
		        else {
		            Fixodent = false;
		        }
		        
		        var Poligrip;
		        var Poligrip_checked = $("#c_fixative_poligrip:checked").length;
		        if (Poligrip_checked == 1) {
		            Poligrip = true;
		        }
		        else {
		            Poligrip = false;
		        }
		        var Seabond;
		        var Seabond_checked = $("#c_fixative_seabond:checked").length;
		        if (Seabond_checked == 1) {
		            Seabond = true;
		        }
		        else {
		            Seabond = false;
		        }
		        var Other;
		        var Other_checked = $("#c_fixative_other:checked").length;
		        if (Other_checked == 1) {
		            Other = true;
		        }
		        else {
		            Other = false;
		        }
		        
		        var CleanserUser;
		        var CleanserUser_checked = $("#c_cleanser_user_y:checked").length;
		        if (CleanserUser_checked == 1) {
		            CleanserUser = true;
		        }
		        else {
		            CleanserUser = false;
		        }
		        var CremeBrand;
		        var CremeBrand_checked = $("#c_cleanser_dentucreme:checked").length;
		        if (CremeBrand_checked == 1) {
		            CremeBrand = true;
		        }
		        else {
		            CremeBrand = false;
		        }
		        var SteradentBrand;
		        var SteradentBrand_checked = $("#c_cleanser_steradent:checked").length;
		        if (SteradentBrand_checked == 1) {
		            SteradentBrand = true;
		        }
		        else {
		            SteradentBrand = false;
		        }
		        var OtherBrand;
		        var OtherBrand_checked = $("#c_cleanser_other:checked").length;
		        if (OtherBrand_checked == 1) {
		            OtherBrand = true;
		        }
		        else {
		            OtherBrand = false;
		        }
				
				
				
		        var comments = $('#c_comments').attr('value');


		        return true;
//				$.post(site_root + "ajax/UserRegister.aspx", 
//				{ 
//				    title: title, 
//				    firstName : firstName,
//				    lastName : lastName,
//				    screenName : screenName,
//				    gender : gender,
//				    day : day,
//				    month : month,
//				    year : year,
//				    email : email,
//				    gskOptin :gskOptin, 
//				    poligripOptin : poligripOptin, 
//				    password : password, 
//				    fittDay: fittDay,
//				    fittMonth : fittMonth,
//				    fittYear : fittYear,
//				    wearTime : DentureTime, 
//				    fixativeUser :fixativeUser,
//				    Fixodent : Fixodent,  
//				    Poligrip : Poligrip, 
//				    Seabond : Seabond,  
//				    Other : Other,
//				    CleanserUser : CleanserUser, 
//				    CremeBrand :CremeBrand, 
//				    SteradentBrand : SteradentBrand, 
//				    OtherBrand : OtherBrand,
//				    comments :comments,
//				    resident : resident
//				 },
//					function(data) {
//					   if (data == "True")
//		                    window.location = thankYouPage;
//		                    //addSubmitSuccess("Your profile has been created. An email has been sent" + email + " confirming your account details. You can now receive future Poligrip news and offers and participate in the forum.");
//							//Relocate to homepage after 10 seconds.
//							//setTimeout(function() {window.location = site_root;}, 10000);
//		                else if ( data == "Exist")
//		                    addSubmitEmailWarning("Your email already exists");
//		                else if ( data == "False")
//		                    addSubmitWarning("There is a technical problem, please try again.");
//					}
//					
//				);
        //submit data, return sccess/failure message
		        
		    

    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }

    return false;

}

function formPost() {

    resetSubmission();

    $(".form :input").each(
				function() {
				    if ($(this).hasClass("req")) {
				        validateField(this, true);
				    }
				}
			);

    if (fieldErrors == 0) {
                var Title = $('#c_discussion').attr('value');
		        var Message = $('#c_post').attr('value');
		        var SectionID = $('#SectionID').attr('value');
		        var thankYouPage = $('#urlThankyou').attr('value');
		        $.post(site_root + "ajax/AddForumPost.aspx",
				{
				    Title: Title,
				    Message: Message,
				    SectionID: SectionID
				},
					function(data) {
					    if (data == "True") {
					        window.location = thankYouPage;
					    } else {
					        addSubmitServerError(false);
					        $(".loader").hide();
					    }
					}
				);
        
       

    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }

    return false;

}

function PostComment() {
    resetSubmission();

    $(".form :input").each(
				function() {
				    if ($(this).hasClass("req")) {
				        validateField(this, true);
				    }
				}
			);
    if (fieldErrors == 0) {
                var Comment = $('#post-comments').attr('value');
                var Title = $('#titleh1').text();
                var thankYouPage = $('#urlThankyou').attr('value');
                
                $.post(site_root + "ajax/AddPostComment.ashx",
				{
				    Title: Title,
				    Comment: Comment
				},
					function(data) {
					    if (data == "True") {
					        window.location = thankYouPage;
					    } else {
					        addSubmitServerError(false);
					        $(".loader").hide();
					    }
					}
				);
        
       

    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }

    return false;

}



function formSubmitOverlay(hideMessage) {
    
    resetSubmission();

    $(".form :input").each(
				function() {
				    if ($(this).hasClass("ovl")) {
				        validateField(this, true, hideMessage);
				    }
				}
			);


    if (fieldErrors == 0) {
                var friendEmail = $('#c_emailaddress').attr('value');
		        var yourName = $('#c_name').attr('value');
		        var yourEmail = $('#c_own-email').attr('value');
		        var message = $('#c_message').attr('value');
				$.post(site_root + "ajax/ReferFriend.aspx", 
				{ 
				    friendEmail: friendEmail, 
				    yourEmail : yourEmail,
				    message : message,
				    yourName : yourName
				 },
					function(data) {
						if(data.toString().toLowerCase() == "sent") {
							addSubmitOverlaySuccess("Your message has been sent to "+escape(data));
							setTimeout(function(){closeOverlay();}, 1500);
						}  else {
							addSubmitOverlayWarning("Sorry, there has been a technical problem. Please try again later.");
						}
					}
				);
        
        
        //submit data, return sccess/failure message
							
    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }
    
    return false;

}


function formSubmitOverlayLogin(hideMessage/*, redirect*/) {
    resetSubmission();

    $(".form :input").each(
				function() {
				    if ($(this).hasClass("ovl")) {
				        validateField(this, true, hideMessage);
				    }
				}
			);

    if (fieldErrors == 0) {
   
		        var email = $('#c_emailaddress').attr('value');
		        var userPassword = $('#c_password').attr('value');

		        return true;

//				$.post(site_root + "ajax/UserLogin.aspx", 
//				{ 
//				    email: email, 
//				    password: userPassword,
//				    couponRegistration : 'False'
//				 },
//					function(data) {
//						if(data.toString().toLowerCase() == "true") {
//							//They are logged in
//							if(redirect == "forum") {
//								window.location = site_root + "forum/create-discussion/";
//							} else {
//								window.location.reload(true);
//							}
//							
//						} else {
//							//They are not logged in
//							addWarning("#c_password", "Password not recognised");
//				            addSubmitWarning();
//							$(".form :input").attr("disabled", "");
//				            $(".loader").hide();
//						}
//					}
//				);
        
        
        //submit data, return sccess/failure message
        addSubmitOverlaySuccess("Your message has been sent to [EMAILS].");
    } else {
        $(".form :input").attr("disabled", "");
        $(".loader").hide();
    }
    
    return false;

}

//DATE OF BIRTH VALIDATION
$("input.date").css("color", "#999");
$("input.year").css("color", "#999");

$("input.date").focus(
		function() {
		    var field_color = $(this).css("color");
		    if (field_color == "rgb(153, 153, 153)" || field_color == "#999") {
		        $(this).attr("value", "");
		        $(this).css("color", "#000");
		    }
		}
	);

$("input.year").focus(
		function() {
		    var field_color = $(this).css("color");
		    if (field_color == "rgb(153, 153, 153)" || field_color == "#999") {
		        $(this).attr("value", "");
		        $(this).css("color", "#000");
		    }
		}
	);

function resetSubmission() {
	$(".loader").show();
	$(".form :input[type=submit]").attr("disabled","disabled");
	removeSubmitNotices();
	fieldErrors = 0;
}

function addWarning(field, message) {
	if( !($(field).parent("span").hasClass("warning")) ) {
		$(field).parent("span").addClass("warning");
		$(field).parent("span").after("<p class='warning'>" + message + "</p>");
	}
}
function removeWarningText(field, clear) {
    removeWarningText(field, clear, true);
}


function removeWarningText(field, clear, showOkMessageIfOk) {
    if ($(field).children("span").siblings("p").hasClass("warning")) {
        $(field).children("span").removeClass("warning");
        $(field).children("span").siblings("p.warning").remove();
        if (showOkMessageIfOk) {
            if (!clear) {
                $(field).children("span").after("<span class='ok'></span>");
                $(field).children("span").siblings("span.ok").animate({ opacity: 1.0 }, 1500).fadeOut(300);
            }
        }
    }
}

function removeWarning(field, clear) {
	if( $(field).parent("span").hasClass("warning") ) {
		$(field).parent("span").removeClass("warning");
		$(field).parent("span").siblings("p.warning").remove();
		if(!clear) {
			$(field).parent("span").after("<span class='ok'></span>");
			$(field).parent("span").siblings("span.ok").animate({opacity: 1.0}, 1500).fadeOut(300);
		}
	}
}

function addSubmitServerError(hideMessage) {
    if ($("p.warning-notice").length < 1 && hideMessage != true) {
        $("p.intro").after("<p class=\"warning-notice\"><strong>Oh dear. We encountered a problem. There was a problem processing your request. Please try again or come back later.</strong></p>");
    }
    if ($("p.warning-notice-compact").length < 1 && hideMessage != true) {
        $("p.intro-compact").after("<p class=\"warning-notice-compact\"><strong>Oh dear. We encountered a problem. There was a problem processing your request. Please try again or come back later.</strong></p>");
    }
}

function addSubmitWarning(hideMessage) {
    if ($("p.warning-notice").length < 1 && hideMessage != true) {
        $("p.intro").after("<p class=\"warning-notice\"><strong>Oh dear. We encountered a problem. Please correct the items highlighted and try submitting the form again.</strong></p>");
    } 
    if ($("p.warning-notice-compact").length < 1 && hideMessage != true) {
        $("p.intro-compact").after("<p class=\"warning-notice-compact\"><strong>Oh dear. We encountered a problem. Please correct the items highlighted and try submitting the form again.</strong></p>");
    }
    
}

function addSubmitEmailWarning(hideMessage) {
    if ($("p.warning-notice").length < 1 && hideMessage != true) {
	    $("p.intro").after("<p class=\"warning-notice\"><strong>Your email address is already being used. Please enter an alternative email address and try again.</strong></p>");
		addWarning("#c_emailaddress", "This information is required");
    }
}

function addSubmitOverlayWarning() {
    if ($("p.warning-notice").length < 1) {
        $("p.intro").after("<p class=\"warning-notice\"><strong>Oh dear. We encountered a problem. Please correct the items highlighted and try submitting the form again.</strong></p>");
    }
}

function addNetworkWarning() {
	$("p.intro").after("<p class=\"warning-notice\"><strong>Whoops. The system had a bit of a hiccup. Please try again. If the problem persists, please <a href=\"http://www.poligrip.co.uk/contact/\">let us know about it</a>.</strong></p>");
}

function addSubmitSuccess(message) {
    
        $("p.intro").after("<p class=\"success-notice\"><strong>" + message + "</strong></p>");
 
}

function addSubmitOverlaySuccess(message) {
    $("p.overlay-intro").after("<p class=\"success-notice\"><strong>" + message + "</strong></p>");
}

function addSubmitSuccess(message) {
	$("p.intro").after("<p class=\"success-notice\"><strong>" + message + "</strong></p>");
}

function addSignInSuccess(message) {
    $("p.intro").after("<p class=\"success-signup\"><strong>" + message + "</strong></p>");
}

function removeSubmitNotices() {
	$("p.warning-notice").remove();
	$("p.success-notice").remove();
	$("p.success-signup").remove();
}



//FORM VALIDATION
function validateField(field, submit, hideMessage) {
	var field_type = $(field).attr("class").substr(4);
	var field_value = $(field).attr("value");
	var field_subType = "";
	
	//alert("Validating " + field_type + ": " + field_value);
		
	switch(field_type)
	{
	    case "password":
	        var pFilter = /^\w+$/;
	        var passwordWithNumber = /[0-9]/;

	        if (!pFilter.test(field_value) || !passwordWithNumber.test(field_value) || field_value.length < 6) {
	            addWarning(field, "You password must be at least 6 characters long and must contain at least one number (0-9) ");
	            if (submit) {
	                if (fieldErrors == 0) {
	                    addSubmitWarning(hideMessage);
	                    fieldErrors = 1;
	                }
	            }
	        } else {
	            removeWarning(field);
	        }

	        break;
	    case "date":


	        if (!field_value || field_value == "Day") {
	            addWarning(field, "This information is required");
	            if (submit) {
	                if (fieldErrors == 0) {
	                    addSubmitWarning();
	                    fieldErrors = 1;
	                }
	            }
	        } else if ($("select.month").attr("value") != "~ Month ~" && $("input.year").attr("value") != "" && $("input.year").attr("value") != "Year") {


	            if (!DateValidation.isValidDate($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                removeWarning(field, 1);
	                addWarning(field, "You must enter a valid date");
	                if (submit) {
	                    if (fieldErrors == 0) {
	                        addSubmitWarning();
	                        fieldErrors = 1;
	                    }
	                }
	            } else {
	                removeWarning(field);

	                //alert('AGE OK');
	                if (field_subType == 'future') {
	                    //alert('validating future date');
	                    if (isInFuture($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                        removeWarning(field);
	                    } else {
	                        removeWarning(field, 1);
	                        addWarning(field, "Please enter a date in the future");
	                        if (submit) {
	                            if (fieldErrors == 0) {
	                                addSubmitWarning();
	                                fieldErrors = 1;
	                            }
	                        }
	                    }

	                } else {

	                    if (validateAge($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                        removeWarning(field);
	                    } else {
	                        removeWarning(field, 1);
	                        addWarning(field, "You must be over 18");
	                        if (submit) {
	                            if (fieldErrors == 0) {
	                                addSubmitWarning();
	                                fieldErrors = 1;
	                            }
	                        }
	                    }
	                }
	            }
	        }
	        break;

	    case "month":
	        if (!field_value || field_value == "~ Month ~") {
	            addWarning(field, "This information is required");
	            if (submit) {
	                if (fieldErrors == 0) {
	                    addSubmitWarning();
	                    fieldErrors = 1;
	                }
	            }
	        } else if ($("input.date").attr("value") != "" && $("input.date").attr("value") != "Day" && $("input.year").attr("value") != "" && $("input.year").attr("value") != "Year") {

	            if (!DateValidation.isValidDate($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                removeWarning(field, 1);
	                addWarning(field, "You must enter a valid date");
	                if (submit) {
	                    if (fieldErrors == 0) {
	                        addSubmitWarning();
	                        fieldErrors = 1;
	                    }
	                }
	            } else {
	                removeWarning(field);

	                if (field_subType == 'future') {
	                    //alert('validating date');
	                    if (isInFuture($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                        removeWarning(field);
	                    } else {
	                        removeWarning(field, 1);
	                        addWarning(field, "Please enter a date in the future");
	                        if (submit) {
	                            if (fieldErrors == 0) {
	                                addSubmitWarning();
	                                fieldErrors = 1;
	                            }
	                        }
	                    }

	                } else {


	                    if (validateAge($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                        removeWarning(field);
	                    } else {
	                        removeWarning(field, 1);
	                        addWarning(field, "You must be over 18");
	                        if (submit) {
	                            if (fieldErrors == 0) {
	                                addSubmitWarning();
	                                fieldErrors = 1;
	                            }
	                        }
	                    }
	                }
	            }
	        }
	        break;

	    case "year":
	        if (!field_value || field_value == "Year") {
	            addWarning(field, "This information is required");
	            if (submit) {
	                if (fieldErrors == 0) {
	                    addSubmitWarning();
	                    fieldErrors = 1;
	                }
	            }
	        } else if ($("input.date").attr("value") != "" && $("input.date").attr("value") != "Day" && $("select.month").attr("value") != "~ Month ~") {



	            if (!DateValidation.isValidDate($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                removeWarning(field, 1);
	                addWarning(field, "You must enter a valid date");
	                if (submit) {
	                    if (fieldErrors == 0) {
	                        addSubmitWarning();
	                        fieldErrors = 1;
	                    }
	                }
	            } else {
	                removeWarning(field);


	                var validationYear = parseInt($("input.year").attr("value"), 10);

	                var t = $("input.year").attr("value");
	                if (t.length == 4) {
	                    //alert("SUB TYPE="+field_subType);
	                    if ((validationYear > 1899) || (isNaN(validationYear))) {


	                        if (field_subType == 'future') {
	                            //alert('validating future date');
	                            if (isInFuture($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                                removeWarning(field);
	                            } else {
	                                removeWarning(field, 1);
	                                addWarning(field, "Please enter a date in the future");
	                                if (submit) {
	                                    if (fieldErrors == 0) {
	                                        addSubmitWarning();
	                                        fieldErrors = 1;
	                                    }
	                                }
	                            }

	                        } else {




	                            if (validateAge($("input.date").attr("value"), $("select.month").attr("value"), $("input.year").attr("value"))) {
	                                removeWarning(field);
	                            } else {
	                                removeWarning(field, 1);
	                                addWarning(field, "You must be over 18");
	                                if (submit) {
	                                    if (fieldErrors == 0) {
	                                        addSubmitWarning();
	                                        fieldErrors = 1;
	                                    }
	                                }
	                            }
	                        }
	                    } else {

	                        removeWarning(field, 1);
	                        addWarning(field, "Are you sure you are that old?");
	                        if (submit) {
	                            if (fieldErrors == 0) {
	                                addSubmitWarning();
	                                fieldErrors = 1;
	                            }
	                        }
	                    }
	                } else {
	                    removeWarning(field, 1);
	                    addWarning(field, "Please enter a 4 digit year");
	                    if (submit) {
	                        if (fieldErrors == 0) {
	                            addSubmitWarning();
	                            fieldErrors = 1;
	                        }
	                    }
	                }
	            }
	        }
	        break;
	
		case "email":
			var emailFilter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
			
			if(!emailFilter.test(field_value)) {
				addWarning(field, "Please enter a valid email address");
				if(submit) {
					if(fieldErrors == 0) {
					    addSubmitWarning(hideMessage);
						fieldErrors = 1;
					}
				}
			} else {
				removeWarning(field);
			}
			break;
           

        case "password-check":

            var first_pass = $("input.password").attr("value");

            var second_pass = $("input.password-check").attr("value");


            if (!field_value) {

                removeWarning(field, 1);

                addWarning(field, "This information is required");

                if (submit) {

                    if (fieldErrors == 0) {
                        addSubmitWarning(hideMessage);

                        fieldErrors = 1;

                    }
                }
            } else if (first_pass.length < 6) {
                removeWarning(field, 1);
                addWarning(field, "Your password must be at least 6 characters long");
                if (submit) {
                    if (fieldErrors == 0) {
                        addSubmitWarning();
                        fieldErrors = 1;
                    }
                }
            } else if (first_pass != second_pass) {
                removeWarning(field, 1);
                addWarning(field, "Your passwords don't match, please re-type");
                if (submit) {
                    if (fieldErrors == 0) {
                        addSubmitWarning();
                        fieldErrors = 1;
                    }
                }
            } else {
                removeWarning(field);
            }
            break;
    	
		default:
			if(!field_value || field_value == "~ Please Select ~") {
				addWarning(field, "This information is required");
				if(submit) {
					if(fieldErrors == 0) {
					    addSubmitWarning(hideMessage);
						fieldErrors = 1;
					}
				}
			} else {
				removeWarning(field);
			}
	}
}

//VALIDATE AGE
function validateAge(day, month, year) {

    var today = new Date();
    var d = day + "/" + month + "/" + year;
    d = d.split('/');
    var by = Number(d[2]);
    var bm = Number(d[1]) - 1;
    var bd = Number(d[0]);
    var bday = new Date(by, bm, bd)
    var age = 0;
    var dif = bday;

    while (dif < today) {
        var dif = new Date(by + age, bm, bd);
        age++;
    }
    age += -2;

    if (age > 17) {
        return true;
    } else {
        return false;
    }
}

DateValidation = {
    isValidDate: function(day, month, year) {
        if (typeof (month) == "undefined") {
            var dateParts = day.split("/");
            day = dateParts[0];
            month = dateParts[1];
            year = dateParts[2];
        }
        day = parseInt(day, 10);
        month = parseInt(month, 10);
        year = parseInt(year, 10);
        if (isNaN(day) || isNaN(month) || isNaN(year)) {
            return false;
        }
        if (year < 1 || year > 9999) {
            return false;
        }
        if (month < 1 || month > 12) {
            return false;
        }
        var daysInMonth = this._daysInMonth[month - 1];
        if (month == 2 && this.isLeapYear(year)) {
            daysInMonth++;
        }
        if (day < 1 || day > daysInMonth) {
            return false;
        }
        return true;
    },
    isLeapYear: function(year) {
        return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
    },
    _daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
};
