function debugJS(obj,div) {
  str='';
	if(typeof obj == 'string' || typeof obj == 'number'){
	  str+=obj;
	}else{
	  for(prop in obj){
	    str+=prop + " value :"+ obj[prop]+(div?"<br />":"\n");
	  }
	}

  if(div){
    document.getElementById(div).innerHTML=str;
	}else{
  	return(str);
	}
}
var self_h;
var posun_h=false;
var casovas_h;
var nemenit_hlavni=false;

function slider_horizontal(){
	var lista;
	var obsah;
	var obsah_cely;
	var vpravo;
	var vlevo;
	var posuvnik_velikost;
	var item;
	var posouvam;
	var sliderOpts;
	var sliderOpts2;
	var lastvalue;
	var lista2;
	var cookies=false;
	var cookies_id;
}

slider_horizontal.prototype = {
  init : function() {
    this.posouvam=false;
    this.lastvalue=0;
    if(this.cookies){
    	Set_Cookie( 'posuvnik_id', this.cookies_id, '', '/', '', '' );
    }
    self_h=this;

		//set length of conveyor
		this.obsah_cely.css("width", this.item.length * parseInt(this.item.css("width")));

    //config
    this.sliderOpts = {
      animate: true,
      orientation: "horizontal",
      min: 0,
      max: this.lista.innerWidth()-this.posuvnik_velikost,
			value: 0,
      slide: function (event, ui) {
        var procent=ui.value/((self_h.lista.innerWidth()-self_h.posuvnik_velikost)/100 );
        var zobrazeni=self_h.obsah_cely.innerWidth()-self_h.obsah.innerWidth();
        if(zobrazeni>0){
          if(event!=null && event.originalEvent.type=="mousemove"){
          	self_h.obsah_cely.css("left", "-" + (zobrazeni/100)*procent + "px");
          	self_h.posouvam=true;
          	self_h.lastvalue=ui.value;
          	if(self_h.cookies){
		        	Set_Cookie( 'posuvnik_hodnota', ui.value, '', '/', '', '' );
		        }
          	
          	if(self_h.lista2){
			        nemenit_hlavni=true;
			        self_h.lista2.slider("value", ui.value);
			        nemenit_hlavni=false;
						}
					}
				}
      },
      change: function (event, ui) {
        var procent=ui.value/((self_h.lista.innerWidth()-self_h.posuvnik_velikost)/100 );
        var zobrazeni=self_h.obsah_cely.innerWidth()-self_h.obsah.innerWidth();
        //alert(debugJS(self_h));
        if(zobrazeni>0 && posun_h){
          self_h.obsah_cely.css("left", "-" + (zobrazeni/100)*procent + "px");
          self_h.lastvalue=ui.value;
          if(self_h.cookies){
	        	Set_Cookie( 'posuvnik_hodnota', ui.value, '', '/', '', '' );
	        }
				}else if(zobrazeni>0 && !self_h.posouvam){
				  var rozdil=ui.value-self_h.lastvalue;
					var pozice=(zobrazeni/100)*procent;
          self_h.obsah_cely.animate({"left": "-" + (pozice-rozdil/3*2) + "px"}, 50, 'linear');
          self_h.obsah_cely.animate({"left": "-" + (pozice-rozdil/3*1) + "px"}, 200, 'linear');
          self_h.obsah_cely.animate({"left": "-" + pozice + "px"}, 400, 'linear');
          self_h.lastvalue=ui.value;
          if(self_h.cookies){
	        	Set_Cookie( 'posuvnik_hodnota', ui.value, '', '/', '', '' );
	        }
				}else{
          self_h.posouvam=false;
				}
				if(self_h.lista2){
          nemenit_hlavni=true;
          self_h.lista2.slider("value", ui.value);
          nemenit_hlavni=false;
				}
      }
  	};
    this.lista.slider(this.sliderOpts);
    if(this.lista2){
      //config
	    this.sliderOpts2 = {
	      animate: true,
	      orientation: "horizontal",
	      min: 0,
	      max: this.lista.innerWidth()-this.posuvnik_velikost,
				value: 0,
	      slide: function (event, ui) {
	        posun_h=true;
	        if(event!=null && event.originalEvent.type=="mousemove"){
          	self_h.lista.slider("value", ui.value);
					}
					posun_h=false;
	      },
	      change: function (event, ui) {
	        if(!nemenit_hlavni){
				  	self_h.lista.slider("value", ui.value);
					}
	      }
	  	};
      this.lista2.slider(this.sliderOpts2);
		}

		this.vpravo.bind("mouseenter", function(e){
		  casovas_h=window.setInterval("posun_plus(5)", 100);
		});
		this.vlevo.bind("mouseenter", function(e){
		  casovas_h=window.setInterval("posun_minus(5)", 100);
		});
		this.vpravo.bind("mouseleave", function(e){
		  window.clearInterval(casovas_h);
		});
		this.vlevo.bind("mouseleave", function(e){
		  window.clearInterval(casovas_h);
		});
		this.vpravo.bind("click", function(e){
		  posun_plus(15);
		  return false;
		});
		this.vlevo.bind("click", function(e){
		  posun_minus(15);
		  return false;
		});
	}
}

function posun_plus(skok){
  var hodnota=self_h.lista.slider("value");
  posun_h=true;
  self_h.lista.slider("value", (hodnota+skok));
  posun_h=false;
}

function posun_minus(skok,a){
  var hodnota=self_h.lista.slider("value");
  posun_h=true;
  self_h.lista.slider("value", (hodnota-skok));
  posun_h=false;
}
