var last_link = null;
var last_sub = null;
var last_className = null;
function submenu_show(sub_id,link_id)
{
	submenu_hide_last();
	document.getElementById(sub_id).style.display = 'block';
	if(link_id != null)
	{
		last_className = document.getElementById(link_id).className;
		document.getElementById(link_id).className = last_className + ' HoverChildren';
	}		
	last_sub=sub_id;
	last_link=link_id;
}
function submenu_hide(sub_id)
{
	document.getElementById(sub_id).style.display = 'none';
	if(last_link != null)
		document.getElementById(last_link).className = last_className;
	last_link=null;
	last_sub=null;
}

function show_hide(id)
{
	if(document.getElementById(id).style.display == 'none')
	{
		document.getElementById(id).style.display = 'block';
	}
	else 
	{
		document.getElementById(id).style.display = 'none';
	}
}

function submenu_hide_last()
{
	if(last_sub != null)
		document.getElementById(last_sub).style.display = 'none';
	if(last_link != null)
		document.getElementById(last_link).className = last_className;
	last_link=null;
	last_sub=null;
}

function submenu_swapclass(id,classname) {
	document.getElementById(id).className = classname;
}


function getXYpos(elem) {
   if (!elem) {
      return {"x":0,"y":0};
   }
   var xy={"x":elem.offsetLeft,"y":elem.offsetTop}
   var par=getXYpos(elem.offsetParent);
   for (var key in par) {
      xy[key]+=par[key];
   }
   return xy;
}
scrollStep=1
document.onmousemove = getMouseXY;
mouseX = 0
mouseY = 0
timerLeft=""
timerRight=""
timerStatic=""

var IE = document.all?true:false;
function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
	if(document.body)
	  {
		mouseX = event.clientX + document.body.scrollLeft
		mouseY = event.clientY + document.body.scrollTop
	  }
  } else {  // grab the x-y pos.s if browser is NS
    mouseX = e.pageX
    mouseY = e.pageY
  }  
  // catch possible negative values in NS4
  if (mouseX < 0){mouseX = 0}
  if (mouseY < 0){mouseY = 0}  
  return true
}

function scrollTo(id,parentid) {

	elementXY = getXYpos(document.getElementById(id));
	var left = elementXY["x"];

	parentXY = getXYpos(document.getElementById(parentid));
	var parentLeft = parentXY["x"];

	newpos = left-parentLeft;

	document.getElementById(parentid).scrollLeft = newpos;

}
var lastscrollID = '';
function scrollDivStatic(id){
  clearTimeout(timerStatic)
	lastscrollID = id;
	var e = window.event;
	elementXY = getXYpos(document.getElementById(id));
	var left = elementXY["x"];
	var top = elementXY["y"];
	var right = left + document.getElementById(id).offsetWidth;
	var bottom = top + document.getElementById(id).offsetHeight;
	var width = (right - left);
	var center = left + ((right - left)*.5);

	
	scrollStep = Math.abs((center - mouseX)*.015);

	if(center-(width/10) > mouseX)
		document.getElementById(id).scrollLeft-=scrollStep;
	if(center+(width/10) < mouseX)
		document.getElementById(id).scrollLeft+=scrollStep;
	thumb_cur_pos = document.getElementById(id).scrollLeft;
  timerStatic=setTimeout("scrollDivStatic('"+id+"')",10)
}

function PadDigits(n, totalDigits) 
{ 
	n = n.toString(); 
	var pd = ''; 
	if (totalDigits > n.length) 
	{ 
		for (i=0; i < (totalDigits-n.length); i++) 
		{ 
			pd += '0'; 
		} 
	} 
	return pd + n.toString();
} 


function d2h(d) {return PadDigits(d.toString(16),2);}
function h2d(h) {return parseInt(h,16);} 
function SetBGColor(red,green,blue,alpha)
{	
	var string = "#" + d2h(red) + d2h(green) + d2h(blue);
	document.getElementById("fade-background").style.backgroundColor = string;
}

var timerFader = ""
if(!homepage)
{
	var final_red = 100
	var final_green = 100
	var final_blue = 100
	var final_alpha = 0
	var cur_red = 100
	var cur_green = 100
	var cur_blue = 100
	var cur_alpha = 0
}
else
{
	var final_red = 20
	var final_green = 20
	var final_blue = 20
	var final_alpha = 0
	var cur_red = 20
	var cur_green = 20
	var cur_blue = 20
	var cur_alpha = 0
}
var cur_step = 0;
var steps = 5;
var final_pos = 0;
var cur_pos=0;
var thumb_final_pos = 0;
var thumb_cur_pos=0;
var fade_finished_id = 0;
function fader(id, parent_id, thumb_id, thumb_parent_id) {


	clearTimeout(timerFader);
	clearTimeout(timerStatic);

	if(fade_finished_id == id)
		return;
	//if(lastscrollID)
	//	scrollDivStatic(lastscrollID);

	cur_red   += Math.round((final_red   - cur_red  ) / steps,2);
	cur_green += Math.round((final_green - cur_green) / steps,2);
	cur_blue  += Math.round((final_blue  - cur_blue ) / steps,2);
	cur_alpha += Math.round((final_alpha - cur_alpha) / steps,2);

	cur_pos += Math.round((final_pos - cur_pos) / steps,2);
	
	thumb_cur_pos += Math.round((thumb_final_pos - thumb_cur_pos) / steps,2);

	if((steps*(steps)) < cur_step++ || MobileBrowser) { // final step
		cur_step = 0;
		clearTimeout(timerFader);

		cur_red   = final_red;
		cur_green = final_green;
		cur_blue  = final_blue;
		cur_alpha = final_alpha;
		
		SetBGColor(cur_red,cur_green,cur_blue,cur_alpha);
		document.getElementById(parent_id).scrollLeft = final_pos;
		fade_finished_id = id;
		document.getElementById(thumb_parent_id).scrollLeft = thumb_final_pos;
	}
	else { //continue
		SetBGColor(cur_red,cur_green,cur_blue,cur_alpha);
		timerFader=setTimeout("fader('"+id+"','"+ parent_id+"','"+ thumb_id+"','"+ thumb_parent_id+"')",10);

		document.getElementById(parent_id).scrollLeft = cur_pos;

		document.getElementById(thumb_parent_id).scrollLeft = thumb_cur_pos;
		fade_finished_id = null;
	}	
}

