/**************************************
 * Global var
 **************************************/
var CrumbSeperator = ' &gt; ';
var DotDotDot = '.....';
var undefined;

var SubMenuDelimiter = ':';
var SubMenuHome = '';
var SubMenuNewsEvents = 'News:/~vyso/news&events/news/news.html:Concerts:/~vyso/news&events/concerts/concerts.html:Rehearsals:/~vyso/news&events/rehearsals/rehearsals.html:Meetings:/~vyso/news&events/meetings/meetings.html:Country Tours:/~vyso/news&events/countrytours/countrytours.html:Calendar:/~vyso/news&events/calendar/calendar.html';
var SubMenuAboutVyso = 'What is VYSO?:/~vyso/aboutvyso/whatisvyso/whatisvyso.html:Who is Involved?:/~vyso/aboutvyso/whoisinvolved/whoisinvolved.html:History:/~vyso/aboutvyso/history/history.html:Committee Members:/~vyso/aboutvyso/committeemembers/committeemembers.html:Sponsors:/~vyso/aboutvyso/sponsors/sponsors.html:Patron:/~vyso/aboutvyso/patron/patron.html';
var SubMenuJoinVyso = 'How to Join:/~vyso/joinvyso/howtojoin/howtojoin.html:What Do Members Do?:/~vyso/joinvyso/whatdomembersdo/whatdomembersdo.html';
var SubMenuInfoForSchools = 'Info for Students:/~vyso/infoforschools/infoforstudents/infoforstudents.html:Program Notes:/~vyso/infoforschools/programnotes/programnotes.html';
var SubMenuMultimedia = 'Photos:/~vyso/multimedia/photos/photos.html:Slide Show:/~vyso/multimedia/slideshow/slideshow.html:Audio:/~vyso/multimedia/audio/audio.html';
var SubMenuContactUs = '';

var IeHover = function() {
	var elements = document.getElementById("MainMenu").getElementsByTagName("li");
	for (var i = 0; i < elements.length; i++) {
		elements[i].onmouseover = function() {
			this.className += " IeHover";
		}
		elements[i].onmouseout = function() {
			this.className = this.className.replace(new RegExp(" IeHover\\b"), "");
		}
	}
	elements = document.images;
	for (var i = 0; i < elements.length; i++) {
	  if(elements[i].className != undefined && elements[i].className.indexOf('Thumbnail') >= 0) {
		  elements[i].onmouseover = function() {
			  this.className += " IeHover";
		  }
		  elements[i].onmouseout = function() {
			  this.className = this.className.replace(new RegExp(" IeHover\\b"), "");
		  }
		}
	}
}
if(window.attachEvent) window.attachEvent("onload", IeHover);

/**************************************
 * GetBannerDiv
 **************************************/
