
//**********************************************************************************************************************
//	HOT SELECT
//**********************************************************************************************************************
var textsArr = new Array();
function initSelect(){
	var selects = document.getElementsByTagName("SELECT");
	var inputs = document.getElementsByTagName("INPUT");
	var divs = document.getElementsByTagName("DIV");
	for(var i=0; i < selects.length; i++) { 
		if(selects[i].className == "hotSelect"){
			selects[i].style.display = "none";
		}
	}
	for(var i=0; i < inputs.length; i++) { 
		if(inputs[i].className == "hotSelect"){
			inputs[i].style.display = "none";
		}
	}
	for(var x=0; x < divs.length; x++) { 
		if(divs[x].className == "hotSelect"){
			divs[x].style.display = "block";
			scroll(divs[x], "",false);
			// get input value
			for(var j=0; j < divs[x].childNodes.length; j++){
				if(divs[x].childNodes[j].nodeName=="INPUT" && divs[x].childNodes[j].type == "text"){
					textsArr[x] = (divs[x].childNodes[j].value);
				}
			}
		}
	}
}

function select(obj){
	obj.parentNode.className = obj.parentNode.className == "" ? "selected" : "";
	var divs = document.getElementsByTagName("DIV");
	var div = obj.parentNode.parentNode.parentNode.parentNode;
	for(var x=0; x < divs.length; x++) { 
		if(divs[x] == div){
			var txt = textsArr[x];
		}
	}
	checkSelecteds(div, txt, true);
}

var intervalInput;
function checkSelecteds(obj, txt, link){
	for(var i=0; i < obj.childNodes.length; i++){
		if(obj.childNodes[i].nodeName=="INPUT"){
			if(obj.childNodes[i].type == "text"){var display = obj.childNodes[i];}
			if(obj.childNodes[i].type == "hidden"){var hidden = obj.childNodes[i];}
		}
		if(obj.childNodes[i].nodeName=="DIV"){
			for(var x=0; x < obj.childNodes[i].childNodes.length; x++){
				if(obj.childNodes[i].childNodes[x].nodeName=="DL"){var content = obj.childNodes[i].childNodes[x];}
			}
		}
	}
	var haveSelecteds = false;
	var labelArr = new Array();
	var dataArr = new Array();
	var displayArr = new Array();
	var selectedArr = new Array();
	
	if(link){
		for(var i = 0;i < content.childNodes.length;i++){
			if(content.childNodes[i].className == "selected"){
				haveSelecteds = true;
				labelArr.push(content.childNodes[i].firstChild.innerHTML);
				dataArr.push(content.childNodes[i].id);
			}
		}
		if(haveSelecteds == true){
			display.value = labelArr;
			hidden.value = dataArr;
		}
		else{
			display.value = txt;
			hidden.value = "";
		}
	}else{
		displayArr = display.value.split(",");
		for(var x = 0;x < displayArr.length;x++){
			for(var i = 0;i < content.childNodes.length;i++){
				if(content.childNodes[i].nodeType == 1){
					if(clearString(displayArr[x]).toLowerCase() == clearString(content.childNodes[i].firstChild.innerHTML).toLowerCase()){
						haveSelecteds = true;
						selectedArr.push(content.childNodes[i]);
					}else{
						content.childNodes[i].className = "";
					}
				}
			}
		}
		for(var x = 0;x < selectedArr.length;x++){
			selectedArr[x].className = "selected";
		}
	}
}

