jQuery(document).ready(function($){
	var FSPrompt;
	var FSPromptSettings = {};
	var promptWindow = null;
	var surveyURL = '';
	var popOver = false;
	var currentfocus = false;
	
	var getPromptInfo = function(){
		return {
			"surveyURL": surveyURL,
			"message": FSPromptSettings['messages']['standby'],
			"style": FSPromptSettings['style']['standby']
		};
	};
	
	//Sets the cookie for this prompt
	var setPromptCookie = function (hours,value){
		if (hours){
			if(hours == -1){
				hours = 200000;
			}
			var date = new Date();
			date.setTime(date.getTime()+(hours*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}else{
			var expires = "";
		}
		document.cookie = 'FSPrompt-'+ FSPromptCookieID + "="+value+expires+"; path=/;" + ((typeof(FSPromptCookieDomain) != "undefined") ? ("domain=" + FSPromptCookieDomain):"");
		return true;
	};
	
	//Get the value of a cookie
	var readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0) == ' ') {
				c = c.substring(1, c.length);
			}
			if (c.indexOf(nameEQ) == 0) {
				return c.substring(nameEQ.length, c.length);
			}
		}
		return null;
	};
	
	
	//Tells the child window that the parent has changed pages
	var promptUnload = function(){
		try {
			if (readCookie('FSPrompt-' + FSPromptCookieID) == 'waiting') {
				setPromptCookie(-1, 'complete');
			}
			promptWindow.parentUnload();
		} catch(e){
			return false;
		}
	};
	
	var setUnload = function () {
		//Preserve any existing onUnload function
		currentUnload = window.onunload;
		if (typeof window.onunload != 'function') {
			window.onunload = promptUnload;
		} else {
			window.onunload = function(){
				currentUnload();
				promptUnload();
			};
		}
	};
	
	//Gets the handle to the popup window
	var setPopup = function(wind){
		promptWindow = wind;
		setPromptCookie(24,'waiting');
		setUnload();
	};
	
	
	//Close an open prompt
	var closePrompt = function(accept){
		if (accept == 0) {
			setPromptCookie(-1,'deny');
		}else {
			setPromptCookie(24,'waiting');
		}
		if (FSPromptSettings['settings']['dm'] == 'fade') {
			$(FSPrompt).fadeOut('slow', function(){
				$(this).remove();
			});
		}
		else {
			$(FSPrompt).remove();
		}
	};
	
	var setVariables = function(){	
			promptWindow.PromptStyle = FSPromptSettings['style']['standby'];
			promptWindow.surveyURL = surveyURL + '?referer=' + window.location;
			promptWindow.PromptMessage = FSPromptSettings['messages']['standby'];
	};
	
	//Click one of the options
	var promptClick = function(answer){
		
		if (answer == 1){
			if(window.FSStandbyUrl === undefined){
				promptWindow = window.open(surveyURL + ((!!surveyURL.match(/\?/)) ? '&' : '?') + 'referer=' + window.location,'FSPromptWindow','width=1000,height=600,left=100,top=100,scrollbars=1');
				setPromptCookie(-1,'completed');
			}else{
				promptWindow = window.open(FSStandbyUrl,'FSPromptWindow','width=1000,height=600,left=100,top=100,scrollbars=1');
				setTimeout(function() {
						setVariables()
					}, 2000);
			}
			if (!popOver) {
				promptWindow.blur();
				window.focus();
			}
			closePrompt(true);
		}else{
			closePrompt(false);
		}
	};
	
	//Create the prompt object
	var createPrompt = function(prompt){
		var main = $('<div></div>')
			.attr('id','FSpopup')
			.css({
				'position': 'fixed',
				'top': '0px',
				'left': '0px',
				'z-index': 2147483642,
				'width': '100%',
				'height': '100%',
				'font-family': 'Trebuchet MS,Verdana,Helvetica,Arial,Sans-serif',
				'display': 'none'
		});
		main.append(
			$('<div></div>').css({
					'position': 'absolute',
					'top': '0px',
					'left': '0px',
					'z-index': 2147483645,
					'background-color': prompt['style']['sb']['color'],
					'opacity': parseFloat(prompt['style']['sb']['opacity']/100),
					'filter': 'alpha(opacity='+parseInt(prompt['style']['sb']['opacity'])+')',
					'width': '100%',
					'height': '100%',
					'display': ((prompt['style']['sb']['enabled']) ? 'block' : 'none')
			}).addClass('FSIEFixedFix').html('&nbsp;')
		);
	
		if(prompt['style']['overall']['height'] == "auto" || prompt['style']['overall']['height'] == 'inherit'){
			var height = "auto";
		}else{
			var height = prompt['style']['overall']['height'] + 'px';
		}
	
		var inner = $('<div></div>').css({
				'position': 'relative',
				'top': '200px',
				'z-index': 2147483646,
				'margin': '0 auto',
				'overflow': 'hidden',
				'background-color': prompt['style']['overall']['bg'],
				'width': prompt['style']['overall']['width'] + 'px',
				'height': height,
				'border': prompt['style']['overall']['border']['width'] + 'px ' + prompt['style']['overall']['border']['style']	+ ' ' + prompt['style']['overall']['border']['color']
			})
			.attr('class','fs-popup-inner')
			.attr('tabindex','0')
			.attr('role','dialog')
			.attr('aria-describtion', prompt['messages']['header']);
		var header = $('<p></p>')
			.attr('id','FSpopup-title')
			.attr('tabindex','1')
			.css({
				'margin':'0 0 0 0',
				'background-color': prompt['style']['header']['bg'],
				'font-weight': 700,
				'color': prompt['style']['header']['fc'],
				'font-size': prompt['style']['header']['fs'],
				'text-align': prompt['style']['header']['align'],
				'padding': '3px'
			}).html(prompt['messages']['header']);
		$(inner).append(header);
	
		$(inner).append(
			$('<p></p>')
				.attr('id','FSpopup-body')
				.css({
				'color': prompt['style']['message']['fc'],
				'font-size': prompt['style']['message']['fs'],
				'text-align': prompt['style']['message']['align'],
				'padding': '0px 8px',
				'line-height': 'normal',
				'margin-top': '6px',
				'margin-bottom': '20px'
			}).html(prompt['messages']['message'])
		);
	
		var buttons = $('<div></div>').css({
			'text-align': 'center',
			'margin-bottom': '15px'
		})
		.addClass('clearfix')
		.append(
			$('<div></div>').css({
				'width': '50%',
				'float': 'left'
			}).append(
				$('<a></a>').attr('role','button')
					.attr('class','fs-popup-button')
					.css({
					'display': 'block',
					'position': 'relative',
					'margin': '0 auto',
					'width': prompt['style']['buttons']['width'] + '%',
					'border': prompt['style']['buttons']['border']['width'] + 'px ' + prompt['style']['buttons']['border']['style']	+ ' ' + prompt['style']['buttons']['border']['color'],
					'padding': '1px 3px 2px 3px',
					'background-color': prompt['style']['buttons']['bg'],
					'font-weight': 'bold',
					'color': prompt['style']['buttons']['fc'],
					'font-size': prompt['style']['buttons']['fs'],
					'text-decoration': 'none'
				}).bind('click', function(e) {
					e.preventDefault();
					promptClick(1);
				}).attr('href','#').html(prompt['messages']['yes'])
			)
		)
		.append(
			$('<div></div>').css({
				'width': '50%',
				'float': 'left'
			}).append(
				$('<a></a>').attr('role','button')
					.attr('class','fs-popup-button')
					.css({
					'display': 'block',
					'position': 'relative',
					'margin': '0 auto',
					'width': prompt['style']['buttons']['width'] + '%',
					'border': prompt['style']['buttons']['border']['width'] + 'px ' + prompt['style']['buttons']['border']['style']	+ ' ' + prompt['style']['buttons']['border']['color'],
					'padding': '1px 3px 2px 3px',
					'background-color': prompt['style']['buttons']['bg'],
					'font-weight': 'bold',
					'color': prompt['style']['buttons']['fc'],
					'font-size': prompt['style']['buttons']['fs'],
					'text-decoration': 'none'
				}).bind('click', function(e) {
					e.preventDefault();
					promptClick(0);
				}).attr('href','#').html(prompt['messages']['no'])
			)
		);
		
		$(main).append($(inner).append($(buttons)));
		main.repositionPrompt = function(){
			inner.css({
				top: ($(window).height() - inner.height()) / 2 + 'px'
			});
		};
	
		if ($(inner).height()) {
			$(window).resize(main.repositionPrompt).resize();
		}
		return main;
	};
	
	var resizePopup = function() {
		var value = ($(window).height() - $('.fs-popup-inner',FSPrompt).outerHeight()) / 2;
		$('.fs-popup-inner', FSPrompt).css({'top': value });
		if ($.browser.msie && $.browser.version < 7) {
			$('#FSpopup').css({'position':'absolute', 'top':$(window).scrollTop() + 'px', 'left':$(window).scrollLeft() + 'px'});
			$('#FSpopup .FSIEFixedFix').css({'position':'absolute', 'width':$(window).width() + 'px', 'height':$(window).height() + 'px'});
		}
	};
	
	//Show the prompt
	var showPrompt = function(mode){	
		$(FSPrompt).css({visibility: 'hidden', display: 'block'});
		$(FSPrompt).css({visibility: 'visible', display: 'none'});
		if (mode == 'fade') {
			$(FSPrompt).fadeIn("slow", function(){
				setTimeout(function(){$('.fs-popup-inner',FSPrompt).focus();},100);
			});
		}
		else {
			$(FSPrompt).show();
			setTimeout(function(){$('.fs-popup-inner',FSPrompt).focus();},100);
		}
		$(window).resize();
	}
		
	
	
	
	if (navigator.userAgent.search(/(bot)|(google)|(bing)|(yahoo)/i) > 0){
		return;
	}
	
	cookieVal = readCookie('FSPrompt-'+ FSPromptCookieID);
	if (cookieVal != 'deny' && cookieVal != 'complete' && cookieVal !== null) {
		setUnload();
	}
	if(cookieVal === null){
		$(window).resize(resizePopup).scroll(resizePopup).resize();
		$.getJSON(statusURL+ '?prompt_id=' + FSPromptID + '&callback=?', function(data){
			if(data.success === true){
				if(data.deny === true){
					setPromptCookie(data.postpone,'deny');
					return false;
				}
				if(data.show === true) {
					FSPromptSettings = data.prompt;
					if (FSPromptSettings.settings.popOver === true) {
						popOver = true;
					}
					FSPrompt = createPrompt(FSPromptSettings);

					$(FSPrompt).keydown(function(event) { 
						if (event.which == 9) {
							event.preventDefault();
							
							if(currentfocus)
								$('a', FSPrompt)[0].focus();							
							else 
								$('a', FSPrompt)[1].focus();

							currentfocus = !currentfocus;
   						}
					});

					surveyURL = data.surveyURL;
					$('body').append(FSPrompt);
					setTimeout(function(){showPrompt(FSPromptSettings.settings.dm)}, (FSPromptSettings.settings.delay*1000));
					setUnload();}
			}
});}});