function GetBannerDiv() {
	var output = '\n'+
			'<div id=\"Banner\">\n'+
			'<img src=\"/~vyso/images/banner.jpg\" alt="Victorian Youth Symphony Orchestra Heading" title="Victorian Youth Symphony Orchestra Heading" />\n'+
			'<ul id=\"MainMenu\">\n'+
				'<li>\n'+
					'<a href=\"/~vyso/home.html\">Home</a>\n'+
				'</li>\n'+
				'<li>\n'+
					'<a href=\"/~vyso/news&events/news&events.html\">News &amp; Events</a>\n'+
					'<ul>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/news&events/news/news.html\">News</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/news&events/concerts/concerts.html\">Concerts</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/news&events/rehearsals/rehearsals.html\">Rehearsals</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/news&events/meetings/meetings.html\">Meetings</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/news&events/countrytours/countrytours.html\">Country Tours</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/news&events/calendar/calendar.html\">Calendar</a></li>\n'+
					'</ul>\n'+
				'</li>\n'+
				'<li>\n'+
					'<a href=\"/~vyso/aboutvyso/aboutvyso.html\">About VYSO</a>\n'+
					'<ul>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/aboutvyso/whatisvyso/whatisvyso.html\">What is VYSO?</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/aboutvyso/whoisinvolved/whoisinvolved.html\">Who is Involved?</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/aboutvyso/history/history.html\">History</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/aboutvyso/committeemembers/committeemembers.html\">Committee Members</a></li>\n'+
            '<li>\n'+
							'<a href=\"/~vyso/aboutvyso/sponsors/sponsors.html\">Sponsors</a></li>\n'+
            '<li>\n'+
							'<a href=\"/~vyso/aboutvyso/patron/patron.html\">Patron</a></li>\n'+
					'</ul>\n'+
				'</li>\n'+
				'<li>\n'+
					'<a href=\"/~vyso/joinvyso/joinvyso.html\">Join VYSO</a>\n'+
					'<ul>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/joinvyso/howtojoin/howtojoin.html\">How to Join</a></li>\n'+
						'<li>\n'+
							'<a href=\"/~vyso/joinvyso/whatdomembersdo/whatdomembersdo.html\">What Do Members Do?</a></li>\n'+
					'</ul>\n'+
				'</li>\n'+
				'<li>\n'+
					'<a href=\"/~vyso/infoforschools/infoforschools.html\">Info for Schools</a>\n'+
					'<ul>\n'+
    				'<li>\n'+
					    '<a href=\"/~vyso/infoforschools/infoforstudents/infoforstudents.html\">Info for Students</a>\n'+
				    '<li>\n'+
					    '<a href=\"/~vyso/infoforschools/programnotes/programnotes.html\">Program Notes</a>\n'+
					'</ul>\n'+
				'</li>\n'+
				'<li>\n'+
					'<a href=\"/~vyso/multimedia/multimedia.html\">Multimedia</a>\n'+
					'<ul>\n'+
    				'<li>\n'+
					    '<a href=\"/~vyso/multimedia/photos/photos.html\">Photos</a>\n'+
    				'<li>\n'+
					    '<a href=\"/~vyso/multimedia/slideshow/slideshow.html\">Slide Show</a>\n'+
				    '<li>\n'+
					    '<a href=\"/~vyso/multimedia/audio/audio.html\">Audio</a>\n'+
					'</ul>\n'+
				'</li>\n'+
				'<li>\n'+
					'<a href=\"/~vyso/contactus/contactus.html\">Contact Us</a>\n'+
				'</li>\n'+
			'</ul>\n'+
		'</div>\n'+
	'';
	return output;
}

/**************************************
 * GetBreadCrumbsDiv - relies on RootHome, Parent, GrandParent and GreatGrandParent initialisations
 **************************************/
function GetBreadCrumbsDiv(pages, delimiter, currentPageName) {
  var pagesArray = (pages.length > 0)? pages.split(delimiter) : '';
  var output = '\n<div id=\"BreadCrumbs\">';
  var firstCrumb = true;
  for(var i = 0; i < pagesArray.length; i+=2) {
    if(!firstCrumb) {
      output += CrumbSeperator;
    }
    output += '<a href=\"' + pagesArray[i+1] + '\">' + pagesArray[i] + '</a>\n';
    firstCrumb = false;
  }
  if(!firstCrumb) {
    output += CrumbSeperator;
  }
  output += currentPageName + '\n'; 
  output += '</div>';
  return output;
}

/**************************************
 * GetItems
 **************************************/
