var trzyde = {
	u : {
		x : 0,
		y : 0,
		chwyt_x : 0,
		chwyt_y : 0,
		
		krok: 0,
		skok : 1,
		maksimum: 60,
		w : 520,
		h : 300,
		suwak : false,
		suwak_w : 440,
		suwak_left : 40,
		suwak_lap_w : 38,
		czy_IE : false
	},
	
	Start : function(){
		if(document.all){ this.u.czy_IE = true; }
		this.OdczytWspolrzednych();
	},
	
	
	Przesun : function(e){
		trzyde.u.suwak = trzyde.$("realizacja-3d-lap");
		
		var p1 = trzyde.ZnajdzPozycjeObjektu(trzyde.$("realizacja-3d"));
		var p2 = trzyde.ZnajdzPozycjeObjektu(trzyde.u.suwak);
		trzyde.u.chwyt_x = p1[0] + 40 + (trzyde.u.x - p2[0]);
		
		if(!trzyde.u.czy_IE){
			document.addEventListener("mousedown", trzyde.PustaFunkcja, true);
			document.addEventListener("mousemove", trzyde.PrzesunStart, true);
			document.addEventListener("mouseup", trzyde.PrzesunStop, true);
		}else{
			document.onmousedown = trzyde.PustaFunkcja;
			document.onmousemove = trzyde.PrzesunStart;
			document.onmouseup = trzyde.PrzesunStop;
		}
	},
	
	
	PrzesunStart : function(e){
		trzyde.PobieranieWspolrzednych(e);
		if(trzyde.u.suwak != false){
			var p = trzyde.ZnajdzPozycjeObjektu(trzyde.$("realizacja-3d"));

			var g = new Array();
			g[0] = 0;
			g[1] = p[1];

			g[2] = trzyde.u.suwak_w - trzyde.u.suwak_lap_w;
			g[3] = g[1];
			
			var przesun_x = trzyde.u.x - trzyde.u.chwyt_x;
			
			if(przesun_x < 0 || przesun_x < g[0] || przesun_x > g[2]){				
				if(przesun_x < g[0]){ przesun_x = g[0]; }else{
					if(przesun_x > g[2]){ przesun_x = g[2]; }
				}
				if(przesun_x < 0){ przesun_x = 0; }
			}
			
			//100% całości : ilość kroków * maksimum
			//100% suwaka : trzyde.u.suwak_w - trzyde.u.suwak_lap_w
			//przesuwanie tła
			var krok_przesuniecia = (przesun_x * trzyde.u.maksimum) / g[2];
			krok_przesuniecia = Math.floor(krok_przesuniecia + trzyde.u.skok);
			if(krok_przesuniecia >= trzyde.u.maksimum){
				krok_przesuniecia = trzyde.u.maksimum - 1;
			}
			trzyde.u.krok = krok_przesuniecia;
			
			trzyde.$("realizacja-3d").style.backgroundPosition = "-"+Math.floor(trzyde.u.krok*trzyde.u.w)+"px 0px";
			trzyde.u.suwak.style.left = trzyde.u.suwak_left + przesun_x + "px";
		}
		return false;
	},
	
	PrzesunStop : function(e){
		trzyde.u.suwak = false;
		
		if(!trzyde.u.czy_IE){
			document.removeEventListener("mousedown", trzyde.PustaFunkcja, true);
			document.removeEventListener("mousemove", trzyde.PrzesunStart, true);
			document.removeEventListener("mouseup", trzyde.PrzesunStop, true);
		}else{
			document.onmousedown = null;
			document.onmousemove = null;
			document.onmouseup = null;
		}
		
		trzyde.$("realizacja-3d-blur").blur();
		return false;
	},
	
	PustaFunkcja : function (e){
		return true;
	},
	
	
	OdczytWspolrzednych : function() {
		if(!this.u.czy_IE){
			document.addEventListener("mousemove", this.PobieranieWspolrzednych, true);
		}else{
			document.onmousemove = this.PobieranieWspolrzednych;
		}
    },
	
	PobieranieWspolrzednych : function(e) {
		if(trzyde.u.czy_IE){
			trzyde.u.x = event.clientX + document.body.scrollLeft;
			trzyde.u.y = event.clientY + document.body.scrollTop;
		}else{
			trzyde.u.x = e.pageX;
			trzyde.u.y = e.pageY;
		}
		
		//sprawdzamy czy nieujemne
		if(trzyde.u.x < 0){ trzyde.u.x = 0; }
		if(trzyde.u.y < 0){ trzyde.u.y = 0; }
		return true;
    },
	
	ZnajdzPozycjeObjektu : function(obj) {
		var nleft = 0;
		var ntop = 0;
		if(obj.offsetParent){
			nleft = obj.offsetLeft
			ntop = obj.offsetTop
			while (obj = obj.offsetParent) {
				nleft += obj.offsetLeft
				ntop += obj.offsetTop
			}
		}
		return [nleft,ntop];
	},
	
	
	$ : function(id){
		var o = document.getElementById(id);
		return o;
	}
};

if(trzyde_start == true){
	trzyde.Start();
}