// Message builder function

var lastimage = "";

function checkTimer()
{
    var now = new Date();
    var servertime = new Date(now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate(),now.getUTCHours(),now.getUTCMinutes(),now.getUTCSeconds(),0);
    
    var weekday = servertime.getDay();
    var message = "Add this product to your basket, you can easily remove later.";
    var millihours = (60*60*1000);
    var millimins = (60*1000);
    var cutofftime = 14*millihours + 30*millimins; // cutoff at 4:00 pm
    var thismoment = servertime.getHours() * millihours + servertime.getMinutes() * millimins;

    function buildMessage()
    {
        var diffmilli = cutofftime - thismoment;
        var hours = parseInt(diffmilli /millihours);
        var minutes = parseInt( (diffmilli - hours*millihours) / millimins );

        
        var message = "Order in the next ";

        if(hours >= 1)
        {
            message += hours + " hour" + ((hours>1)?"s ":" ");

            if(minutes > 0)
                message += "and ";
        }

        if(minutes > 0)
             message += minutes + " minute" + ((minutes>1)?"s":"");

        message += " for Guaranteed Dispatch Today!";

        return(message);
    }

    function isbankholiday()
    {
        var i;
        var theyear = servertime.getFullYear();
        var themonth = servertime.getMonth();
        var theday = servertime.getDate();
        var bankholidays = ["06-04-2012","09-04-2012","07-05-2012","04-06-2012","05-06-2012","27-08-2012"];
		
		var shouldReturn = false;
		
        for(i=0;i<bankholidays.length;i++)
        {
            var byear,bmonth,bday;
            byear = parseInt(bankholidays[i].substring(6,10));
            bmonth = parseInt(bankholidays[i].substring(3,5)) - 1; // months start at 0
            bday = parseInt(bankholidays[i].substring(0,2));
            if( (theyear == byear) && (themonth == bmonth) && (theday == bday) )
                shouldReturn = true;
        }
        return(shouldReturn);
    }

    if( (weekday >= 1) && (weekday <= 5) )
    {
        if( !isbankholiday() )
        {
            if(thismoment < cutofftime)
                message = buildMessage();
        }
    }
    
    var displayarea = document.getElementById("timemessagespan");
    displayarea.innerHTML = message;
}


// On Checkout, if country is GB, than check if state was selected on submit
function checkCountryState()
	{
	if (($("#s_country").val() == "GB") && ($("#b_state").val() == "3"))
		{
		alert("Please select your Location.");
		return false;
		}else{
		$("#registerform").submit();
		return true;
		};
	};

function isValidEmailAddress(emailAddress)
	{
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
	};

function checkEmail()
	{
	if (isValidEmailAddress($('.free_plan_email').val()))
		{
		return true;
		}else{
		alert('Please enter valid email address.');
		return false;
		};
	};

var showNextImage = true;
function nextTab()
	{
	if (showNextImage)
		{
		if ($('.slider_box ul li').eq(0).hasClass('active')) $('.slider_box ul li').eq(1).children('.slider_tab').click();
		else if ($('.slider_box ul li').eq(1).hasClass('active')) $('.slider_box ul li').eq(2).children('.slider_tab').click();
		else if ($('.slider_box ul li').eq(2).hasClass('active')) $('.slider_box ul li').eq(3).children('.slider_tab').click();
		else $('.slider_box ul li').eq(0).children('.slider_tab').click();
		};
	};
	
// Extend jQuery with .slideRight .slideLeft .slideToggleWidth
 
jQuery.fn.extend({
  slideRight: function() {
    return this.each(function() {
		if ($.browser.safari) {jQuery(this).css({display: 'block'})};
      jQuery(this).animate({width: 'show'}, 'normal', function()
		{
		$('.form_absolute_input').fadeIn();
		$('.form_absolute_button').fadeIn();
		$('.form_absolute_link').fadeIn();
		$('.form_absolute_link2').fadeIn();
		});
    });
  },
  slideLeft: function() {
    return this.each(function() {
	  $('.form_absolute_input').hide();
	  $('.form_absolute_button').hide();
	  $('.form_absolute_link').hide();
	  $('.form_absolute_link2').hide();
      jQuery(this).animate({width: 'hide'}, 'normal');
    });
  },
  slideToggleWidth: function() {
    return this.each(function() {
      var el = jQuery(this);
      if (el.css('display') == 'none') {
        el.slideRight();
      } else {
        el.slideLeft();
      }
    });
  }
});

