/* Staples Secuirty Risk Tool JS Code by Adam Fogg  */

// --- begin browser detect ------------------------------------------------------
/*
Script Name: Simple Javascript Browser/OS detection
Authors: Harald Hope, Tapio Markula, Websites: http://techpatterns.com/
http://www.nic.fi/~tapio1/Teaching/index1.php3
Script Source URI: http://techpatterns.com/downloads/javascript_browser_detection.php
Version 2.0.2
Copyright (C) 29 June 2007
*/
var d, dom, ie, ie4, ie5x, moz, mac, win, lin, old, ie5mac, ie5xwin, op;
d = document;
n = navigator;
na = n.appVersion;
nua = n.userAgent;
win = ( na.indexOf( 'Win' ) != -1 );
mac = ( na.indexOf( 'Mac' ) != -1 );
lin = ( nua.indexOf( 'Linux' ) != -1 );

if ( !d.layers ){
	dom = ( d.getElementById );
	op = ( nua.indexOf( 'Opera' ) != -1 );
	konq = ( nua.indexOf( 'Konqueror' ) != -1 );
	saf = ( nua.indexOf( 'Safari' ) != -1 );
	moz = ( nua.indexOf( 'Gecko' ) != -1 && !saf && !konq);
	ie = ( d.all && !op );
	ie4 = ( ie && !dom );

	/*
	ie5x tests only for functionality. ( dom||ie5x ) would be default settings. 
	Opera will register true in this test if set to identify as IE 5
	*/

	ie5x = ( d.all && dom );
	ie5mac = ( mac && ie5x );
	ie5xwin = ( win && ie5x );
}

// --- end browser detect ------------------------------------------------------

var score = 0;
var numQuestionsAnswered = 0;
var percentage;
var oldScore;
var arrowPosition;

var maxArrowPosition = 187; //the furthest the arrow can move
var maxScorePerQuestion = 6;
var totalNumQuestions = 10;

var maxScore = maxScorePerQuestion * totalNumQuestions; //sum of the maxium value for each question

window.addEvent('domready', function() {
	//create an effect for every slider and a slide out animation for every answer:
	for (var i = 1; i <= totalNumQuestions; i++)  {
		eval('var myEffectsQ' + i + '= new Fx.Styles(\'sliderArrowQ' + i + '\', {duration: 500, transition: Fx.Transitions.Sine.easeOut})' );
		eval('var mySlideA' + i + ' = new Fx.Slide(\'A' + i + '\');'); //create slide out animation obj
		eval('mySlideA' + i + '.hide();'); //start slide off hidden
	}

	//setup results:
	var myEffectsResultsGreen = new Fx.Styles('sliderArrowResultsGreen', {duration: 500, transition: Fx.Transitions.Sine.easeOut});	
	var myEffectsResultsYellow = new Fx.Styles('sliderArrowResultsYellow', {duration: 500, transition: Fx.Transitions.Sine.easeOut});	
	var myEffectsResultsRed = new Fx.Styles('sliderArrowResultsRed', {duration: 500, transition: Fx.Transitions.Sine.easeOut});	

	$("resultsDefault").setStyle("display", "block");
	$("resultsGreen").setStyle("display", "none");
	$("resultsYellow").setStyle("display", "none");
	$("resultsRed").setStyle("display", "none");
		
	if (saf) { //this is needed because the focus event doesn't work in safari correctly
		var selectedEventType = 'mouseup'
	} else {
		var selectedEventType = 'focus'
	}

	$$('input[type=radio]').addEvent(selectedEventType, function(e){
		e = new Event(e);
		this.setProperty('checked', 'checked'); //required to select radio button because this event interrupts the browers "check" action
		score = 0;
		numQuestionsAnswered = 0;
		//loop through each input field and find all "checked" fields (which results in just finding radio buttons)
		for (var i = 0; i < document.riskToolForm.length; i++)  {
			if (document.riskToolForm[i].checked) {
				score = score + parseInt(document.riskToolForm[i].value);
				numQuestionsAnswered++;
				//get percentage
				//get number value from Q1, Q2, Q3, etc:
				var thisAnswer = document.riskToolForm[i].name.substring(1);
				eval('mySlideA' + thisAnswer + '.slideIn();'); //display this questions answer
				percentage = document.riskToolForm[i].value * 100 / maxScorePerQuestion;
				eval('document.riskToolForm.percent' + document.riskToolForm[i].name + '.value = \'RISK LEVEL: \' + Math.round(percentage) + \'%\';');
				//move the arrow on the questions
				arrowPosition = Math.round(maxArrowPosition * percentage / 100);
				eval('myEffects' + document.riskToolForm[i].name + '.start({\'left\': ' + arrowPosition + '})');
			}
		}

		//calculate RESULTS slider position:
		percentage = score * 100 / maxScore;
		arrowPosition = Math.round(maxArrowPosition * percentage / 100);

		//change the default message saying they haven't completed questions
		document.riskToolForm.ResultsMessage.value = 'You have ' + (totalNumQuestions-numQuestionsAnswered)  + ' questions remaining.';
		
		//for debug fields:
//		document.riskToolForm.arrowPositionField.value = arrowPosition;
//		document.riskToolForm.scoreField.value = score;
//		document.riskToolForm.percentField.value = Math.round(percentage);


		//if they've answered all the questions, expand the correct reults box
		if (numQuestionsAnswered == totalNumQuestions) { 
			if (Math.round(percentage) <= 34) {
				document.riskToolForm.percentResultsGreen.value = 'RISK LEVEL: ' + Math.round(percentage) + '%';
	$("resultsDefault").setStyle("display", "none");
	$("resultsGreen").setStyle("display", "block");
	$("resultsYellow").setStyle("display", "none");
	$("resultsRed").setStyle("display", "none");
				$("sliderArrowResultsGreen").setStyle("display", "block");
				myEffectsResultsGreen.start({'left': arrowPosition});
			} else if (Math.round(percentage) > 34 && Math.round(percentage) <= 67) {
				document.riskToolForm.percentResultsYellow.value = 'RISK LEVEL: ' + Math.round(percentage) + '%';
	$("resultsDefault").setStyle("display", "none");
	$("resultsGreen").setStyle("display", "none");
	$("resultsYellow").setStyle("display", "block");
	$("resultsRed").setStyle("display", "none");
				$("sliderArrowResultsYellow").setStyle("display", "block");
				myEffectsResultsYellow.start({'left': arrowPosition});
			} else if (Math.round(percentage) > 67 && Math.round(percentage) <= 100) {
				document.riskToolForm.percentResultsRed.value = 'RISK LEVEL: ' + Math.round(percentage) + '%';
	$("resultsDefault").setStyle("display", "none");
	$("resultsGreen").setStyle("display", "none");
	$("resultsYellow").setStyle("display", "none");
	$("resultsRed").setStyle("display", "block");
				$("sliderArrowResultsRed").setStyle("display", "block");
				myEffectsResultsRed.start({'left': arrowPosition});
			} else { //just in case
				document.riskToolForm.percentResultsYellow.value = 'RISK LEVEL: ' + Math.round(percentage) + '%';
	$("resultsDefault").setStyle("display", "none");
	$("resultsGreen").setStyle("display", "none");
	$("resultsYellow").setStyle("display", "block");
	$("resultsRed").setStyle("display", "none");
				$("sliderArrowResultsYellow").setStyle("display", "block");
				myEffectsResultsYellow.start({'left': arrowPosition});
			}
		}
		e.stop();
	});
});

