
// by vizslancs
// használat: <div class="csuszka" title="ar_tol-ar_ig:0-100000:1000<?=isset($_GET["ar_tol"])&&isset($_GET["ar_ig"])?":$_GET[ar_tol]-$_GET[ar_ig]":""?>" style="width: 100%; height: 15px; border: 0px solid red; background: url(art/csuszkabg.gif);"></div>

addEvent(window, 'load', csuszkainit);
addEvent(window, 'resize', csuszkaResize);

var mousex = 0;
var mousey = 0;
var csuszkan = 0;
var csuszkasel = null;
var csuszkap0;
var csuszkapp;
var csuszkap1 = new Array();
var csuszkap2 = new Array();
var csuszkapy = new Array();
var csuszkaim1 = new Array();
var csuszkaim2 = new Array();
var csuszkatol = new Array();
var csuszkaig = new Array();
var csuszkaegys = new Array();
var csuszkaitol = new Array();
var csuszkaiig = new Array();
var csuszkatxt = new Array();
var csuszkatag = new Array();
//var csuszkanyilx = 8;
//var csuszkanyily = 13;
var csuszkanyilx = 15;
var csuszkanyily = 19;

addEvent(document,'mousemove',mouseMove);
addEvent(document,'mouseup',mouseUp);

function mouseMove(ev) {
  ev = ev || window.event;
  mousex = ev.clientX;
  mousey = ev.clientY;
}

function mouseUp(ev) {
	csuszkasel = null;
}

function csuszkaSetPoz(n) {
	poz = realPosition(csuszkatag[n]);
	csuszkap1[n] = poz.x + csuszkanyilx - 1;
	csuszkap2[n] = poz.x + poz.w - csuszkanyilx;
	csuszkapy[n] = poz.y + poz.h / 2;

	if (csuszkaitol[n].value == "max")
		p1 = 1;
	else
		p1 = (csuszkaitol[n].value - csuszkatol[n]) / (csuszkaig[n] - csuszkatol[n] + parseInt(csuszkaegys[n]));

	if (csuszkaiig[n].value == "max")
		p2 = 1;
	else
		p2 = (csuszkaiig[n].value - csuszkatol[n]) / (csuszkaig[n] - csuszkatol[n] + parseInt(csuszkaegys[n]));

	csuszkaim1[n].style.left = (csuszkap1[n] - csuszkanyilx + (csuszkap2[n] - csuszkap1[n]) * p1) + "px";
	csuszkaim2[n].style.left = (csuszkap1[n] + (csuszkap2[n] - csuszkap1[n]) * p2) + "px";
	csuszkaim1[n].style.top = (csuszkapy[n] - csuszkanyily / 2) + "px";
	csuszkaim2[n].style.top = (csuszkapy[n] - csuszkanyily / 2) + "px";
}

function csuszkaResize() {
	for (i = 1; i <= csuszkan; i++)
		csuszkaSetPoz(i);
}

function csuszkaWr(n) {
	if (csuszkaitol[n].value == "max") {
		s1 = "Maximum";
	} else {
		s1 = ezrescsop(csuszkaitol[n].value) + " Ft";
	}
	if (csuszkaiig[n].value == "max") {
		s2 = "Maximum";
	} else {
		s2 = ezrescsop(csuszkaiig[n].value) + " Ft";
	}
	s = s1 + " - " + s2;

	if (csuszkatxt[n].innerHTML != s)
		csuszkatxt[n].innerHTML = s;
}