function GetItems(items, nonArchive, cols, delimiter, numChars, className, id)
{
  var visible = true;
	var output = '<div class="' + className + '" id="' + id + '">\n';
	var itemArray = items.split(delimiter);
	var headerArray = new Array(cols);
	for(var i = 0; i < cols; ++i) {
		headerArray[i] = itemArray[0+i];
	}
	for(var j = cols; j < itemArray.length-1; j+=cols) {
    if(j > cols * nonArchive && visible) {
      output += '<a class="Archive" href="javascript:ItemToggle(\'Archive\');">Archive</a><div id="Archive" class="Archive Invisible">\n';
      visible = false;
    }
    output += '<div class="Item">\n';
		output += '<span class="Item' + headerArray[0] + '">\n';
		output += '<a href=\"javascript:ItemToggle(\'ItemDotDotDot' + headerArray[cols-1] + itemArray[j+0] + '\');ItemToggle(\'ItemSummary' + j + '\');ItemToggle(\'Item' + headerArray[cols-1] + itemArray[j+0] + '\');">' + itemArray[j+0] + '</a></span>\n';
		for(var i = 1; i < cols-1; ++i) {
			output += '<span class="Item' + headerArray[i] + '">' + itemArray[j+i] + '</span>\n';
		}
		output += '<p class="ItemDetail"><span class="ItemSummary Visible" id="ItemSummary' + j + '">' + itemArray[j+cols-1].substring(0, itemArray[j+cols-1].indexOf('</p>') < numChars ? itemArray[j+cols-1].indexOf('</p>') : itemArray[j+cols-1].substring(0, numChars).lastIndexOf(' ')).replace(/<p>/g, '').replace(/<\/p>/g, '') + '</span>';
	  output += '<span class="ItemDotDotDot Visible" id="ItemDotDotDot' + headerArray[cols-1] + itemArray[j+0] + '">' + DotDotDot + '</span>';
	  output += '<span class="Item' + headerArray[cols-1] + ' Invisible" id="Item' + headerArray[cols-1] + itemArray[j+0] + '">' + itemArray[j+cols-1] + '</span></p>';
		output += '</div>\n';
	}
	if(!visible) {
	  output += '</div>\n';
	}
	output += '</div>\n';
	return output;
}

/**************************************
 * GetPhotoThumbnails
 **************************************/
function GetPhotoThumbnails(items, nonArchive, cols, delimiter, numChars, className, thumbnailPostFix)
{
  var visible = true;
	var output = '<div class="' + className + '">\n';
	var tempTitle = '';
	var itemArray = items.split(delimiter);
	var headerArray = new Array(cols);
	var currentCategory = '';
	for(var i = 0; i < cols; ++i) {
		headerArray[i] = itemArray[0+i];
	}
	for(var j = cols; j < itemArray.length-1; j+=cols) {
    if(j > cols * nonArchive && visible) {
      output += '<a class="Archive" href="javascript:ItemToggle(\'Archive\');">Archive</a><div id="Archive" class="Archive Invisible">\n';
      visible = false;
    }
    if(currentCategory != itemArray[j]) {
      if(currentCategory != '') {
        output += '</span><br /><a class="TopArrow" href="#"><img src="/~vyso/images/TopArrow.png" alt="Up" title="Top" /></a><a class="TopArrowText" href="#">Top</a></p></div>\n';
      }
      currentCategory = itemArray[j];
      output += '<div class="Item">\n';
		  output += '<p class="Item' + headerArray[0] + '">\n';
		  output += '<a href=\"javascript:ItemToggle(\'ItemDetail' + j + '\');">' + itemArray[j+0] + '</a></p>\n';
		  output += '<p class="ItemDetail Invisible" id="ItemDetail' + j + '">\n';
		  }
		tempTitle = itemArray[j+3] + ' (' + itemArray[j+1] + ' ' + itemArray[j+2] + ')';
    output += '<a class="ThumbnailLink" href="/~vyso/multimedia/slideshow/slideshow.html?photo=' +itemArray[j+cols-1].substring(itemArray[j+cols-1].lastIndexOf('/')+1, itemArray[j+cols-1].length) + '&index=0"><img class="Thumbnail" src="' + itemArray[j+cols-1].substring(0, itemArray[j+cols-1].length-4)  + thumbnailPostFix + itemArray[j+cols-1].substring(itemArray[j+cols-1].length-4, itemArray[j+cols-1].length) + '" alt="' + tempTitle + '" title="' + tempTitle + '" /></a>\n';
	}
  output += '<br /><a class="TopArrow" href="#"><img src="/~vyso/images/TopArrow.png" alt="Up" title="Top" /></a><a class="TopArrowText" href="#">Top</a></p></div>\n';
	if(!visible) {
	  output += '</div>\n';
	}
	output += '</div>\n';
	return output;
}

