// JavaScript Document
var last_top_level = null;
var ltt_timeout = 0;
var submenu_width = 200;
var last_arrow_td = null;
var info_div = null;

var current_slider = null;
var last_tm = 0;
var slider_image_height = 176;
var slider_pause = 40;
var slider_breaker = 20;
var slider_freq = 100;

function init()
{
	if(document.getElementById('scroller1') && typeof sliders == 'function')
	{
		setInterval('sliders()',slider_freq);
	}
}

function clear_top_level(focusel)
{
	var linkid = '';
	var parentid = '';
	var parent = null;
	var flyup = null;
	var flydown = null;
	if(focusel) {
		linkid =  focusel.id;
		if(linkid)
		{
			parentid = linkid.substr(0, linkid.length-2);
			parent = document.getElementById(parentid);
			if(parent)
			{
				parent.style.backgroundColor = 'transparent';
				flyup = document.getElementById(parentid+'_top');
				flydown = document.getElementById(parentid+'_flydown');
				if(flyup)
				{
					flyup.style.display = 'none';	
				}
				if(flydown)
				{
					flydown.style.display = 'none';	
				}
			}
		}	
	}
}

function top_level_trigger(focusel)
{
	var linkid = focusel.id;
	var parentid = '';
	var parent = null;
	var flyup = null;
	var flydown = null;
	var locX = 0;
	var locY = 0;
	var re = find_right_edge();
	clear_top_level_timeout();
	clear_last_top_level();
	if(linkid)
	{
		parentid = linkid.substr(0, linkid.length-2);
		parent = document.getElementById(parentid);
		if(parent)
		{
			parent.style.backgroundColor = '#b9b4a5';
			flyup = document.getElementById(parentid+'_top');
			flydown = document.getElementById(parentid+'_flydown');
			if(flyup)
			{
				flyup.style.zIndex = 300;
				flyup.style.display = 'block';	
			}
			if(flydown)
			{
				if(parent.offsetHeight) locY += parent.offsetHeight;
				while(parent)
				{
					if(parent.offsetLeft) locX += parent.offsetLeft;	
					if(parent.offsetTop) locY += parent.offsetTop;
					parent = parent.offsetParent;
				}
				if((locX + submenu_width) > re) locX = re - submenu_width;
				flydown.style.left = locX + 'px';
				flydown.style.top = locY + 'px';
				flydown.style.zIndex = 300;
				flydown.style.display = 'block';
			}			
		}
	}	
	last_top_level = focusel;
}

function clear_last_top_level()
{
	clear_top_level(last_top_level);
}

function timeout_clear_last_top_level()
{
	clear_top_level_timeout();
	ltt_timeout = setTimeout('clear_last_top_level()', 1000);
}

function clear_top_level_timeout()
{
	if(ltt_timeout) clearTimeout(ltt_timeout);	
}

function find_right_edge()
{
	var mb = document.getElementById('main_bod');
	var rX = 0;
	if(mb)
	{
		if(mb.offsetWidth) rX += mb.offsetWidth;
		while(mb)
		{
			if(mb.offsetLeft) rX += mb.offsetLeft;
			mb = mb.offsetParent;
		}
	}
	return rX;
}

function product_info_hover(tr_obj)
{
	var tds = tr_obj.getElementsByTagName('td');
	var arrow_td = null;
	var tid = document.getElementById(tr_obj.id + '_info'); 
	for(var tdc=0; tdc<tds.length; tdc++)
	{
		if(tds[tdc].className == 'arrow_on' || tds[tdc].className == 'arrow_off') arrow_td = tds[tdc];	
	}
	if(arrow_td)
	{
		if(last_arrow_td) last_arrow_td.className = 'arrow_off';
		else if(document.getElementById('first_arrow')) document.getElementById('first_arrow').className = 'arrow_off';
		if(info_div) info_div.style.display = 'none';
		else document.getElementById('original_info').style.display = 'none';
		arrow_td.className = 'arrow_on';
		tid.style.display = 'block';
		last_arrow_td = arrow_td;
		info_div = tid;
	}
}

