$(document).ready(function(){

  function parseDomain(href){
    if(href.indexOf("http")==0){
      var domain = href.split("://")[1].split("/")[0];
      return domain
    }
    return false
  } 
  
  function siblingDomain(href){
    //this should be more abstracted, for now test for "ext.wvu.edu"
    if(href.indexOf("ext.wvu.edu") >= 0 ){
      return true
    }
    return false
  }
  
  function externalDomain(href){
    // Returns True if myDomain differs from submitted URL
    return (myDomain != parseDomain(href));
  }
  
  function gaEventBuilder(category, action, label, value){
    //Build array of gaTrackEvent arguments, reject undefined args
    var args = new Array();
    if(typeof(category) != 'undefined'){args[0]=category}else{return false};
    if(typeof(action) != 'undefined'){args[1]=action}else{return false};
    if(typeof(label) != 'undefined'){args[2]=label}
    if(typeof(value) != 'undefined'){args[3]=value}
    return args
  }

  var myDomain = parseDomain(document.location.href);
  
  $("a[href]").each(
    function(){
      var category, action, label, value;
	  
      if (this["href"].toLowerCase().match(/.*pdf$/)){
        var category="Download";
        var action="PDF";
        var label=this["href"];
      }

      if ( $(this).attr('class') == "pdf"){
        var category="Download";
        var action="PDF";
        var label=this["href"];
      }

      if (externalDomain(this["href"])){
        if (siblingDomain(this["href"])){
          var category="Exit";
          var action="Extension";
          var label=this.href;
        }
        else{
          var category="Exit";
          var action="External";
          var label=this["href"];
        }
      }

      $(this).bind("click",
      function(){
        var gaEvent = gaEventBuilder(category, action, label, value);
        if (gaEvent) {
          _gaq.push(['t2._trackEvent', gaEvent[0],gaEvent[1],gaEvent[2],gaEvent[3]]);
        }
      });
    });
  });