/**************************************
 * ItemToggle
 **************************************/
function ItemToggle(itemName) {
  var item = document.getElementById(itemName);
  if(item.className.indexOf('Invisible') == -1) {
    item.className = item.className.replace(new RegExp(" Visible\\b"), "");
    item.className = item.className + " Invisible";
  }
  else {
    item.className = item.className.replace(new RegExp(" Invisible\\b"), "");
    item.className = item.className + " Visible";
  }
}

/**************************************
 * GetSubMenu
 **************************************/
function GetSubMenu(submenu, delimiter) {
  var output = '<div class="SubMenu">\n';
  var itemArray = submenu.split(delimiter);
  for(var j = 0; j < itemArray.length; j+=2) {
	  output += '<p class="SubMenu"><a class="SubMenuLink" href="' + itemArray[j+1] + '">' + itemArray[j+0] + '</a></p>\n';
	}
	output += '</div>';
	return output;
}

/**************************************
 * GetYahooGroup
 **************************************/
function GetYahooGroup() {
  var output = '\n'+
    '<div class="YahooGroup">\n'+
      '<form id="YahooGroupForm" name="YahooGroupForm" action="http://launch.groups.yahoo.com/subscribe/vyso_friends" method="get" enctype="application/x-www-form-urlencoded">\n'+
        '<p>Enter your email address and <a href="javascript:SubmitForm(document.YahooGroupForm);">click here</a> to join our Yahoo mailing list</p>\n'+
        '<input class="YahooGroupInputText" type="text" name="user" value="Enter email address" />\n'+
      '</form>\n'+
    '</div>\n'+
  '';
  return output;
}

/**************************************
 * GetFooter
 **************************************/
function GetFooter() {
  var output = '\n'+
    '<div class="Footer">\n'+
      '<p class="Footer">Site Design &amp; Code: meltingWaldo</p>\n'+
      '<p class="Footer">"Conductor Title" Photograph: © Copyright 2004 <a class="Footer" href="http://gavinstok.com">Gavin Stok</a></p>\n'+
      '<p class="Footer">Updated on 30 Jan 2006</p>\n'+
    '</div>\n'+
  '';
  return output;
}

/**************************************
 * SubmitForm
 **************************************/
function SubmitForm(form) {
  form.submit();
} 

/**************************************
 * GetQueryStringVariables
 **************************************/
function GetQueryStringVariables(queryString) {
  var hash = new Object();
  var pairArray = new Array();
  var keyValArray = new Array();
  var qString = queryString.replace(/^[^\?]+\??/,'');
  if(qString.length > 0) {
    pairArray = qString.split(/[;&]/);
    for(var i = 0; i < pairArray.length; i++ ) {
      keyValArray = pairArray[i].split('=');
      if(keyValArray.length == 2) {;
        hash[(unescape(keyValArray[0]).replace(/\+/g, ' '))] = unescape(keyValArray[1]).replace(/\+/g, ' ');
      }
    }
  }
  return hash;
} 

/**************************************
 * GetSlideShow
 **************************************/
