
var mcValidator = "";
var mcFormSubmitted = false;
var mcfCheckCookies = "";


function validate()
{
	// Initialize in field labels functionality
	jQuery("label").inFieldLabels();
	
	// Form Validation
	//var isFormValid = true; ******* This is not needed unless we turn custom messages back on ********

	mcValidator = $("#mcSharedForm").validate({
	    debug: true,
	    submitHandler: function(form) {
	        if (mcFormSubmitted == false) {
	            checkCaptcha();
	        }
	        if (mcFormSubmitted == true) {
	            form.submit();
	            $("#mcSharedForm").remove();
	            $("#loading").show();
	            mcFormSubmitted = false;
	            //setTimeout("checkForResponse()", 5000);
	        }

	    },
	    showErrors: function(errorMap, errorList) {

	        this.defaultShowErrors();
	        $('div.error').css('display', 'none');
	    },
	    invalidHandler: function(form, validator) {
	        //isFormValid = false; ***** Not needed unless using custom messages ********

	        $('#mcErrorPrompt').show();
	    },

	    errorElement: "div",
	    rules: {
	        txtFirstName: {
	            required: true,
	            namerules: true,
	            maxlength: 31
	        },
	        txtLastName: {
	            required: true,
	            namerules: true,
	            maxlength: 31
	        },
	        txtStreetAddress: {
	            required: true,
	            maxlength: 127,
	            addressrules: true
	        },
	        txtApartment: {
	            required: false,
	            addressrules: true
	        },
	        txtCity: {
	            required: true,
	            maxlength: 63,
	            cityrules: true
	        },
	        ddlState: {
	            required: true,
	            staterules: true
	        },
	        txtZipCode: {
	            required: true,
	            digits: true,
	            minlength: 5,
	            maxlength: 5
	        },
	        txtPhoneArea: {
	            required: true,
	            digits: true,
	            minlength: 3
	        },
	        txtPhonePrefix: {
	            required: true,
	            digits: true,
	            minlength: 3
	        },
	        txtPhoneSuffix: {
	            required: true,
	            digits: true,
	            minlength: 4
	        },
	        txtEmail: 'required email emailconfirm',
	        txtEmailConfirm: 'required email emailconfirm',
	        txtDOBMonth: 'birthdate digits',
	        txtDOBDay: 'birthdate digits',
	        txtDOBYear: 'birthdate digits',
	        chkOfficialRules: 'officialrules',
	        txtPackCode: 'packcode',
	        txtMobileArea: {
	            required: function(element) {
	                return $('#chkMobileSub').attr('checked');
	            },
	            minlength: 3,
	            digits: true
	        },
	        txtMobilePrefix: {
	            required: function(element) {
	                return $('#chkMobileSub').attr('checked');
	            },
	            minlength: 3,
	            digits: true
	        },
	        txtMobileSuffix: {
	            required: function(element) {
	                return $('#chkMobileSub').attr('checked');
	            },
	            minlength: 4,
	            digits: true
	        },
	        captchaText: {
	            required: true
	        },
	        Magazine: {
	            required: true
	        }
	    }

	});
	
	// Custom validation rules
	$.validator.addMethod("namerules", function(value, element) {
		return /^[a-zA-Z0-9\-' ]+$/.test(value);
	}, '');
	
	$.validator.addMethod("addressrules", function(value, element) {
		if(element.name == 'txtApartment') {
			if(element.value.length > 0) {
					return /^[a-zA-Z0-9. ]+$/.test(value);
			} else {
				return true;
			}
		} else {
			return /^[a-zA-Z0-9. ]+$/.test(value);
		}
	}, '');
	
	$.validator.addMethod("cityrules", function(value, element) {
		return /^[a-zA-Z0-9.\-\' ]+$/.test(value);
	}, '');
	
	$.validator.addMethod("emailconfirm", function(value, element) {
		email1 = document.getElementById('txtEmail').value;
		email2 = document.getElementById('txtEmailConfirm').value;
		if (email1 == email2) {
			return true;
		}
		return false;
	}, '');
	
	$.validator.addMethod("birthdate", function(value, element) {
		month = document.getElementById('txtDOBMonth').value;
		day = document.getElementById('txtDOBDay').value;
		year = document.getElementById('txtDOBYear').value;

		if (checkdate(month,day,year)) {
		  return true;
		}
		return false;
	}, '');
	
	$.validator.addMethod("officialrules", function(value, element) {
		if($('#chkOfficialRules')) {
			if ($('#chkOfficialRules').attr('checked')) {
			    //$('#chkOfficialRules label').css("color", "ffffff");
				return true;
			} else {
			$('label[for="chkOfficialRules"]').css("color", "red");
				return false;
			}
		} else {
			return true;
		}
    }, '');

    $.validator.addMethod("packcode", function(value, element) {
        if ($('#txtPackCode')) {
            mcfPackCode = document.getElementById('txtPackCode').value;
            mcfFormState = $('#ddlState option:selected').val();
            mcfPackCode = mcfPackCode.toUpperCase();
            mcfSourceId = $("#sourceID").val();

            switch (mcfSourceId) {
                case ("64R"):
                    if (mcfFormState == "California" && mcfPackCode == "RESOLUTIONS") {
                        return true;
                    }
                    
                    if ((mcfFormState == "Indiana" || mcfFormState == "West Virginia") && mcfPackCode == "H3737H") {
                        return true;
                    }

                    if (mcfFormState != "California" && mcfPackCode == "FWDY6K") {
                        return true;
                    }

                    if (mcfFormState != "California") 
                    {
                        if ((RGlobalPackCodeList.indexOf(mcfPackCode + ",") != -1) &&  mcfPackCode.length > 0)
                        {
                            return true;
                        } 
                        else {
                            return false;
                        }
                    }
                break;
				case("MLM"):
					if ((mcfFormState == "Indiana" || mcfFormState == "Texas" || mcfFormState == "West Virginia") && mcfPackCode == "MLRACE") {
                        return true;
                    }
					if(mcfPackCode == "34100 57306" || mcfPackCode == "34100 57340" || mcfPackCode == "34100 57341"|| mcfPackCode == "3410057306" || mcfPackCode == "3410057340" || mcfPackCode == "3410057341")
					{
						return true;
					}
					else
					{
						return false;
					}
				break;
               
               default:
			    return true;
               
            }
        }
        else {
            return true;
        }
    }, '');

    /*$.validator.addMethod("captcha", function(value, element) {
        if ($('#captchaText')) {
            checkCaptcha();
            
            if (captchaValid == false) {
                return false;
            }
            else {
                captchaValid = false;
                return true;
            }
        } else {
            return true;
        }
    }, '');*/

	$.validator.addMethod("staterules", function(value, element) {
	    if ($('#ddlState')) {
	        if ($('#ddlState option:selected').val() != 0) {
	            $('#ddlState').css("background", "#ffffff");
	            return true;
	        }
	        else {
	            $('#ddlState').css("background", "#fd9a9a");
	            return false;
	        }
	    }
	    else {
	        return true;
	    }
	}, '');
	
	// Mobile confirmation and validation
	$("#chkMobileSub").bind("click", function(){
		if ($('#chkMobileSub').attr('checked')) {
			$('#mcMobileConfirmation').show();
		} else {
			document.getElementById('txtMobileArea').value = '';
			document.getElementById('txtMobilePrefix').value = '';
			document.getElementById('txtMobileSuffix').value = '';
			$('#mcMobileInput').hide();
		}
	});

	$("#accept").bind("click", function(){
		$('#mcMobileConfirmation').hide();
		$('#mcMobileInput').show();
	});

	$("#decline").bind("click", function(){
		$('#chkMobileSub').attr('checked','');
		$('#mcMobileConfirmation').hide();
		document.getElementById('txtMobileArea').value = '';
		document.getElementById('txtMobilePrefix').value = '';
		document.getElementById('txtMobileSuffix').value = '';
		$('#mcMobileInput').hide();
});
	
	
	
	/*
	******* This function is used to show and hide custom error messages. May be added back at a later date.
	// Show/Hide Error Messages
	$('input').bind('focus',function() {
		$('div.error').css('display','none');
		if(!isFormValid) {
			$('div.error[htmlfor="' + $(this).attr('id') + '"]').css('display','block');
			$('div.error[htmlfor="chkOfficialRules"]').css('display','block');
		} else {
			$('div.error').css('display','none');
		}
	});
	*/

}

//show requested pack code
function getCode() {
    $('#packPopUp').show();
    $("#codeClose").bind("click", function() {
        $('#packPopUp').hide();
    });
}

// Check if a string is a valid date and birthdate is over 21
function checkdate(m,d,y) {
	var now = new Date(); // current date from clients system
	var yc = now.getYear(); // get current year
	var age;
	
	if (yc < 2000) yc = yc + 1900; // in case the year is < 2000
	
	var yl=yc - 120; // least year to consider
	var ym=yc; // most year to consider

	if (m<1 || m>12) return(false);
	if (d<1 || d>31) return(false);
	if (y<yl || y>ym) return(false);
	if (m==4 || m==6 || m==9 || m==11)
	if (d==31) return(false);
	if (m==2) {
  	var b=parseInt(y/4);
  	if (isNaN(b)) return(false);
  	if (d>29) return(false);
  	if (d==29 && ((y/4)!=parseInt(y/4))) return(false);
	}
	
	tday = now.getDate();
	tmo = now.getMonth();
	tyr = now.getFullYear();
	
	if((tmo > m)||(tmo==m & tday>=d)) {
		age = y;
	} else {
		age = parseInt(y) + 1;
	}
	age = tyr - age
	
	if(age < 21) {
		return false;
	}
	return(true);
}

function checkCaptcha() {
    
    
        $("#btnSubmit").attr("disabled", "disabled");

        var fullUrl = "http://registration.millercoors.com/CheckCaptcha.aspx?framework=" + mcfFrameworkName + "&entered=" + document.getElementById('captchaText').value + "&code=" + mcfCaptchaKeyCode;
        var noCacheIE = '&noCacheIE=' + (new Date()).getTime();
        var headLoc = document.getElementsByTagName("head").item(0);
        mcfScriptCount += 1;
        // Create script object
        var scriptObj = document.createElement("script");
        scriptObj.setAttribute("type", "text/javascript");
        scriptObj.setAttribute("charset", "utf-8");
        scriptObj.setAttribute("src", fullUrl + noCacheIE);
        scriptObj.setAttribute("id", mcfScriptCount);
        // Append script object to document head
        headLoc.appendChild(scriptObj);
    
}

function isCaptchaValid() {
    if (captchaValid == true) {
        $("#captchaText").removeClass("error");
        $("#captchaText").addClass("valid");
        clearInterval(captchaInterval);

        if ($("#mcSharedForm").valid() == true) {
            $("#mcSharedForm").submit();
            
        }
        mcintervalSet = false;
    }
    else {
        if (mcintervalSet == false) {
            captchaInterval = setInterval("isCaptchaValid()", 100);
            mcintervalSet = true;
        }
    }
}


function getSuccessVars(url)
{
    var link = new Array();
    var link = url.split("?");

    var qrStr = link[1];


    //var spQrStr = qrStr.substring(1);

    var spQrStr = qrStr;

    var arrQrStr = new Array();
    // splits each of pair
    var arr = spQrStr.split("&");

    for (var i = 0; i < arr.length; i++) {
        // splits each of field-value pair
        var index = arr[i].indexOf("=");
        var key = arr[i].substring(0, index);
        var val = arr[i].substring(index + 1);
        arrQrStr[key] = val;
    }



    mcfSuccess(arrQrStr["mcfResponse"], arrQrStr["mcfSelectedState"], arrQrStr["magazine"]);
}

RGlobalPackCodeList = "6DK6R6,9PHYR6,9W66PW,YGDHGH,F96T6G,N974CT,46477J,3R7664,WCP6HH,R473FR,94DCG7,WMWTDD,KEPR46,PRJE9J,7E6GNW,9E4M7K,43J9PY,KC9MXD,7Y94J6,G74PJD,DM9YT9,T9JEKF,47C6P9,M3F6N6,Y77743,466F7D,364Y73,76673P,673444,9N9GA3,E3P6W9,NW99J4,76447C,D463F6,9Y6GH4,EP63T7,4GP63E,T669N6,9NW7FP,63TF67,6G6777,76P796,6KG6FP,AA6747,4HJTM7,WD7TE7,P37MEA,7GRKJR,H3TDFK,K63764,4X99T7,6MGNPE,7JTH9X,Y7X7JK,9R7HGM,NXP6FF,396XW7,J7JPGT,PD6CT7,H7KKC3,X44737,K446G3,6AW347,C4JC74,YMD33K,76TKA7,NRPP4Y,N47KP7,RGJRKW,69M3RK,76EP77,GW94JK,3HA6J6,JKWGGR,3339WD,36AE37,RX694T,769Y7D,7DJ374,74D66P,TH97EW,6W4FPM,DK4CKW,7C4WCR,73XRM7,6H4PDT,T94CKW,R6JWX4,96W4M6,6X4FE4,9P47NH,46HJFM,6T6JD6,HTCTTY,TGTR4E,6M7EE7,63XC76,T64F7R,9XTX76,33WGWG,6KDE37,74N7WC,KGDKA4,7MNCT4,4M7H33,X44NK4,HMK6JH,CECTJ6,4MC6PH,7K7TWJ,9646WN,777YD6,TCD4XN,FKDEDK,346W9Y,667A7X,3K46YN,74JNRN,4KM3M4,H74TMK,3Y9WK6,7THDEJ,4TM6J7,CHNX66,6K3G7T,MFY7HY,7W7WX9,4CGD7R,7W66T4,9D6J6A,K44MM9,666676,346P76,44TGKT,63JR74,6F67H6,R7M6PD,GF37KN,7E49GE,4FWG46,6P7396,34R7XC,Y7NP9F,76MT37,97YGMD,PJK39Y,JE46RF,9XG4WM,66FN66,9PPC4F,M77646,697647,XFWGWD,4NTH73,9CWY34,4H33XX,7G777Y,R94K74,P77MPM,6E3M73,NM7M4W,7X497N,46W7N7,74HMGK,JR76MT,T3MP4E,4ENHRR,3PY444,7N64RH,7CFHCM,44HK3M,CNGP7J,4JNNM6,K46M79,46GEY4,9TDC46,6K6H3N,79XDDH,7D6NWT,3N6646,G7747W,GD444C,A3EW77,9DJ9JW,749G3M,994C3F,9PF379,DNX6NR,NEX7J3,34JTKH,X93P4E,R9Y9Y3,M9GJ7W,9EP4P7,6F6EXR,7DDW47,WJH7PP,T74946,TP6M9H,77443Y,NNC4CW,WP7J64,6EJCHC,N7394F,444R46,N7464C,766GY6,TH3E37,WN4464,9N47DT,7D6G79,9C3HJW,JG7643,4XE6WK,CJCA6K,776R7W,96MEF3,PKFKR4,NG64N4,N44YF4,79KKMM,6P7W67,6XPD7H,467R44,3N4FD6,6Y44GF,M49733,77R777,6KGW77,73N46X,64KC4N,HF666N,H6JMDM,J47JRN,4R46K4,6473F9,MMME6M,43X76C,4D3C94,DXH99K,4W7H7H,X4HKCM,9FTFG7,7644F6,E64JWG,6PPC76,RT46RE,7TCJD7,6WNN4H,4DNHDG,4KJ3Y4,77JG66,M3R366,476M3A,7W6GT7,XHN96G,7R7PMF,4D6333,7EP43H,WM6J4C,963P43,WNPJ47,NN444X,NN7GN6,374F37,W467RA,4MRGFK,J4X9MJ,ERGK7P,G69677,7M6T69,4W74X7,EGGG76,P34WCG,646R64,CR93M7,WN7X77,6Y7NH6,HA7K7N,KW64F4,JK6734,T37P64,R74J43,K9XA66,6634N7,E66HK4,F97N74,77MK7A,4ANHTG,G6DC46,D6JAKW,7H4DF4,47D7E7,W9739N,37P3C3,3ER4KG,W74774,T474EY,4P4J4G,P467WR,E74C3C,MW4TRJ,M4F64T,T767WH,963J64,73WH69,9RC77F,649R79,CE97Y3,4J79E6,3D4AC7,6E746K,R3C4D6,K473JJ,6CD743,C3MMR7,YM4G47,FPP6XW,37GG63,797WN9,6RX74J,9EGHH6,4E9C77,7X44P6,7R66W7,9DY6RK,TM6F67,MPKP44,37D937,RGCK9K,TH46JE,N764F4,4646PA,X3NGJ4,7X34NK,KGNX64,HAFFD4,976W76,GGNA6W,969E96,EG4XW9,NHDEDP,RPX4J7,7TF6YG,7KRR37,4ED7D7,D976F4,6D494W,97CF63,4P4W36,474FWX,M3MD4K,TEMW97,3949T4,73N3KJ,K4X6HJ,944464,47KM64,MGP673,E4A9JW,46KE69,6H7DWT,MR6ANY,W4MGJE,736744,JA7H3T,P34N33,666993,6EM334,493HJ6,KR3NP9,3ER74M,74E6R3,R74GE3,M6WM33,RGP73F,CX76W7,G9TC47,A74C7N,JD6XC4,YK3793,734967,44X6CG,4MDCM4,TNPAFY,P3WJMH,NM97EE,RAH6T6,7AD476,EX97X4,G7TE4H,XWNK76,H64XGK,X47FGF,WJ64F6,6WNN6G,GMRY69,W44NWE,DENJTM,JDM64W,XMM337,779367,T979H3,YE6E4C,Y3D3E6,7R49CX,673HT3,4CM7N7,RM76NC,FR4KCC,77MM4W,KXXWKM,9N6K94,6DHFGN,NFC474,697CN3,MPRP47,X7CE6C,P7TE39,76KX93,T447F6,R9Y49G,JTRP4J,66PAK9,K6WWH3,M7R77C,J46KJ6,347K7E,43DCHK,HT764T,P7M9RF,6RXPFC,7CACXD,C97P74,9K4443,43DTRM,34M69Y,FK7CFH,KGWRG4,43E49G,946964,9Y463R,6J9PJE,6WE9T9,E6PW7R,H74G67,JG9N34,C34349,FJ6A73,C3K6PD,K34K3E,64WFED,4XTX77,73ETNE,EHDF4K,4W67DA,96A36C,3946TR,E44796,97J3HP,C49GC4,64TRY4,R6647N,YP64CD,46X3XK,674GCH,C79WXJ,96EA3H,CT77D7,3P473N,HKJ443,C6K43D,RC746N,94JNXD,N7R6E6,44N46J,9P43Y6,7W773C,99G69T,ER64P6,HKE3Y7,66M44R,6WFW7C,6XPP7E,D747D7,WP97PK,4R97D6,KM76E3,MGC6X7,R77AA4,M74TKK,R6F7K3,36T34C,HM6GEW,P47F3Y,N4RMG4,G7C4TM,RRT3J6,97K766,7F6J34,RKM444,GK4676,9C7X66,37XHG6,J9747C,777XNG,A6N779,EK9376,7XRE6H,EHEE74,63TEP9,7366X9,R69CE7,66E4KT,46KFRF,D77647,39734P,E43769,6EEJPJ,3FM9W3,H6G443,G4DFXE,96D6YD,R6FKTM,C744H3,433R67,HYD96C,74F9KE,G64646,T9R746,9CY347,44WK3A,ATCE77,GCEYYR,779797,XN76C6,3PAJ7G,G7M46H,G7EC6C,6X3446,X6446J,EKT74X,79FWP4,4M464F,6W4TC3,H76M6H,33G33W,N7K4H6,7KE93R,E6CY77,E6JP44,636776,WD6HW7,7F67Y6,96TNHY,GC6NW7,J9J47G,D97N3W,47NHF6,EMHWR7,KXPJ6R,DFEW9X,4MM463,74H94M,H9796H,464MPR,77JXKT,PJ9747,WA34Y6,6M63DN,WDR76G,RP7T6W,N9T6EX,7P7E3J,4XNP4D,46M73G,CTTNX6,WDKD73,PWHPJ6,T73GKP,PC6779,477J64,3A7H4A,X446AG,7KC33H,47G4XX,936K7W,4FG366,76H364,JDA4A4,9FT647,3XCT6E,6J6G47,9RX746,94GA77,9N3E66,D7CJ9M,HXYE6Y,747F44,GFW469,M344WT,34T34K,7M7G4J,NR74E6,X7H796,MWFE99,GDCDDC,ETXGMR,6XXKN7,C4T744,KF6HJG,F6NT94,H67736,M646GY,J34K37,3N7W79,N7HNC3,CPX734,36E647,C79K94,37H37H";