var pfchangs;
var faqId;
if (!pfchangs) pfchangs = {};

pfchangs.log = function(message, type)
	{
		if(typeof console !== "undefined" && pfchangs.global.debug)
			{
				console[type](message);
				//type= "firebug", "log", "debug", "info", "warn", "error"
			}	
	};

pfchangs.global = 
	{
		ajax : 
			{
				server : "ajaxserver.aspx"	
			},
		debug : true
	};

pfchangs.ui = 
	{	
		init : function()
			{
				var str;
				pfchangs.ui.activeMenu(str);				
				if(document.getElementById("ourBoldFlavors")) {
					pfchangs.ui.carousel();
				}
				if(document.getElementById("productDetail")) {
					pfchangs.ui.tabs("#tabs","#tabContents");
				}
				if(document.getElementById("moreProducts")) {
					pfchangs.ui.moreProductItemOver("li",".product-hover");
				}
			},			
		carousel : function() 
			{
				jQuery('.carousel1').jcarousel();
				pfchangs.ui.carouselItemOver(".jcarousel-item",".jcarousel-hover");
			},
		carouselItemOver : function(obj, togl) 
			{
			$(obj).hover(function(){
					$(this).find(togl).show().prev().hide();
					},function(){
						$(this).find(togl).hide().prev().show();						
					})
			},
		moreProductItemOver : function(obj, togl) 
			{
			$(obj).hover(function(){
					$(this).find(togl).show().prev().hide();
					},function(){
						$(this).find(togl).hide().prev().show();						
					})
			},
		tabs : function(obj, change)
			{
				$(obj+'div').hide();
				$(obj+'div:first').show();
				$('#tabs ul li:first').addClass('active');
				$('#tabs ul li a').click(function(){
					$('#tabs ul li').removeClass('active');
					$(this).parent().addClass('active');
					var currentTab = $(this).attr('href');
					$('#tabInnerContents div').hide();
					$(currentTab).show();
					return false;
				});
			},		
		activeMenu : function(str)
		{
			$('#gn'+str+' a').addClass("selected");			
		},		
		validate : function(elems)
			{
				var errors = 0;

				if (elems.text!=null) {
					var textRegex = /^[a-zA-Z\s]+$/;
					for (var i=0; i<elems.text.length; i++) {
						var thing = $(elems.text[i]).val();
						if (trim(thing)=="" || thing==null || thing=="Required" || !textRegex.test(thing)) {
							if (trim(thing)=="" || thing==null) {
								$(elems.text[i]).val("Required");
							}
							addError2($(elems.text[i]));
							errors++;
						} else {
							removeError2($(elems.text[i]));
						}
					}
				}

				if (elems.email!=null) {
					var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					for (var i=0; i<elems.email.length; i++) {
						var thing = $(elems.email[i]).val();
						if (thing=="" || thing==null || thing=="Required" || thing==false || !emailRegex.test(thing)) {
							//console.log(thing);
							if (thing=="" || thing==null || thing==false) {
								if (thing!="Required") {
									$(elems.email[i]).val("Required");
								}
							}
							addError2($(elems.email[i]));
							errors++;
						} else {
							removeError2($(elems.email[i]));
						}
					}
				}
				
				//Requires three values.  day, month, year (in that order)
				if (elems.dob!=null && elems.dob.length==3) {
					var dmRegex = /^\d{1,2}$/;
					var yearRegex = /^\d{4}$/;
					
					var day = $(elems.dob[0]).val();
					var month = $(elems.dob[1]).val();
					var year = $(elems.dob[2]).val();
					
					removeError2($(elems.dob[0]));
					removeError2($(elems.dob[1]));
					removeError2($(elems.dob[2]));
					
					var dt = new Date(year, month-1, day, 0, 0, 0, 0);
					
					if (!dmRegex.test(day) || dt.getDate()!=day) {
						addError2($(elems.dob[0]));
						addError2($(elems.dob[1]));
						addError2($(elems.dob[2]));
						errors++;
					}
					
					if (!dmRegex.test(month) || dt.getMonth()!=(month-1)) {
						addError2($(elems.dob[0]));
						addError2($(elems.dob[1]));
						addError2($(elems.dob[2]));
						errors++;
					}
					
					if (!yearRegex.test(year)) {
						addError2($(elems.dob[0]));
						addError2($(elems.dob[1]));
						addError2($(elems.dob[2]));
						errors++;
					}
					
					function compareDate(year, month, pdate, age) 
					{
						var cdate = new Date();
						var currentDate = new Date();
						currentDate.setYear(currentDate.getYear() - age);						
						cdate.setYear(year);
						cdate.setMonth(month - 1);
						cdate.setDate(pdate);
						if (cdate > currentDate) {			
							return false;
						} else {
							return true;
						}
					}
					var today = new Date(); 
					var byr = year;
					var nowyear = today.getFullYear();
					var age = nowyear - byr;
					var nowmonth = today.getMonth();
					var nowday = today.getDate();
					if (month > nowmonth) {age = age - 1}  // next birthday not yet reached
					else if (month == nowmonth && nowday < day) {age = age - 1}
					
					if (compareDate(year, month, day, 13) != true){
						addError2($(elems.dob[0]));
						addError2($(elems.dob[1]));
						addError2($(elems.dob[2]));
						errors++;
					}
				}
				

				if (elems.zipcode!=null) {
					var zipRegex = /^\d{5}$/;
					for (var i=0; i<elems.zipcode.length; i++) {
						var thing = $(elems.zipcode[i]).val();
						if (thing=="" || thing==null || !zipRegex.test(thing)) {
							$(elems.zipcode[i]).val("Required");
							addError2($(elems.zipcode[i]));
							errors++;
						} else {
							removeError2($(elems.zipcode[i]));
						}
					}
				}
				
				if (elems.phone!=null) {
					var phoneRegex = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
					for (var i=0; i<elems.phone.length; i++) {
						var thing = $(elems.phone[i]).val();
						if (trim(thing)!="" && !phoneRegex.test(thing)) {
							addError2($(elems.phone[i]));
							errors++;
						} else {
							removeError2($(elems.phone[i]));
						}
					}
				}

				if (errors>0) {
					return false;
				}
				return true;
			}
	};

