var ltie7 = $.browser.msie && $.browser.version < 7;

// plugins
/**
 * jQuery.ScrollTo
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 */
(function(C){var A=C.scrollTo=function(F,E,D){C(window).scrollTo(F,E,D);};A.defaults={axis:"xy",duration:parseFloat(C.fn.jquery)>=1.3?0:1};A.window=function(D){return C(window).scrollable();};C.fn.scrollable=function(){return this.map(function(){var E=this,D=!E.nodeName||C.inArray(E.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!D){return E;}var F=(E.contentWindow||E).document||E.ownerDocument||E;return C.browser.safari||F.compatMode=="BackCompat"?F.body:F.documentElement;});};C.fn.scrollTo=function(F,E,D){if(typeof E=="object"){D=E;E=0;}if(typeof D=="function"){D={onAfter:D};}if(F=="max"){F=9000000000;}D=C.extend({},A.defaults,D);E=E||D.speed||D.duration;D.queue=D.queue&&D.axis.length>1;if(D.queue){E/=2;}D.offset=B(D.offset);D.over=B(D.over);return this.scrollable().each(function(){var M=this,K=C(M),L=F,J,H={},N=K.is("html,body");switch(typeof L){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px)?$/.test(L)){L=B(L);break;}L=C(L,this);case"object":if(L.is||L.style){J=(L=C(L)).offset();}}C.each(D.axis.split(""),function(R,S){var T=S=="x"?"Left":"Top",U=T.toLowerCase(),Q="scroll"+T,O=M[Q],P=S=="x"?"Width":"Height";if(J){H[Q]=J[U]+(N?0:O-K.offset()[U]);if(D.margin){H[Q]-=parseInt(L.css("margin"+T), 10)||0;H[Q]-=parseInt(L.css("border"+T+"Width"), 10)||0;}H[Q]+=D.offset[U]||0;if(D.over[U]){H[Q]+=L[P.toLowerCase()]()*D.over[U];}}else{H[Q]=L[U];}if(/^\d+$/.test(H[Q])){H[Q]=H[Q]<=0?0:Math.min(H[Q],G(P));}if(!R&&D.queue){if(O!=H[Q]){I(D.onAfterFirst);}delete H[Q];}});I(D.onAfter);function I(O){K.animate(H,E,D.easing,O&&function(){O.call(this,F,D);});}function G(S){var P="scroll"+S;if(!N){return M[P];}var R="client"+S,Q=M.ownerDocument.documentElement,O=M.ownerDocument.body;return Math.max(Q[P],O[P])-Math.min(Q[R],O[R]);}}).end();};function B(D){return typeof D=="object"?D:{top:D,left:D};}})(jQuery);

$.preloadImgs = function(imgsToLoad) {
  for (var i = 0; i < imgsToLoad.length; i++) {
    $('<img />').css({overflow: 'hidden', visibility: 'hidden', height: 0, width: 0}).appendTo('body').attr('src', imgsToLoad[i]).load(function() {
      $(this).remove();
    });
  }
};

// functions
$.fn.actsAsDefault = function() {
  this.each(function() {
    var defaultValue = $(this).find('label').hide().text();
    if ($(this).find('input, textarea').val() !== '' && $(this).find('input, textarea').val() !== defaultValue) {
      return true;
    }
    $(this).find('input, textarea').addClass('default').focus(function() {
      if ($(this).val() === defaultValue) {
        $(this).removeClass('default').val('');
      }
    }).blur(function() {
      if ($.trim($(this).val()) === '') {
        $(this).addClass('default').val(defaultValue);
      }
    });
    $(this).find('input').val(defaultValue);
    $(this).find('textarea').text(defaultValue);
  });
  return this;
};

$.fn.validate = function() {
  this.each(function() {
    if (!$(this).find('div.required')[0]) {
      return true;
    }

    $(this).submit(function() {
      var isFormValid = true;
      $(this).find('div.required').each(function() {
        var fieldValue = $(this).find('input, textarea').val();
        if (fieldValue === '') {
          $(this).addClass('field_ko');
          isFormValid = false;
        } else if ($(this).hasClass('email') && !(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/).test(fieldValue)) {
          $(this).addClass('field_ko').find('.errorNotice-message').text(err_messages.email);
          isFormValid = false;
        } else if ($(this).hasClass('confirmemail') && $(this).prev().find('input').val().toLowerCase() !== fieldValue.toLowerCase()) {
          $(this).addClass('field_ko').find('.errorNotice-message').text(err_messages.confirmemail);
          isFormValid = false;
        } else {
          if ($(this).hasClass('emails')) {
            var emailsValid = true;
            splitFieldValue = fieldValue.split(',');
            $.each(splitFieldValue, function(i) {
              if ($.trim(splitFieldValue[i]) === '') {
                return true;
              }
              emailsValid = (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/).test($.trim(splitFieldValue[i]));
              return emailsValid;
            });
            if (!emailsValid) {
              $(this).addClass('field_ko').find('.errorNotice-message').text(err_messages.emails);
              isFormValid = false;
              return true;
            }
          }
          $(this).removeClass('field_ko');
        }
      });
      if (!isFormValid) {
        $(this).prev().empty().append($(err_messages.box));
        $.scrollTo('#error_box', 500);
      }
      return isFormValid;
    });
  });
  return this;
};