function impose_flyup(image_path, parent_positioner)
{
	var fi = document.getElementById('flyup_imposer');
	var pp = document.getElementById(parent_positioner);
	var relX = 0;
	release_flyup_imposition();
	if(image_path.length > 0 && fi && pp)
	{
		fi.innerHTML = '<div style="width:87px;height:87px;overflow:none;"><img src="'+image_path+'" + alt="" /' + '><'+'/div>';
		if(pp.offsetLeft) relX = pp.offsetLeft;
		pp = pp.offsetParent;
		while(pp)
		{
			if(pp.offsetLeft) relX += pp.offsetLeft;
			pp = pp.offsetParent;
		}
		fi.style.left = relX+'px';
		fi.style.top = '0px';
		fi.style.position = 'absolute';
		fi.style.zIndex = 305;
		fi.style.display = 'block';
		fi.style.overflow = 'hidden';
	}
}

function release_flyup_imposition()
{
	var fi = document.getElementById('flyup_imposer');
	fi.style.display = 'none';
}


//slideshow addition

var current_ssp = 0;
var last_ssp = 0;
var ssp_pauser_count = 0;
var max_ssp_pauser_count = 50;
var ssp_paused = true;
var ssp_started = false;
var ssp_main_images_count = 0;

function ssp_catch_failed_start()
{
	if(!ssp_started) load_slideshow_f();
}

function ssmain_loaded()
{
	ssp_main_images_count++;
	if(ssp_main_images_count < artwork.length) 
	{
		var loader2 = document.createElement('img');
		loader2.onload = ssmain_loaded;
		loader2.src = artwork[ssp_main_images_count][1];
	}
}

function load_slideshow_f()
{
	//alert('here');
	ssp_started = true;
	document.getElementById('slideshow_main').innerHTML = 'Loading...';
	var st = document.getElementById('slideshow_thumbs');
	var sh = document.getElementById('slideshow_head');
	var sc = document.getElementById('slideshow_controls');
	var loader2 = document.createElement('img');
	st.style.display = 'none';
	sc.style.display = 'none';
	var templink = null;
	var tempimage = null;
	var firstimage = null;
	var loader = null;
	document.getElementById('slideshow_counter').style.display = 'none';
	sh.innerHTML = 'Please wait';
	for(var ac=0; ac<artwork.length; ac++)
	{
		templink = document.createElement('a');
		templink.setAttribute('href', '#');
		templink.setAttribute('id', 'slideshowthumblink'+ac);
		templink.onclick = slideshow_image_click;
		tempimage = document.createElement('img');
		tempimage.onload = ssthumb_loaded;
		tempimage.setAttribute('id', 'slideshowthumb'+ac);
		templink.appendChild(tempimage);
		ssp_opacity(templink, 50);
		st.appendChild(templink);
		loader = document.createElement('img');
		loader.src = artwork[ac][0];
		if(ac == 0) firstimage = tempimage;
	}
	if(artwork.length > 0)
	{
		loader2 = document.createElement('img');
		//loader2.onload = ssmain_loaded;
		firstimage.src = artwork[0][0];	
		loader2.src = artwork[0][1];
	}
	setInterval('ssp_animation()', 100);
	//alert('here');
}

function ssp_animation()
{
	var main = document.getElementById('ssp_main_image_fly');
	if(!ssp_paused)
	{
		ssp_pauser_count++;
		if(ssp_pauser_count >= max_ssp_pauser_count)
		{
			ssp_go_next();	
		}
		else {
			document.getElementById('slideshow_counter').innerHTML = Math.ceil((max_ssp_pauser_count-ssp_pauser_count)/10);
			if(main)
			{
				if(ssp_pauser_count == 3) ssp_opacity(main, 100);
				else if(ssp_pauser_count < 3) ssp_opacity(main, ssp_pauser_count*33);
				else if(ssp_pauser_count > (max_ssp_pauser_count-3))
				{
					ssp_opacity(main, (max_ssp_pauser_count-ssp_pauser_count)*33);	
				}
			}
		}
	}
}