function csuszkaActive(n, p) {

	csuszkaSetPoz(n);

	if (csuszkasel != null) {
		i = mousex + parseInt(csuszkapp);
		if (i < csuszkap1[n]) i = csuszkap1[n];
		if (i > csuszkap2[n]) i = csuszkap2[n];
		if (p == 1) {
			if (parseInt(i) > parseInt(csuszkap0)) i = parseInt(csuszkap0);
			ps = i;
			csuszkasel.style.left = (i - csuszkanyilx) + "px";
		} else {
			if (parseInt(i) < parseInt(csuszkap0) + csuszkanyilx) i = parseInt(csuszkap0) + csuszkanyilx;
			ps = i;
			csuszkasel.style.left = i + "px";
		}
		ps = csuszkatol[n] + ((parseInt(ps) - parseInt(csuszkap1[n])) / (parseInt(csuszkap2[n]) - parseInt(csuszkap1[n])) * (parseInt(csuszkaig[n]) - parseInt(csuszkatol[n]) + parseInt(csuszkaegys[n])));

		ps = Math.round(ps / csuszkaegys[n]) * csuszkaegys[n];

		if (ps == parseInt(csuszkaig[n]) + parseInt(csuszkaegys[n]))
			ps = "max";
		if (p == 1)
			csuszkaitol[n].value = ps;
		else
			csuszkaiig[n].value = ps;

		csuszkaWr(n);

		setTimeout("csuszkaActive("+n+","+p+")", 10);
	}
}

function ezrescsop(s) {
	ss = '';
	var i = parseInt(s.length) - 1;
	var n = 0;
	while (i >= 0) {
		if (n == 3) {
			n = 0;
			ss = " " + ss;
		}
		ss = s.substr(i, 1) + ss;
		i--;
		n++;
	}
	return ss;
}

function offsetBy(el, type) {
  if (this===el) return 0;
  var v=999, owner=this, border='client'+type;
  type = 'offset'+type;
  do {
    v += owner[type];
  } while ((owner=owner.offsetParent) && owner!==el && (v+=owner[border]))
  return v-999;
}

function realPosition(el){
 var d = new Object();
 if(el.getBoundingClientRect){
//		d.x = el.getBoundingClientRect().left + Math.min(document.body.scrollTop, document.documentElement.scrollTop);
//		d.y = el.getBoundingClientRect().top + Math.min(document.body.scrollLeft, document.documentElement.scrollLeft);
		d.x = el.getBoundingClientRect().left + document.documentElement.scrollLeft;
		d.y = el.getBoundingClientRect().top + document.documentElement.scrollTop;
////		d.y = el.getBoundingClientRect().top + Math.min(document.body.scrollTop, document.documentElement.scrollTop);
////		d.x = el.getBoundingClientRect().left + Math.min(document.body.scrollLeft, document.documentElement.scrollLeft);

		d.w = el.getBoundingClientRect().right - el.getBoundingClientRect().left;
		d.h = el.getBoundingClientRect().bottom - el.getBoundingClientRect().top;
	}
	else if(document.getBoxObjectFor){
       d.x = document.getBoxObjectFor(el).x;
	   d.y =  document.getBoxObjectFor(el).y;
	   d.w = document.getBoxObjectFor(el).width;
	   d.h = document.getBoxObjectFor(el).height;
	}
	else{
       d.x = offsetBy.call(el, null, 'Left');
	   d.y = offsetBy.call(el, null, 'Top');
	   d.w = el.offsetWidth;
	   d.h = el.offsetHeight;
	}
	return d;
}

