var searchController = function() {
  this.searchForm = $('search');
  this.searchField = this.searchForm.query;
  
  this.focusSearchField = function () {
    if (this.value == this.title) { this.value = ''; } 
  }
  
  this.blurSearchField = function() {
    if (this.value == '') { this.value = this.title; }
  }
  
  this.checkSearchEntry = function() {
    if (this.query.value == '' || this.query.value == this.query.title) { 
      alert("Please enter some search terms");
      return false;
    } else {
      return true;
    }
  }
  
  if (searchForm) {
    this.searchField.onfocus = this.focusSearchField;
    this.searchField.onblur = this.blurSearchField;
    this.searchForm.onsubmit = this.checkSearchEntry;
  }
}


function menuController(subMenuArray) {
  
  subMenuArray = $$('#menu ul li ul');
  
  subMenuArray.each(function(item){
    var parentMenuItem = item.getParent();
    
    var expanderElement = new Element('span', {'text':'expand', 'class':'hide_text expander' });
    if(parentMenuItem.hasClass('static')) { expanderElement.addClass('open') } else { expanderElement.addClass('closed') }
    expanderElement.addEvent('click', individualHandler);
    parentMenuItem.getFirst('a').setStyle('padding-right', '16px');
    expanderElement.inject( parentMenuItem.getFirst('a'), 'after');
    
    item.set('class','unstatic');
    item.set('slide', {'duration':'short'});
    if(!parentMenuItem.hasClass('static')) {
      item.slide('hide');
    }
    
  });
  
}
  

function individualHandler() {
	var subMenu = this.getParent('li').getElement('ul');
    this.toggleClass('open');
    this.toggleClass('closed');    
    subMenu.slide('toggle');
	return false;
}


function headTrayController() {
	var currentSection = $('current-section');
	
	if (!currentSection) { return; } else { currentSection = currentSection.getFirst('a'); }
	
 	currentSection.addClass('dropdown');
 	$('head').setStyle('height', 'auto');
 	
 	var tray = $('tray');
	var trayFx = new Fx.Slide(tray);

	trayFx.hide();
	tray.setStyle('display', 'block');
	tray.setStyle('visibility', 'hidden');
	
	trayFx.addEvent('complete', function () {
		if (!currentSection.hasClass('open')) {	tray.setStyle('visibility', 'hidden'); } 
	});
	
 	currentSection.addEvent('click', function() {
 		if (!currentSection.hasClass('open')) {	tray.setStyle('visibility', 'visible'); }
 		trayFx.toggle();
		this.toggleClass('open');
 		return false; 
 	});
}

function tableFixController() {
	var p = new Element('p', { 'style' : 'text-align:right' }).setStyle('margin-bottom', 0);
	var expandLink = new Element('a', { 'text' : 'View full table', 'href' : '#', 'style' : 'font-weight:bold;' });
	var bigTables = false;
	var contentWidth = $('w4').getSize().x;
	$$('#content table.tabledata_blue').each(function(table, num) {
		if (table.getSize().x > contentWidth) {
			myExpandLink = expandLink.clone().addEvent('click', function() { myOverlay.show(table); return false; });
			myExpandLink.inject(p.clone().inject(table, 'before'));
			bigTables = true;
		}
	});
	if (bigTables) var myOverlay = new Overlay({overlayFixedWidth: true});
}

function getURLParam(strURL, strParamName){
  this.strReturn = "";
  this.strURL = strURL;
  if ( strURL.indexOf("?") > -1 ){
    var strQueryString = strURL.substr(strURL.indexOf("?"));
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if ( 
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        this.strReturn = aParam[1];
        break;
      }
    }
  }
  return this.strReturn;
}

function mediaPlayerController() {
  var links = $$('a');
  var domain = new RegExp("^http://www.usyd.edu.au/video/play.php");
  
  var videos = new Array();
  links.each(function(item){
    if(item.href.match(domain)) videos.push(item);
  });
  
  
  videos.each(function(item){
  
  
  if (Browser.Engine.trident && Browser.Engine.version <= 4) {
  	item.addEvent('click', function(){
    	urchinTracker(item.href);
    });  	
  } else {
    item.addEvent('click', function(){
      urchinTracker(item.href);
      var videoPath = getURLParam(item.href, 'video');
      var posterPath = getURLParam(item.href, 'poster');
      var downloadVideo = getURLParam(item.href, 'download');
      
      var videoContainer = new Element('div', {'id':'mbVideo'});
      var p = new Element('p');
      var downloadLink = new Element('a', {'href':videoPath, 'text':'Download video (mp4)', 'class': 'download'});
      
      var obj = new Swiff('http://www.usyd.edu.au/video/player.swf', {
        id: 'swfPlayer',
        width: 480,
        height: 290,
        params: {
          wmode: 'opaque',
          bgcolor: '#fff',
          allowfullscreen: 'true',
          quality: 'high',
          allowScriptAccess: 'sameDomain'
        },
        vars: {
          file: videoPath,
          image: posterPath,
          autostart: 'false'
        }
      });
      
      obj.inject(videoContainer);
      if(downloadVideo != 'false') {
        downloadLink.inject(p);
        p.inject(videoContainer);
      }
      
      mediaBoxOverlay.show(videoContainer, {cloneContent: false});
      return false;
    });
  }
    
  });
  
  if (videos.length > 0) var mediaBoxOverlay = new Overlay( { destroyContent: true } );
}
  
  
window.addEvent('domready', function() {
 	headTrayController();
	menuController();
	tableFixController();
	searchController();
	mediaPlayerController();
	
	try {
    if ($chk(JsHook)) {
      $each(JsHook, function(hook, index){eval(hook);});
    }
	} catch (e) {}
	
 });