// JavaScript Document


// 1) The addEvent() function itself which programatically adds to the 2) EventCache  and 3) an unload event is added to the window to run the EventCache ‘flush’ method.


function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);


/*updated version of addEvent function that doesnt seem to work
//
//

function addEvent( obj, type, fn )
{
if (obj.addEventListener) {
// standard
obj.addEventListener( type, fn, false );
EventCache.add(obj, type, fn); // bugzilla bug #241518
} else if (obj.attachEvent) {
// IE
obj[’e'+type+fn] = fn;
obj[type+fn] = function() { obj[’e'+type+fn]( window.event ); }
obj.attachEvent( “on”+type, obj[type+fn] );
EventCache.add(obj, type, fn);
} else {
// really old
obj[”on”+type] = obj[”e”+type+fn];
}
}

function removeEvent( obj, type, fn )
{
EventCache.remove(obj, type, fn);
}

var EventCache = function()
{
var listEvents = [];
return {
listEvents : listEvents,
add : function(node, sEventName, fHandler)
{
listEvents.push(arguments);
},
remove : function(node, sEventName, fHandler)
{
var i, item;
for(i = listEvents.length - 1; i >= 0; i = i - 1) {
if(node == listEvents[i][0] && sEventName == listEvents[i][1] && fHandler == listEvents[i][2]) {
item = listEvents[i];
if(item[0].removeEventListener) {
item[0].removeEventListener(item[1], item[2], item[3]);
}
if(item[1].substring(0, 2) != “on”) {
item[1] = “on” + item[1];
}
if(item[0].detachEvent) {
item[0].detachEvent(item[1], item[0][sEventName+fHandler]);

}
item[0][item[1]] = null;
}
}
},
flush : function()
{
var i, item, eventtype;
for(i = listEvents.length - 1; i >= 0; i = i - 1) {
item = listEvents[i];
if(item[0].removeEventListener) {
item[0].removeEventListener(item[1], item[2], item[3]);
}
eventtype = item[1];
if(item[1].substring(0, 2) != “on”) {
item[1] = ‘on’ + item[1];
}
if(item[0].detachEvent) {
item[0].detachEvent(item[1], item[2]);
item[0].detachEvent(item[1], item[0][eventtype+item[2]]);
}
item[0][item[1]] = null;
}
}
}
}();*/



/* hide the side bar function - doesnt work */ 
//used in conjuction with both the dollar $() function and addEvent */
// addEvent() found @ http://www.dustindiaz.com/rock-solid-addevent/
// $() found @ http://www.dustindiaz.com/top-ten-javascript

var togBar = {
	bar : null,
	nest : null,
	init : function() {
		this.bar = $('sideBar');
		this.nest = document.createElement('div');
		this.nest.id = 'toggler';
		this.run();
	},
	run : function() {
		$('body').appendChild(this.nest);
		this.nest.innerHTML = '<a id="open" title="Open Sidebar">Show Sidebar</a>';
		this.nest.innerHTML += '<a id="closed" title="Hide Sidebar">Hide Sidebar</a>';
		this.togglers();
	},
	togglers : function() {
		addEvent($('open'),'click',this.opener);
		addEvent($('closed'),'click',this.closer);
	},
	opener : function() {
		togBar.bar.className = 'opened';
	},
	closer : function() {
		togBar.bar.className = 'closed';
	}
};
function commonListeners() {
	togBar.init();
}
addEvent(window,'load',commonListeners);



/*slideshow*/

