EmailAFriend = {
	instance : null,
	getInstance : function() {
		if (EmailAFriend.instance == null) EmailAFriend.instance = new _EmailAFriend();
		return EmailAFriend.instance;
	}
}
function _EmailAFriend() {
	this.vPositionElement = null;
	this.hPositionElement = null;
}
_EmailAFriend.IFRAME_ID = "EmailAFriendIframe";
_EmailAFriend.prototype.close = function(horizontalElement, verticalElement) {
  jQuery(_EmailAFriend.fadeElm).fadeTo('fast',0.01,function() {
    document.body.removeChild(_EmailAFriend.fadeElm);
    document.body.removeChild(document.getElementById(_EmailAFriend.IFRAME_ID));
  });
}
_EmailAFriend.prototype.getLeft = function() {
	var iframe = document.getElementById(_EmailAFriend.IFRAME_ID);
	var element = (this.hPositionElement) ? this.hPositionElement : document.body;
	return (element.offsetWidth / 2) - (iframe.offsetWidth / 2) + getAbsOffsetLeft(element) + "px";
}
_EmailAFriend.prototype.getTop = function() {
	var iframe = document.getElementById(_EmailAFriend.IFRAME_ID);
	var elementHeight = (this.vPositionElement) ? this.vPositionElement.offsetHeight : document.body.clientHeight;
	return (elementHeight / 2) - (iframe.offsetHeight / 2) + document.body.scrollTop + "px";
}
_EmailAFriend.prototype.getUrl = function(doc) {
	if (!doc) var doc = document;
	var eafUrlUtil = new URLUtility(doc);
	var params = eafUrlUtil.getParameterMap();
	for (var paramName in params) {
		if (!params[paramName]) eafUrlUtil.removeParameter(paramName);
	}
	return eafUrlUtil.getUrl();
}
_EmailAFriend.prototype.pageLoad = function(eafContentElement) {
	var iframe = document.getElementById(_EmailAFriend.IFRAME_ID);
	iframe.style.width = eafContentElement.offsetWidth;
	iframe.style.height = eafContentElement.offsetHeight;
	iframe.style.top = this.getTop();
	iframe.style.left = this.getLeft();
	iframe.style.visibility = "visible";
}
_EmailAFriend.prototype.open = function(horizontalElement, verticalElement, trackingEventName) {
	var iframe = document.createElement("iframe");
	function fadeIn() {
    var div = document.createElement('div');
    div.style.height = Math.max(document.body.clientHeight, document.body.scrollHeight);
    div.style.width = Math.max(document.body.clientWidth,document.body.scrollWidth);
    div.style.position = 'absolute';
    div.style.top = div.style.left = '0';
    div.style.opacity = '0.01';
    div.style.backgroundColor = '#111';
    _EmailAFriend.fadeElm = div;
    document.body.appendChild(div);
    jQuery(div).fadeTo('slow',0.8);
	}
	iframe.setAttribute("id", _EmailAFriend.IFRAME_ID);
	iframe.name = _EmailAFriend.IFRAME_ID;
	iframe.style.position = "absolute";
	iframe.style.top = "0px";
	iframe.style.visibility = "hidden";
	iframe.style.zIndex = 1000;
	iframe.src = "about:blank";
	iframe.setAttribute("border", "0");
	iframe.setAttribute("frameBorder", "0");
	iframe.setAttribute("scrolling", "no");
	document.body.appendChild(iframe);
	this.hPositionElement = horizontalElement;
	this.vPositionElement = verticalElement;
	iframe.src = "f_EmailAFriend?trackingParms=page:YOUTUBEWIDGET;label:ytw_email_submit;event:"+trackingEventName;
	fadeIn();
}

if (!window.getAbsOffsetLeft) {
	function getAbsOffsetLeft(element) {
		if (element.offsetParent) return element.offsetLeft + getAbsOffsetLeft(element.offsetParent);
		else return element.offsetLeft;
	}
}
if (!window.getAbsOffsetTop) {
	function getAbsOffsetTop(element) {
		if (element.offsetParent) return element.offsetTop + getAbsOffsetTop(element.offsetParent);
		else return element.offsetTop;
	}
}