$.fn.ajaxNav = function() {
  $('#banner-families, #banner-kdp').addClass('animatedBanner');
  
  this.find('li:not(.no-ajax)').find('a').each(function() {
    var that = $(this);
    $.ajax({
      type: 'GET',
      url: 'inc' + that.attr('href'),
      cache: false,
      success: function(response, status) {
        that.data('ajaxedContent', $(response));
        var imgsToPreload = $(response).find('img');
        for (var i = 0; i < imgsToPreload.length; i++) {
          $.preloadImgs([imgsToPreload.eq(i).attr('src')]);
        }
      }
    });
  }).click(function() {
    if ($(this).parent('li').is(':not(.selected)')) {
      $('#content').replaceWith($(this).data('ajaxedContent'));
      $(this).parent('li').addClass('selected').siblings().removeClass('selected');
      
      if ($('#banner-families')[0]) {
        $('#banner-families').animate({backgroundPosition: '-1011px 8px'}, 250).attr('id', 'banner-kdp');
      } else if($('#banner-kdp')[0]) {
        $('#banner-kdp').animate({backgroundPosition: '-10px 8px'}, 250).attr('id', 'banner-families');
      }
    }
    return false;
  });
  
  return this;
};

$.slideshow = function() {
  var sl = $('#news');
  var sl2 = $('#home-intro');
  if (!sl[0]) {
    return false;
  }
  var slStates = $('#home-intro .home-intro-state');
  var slNav = $('#home-intro li');
  
  var slnStates = $('#news .news-intro-state');
  var slnNav = $('#news li');
  
  slNav.click(function() {
    var current = slNav.index(slNav.filter('.selected')[0]);
    var destination = slNav.index($(this));
    if (destination === current) {
      return false;
    }
    slStates.eq(current).css({zIndex: 100});
    slStates.eq(destination).css({zIndex: 95, opacity: 1});
    slStates.eq(current).animate({opacity: 0}, 250, function() {
      $(this).css({zIndex: 50, opacity: 1});
    });
    slNav.removeClass('selected');
    $(this).addClass('selected');
    return false;
  });

  var t = setTimeout('slideshowPlay()', 7500);

  slideshowPlay = function() {
    var current = slnNav.index(slnNav.filter('.shown')[0]);
    var destination = current+1 >= slnNav.length ? 0 : current+1;
    slnStates.eq(current).css({zIndex: 100});
    slnStates.eq(destination).css({zIndex: 95, opacity: 1});
    slnStates.eq(current).animate({opacity: 0}, 250, function() {
      $(this).css({zIndex: 50, opacity: 1});
    });
    slnNav.eq(current).removeClass('shown').end().eq(destination).addClass('shown');
    t = setTimeout('slideshowPlay()', 7500);
  };
};

$.quoteGetStarted = function() {
  $('div.field div.details').each(function() {
    $(this).hide();
  });
  $('#quote-details #when').change(function() {
    if ($(this).find('option:selected').val() === 'specific') {
      $(this).next().show();
    } else {
      $(this).next().hide();
    }
  });
};

$.setupBuyPackForm = function() {
  if (!$('#acct')[0]) {
    return false;
  }
  
  var cc_fields = $('#acct, #expdatem, #expdatey, #cvv2, #cc_sameinfo');
  var cc_billing_fields = $('#cc_company, #cc_firstname, #cc_lastname, #cc_street, #cc_city, #cc_state, #cc_zip, #cc_country');
  
  $.fn.toggleFields = function() {
    if (this.find('option:selected').val() === 'ch') {
      cc_fields.attr('disabled', true);
      cc_billing_fields.attr('disabled', true);
    } else {
      cc_fields.removeAttr('disabled');
      cc_billing_fields.removeAttr('disabled');
    }
    return this;
  };
  
  $.fn.toggleBillingFields = function() {
    if (this.is(':checked') || this.is(':disabled')) {
      cc_billing_fields.attr('disabled', true);
    } else {
      cc_billing_fields.removeAttr('disabled');
    }
    return this;
  };
  
  $('#method').toggleFields().change(function() {
    $(this).toggleFields();
  });
  
  $('#cc_sameinfo').toggleBillingFields().click(function() {
    $(this).toggleBillingFields();
  });
};

// init
$(function() {
  $('form div.default').actsAsDefault();
  $('form').validate();
  $('#nav-sub.ajax').ajaxNav();
  $.quoteGetStarted();
  $.setupBuyPackForm();
  $.slideshow();
});