//==================================================
// slide object
//==================================================
function slide(src,link,text,target,attr) {
  // This is the constructor function for the slide object.
  // It is called automatically when you create a new slide object.
  // For example:
  // s = new slide();

  // Image URL
  this.src = src;

  // Link URL
  this.link = link;

  // Text to display
  this.text = text;

  // Name of the target window ("_blank")
  this.target = target;

  // Custom duration for the slide, in milliseconds.
  // This is an optional parameter.
  // this.timeout = 3000

  // Attributes for the target window:
  // width=n,height=n,resizable=yes or no,scrollbars=yes or no,
  // toolbar=yes or no,location=yes or no,directories=yes or no,
  // status=yes or no,menubar=yes or no,copyhistory=yes or no
  // Example: "width=200,height=300"
  this.attr = attr;

  // Create an image object for the slide
  if (document.images) {
    this.image = new Image();
  }

  // Flag to tell when load() has already been called
  this.loaded = false;

  //--------------------------------------------------
  this.load = function() {
    // This method loads the image for the slide

    if (!document.images) { return; }

    if (!this.loaded) {
      this.image.src = this.src;
      this.loaded = true;
    }
  }

  //--------------------------------------------------
  this.hotlink = function() {
    // This method jumps to the slide's link.
    // If a window was specified for the slide, then it opens a new window.

    var mywindow;

    // If this slide does not have a link, do nothing
    if (!this.link) return;

    // Open the link in a separate window?
    if (this.target) {

      // If window attributes are specified,
      // use them to open the new window
      if (this.attr) {
        mywindow = window.open(this.link, this.target, this.attr);
  
      } else {
        // If window attributes are not specified, do not use them
        // (this will copy the attributes from the originating window)
        mywindow = window.open(this.link, this.target);
      }

      // Pop the window to the front
      if (mywindow && mywindow.focus) mywindow.focus();

    } else {
      // Open the link in the current window
      location.href = this.link;
    }
  }
}

