// Takeover singleton pseudoclass
// mway @ Situation Interactive - 11 may 2009
// Please use takeover.min.js in production.

var Takeover = new function TakeoverObject() {
	this.required_args = ["untainted_url", "video_url", "referrer", "email_message", "secret_message", "return_text"];
	this.done = false;
	this.message;
	this.video_url;
	this.referrer;
	this.email_message;
	this.secret_message;
	this.return_text;
	
	// Takeover.init must be passed a hash (JSON) with the appropriate config options.
	this.init = function(args) {
		var errors = [];

		if(!!args && typeof args == "object") {
			Takeover.untainted_url	= args.untainted_url;
			Takeover.video_url		= args.video_url;
			Takeover.referrer		= args.referrer;
			Takeover.email_message	= args.email_message;
			Takeover.secret_message	= args.secret_message;
			Takeover.return_text	= args.return_text;	
			
			try {
				for(var i in Takeover.required_args) {
					var arg = Takeover.required_args[i];
					
					if(!eval("Takeover." + arg)) {
						errors.push(arg);
					}
				}
				
				if(errors.length) {
					throw(errors.join(", "));
				} else {
					Takeover.checkCookie();
					Takeover.bindWindowEvents();
				}
			} catch(err) {
				if(typeof err == "string") {
					throw("Takeover failed.  The following arguments were missing at initialization: " + err);
				}
			}
			
		} else {
			throw("Takeover must be initialized with an object hash (JSON).")
		}
	};
	
	
	// Bind events for window resizing and to blur automatically-focused input fields within the iFrame.
	this.bindWindowEvents = function() {
		$(document).ready(function() {
			Takeover.fixFrameDimensions();
			$(window).resize(function() {
				Takeover.fixFrameDimensions();
			});
		});
	};
	
	
	// Redirect the user if they have already viewedthe takeover.
	this.checkCookie = function() {
		var date;
		var expires;
		if(!(/bmg_takeover_completed=true/.test(document.cookie)) || /situationdev/.test(window.location.href)) {
			date = new Date();
			date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000));
			expires			= "; expires=" + date.toGMTString();
			document.cookie	= "bmg_takeover_completed=true" + expires + "; path=/";
		} else {
			//Takeover.revert();
		}
	};
	
	
	this.timer = function() {
		setTimeout("Takeover.start()", 1000);
	};
	
	
	// Place the flash, begin the takeover.
	this.start = function() {
		if(!Takeover.done) {
			var so = new SWFObject("flash/takeover.swf", "paintover", "100%", "100%", "8", "#ffffff");
			so.addParam("movie", "flash/takeover");
			so.addParam("quality", "high");
			so.addParam("wmode", "transparent");
			so.addParam("name", "takeoverPlayer");
			so.addParam("id", "takeoverPlayer");
			so.addVariable("autoplay", "true");
			so.addVariable("landingpage", "1");
			so.addVariable("themessage", Takeover.secret_message);
			so.addVariable("videoURL", Takeover.video_url);
			so.addVariable("referrer", Takeover.referrer);
			so.addVariable("yourmessage", Takeover.email_message);
			so.addVariable("yoursecretmessage", Takeover.secret_message);
			so.addVariable("returntext", Takeover.return_text);
			so.write("overlay");
			Takeover.done = true;
		}
	};
	
	
	// Unused, but in the event that a hard redirect (Takeover.revert()) is not acceptable, this method will be called.
	this.remove = function() {
		$("#overlay").remove();
	};
	
	
	// Redirect back to 'previous' page; alternatively, change this to 'history.go(-1)'
	this.revert = function() {
		window.location.href = Takeover.untainted_url;
	};
	
	
	// Ensure iFrame is always 100% width/height so we don't get clipping
	this.fixFrameDimensions = function() {
		var max_height	= $(document).height() > $(window).height() ? $(window).height() : $(document).height();
		$("#frame").css({ height: max_height });
	};
	
	
	// Deprecated
	this.fixFirefox = function() {
		//if(/rv\:1\.9/.test(navigator.userAgent)) {
		//	$("#frame").css({ visibility: "hidden" });	
		//}
	};
	
	
	// Takeover.send - called within SWF to process form data via AJAX
	this.send = function(s_name, s_email, s_friendName, s_friendEmail, s_url, s_message, s_secretMessage, s_newsletter) {
		var s_data = {
			name: s_name,
			email: s_email,
			friendName: s_friendName,
			friendEmail: s_friendEmail,
			referrer: s_url,
			message: s_message,
			secretMessage: s_secretMessage,
			newsletter: s_newsletter
		};
		
		$.ajax({
			type: "get",
			data: s_data,
			//url: "./proxy.php", // This will need to be changed to a .NET script that is similar to proxy.php
			url: "/land/bluetakeover/ajax/mail-lotame.php",
			complete: function(response) {}
		});
	};
};

function fixFirefox() {}