if (typeof console=="undefined") {
  var console = {
    log: function(x){alert(x);}
  };
}

var movenext = function(){};
jQuery(document).ready(function(){
  var timeout_id = 0;
  var $slides = jQuery('.ui-slider-contener .ui-list-el');

  function moveTo(num) {
		var $slide = jQuery($slides[num]);

    if($slide.hasClass('ui-active')) {
      return false;
    }
    
    $slides.stop(true, true);
		
		$slides.css("z-index", 1);
    $slides.filter(".ui-active").css("z-index", 2).removeClass("ui-active");
    $slide.css("opacity", 0).css("z-index", 3).addClass("ui-active");
		$slide.animate({opacity: 1}, 1000);
		    
    return true;
  }
   
	 
  function next(num) {
    if(num >= $slides.size()) {
      num = 0;
    } else {
      num = num + 1;
    }
    moveTo(num);
    timeout_id = setTimeout('movenext('+num+')', 3000);
  }
  
	movenext = next;
  next(0);
});


(function($){
  var checkboxClass = 'ui-form-checkbox-mock'
  var checkedClass  = 'ui-form-checkbox-checked';
  var selectClass  = 'ui-form-select-mock';

  function click_on_mock() {
    var $checkbox = $($.data(this, 'checkbox'));
    var $el = $(this);
    if($el.hasClass(checkedClass)) {
      $el.removeClass(checkedClass);
      $checkbox.removeAttr('checked');
    } else {
      $el.addClass(checkedClass);
      $checkbox.attr('checked', 'checked');
    }
  }

  function on_change() {
    var $el = $.data(this, 'element');
    var $checkbox = $(this);

    if($checkbox.is(':checked')) {
      $el.addClass(checkedClass);
    } else {
      $el.removeClass(checkedClass);
    }
  }
  
  function make_checkbox() {
    return this.each(function() {
      var $checkbox = $(this);
      var $el = $('<span class="'+checkboxClass+'"> </span>');
      $el = $checkbox.hide().before($el).prev();

      $.data($el[0], 'checkbox', this);
      $.data(this, 'element', $el);

      $el.click(click_on_mock);
      $checkbox.change(on_change);
      $checkbox.change();
    }); 
  }
  
  function click_on_select_mock() {
    var $this = $($.data(this, 'select'));
    var $el = $(this);
    
    console.log(1);
    if($this.hasClass('ui-active')) {
      $this.slideUp();
    } else {
      $this.slideDown();
    }
  }
  
  function click_on_select_mock_el() {
    console.log(this);
    var $this = $(this);
    $this.parent().slideUp();
  }
  
  function make_select() {
    return this.each(function() {
      var $select = $(this);
      var $selectMock = $('<span class="'+selectClass+'"> </span>');
      $selectMock = $select.hide().before($selectMock).prev();
      
      $select.children().each(function(){
        $selectMock.append('<span class="'+selectClass+'-el">'+$(this).text()+'</span>');
      });
      $.data($selectMock[0], 'select', this);
      $.data(this, 'element', $selectMock[0]);

      $selectMock.click(click_on_mock);
      $selectMock.children().click(click_on_select_mock_el);
    });
  }  


  $.fn.extend({
    makeCheckbox: make_checkbox,
    makeSelect: make_select
  });
})(jQuery);

jQuery(document).ready(function(){
    // jQuery('.ui-form-el-select .ui-form-item').makeSelect();
});


var FormFocusCleaner = {};
(function(ffc){
	/**
	 * onFocus event.
	 * Checks if field has default value if true then clear it for fast field write.
	 *
	 * @param e event data
	 */
	function on_focus(e) {
		//console.log(e.data);
		var el = e.data.el;
		if(el.attr('value') == e.data.inp.text) {
			el.attr('value', '');
		}
	}

	/**
	 * Checks if field is empty if yes put there default value.
	 *
	 * @param e event data
	 */
	function on_blur(e) {
		var el = e.data.el;
		if(el.attr('value') == '') {
			el.attr('value', e.data.inp.text);
		}
	}

	/**
	 * Register events focus and blur on given fields. Field can be text input or
	 * textarea (others not tested).
	 *
	 * inputs is array variable with objects that defines field for script for
	 *
	 * example:
	 * FormFocusCleaner.register([
	 *  {id:'elementdID_1', text:'defaultText_1'},
	 *  {id:'elementdID_2', text:'defaultText_2'}
	 * ]);
	 *
	 * @param array inputs
	 */
	function register_fields(inputs) {
		for(i in inputs) {
			var inp = inputs[i];
			var el = jQuery(document.getElementById(inp.id));
			if(el.size() > 0) {
				if(el.attr('value') == '') {
					el.attr('value', inp.text);
				}
				el.bind('focus', {el: el, inp: inp}, on_focus);
				el.bind('blur', {el: el, inp: inp}, on_blur);
			}
		}
	}

	ffc.register = register_fields;
})(FormFocusCleaner);



var FlodRotator = {};
(function($){
  function Flod(object) {}
  
  Flod.prototype.start = function() { 
    this.perPixelTime = 40;
//    this.goToNext();
  };
  
  Flod.prototype.goToNext = function() {
    if(this.perPixelTime) {
      var fl = this;
      var $ul = $($.data(this, 'flod_element'));
    } else {
      var $ul = $(this);
      var fl = $.data(this, 'flod_rotator');
    }
    
    fl.first = $ul.children().first();
    fl.left = fl.first.width();
    if(fl.left < 0) fl.left = fl.left * -1;
    $ul.animate(
    {
      left: (-1*fl.left)
    },
    fl.left * fl.perPixelTime,
    'linear',
    fl.switchEls
  )
  };
  
  
  Flod.prototype.onMouseOver = function () {
    var $ul = $(this);
    $ul.stop(true, false);
  };
  
  Flod.prototype.onMouseOut = function () {
    var fl = $.data(this, 'flod_rotator');
    var $ul = $(this);
    var tmp = $ul.position().left;
    $ul.animate(
      {left: -1 * fl.left},
      ($ul.left + tmp)*fl.perPixelTime,
      'linear',
      fl.switchEls
    );
  };
  
  Flod.prototype.switchEls = function() {
    var fl = $.data(this, 'flod_rotator');
    var $ul = $(this);
    $ul.append(fl.first);
    $ul.attr('style', '');
    $ul.css('left', 0);
    fl.goToNext();
  };
  
  $.fn.flodRotator = function() {
    $(this).each(function(){
      $(this).parent().addClass('ui-flod-rotator');
      var fl = new Flod(this);
      $.data(this, 'flod_rotator', fl);
      $.data(fl, 'flod_element', this);
      this.goToNext = fl.goToNext;
      fl.start();
      this.goToNext();
    });
  }
})(jQuery);


jQuery(document).ready(function(){
    //jQuery('.ui-slider-contener .ui-list').flodRotator();
});
