/**
 * @author nbalsaras
 */

/* 
 * safari tweak (needed due to varience in mac style fonts
 */
if (navigator.appVersion.indexOf("Mac")!=-1){
	document.write('<style type="text/css">#jumpToMenu li a {letter-spacing:0.08em;}</style>');
	var detect = navigator.userAgent.toLowerCase();
	if (checkIt('safari')){
	    document.write('<style type="text/css">#jumpToMenu li a {letter-spacing:1px !important; font-size:0.9em; line-height:1.6em}</style>');
	}
}

function checkIt(string){
    var place = detect.indexOf(string) + 1;
    return place;
} 


var zx = jQuery.noConflict();
var overPanel = false;
var boardList;
var rego = 0;
var x = 0;
var sel;
var newSel;
var selHide;
var jumpList;
var jumpWidth = new Array();
var jumpState = new Array();
var active = 0;
var centreAccordion;
// states
// 0 = hidden
// 1 = appearing
// 2 = shown
// 3 = leaving

// pop up pannels
zx(document).ready(function(){
	zx(".panel").slideUp("fast");

	zx(".btn").mouseover(function(){
		zx(this).next().slideDown("fast");
	});
	
	zx(".wrapper").mouseover(function(){
	 	overPanel = true;
	});
	
	zx(".wrapper").mouseout(function(){
		overPanel = false;
		setTimeout("hidePanel();", 1);
	});
});
function hidePanel(){
	if (overPanel == false) {
		zx(".panel").slideUp("fast");
		overPanel = false;
	}
}

//accordians
Event.observe(window, 'load', loadAccordions, false);
	function loadAccordions() { // Setup accordians only if they exist
		if (document.getElementById('vertical_container') != null) {
			centreAccordion = new accordion('vertical_container');
			var verticalAccordions = $$('.accordion_toggle'); 
			verticalAccordions.each(function(accordion) {
				$(accordion.next(0)).setStyle({
					height: '0px'
				});
			});
			if ($$('#vertical_container .accordion_toggle').length == 1) {
				centreAccordion.activate($$('#vertical_container .accordion_toggle')[0]);
			} 
		}
		if (document.getElementById('toolbar_container') != null) {
			var toolbarAccordion = new accordion('toolbar_container');
			if (document.getElementById('jumpToMenu') != null){
				//toolbarAccordion.activate($$('#toolbar_container .accordion_toggle')[1]);
			}
		}
	}

//side pop out jump to tabs
function initJumpTab(){
	if(document.getElementById('jumpToMenu') != null){
		jumpList = document.getElementById('jumpToMenu').getElementsByTagName('div').length;
		var jumpHeight = document.getElementById('jumpToMenu').getElementsByTagName('ul')[0].offsetHeight;
		for(var i = 0; i < jumpList; i++){
				jumpWidth[i] = 0;
				document.getElementById('jumpToMenu').getElementsByTagName('div')[i].style.visibility = 'hidden';
				document.getElementById('jumpToMenu').getElementsByTagName('div')[i].style.width = jumpWidth[i] + 'px';
				document.getElementById('jumpToMenu').getElementsByTagName('div')[i].style.height = jumpHeight + 'px';
				document.getElementById('jumpToMenu').getElementsByTagName('div')[i].style.overflow = 'hidden';
				jumpState[i] = 0;
		}
	}
}
function jumpTab(select, holdState){
	var isHold = holdState;
	newSel = select;
	
	if (rego < 1 || isHold == true) {
		activeJumpTab(select);
		if (active == 1) {
			setTimeout("jumpTab(newSel, true);", 10);
			if (isHold == false) {
				rego++;
			}
		}
		else if (jumpState[select] != 2) {
			showHideJumpTab(select);
			if (isHold == true) {
				rego--;
			}
		}
		else {
			hideJumpTab(select);
			if (isHold == true) {
				rego--;
			}
		}
	}
}
function activeJumpTab(select){
	for (var i = 0; i < jumpList; i++) {
		document.getElementById('jumpToMenu').getElementsByTagName('a')[i].className = '';
	}
	document.getElementById('jumpToMenu').getElementsByTagName('a')[select].className = 'active';
}
function hideJumpTab(select){
	selHide = select;
	if(jumpWidth[select] < 1 && jumpState[select] == 3){
		jumpState[select] = 0;
		active = 0;
		document.getElementById('jumpToMenu').getElementsByTagName('div')[select].style.visibility = 'hidden';
		document.getElementById('jumpToMenu').getElementsByTagName('a')[select].className = '';
	}
		
	if (jumpState[select] == 3) {
		jumpWidth[select] = jumpWidth[select] - 20;
		active = 1;
		go(select);
		setTimeout("hideJumpTab(selHide);", 10);
	}
	else if (jumpState[select] == 2) {
		active = 1;
		jumpState[select] = 3;
		hideJumpTab(select);
	}
}
function showHideJumpTab(select){
	sel = select;
	active = 0;
	for (var i = 0; i < jumpList; i++) {
		if(jumpWidth[i] > 350 && jumpState[i] == 1){
			jumpState[i] = 2;
		}
		if(jumpWidth[i] < 1 && jumpState[i] == 3){
			jumpState[i] = 0;
			document.getElementById('jumpToMenu').getElementsByTagName('div')[i].style.visibility = 'hidden';
		}
		
		if (jumpState[i] == 3) {
			jumpWidth[i] = jumpWidth[i] - 20;
			active = 1;
			go(i);
			setTimeout("showHideJumpTab(sel);", 10);
		}
		else if (jumpState[i] == 2 && i != select) {
			active = 1;
			jumpState[i] = 3;
			showHideJumpTab(select);
		}
		else if (jumpState[i] == 1) {
			jumpWidth[i] = jumpWidth[i] + 20;
			active = 1;
			go(i);
			setTimeout("showHideJumpTab(sel);", 10);
		}
	}
	if (jumpState[select] == 0 && active == 0) {
		jumpState[select] = 1;
		document.getElementById('jumpToMenu').getElementsByTagName('div')[select].style.visibility = 'visible';
		showHideJumpTab(select);
	}
}
function go(item){
	document.getElementById('jumpToMenu').getElementsByTagName('div')[item].style.width = jumpWidth[item] + 'px';
	document.getElementById('jumpToMenu').getElementsByTagName('div')[item].style.left = '-' + (jumpWidth[item] + 2) + 'px';
}


