document.write("<script type='text/javascript' src='/swfobject/swfobject.js'></script>");
document.write("<script type='text/javascript' src='/swfobject/swfmacmousewheel.js'></script>");
document.write("<script type='text/javascript' src='/swfaddress/" + (window.history.pushState ? "pushstate3" : "swfaddress") + ".js'></script>");

PH = new Object();
PH.FB = new Object();
PH.Balloon = new Object();
PH.Balloon.elements = [];
PH.Balloon.balloons = [];

PH.GetPosition = function (obj) {
  var oRect = new Object();
  var oControl = obj;

  oRect.width = oControl.offsetWidth;
  oRect.height = oControl.offsetHeight;
  oRect.left = oControl.offsetLeft;
  oRect.top = oControl.offsetTop;

  while(oControl = oControl.offsetParent) {
    oRect.left += oControl.offsetLeft;
    oRect.top  += oControl.offsetTop;
  }
    
  oControl = obj;

  while(oControl = oControl.parentNode) {
    if(oControl.scrollTop && oControl.tagName.toLowerCase() != 'html') {
      oRect._top -= oControl.scrollTop;
      oRect._left -= oControl.scrollLeft;
    }
  }

  return oRect;
}

PH.PreloadComplete = function() {
  var so = new SWFObject('/HostMovie.swf', 'website', '100%', '100%', '8', '#F7F7F7');
  so.addParam('menu', 'false');
  so.addParam('wmode', 'opaque');
  so.addParam('allowFullscreen', 'true');
  so.addParam('allowScriptAccess', 'always');

  if(so.write('content')) {
    PH.MainSWF = document.getElementById('content').childNodes[0];
    var macmousewheel = new SWFMacMouseWheel(so);  
  }
}

PH.Balloon.setLayer = function(id, visible, alpha, top, left, width, height) {
  var oDiv = document.getElementById(id);
  if(!visible || alpha <= 0) {
    oDiv.style.top = '20px';
    oDiv.style.left = '-1000px';
  } else {
    oDiv.style.top = top + 'px';
    oDiv.style.left = left + 'px';
    oDiv.style.width = width + 'px';
    oDiv.style.height = height + 'px';
    oDiv.style.opacity = alpha / 100;
    if(oDiv.filters) {
      oDiv.filters.alpha.opacity = alpha;
      oDiv.filters.item("DXImageTransform.Microsoft.Alpha").Opacity=alpha;
    } else {
      oDiv.style.MozOpacity = alpha / 100;
    }
  }
}


PH.Balloon.showBalloon = function(id, top, left, width, height) {
  //check if element is covered by balloon.
  var oBalloon = new Object();
  oBalloon.id = id;
  oBalloon.top = top;
  oBalloon.left = left;
  oBalloon.width = width;
  oBalloon.height = height;
  oBalloon.elements = [];

  for(var i=0;i<PH.Balloon.elements.length;i++) {
    var oElement = PH.Balloon.elements[i];
    var oPosition = PH.GetPosition(oElement);

    if(oPosition.top < top + height && oPosition.top + oPosition.height > top && oPosition.left < left + width && oPosition.left + oPosition.width > left) {
      var oOver = new Object();
      oOver.top = oPosition.top;
      oOver.element = oElement;
      oBalloon.elements.push(oOver);
      oElement.style.top = "-1000px";
    }
  }

  PH.Balloon.balloons.push(oBalloon);
}

PH.Balloon.hideBalloon = function(id) {
  var oBalloons = new Array();
  var oElements = new Array();

  //check if balloon revelas an element.
  for(var i=0;i<PH.Balloon.balloons.length;i++) {
    var oBalloon = PH.Balloon.balloons[i];
    if(oBalloon.id == id) {
      for(var j=0;j<oBalloon.elements.length;j++) {
        oElements.push(oBalloon.elements[j]);
      }
    } else {
      oBalloons.push(oBalloon);
    }
  }

  for(var i=0;i<oElements.length;i++) {
    var oPosition = PH.GetPosition(oElements[i].element);
    oPosition.top = oElements[i].top;
    var bIsCovered = false;

    for(var j=0;j<oBalloons.length;j++) {
      if(oPosition.top < oBalloons[j].top + oBalloons[j].height && oPosition.top + oPosition.height > oBalloons[j].top && oPosition.left < oBalloons[j].left + oBalloons[j].width && oPosition.left + oPosition.width > oBalloons[j].left) {
        oBalloons[j].elements.push(oElements[i]);
        bIsCovered = true;
        break;
      }
    }

    if(!bIsCovered) {
      oElements[i].element.style.top = oElements[i].top + 'px';
    }
  }


  PH.Balloon.balloons = oBalloons;
}

PH.FB.Login = function() {
  if(PH.FB.session) {
    if(PH.MainSWF && PH.MainSWF.onFacebookLogin) PH.MainSWF.onFacebookLogin(PH.FB.session.userID, PH.FB.session.signedRequest);
  } else {
    FB.login(null, {scope:'email,publish_stream,user_birthday'});
  }
}

PH.FB.getUserID = function() {
  return PH.FB.session.userID;
}

PH.FB.getToken = function() {
  return PH.FB.session.accessToken;
}

PH.FB.getRequest = function() {
  return PH.FB.session.signedRequest;
}

