var AjaxSearch_delayTimer = null;
var NavigationHoverOpen_timer = null;
var ProductCarousel = 0;

function DisableAutoScroll(karuselli) {
  karuselli.buttonNext.bind("click", function() { karuselli.startAuto(5); });
  karuselli.buttonPrev.bind("click", function() { karuselli.startAuto(5); });
  karuselli.clip.hover(
    function() { karuselli.stopAuto(); },
    function() { karuselli.startAuto(5); }
  );
}

function NavigationHoverOpener(activated, element) {
  if(activated == true) {
    NavigationOpen_timer = true;
    DoAction = function(){ element.click(); };
    NavigationHoverOpen_timer = window.setTimeout(DoAction, 1250);
  } else {
    window.clearTimeout(NavigationHoverOpen_timer);
    NavigationOpen_timer = false;
  }
}

function AjaxSearch_loader(cmd) {
  var loader = $("#SearchAjax_loader");
  if(cmd == false) {
    loader.fadeOut(300);
  } else {
    loader.fadeIn(300);
  }
}

function AjaxSearch_delay() {
  if($("#SearchForm_ajaxResult").css("display") != "none") {
    $("#SearchForm_ajaxResult").fadeOut(200);
  }
  if(AjaxSearch_delayTimer != null) {
    window.clearTimeout(AjaxSearch_delayTimer);
  }
  AjaxSearch_delayTimer = window.setTimeout("AjaxSearch()", 500);
}

function AjaxSearch() {
  var SearchQuery = $("#SearchForm-Frame input[name=q]").attr("value");
  if(SearchQuery.length < 3) SearchQuery = "";
  if(SearchQuery == "") {
    AjaxSearch_loader(false);
  } else {
    $.get("/search/", {
      q: SearchQuery
    }, function(data){
      var SearchResult = $("div#AjaxSearch-results-frame", data).html();
      parseSearchResult(SearchResult, SearchQuery, 7);
    });
  }
}

function parseSearchResult(result, query, limit) {

  if($("li.ListProduct", result).length == 0) {

    $("#SearchForm_ajaxResult").html('<div class="info">' + Search_NoResults + '</div>');
    $("#SearchForm_ajaxResult").slideDown(350, function(){
      AjaxSearch_loader(false);
    });

  } else {

    var i = 0;
    var query = query.replace(/ /g, "+");
    $("#SearchForm_ajaxResult").html(result);
    var AjaxSearch_list = "<ul>";

    $("#SearchForm_ajaxResult li.ListProduct").each(function(){
      var productElement = $(this);
      var productName = productElement.find(".ProductName a").text();
      var productLink = productElement.find(".ProductName a").attr("href");
      var productImage = productElement.find(".ListImage img").attr("src");
      if(i < limit) {
        AjaxSearch_list += '<li><a href="' + productLink + '"><div class="ProductImage" style="background: transparent url(' + productImage + ') no-repeat center center;" title="' + productName + '"></div><div class="ProductName"><span>' + productName + '</span></div><div class="ClearBreaker"></div></a></li>';
      }
      i++;
    });

    AjaxSearch_list += '</ul>';
    if(i > limit) {
      AjaxSearch_list += '<div id="Search_MoreResults"><a href="/search/?q=' + query + '">' + Search_ViewMoreResults + ' »</a></div>';
    } else {
      AjaxSearch_list += '<div id="Search_MoreResults"><a href="/search/?q=' + query + '">' + Search_OpenSearchWindow + ' »</a></div>';
    }
    $("#SearchForm_ajaxResult").html(AjaxSearch_list);
    $("#SearchForm_ajaxResult").fadeIn(350, function(){
      AjaxSearch_loader(false);
    });

  }

}

