// change this each week
var ACTIVE_SIN = 'envy';

var SINS = ['envy', 'sloth', 'lust', 'gluttony', 'pride', 'greed', 'wrath'];
var current_recipe = null;

function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block')
      e.style.display = 'none';
   else
      e.style.display = 'block';
}

function hidePage(id) {
   // hide all
   if (typeof id == 'undefined') {
      kQuery('.overlay').hide();
   } else {
      var e = document.getElementById(id);
      e.style.display = 'none';
   }
}

function enableShowRecipe() {
   kQuery('#_recipe_button').click(function(e){
      showRecipe();
   });
   kQuery('#_recipe_button').css('cursor', 'pointer');
}

function showRecipe() {
   hidePage();
   showPage(ACTIVE_SIN+'Recipe');
   kQuery(SINS).each(function(i,v){
      if (v == ACTIVE_SIN) {
         current_recipe = i;
         return;
      }
   });
}

function prevRecipe() {
   if (current_recipe == null) current_recipe = 0;
   prev_recipe = (current_recipe == 0)? SINS.length - 1: current_recipe - 1;
   showPage(SINS[prev_recipe]+'Recipe');
   hidePage(SINS[current_recipe]+'Recipe');
   current_recipe = prev_recipe;
}

function nextRecipe() {
   if (current_recipe == null) current_recipe = 0;
   next_recipe = (current_recipe == SINS.length - 1)? 0: current_recipe + 1;
   showPage(SINS[next_recipe]+'Recipe');
   hidePage(SINS[current_recipe]+'Recipe');
   current_recipe = next_recipe;
}

function showPage(id) {
   if (id == 'allForm') {
      kQuery('.overlay.recipe').hide();
   }
   
   var e = document.getElementById(id);
      e.style.display = 'block';
      
   trackPageView(id);
}

function showFooter(id) {
   
   var e = document.getElementById(id);
      e.style.display = 'block';
}

function trackPageView(id) {
   activityID = null;
   
   if (/^\w+referform$/i.test(id)) {
      id = 'ReferForm';
   } else if (id != 'allForm' && /^\w+form$/i.test(id)) {
      id = 'Form';
   }
   
   switch (id) {
      case 'landingSins': // Conversion Name: Frangelico - weekly prize choose your sin
         activityID = '152593';
         break;
      case 'Form': // Conversion Name: Frangelico - weekly prize enter details
         activityID = '152596';
         break;
      case 'ReferForm': // Conversion Name: Frangelico - weekly prize choose a sin for friends
         activityID = '152597';
         break;
      case 'allForm': // Conversion Name: Frangelico - win the lot enter details
         activityID = '152599';
         break;
      case 'sinThankYou': // Conversion Name: Frangelico - weekly prize thank you
         activityID = '152598';
         break;
      case 'allThankYou': // Conversion Name: Frangelico - win the lot thank you
         activityID = '152600';
         break;
   }
   
   if (activityID != null) {
      var ebRand = Math.random()+'';
      ebRand = ebRand * 1000000;
      kQuery('body').append('<iframe src="HTTP://bs.serving-sys.com/BurstingPipe/ActivityServer.bs?cn=as&amp;ActivityID=' + activityID + '&amp;ifrm=1&amp;rnd=' + ebRand + '" width=0 height=0 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no bordercolor="#000000"></iframe>');
   }
}

function clearEntries() {
   kQuery('form.frangelico_promo input.entry').val('');
   kQuery('form.frangelico_promo input.name').val('Name');
   kQuery('form.frangelico_promo input.email').val('Email');
}