function rand ( n )
{
  return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

function bgfader() {
	clearTimeout(timerFader);
	
	cur_red   += Math.round((final_red   - cur_red  ) / steps,2);
	cur_green += Math.round((final_green - cur_green) / steps,2);
	cur_blue  += Math.round((final_blue  - cur_blue ) / steps,2);
	cur_alpha += Math.round((final_alpha - cur_alpha) / steps,2);

	if((steps*(steps)) < cur_step++ || MobileBrowser) { // final step
		cur_step = 0;
		clearTimeout(timerFader);

		cur_red   = final_red;
		cur_green = final_green;
		cur_blue  = final_blue;
		cur_alpha = final_alpha;
		
		SetBGColor(cur_red,cur_green,cur_blue,cur_alpha);
		
	}
	else { //continue
		SetBGColor(cur_red,cur_green,cur_blue,cur_alpha);
		timerFader=setTimeout("bgfader()",10);
	}	
}

function fade(CSSClass){
	
	switch(CSSClass)
	{
		case "Red":
			red = 175;
			green = 0;
			blue = 0;
			alpha = 0;
			break;
		case "Green":
			red = 35;
			green = 175;
			blue = 60;
			alpha = 0;
			break;
		case "Blue":
			red = 0;
			green = 115;
			blue = 200;
			alpha = 0;
			break;
		case "Orange":
			red = 255;
			green = 125;
			blue = 0;
			alpha = 0;
			break;

		case "Grey":
			red = 50;
			green = 50;
			blue = 50;
			alpha = 0;
			break;

		default: // slight orange to grey warm feeling
			red =155 ;
			green = 142;
			blue = 130;
			alpha = 0;
	}

	cur_step = 0;
	final_red = red;
	final_green = green;
	final_blue = blue;
	final_alpha = alpha;
	bgfader();
}

current_feature_id = 1;

var timerNext;
var next_speed = 10000;
function nextWait() {
	clearTimeout(timerNext);
	document.getElementById("featured-item-countdown").src="themes/timbercon/images/featured-item-wait.gif";
}

function nextResume() {
	clearTimeout(timerNext);
	timerNext = setTimeout("nextFeature('next')",next_speed);
	document.getElementById("featured-item-countdown").src="themes/timbercon/images/featured-item-countdown.gif";
}

function nextFeature(feature_id)
{
	clearTimeout(timerNext);
	if(feature_id == 'next')
	{
		current_feature_id++;
		if(!document.getElementById("feature_"+current_feature_id))
			current_feature_id = 1;
		
		CSSClass = featuredItems[current_feature_id-1];
		feature_id = current_feature_id;
	}

	if(feature_id == 'end')
	{
		current_feature_id = 1;
		CSSClass = featuredItems[current_feature_id-1];
		feature_id = current_feature_id;
	}

	if(feature_id == 'first')
	{
		current_feature_id = 1;
		CSSClass = featuredItems[current_feature_id-1];
		feature_id = current_feature_id;
	}
	
	featuredClick(feature_id,CSSClass);
	
	timerNext = setTimeout("nextFeature('next')",next_speed);
	document.getElementById("featured-item-countdown").src="themes/timbercon/images/featured-item-countdown.gif";
}

function featuredClick(feature_id,CSSClass) {
	
	
	id = "feature_"+feature_id;
	parent_id = "feature_parent";
	thumb_id = "thumb_feature_"+feature_id;
	thumb_parent_id = "thumb_feature_parent";
	current_feature_id = feature_id;


	switch(CSSClass)
	{
		case "Red":
			red = 175;
			green = 0;
			blue = 0;
			alpha = 0;
			break;
		case "Green":
			red = 35;
			green = 175;
			blue = 60;
			alpha = 0;
			break;
		case "Blue":
			red = 0;
			green = 115;
			blue = 200;
			alpha = 0;
			break;
		case "Orange":
			red = 255;
			green = 125;
			blue = 0;
			alpha = 0;
			break;

		case "Grey":
			red = 50;
			green = 50;
			blue = 50;
			alpha = 0;
			break;

		default:
			red = 0;
			green = 0;
			blue = 0;
			alpha = 0;
	}


	cur_step = 0;
	final_red = red;
	final_green = green;
	final_blue = blue;
	final_alpha = alpha;
	
	elementXY = getXYpos(document.getElementById(id));
	var left = elementXY["x"];

	parentXY = getXYpos(document.getElementById(parent_id));
	var parentLeft = parentXY["x"];

	final_pos = left-parentLeft;

	elementXY = getXYpos(document.getElementById(thumb_id));
	var left = elementXY["x"];
	var right = left+document.getElementById(thumb_id).offsetWidth;
	var center = left+((right-left)*.5);

	parentXY = getXYpos(document.getElementById(thumb_parent_id));
	var parentLeft = parentXY["x"];
	var parentRight = parentLeft+document.getElementById(thumb_parent_id).offsetWidth;
	var parentCenter = parentLeft+((parentRight-parentLeft)*.5);

	thumb_final_pos = center-parentCenter;
	fader(id, parent_id, thumb_id, thumb_parent_id);
}
