var FSPrompt;
var FSPromptSettings = {};
var promptWindow = null;
var surveyURL = '';
var popOver = false;
var currentfocus = false;

function getPromptInfo(){
	return {
		"surveyURL": surveyURL,
		"message": FSPromptSettings['messages']['standby'],
		"style": FSPromptSettings['style']['standby']
	};
}

//Sets the cookie for this prompt
function setPromptCookie(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
function readCookie(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
function promptUnload(){
	try {
		if (readCookie('FSPrompt-' + FSPromptCookieID) == 'waiting') {
			setPromptCookie(-1, 'complete');
		}
		promptWindow.parentUnload();
	} catch(e){
		return false;
	}
}

function setUnload() {
	//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
function setPopup(wind){
	promptWindow = wind;
	setPromptCookie(24,'waiting');
	setUnload();
}


//Close an open prompt
function closePrompt(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();
	}
}

function setVariables(){	
		promptWindow.PromptStyle = FSPromptSettings['style']['standby'];
		promptWindow.surveyURL = surveyURL + '?referer=' + window.location;
		promptWindow.PromptMessage = FSPromptSettings['messages']['standby'];
}

//Click one of the options
function promptClick(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
function createPrompt(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'
			}).attr('href','javascript:promptClick(1);').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'
			}).attr('href','javascript:promptClick(0);').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;
}

function resizePopup() {
	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
function showPrompt(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();
}

$(function(){
	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(e) { 
						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();}
			}
});}});

