
// requires utils.js (addLoadEvent, cookie, isIE);

//_____[ wfu linkbar ]_____\\

var linkbar =
{
	container: null,
	handle: null,
	keyset: null,
	keyreset: null,
	keyboard: false,
	
	openClose: function()
	{
		if(linkbar.handle.movement) { clearTimeout(linkbar.handle.movement); }
		if(linkbar.handle.className != 'open')
		{
			linkbar.openLinkbar();
		}
		else
		{
			linkbar.closeLinkbar();
		}
	},
	
	autoOpen: function()
	{
		document.body.style.top = '28px';
		linkbar.handle.className = 'open';
		linkbar.container.className = 'open';
	},
	
	openLinkbar: function()
	{
		linkbar.moveElement('',-1,28,10);
		linkbar.handle.className = 'open';
		linkbar.container.className = 'open';
		cookie.create('zsr-lb-s','open','','/','.zsr.wfu.edu');
	},
	
	closeLinkbar: function()
	{
		linkbar.moveElement('',28,-1,10);
		linkbar.handle.className = '';
		linkbar.handle.movement = setTimeout('linkbar.closeControl()',1000);
		cookie.create('zsr-lb-s','closed','','/','.zsr.wfu.edu');
	},
	
	closeControl: function()
	{
		linkbar.handle.className = 'closed';
		linkbar.container.className = '';
	},
	
	clearKey: function()
	{
		linkbar.keyset = false;
		clearTimeout(linkbar.keyreset);
	},
	
	getKey: function(e)
	{
		if(e == null) // ie
		{
			keycode = event.keyCode;
		}
		else // mozilla
		{
			keycode = e.which;
		}
		if(linkbar.keyboard)
		{
			if(linkbar.keyset == 87 && keycode == 70) // f
			{
				linkbar.openClose();
				linkbar.keyset = false;
			}
			if(keycode == 87) // w
			{
				linkbar.keyset = 87;
				linkbar.keyreset = setTimeout("linkbar.clearKey()",500);
			}
		}
	},
	
	setKeyboard: function()
	{
		var n = document.getElementsByTagName('*');
		for(var i = 0; i < n.length; i++)
		{
			if(n[i].tagName == 'INPUT' || n[i].tagName == 'TEXTAREA' || n[i].tagName == 'SELECT')
			{
				n[i].onfocus = function() { linkbar.keyboard = false; };
				n[i].onblur = function() { linkbar.keyboard = true; };
			}
		}
	},
	
	buildLink: function(h,x,t)
	{
		var a = document.createElement('a');
		var at = document.createTextNode(x);
		a.setAttribute('href',h);
		a.appendChild(at);
		linkbar.container.appendChild(a);
		if(t) { linkbar.container.appendChild(document.createTextNode(t)); }
	},

	prepareLinks: function()
	{
		// start IE fix
		var x = document.createElement('div');
		document.body.insertBefore(x,document.body.firstChild);
		// end IE fix
		linkbar.container = document.createElement('div');
		linkbar.container.setAttribute('id','linkbar');
		//linkbar.container.appendChild(document.createTextNode('go to: '));
		var t = ' | ';
		linkbar.buildLink('http://www.wfu.edu/','WFU Home',t);
		linkbar.buildLink('http://webmail.wfu.edu/','WebMail',t);
		linkbar.buildLink('https://mobileumail.wfu.edu/exchange/','MobileUMail',t);
		linkbar.buildLink('https://win.wfu.edu/','WIN',t);
		linkbar.buildLink('http://www.wfu.edu/wowf/','Window on Wake Forest',t);
		linkbar.buildLink('http://www.wakestudent.com/','WakeStudent',t);
		linkbar.buildLink('https://blackboard.wfu.edu/webapps/login/','Blackboard');	
		linkbar.handle = document.createElement('div');
		linkbar.handle.setAttribute('id','go');
		linkbar.handle.className = 'closed';
		linkbar.handle.onclick = linkbar.openClose;
		linkbar.container.appendChild(linkbar.handle);
		// start IE fix
		//document.body.appendChild(b);
		document.body.insertBefore(linkbar.container,document.body.firstChild);
		// end IE fix
		//g.movement = setTimeout('linkbar.closeControl()',1000);
		document.onkeydown = linkbar.getKey;
	},

	moveElement: function(e,start,end,i)
	{
		var elem = !e ? document.body : document.getElementById(e);
		if(elem.movement) { clearTimeout(elem.movement); }
		if(!elem.style.top) { elem.style.top = start + 'px'; }
		var ypos = parseInt(elem.style.top);
		if(ypos == end) { return true; }
		if(ypos < end) { var dist = Math.ceil((end - ypos)/10); ypos = ypos + dist; }
		if(ypos > end) { var dist = Math.ceil((ypos - end)/10); ypos = ypos - dist; }
		elem.style.top = ypos + 'px';
		var repeat = "linkbar.moveElement('"+e+"',"+start+","+end+","+i+")";
		elem.movement = setTimeout(repeat,i);
	},
	
	isEnabled: function()
	{
		var url = location.href;
		if(document.getElementById('wrap'))
		{
			return true;
		}
		if(url.indexOf('//vufind.') != -1 && document.getElementById('hd'))
		{
			return true;
		}
		if(url.indexOf('//guides.') != -1 && document.getElementById('zsrheader'))
		{
			return true;
		}
		return false;
	},

	init: function()
	{
		if(!document.body || !document.getElementById || !document.createElement) return false;
		if(linkbar.isEnabled())
		{
			//linkbar.setKeyboard();
			linkbar.prepareLinks();
			linkbar_settings.init();
		}
	}
}
addLoadEvent(linkbar.init);