function ssmain_ready()
{
	var awidth = 97;
	var negative_offset = 379+(-1*awidth*current_ssp);
	var imgstr = '<a href="/works/art.'+artwork[current_ssp][4]+'.html">';
	var href = imgstr;
	var st = document.getElementById('slideshow_thumbs');
	var sh = document.getElementById('slideshow_head');
	var tablestr = '<table width="852" height="564" cellpadding="0" cellspacing="0"><tr><td align="center" valign="middle">';
	imgstr += '<img src="'+artwork[current_ssp][1]+'" alt="'+artwork[current_ssp][2]+'" id="ssp_main_image_fly" style="opacity:.1;filter: alpha(opacity=10);" /></a>';
	
	//document.getElementById('slideshowthumb'+last_ssp).style.marginTop = '0px';
	ssp_opacity(document.getElementById('slideshowthumblink'+last_ssp), 50);
	
	document.getElementById('slideshow_main').innerHTML = tablestr+imgstr+'</td></tr></table>';	
	//document.getElementById('slideshowthumb'+current_ssp).style.marginTop = '-10px';
	ssp_opacity(document.getElementById('slideshowthumblink'+current_ssp), 100);
	st.style.marginLeft = negative_offset+'px';
	st.style.display = '';
	//document.getElementById('slideshow_counter').style.display = '';
	document.getElementById('slideshow_controls').style.display = '';
	
	sh.innerHTML = 'Go To '+href+artwork[current_ssp][2]+'</a> Page'; 
	
	ssp_pauser_count = 0;
	ssp_paused = false;
}

function ssp_next()
{
	var tmp = document.createElement('img');
	tmp.onload = ssmain_ready;
	tmp.src = artwork[current_ssp][1];
}

function ssthumb_loaded()
{
	var remstr = 'slideshowthumb';
	var my_id = parseInt(this.id.replace(remstr,''));
	var next_thumb = document.getElementById('slideshowthumb'+(my_id+1));
	var perc_done = 0; 
	if(next_thumb)
	{
		perc_done = Math.round((my_id/artwork.length)*100);
		document.getElementById('slideshow_main').innerHTML = 'Loading '+perc_done+'%';
		next_thumb.src = artwork[(my_id+1)][0];
	}
	else {
		ssp_next();
	}
}

function slideshow_image_click()
{
	var remstr = 'slideshowthumblink';
	ssp_set(parseInt(this.id.replace(remstr,'')));
	return false;
}

function ssp_set(new_id)
{
	ssp_paused = true;
	last_ssp = current_ssp;
	current_ssp = new_id;
	ssp_next();
}

//http://www.akxl.net/labs/articles/use-javascript-to-change-or-fade-opacity-or-transparency-of-html-entities/
function ssp_opacity(elem, opacityAsInt)
{
	var opacityAsDecimal = opacityAsInt;     
	if (opacityAsInt > 100) opacityAsInt = opacityAsDecimal = 100; 
	else if (opacityAsInt < 0) opacityAsInt = opacityAsDecimal = 0; 
	opacityAsDecimal /= 100;
	if (opacityAsInt < 1) opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
	elem.style.opacity = (opacityAsDecimal);
	elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}

function ssp_pause()
{
	var sp = document.getElementById('sp_pause');
	var sc = document.getElementById('slideshow_counter');
	ssp_paused = !ssp_paused;
	if(ssp_paused) {
		sp.innerHTML = 'Start';
		sc.style.display = 'none';
	}
	else {
		sp.innerHTML = 'Stop';	
		//sc.style.display = '';
	}
	return false;
}

function ssp_go_next()
{
	var main = document.getElementById('ssp_main_image_fly');
	if(main) main.style.display = 'none';
	ssp_paused = true;
	if(current_ssp >= (artwork.length-1)) ssp_set(0);
	else ssp_set(current_ssp+1);
	return false;	
}

function ssp_go_previous()
{
	var main = document.getElementById('ssp_main_image_fly');
	if(main) main.style.display = 'none';
	ssp_paused = true;
	if(current_ssp == 0) ssp_set(artwork.length-1);
	else ssp_set(current_ssp-1);
	return false;	
}

