$(document).ready(function() {	

//z-index fix for IE < 8, do not remove!
$(function() {
	var zIndexNumber = 1000;
	$('#submenu ul li').each(function() {
		$(this).css('zIndex', zIndexNumber);
		zIndexNumber -= 10;
	});
});

//Uniform call, do not remove and do not add input:text or input[type=text] here. Text has its own styling in main css.
$("input:checkbox, input:radio, input:file").uniform();
$('select').not('.nouniform').uniform();
$(".selector").addClass("rounded");

// functionality for simple submenu
$("#submenu.simple > ul > li").mouseenter(function(){
	$(this).find(".sub").show();
}).mouseleave(function(){
	$(this).find(".sub").hide();
});

// functionality for accordion submenu
$("#submenu.accordion > ul > li > a").click(function() {
  $(this).parent().parent().find("ul").slideUp("normal");
  $(this).parent().find("ul").slideDown("normal");
});

// additional styling of eleemnts... because of IE
$("#submenu > ul > li:first-child").addClass("rounded-top first-child");
$("#submenu > ul > li:first-child > a").addClass("rounded-top");
$("#submenu.simple > ul > li > .sub > li:first-child").addClass("rounded-top first-child");
$("#submenu.simple > ul > li > .sub > li:first-child > a").addClass("rounded-top");
$("#submenu > ul > li:last-child").addClass("rounded-bottom");
$("#submenu > ul > li:last-child > a").addClass("rounded-bottom");
$("#submenu.simple > ul > li > .sub > li:last-child").addClass("rounded-bottom");
$("#submenu.simple > ul > li > .sub > li:last-child a").addClass("rounded-bottom");

$(".list-images ul li:nth-child(3n)").addClass("remove");

$(".list-images.horizontal").each(function(){
	$(this).find("li").slice(0,3).addClass("remove-top");
});


$(".list-best .list-images ul li:first-child").addClass("remove-top");
$(".list-best ul li:nth-child(3n)").addClass("remove");

$(".list-categories > ul > li:nth-child(3n)").addClass("remove");
$(".list-categories > ul > li > ul > li:first-child").addClass("first-child");

$(".list-sellers > ul > li:first-child").addClass("rounded-left");
$(".list-sellers > ul > li:first-child > a").addClass("rounded-left");
$(".list-sellers > ul > li:last-child").addClass("rounded-right last-child");
$(".list-sellers > ul > li:last-child > a").addClass("rounded-right");

$("table.cart tr:nth-child(2n)").addClass("color");

/* expandable element */
$(".expand").click(function(){
	$(this).parent().find(".on").slideDown("normal");
	if ($(this).hasClass("autohide")) {
		$(this).fadeOut("fast");
	}
});
/* -- */

/* -------------- register box --------------------- */
$("#register-box, #register-box2").click(function(e){
	$("#lightbox").css("filter", "alpha(opacity=90)");
  $('#recovery').hide(); $('#registration').show();// show only registration box
  $("#lightbox, #lightbox-panel").fadeIn(300);
  e.preventDefault();
})
/* recovery password */
$('#recovery_password').click(function(e) {
	$("#lightbox").css("filter", "alpha(opacity=90)");
  $('#registration').hide(); $('#recovery').show();// show only registration box
  $("#lightbox, #lightbox-panel").fadeIn(300);  
  e.preventDefault();
})
/* register submit*/
$('#register_submit').click(function(e) {
  if(can_submit()) {
    $('#registration').submit();
    $("#lightbox, #lightbox-panel").fadeOut(300);
  }
  e.preventDefault();
})
/* recovery submit*/
$('#recovery_submit').click(function(e) {
  if(can_submit(1)) {
    $('#recovery').submit();
    $("#lightbox, #lightbox-panel").fadeOut(300);
  }
  else e.preventDefault();
})
/* lightbox close */
$("#lightbox, #lightbox-close").click(function(){
  $("#lightbox, #lightbox-panel").fadeOut(300);
});

/*ajax validation */
$('#registration input').blur(function() {
  var val = $(this).val();
  var field = $(this).attr('name');
  $.ajax({
    type:     'POST',
    url:      url_ajax_validate,
    dataType: 'JSON',
    data:   field + '=' + val,
    success:  function(data) {
      if(!data.validate) {
        for(var k in data ) 
          if($('#error-' + k + ' span').length > 0) $('#error-' + k + ' span').text(data[k]).parent('div').fadeIn(200, function() {
            can_submit();
          });
      }
      else {
        for(var k in data)
          if($('#error-' + k).length > 0) $('#error-'+k).fadeOut(200, function() {
            can_submit();
          }); 
      }      
    }
  });
})
/* ajax validation for recovery */
$('#recovery input').blur(function() {
  var val = $(this).val();
  var field = $(this).attr('name');
  $.ajax({
    type:     'POST',
    url:      url_ajax_validate,
    dataType: 'JSON',
    data:   field + '=' + val,
    success:  function(data) {
      if(!data.validate) {
        for(var k in data ) 
          if($('#error_recovery-' + k + ' span').length > 0) $('#error_recovery-' + k + ' span').text(data[k]).parent('div').fadeIn(200, function() {
            can_submit(1);
          });
      }
      else {
        for(var k in data)
          if($('#error_recovery-' + k).length > 0) $('#error_recovery-'+k).fadeOut(200, function() {
            can_submit(1);
          }); 
      }      
    }
  });
})
/* --------------------------------------------------- */

/* ------------------------tooltip ---------------------------------- */
$(".tip").append("<span class=\"arrow\"></span>");
$(".tip").addClass("rounded");
$(".tooltip img").mouseenter(function(){
	$(this).parent().find(".tip").show();
}).mouseleave(function(){
	$(this).parent().find(".tip").hide();
	});
/* -- */

/* Animacje flashowych wiadomości*/
$('.flash_message').fadeIn(1000).delay(1000).fadeOut(1000);

$('.gotop').click(function(){
	$('html, body').animate({scrollTop:0}, 'slow');
	return false;
});

/*  -------------------------------- cleditor ------------------------ */
$('textarea.cleditor-min').cleditor({
  controls: 'bold italic underline | link unlink'
});

/* autoclear function for inputs */
$('.autoclear').click(
function() {
if (this.value == this.defaultValue) {
this.value = '';
}
}
);
$('.autoclear').blur(
function() {
if (this.value == '') {
this.value = this.defaultValue;
}
}
);					   

});