//_____[ linkbar settings ]_____\\

var linkbar_settings =
{
	auto_open: true,
	
	buildSettings: function()
	{
		var settings = document.getElementById('linkbar_settings');
		if(settings)
		{
			settings.parentNode.removeChild(settings);
		}
		var s = document.createElement('span');
		s.setAttribute('id','linkbar_settings');
		var override = cookie.get('zsr-lb-so');
		if(override && override == '_closed')
		{
			s.appendChild(document.createTextNode('\u2610'));
			s.setAttribute('title','Open (set as default)');
			s.onclick = function()
			{
				cookie.create('zsr-lb-so','_open',30,'/','.zsr.wfu.edu');
				linkbar_settings.auto_open = true;
				linkbar_settings.buildSettings();
				return false;
			};
		}
		else
		{
			s.appendChild(document.createTextNode('\u2212'));
			s.setAttribute('title','Minimize (set as default)');
			s.onclick = function()
			{
				cookie.create('zsr-lb-so','_closed',30,'/','.zsr.wfu.edu');
				linkbar_settings.auto_open = false;
				if(linkbar.handle.className == 'open')
				{
					linkbar.closeLinkbar();
				}
				linkbar_settings.buildSettings();
				return false;
			};
		}
		linkbar.container.insertBefore(document.createTextNode(' '),linkbar.handle);
		linkbar.container.insertBefore(s,linkbar.handle);
	},
	
	checkSettings: function()
	{
		var state = cookie.get('zsr-lb-s');
		var override = cookie.get('zsr-lb-so');
		if(override)
		{
			if(override == '_open')
			{
				cookie.create('zsr-lb-so','_open',30,'/','.zsr.wfu.edu');
				linkbar_settings.auto_open = true;
			}
			if(override == '_closed')
			{
				cookie.create('zsr-lb-so','_closed',30,'/','.zsr.wfu.edu');
				linkbar_settings.auto_open = false;
			}
		}
		else
		{
			if(state)
			{
				if(state == 'open')
				{
					linkbar_settings.auto_open = true;
				}
				if(state == 'closed')
				{
					linkbar_settings.auto_open = false;
				}
			}
			else
			{
				linkbar_settings.auto_open = true;
			}
		}
	},
	
	init: function()
	{
		linkbar_settings.buildSettings();
		linkbar_settings.checkSettings();
		if(linkbar_settings.auto_open)
		{
			linkbar.autoOpen();
		}
	}
}
// see linkbar.init;
