// str.js
//<SCRIPT LANGUAGE="JavaScript">
//<!-- Begin

DemRadios = 7;
DemText = 1;
DemMenus = 7;
TestItems = 102;
AllDem = DemRadios + DemText + DemMenus;
AllData = AllDem + TestItems;
Val = new Array(0);
An=0;
Sc=0;
Ha=0;
Pt=0;
Anx=0;
Hap=0;
Cop=0;
Pos=0;
P1="";
P2="";
P3="";
P4="";
PV="";
TipiS="";
Foc=1;
Num=0;
Lastkey=0;
var Astr="";
var TI=0;
var TP="";
var Ustr=location.search;
if(Ustr) {
  Astr=Ustr.substr(1);
  TI=Astr.indexOf('T')+1;
  if(TI>1) TP="."+Astr.substring(TI-12,TI); 
}
//alert("Ustr: "+Ustr+", TI = "+TP);
document.onkeypress = getkey;
if(document.layers) document.captureEvents(Event.KEYPRESS);

function getkey(e) {
    var key;
	var val;
	var j=0;
	var i;
	var no;
	var elm="";
	var lastctl="";
	var f=document.stress;
	if(Num<=AllDem || Num>AllData) return;
    
	if(e){
		key=e.which;
	}
  	else{
		key=window.event.keyCode;
	}
	
	val=key-48;
//alert("KEY: "+key+", "+val);	
	Lastkey=key;	
	if(key==66 || key==98){ //Bb
		if(Num>(AllDem+1)) {
			Num--;
//			if(Lastkey>0) Num--; //++
		  	elm="item-"+(Num-AllDem);
		  	f[elm][0].focus();							
		}
	}
	else if(key==70 || key==102){ //Ff
		 var elm="item-"+(Num-AllDem);
		 no=0;
		 for(i=0;i<3;i++) {
		 	if(f[elm][i].checked==true)
				no=1;
		}
		 if(no)
		 	 setFocus();
	}
 	else{		   
		if(Num>(AllData-3)){
			if(val>0&&val<3) {
				setOption(val-1);
				setFocus();
			}
		}
		else {		
		 	if(val>0 && val<4){
		 		setOption(val-1);
				setFocus();
		 	}
		}
	}
}	

function setOption(opt) {
	var f=document.stress;
	elm="item-"+(Num-AllDem);
	f[elm][opt].checked=true;
}
function setFocus(){
	var f=document.stress;
	if(Num<=AllData)
		Num++;
		if(Num>AllData) {
			f.qdone.focus();
		}
		else{		
			elm="item-"+(Num-AllDem);
			f[elm][0].focus();
		}
}
function dostress(){
	var f=document.stress;
	Num = AllDem+1;
	f["item-1"][0].focus();
}

function checkRadios(form, Radio) {
	for(var i=0; i<Radio.length; i++) {
		element = Radio[i];
		isChecked = false;
		for(var j=0; j<form[element].length; j++) {
			if(form[element][j].checked) {
				isChecked=true;
			}
		}
		if(!isChecked) {
			alert("Please make a choice for " +form[element][0].name +".");
			form[element][0].focus();
			return false;
		}
	}
	return true;
}

function checkText(form,txt) {
	if(form[txt].value=="") {
		alert("Please enter your "+txt+".");
		form[txt].focus();
		return false;
	}
	return true;
}

function checkMenus(form, Menu) {
	for(var i=0; i<Menu.length; i++) {
		element=Menu[i];
		if(form[element].selectedIndex <= 0) {
			alert("Please make a selection for " +element +".");
			form[element].focus();
			return false;
		}
	}
	return true;
}

function checkStressRadios(form, First, Last) {
	var k=1;
	var element;
	for(var i=First; i<Last; i++,k++) {
		element = "item-" + k;
		isChecked = false;
		for(var j=0; j<form[element].length; j++) {
			if(form[element][j].checked) {
				isChecked=true;
				Val[k] = j+1;
				break;				
			}
		}
		if(!isChecked) {
			alert("Please make your best choice for Question " +k+".");
			form[element][0].focus();
			return false;
		}
	}
	return true;
}

function combine(total, vals) {
	Score=0;
	for(var i=0; i<total; i++) {
		if(Val[vals[i]]>0) {
			Score += Val[vals[i]];
		}
	}
}	

function tally(form) {
	var scores="";
	var tmp="";
	var vals = new Array(3,5,6,9,10,14,19,21,23,37,45,51,55,65,73,82,84,87,90); //19
	combine(19, vals); 
	Anx = Score;
	var vals = new Array(2,7,11,12,16,17,20,24,27,29,31,33,34,35,40,41,43,46,50,53,54,56,59,61,66,68,69,72,75,76,77,78,80,81,83,85,88,89,92,94,96,97);
	combine(42, vals);
	Hap = 126 - Score;
	var vals = new Array(32,38,42,58,64,67,91,95,98,99,100);
	combine(11, vals);
	Cop = Score;
	var vals = new Array(13,15,18,22,25,30,49,52,57,60,63,70,93);
	combine(13, vals);
	Pos = Score;
	//Ranges
	if(Anx<20&&Anx>0) An=1;
	else if(Anx<22) An=2;
	else if(Anx<35) An=3;
	else if(Anx<41) An=4;
	else if(Anx>40) An=5;
		if(Hap<38&&Hap>0) Ha=1;
		else if(Hap<54) Ha=2;
		else if(Hap<75) Ha=3;
		else if(Hap<83) Ha=4;
		else if(Hap>82) Ha=5;
	if(Cop<16&&Cop>0) Sc=1;
	else if(Cop<19) Sc=2;
	else if(Cop<26) Sc=3;
	else if(Cop<28) Sc=4;
	else if(Cop>27) Sc=5;
		if(Pos<24&&Pos>0) Pt=1;
		else if(Pos<26) Pt=2;
		else if(Pos<36) Pt=3;
		else if(Pos<37) Pt=4;
		else if(Pos>36) Pt=5;
An=An+''; Sc=Sc+''; Ha=Ha+''; Pt=Pt+''; Anx=Anx+''; Cop=Cop+''; Hap=Hap+''; Pos=Pos+'';
scores=An+Sc+Ha+Pt+'_'+Anx+'_'+Cop+'_'+Hap+'_'+Pos+"+S";		  

form.redirect.value="http://www.stressandhappiness.com/fback.htm?"+scores+TP;
form.subject.value="SandH "+scores+TP;
}

	
function validateForm(form) {
Score = 0;
LastAnswer = 0;
Radio = new Array( "gender","esl","ongoing_pain","setback","handicapped","pain_level","fatigue");
Menu = new Array( "education","marital","employment","heritage","country","parents","your_group");

	if(! checkText(form,"age")) return false;
	if(! checkRadios(form, Radio)) return false;
	if(! checkMenus(form, Menu)) return false;
	if(! checkStressRadios(form, AllDem, AllData)) return false;
	tally(form);
	return true;
}

function subform(form){
		 document.form.submit();
} 
function checkAge(element) {
  if(element.value !=parseInt(element.value) ||
    element.value <5 || element.value >105) {
    alert("Please enter a realistic age.");
    element.focus();
    return false;
  }
  return true;
}
//END -->