/**
 * loader innych funkcji => wykonuje je po wciśnieciu kl;awisza keyup i upływie określonego czasu
 * @param selector jquery selector
 * @param action nazwa funkcji z nawiasami
 * @param delay czas po jakim funkcja się odpali
 */
function loaderTime(selector, action, delay){
  jQuery(selector).keyup(function(){
    if(typeof(window['inputTimeout']) != "undefined"){
      clearTimeout(inputTimeout);
    }  
    inputTimeout = setTimeout(action, delay);
  });
}

/**
 *Funkcja, która sprawdza czy są błędy w rejestracji, jeśli tak blokuje submita (który jest linkiem)
 *@param bool form typ sprawdzania jesli null to sprawdza registration form jesli nie null to sprawdza forme recovery
 *@return bool true mozna wysłać formularz, flase nie można
 */
function can_submit(form) {
  var register = true, recovery = true;  
  if(form) {
    if($('#recovery .error-lightbox:visible').length > 0) recovery = false;
    if(recovery) $('#recovery_submit').removeClass('grey').addClass('orange');
    else $('#recovery_submit').removeClass('orange').addClass('grey');
    return recovery;
  }
  else {
    if($('#registration .error-lightbox:visible').length > 0) register = false;
    $('#registration input').each(function() {//blokada dla defaultowych wartości
      if($(this).val() == 'e-mail' || $(this).val() == 'hasło') register = false;
    })
    if(register) $('#register_submit').removeClass('grey').addClass('orange');
    else $('#register_submit').removeClass('orange').addClass('grey');   
    return register;
  }
}


