// Redirect so we know if JS is enabled.
var query = window.location.search.split("?")[1];
if (query == null) { query = ''; }
if (query.indexOf('js=1') == -1 && query.indexOf('accessible=1') == -1) {
	//index = (window.location.pathname.indexOf('index.php') == -1) ? 'index.php'
	//	: "";
	
	queryExtra = (query.length) ? '&js=1' : '?js=1'
	window.location.replace(window.location.href + queryExtra);
}
/* --------------------------------------------- */


var boxOpen = false;

// Preload images.
var sliderRating = new Array(new Image(), new Image(), new Image(), new Image(), new Image(), new Image());
var satisfactionSelected = new Array(new Image(), new Image(), new Image(), new Image(), new Image(), new Image());
for (x=0;x<=5;x++) {
	sliderRating[x].src = clientImgDir + 'sliders/'+x+'.png';
	satisfactionSelected[x].src = 'img/smilies/'+x+'x.gif';
}

window.onload = function() {
	for (x=1; x<=qTotal; x++) {
		score(x); //  Hides all satisfaction scores again if necessary
	}
}

function submission() {
	var selectFail = new Array( );
	var returnText = "Please select your ";
	var y=0;
	var x;

	for (x in required) {
		question = document.forms[0].elements[required[x][0]];
		if (question.value == required[x][1]) { // If any header questions are left untouched they will have their initial value still.
			question.style.color = "#FF0000";
			window.scrollTo(0,0);
			question.focus();
			selectFail[y] = required[x][2];
			y += 1;
		} else {
			question.style.color = "#000000";
		}
	}

	if (y>0) {
		for (x=0; x<y; x++) {
			if (x>0) returnText += " and ";
			returnText += selectFail[x];
		}
		alert(returnText+".");
		return false;
	}
}

function comments(x, focussed) {
	el = document.getElementById('comment' + x);
	title = document.getElementById('comment' + x + 'Title');
	overlayDiv = document.getElementById('overlay');

	if (focussed == 1) {
		if (boxOpen != false) { document.getElementById('comment' + boxOpen).focus(); return; }
		boxOpen = x;

		gauge();
		boxLeft = frameOffsetX + (0.18 * frameWidth);
		boxTop = frameOffsetY +  (0.4  * frameHeight);
		el.style.position = "absolute";
		el.style.left = boxLeft + 'px';
		el.style.top = boxTop + 'px';
		el.style.width = "50em";
		el.style.height = "20ex";
		el.style.border = "3px ridge #000000";

		title.style.display = "block";
		title.style.position = "absolute";
		title.style.left = (boxLeft + 3) + 'px';
		title.style.top = (boxTop - 30) + 'px';
		
		if (ie6!=true) {
			overlayDiv.style.left = frameOffsetX + 'px';
			overlayDiv.style.top = frameOffsetY + 'px';
			overlayDiv.style.display = "block";
		}
		
		el.focus();
	} else {
		el.style.position = "static";
		el.style.width = commentTextWidth;
		el.style.height = commentTextHeight;
		title.style.display = "none";
		overlayDiv.style.display = "none";
		el.style.border = "1px solid #C0C0C0";
		boxOpen = false;
	}

}

function score(x, fixScore) {

	// Find the importance score.
	var iScore = false;
	if (fixScore !== undefined) iScore = fixScore;
	for (y=0;y<=5;y++) {
		try { if (iScore===false && document.getElementById('q'+x+'I'+y).checked) iScore = y; }
		catch(e) { /* Catches questions without even the qxI0 checkbox, e.g. textbox questions. */ }
		if (iScore==0 && y!=0) {
			try { document.getElementById('q'+x+'I'+y).checked = ''; }
			catch(e) { /* Catches questions with a qxI0 checkbox but no importance radio buttons. */ }
		}
	}

	if (fancyImages) {
		try { document.getElementById('slider'+x).src = sliderRating[iScore].src }
		catch(e) { /* Catches questions without an importance slider. */ }
	}
	
	if (iScore!=0) {
		try { document.getElementById('q'+x+'I'+iScore).checked = 'checked'; }
		catch(e) { /* Catches questions without an importance slider. */ }
	}


		try { satis = document.getElementById('satisfaction'+x); } catch(e) { }
		try { importance = document.getElementById('importance'+x); } catch(e) { }
		try { commentTD = document.getElementById('comment'+x+'TD'); } catch(e) { }
		try { comment = document.getElementById('comment'+x); } catch(e) { }
		
		var testNA = false;
		try { testNA = document.getElementById('q'+x+'I0').checked; } catch(e) { /* For IE6/7 */ }
		if (testNA) {
			try { commentTD.style.visibility = 'hidden'; } catch(e) { }
			try { comment.value = ''; } catch(e) { }
			try { satis.style.visibility = 'hidden'; } catch(e) { }
			try { importance.style.visibility = 'hidden'; } catch(e) { }
			
			for (y=1;y<=5;y++) {
				try { document.getElementById('q'+x+'Sradio'+y).checked = ''; } catch(e) { }
			}
			if (fancyImages) {
				satisfactionImg(x,0);
			}
		} else {
			try { satis.style.visibility = 'visible'; } catch(e) { }
			try { importance.style.visibility = 'visible'; } catch(e) { }
			try { commentTD.style.visibility = 'visible'; } catch(e) { }
		}
	
}

function gauge() {
	if (self.innerWidth)
	{
		frameOffsetX = window.pageXOffset;
		frameOffsetY = window.pageYOffset;
		frameWidth = self.innerWidth;
		frameHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		frameOffsetX = document.documentElement.scrollLeft;
		frameOffsetY = document.documentElement.scrollTop;
		frameWidth = document.documentElement.clientWidth;
		frameHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		frameOffsetX = document.body.scrollLeft;
		frameOffsetY = document.body.scrollTop;
		frameWidth = document.body.clientWidth;
		frameHeight = document.body.clientHeight;
	}
	return;
}

function commentKey(e, x) { // Allows tabbing out of JS comment boxes (and hence right through the whole form).
	var keynum;

	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}

	if (keynum==9 || keynum==13) {
		setTimeout('comments('+x+',0);', 10);  // This has to be done after we return  from this function to return the cursor posn to zero.
		el = document.getElementById('comment' + x);
		el.value = el.value.replace(/^\s+|\s+$/g, '');  // Trim leading and trailing whitespace that would be introduced by pressing Tab or Enter.
		return false;
	}
	return true;
}

function satisfactionImg(x,y) {
	for (z=1;z<=5;z++) {
		Simg = document.getElementById('q'+x+'Simg'+z)
		Sradio = document.getElementById('q'+x+'Sradio'+z);
		if (z==y) {
			Simg.src = satisfactionSelected[z].src
			Sradio.checked = 'checked';
		} else {
			Simg.src = 'img/smilies/'+z+'.gif';
			Sradio.checked = '';
		}
	}
}