// hide, show div arrays
function initBoard(){
	if(document.getElementById('board') != null){
		boardList = document.getElementById('board').getElementsByTagName('div').length;
		for(var i = 0; i < boardList; i++){
				document.getElementById('board').getElementsByTagName('div')[i].style.display = 'none';
		}
	}
}
function showHideBoard(select){
	for(var i = 0; i < boardList; i++){
		if(i == select){
			document.getElementById('board').getElementsByTagName('div')[i].style.display = 'block';
		}
		else{
			document.getElementById('board').getElementsByTagName('div')[i].style.display = 'none';
		}
	}
}



// Bookmark javascript

function addToFavourites()
{
	title = document.title;
	url = location.href;

	if (window.sidebar)
	{
		// Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	}
	else if( window.external )
	{
		// IE Favorite
		window.external.AddFavorite( url, title);
	}
	else if(window.opera && window.print)
	{
		// Opera Hotlist
		var link = document.createElement('a');
		link.setAttribute('rel','sidebar');
		link.setAttribute('href',url);
		link.setAttribute('title',title);
		link.click();
		// return true;
	}
}


// ADJUST TEXT SIZE FUNCTIONS AND INITIALISATION

var SMALL_SHEET 	= 'screen_small.css';
var NORMAL_SHEET	= 'screen_normal.css';
var LARGE_SHEET	= 'screen_large.css';
var HUGE_SHEET	= 'screen_huge.css';

function initTextResize() {

// When the page loads, we need to check cookies to see if the user has changed the stylesheet
if(getCookieValue('lg_stylesheet') == '') {
	// cookie doesn't exist so set to the default sheet
	setCookieValue('lg_stylesheet', NORMAL_SHEET, 100);
} else {
	// Set the current stylesheet to the one in the cookie	
	var curSheetPath	= document.getElementById('textSize').href;
	var newSheet		= '';
	var index			= curSheetPath.lastIndexOf('/');
	
	if(index >= 0) {
		curSheetPath	= curSheetPath.slice(0,index+1);
	}
	
	newSheet 			= getCookieValue('lg_stylesheet');
//alert(curSheetPath + newSheet);
	if(newSheet != '') {
		document.getElementById('textSize').href = curSheetPath + newSheet;
                  //Resize the page
//alert('loc:'+curLoc);
                  resizePage(curLoc);	
         }
}
}

function changeTextSize(dir) {
	var curSheetOrig	= document.getElementById('textSize').href;
	var curSheet		= '';
	var curSheetPath	= '';
	var newSheet		= '';
	var index			= curSheetOrig.lastIndexOf('/');
	
	if(index >= 0) {
		curSheet		= curSheetOrig.slice(index+1);
		curSheetPath	= curSheetOrig.slice(0,index+1);
	}
		
	switch(curSheet) {
		case SMALL_SHEET:
			if(dir == 'up') newSheet = NORMAL_SHEET;
			break;
		case NORMAL_SHEET:
			if(dir == 'up') newSheet = LARGE_SHEET; else newSheet = SMALL_SHEET;
			break;
		case LARGE_SHEET:
			if(dir == 'up') newSheet = HUGE_SHEET; else newSheet = NORMAL_SHEET;
			break;
		case HUGE_SHEET:
			if(dir == 'down') newSheet = LARGE_SHEET;
			break;
		default:
			newSheet = NORMAL_SHEET;
			break;
	}
	
	if(newSheet != '') {
                  document.getElementById('textSize').href = curSheetPath + newSheet;
//alert('setting cookie:'+newSheet);		
		setCookieValue('lg_stylesheet', newSheet, 100);

                  //Resize the page again
                  resizePage(curLoc);
	}
}


// COOKIE HANDLING FUNCTIONS

function getCookieValue(c_name) {
	if (document.cookie.length>0) {
		c_start			= document.cookie.indexOf(c_name + "=");
		
		if (c_start!=-1) { 
			c_start		= c_start + c_name.length+1;
			c_end		= document.cookie.indexOf(";",c_start);
			
			if (c_end == -1) 
				c_end	= document.cookie.length;
			
			return unescape(document.cookie.substring(c_start,c_end));
		} 
	}
	
	return ""
}

function setCookieValue(c_name, value, expiredays) {
	var exdate		= new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie	= c_name+ "=" + escape(value)+
		((expiredays==null) ? "" : ";expires=" + exdate.toUTCString());
}

function openTabSamePage(tabnum, locallinkname) {
	centreAccordion.activate($$('#vertical_container .accordion_toggle')[tabnum]);
	window.location.href=locallinkname;
}