var commonValidation = function(form_node) {
   if (kQuery(form_node).find('input[name=firstname]').val() == '') {
      alert('Please enter your first name');
      return false;
   }
   if (kQuery(form_node).find('input[name=surname]').val() == '') {
      alert('Please enter your surname');
      return false;
   }
   if (kQuery(form_node).find('input[name=postcode]').val() == '' || kQuery(form_node).find('input[name=postcode]').val().length != 4) {
      alert('Please enter a four digit postcode');
      return false;
   }
   if (kQuery(form_node).find('input[name=email]').val() == '' || !/\S+@\S+\.\S+/i.test(kQuery(form_node).find('input[name=email]').val())) {
      alert('Please enter a valid email address');
      return false;
   }
   if (kQuery(form_node).find('input[name=mobile]').val() == '') {
      alert('Please enter a mobile number');
      return false;
   }
   if (!kQuery(form_node).find('input[name=terms]').is(':checked')) {
      alert('Please agree to the terms and conditions of this competition');
      return;
   }
   
   return true;
}

var validateWeeklyEntry = function(form_node) {
   if (!kQuery(form_node).find('input.checkFBLike').is(':checked')) {
      alert('Click Like us on Facebook to enter');
      return false;
   }
   
   return commonValidation(form_node);
}

var validateEntry = function(form_node){
   if (kQuery(form_node).find('input[name=barcode]').val() == '') {
      alert('Please enter a barcode');
      return false;
   }
   
   return commonValidation(form_node);
}

var validateReferForm = function(form_node) {
   var isValid = true;
   
   kQuery(form_node).find('.referTextField.name').each(function(i, v){
      matches     = /(\w+)name/i.exec(kQuery(v).attr('name'));
      input_name  = matches[1];
      name_value  = kQuery(v).val();
      email_value = kQuery(v).siblings('[name=' + input_name +'email]').val();
      
      if (name_value != '' && name_value != 'Name' && (email_value == '' || email_value == 'Email' || !/\S+@\S+\.\S+/i.test(email_value))) {
         alert('Enter a valid email address for ' + name_value + ' (' + input_name +')');
         isValid = false;
         return false;
      }
      if (email_value != '' && email_value != 'Email' && (name_value == '' || name_value == 'Name')) {
         alert('Enter a valid name for ' + email_value + ' (' + input_name +')');
         isValid = false;
         return false;
      }
   });
   
   return isValid;
}

var initRollovers = function(){
   kQuery(".btnEnvy").hover(function(){kQuery(".imgEnvy").addClass("imgSinOver");},function(){kQuery(".imgEnvy").removeClass("imgSinOver");});
   kQuery(".btnSloth").hover(function(){kQuery(".imgSloth").addClass("imgSinOver");},function(){kQuery(".imgSloth").removeClass("imgSinOver");});
   kQuery(".btnLust").hover(function(){kQuery(".imgLust").addClass("imgSinOver");},function(){kQuery(".imgLust").removeClass("imgSinOver");});
   kQuery(".btnGluttony").hover(function(){kQuery(".imgGluttony").addClass("imgSinOver");},function(){kQuery(".imgGluttony").removeClass("imgSinOver");});
   kQuery(".btnPride").hover(function(){kQuery(".imgPride").addClass("imgSinOver");},function(){kQuery(".imgPride").removeClass("imgSinOver");});
   kQuery(".btnGreed").hover(function(){kQuery(".imgGreed").addClass("imgSinOver");},function(){kQuery(".imgGreed").removeClass("imgSinOver");});
   kQuery(".btnWrath").hover(function(){kQuery(".imgWrath").addClass("imgSinOver");},function(){kQuery(".imgWrath").removeClass("imgSinOver");});
}

