﻿ /*
  *  Il menu utilizza le funzioni di slide per aprire e chiudere i box.
  *  I sottobox dipendono dal padre.
  *
  *  All'occorenza il box cambia i suoi effetti se la variabile
  *  paginaAttuale è settata su 'otherpage'
  *
  */

function kayanoBoxMenu() {
  $(".title").click(function () {
    if ($(this).parent().hasClass("open")) {
      //  Adesso attenzione, dobbiamo trovare box e i suoi nipoti
      //  per cambiare il loro comportamento
      $(this).siblings(".menu:first").find(".active").removeClass("active").find(".open").removeClass("open");
    }
    else {
      //  stessi problema di prima
      if ($(this).parent().hasClass("otherpage")) {
        $(this).parent().removeClass("bagliore");
        $(this).parent().addClass("ombra");
        $(this).addClass("esc");
      }
    }
    // la funzione slideToggle è perfetta
    $(this).siblings(".menu:first").slideToggle('slow', function () {
      if ($(this).parent().hasClass("open")) {
        $(this).parent().removeClass("open");
        if ($(this).parent().hasClass("otherpage")) {
          $(this).parent().removeClass("ombra");
          $(this).parent().addClass("bagliore");
          $(this).siblings(".title:first").removeClass("esc");
        }
      }
      else {
        $(this).parent().addClass("open");
      }
    });
  });


  $(".minititle").click(function () {
    $(this).parent().siblings(".active").removeClass("active");
    $(this).parent().parent().find(".open").removeClass("open");
    $(this).parent().addClass("active");
    $(this).siblings(".minibox").addClass("open");
    $(this).parent().find("css3-container").hide();
    $(this).siblings("css3-container").show();
  });

  $("p.esc").click(function () {
    $(this).parent().removeClass("open");
    $(this).parent().siblings("css3-container").hide();
    $(this).parents().removeClass("active");
  });
}

 /*
  *  Il box di questione in origine è stato progettato con un effetto
  *  rimbalzo, ma esigenze lavorative hanno spinto per un effetto slide
  *  più semplice.
  *
  *  Il box si plasma a seconda dell'ambiente basta rispettarne la struttura
  *
  */

function kayanoExpandBox() {
  // Nascondiamo i figli di expand
  $(".expand").children("span").hide();

  // Cicliamo finché non abbiamo in full la sommatoria delle altezze dei figli di div
  var full = 0;
  var little = $(".expand").prev("div").height();
  $(".expand").prev("div").children().each(function (index, child) {
    full = full + $(child).height();
  });

  // Cerchiamo di capire se è necessarrio implementare lo script confrontando le altezze
  if (full < little + 2 ) {
    return;
  }
  else {
    $(".expand").prev("div").css({ 'max-height': full, 'height': little });
    $(".expand").children("span:first").show();
  }

  // Tutto pronto per gestire l'animazione al click
  $(".expand").click(function () {
    if ($(this).prev("div").height() == little) {
      $(this).children("span:first").hide();
      $(this).prev("div").animate({ 'height': full }, 'slow', 'linear', function () {
        $(this).height(full);
        $(this).next(".expand").children("span:last").show();
      });
    }
    else {
      $(this).children("span:last").hide();
      $(this).prev("div").animate({ 'height': little }, 'slow', 'linear', function () {
        $(this).height(little);
        $(this).next(".expand").children("span:first").show();
      });
    }
  });
}

// Da usare raramente...
function kayanoMultiAnchor() {
  $(".OpenCloseAll").click(function () {
    $(".OpenCloseElement").slideToggle('slow');
  });
}


 /*
  *  Slide minimale grazie ad un semplice effetto toggle
  *  (se è chiuso si apre e viceversa)
  *
  */

function kayanoSlideFancy() {
  // inizializzo il menu
  $(".slide").before(function () {
    if ($(this).next("div").hasClass("close")) {
      $(this).find("span").removeClass("gegiu");
      $(this).find("span").addClass("gepiu");
    }
    else
    // scollbar se necessaria
      $(this).next("div").jScrollPane({ verticalDragMinHeight: 20, verticalDragMaxHeight: 60 });
  });

  // funzione toggle al click
  $(".slide").click(function () {
    $(this).next("div").slideToggle('slow', function () {
      if (!$(this).hasClass("close")) {
        $(this).addClass("close");
        if ($(this).prev("div").find("span").hasClass("gegiu")) {
          $(this).prev("div").find("span").removeClass("gegiu");
          $(this).prev("div").find("span").addClass("gepiu");
        }
      }
      else {
			  $(this).jScrollPane({ verticalDragMinHeight: 20, verticalDragMaxHeight: 60 });
        $(this).removeClass("close");
        if ($(this).prev("div").find("span").hasClass("gepiu")) {
          $(this).prev("div").find("span").removeClass("gepiu");
          $(this).prev("div").find("span").addClass("gegiu");
        }
      }
    });
  });
}

$(document).ready(function () {
  kayanoBoxMenu();
  kayanoExpandBox();
  kayanoSlideFancy();
  kayanoMultiAnchor();
});