$(document).ready(function(){
	pfchangs.ui.init();
	$('.opt-in').click(function () {
		checkedState = $(this).attr('checked');
        $('.opt-in:checked').each(function () {
        $(this).attr('checked', false);
    });
	$(this).attr('checked', checkedState);
});

	$('.product').sSelect();   
	
	$('#whereBuy input').keydown(function(e) {
										  
		if (e.keyCode == 13) {
			$('.where-buy-submit').click()
			return false;
		}
	});
	$('#whereBuy input').keyup(function(e) {
		if (e.keyCode == 13) {
			$('.where-buy-submit').click()
			return false;
		}
	});
	
	$('.tellafriend input').keyup(function(e) {
		if (e.keyCode == 13) {
           $('.taf-view').click()
			return false;
		}
	});
	$('.tellafriend input.subject').keyup(function(e) {
		if (e.keyCode == 13) {
			$('.taf-submit').click()
			return false;
		}
	});
	
	$("#bottomContainer > div").click(function(){
		window.location=$(this).find("a").attr("href");
		return false;
	});
	
	$('.mailinglist-submit').click(function() {
		var test = {
			text:[".first-name",".last-name"],
			email:[".email"],
			dob:[".day",".month",".year"]
		}
		var passed = pfchangs.ui.validate(test);
		
		if (passed) {
			var captcha = validateCaptcha();
			if (captcha) {
				
			} else {
				return false;
			}
		}
		ntptEventTag('ev=mailing list_submit');
		return passed;
	});
	
	$('.contactus-submit').click(function() {
		var tests = {
			text:[".first-name",".last-name"],
			email:[".email"],
			dob:[".day",".month",".year"],
			zipcode:[".zipcode"],
			phone:[".phone"]
		}
		var passed = pfchangs.ui.validate(tests);
		
		var errors = 0;

		var address = $("input.address1").val();
		if (trim(address)=="" || address==null || address=="Required") {
			$("input.address1").val("Required");
			addError2($("input.address1"));
			errors++;
		} else {
			removeError2($("input.address1"));
		}
		
		var city = $("input.city").val();
		if (trim(city)=="" || city==null || city=="Required") {
			$("input.city").val("Required");
			addError2($("input.city"));
			errors++;
		} else {
			removeError2($("input.city"));
		}
		
		var state = $("select.state").val();
		if (state=="" || state==null) {
			$('select.state').addClass("box");
			errors++;
		} else {
			$('select.state').removeClass("box");
		}
				
		var zipcode = $("input.zipcode").val();
		if (trim(zipcode)=="" || zipcode==null || zipcode=="Required" || !IsNumeric(zipcode)) {
			$('input.zipcode').val("Required");
			addError2($("input.zipcode"));
			errors++;
		} else {
			removeError2($("input.zipcode"));
		}
		
		var comments = $("textarea.comments").val();
		if (trim(comments)=="" || comments==null || comments=="Required") {
			$("textarea.comments").val("Required");
			$('textarea.comments').addClass("error");
			errors++;
		} else {
			$('textarea.comments').removeClass("error");
		}
		
		passed = (passed&&(errors==0));
		if (passed) {
			var captcha = validateCaptcha();
			if (captcha) {
				
			} else {
				return false;
			}
		}
		ntptEventTag('ev=contact us_submit');
		return passed;
	});
	/****************************/
		//Tell a friend form validation.
	$('.taf-view').click(function() {
		
		var tests = {
			text:[".fname",".yname"],
			email:[".femail",".yemail"]
		};
		
		var passed = pfchangs.ui.validate(tests);
		
		if (!passed) {
			return false;
		}

		$('.tellafriend1').hide();
		$('.tellafriend2').show();
		
		var message = $('textarea.message').val();
		if (message!="" && message!=null) {
			$('textarea.message').val(message.replace("<FriendsName>",$('.fname').val()));
		}
		return false;
	});
	
	$('.taf-back-submit').click(function() {
		$('.tellafriend2').hide();
		$('.tellafriend1').show();
		return false;
	});
	
	$('.taf-submit').click(function() {
		
		var errors = 0;
		var subject = $('input.subject').val();
		var message = $('textarea.message').val();
		
		if (trim(subject)=="" || subject==null || subject=="Required") {
			$("input.subject").val("Required");
			addError2($("input.subject"));
			errors++;
		} else {
			removeError2($("input.subject"));
		}
		
		if (trim(message)=="" || message==null || message=="Required") {
			$("textarea.message").val("Required");
			$('textarea.message').addClass("error");
			//addError("contactus","comments");
			errors++;
		} else {
			$('textarea.message').removeClass("error");
			//removeError("contactus","comments");
		}
		
		if (errors>0) {
			return false;
		}		
		ntptEventTag('ev=tell a friend_send message');
	});
	/****************************/
	
	$('.where-buy-submit').click(function() {
		var errors = 0;
		var re5digit=/^\d{5}$/;
		var zip = $('input.zipcode').val();
		if (zip==null || trim(zip)=="" ) {
				$("input.zipcode").val("Required");
			
			
			addError2($('.zipcode'));
			errors++;
		} else if(!IsNumeric(zip) || !re5digit.test(zip)) {
    		addError2($('.zipcode'));
			errors++;
	}
		else
		{
			removeError2($('.zipcode'));			
			}
		
		if (errors>0) {
			return false;
		}
		loadResults();
		ntptEventTag('ev=where to buy_submit');
	});
	
	$('input').focus(function() {
		if ($(this).hasClass("middle2") && $(this).val()=="Required") {
			$(this).val("");
		}
		if ($(this).val()=="DD" || $(this).val()=="MM" || $(this).val()=="YYYY") {
			$(this).val("");
		}
	});
	$('input').keypress(function() {
		if ($(this).hasClass("middle2")) {
			removeError2($(this));
		}
		if ($(this).val()=="Required" || $(this).val()=="DD" || $(this).val()=="MM" || $(this).val()=="YYYY") {
			$(this).val("");
		}
	});
	
	$('textarea').focus(function() {
		if ($(this).val()=="Required") {
			$(this).val("");
		}
	});	
	$('textarea').keypress(function() {
		if ($(this).hasClass("error")) {
			$(this).removeClass("error");
		}
		if ($(this).val()=="Required") {
			$(this).val("");
		}
	});	
	
	$('select').change(function() {
		if ($(this).hasClass("box") && $(this).val()!="") {
			$(this).removeClass("box");
		}
	});
	
	$('input.day').focusout(function() {
		if (trim($(this).val())=="") {
			$(this).val("DD");
		}
	});
	$('input.month').focusout(function() {
		if (trim($(this).val())=="") {
			$(this).val("MM");
		}
	});
	$('input.year').focusout(function() {
		if (trim($(this).val())=="") {
			$(this).val("YYYY");
		}
	});
	
	$('.faq-list a').click(function() {
		$('.faq-list a').removeClass('selected');
		$(this).addClass('selected');
		var str = $(this).parent().attr("id");
        var faqId = $(this).parent().attr("faqId");
		CallService(faqId);		
		var num = str.match(/\d+/);
		$('section.faq div.float-right p').css("display","none");
		$("#answer"+num).css("display","block");
		return false;
	});
	
	$("section.faq div.ud-arrows span.u-arrow").click(function() {
		var height = $('.faq-list ul').height();
		var offset = $('.faq-list').scrollTop();
		$('.faq-list').animate({"scrollTop": offset-=100 }, 500);

		if (offset <= 0 || height < 360) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		
		if (height-offset < 360) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}	
	});

	$("section.faq div.ud-arrows span.d-arrow").click(function() {	
		var height = $('.faq-list ul').height();
		var offset = $('.faq-list').scrollTop();
		$('.faq-list').animate({"scrollTop": offset+=100 }, 500);
		
		if (offset <= 0 || height < 360) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		
		if (height-offset < 360) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}	
	});
	
	if ($('.faq-list')[0]!=undefined) {
		var heightFaq = $('.faq-list ul').height();
		var offsetFaq = $('.faq-list').scrollTop();
		if (offsetFaq <= 0 || heightFaq < 360) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		if (heightFaq-offsetFaq < 360) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}	
	}
	
	$("section#whereBuy div.ud-arrows span.u-arrow").click(function() {
		var height = $('.mid-pane-table table').height();
		var offset = $('.mid-pane-table').scrollTop();
		$('.mid-pane-table').animate({"scrollTop": offset-=100 }, 500);

		if (offset <= 0 || height < 327) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		
		if (height-offset < 327) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}	
	});

	$("section#whereBuy div.ud-arrows span.d-arrow").click(function() {
		var height = $('.mid-pane-table table').height();
		var offset = $('.mid-pane-table').scrollTop();
		$('.mid-pane-table').animate({"scrollTop": offset+=100 }, 500);
		
		if (offset <= 0 || height < 327) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		
		if (height-offset < 327) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}	
	});
	
	if ($('.mid-pane-table')[0]!=undefined) {
		var heightWtb = $('.mid-pane-table table').height();
		var offsetWtb = $('.mid-pane-table').scrollTop();
		if (offsetWtb <= 0 || heightWtb < 327) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		if (heightWtb-offsetWtb < 327) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}
	}
})