kQuery(function(){   
   var SINS = ['envy', 'gluttony', 'greed', 'lust', 'pride', 'sloth', 'wrath'];
   var entryData = {};
   
   initRollovers();
   
   kQuery('.referTextField').each(function(){
		kQuery(this).data('default_text', kQuery(this).val());
		kQuery(this).focus(function(e){
			if (kQuery(this).val() == kQuery(this).data('default_text')){
				kQuery(this).val('');
			}
		});
		kQuery(this).blur(function(e){
			if (kQuery(this).val() == ''){
				kQuery(this).val(kQuery(this).data('default_text'));
			}
		});
	});
   
   kQuery('.sinSubmitBtn').click(function(e){
      e.preventDefault();
      
      var form = kQuery(e.target).closest('form');
      var sin  = kQuery(form).attr('name');
      
      if (!validateWeeklyEntry(form)) {
         return;
      }
      
      entryData = kQuery.extend(entryData, {
         frangelico_weekly_entry: 1,
         sin:       sin,
         name:      kQuery(form).find('input[name=firstname]').val(),
         surname:   kQuery(form).find('input[name=surname]').val(),
         postcode:  kQuery(form).find('input[name=postcode]').val(),
         email:     kQuery(form).find('input[name=email]').val(),
         mobile:    kQuery(form).find('input[name=mobile]').val(),
         subscribe: kQuery(form).find('input[name=offers]').is(':checked')
      });
      
      kQuery.post('/', entryData, function(data){
         if (data === '') {
            showPage(sin+'ReferForm');
         } else {
            alert(data);
         }
      });      
   });
   
   kQuery('.allSubmitBtn').click(function(e){
      e.preventDefault();
      
      var form = kQuery(e.target).closest('form');
      
      if (!validateEntry(form)) {
         return;
      }
      
      entryData = {
         frangelico_all_entry: 1,
         barcode:   kQuery(form).find('input[name=barcode]').val(),
         name:      kQuery(form).find('input[name=firstname]').val(),
         surname:   kQuery(form).find('input[name=surname]').val(),
         postcode:  kQuery(form).find('input[name=postcode]').val(),
         email:     kQuery(form).find('input[name=email]').val(),
         mobile:    kQuery(form).find('input[name=mobile]').val(),
         subscribe: kQuery(form).find('input[name=offers]').is(':checked')
      }
      
      kQuery.post('/', entryData, function(data){
         if (data === '') {
            showPage('allThankYou');
            entryData = {};
         } else {
            alert(data);
         }
      });
   });
   
   kQuery('.referSubmitBtn').click(function(e){
      e.preventDefault();
      
      var form = kQuery(e.target).closest('form');
      
      if (!validateReferForm(form)) {
         return;
      }
      
      entryData = kQuery.extend(entryData, {
         frangelico_weekly_entry_friends: 1,
         referred_envy_name:      kQuery(form).find('input[name=envyname]').val(),
         referred_envy_email:     kQuery(form).find('input[name=envyemail]').val(),
         referred_gluttony_name:  kQuery(form).find('input[name=gluttonyname]').val(),
         referred_gluttony_email: kQuery(form).find('input[name=gluttonyemail]').val(),
         referred_greed_name:     kQuery(form).find('input[name=greedname]').val(),
         referred_greed_email:    kQuery(form).find('input[name=greedemail]').val(),
         referred_lust_name:      kQuery(form).find('input[name=lustname]').val(),
         referred_lust_email:     kQuery(form).find('input[name=lustemail]').val(),
         referred_pride_name:     kQuery(form).find('input[name=pridename]').val(),
         referred_pride_email:    kQuery(form).find('input[name=prideemail]').val(),
         referred_sloth_name:     kQuery(form).find('input[name=slothname]').val(),
         referred_sloth_email:    kQuery(form).find('input[name=slothemail]').val(),
         referred_wrath_name:     kQuery(form).find('input[name=wrathname]').val(),
         referred_wrath_email:    kQuery(form).find('input[name=wrathemail]').val()
      });
      
      kQuery.post('/', entryData, function(data){
         if (data === '') {
            showPage('sinThankYou');
            entryData = {};
         } else {
            alert(data);
         }
      });
   });
   
   kQuery("a#contactUs").click(function(){
		kQuery.fancybox({
			//'orig'			: kQuery(this),
			'padding'		: 0,
			'href'			: '/ContactUs',
			'title'   		: 'Contact Frangelico Sin and Win',
			'transitionIn'	: 'none',
			'transitionOut'	: 'none',
			'overlayOpacity' : '0.8',
			'scrolling'		: 'no',
			'width'			: 400,
			'height'		: 450,
			'hideOnContentClick' : false,
			'type'			: 'iframe'
		});	  
	  });
   

});
