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');
	var expandLink = new Element('a', { 'text' : 'View full table', 'href' : '#' });
	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("?")).toLowerCase();
    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 videos = $$('.mb_video');
    videos.each(function(item){ 
    item.addEvent('click', function(){
      
      var videoPath = getURLParam(item.href, 'video');
      var posterPath = getURLParam(item.href, 'poster');
      
      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('/travel/video/player.swf', {
        id: 'swfPlayer',
        width: 480,
        height: 290,
        params: {
          wmode: 'opaque',
          bgcolor: '#fff',
          allowfullscreen: 'true',
          movie: '/spalsh/video/player.swf',
          quality: 'high',
          allowScriptAccess: 'sameDomain'
        },
        vars: {
          file: videoPath,
          image: posterPath,
          autostart: 'false'
        }
      });
      
      obj.inject(videoContainer);
      downloadLink.inject(p);
      p.inject(videoContainer);
      
      mediaBoxOverlay.show(videoContainer, {cloneContent: false});
      
      return false;
    });
    
  });
  
  if (videos.length > 0) var mediaBoxOverlay = new Overlay( { destroyContent: true } );
}

function searchScopeController() {
  
  var searchScopeButton = $('search-scope-button');
  var searchScopeMenu = $$('#search ul')[0];
  
  /*
$$('body')[0].addEvent('click', function(){
    alert('body');
    if (searchScopeMenu.getStyle('display') != 'none') {
      searchScopeMenu.setStyle('display', 'none');
    }
    
  });
*/
  
  searchScopeButton.addEvent('click', function() {
    if (searchScopeMenu.getStyle('display') == 'none') {
      searchScopeMenu.setStyle('display', 'block');
    } else {
      searchScopeMenu.setStyle('display', 'none');
    }
  });
  
  var searchOptions = $$('#search ul li input');
  searchOptions.each(function(item){
  
    item.addEvent('click', function(){ 
      
      if (searchScopeMenu.getStyle('display') != 'none') {
        searchScopeMenu.setStyle('display', 'none');
      }
      
    });
    
  });
  
}

  
window.addEvent('domready', function() {
 	headTrayController();
	menuController();
	tableFixController();
	searchController();
	mediaPlayerController();
	searchScopeController();
	
	try {
    if ($chk(JsHook)) {
      $each(JsHook, function(hook, index){eval(hook);});
    }
	} catch (e) {}
	
 });