function IsNumeric(input)
{
    return (input - 0) == input && input.length > 0;
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

var addError2 = function(elem) {
	var el = elem[0];
	removeClass(el.parentNode.childNodes[0],"left");
	addClass(el.parentNode.childNodes[0],"left2");
	
	addClass(el.parentNode.childNodes[1],"middle2");
	
	removeClass(el.parentNode.childNodes[2],"right");
	addClass(el.parentNode.childNodes[2],"right2");
}

var removeError2 = function(elem) {
	var el = elem[0];
	removeClass(el.parentNode.childNodes[0],"left2");
	addClass(el.parentNode.childNodes[0],"left");
	
	removeClass(el.parentNode.childNodes[1],"middle2");
	
	removeClass(el.parentNode.childNodes[2],"right2");
	addClass(el.parentNode.childNodes[2],"right");
}

function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
 
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
 
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}
function loadResults(){
	$('.mid-pane-table').empty().html('<img class="image-loader" src="/resources/Images/buttons/loader.gif" />');
	$.ajax({		   
		type: "GET",
		url: "~/UserControls/WhereToBuy/StoreLocator.ascx",
		success: function(){
			$('.mid-pane-table').html();
		}
	})
}
function validateCaptcha() {
	challengeField = $("input#recaptcha_challenge_field").val();
	responseField = $("input#recaptcha_response_field").val();
	$(".recaptcha_input_area .error").html("&#160;");
	if(responseField!=="") {
		var html = $.ajax({
			type: "GET",
			url: "/ValidateRecaptcha.aspx",
			data: "recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField,
			async: false,
			error : function() {
				return false;
			}
		}).responseText;
		
		if (html!==undefined && html.replace(/^\s+|\s+$/, '') === "") {
			return true;
		}
		else {
			Recaptcha.reload();
			$(".recaptcha_input_area .error").html()//messages["InvalidRecaptcha"]);
			return false;
		}
	} else {
		$("#recaptcha_response_field").css("border","2px solid red");
		$(".recaptcha_input_area .error").html()//messages["RequiredRecaptcha"]);
		return false;
	}
	return false;
}

