var Dom = {
    get: function(el) {
        if (typeof el === 'string') {
            return document.getElementById(el);
        } else {
            return el;
        }
    },
    add: function(el, dest, before) {
        var el = this.get(el);
        var dest = this.get(dest);
        
        if (before) {
            dest.insertBefore(el, dest.firstChild);
        } else {
            dest.appendChild(el);
        }
        
    },
    remove: function(el) {
        var el = this.get(el);
        el.parentNode.removeChild(el);
    }
};

var Event = {
    add: function() {
        if (window.addEventListener) {
            return function(el, type, fn) {
                Dom.get(el).addEventListener(type, fn, false);
            };
        } else if (window.attachEvent) {
            return function(el, type, fn) {
                var f = function() {
                    fn.call(Dom.get(el), window.event);
                };
                Dom.get(el).attachEvent('on' + type, f);
            };
        }
    }()
};

var ytplayer;

function updateHTML(elmId, value) {
  document.getElementById(elmId).innerHTML = value;
}

function setytplayerState(newState) {
  updateHTML("playerstate", newState);
}


function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
  var videoId = findGETVariable('video');
  if (videoId != null) {
    loadNewVideo(videoId, 0);
  }
}

function onytplayerStateChange(newState) {
  setytplayerState(newState);
}

function loadNewVideo(id, startSeconds) {
  if (ytplayer) {
    ytplayer.loadVideoById(id, parseInt(startSeconds));
  }
}


Event.add(window, 'load', function() {
  
  var movieParam = document.getElementById('movieParam');
  var video = document.getElementById('video');
  var suffix = '&hl=en&fs=1&rel=0&color1=0x5d1719&color2=0xFF0000';
  
  var anchors = document.getElementById('menu').getElementsByTagName('a');
  for (var i = 0; i < anchors.length; i++) {
    var anchor = anchors.item(i);
    var href = anchor.href;
    var text = anchor.innerHTML;
    
    var closureMaker = function(reference, anchorText) {
      return function(e) {
        var splitReference = reference.split('=');
        loadNewVideo(splitReference[splitReference.length - 1], 0);
        updateHTML('videotitle', anchorText);
        document.title = anchorText + " - Videos - Exeter College Boat Club, Oxford";
        stopDef(e);
      }
    }
    var closure = closureMaker(href, text);
    Event.add(anchor, 'click', closure);
  }

});

function stopDef(e) {
  e = e || event;
  if (e.preventDefault) {
      e.preventDefault(); // All browsers except IE
  } else {
      e.returnValue = false; // IE
  }
}

function findGETVariable(name) {
  var URL = unescape(window.document.location);
  
  if (URL.indexOf("?") > -1) {
    var pairs = URL.split("?")[1].split("&");
    for (var i = 0; i < pairs.length; i++) {
      var parts = pairs[i].split("=");
      if (parts[0] == name) {
        return parts[1];
      }
    }
  }
  return null;
}
