
// --------------------------------------------------------------------------------------
// tab menu

function initMenu() {
  $("#selectedMenu").addClass("selectedTab");
  var unselectedMenus = $("#menuTabs > div").not("#selectedMenu");
  unselectedMenus.addClass("unselectedTab");
  unselectedMenus.hover(function() {
    $(this).removeClass("unselectedTab");
    $(this).addClass("overTab");
  },function(){
    $(this).removeClass("overTab");
    $(this).addClass("unselectedTab");
  });
  $("#freeButton").hover(function() {
    $(this).css("background-image", "url(img/big-button_over.gif)");
  },function(){
    $(this).css("background-image", "url(img/big-button.gif)");
  });
}

// --------------------------------------------------------------------------------------
// images

function preloadImages() {
  new Image().src = "img/big-button_over.gif";
}

// --------------------------------------------------------------------------------------
// slideshow

var slides = ['slide1', 'slide2', 'slide3', 'slide4'];
var currentSlideIndex = 0;
var currentSlide = slides[currentSlideIndex];
var currentImage;
var currentText;

var SlideFadeIn = function() {
  currentImage = currentSlide + '-image';
  YAHOO.util.Dom.setStyle(currentImage, 'visibility', 'visible');
  currentText = currentSlide + '-text';
  YAHOO.util.Dom.setStyle(currentText, 'visibility', 'visible');

  var imgFadeIn = new YAHOO.util.Anim(currentImage, { opacity: { to: 1.0 } }, 2, YAHOO.util.Easing.easeOut);
  imgFadeIn.onComplete.subscribe(function() {
    window.setTimeout(SlideFadeOut, 1000);
  });
  var textFadeIn = new YAHOO.util.Anim(currentText, { opacity: { to: 1.0 } }, 2, YAHOO.util.Easing.easeOut);

  imgFadeIn.animate();
  textFadeIn.animate();
}

var SlideFadeOut = function() {
  var imgFadeOut = new YAHOO.util.Anim(currentImage, { opacity: { to: 0.0 } }, 3, YAHOO.util.Easing.easeIn);
  imgFadeOut.onComplete.subscribe(function() {
    YAHOO.util.Dom.setStyle(currentImage, 'visibility', 'hidden');
    if (++currentSlideIndex >= slides.length) currentSlideIndex = 0;
    currentSlide = slides[currentSlideIndex];
    window.setTimeout(SlideFadeIn, 100);
  });
  var textFadeOut = new YAHOO.util.Anim(currentText, { opacity: { to: 0.0 } }, 3, YAHOO.util.Easing.easeIn);
  textFadeOut.onComplete.subscribe(function() {
    YAHOO.util.Dom.setStyle(currentText, 'visibility', 'hidden');
  });

  imgFadeOut.animate();
  textFadeOut.animate();
}

function initBanner() {
  SlideFadeIn();
}

// --------------------------------------------------------------------------------------
// Price

var USD_USER = 21;
var USD_ADMIN = 25;
var EUR_USER = 19;
var EUR_ADMIN = 23;
var CHF_USER = 29;
var CHF_ADMIN = 35;
var offerDiscount = 0.3;
var slope = 0.004489795918367;
var intercept = -slope;

var usersDiscountPercent = function(x) {
  return x * slope + intercept;
}

var recomputeTotals = function() {
  var usersSelect = YAHOO.util.Dom.get('usersSelect');
  var users = eval(usersSelect.options[usersSelect.selectedIndex].getAttribute('value'));
  var administratorsSelect = YAHOO.util.Dom.get('administratorsSelect');
  var administrators = eval(administratorsSelect.options[administratorsSelect.selectedIndex].getAttribute('value'));

  // tot per users and admins w/out discounts
  var totUSD = changeContent('usersUSD', users * USD_USER) + changeContent('administratorsUSD', administrators * USD_ADMIN);
  var totEUR = changeContent('usersEUR', users * EUR_USER) + changeContent('administratorsEUR', administrators * EUR_ADMIN);
  var totCHF = changeContent('usersCHF', users * CHF_USER) + changeContent('administratorsCHF', administrators * CHF_ADMIN);

  // grand tot w/out discount
  changeContent('totUSD', totUSD);
  changeContent('totEUR', totEUR);
  changeContent('totCHF', totCHF);

  // discount
  var usersDiscount = usersDiscountPercent(users + administrators);
  changeContent('usersDiscount', (usersDiscount * 100), false, '%');
  changeContent('totDiscount', ((usersDiscount + offerDiscount) * 100), false, '%');
  var discountUSD = changeContent('discountUSD', Math.round(totUSD * (usersDiscount + offerDiscount)), true);
  var discountEUR = changeContent('discountEUR', Math.round(totEUR * (usersDiscount + offerDiscount)), true);
  var discountCHF = changeContent('discountCHF', Math.round(totCHF * (usersDiscount + offerDiscount)), true);

  // grand tot w/ discount
  changeContent('totMonthlyUSD', totUSD - discountUSD);
  changeContent('totMonthlyEUR', totEUR - discountEUR);
  changeContent('totMonthlyCHF', totCHF - discountCHF);

  // contact
  if (users + administrators > 50) {
    YAHOO.util.Dom.setStyle('contactForMore', 'color', 'red');
  }
  else {
    YAHOO.util.Dom.setStyle('contactForMore', 'color', 'black');
  }
};
var changeContent = function(id, n, neg, suffix) {
  var rounded = Math.round(n);
  $('#' + id).empty();
  $('#' + id).append((typeof neg != 'undefined' && neg ? '- ' : '') + rounded + (typeof suffix != 'undefined' ? suffix : ''));
  return rounded;
}
var addSelectValues = function(selectId) {
  var select = YAHOO.util.Dom.get(selectId);
  for (i = 0; i < 50; ++i) {
    select.options[i] = new Option(i + 1, i + 1);
  }
};

$(document).ready(function() {
  if (typeof YAHOO.util.Dom.get('usersSelect') != 'undefined') {
    try {
      $('#usersSelect').change(recomputeTotals);
      $('#administratorsSelect').change(recomputeTotals);
      addSelectValues('usersSelect');
      addSelectValues('administratorsSelect');
      recomputeTotals();
    }
    catch (e) { }
  }
});