function enableScroll() {
	if ($('.mid-pane-table')[0] != undefined) {
		var heightWtb = $('.mid-pane-table table').height();
		var offsetWtb = $('.mid-pane-table').scrollTop();
		if (offsetWtb <= 0 || heightWtb < 327) { $('span.u-arrow').addClass('disabled'); } else {
			$('span.u-arrow').removeClass('disabled');
		}
		if (heightWtb - offsetWtb < 327) { $('span.d-arrow').addClass('disabled'); } else {
			$('span.d-arrow').removeClass('disabled');
		}
	}
}

function setEqualHeight(liHeight)
{
	var tallestli = 0;
	liHeight.each(function(){currentHeight = $(this).height(); if(currentHeight > tallestli)
	{tallestli  = currentHeight;}});
	liHeight.height(tallestli);
}		
$(window).load(function(){
	setEqualHeight($("#moreProducts > section > ul > li"));
})
 function MapExistingUrl()
 {

var query = location.href.split('#');

if(query!= undefined && query.length>1)
{

 if(query[1].indexOf("/products") != -1)
 {

 var query2 = query[1].split("/products");
 if(query2.length>1)
 {
 
 if(query2[1] == "")
 {
 document.location.href = "/products";
 }
  else if (query2[1].indexOf("shrimp_lo_mein/") != -1) {
    document.location.href = "/NoodleMeals/shrimp_lo_mein/";
    }
	else if (query2[1] != "/")
	{
	 
	document.location.href = "/meals" + query2[1];
	}
	else
	{
	document.location.href = "/products";
	}
	}
	else
	{
	document.location.href=query[1];
	}
	}
	
    if (query[1].indexOf("/where-to-buy") != -1) {
        document.location.href = "/WhereToBuy/";
    }
    if (query[1].indexOf("/faqs") != -1) {
        document.location.href = "/faq/";
    }
    if (query[1].indexOf("/contact") != -1) {
        document.location.href = "/contactus/";
    }
    if (query[1].indexOf("/tell-a-friend") != -1) {
        document.location.href = "/TellAFriend/";
    }
    if (query[1].indexOf("/mailing-list") != -1) {
        document.location.href = "/JoinOurMailingList/";
    }
}
else 
{
 query = location.href;
if(query.indexOf("/contact") != -1 && query.indexOf("/contactus") == -1) {
        document.location.href = "/contactus/";
    }
	if(query.indexOf("/mailing-list") != -1 ) {
        document.location.href = "/JoinOurMailingList/";
    }

}
}
 function CallService(faqId) {
    $.ajax({
        type: 'POST',
        data: '{}',
        contentType: "text/plain; charset=utf-8",
        dataType: "text",
        async: false,
        cache: false,
        url: '/UpdateFaqCounter.aspx?faqId=' + faqId,
        success: function (response) {
        },
        error: function (request, status, error) {
        }
    });
    }