function csuszkainit() {
	var tags=document.getElementsByTagName("div");
	for(i=0;i<tags.length;i++){
		otag=tags[i];
		if(otag.className=="csuszka"){
			csuszkan++;

			var tag = document.createElement("div");
			tag.style.width = otag.style.width;
			tag.style.height = otag.style.height;
			tag.style.background = otag.style.background;
			otag.style.background = "#ffffff";
			otag.style.height = parseInt(otag.style.height) + 16;
			otag.appendChild(tag);

			var txt = document.createElement("div");
			txt.style.width = otag.style.width;
			txt.style.height = 16;
			txt.style.background = "#e0e0e0";
			txt.style.textAlign = "center";
			otag.appendChild(txt);
			csuszkatxt[csuszkan] = txt;

////			var poz = new Object;
////			poz = realPosition(tag);

////			csuszkap1[csuszkan] = poz.x + csuszkanyilx;
////			csuszkap2[csuszkan] = poz.x + poz.w - csuszkanyilx;
////			csuszkapy[csuszkan] = poz.y + poz.h / 2;

			var pars = otag.title.split(":");
			var inputs = pars[0].split("-");
			var tolig = pars[1].split("-");
			if (pars[3] != undefined && pars[3] != '' && pars[3].indexOf('-', 0) != -1) {
				var begval = pars[3].split("-");
			} else {
				var begval = Array();
				begval[0] = tolig[0];
//				begval[1] = tolig[1];
				begval[1] = "max";
			}

//			txt.innerHTML = ezrescsop(begval[0]) + " Ft - " + ezrescsop(begval[1]) + " Ft";

			var inp1 = document.createElement("input");
			inp1.type = "hidden";
			inp1.id = inputs[0];
			inp1.name = inputs[0];
			inp1.value = begval[0];
			tag.appendChild(inp1);

			var inp2 = document.createElement("input");
			inp2.type = "hidden";
			inp2.id = inputs[1];
			inp2.name = inputs[1];
			inp2.value = begval[1];
			tag.appendChild(inp2);

			csuszkaitol[csuszkan] = document.getElementById(inputs[0]);
			csuszkaiig[csuszkan] = document.getElementById(inputs[1]);
			csuszkatol[csuszkan] = tolig[0];
			csuszkaig[csuszkan] = tolig[1];
			csuszkaegys[csuszkan] = pars[2];
			otag.title = '';

			csuszkaWr(csuszkan);

			var im1 = document.createElement("img");
			im1.id = "csuszka1_" + csuszkan;
			im1.style.position = "absolute";
			im1.style.cursor = "pointer";
			tag.appendChild(im1);
//			im1.src = "art/nyil_jobb.gif";
			im1.src = "art/fogo.gif";
////			im1.style.left = (csuszkap1[csuszkan] - csuszkanyilx) + "px";
////			im1.style.top = (csuszkapy[csuszkan] - csuszkanyily / 2) + "px";
			im1.onmousedown = function() {
				im_pars = this.id.split("_");
				csuszkasel = csuszkaim1[im_pars[1]];
				csuszkap0 = csuszkaim2[im_pars[1]].style.left;
				csuszkapp = parseInt(csuszkasel.style.left) - parseInt(mousex) + parseInt(csuszkanyilx);
				csuszkaActive(im_pars[1], 1);
			}
			im1.ondrag = function() {
				return false;
			}
			csuszkaim1[csuszkan] = im1;

			var im2 = document.createElement("img");
			im2.id = "csuszka2_" + csuszkan;
			im2.style.position = "absolute";
			im2.style.cursor = "pointer";
			tag.appendChild(im2);
//			im2.src = "art/nyil_bal.gif";
			im2.src = "art/fogo.gif";
////			im2.style.left = csuszkap2[csuszkan] + "px";
////			im2.style.top = (csuszkapy[csuszkan] - csuszkanyily / 2) + "px";
			im2.onmousedown = function() {
				im_pars = this.id.split("_");
				csuszkasel = csuszkaim2[im_pars[1]];
				csuszkap0 = csuszkaim1[im_pars[1]].style.left;
				csuszkapp = parseInt(csuszkasel.style.left) - parseInt(mousex);
				csuszkaActive(im_pars[1], 2);
			}
			im2.ondrag = function() {
				return false;
			}
			csuszkaim2[csuszkan] = im2;

			csuszkatag[csuszkan] = tag;
			tag.alt = csuszkan;
			tag.onmousedown = function() {
				if (csuszkasel == null) {
					i1 = parseInt(csuszkaim1[this.alt].style.left + csuszkanyilx);
					i2 = parseInt(csuszkaim2[this.alt].style.left);
					if (parseInt(mousex) <= i1) {
						csuszkaim1[this.alt].style.left = (mousex - csuszkanyilx / 2) + "px";
						csuszkaim1[this.alt].onmousedown();
					} else if (parseInt(mousex) >= i2) {
						csuszkaim2[this.alt].style.left = (mousex - csuszkanyilx / 2) + "px";
						csuszkaim2[this.alt].onmousedown();
					} else if (parseInt(mousex) - i1 < i2 - parseInt(mousex)) {
						csuszkaim1[this.alt].style.left = (mousex - csuszkanyilx / 2) + "px";
						csuszkaim1[this.alt].onmousedown();
					} else {
						csuszkaim2[this.alt].style.left = (mousex - csuszkanyilx / 2) + "px";
						csuszkaim2[this.alt].onmousedown();
					}
				}
			}
			csuszkaSetPoz(csuszkan);
		}
	}
}