//==================================================
// slideshow object
//==================================================
function slideshow( slideshowname ) {
  // This is the constructor function for the slideshow object.
  // It is called automatically when you create a new object.
  // For example:
  // ss = new slideshow("ss");

  // Name of this object
  // (required if you want your slideshow to auto-play)
  // For example, "SLIDES1"
  this.name = slideshowname;

  // When we reach the last slide, should we loop around to start the
  // slideshow again?
  this.repeat = true;

  // Number of images to pre-fetch.
  // -1 = preload all images.
  //  0 = load each image is it is used.
  //  n = pre-fetch n images ahead of the current image.
  // I recommend preloading all images unless you have large
  // images, or a large amount of images.
  this.prefetch = -1;

  // IMAGE element on your HTML page.
  // For example, document.images.SLIDES1IMG
  this.image;

  // ID of a DIV element on your HTML page that will contain the text.
  // For example, "slides2text"
  // Note: after you set this variable, you should call
  // the update() method to update the slideshow display.
  this.textid;

  // TEXTAREA element on your HTML page.
  // For example, document.SLIDES1FORM.SLIDES1TEXT
  // This is a depracated method for displaying the text,


  // but you might want to supply it for older browsers.
  this.textarea;

  // Milliseconds to pause between slides.
  // Individual slides can override this.
  this.timeout = 5000;

  // Hook functions to be called before and after updating the slide
  // this.pre_update_hook = function() { }
  // this.post_update_hook = function() { }

  // These are private variables
  this.slides = new Array();
  this.current = 0;
  this.timeoutid = 0;

  //--------------------------------------------------
  // Public methods
  //--------------------------------------------------
  this.add_slide = function(slide) {
    // Add a slide to the slideshow.
    // For example:
    // SLIDES1.add_slide(new slide("s1.jpg", "link.html"))
  
    var i = this.slides.length;
  
    // Prefetch the slide image if necessary
    if (this.prefetch == -1) {
      slide.load();
    }

    this.slides[i] = slide;
  }

  //--------------------------------------------------
  this.play = function(timeout) {
    // This method implements the automatically running slideshow.
    // If you specify the "timeout" argument, then a new default
    // timeout will be set for the slideshow.
  
    // Make sure we're not already playing
    this.pause();
  
    // If the timeout argument was specified (optional)
    // then make it the new default
    if (timeout) {
      this.timeout = timeout;
    }
  
    // If the current slide has a custom timeout, use it;
    // otherwise use the default timeout
    if (typeof this.slides[ this.current ].timeout != 'undefined') {
      timeout = this.slides[ this.current ].timeout;
    } else {
      timeout = this.timeout;
    }

    // After the timeout, call this.loop()
    this.timeoutid = setTimeout( this.name + ".loop()", timeout);
  }

  //--------------------------------------------------
  this.pause = function() {
    // This method stops the slideshow if it is automatically running.
  
    if (this.timeoutid != 0) {

      clearTimeout(this.timeoutid);
      this.timeoutid = 0;

    }
  }

  //--------------------------------------------------
  this.update = function() {
    // This method updates the slideshow image on the page

    // Make sure the slideshow has been initialized correctly
    if (! this.valid_image()) { return; }
  
    // Call the pre-update hook function if one was specified
    if (typeof this.pre_update_hook == 'function') {
      this.pre_update_hook();
    }

    // Convenience variable for the current slide
    var slide = this.slides[ this.current ];

    // Determine if the browser supports filters
    var dofilter = false;
    if (this.image &&
        typeof this.image.filters != 'undefined' &&
        typeof this.image.filters[0] != 'undefined') {

      dofilter = true;

    }

    // Load the slide image if necessary
    slide.load();
  
    // Apply the filters for the image transition
    if (dofilter) {

      // If the user has specified a custom filter for this slide,
      // then set it now
      if (slide.filter &&
          this.image.style &&
          this.image.style.filter) {

        this.image.style.filter = slide.filter;

      }
      this.image.filters[0].Apply();
    }

    // Update the image.
    this.image.src = slide.image.src;

    // Play the image transition filters
    if (dofilter) {
      this.image.filters[0].Play();
    }

    // Update the text
    this.display_text();

    // Call the post-update hook function if one was specified
    if (typeof this.post_update_hook == 'function') {
      this.post_update_hook();
    }

    // Do we need to pre-fetch images?
    if (this.prefetch > 0) {

      var next, prev, count;

      // Pre-fetch the next slide image(s)
      next = this.current;
      prev = this.current;
      count = 0;
      do {

        // Get the next and previous slide number
        // Loop past the ends of the slideshow if necessary
        if (++next >= this.slides.length) next = 0;
        if (--prev < 0) prev = this.slides.length - 1;

        // Preload the slide image
        this.slides[next].load();
        this.slides[prev].load();

        // Keep going until we have fetched
        // the designated number of slides

      } while (++count < this.prefetch);
    }
  }

  //--------------------------------------------------
  this.goto_slide = function(n) {
    // This method jumpts to the slide number you specify.
    // If you use slide number -1, then it jumps to the last slide.
    // You can use this to make links that go to a specific slide,
    // or to go to the beginning or end of the slideshow.
    // Examples:
    // onClick="myslides.goto_slide(0)"
    // onClick="myslides.goto_slide(-1)"
    // onClick="myslides.goto_slide(5)"
  
    if (n == -1) {
      n = this.slides.length - 1;
    }
  
    if (n < this.slides.length && n >= 0) {
      this.current = n;
    }
  
    this.update();
  }


  //--------------------------------------------------
  this.goto_random_slide = function(include_current) {
    // Picks a random slide (other than the current slide) and
    // displays it.
    // If the include_current parameter is true,
    // then 
    // See also: shuffle()

    var i;

    // Make sure there is more than one slide
    if (this.slides.length > 1) {

      // Generate a random slide number,
      // but make sure it is not the current slide
      do {
        i = Math.floor(Math.random()*this.slides.length);
      } while (i == this.current);
 
      // Display the slide
      this.goto_slide(i);
    }
  }


  //--------------------------------------------------
  this.next = function() {
    // This method advances to the next slide.

    // Increment the image number
    if (this.current < this.slides.length - 1) {
      this.current++;
    } else if (this.repeat) {
      this.current = 0;
    }

    this.update();
  }


  //--------------------------------------------------
  this.previous = function() {
    // This method goes to the previous slide.
  
    // Decrement the image number
    if (this.current > 0) {
      this.current--;
    } else if (this.repeat) {
      this.current = this.slides.length - 1;
    }
  
    this.update();
  }


  //--------------------------------------------------
  this.shuffle = function() {
    // This method randomly shuffles the order of the slides.

    var i, i2, slides_copy, slides_randomized;

    // Create a copy of the array containing the slides
    // in sequential order
    slides_copy = new Array();
    for (i = 0; i < this.slides.length; i++) {
      slides_copy[i] = this.slides[i];
    }

    // Create a new array to contain the slides in random order
    slides_randomized = new Array();

    // To populate the new array of slides in random order,
    // loop through the existing slides, picking a random
    // slide, removing it from the ordered list and adding it to
    // the random list.

    do {

      // Pick a random slide from those that remain
      i = Math.floor(Math.random()*slides_copy.length);

      // Add the slide to the end of the randomized array
      slides_randomized[ slides_randomized.length ] =
        slides_copy[i];

      // Remove the slide from the sequential array,
      // so it cannot be chosen again
      for (i2 = i + 1; i2 < slides_copy.length; i2++) {
        slides_copy[i2 - 1] = slides_copy[i2];
      }
      slides_copy.length--;

      // Keep going until we have removed all the slides

    } while (slides_copy.length);

    // Now set the slides to the randomized array
    this.slides = slides_randomized;
  }


  //--------------------------------------------------
  this.get_text = function() {
    // This method returns the text of the current slide
  
    return(this.slides[ this.current ].text);
  }


  //--------------------------------------------------
  this.get_all_text = function(before_slide, after_slide) {
    // Return the text for all of the slides.
    // For the text of each slide, add "before_slide" in front of the
    // text, and "after_slide" after the text.
    // For example:
    // document.write("<ul>");
    // document.write(s.get_all_text("<li>","\n"));
    // document.write("<\/ul>");
  
    all_text = "";
  
    // Loop through all the slides in the slideshow
    for (i=0; i < this.slides.length; i++) {
  
      slide = this.slides[i];
    
      if (slide.text) {
        all_text += before_slide + slide.text + after_slide;
      }
  
    }
  
    return(all_text);
  }


  //--------------------------------------------------
  this.display_text = function(text) {
    // Display the text for the current slide
  
    // If the "text" arg was not supplied (usually it isn't),
    // get the text from the slideshow
    if (!text) {
      text = this.slides[ this.current ].text;
    }
  
    // If a textarea has been specified,
    // then change the text displayed in it
    if (this.textarea && typeof this.textarea.value != 'undefined') {
      this.textarea.value = text;
    }

    // If a text id has been specified,
    // then change the contents of the HTML element
    if (this.textid) {

      r = this.getElementById(this.textid);
      if (!r) { return false; }
      if (typeof r.innerHTML == 'undefined') { return false; }

      // Update the text
      r.innerHTML = text;
    }
  }


  //--------------------------------------------------
  this.hotlink = function() {
    // This method calls the hotlink() method for the current slide.
  
    this.slides[ this.current ].hotlink();
  }


  //--------------------------------------------------
  this.save_position = function(cookiename) {
    // Saves the position of the slideshow in a cookie,
    // so when you return to this page, the position in the slideshow
    // won't be lost.
  
    if (!cookiename) {
      cookiename = this.name + '_slideshow';
    }
  
    document.cookie = cookiename + '=' + this.current;
  }


  //--------------------------------------------------
  this.restore_position = function(cookiename) {
  // If you previously called slideshow_save_position(),
  // returns the slideshow to the previous state.
  
    //Get cookie code by Shelley Powers
  
    if (!cookiename) {
      cookiename = this.name + '_slideshow';
    }
  
    var search = cookiename + "=";
  
    if (document.cookie.length > 0) {
      offset = document.cookie.indexOf(search);
      // if cookie exists
      if (offset != -1) { 
        offset += search.length;
        // set index of beginning of value
        end = document.cookie.indexOf(";", offset);
        // set index of end of cookie value
        if (end == -1) end = document.cookie.length;
        this.current = parseInt(unescape(document.cookie.substring(offset, end)));
        }
     }
  }


  //--------------------------------------------------
  this.noscript = function() {
    // This method is not for use as part of your slideshow,
    // but you can call it to get a plain HTML version of the slideshow
    // images and text.
    // You should copy the HTML and put it within a NOSCRIPT element, to
    // give non-javascript browsers access to your slideshow information.
    // This also ensures that your slideshow text and images are indexed
    // by search engines.
  
    $html = "\n";
  
    // Loop through all the slides in the slideshow
    for (i=0; i < this.slides.length; i++) {
  
      slide = this.slides[i];
  
      $html += '<P>';
  
      if (slide.link) {
        $html += '<a href="' + slide.link + '">';
      }
  
      $html += '<img src="' + slide.src + '" ALT="Click to Visit Website">';
  
      if (slide.link) {
        $html += "<\/a>";
      }
  
      if (slide.text) {
        $html += "<BR>\n" + slide.text;
      }
  
      $html += "<\/P>" + "\n\n";
    }
  
    // Make the HTML browser-safe
    $html = $html.replace(/\&/g, "&amp;" );
    $html = $html.replace(/</g, "&lt;" );
    $html = $html.replace(/>/g, "&gt;" );
  
    return('<pre>' + $html + '</pre>');
  }


  //==================================================
  // Private methods
  //==================================================

  //--------------------------------------------------
  this.loop = function() {
    // This method is for internal use only.
    // This method gets called automatically by a JavaScript timeout.
    // It advances to the next slide, then sets the next timeout.
    // If the next slide image has not completed loading yet,
    // then do not advance to the next slide yet.

    // Make sure the next slide image has finished loading
    if (this.current < this.slides.length - 1) {
      next_slide = this.slides[this.current + 1];
      if (next_slide.image.complete == null || next_slide.image.complete) {
        this.next();
      }
    } else { // we're at the last slide
      this.next();
    }
    
    // Keep playing the slideshow
    this.play( );
  }


  //--------------------------------------------------
  this.valid_image = function() {
    // Returns 1 if a valid image has been set for the slideshow
  
    if (!this.image)
    {
      return false;
    }
    else {
      return true;
    }
  }

  //--------------------------------------------------
  this.getElementById = function(element_id) {
    // This method returns the element corresponding to the id

    if (document.getElementById) {
      return document.getElementById(element_id);
    }
    else if (document.all) {
      return document.all[element_id];
    }
    else if (document.layers) {
      return document.layers[element_id];
    } else {
      return undefined;
    }
  }
  

  //==================================================
  // Deprecated methods
  // I don't recommend the use of the following methods,
  // but they are included for backward compatibility.
  // You can delete them if you don't need them.
  //==================================================

  //--------------------------------------------------
  this.set_image = function(imageobject) {
    // This method is deprecated; you should use
    // the following code instead:
    // s.image = document.images.myimagename;
    // s.update();

    if (!document.images)
      return;
    this.image = imageobject;
  }

  //--------------------------------------------------
  this.set_textarea = function(textareaobject) {
    // This method is deprecated; you should use
    // the following code instead:
    // s.textarea = document.form.textareaname;
    // s.update();

    this.textarea = textareaobject;
    this.display_text();
  }

  //--------------------------------------------------
  this.set_textid = function(textidstr) {
    // This method is deprecated; you should use
    // the following code instead:
    // s.textid = "mytextid";
    // s.update();

    this.textid = textidstr;
    this.display_text();
  }
}