PH.FB.inviteFriends = function() {
  FB.ui({
    method: 'apprequests', 
    title: 'Invite Friends to b@ TV',
    message: "b@ TV is an online global community connecting venues, clubs & clubbers, artists & DJ's and music fans. They feature exclusive full length audio-visual sets from the world's finest electronic music talent from venues across the globe.", 
  });
}

PH.FB.shareUrl = function(url, pic) {
  if(pic) {
    FB.ui({method: 'feed', link:url, picture:pic});
  } else {
    FB.ui({method: 'feed', link:url});
  }
}

PH.FB.initLike = function(url) {
  if(url.charAt(url.length-1) == '/') url = url.substr(0, url.length - 1);

  PH.FB.Share.innerHTML = '<fb:send href="http://www.be-at.tv' + url + '.go"></fb:send> <fb:like href="http://www.be-at.tv' + url + '.go" send="false" layout="button_count" width="90" show_faces="false"></fb:like>';
  FB.XFBML.parse(PH.FB.Share);

  PH.FB.Like.innerHTML = '<iframe src="http://www.facebook.com/plugins/like.php?href=' + escape('http://www.be-at.tv' + url + '.go') + '&send=false&layout=button_count&width=90&show_faces=false&height=21&appId=164249544235" scrolling="no" frameborder="0" style="border:none;overflow:hidden;width:90px;height:21px;" allowTransparency="true"></iframe>';
}

PH.FB.showLike = function(point) {
  PH.FB.Share.style.left = Math.floor(point.x) + "px";
  PH.FB.Share.style.top  = Math.floor(point.y) + "px";
}

PH.FB.hideLike = function(url) {
  PH.FB.Share.style.left = "-1000px";
}


PH.FB.showRecommend = function(url, top, left) {
  if(!PH.FB.Recommend) {
    PH.FB.Recommend = document.createElement('div'); 
    PH.FB.Recommend.id = "fb-share";
    PH.FB.Recommend.style.position = "absolute";
    document.getElementById('fb-root').appendChild(PH.FB.Recommend);
    PH.Balloon.elements.push(PH.FB.Recommend);
  }

  PH.FB.Recommend.style.top = top + "px";
  PH.FB.Recommend.style.left = left + "px";

  if(url.charAt(url.length-1) == '/') url = url.substr(0, url.length - 1);

  if(PH.FB.Recommend.Url != url) {
    PH.FB.Recommend.Url = url;
    PH.FB.Recommend.innerHTML = '<fb:like href="http://www.be-at.tv' + url + '.go" send="false" layout="button_count" width="120" show_faces="false" data-action="recommend"></fb:like>';
    FB.XFBML.parse(PH.FB.Recommend);
  }
}

PH.FB.hideRecommend = function() {
  PH.FB.Recommend.style.left = "-1000px";
}

PH.FB.positionLike = function(top,left) {
  PH.FB.Like.style.top  = top + 'px';
  PH.FB.Like.style.left = left + 'px';
}

window.onload = function() {
  var so = new SWFObject('/Preload.swf', 'website', '100%', '100%', '8', '#F7F7F7');
  so.useExpressInstall('/swfobject/expressinstall.swf');
  so.addParam('menu', 'false');
  so.addParam('wmode', 'opaque');
  so.write('content');
}

window.fbAsyncInit = function() {

  FB.init({
    appId  :'164249544235', 
    status :true,
    cookie :true,
    xfbml  :true,
    oauth  :true, 
    channelUrl:document.location.protocol + '//' + document.location.hostname + '/facebook/channel.ashx'
  });

  FB.getLoginStatus(function(response) {
    if (response.authResponse) {
      PH.FB.session = response.authResponse;
    }
  });

  FB.Event.subscribe('auth.authResponseChange', function(response) {
    PH.FB.session = response.authResponse;
  });

  FB.Event.subscribe('auth.login', function(response) {
    PH.FB.session = response.authResponse;
    if(PH.MainSWF && PH.MainSWF.onFacebookLogin) PH.MainSWF.onFacebookLogin(PH.FB.session.userID, PH.FB.session.signedRequest);
  });

  FB.Event.subscribe('auth.logout', function(response) {
    if(!PH.FB.session) return;
    if(PH.MainSWF && PH.MainSWF.onFacebookLogout) PH.MainSWF.onFacebookLogout(PH.FB.session.userID);
    PH.FB.session = null;
  });

  PH.FB.Share = document.createElement('div'); 
  PH.FB.Share.id = "fb-share";
  PH.FB.Share.style.position = "absolute";
  PH.FB.Share.style.top = "20px";
  PH.FB.Share.style.left = "-1000px";
  document.getElementById('fb-root').appendChild(PH.FB.Share); 

  PH.FB.Like = document.createElement('div'); 
  PH.FB.Like.id = "fb-like";
  PH.FB.Like.style.position = "absolute";
  PH.FB.Like.style.top = "20px";
  PH.FB.Like.style.left = "-1000px";
  document.getElementById('fb-root').appendChild(PH.FB.Like); 
}

PreloadComplete = PH.PreloadComplete;

document.write("<script type='text/javascript' src='" + document.location.protocol + "//connect.facebook.net/en_GB/all.js' async='true'></script>");


