﻿(function() {

	var o = {

		ModalDialog: function(open, id) {
			EMOTIFY.log('modaldialog' + id);
			if (!document.getElementById('modalbg')) {
				var mbg = document.createElement('div');
				//				mbg.setAttribute('id');
				mbg.setAttribute('modalbg');
				document.getElementsByTagName('body')[0].addChild(mbg);
			}

			document.getElementById('modalbg').style.display = open ? "block" : "none";
			if (id) {
				o.Dialog(open, id);
			}

		},

		Dialog: function(open, id) {

			if (open) {
				document.getElementById(id).style.display = 'block';
				o.OnWindowResize(id);
				window.onresize = function() { o.OnWindowResize(id) };
			} else {
				window.onresize = null;
				document.getElementById(id).style.display = 'none';
			}
		},


		OnWindowResize: function(id) {
			// we only need to move the dialog based on scroll position if
			//   we're using a browser that doesn't support position: fixed, like < IE 7
			var left = window.XMLHttpRequest == null ? document.documentElement.scrollLeft : 0;
			var top = window.XMLHttpRequest == null ? document.documentElement.scrollTop : 0;
			var div = document.getElementById(id);

			if (typeof window.innerWidth == 'number') {
				div.style.left = Math.max((left + (window.innerWidth - div.offsetWidth) / 2), 0) + 'px';
				div.style.top = Math.max((top + (window.innerHeight - div.offsetHeight) / 2), 0) + 'px';
			} else {
				div.style.left = Math.max((left + (document.documentElement.clientWidth - div.offsetWidth) / 2), 0) + 'px';
				div.style.top = Math.max((top + (document.documentElement.clientHeight - div.offsetHeight) / 2), 0) + 'px';
			}
		},


		showajaxloader: function() {
			EMOTIFY.log('ajax loader');
			$("#closebutton").css({ "display": 'none' });
			$("#divInner").css({ "display": 'none' });
			$(".lightbox .lightbox_liner *").css({ "display": "none" });

			if ($("#loader").parents('.lightbox_liner').length > 0) {
				var pars = $("#loader").parents();
				for (var i = 0; i < pars.length; i++) {
					if ($(pars[i]).hasClass('lightbox_liner')) {
						break;
					} else {
						$(pars[i]).css({ "display": "block" });
					}

				}
			}

			$("#loader").css({ "display": "block" });
			$("#loader *").css({ "display": "inline" });

			$("#loader_img").attr("src", "/images/ajaxloader.gif");

			if (EMOTIFY.packviewer) {
				EMOTIFY.packviewer.lightbox();
			}

		},

		showFBLoader: function() {
			EMOTIFY.log('showfbloader called');
			var lb = $("<div class='lightbox' id='fblightboxloader'><div class='lightbox_liner'><div id='loader'>Retreiving your Facebook Information<img src='/images/ajaxloader.gif' /></div></div></div>");
			$('body:first').append(lb);
			lb.find('#loader').css({ "display": "block" });
			lb.find('.closeButton').remove();
			o.lightbox('fblightboxloader');


		},


		signinfocus: function() {
			if (document.getElementById('ctl00_signinsignup1_tbUsername')) {
				document.getElementById('ctl00_signinsignup1_tbUsername').focus();
			}
		},


		opensignin: function(id) {
			EMOTIFY.log('opensignin ' + id);
			//			o.ModalDialog(true, id);
			o.lightbox(id);
			o.signinfocus();
			return false;
		},



		closesignin: function(signedin) {
			if (signedin !== false) {
				signedin = true;
			}
			if (signedin) {
				if (typeof jQuery != 'undefined' && jQuery !== null) {
					$('#mainmenu .profile_link').addClass('loggedin');
					$("#mainmenu .mn_divider").addClass('active');
				}
			}
			//			o.ModalDialog(false, 'ucSignIn');
			o.delightbox();
			return false;
		},


		lightbox: function(id, nomodal) {
			EMOTIFY.log('lightbox');

			if (typeof divisor == 'undefined' || divisor === null) {
				divisor = 2;
			}

			// determine the size of the lightbox and center itvertically.
			var lb, size, viewport, top;
			if (id) {
				lb = $("#" + id);
			} else {
				lb = $(".lightbox:first");
			}
			if (lb.length) {

				if (lb.hasClass('sendpill')) {
					divisor = 4;
				}
				// see if this is a signup form and adjust the class of the lightbox accordingly
				if (lb.find('.logup').length > 0) {
					lb.addClass('logup');
					EMOTIFY.track('signup/lightbox');
				} else {
					lb.removeClass('logup');
					if (lb.find('.loginLogup.login').length > 0) {
						EMOTIFY.track('login/lightbox');
					}
				}



				lb.css({ "display": "block" });

				size = [lb.outerWidth(), lb.outerHeight()];
				viewport = EMOTIFY.util.viewport();
				top = Math.floor((viewport[1] / divisor) - (size[1] / 2));
				if (top < 0) {
					top = 10;
				}

				lb.css({ "top": top + "px", "marginLeft": "-" + (Math.floor(size[0] / 2)) + "px" });

				if (!$('#modalbg').length && nomodal !== true) {
					$('body:first').append('<div id="modalbg"></div>');
				}

				var bodyHeight = $("html:first").height();

				var lbTotalHeight = lb.outerHeight() + top;
				EMOTIFY.log('lb.outerheight: ' + lb.outerHeight() + '  top: ' + top);
				EMOTIFY.log('bodyheight: ' + bodyHeight + '  lbTotal: ' + lbTotalHeight);
				if (bodyHeight < lbTotalHeight) {
					bodyHeight = lbTotalHeight;
					$("#modalbg").css({ "height": bodyHeight + "px" });
				}

				var cb = $('<a class="closeButton">close</a>');
				lb.find('.lightbox_liner').append(cb);

				if (id) {
					cb.click(function() { o.delightbox(id); });
				} else {
					cb.click(o.delightbox);
				}


			}


		},


		delightbox: function(id) {
			EMOTIFY.log('delightboxing');
			$("#modalbg").remove();
			if (typeof id !== 'undefined' && id != null && !id.timeStamp) {
				if ($("#" + id).length) {
					$("#" + id).css({ "display": "none" });
				} else {
					$(".lightbox").remove();
				}
			} else {
				$(".lightbox").remove();
			}
		},

		showVid: function(which) {

			var vidSrc = false;
			var vidTrackURL = '/a/videolightbox/';

			switch (which) {
				case 'overview':
					vidSrc = '<object width="600" height="375"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7928807&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7928807&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="375"></embed></object><p><a href="http://vimeo.com/7928807">Emotify Overview</a> from <a href="http://vimeo.com/user1661349">Shaan Siddiqui</a> on <a href="http://vimeo.com">Vimeo</a>.</p>';
					vidTrackURL += 'overview';
					break;
				case 'bookmarklet':
					vidSrc = '<object width="600" height="375"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7929118&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7929118&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="375"></embed></object><p><a href="http://vimeo.com/7929118">Emotify Bookmarklet</a> from <a href="http://vimeo.com/user1661349">Shaan Siddiqui</a> on <a href="http://vimeo.com">Vimeo</a>.</p>';
					vidTrackURL += 'bookmarklet';
					break;

				case 'createpack':
					vidSrc = '<object width="600" height="375"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7930191&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7930191&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="375"></embed></object><p><a href="http://vimeo.com/7930191">Create an EmotiPack on Emotify</a> from <a href="http://vimeo.com/user1661349">Shaan Siddiqui</a> on <a href="http://vimeo.com">Vimeo</a>.</p>';
					vidTrackURL += 'createpack';
					break;
			}

			if (vidSrc) {

				$('body:first').append('<div id="video_lb" class="lightbox videolightbox"><div class="lightbox_liner">' + vidSrc + '</div></div>');
				o.lightbox('video_lb');
				EMOTIFY.track(vidTrackURL);


			}
		}

	}

	EMOTIFY.namespace('ui.dialog');
	EMOTIFY.ui.dialog = o;


})();