function inputControl(obj, txt){
	obj.onblur = function(){
		clearTimeout(intervalInput);
		if(obj.value == ""){
			obj.value = txt;
			checkSelecteds(obj.parentNode, txt);
		}
	}
	if(obj.onfocus){
		checkSelecteds(obj.parentNode, txt);
		intervalInput = setTimeout(function(){inputControl(obj, txt)},500);
	}
	if(obj.value == txt){obj.value = "";}
}
//**********************************************************************************************************************
//	Remove spaces
//**********************************************************************************************************************
function clearString(string) {
    var i = 0;
    var out = '';
    while (i < string.length) {
        if (string.charAt(i) == ' ') {
            out += string.substr(0, i);
            string = string.substr(i+1, string.length - (i+1));
            i = 0;
        }
        else {
            i++;
        }
    }
    return out + string;
}
//**********************************************************************************************************************
//	SCROLL
//**********************************************************************************************************************
var interval;
function scroll(div, direction, action){
	if(action){
		div.className == "hotSelect" ? div.className = "hotSelect active" : div.className = "hotSelect";
	}
	for(var i=0; i < div.childNodes.length; i++){
		if(div.childNodes[i].nodeName=="INPUT"){var display = div.childNodes[i];}
		if(div.childNodes[i].nodeName=="SPAN"){var icon = div.childNodes[i];}
		if(div.childNodes[i].nodeName=="DIV"){
			var contentArea = div.childNodes[i];
			for(var x=0; x < contentArea.childNodes.length; x++){
				if(contentArea.childNodes[x].nodeName=="DL"){var content = contentArea.childNodes[x];}
				if(contentArea.childNodes[x].nodeName=="DIV"){
					var scrollBar = contentArea.childNodes[x];
					for(var j=0; j < scrollBar.childNodes.length; j++){
						if(scrollBar.childNodes[j].className=="btnUp"){var btnUp = scrollBar.childNodes[j];}
						if(scrollBar.childNodes[j].className=="btnDown"){var btnDown = scrollBar.childNodes[j];}
						if(scrollBar.childNodes[j].className=="slider"){
							var slider = scrollBar.childNodes[j];
							var handle = scrollBar.childNodes[j].firstChild;
						}
					}
				}
			}
		}
	}
	
	var handleY = handle.offsetTop;
	var contentH = content.offsetHeight;
	var contentCanvas = content.parentNode.offsetHeight;
	var pos = content.offsetTop;
	var posEnd = contentH - contentCanvas;
	var diff = 0;
	var mouseY = 0;
	var mouseC = 0;
	var top = 0;
	
	icon.onclick = function(){
		scroll(this.parentNode, "",true);
	}
	
	// Handle height and Difference
	if(action){
		handle.style.height = parseInt(((contentCanvas - btnUp.offsetHeight - btnDown.offsetHeight) / contentH) * contentCanvas) + "px";
		if(posEnd <= 0){
			contentArea.className = "hotContent disabled";
		}else{
			contentArea.className = "hotContent";
		}
	}
	diff = (handle.offsetHeight - slider.offsetHeight) / (contentCanvas - contentH);
	
	// buttons up & down
	if(direction=="down" && pos >= -posEnd){
		pos = pos - 15;
		move(pos);
	}
	if(direction=="up"){
		pos = pos + 15;
		move(pos);
	}
	btnUp.onclick = function(){
		scroll(div,"up",false);
	}
	btnDown.onclick = function(){
		scroll(div,"down",false);
	}
	btnUp.onmousedown = function(){
		interval = setInterval(function(){scroll(div,"up",false)}, 50);
	}
	btnDown.onmousedown = function(){
		interval = setInterval(function(){scroll(div,"down",false)}, 50);
	}
	
	// move content 
	function move(pos){
		pos = parseInt(pos);
		if(pos >= 0){pos = 0;}
		if(pos <= -posEnd){pos = -posEnd;}
		content.style.top = pos + "px";
		handle.style.top = -(diff * pos) + "px";
	}
	
	// Handle drag
	handle.onmousedown = function(ev){
		if(document.all){
			mouseC = event.clientY + document.body.scrollTop;
		}else{
			mouseC = ev.pageY;
		}
		var top = div.offsetTop + contentArea.offsetTop + slider.offsetTop;
		var handlePoint = mouseC - (top + handle.offsetTop);
		document.onmousemove = function(e){
			if(document.all){
				mouseY = event.clientY + document.body.scrollTop;
			}else{
				mouseY = e.pageY;
			}
			pos = -(mouseY - top - handlePoint) / diff;
			if(pos >= 0){pos = 0;}
			if(pos <= -posEnd){pos = -posEnd;}
			move(pos);
		}
	}	
	
	// Scrollbar click
	slider.onclick = function(ev){
		if(document.all){
			mouseY = event.clientY + document.body.scrollTop;
		}else{
			mouseY = ev.pageY;
		}
		var top = div.offsetTop + contentArea.offsetTop + slider.offsetTop;
		pos = -(mouseY - top - (handle.offsetHeight/2)) / diff;
		move(pos);
	}
	
	// Whell Move Control
	function whandle(s){
		if (s < 0 && pos >= -posEnd){pos = pos - 40;}
		else if(s > 0 && pos < 0){pos = pos + 40;}
		move(pos);
	}
	
	// Wheel Capture
	function wheel(event){
		var s = 0;
		if(!event){
			event = window.event;
		}
		if(event.wheelDelta){
			s = event.wheelDelta/120;
		}else if(event.detail){
			s = -event.detail/3;
		}
		if(s){
			whandle(s);
		}
		if(event.preventDefault){
			event.preventDefault();
			event.returnValue = false;
		}
	}
	// init Wheel
	if (contentArea.addEventListener){
		contentArea.addEventListener('DOMMouseScroll', wheel, false);
	}
	contentArea.onmousewheel = wheel;
}
// clear Handle Drag
document.onmouseup = function(){
	document.onmousemove = new function(){};
	clearInterval(interval);
}
//**********************************************************************************************************************
//	Close dynamics boxes
//**********************************************************************************************************************
document.onclick=check;
function check(e){
	var target = (e && e.target) || (event && event.srcElement);
	var divs = document.getElementsByTagName("DIV");
	for(var i=0; i < divs.length; i++){
		if(divs[i].className == "hotSelect" || divs[i].style.display == "block"){
			var obj = divs[i];
			checkParent(target, obj)?obj.className = "hotSelect":null;
		}
	}
}
function checkParent(t, obj){
	while(t.parentNode){
		if(t==obj){
			return false;
		}
		t=t.parentNode;
	}
	return true;
}
//**********************************************************************************************************************
//	HOT MENU
//**********************************************************************************************************************
function initMenu(){
	var divs = document.getElementsByTagName("DIV");
	for(var i=0; i < divs.length; i++){
		if(divs[i].className == "pageNav"){
			for(var x=0; x < divs[i].childNodes.length; x++){
				if(divs[i].childNodes[x].nodeName == "UL"){
					hotMenu(divs[i].childNodes[x]);
				}
			}
		}
	}
}
function hotMenu(menu){
	for(var i = 0; i < menu.childNodes.length; i++){
		for(var x = 0; x < menu.childNodes[i].childNodes.length; x++){
			if(menu.childNodes[i].childNodes[x].nodeName == "UL"){
				var li = menu.childNodes[i];
				var link = menu.childNodes[i].childNodes[x-2];
				if(li.className == ""){li.className = "closed";}
				link.onclick = function(){
					li.className == "closed" ? li.className = "opened" : li.className = "closed";
				}
			}
		}
	}
}
//**********************************************************************************************************************
//	LOAD SCRIPTS
//**********************************************************************************************************************
window.onload = function(){
	initSelect();
	initMenu();
};