var TT = TT || {};
TT.cat = function(){
	var c1, c2, cid = ['categories', 'categories2'], p, scode, sctxt, div, u1, u2, stopPropagation = true;

	function init()
	{
		if(arguments.length < 1)
			return;
		c1 = arguments[0];
		c2 = arguments[1];
		for(var i=0; i<cid.length; i++)
		{
			if(o = document.getElementById(cid[i]))
			{
				o.onclick = function(){
					_display(this);
				};
			}
		}
	}

	function _display(o)
	{
		var o = o;
		p = o.parentNode;
		scode = p.parentNode.getElementsByTagName('input')[0];
		sctxt = p.children[0];
		div = p.children[2];

		u1 = p.getElementsByTagName('ul')[0];
		u2 = p.getElementsByTagName('ul')[1];

		div.style.display = 'block';
		_show_cat1();
		_show_cat2('01000000');
		listenEvent(div, 'mouseleave',close_layer);
	}

	function _show_cat1()
	{
		var i=0;
		u1.innerHTML = '';
		for(var k in c1)
		{
			var li = document.createElement("li");
			li.id = k;
			li.title = c1[k];
			li.className = i<1 ? 'on' : '';
			var txt = document.createTextNode( c1[k] );
			li.appendChild(txt);
			li.onclick = function()
			{
				scode.value = this.id;
				sctxt.firstChild.nodeValue = this.firstChild.nodeValue;
				clear_stat();
				this.className = 'on';
				_show_cat2(this.id);
			}
			u1.appendChild(li);
			i++;
		}
	}

	function _show_cat2(code)
	{
		if(c2[code] == undefined)
			return;

		var arr = c2[code];

		u2.innerHTML = '';
		for(var k in arr)
		{
			var li = document.createElement("li");
			li.id = k;
			li.title = arr[k];
			var txt = document.createTextNode( arr[k] );
			li.appendChild(txt);
			li.onclick = function(){
				scode.value = this.id;
				sctxt.firstChild.nodeValue = this.firstChild.nodeValue;
				//div.style.display = 'none';
				close_layer();
			};
			u2.appendChild(li);
		}
	}

	function clear_stat()
	{
		var li = u1.getElementsByTagName('li');
		for(var i=0; i<li.length; i++)
		{
			li[i].className = '';
		}
	}

	function close_layer(e)
	{
		setTimeout(function(){div.style.display = 'none'}, 300);
		if(e){cancelPropagation(e);}
	}

	//event
	function listenEvent(eventTarget, eventType, eventHandler)
	{
		if (eventTarget.addEventListener) {
			if (eventType === 'mouseenter') {
				eventTarget.addEventListener('mouseover', mouseEnter(eventHandler), false);
			} else if (eventType === 'mouseleave') {
				eventTarget.addEventListener('mouseout', mouseEnter(eventHandler), false);
			} else {
				eventTarget.addEventListener(eventType, eventHandler, false);
			}
		} else if (eventTarget.attachEvent) {
			eventType = "on" + eventType;
			eventTarget.attachEvent(eventType, eventHandler);
		} else {
			eventTarget["on" + eventType] = eventHandler;
		}
	}

	function mouseEnter(_fn)
	{
	   return function(_evt)
	   {
		  var relTarget = _evt.relatedTarget;
		  if (this === relTarget || isAChildOf(this, relTarget))
			 { return; }
		  _fn.call(this, _evt);
	   }
	}

	function isAChildOf(_parent, _child)
	{
		if (_parent === _child) { return false; }
		while (_child && _child !== _parent)
		{ _child = _child.parentNode; }

		return _child === _parent;
	}

	function cancelPropagation (event)
	{
		if (event.stopPropagation)
		{
			event.stopPropagation();
		} else {
			event.cancelBubble = true;
		}
	}

	return {
		init:init
	};
}();

function slideLine(ul, delay, speed, lh) {
    var slideBox1 = document.getElementById(ul);
    if(!slideBox1) return;
    var tid = null, pause = false;
    var start = function() {
        tid=setInterval(slide, speed);
    }
    var slide = function() {
        if (pause) return;
        slideBox1.scrollTop += 1.5;
        if (slideBox1.scrollTop % lh == 0) {
            clearInterval(tid);
            slideBox1.appendChild(slideBox1.getElementsByTagName('li')[0]);
            slideBox1.scrollTop = 0;
            setTimeout(start, delay);
        }
    }
    slideBox1.onmouseover=function(){pause=true;}
    slideBox1.onmouseout=function(){pause=false;}
    setTimeout(start, delay);
}
function set_scroll_val(src,sid){
    var replace;
    switch(src){
         case'company':
            replace='-';
            url='/manufacturers/';
            break;
        default:
            replace='-';
            url='/products/';
            break;
    }
    if (document.getElementById(sid) != null){
        var links=document.getElementById(sid).getElementsByTagName('a');
        for(var j=0;j<links.length;j++){
            var word=links[j].firstChild.nodeValue;
            word=word.toLowerCase();
            word=StrCode(word.replace(/ /g,replace));
            links[j].setAttribute('href',url+word+'.html');
        }
    }
}
function StrCode(str){
    if(encodeURIComponent){
        return encodeURIComponent(str);
    }
    if(escape){
        return escape(str);
    }
}
