// mouse stay
(function( $ ){
  $.fn.mouseStay = function( options ) {
    var settings = {
      // The handler will start if the mouse stays more than the specified milliseconds inside that element
      delayTime : 800,
      handler: function(){}
    };

    return this.each(function() {
      if(this.mouseStayScheduledHandler){
        clearTimeout(this.mouseStayScheduledHandler);
      }

      //TODO unbind the already bound mousehandlers

      if ( options ) {
        $.extend( settings, options );
      }

      $(this).mousemove( function(event){
        var _this = this;
        if(this.mouseStayScheduledHandler){
          clearTimeout(this.mouseStayScheduledHandler);
        }
        this.mouseStayScheduledHandler = setTimeout(function(){
            settings.handler.call(_this);
          }, settings.delayTime);
      });

      $(this).mouseleave(function(){
        if(this.mouseStayScheduledHandler){
          clearTimeout(this.mouseStayScheduledHandler);
        }
      });
    });
  };
})( jQuery );

// basic
var _$ = function(elmId)
{
	return document.getElementById(elmId);
}

function setEvent(obj, event, fnc)
{
	try {
		return obj.attachEvent(event, fnc);
	} catch (e) {
		return obj.addEventListener(event.replace(/^on/, ''), fnc, false);
	}
}

function InputDefaultValueOnFocus(e)
{
	e = e || window.event;
	elm = e.srcElement || e.target;

	InputDefaultValue.eventFocus(elm);
}

function InputDefaultValueOnBlur(e)
{
	e = e || window.event;
	elm = e.srcElement || e.target;

	InputDefaultValue.eventBlur(elm);
}

var InputDefaultValue = {

	'settings' : {},

	'add' : function(elmId, defaultValue, autoClear, required, styles)
	{
	   var elm = _$(elmId);

		if(!elm)
		{
		   return null;
		}
		else
		{
			InputDefaultValue.settings[elm.id] = {
			   'elmId' : elmId,
			   'defaultValue' : defaultValue,
			   'autoClear' : autoClear,
			   'required' : required,
			   'styles' : styles
			};

			setEvent(elm, 'onfocus', InputDefaultValueOnFocus);
			setEvent(elm, 'onblur', InputDefaultValueOnBlur);

			this.eventBlur(elm);
		}
	},

	'eventBlur' : function(elm)
	{
	   var sett = InputDefaultValue.settings[elm.id];

	   if(!elm.value.length && sett.required)
	   {
	      elm.value = sett.defaultValue;
	   }

	   if(typeof(sett.styles) == 'object' && elm.value == sett.defaultValue)
		{
			var key;
			for(key in sett.styles)
			{
			   elm.style[key] = sett.styles[key];
			}
		}
	},

	'eventFocus' : function(elm)
	{
	   var sett = InputDefaultValue.settings[elm.id];

	   if(elm.value == sett.defaultValue && sett.autoClear)
	   {
	      elm.value = '';
	      if(typeof(sett.styles) == 'object')
			{
				var key;
				for(key in sett.styles)
				{
				   elm.style[key] = '';
				}
			}
	   }
	},

	'clear' : function(elm)
	{
		var sett = InputDefaultValue.settings[elm.id];
	   if(elm.value == sett.defaultValue)
	      elm.value = '';
	}
}


// velke obrazky hp
$banners = null;

$(document).ready( function() {
	$banners = $('.bnnr-in').find('.item');

	$banners.each( function(idx) {
		$this = $(this);
		$this.css('left', idx * $this.width());

		if(idx == 0)
			$this.addClass('active');
	});

	if($banners.size() == 1 || $banners.size() == 0)
	{
		$('.bnnr-next').css('display', 'none');
		$('.bnnr-prev').css('display', 'none');
	}

	$('.top-area').find('.bnnr-prev').bind('click', function() {

		if($(':animated').size())
			return;

		$banner = $banners.filter('.active');

		if($banner.prev('.item').size() != 0)
			$prev = $banner.prev('.item');
		else
			$prev = $banners.last('.item');

		if($prev.hasClass('active'))
			return;

		$banner.removeClass('active');
		$prev.addClass('active');

		var width = $banner.width();

		$banner.animate( { left : width }, 1200, 'swing');
		$prev.css('left', '-'+ width +'px');
		$prev.animate( { left : 0 }, 1200, 'swing');
	});

	$('.top-area').find('.bnnr-next').bind('click', function() {

		if($(':animated').size())
			return;

		$banner = $banners.filter('.active');

		if($banner.next('.item').size() != 0)
			$next = $banner.next('.item');
		else
			$next = $banners.first('.item');

		if($next.hasClass('active'))
			return;

		$banner.removeClass('active');
		$next.addClass('active');

		var width = $banner.width();

		$banner.animate( { left : -width }, 1200, 'swing');
		$next.css('left', width+'px');
		$next.animate( { left : 0 }, 1200, 'swing');
	});
});

// bannery partneri dole
	$(document).ready(function(){
   	$('.partners-in').bxSlider({
      	displaySlideQty: 4,
			moveSlideQty: 4,
			auto: true,
			randomStart: true,
    		controls: true,
    		autoHover: true,
			nextText: '<span>Další</span>',
			prevText: '<span>Předchozí</span>',
			pause: 5000,
			speed: 1600
		});
  	});