// function to sort counties drop-down at registration page
function sortArray(item)
	{
	var $dd = $(item);

	// save the selected value
	var selectedVal = $dd.val();

	// get the options and loop through them
	var $options = $('option', $dd);
	var arrVals = [];
	$options.each(function()
		{
		// push each option value and text into an array
		arrVals.push
			({
			val: $(this).val(),
			text: $(this).text()
			});
		});

	// sort the array by the value (change val to text to sort by text instead)
	arrVals.sort(function(a, b)
		{
        return a.val - b.val;
		});
	
	// loop through the sorted array and set the text/values to the options
	for (var i = 0, l = arrVals.length; i < l; i++)
		{
		$($options[i]).val(arrVals[i].val).text(arrVals[i].text);
		};

	// set the selected value back
	$dd.val(selectedVal);
	};

$(document).ready(function()
	{

	// Default Search Text
	var defaultSearchString = 'Search...';
	if ($('.search_input').val() == '') $('.search_input').val(defaultSearchString);
	$('.search_input').click(function()
		{
		if ($(this).val() == defaultSearchString) $(this).val('');
		}).blur(function()
		{
		if ($(this).val() == '') $(this).val(defaultSearchString);
		});

	// Default Search Text
	var defaultSmsTxt = 'Enter your mobile number here....';
	if ($('.sms_input').val() == '') $('.sms_input').val(defaultSmsTxt);
	$('.sms_input').click(function()
		{
		if ($(this).val() == defaultSmsTxt) $(this).val('');
		}).blur(function()
		{
		if ($(this).val() == '') $(this).val(defaultSmsTxt);
		});
	
	// Login form - submit on keypressed Enter
	 $('.auth_password').bind('keypress', function(e)
		{
		if ( e.keyCode == 13 )
			{
			$("a.button_login").click();
			}
		});
		
	// Default user_name
	var defaultUsername = "username";
	
	if ($('.auth_username').val() == '') $('.auth_username').val(defaultUsername);
	
	$('.auth_username').focus(function()
		{
		if ($(this).val() == defaultUsername) $(this).val('');
		});
	$('.auth_username').blur(function()
		{
		if ($(this).val() == '') $(this).val(defaultUsername);
		});
	
	// Products Main Page top description Scroll-Bars
	$('.product_main_scroll_bars').jScrollPane();
	
	
	$('.slider_box ul li .slider_tab').mouseover(function()
		{
		$(this).parent().addClass('hover');
		}).mouseout(function()
		{
		$(this).parent().removeClass('hover');
		});
	
	$('.slider_tab:not(.current)').click(function()
		{
		$('.slider_tab').removeClass('current');
		$(this).addClass('current');
		$('.slider_tab:not(.current)').parent().children('.slider_content').slideLeft();
		$(this).parent().children('.slider_content').slideRight();
		$('.slider_box ul li').removeClass('active');
		$(this).parent('li').addClass('active');
		});
	
	// Default Slider Email Text
	var defaultEmailString = 'enter your email here';
	if ($('.free_plan_email').val() == '') $('.free_plan_email').val(defaultEmailString);
	$('.free_plan_email').click(function()
		{
		if ($(this).val() == defaultEmailString) $(this).val('');
		$(this).addClass('focused');
		}).blur(function()
		{
		if ($(this).val() == '')
			{
			$(this).val(defaultEmailString);
			$(this).removeClass('focused');
			};
		});
	
	// Slide tabs on interval
	var timerID = setInterval("nextTab()", 8000);
	
	$('.slider_box ul').mouseover(function()
		{
		showNextImage = false;
		}).mouseout(function()
		{
		showNextImage = true;
		});
	
	// Top calculator links open in Fancy box
	$(".search-right a").fancybox({
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic',
		'speedIn'		:	600, 
		'speedOut'		:	200,
		'width'			:	400,
		'height'		:	550,
		'centerOnScroll':	true,
		'overlayOpacity':	.4,
		'overlayColor'	:	'#471C2D'
	});
	
	// All a.iframe class links in span.open_iframe open Fancy box
	$("span.open_iframe a.iframe").fancybox({
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic',
		'speedIn'		:	600, 
		'speedOut'		:	200,
		'width'			:   680,
		'height'		:   600,
		'centerOnScroll':	true,
		'overlayOpacity':	.6,
		'overlayColor'	:	'#471C2D'
	});
	
	// Product page - Tabbed content
	$('ul.tabbed_menu_buttons li a').click(function()
		{
		var thisClass = $(this).attr('class');
		var changeId = '#' + thisClass;
		$('.tabbed_menu_content div.hide_me').hide();
		$('.tabbed_menu_content div' + changeId).show();
		$('ul.tabbed_menu_buttons li a').removeClass('current');
		$(this).addClass('current');
		return false;
		});
	
	$('.tabbed_menu_content div.hide_me').eq(0).slideDown();
	$('ul.tabbed_menu_buttons li a').eq(0).addClass('current');
	
	// Message builder
	if ($('#dispatch_today').length>0) checkTimer();

	function updateEmail1()
		{
		$(".email1").val($(".email2").val());
		};
	$(".email2").change(updateEmail1).blur(updateEmail1);
	updateEmail1();
	
	$(".options_box input:radio").click(function()
		{
		var boxToShow = ".option_message_" + $(this).attr("value");
		$(".option_message").hide();
		$(boxToShow).show();
		});
		
	// Force customers to select "Important Please Choose" Dropdown
	if ($(".options_box option:selected").eq(0).text().indexOf("Important Please Choose") != -1) {
		var cannotSubmit = true;
		$("a.button_buy_now").attr("onclick", "");
		$(".options_box input").click(function() {
			if (cannotSubmit) {
				alert("Please choose your Pack Combination!");
				$(".options_box select").eq(0).focus();
				return false;
			} else {
				return true;
			};
		});
		$('a.button_buy_now').each(function(){
			$(this).data('onclick', this.onclick);
			this.onclick = function(event) {
			if(cannotSubmit) {
				alert("Please choose your Pack Combination!");
				$(".options_box select").eq(0).focus();
				return false
			}
				$('#orderform').submit();
				return false;
			};
		});

		$(".options_box select").eq(0).change(function() {
			if ($(".options_box option:selected").eq(0).text().indexOf("Important Please Choose") != -1) {
				cannotSubmit = true;
			} else {
				cannotSubmit = false;
			};
			$(".options_box h4").each(function() {
				if ($(this).text().indexOf("Shakes") == 0) $(this).text("Shakes (0):");
				if ($(this).text().indexOf("Meals") == 0) $(this).text("Meals (0):");
				if ($(this).text().indexOf("Bars") == 0) $(this).text("Bars (0):");
			});
			var titleValue = $(this).children("option:selected").text(); // titleValue = " 	35 Shakes / 7 Meals / 14 Bars "
			var explodedTitle = titleValue.split('/');
			$.each(explodedTitle, function(key, value) { 
				var optionTitleAndQuantity = $.trim(value); // optionTitleAndQuantity = "35 Shakes"
				var optionTitleAndQuantityExplode = optionTitleAndQuantity.split(" ");
				var optionTitle = optionTitleAndQuantityExplode[1]; // optionTitle = "Shakes"
				var optionQuantity = optionTitleAndQuantityExplode[0]; // optionQuantity = "35"
				$(".options_box h4").each(function() {
					if ($(this).text().indexOf(optionTitle) == 0) $(this).text(optionTitle + " (" + optionQuantity + "):");
				});
			});
		});
	};
	
	
});