//-->

SLIDES = new slideshow("SLIDES");
SLIDES.timeout = 4000;
SLIDES.prefetch = -1;
SLIDES.repeat = true;

s = new slide();
s.src =  "images/wideshow/rebelmusic.gif";
s.text = unescape("<strong>REBEL MUSIC: The Bob Marley Story</strong> - 78-minute television biography about the life and music of Bob Marley for Channel 4 and 13/WNET.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/africalive.jpg";
s.text = unescape("<strong>AFRICA LIVE The Roll Back Malaria Concert</strong> - An Antelope/Idéale Audience production for BBC Wales and Arté France in association with Xippi of Senegal.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/mozart.gif";
s.text = unescape("<strong>MOZART IN TURKEY</strong> - 90 minute film of and about Mozart's opera, Die Entf&uuml;hrung aus dem Serail, filmed within the harem of the Topkapi Palace in Istambul for BBC2.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);


s = new slide();
s.src =  "images/wideshow/pier.gif";
s.text = unescape("<strong>THE PIER</strong> - weekly arts and entertainment magazine for Meridian Broadcasting (ITV).");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);


s = new slide();
s.src =  "images/wideshow/himalaya.gif";
s.text = unescape("");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/midas.gif";
s.text = unescape("<strong>THE MIDAS TOUCH</strong>");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/cry.gif";
s.text = unescape("<strong>A CRY FROM THE GRAVE</strong> - 104 minute investigation into the Srebrenica massacre of July 1995 for BBC, WDR, 13/WNET.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/444.gif";
s.text = unescape("<strong>444 Days</strong> - 104 minute documntary about the US hostage crisis in Iran of 1979-81 for BBC2, The History Channel and T&eacute;l&eacute; Images International.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/starwars.gif";
s.text = unescape("<strong>STAR WARS DREAMS</strong> - The history of America's multi-billion dollar Star Wars missile defence system, shown on BBC4's Storyville.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/diplomat.gif";
s.text = unescape("<strong>A DIPLOMAT IN JAPAN</strong> - 2 one-hour drama-documentary series about the life of Sir Ernest Satow for BBC2's TimeWatch strand, A&E Network and TV Asahi. New York Film & TV Festival award winner.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/cuban.gif";
s.text = unescape("<strong>THE CUBAN MISSILE CRISIS</strong> - 2 one-hour documentary series for BBC2 TimeWatch, TV Asahi production. Winner of US National Emmy award in 1993.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/buddy.gif";
s.text = unescape("<strong>NOT FADE AWAY</strong> - 50 minute film on Buddy Holly for Channel Four's Without Walls series.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/peoples.gif";
s.text = unescape("");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/gardens.gif";
s.text = unescape("<strong>ROYAL GARDENS</strong> - 6 half-hour programmes with Sir Roy Strong for BBC2.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/geiko.gif";
s.text = unescape("<strong>GEIKO GIRL</strong> - 52-minute documentary about the graduation ceremony of a young geisha girl working in Kyoto for the BBC2 strand Under the Sun.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/placido.gif";
s.text = unescape("<strong>PLÁCIDO DOMINGO - A Musical Life</strong> - 90-minute  biography for ITV, PBS/WNET, Europool and Kultur video");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/hiroshima.gif";
s.text = unescape("<strong>HIROSHIMA – The decision to drop the bomb</strong> - 75–minute documentary special for TV Asahi/BBC1/TV Novosti/The History Channel.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/africa.gif";
s.text = unescape("");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/muir.gif";
s.text = unescape("<strong>VERY JEAN MUIR</strong> - 3 half-hour documentaries about one of Britain's most iconic fashion designers.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/womad.gif";
s.text = unescape("<strong>WOMAD - SOUNDS OFF THE BEATEN TRACK</strong> - 1 hour special for Channel Four.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/carols.gif";
s.text = unescape("<strong>CAROLS FROM WINCHESTER</strong>");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);

s = new slide();
s.src =  "images/wideshow/collection.gif";
s.text = unescape("<strong>THE ROYAL COLLECTION</strong> - 6 half-hour documentaries about HM Queen Elizabeth II’s unique collection of paintings, shot on HDTV for Channel Four and NHK of Japan.");
s.link = "";
s.target = "windowname_blank";
s.attr = "height=256,width=550,scrollbars=1";
s.filter = "progid:DXImageTransform.Microsoft.Fade()";
SLIDES.add_slide(s);


/***************************call for slidetext to be added to page *****************
<div id="slidetext">

<script type="text/javascript">
<!--
nodivtext = SLIDES.get_all_text("<li>", "<p>\n");
if (nodivtext) {
  document.write("<UL>\n" + nodivtext + "\n</UL>");
}
//-->
</script>
</div><!--eof slidetext-->

********************/


if (false) SLIDES.shuffle();

//-->

/**********site map***************/


function switchMenu(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != "none" ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}


function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}

function collapseAll(objs) {
var i;
for (i=0;i<objs.length;i++ ) {
objs[i].style.display = 'none';
}
}
function pageLoad() {
collapseAll($('sitepage1','sitepage2','sitepage3','sitepage4','sitepage5','sitepage6'));	//change to match divs in stylesheet
}
addEvent(window,'load',pageLoad);


