var sliderocc = false;

function ecatalogSlider(th, e, name, length, steps, values, sess, formname, find, translations)/*html struktura turi buti: <form><div class="scrollbar"><div class="slider" onmousedown="ecatalogSlider(this, event, name, length, steps, values, sess);" ></div></div></form>*/
{
        th.style.backgroundImage = 'url("'+root_url+'application/site/themes/default/img/slider_pointer.jpg")';
        //var length = 200;//visas ilgis
        //var steps = 10;//zingsniu sk.
        //values verciu, atitinkanciu skaicius masyvas
        var pos_left = 0;//findPos(th.parentNode)[0];//tevo elemento pozicija nuo kaires
        var pos_leftx = findPos(th.parentNode)[0];
        var o_step = length/steps;//1 zingsnio dydis
        var mid = o_step/2;//vidurys
        var re = new RegExp("px", "g");
        var correction = 5;
        var elems = th.parentNode.getElementsByTagName('div');
        if(th.div2)
        {
        	var posx = getMouseX(e)-pos_leftx+correction-mid;
        	var posx = (Math.round(posx/o_step)*o_step);
        	th.div2.innerHTML = translations[(posx-pos_left)/o_step];
        }
        for(i = 0; i < elems.length;i++)
        {
                if(elems[i].className == 'scrollbar2')
                {
                        var scrollbar2 = elems[i];
                }
        }
        
        if(th.parentNode.getElementsByTagName('input')[0])
        {
                var inp = th.parentNode.getElementsByTagName('input')[0];
        }
        else
        {
                var inp = document.createElement('input');
                th.parentNode.appendChild(inp);
                inp.className = "hidden_input";
                inp.setAttribute("name", name);
        }
        document.onmousemove = function(event)
        {
                if(sliderocc == false)
                {
                        var posx = getMouseX(event)-pos_leftx+correction-mid;
                        if(posx <= pos_left)
                        {
                                posx = pos_left;
                        }
                        else if(posx+o_step >= length+pos_left)
                        {
                                posx = length+pos_left-o_step;
                        }
			var posx = (Math.round(posx/o_step)*o_step);
			if(th.style.left != (posx)+'px' && th.div2)
			{
				th.div2.innerHTML = translations[(posx-pos_left)/o_step];
			}
                        th.style.left = (posx)+'px';
                        scrollbar2.style.width = (posx)+"px";
                }
        }
        document.body.onmouseup = function(sess)
        {
                if(sliderocc == false)
                {
                        if(!th.style.left && sess)
                        {
                                th.style.left = pos_left+(values.indexOf(sess)*o_step)+'px';
                        }
                        var ddd = th.style.left.replace(re, '');
                        ddd = parseInt(ddd)-pos_left;
                        var left = (Math.round(ddd/o_step)*o_step)+pos_left;
                        if(left <= pos_left)
                        {
                                left = pos_left;
                        }
                        else if(left+o_step >= length+pos_left)
                        {
                                left = length+pos_left-o_step;
                        }
                        th.style.left = (left)+'px';
                        inp.value = values[(left-pos_left)/o_step];
                        
                        scrollbar2.style.width = (left-pos_left)+"px";
                        submitEcatalogSlider(document.getElementById(formname, find));
			th.style.backgroundImage = 'url("'+root_url+'application/site/themes/default/img/slider.jpg")';
                }
        }
}

function getMouseX(e)
{
        var evt = window.event || e;
        var tempX = evt.clientX + document.body.scrollLeft;
        return tempX;
}

function submitEcatalogSlider(form, find)
{
        document.body.onmouseup = null;
        document.onmousemove = null;
        if(form.tagName == "FORM")
        {
                var arr = new Array();
                for(i = 0; i < form.elements.length;i++)
                {
                        arr[i] = form.elements[i].name+'='+form.elements[i].value;
                }
                if(obj = document.getElementById('post_div'))
                {
                        if(find == true)
                        {
                                elems = obj.getElementsByTagName('a');
                                if(elems[0])
                                {
                                        obj.innerHTML = elems[0].innerHTML;
                                }
                        }
                        else
                        {
                                obj.style.opacity = '1';
                                obj.settimeout = true;
                                setTimeout(function(){hideThis(obj, 100);}, 10);
                        }
                        sliderocc = true;
                        execPost(form.action, arr, 'viewEcatalog', obj);
                }
        }
}

function viewEcatalog(content, obj)
{
        
        if(obj.settimeout == false)
        {
                var tempdiv = document.createElement('div');
                tempdiv.innerHTML = content.responseText;
                obj.innerHTML = tempdiv.innerHTML;
                setTimeout(function(){showThis(obj, 0);}, 10);
                sliderocc = false;
        }
        else
        {
                setTimeout(function(){viewEcatalog(content, obj);}, 20);
        }
}

function showTextcloud(th, e)
{
	if(th.timeout)
	{
		clearTimeout(th.timeout);
		th.timeout = null;
		var div1 = th.div1;
		var div2 = th.div2;
	}
	else
	{
		var div1 = document.createElement('div');
		div1.className = 'div1';
		var arr = getMouseXY(e);
		div1.style.left = arr[0]+10+"px";
		div1.style.top = arr[1]-25+"px";
		var div2 = document.createElement('div');
		div2.className = 'div2';
		div1.appendChild(div2);
		document.body.appendChild(div1);
		th.div1 = new Object;
		th.div2 = new Object;
		th.div1 = div1;
		th.div2 = div2;
	}
	var mousemove = function(event)
	{
		if(div1 != null)
		{
			var arr = getMouseXY(event);
			div1.style.left = arr[0]+10+"px";
			div1.style.top = arr[1]-25+"px";
		}
	}
	var mouseup = function()
	{
		if(th.timeout)
		{
			clearTimeout(th.timeout);
			th.timeout = null;
		}
		if(th.timeout2)
		{
			clearTimeout(th.timeout2);
			th.timeout2 = null;
		}
		var div1 = th.div1;
		th.timeout = new Object;
		th.timeout = setTimeout(function(){
			if(div1 != null)
			{
				div1.parentNode.removeChild(div1);
				th.div1 = null;
				th.div2 = null;
				th.timeout=null;
			}
			$(document.body).unbind('mousemove', mousemove);
			$(document.body).unbind('mouseup', mouseup);
		}, 50);
		
	}
	$(document.body).bind('mousemove', mousemove);
	$(document.body).bind('mouseup', mouseup);
}

function replaceVal(obj, target)
{
	target.innerHTML = Math.round(parseInt(obj.style.width.replace("%", "")))+"%";
	obj.timeout2 = new Object;
	obj.timeout2 = setTimeout(function(){replaceVal(obj, target)}, 50);
}

function getMouseXY(e)
{
        var evt = window.event || e;
        var tempX = evt.clientX + f_scrollLeft();
	var tempY = evt.clientY + f_scrollTop();
        return [tempX, tempY];
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

