function sniFDQuiz() {
	this._domain = '.frontdoor.com';
}

sniFDQuiz.prototype.getIQCookie = function(c_name) {
	var c_start = document.cookie.indexOf(c_name + '=');
	if (c_start != -1) { 
		c_start = c_start + c_name.length + 1;
		var c_end = document.cookie.indexOf(';', c_start);
		if (c_end == -1) {
			c_end = document.cookie.length;
		}
	}
	return unescape(document.cookie.substring(c_start, c_end));
}

sniFDQuiz.prototype.setIQCookie = function(name, value, expires, path, domain, secure) {
	var today = new Date();
	today.setTime(today.getTime());
	if (expires) expires = expires * 1000 * 60 * 60 * 24;
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name + '=' +escape( value ) + ((expires) ? ';expires=' + expires_date.toGMTString() : '') + ((path) ? ';path=' + path : '') + ((domain) ? ';domain=' + domain : '') + ((secure) ? ';secure' : '');
}

sniFDQuiz.prototype.resetCookies = function() {
	for (i=1; i<=10; i++) this.setIQCookie("guestAnswer" + i, "", 1, '/', this._domain, '');
}

sniFDQuiz.prototype.fixProgressbar = function(elmnt, pageNum, w, h) {
	document.getElementById(elmnt).style.left = '-' + ((w / 2) - (pageNum * h)) + 'px';
}

sniFDQuiz.prototype.checkInvalidQuizEntry = function(pLandingURL) {
	var mGlobalPath = this.getIQCookie('globalPath');
	if (mGlobalPath == '') {
		if (mGlobalPath == 'undefined') {
			if (mGlobalPath == null) {
				alert('It appears you have entered this quiz from a page other than the start page, or your browser is not set to accept cookies. You will be redirected to the beginning of the quiz.');
				document.location.href = pLandingURL;
			}
		}
	}
}

sniFDQuiz.prototype.validateAnswers = function(mForm, pPageNum) {
	var chosen = false;
	for (i=0; i<mForm.radAnswer.length; i++) {
		if (mForm.radAnswer[i].checked) {
			this.setIQCookie('guestAnswer' + pPageNum, mForm.radAnswer[i].value, 1, '/', this._domain, '');
			chosen = true;
		}
	}
	if (!chosen) {
		alert('Please choose an answer to continue.');
		return false;
	}
}

sniFDQuiz.prototype.getMaxOfNumberSet = function() {
	var largest = arguments[0];
	var tmp = new Array();
	var mArrayCounter = 0;
	for (i=0; i<arguments.length; i++) {
		if (arguments[i] >= largest) {
			if (arguments[i] > largest) {tmp = new Array(); mArrayCounter = 0;}
			tmp[mArrayCounter] = i;
			largest = arguments[i];
			mArrayCounter++;
		}
	}
	return tmp;
}

sniFDQuiz.prototype.getNumOccurrences = function(pLookFor, pLookIn) {
	var numCount = 0;
	for (var i=0; i<pLookIn.length; i++) if (pLookIn.charAt(i) == pLookFor) numCount++;
	return parseInt(numCount);
}

sniFDQuiz.prototype.LandingCheckCookie = function() {
	if (BrowserDetect.browser != 'Safari') {
		// do the cookie test/check
		FLQuizID = 'FLIQV3';
		this.setIQCookie('FLQuizID', FLQuizID, 365, '/', this._domain, '');
		cookieCheck = this.getIQCookie('FLQuizID');
		if (cookieCheck!='FLIQV3') alert('There was a problem with setting a cookie on your computer and this quiz requires them to function.\n\n Please enable cookies in the settings of your browser.');
	}
}

/* Browser detect */
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || 'An unknown browser';
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| 'an unknown version';
		this.OS = this.searchString(this.dataOS) || 'an unknown OS';
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: 'OmniWeb',
			versionSearch: 'OmniWeb/',
			identity: 'OmniWeb'
		},
		{
			string: navigator.vendor,
			subString: 'Apple',
			identity: 'Safari'
		},
		{
			prop: window.opera,
			identity: 'Opera'
		},
		{
			string: navigator.vendor,
			subString: 'iCab',
			identity: 'iCab'
		},
		{
			string: navigator.vendor,
			subString: 'KDE',
			identity: 'Konqueror'
		},
		{
			string: navigator.userAgent,
			subString: 'Firefox',
			identity: 'Firefox'
		},
		{
			string: navigator.vendor,
			subString: 'Camino',
			identity: 'Camino'
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: 'Netscape',
			identity: 'Netscape'
		},
		{
			string: navigator.userAgent,
			subString: 'MSIE',
			identity: 'Explorer',
			versionSearch: 'MSIE'
		},
		{
			string: navigator.userAgent,
			subString: 'Gecko',
			identity: 'Mozilla',
			versionSearch: 'rv'
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: 'Mozilla',
			identity: 'Netscape',
			versionSearch: 'Mozilla'
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: 'Win',
			identity: 'Windows'
		},
		{
			string: navigator.platform,
			subString: 'Mac',
			identity: 'Mac'
		},
		{
			string: navigator.platform,
			subString: 'Linux',
			identity: 'Linux'
		}
	]

};
BrowserDetect.init();