var ERROR = '<img src="/images/i_error.png" alt="Error" width="35" height="35" />';
var OK    = '<img src="/images/i_ok.png" alt="OK!" width="35" height="35" />';
var bubblesDestroyed = 0;
var timers = [];

$(function() {
  
  $("#input-form form").validate({
    rules: {
      code: {
        required: true
      },
      coupon: {
        required: true
      },
      name: {
        required: true,
        minlength: 3
      },
      email: {
        required: true,
        email: true
      },
      phone: {
        required: true
      }
    },
    messages: {
      code:   ERROR,
      coupon: ERROR,
      name:   ERROR,
      email:  ERROR,
      phone:  ERROR
    },
    success: function(label) {
      label.html(OK);
    }
  });
  
  // Bubble fly
  if( !$("body").hasClass("index")) {
    initBubbles();
  }
  
  var sifrActive = " sIFR-active";
  //init menu
  switch( $("body").attr("class")) {
    case "reeglid" + sifrActive:
      id = 1;
      break;
    case "voitjad" + sifrActive :
      id = 2;
      break;
    case "koodid" + sifrActive :
      id = 3;
      break;
    case "tooted" + sifrActive :
      id = 4;
      break;
    default:  
      id = 1;
      break;
  }
  
  //Init menu
  if( !$("body").hasClass("index")) {
    var flashvars = {xmlpath: "/xml/menuTop.xml", selectedMenu: id};
    var params = {bgcolor: "#ffffff", wmode: "transparent"};
    var attributes = {id: "menu"};
    swfobject.embedSWF( "/fl/menu.swf", "mc", "526", "250", "8.0.0", "flash/expressInstall.swf", flashvars, params, attributes );
  } else {
    var flashvars = {xmlpath:"xml/menuTop.xml"};
    var params = {bgcolor: "#ffffff", wmode: "transparent"};
    var attributes = {id:"indexSWF"};
    swfobject.embedSWF( "fl/limpa.swf", "limpa", "960", "890", "9.0.0", "", flashvars, params, attributes );
    swffit.fit("indexSWF", 960, 890);
  }
  
  
  // Init limpa on the cloud
  var params = {bgcolor: "#ffffff", wmode: "transparent"};
  var attributes = {id: "limpson"};
  swfobject.embedSWF( "/fl/limpa_top.swf", "limpson", "360", "260", "8.0.0", "flash/expressInstall.swf", flashvars, params, attributes );
}); // end of main

function initBubbles() 
{
  //First generation is earlier
  generateBubble(3);
  
  timers[0] = setInterval("generateBubble(1)", 1400);
  //timers[1] = setInterval("generateBubble(1)", 3700);
  //timers[2] = setInterval("generateBubble(1)", 1800);
}

function stopBubbleGeneration()
{
  for( var i = 0; i < timers.length; i++) {
    clearInterval(timers[i]);
  }
}

function generateBubble(count)
{
  var type, size, rnd;
  for( var i = 0; i < count; i++) {

    rnd = Math.floor(Math.random() * 3);
    switch(rnd) {
      case 0:
        type = "small";
        size = 35;
        break;
      case 1:
        type = "medium";
        size = 65;
        break;
      case 2:
        type = "large";
        size = 75;
        break;
      default:
        type = "medium";
        size = 65;
        break;
    }
    
    var div = $("<div></div>").addClass("bubble");
    var im = $("<img></img>")
              .attr("alt", "")
              .attr("width", size)
              .attr("height", size)
              .attr("src", "/images/b" + type + ".png");
    div.append(im);
    div
      .bind("mouseover", function() {
       // Kill the bubble on mouser over :-)
       
       // Sound is too slow
       //$.sound.play("/fl/pop.wav");
       bubblesDestroyed++;
       $(this)
        .children("img")
        .animate( { width: "+=15", height: "+=15" }, 80, function() {
          $(this).remove();
        });
       if( bubblesDestroyed % 1000 == 0) {
         alert("Palju õnne!\nSee on sinu " + bubblesDestroyed + ". mull.\nAga sa ei saa mitte midagi selle eest! :( ");
       }
      })
      .css("top", Math.random() * 100 + parseInt($("#wrapper").height()) + 100)
      .css("left", Math.random() * 800 + 50)
      .appendTo("#wrapper")
      //.fadeIn("slow") //Shity IE
      .show()
      .dequeue()
      .animate(
       {
         top: -(Math.random() * 50 + 50),
         left: Math.random() * 650 - 100
       },
       Math.random() * 4000 + 10000,
       "linear",
       function() { $(this).remove(); }
      );
  }
}