$(function(){

  //JavaScriptin näyttämät elementit (JavaScriptillä toimivat tapahtumat --> piilossa härnäämästä, jos JS ei käytössä)
  $(".js-show").css("display", "inline-block");

  // Otetaan teksti talteen, niin on mistä palauttaa
  var AskProduct_TriggerDefault = $("a#AskProduct-trigger").text();

  // Kysy tuotteesta -lomakkeen aktivointi
  $("a#AskProduct-trigger").click(function(){
    var formElement = $("div#AskAboutProduct-form");
    if(formElement.css("display") == "none") {
      formElement.fadeIn(500);
      $("a#AskProduct-trigger").text(AskProduct_TriggerDefault_close);
    } else {
      formElement.fadeOut(750);
      $("a#AskProduct-trigger").text(AskProduct_TriggerDefault);
    }
    return false;
  });

  // Katsotaan mitkä tuotekarusellin kohdat ei ole käytössä
  // ja muutetaan toimintaa sen pohjalta (pois, lisää, jne...)

  if($("#CrossSaleProducts").text() == "") {
    $("#CrossSaleProducts-frame").remove();
  } 
  if($("#SimilarProducts").text() == "") {
    $("#SimilarProducts-frame").remove();
  } 
  if($("#CompatibleProducts").text() == "") {
    $("#CompatibleProducts-frame").remove();
  } 

  // Colorboxi tuotekuville
  $("#CurrentProductImage").colorbox();

  // Etusivun banneri
  $("div#FrontpageBanner").nivoSlider();

  // Hakekentän muotoilut
  $("#SearchForm-Frame input[name=q]").attr({
    "value": Search_InputDefaultTest,
    "autocomplete": "off"
  }).addClass("unfocused");
  
  // Hakukenttä aktiivisena
  $("#SearchForm-Frame input[name=q]").focus(function(){
    if($(this).attr("value") == Search_InputDefaultTest) {
      $(this).attr("value", "").removeClass("unfocused");
    } else {
      $("#SearchForm-Frame input[name=q]").keyup();
    }
  });

  // Kun kirjoittaminen lopetetaan, odotetaan hetki ja tehdään AJAX-haku
  $("#SearchForm-Frame input[name=q]").keyup(function(){
    AjaxSearch_delay();
    AjaxSearch_loader(true);
  });

  // Kun häivytään hakukentästä
  $("#SearchForm-Frame input[name=q]").blur(function(){
    if($(this).attr("value") == "") $(this).addClass("unfocused").attr("value", Search_InputDefaultTest);
    $("#SearchForm_ajaxResult").fadeOut(400);
  });

  // Ostoskorin variaatioiden piilotus
  $("table .CartProduct dl").css("display", "none").addClass("CartEffect-variations");

  // Ostoskorin variaatioiden näyttö kun rotta on päällä
  $("table .CartProduct").hover(function(){
    $(this).find("dl").fadeIn("200");
  },function(){
    $(this).find("dl").fadeOut("100");
  });

  // Navigaation avaaja
  $("div.LeftNaviModule ul.Categories li:has(> ul)").each(function(){
    var NaviElement = $(this);
    NaviElement.addClass("NavigationOpenable");
    if(!NaviElement.hasClass("Current")) {
      NaviElement.prepend('<span class="NavigationOpener Closed"><span>+</span></span>');
    } else {
      NaviElement.prepend('<span class="NavigationOpener Opened"><span>-</span></span>');
    }
    $("> .NavigationOpener", this).click(function() {
      $(this).next("a").next("ul").slideToggle(300);
      NavigationHoverOpener(false, $(this));
      if($(this).text() == "-") {
        $(this).find("span").text("+");
      } else {
        $(this).find("span").text("-");
      }
      $(this).toggleClass("Opened");
    });
    $(".NavigationOpener.Closed").each(function(){
      var OpenerElement = $(this);
      OpenerElement.next("a").next("ul").css("display", "none");
      OpenerElement.removeClass("Closed");
    });
  });

  // Automaattinen avaus hiiren ollessa päällä riittävän kauan
  $(".NavigationOpener").hover(function(){
    NavigationHoverOpener(true, $(this));
  }, function(){
    NavigationHoverOpener(false, $(this));
  });

  // Uutisten häivytys
  $("#NewsFrame ul").innerfade({
    animationtype: 'fade',
    speed: 400,
    timeout: 4000,
    containerheight: '1em'
  });

});