function GetSlideShow(items, cols, delimiter, thumbnailQuantity, thumbnailPostFix, hash) {
//  document.writeln('GetSlideShow(items, thumbnailQuantity, thumbnailPostFix, hash): (' + items + ', ' + thumbnailQuantity + ', ' + thumbnailPostFix + ', ' + hash + ')');
  var selectedPhoto = hash['photo'];
  var photoIndex = hash['index'];
  var nextSetText = 'Next set of ' + thumbnailQuantity + ' images';
  var previousSetText = 'Previous set of ' + thumbnailQuantity + ' images';
//  document.writeln('selectedPhoto: ' + selectedPhoto);
  var found = 0;
  var previousSource = '';
  var source = new Array();
  var output = '';
	var title = new Array();
	var category = new Array();
	var itemArray = items.split(delimiter);
	var index = cols;

  if(photoIndex == undefined) {
    photoIndex = 0;
  }
  //find in photoItems
  for(var j = cols; j < itemArray.length-1; j+=cols) {
    if(itemArray[j+cols-1].lastIndexOf(selectedPhoto) >= 0 || found > 0) {
      selectedPhoto = '';
      index = j-(photoIndex*cols);
      break;
    }
  }
  //document.writeln('index: ' + index);
	for(var j = index; j < itemArray.length-1; j+=cols) {
  //found
    if(found == 0) {
      if(j - (cols*4) > 0) {
        previousSource = itemArray[j-(cols*3)-1];
      }
      else if(j-cols > 0) {
        previousSource = itemArray[(cols*2)-1];
      }
    }
    if(found <= thumbnailQuantity) {
    source[found] = itemArray[j+cols-1];
    title[found] = itemArray[j+3] + ' (' + itemArray[j+1] + ' ' + itemArray[j+2] + ')';
    category[found] = itemArray[j];
    }
    ++found;
  }
  if(source[0] == '') return ''; //error photo not found, first photo doesn't exist?

  output += ''+
    '<div id="BigPhotoDiv">\n'+
      '<a name="BigPhoto"><img id="BigPhotoImg" src="' + source[photoIndex] + '" alt="' + title[photoIndex] + '" title="' + title[photoIndex] + '" /></a>\n'+
		'</div>\n'+
		'<div id="BigPhotoTitle"><p id="BigPhotoTitle">' + category[photoIndex] + ' - ' + title[photoIndex] + '</p></div>\n'+
		'<div id="SlideShowThumbnails">\n';
	if(previousSource != '') {
	  output += '<a class="SlideShowNavigationLeft" href="/~vyso/multimedia/slideshow/slideshow.html?photo=' + previousSource.substring(previousSource.lastIndexOf('/')+1, previousSource.length) + '&index=0"><img class="SlideShowNavigation" src="/~vyso/images/LeftArrow.png" alt="' + previousSetText + '" title="' + previousSetText + '" /></a>\n';
	}
	else {
	  output += '<a class="SlideShowNoNavigation"><img class="SlideShowNoNavigation" src="/~vyso/images/LeftArrow.png" alt="' + previousSetText + '" title="' + previousSetText + '" /></a>\n';
	}  
  
  var thumbnailClass = 'Thumbnail';
  for(var i = 0; i < thumbnailQuantity; ++i) {
    thumbnailClass = 'Thumbnail';
    if(i == photoIndex) {
      thumbnailClass = 'ThumbnailSelected';
    }
    if(source[i] != undefined && source[i].length > 0) {
      output += '<a class="' + thumbnailClass + '" href="/~vyso/multimedia/slideshow/slideshow.html?photo=' + source[i].substring(source[i].lastIndexOf('/')+1, source[i].length) + '&index=' + i + '"><img class="'+ thumbnailClass +'" src="' + source[i].substring(0, source[i].length-4)  + thumbnailPostFix + source[i].substring(source[i].length-4, source[i].length) + '" alt="'+ title[i] +'" title="' + title[i] + '" /></a>\n';
    }
  }
  
  if(source[thumbnailQuantity] != undefined && source[thumbnailQuantity].length > 0) {
    output += '<a class="SlideShowNavigationRight" href="/~vyso/multimedia/slideshow/slideshow.html?photo=' + source[thumbnailQuantity].substring(source[thumbnailQuantity].lastIndexOf('/')+1, source[thumbnailQuantity].length) + '&index=0"><img class="SlideShowNavigation" src="/~vyso/images/RightArrow.png" alt="' + nextSetText + '" title="' + nextSetText + '" /></a>';
  }
  else {
    output += '<a class="SlideShowNoNavigation"><img class="SlideShowNoNavigation" src="/~vyso/images/RightArrow.png" alt="' + nextSetText + '" title="' + nextSetText + '" /></a>';
  }
  
  output += '</div>\n';
  return output;
}