// (c) 2002, ePavlov Corp., All Rights Reserved
//
var blueBox=new Image(),yellowBox=new Image(),redLine=new Image();
var commentx=new Image(),comment0=new Image(),comment1=new Image();
var showComments=true;
var unfinishedColor="#ffffcc";
var oldQClr="white"; // for mouse over highlight of question

//-------------------------------
// determine the type of browser
var brAgent=navigator.userAgent.toUpperCase(),brType,isFireFox=false,isIE=false;
if (brAgent.indexOf("FIREFOX")>=0) { brType="FIREFOX"; isFireFox=true; }
else if (brAgent.indexOf("MSIE")>=0) { brType="MSIE"; isIE=true; }
else brType="?";
//-------------------------------
function $(id) {	// for FireFox and Mac must use getElementById (yuck!)
	var z;
	try {
		z=document.getElementById(id);
	} catch (e) {
		try {
			z=eval("window." + id);
		} catch (e) {
			z=null;
		}
	}
	return z;
}
function Eval(z) {
	try {
		return eval(z);
	} catch (e) {
		try {
			return $(z);
		} catch (e) {
			if (usr==99) Alert("Eval error: " + z);
			return "";
		}
	}
}
function GetAttr(dom,attr) {
	var v="";
	try {
		if (isIE) {
			v=eval(dom.id + "." + attr);
		} else if (dom.hasAttributes()) {
			if (dom.hasAttribute(attr)) {
				v=dom.getAttribute(attr);
			}
		}
	} catch (e) {
		v="";
	}
	return v;
}
var sa_errs=0;
function SetAttr(dom,attr,v) {
	try {
		if (isIE) {
			Eval(dom.id + "." + attr) = v;
		} else {
			dom.setAttribute(attr,v);
		}
	} catch (e) {
		if (usr==99)
			if (++sa_errs<5) alert("EX: SetAttr (" + dom.id + "." + attr + ") = [" + v + "]");
	}
}
function GoHome() {
	window.top.location = "home.asp"
	}
var nErrMsg=0;
function Alert(s) {
	if (nErrMsg<3) alert(s);
	nErrMsg++;
	}
var tableWidth=150,tableHeight=20;
function TW(p) {
	return parseInt(((p*150)+5)/100,10);
	}
function MakeResBar(id,ww,hh,r1,sd1,m,sd2,r2) {
	var ss="",t,has_left=1,has_right=1;

	//if (r1==0) r1++;
	if (r2==100) r2--;

	if (sd1) {
		t=m-r1;
		if (sd1>t) sd1=t;
		if (sd1<0) sd1=0;
		}
	if (sd2) {
		t=r2-m;
		if (sd2>t) sd2=t;
		if (sd2>=100) sd2--;
		}
	if (m==0) {
		m+=2;
		has_left=0;
		}
	else if (m==100) {
		m-=2;
		has_right=0;
		}
	ss+="<v:group id='" + id + "' coordsize='100 100' style='width:" + ww + ";height:" + hh + ";'>\n";
		if (has_left) {
			ss+="<v:rect print='True' fillcolor='white' style='position:relative;top:0;left:0;width:" + r1 + ";height:100'></v:rect>";
			ss+="<v:rect print='True' fillcolor='yellow' style='position:relative;top:0;left:" + (r1) + ";width:" + (m-r1-1) + ";height:100'></v:rect>";
			if (sd1) {
				ss+="<v:rect print='True' fillcolor='red' style='position:relative;top:45;left:" + (m-sd1) + ";width:" + (sd1-1) + ";height:10'></v:rect>";
				}
			}
		if (has_right) {
			ss+="<v:rect print='True' fillcolor='white' style='position:relative;top:0;left:" + r2 + ";width:" + (100-r2) + ";height:100'></v:rect>";
			ss+="<v:rect print='True' fillcolor='yellow' style='position:relative;top:0;left:" + (m+1) + ";width:" + (r2-m) + ";height:100'></v:rect>";
			if (sd2) {
				ss+="<v:rect print='True' fillcolor='red' style='position:relative;top:45;left:" + (m+1) + ";width:" + (sd2-1) + ";height:10'></v:rect>";
				}
			}
		ss+="<v:rect print='True' fillcolor='blue' style='position:relative;top:0;left:" + (m-1) + ";width:3;height:100'></v:rect>";
	ss+="</v:group>";
	return ss;
	}
function MakeResults() {
	var i,j,r,r2,r3,rg1,rg2,rg1v,rg2v,v,vmax,vr1,vr2,aa,z,zz,zzg,zv,st1,st2,st3,info,ss,sx,xp,nm,nms,nmg,cells,nn,ta=new Array(),stdev,stdev2,ok,dv1,dv2,vr1a,vr2a,tmp;
	var test,sBlue="",sRed="",sYellow="",ji;
	aa=new Array();
	test=1;
	
	sBlue=" src='/images/BlueBox.gif'";
	sRed=" src='/images/red3.gif'";
	sYellow=" src='/images/YellowBox.gif'";

	st1="<table class=sv_res_bar cellspacing=0 cellpadding=0 height=20><tr><td>";
	st2="</td><td valign=bottom>";
	st3="</td></tr></table>";
	try {
		for (i=0;i<svRes.length;i++) {
			try {
				ss="";
				ok=true;
				nm=svRes[i];
				nms=nm + "_span";
				nmg=nm + "_det";
				try {
					v=vr1=vr2=0;
					stdev=stdev2=rg1=rg2=0;
					rg1v=rg2v=0;
					z=Eval(nm);
					v=z.value;
					aa=v.split(",");
					if (aa.length>1) {
						zv=v=parseInt(aa[0],10);
						vm=parseInt(aa[1],10);
						if (aa.length>3) {
							rg1=vr1=parseInt(aa[2],10);
							rg2=vr2=parseInt(aa[3],10);
							}
						else {
							rg1=rg2=vr1=vr2=v;
							}
						stdev2=aa[4];
						}
					else {
						rg1=rg2=vr1=vr2=zv=v;
						stdev2=0;
						vm=0;
						}
					if (vm>0) {
						vr1=parseInt((rg1*100)/vm,10);
						vr2=parseInt((rg2*100)/vm,10);
						stdev=parseInt((stdev2*100)/vm,10);
						v=parseInt((v*100)/vm,10);
						}
					zz=Eval(nms);
					}
				catch (e) {
					z=null;
					ok=false;
					aa.length=0;
					}
				try {
						{
						for (j=0;j<2;j++) {
							ss="";
							ji=j + "_" + i;
							//if (j) {
								{
								ss+="<table id='res_" + ji + "' cellspacing=0 cellpadding=0 class=sv_result_box><tr>\n";
									// Use absolute values for width/height
									
								vr1a=(v==vr1)?2:0; vr2a=(v==vr1)?1:0;
								sx="";
								sx+="<td class=sv_result_not style='width:" + (TW(vr1)-vr1a) + "'></td>\n";
								if (v!=vr1) {
									rg1v=r=TW(v-vr1)-2;
									tmp=TW(stdev);
									if (tmp>rg1v) tmp=rg1v;
									r2=(r+2)-tmp;
									r3=(r2<r)?r-r2:0;
									//if (test<=3) alert("A: r1=" + r + "\nr2=" + r2);
									sx+="<td class=sv_result_range style='width:" + r + "'>";
									if (stdev>0) {
										if (r2>0)
											sx+="<img id=gy_" + ji + sYellow + " width=" + r2 + " height=" + tableHeight + ">";
										sx+="<img id=gr1_" + ji + sRed + " width=" + r3 + " height=" + tableHeight + "></td>";
										}
									else {
										sx+="<img id=gy1_" + ji + sYellow + " width=" + r2 +" height=" + tableHeight + "></td>";
										}
									}
								sx+="<td class=sv_result_val style='width:3'>";
									sx+="<img id=gb_" + ji + sBlue + " width=3 height=" + tableHeight + "></td>";
								if (v!=vr2) {
									rg2v=r=TW(vr2-v)-1;
									tmp=TW(stdev);
									if (tmp>rg2v) tmp=rg2v;
									r2=(r+1)-tmp;
									r3=(r2<r)?r-r2:0;
									//if (test<=3) alert("B: r1=" + r + "\nr2=" + r2);
									sx+="<td class=sv_result_range style='width:" + r + "'>";
									if (stdev>0) {
										sx+="<img id=gr2_" + ji + sRed + " width=" + r3 + " height=" + tableHeight + ">";
										if (r2>0)
											sx+="<img id=gy2_" + ji + sYellow + " width=" + r2 + " height=" + tableHeight + "></td>";
										}
									else {
										sx+="\n  <img id=gy2_" + ji + sYellow + " width=" + r2 + " height=" + tableHeight + "></td>";
										}
									vr2a=0;
									sx+="<td class=sv_result_not style='width:" + (TW(100-vr2)-vr2a) + "'></td>\n";
									}
								ss+=sx;
								// fill in details table first - without the info button
								ss+="</tr></table>\n";
								}
							if (j) {
								try {
									zzg=Eval(nmg);
									zzg.innerHTML=ss;
									} catch (e) {}
								}
							else {
								// now complete the scoring table
								info="";
								try {
									if (!printVer) {
										info="<table class=sv_res_bar cellspacing=0 cellpadding=0 height=20><tr><td>&nbsp;</td><td valign=middle class=infoBtn onclick='javascript:return qDetails(" + svIDs[i] + ");'>Info</td></tr></table>";
										}
									} catch (e) {}
								zz.innerHTML=st1 + ss + st2 + info + st3;
								}
							}
						}
					}
				catch (e) {
					Alert("ERROR(2)\nN127 id='" + nm + "'\n" + ss);
					}
				}
			catch (e) {
				Alert("ERROR(0)\nN127 id='" + nm + "'\n" + ss);
				}
			}
		/*
		for (i=0;i<svRes.length;i++) {
			for (j=0;j<2;j++) {
				ji=j + "_" + i;
				try { Eval("gb_" + ji)=blueBox; } catch(e) {}
				try { Eval("gy1_" + ji)=yellowBox; } catch(e) {}
				try { Eval("gy2_" + ji)=yellowBox; } catch(e) {}
				try { Eval("gr1_" + ji)=redLine; } catch(e) {}
				try { Eval("gr2_" + ji)=redLine; } catch(e) {}
				}
			}
		*/
		}
	catch (e) {
		}
	//alert(i + " questions");
	}
var commentButtonsLoaded=false;	
var commentx_src='/images/commentx.gif';
var comment0_src='/images/comment0.gif';
var comment1_src='/images/comment1.gif';

function LoadCommentButtons() {
	if (!commentButtonsLoaded) {
		commentx.src=commentx_src;
		comment0.src=comment0_src;
		comment1.src=comment1_src;
		commentButtonsLoaded=true;
		}
	}
var ccnt=0;
function UpdateCommentButton(id) {
	var zb,zt,zl,z,ee="?";
	try {
		ee="cButton: " + id + "_cmnt";
		//zb=Eval("surveyForm." + id + "_cmnt");
		zb=Eval(id + "_cmnt");
		ee="cLink: " + id + "_cLink";
		zl=Eval(id + "_cLink");
		ee="cText: " + "surveyForm.qc_" + id;
		zt=Eval("surveyForm.qc_" + id);
		ee="cTrimLength";
		if (TrimLength(zt.innerHTML)>0) {
			ee="Comment.A/" + brType + "/" + isIE;
			if (isIE)
				zb.src=comment1_src;
			else {
				ee="Comment.B/" + brType + "/" + isIE;
				SetAttr(zb,"src",comment1_src);
			}
			ee="Comment.C/" + brType + "/" + isIE;
			zl.title='Edit Comment';
			}
		else {
			ee="NO.Comment.A/" + brType + "/" + isIE;
			if (isIE)
				zb.src=comment0_src;
			else {
				ee="NO.Comment.B/" + brType + "/" + isIE;
				SetAttr(zb,"src",comment0_src);
			}
			ee="NO.Comment.C/" + brType + "/" + isIE;
			zl.title='Add Comment';
			}
		}
	catch (e) {	
		if (ccnt++<3)
			alert("error in UpdateCommentButton[" + id + "] (" + e + "): " + ee);
		}
	}
function MakeCommentButtons() {
	var i;
	LoadCommentButtons();
	if (!showComments) 
		return;
	for (i=0;i<svComments.length;i++) {
		UpdateCommentButton(svComments[i]);
		}
	}
function TrimLength(s) {
	var i,n=s.length-1;
	for (i=n;i>=0;i--) {
		if (s.charAt(i)>' ') return i+1;
		}
	return 0;
	}
var dlgValues = new Array();
var dlgReturn=0;
function CommentClicked(nm) {
	var dt,i,ws,aa,cid,cz,id;
	try {
		aa=nm.split("_");
		id=aa[1];
		cid="surveyForm.qc_q_" + id;
		cz=Eval(cid);
//	alert("Comment [" + cid + "]\n" + cz.innerHTML);
		var da=new Array();
		da[0]=window.self;
		da[1]=Eval("qt_q_" + id).innerHTML;
		da[2]=cz.innerHTML;
		dlgReturn=0;
		ws="dialogWidth:430px;dialogHeight:360px;status:no;help:no;";
		window.showModalDialog("EditComment.asp",da,ws);
//	alert("Dialog returned: " + dlgReturn + " / " + dv.length);
		if (dlgReturn==1) {
			cz.innerHTML=dlgValues[0];
			UpdateCommentButton("q_" + id);
			}
		else {
			}
	} catch (e) {
		if (usr==99) alert("EX: CommentClicked");
	}
	return dlgReturn;
	}
function MakeBtn(id,label,caption,v,b) {
	var ss;
	ss="<table cellspacing=0 cellpadding=0 class=num_input_t style='visibility:" + (b?"visible":"hidden") + ";'><tr><td id='" + id + "_dk' class=num_input_c onclick=SysChange(" + id + ",'" + v + "') title=\"" + caption + "\">" + label + "</td></tr></table>";
	document.write(ss);
	}
function MakeN127() {
	var i,j,v,z,zz,ss,na,dk,nm,nms,cells,nn,ta=new Array(),ok,mo,cellClass;
	var cLink,mOver,mOut;
	ta[0]="Not Applicable";
	ta[1]="Don't Know";
	ta[2]="Disagree";
	ta[3]="";
	ta[4]="";
	ta[5]="";
	ta[6]="";
	ta[7]="";
	ta[8]="Agree";
	mOut=" onmouseout=\"javascript:ShowAssistDiv(0); return false;\" ";
	
	mo="";//" onmouseover=ShowScale(1,this); onmouseout=ShowScale(0,this); ";
	
	try {
		for (i=0;i<n127.length;i++) {
			try {
				ss="";
				ok=true;
				nm=n127[i];
				na=n127_na[i];
				dk=n127_dk[i];
				nms=nm + "_span";
				try {
					z=Eval("surveyForm." + nm);
					v=z.value;
					}
				catch (e) {
					try {
						z=Eval(nm);
						v=z.value;
						}
					catch (e) {
						z=null;
						ok=false;
						}
					//Alert("ERROR(1)\nN127 id='" + nm + "'\n" + ss);
					}
				try {
					mOver="onmouseover=\"javascript:ShowAssistDiv(1); return false;\" " + mOut;
					zz=Eval(nms);
					//Alert(zz.id + "/" + nms + (z==null?"/z=NULL":"/z=" + z.id))

					cells="<tr>";
					cellClass="1";
					if (na) {
						cells += "<td id='" + nm + "_na' class=n_127_c" + cellClass + " onclick='ClickN127()' ondblclick='ClickN127(2)' title='" + ta[0] + "'" + mOver + ">N</td>";
						cellClass="n";
						}
					else {
						cells += "<td id='" + nm + "_na' class=n_127_c" + cellClass + " onclick='ClickN127()' ondblclick='ClickN127(2)' title='" + ta[0] + "'" + mOver + " style='visibility:hidden;'>N</td>";
						//cells += "<td>&nbsp;</td>";
						}
					if (dk) {
						cells += "<td id='" + nm + "_dk' class=n_127_c" + cellClass + " onclick='ClickN127()' ondblclick='ClickN127(2)' title=\"" + ta[1] + "\"" + mOver + ">D</td>";
						cellClass="n";
						}
					else {
						cells += "<td id='" + nm + "_dk' class=n_127_c" + cellClass + " onclick='ClickN127()' ondblclick='ClickN127(2)' title='" + ta[0] + "'" + mOver + " style='visibility:hidden;'>D</td>";
						//cells += "<td>&nbsp;</td>";
						cellClass="1";
						}
					for (j=1;j<=7;j++) {
						cells+="<td id='" + nm + "_" + j + "' class=n_127_c" + cellClass + " onclick='ClickN127()' ondblclick='ClickN127(2)' title='" + ta[j+1] + "'";
						cells+=mOver;
						cells+=">" + j + "</td>";
						cellClass="n";
						}
					
					//-------------------
					// comments	
					if (showComments) {
						cLink="";
						cLink="<a id='" + nm + "_cLink' " + mOver + " title='Comment' href=# onclick=\"javascript:CommentClicked('" + nm + "_cmnt'); return false;\">";
						cLink="<td id='" + nm + "_cLinkTd'>&nbsp;" + cLink + "<img id='" + nm + "_cmnt' src='images/comment0.gif' border=0></a></td>"
						//if (i<5) alert(cLink);
						cells+=cLink;
						}
					//-------------------
					
					cells+="</tr>";

					ss+="<table id='" + nm + "_t' iLink='" + nm + "' class='n_127_t' ";
					//ss+=mOver;
					ss+="cellspacing=0>";
					
					ss+=cells;
					ss+="</table>\n";
					
					
					if (ok) {
						//Alert("Span: " + zz.id + "\n" + ss);
						zz.innerHTML=ss;
						ChooseN127(nm + "_t",v);
						}
					else {
						zz.innerHTML="";
						}
					}
				catch (e) {
					Alert("ERROR(2)\nN127 id='" + nm + "'\n" + ss);
					}
				}
			catch (e) {
				Alert("ERROR(0)\nN127 id='" + nm + "'\n" + ss);
				}
			}
		}
	catch (e) {
		}
	//alert(i + " questions");
	}
function ChooseN127() {
	var z=window.event.srcElement,i,j,v,c,cz,pid,zn,qid="",qid2="",ee="";
	var z2,isAnswered=false;
	var qOk=false;
	var args=ChooseN127.arguments,opt,vv,nv,pid=args[0],zid=args[1],isPosition,ok;
	vv="";
	try {
		if (!zid.length)
			zn=-99;
		else
			zn=parseInt(zid,10);
		isPosition=(zn.toString()==zid)?1:0;

		zz=Eval(pid);
		qid="surveyForm." + GetAttr(zz,"iLink");
		// use length-1 since we added the comment cell
		for (i=0;i<zz.rows(0).cells.length-1;i++) {
			if (!i) qOk=true;	// for "showUnfinished" below
			c=zz.rows(0).cells(i);
			//alert(c.id + " ... " + z.id);
			if (isPosition) {
				ok=(i-1)==zn?1:0;
				}
			else {
				ok=c.id==zid?1:0;
				}
			if (ok && (!printVer)) {
				isAnswered=true;
				c.style.backgroundColor="blue";
				c.style.color="white";
				c.style.fontWeight="bold";
				vv=i.toString();
				}
			else {
				c.style.backgroundColor="white";
				c.style.color="black";
				c.style.fontWeight="bold";
				}
			}
		}
	catch (e) {
		Alert("ChooseN127:" + pid + "," + zid);
		}
	try {
		ee="v.1a";
		cz = Eval(qid);
		ee="v.1b";
		if (zn!=-99) {
			switch (vv) {
				case 0:
				case "0":
					nv=-1; break; // NA
				case 1: 
				case "1":
				case "?":
					nv="?"; break; // DK
				default: 
					nv=vv-1; break;
				}
			cz.value=nv;
			//if (vv<2) alert("raw=" + vv + ",value=" + cz.value + "(" + nv + ")");
			//cz.value=vv-1; // above code added to make DK="?"
			}
		else
			cz.value="";
		ee="v.2";
		//Alert("ChooseN127:" + pid + ",QID=" + qid + ", V=(" + vv + ")");
		if (!vv.length) {
			ee="v.3a";
			c=zz.rows(0).cells(0);
			c.style.fontWeight="bold";
			}
		try {
			ee="v.3b";
			if (qOk && showUnfinished>0) {
				qid2=GetAttr(zz,"iLink");
				qid2=qid2.substring(2);
				z2=Eval("qid_" + qid2);
				if (isAnswered || printVer)
					oldQClr=z2.style.backgroundColor="white";
				else
					oldQClr=z2.style.backgroundColor=unfinishedColor;
				}
			}
		catch (e) {
			//Alert(qid2 + " " + isAnswered);
			if (usr==99) Alert("EX: ChooseN127.a [" + ee + "]\r\n" + pid + " / " + qid);
			}
		}
	catch (e) {
		if (usr==99) Alert("EX: ChooseN127.z [" + ee + "]\r\n" + pid + " / " + qid);
		}
	}	
function ClickN127() {
	var z=window.event.srcElement,i,j,v,c,cz,pid;
	var args=ClickN127.arguments,opt,vv;
	vv="";

	if (z!=null) {
		pid=GetParentId(z);
		if (args.length) {
			ChooseN127(pid,"");
			}
		else {
			ChooseN127(pid,z.id);
			}
		}
	return false;
	}
function GetParentId(z) {
	var p=z.parentNode,n,i=6;
	do {
		if (p!=null) {
			if (p.id.length) return p.id;
			p=p.parentNode;
			}
		i--;
		} while (i>0 && p!=null);
	return "?";
	}
var hideScale=0;
function HideScale() {
	if (hideScale) {
		hideScale=0;
		scalen127.style.display="none";
		}
	}	
function ShowScale() {
	var z=window.event.srcElement,w,h,h2,h3,h6,y;
	var args=ShowScale.arguments,b=args.length?args[0]:1;
	if (args>1) z=args[1];
	w=window.document.body.clientWidth;
	h=window.document.body.clientHeight;
//	Alert("ShowScale: " + b + " " + z.id + " @ " + z.style.pixelTop);
	if (b) {
		h2=h/2;
		h3=h/3;
		h6=h/6;
		y=parseInt((event.clientY+(h6/3))/h6,10);
		if (y<5) y=(y+1)*h6;
		else y=(y-1)*h6;
//		if (event.clientY<(h3)) y=h2;
//		else if (event.clientY<((h*2)/3)) y=(h-h6);//80;
//		else y=h2;
		
		hideScale=0;
//		scalen127.style.pixelWidth=w/2;
		scalen127.style.pixelHeight=50;
		scalen127.style.posLeft=w/3;
		scalen127.style.posTop=window.document.body.scrollTop+y;//h-50;
		scalen127.style.display="block";
		}
	else {
		hideScale=1;
		setTimeout("HideScale()",300);
		}
	}
var sysChange=0;	
function SysChange(z,v) {
	sysChange++;
	z.value=v;
	sysChange--;
	}
var numbers="0123456789";
function IsNumber(v) {
	var i;
	for (i=0;i<v.length;i++) {
		if (numbers.indexOf(v.charAt(i))<0) return false;
		}
	return true;
	}	
function Validate(z,qid) {
	var n,v,rc=true;
	if (!sysChange) {
		v=z.value;
		if (v.length>0) {
			n=parseInt(v,10);
			if (z.value=='?') {
				alert("\"Don't Know\" may only be set via button (where applicable).");
				rc=false;
				}
			else {
				try {
					rc=CheckNumericRange(qid,v);
					//alert("RangeCheck=" + rc);
					}
				catch (e) {
					//alert("RangeCheck error: " + qid);
					if (IsNumber(v)) {
						if (n<0) {
							alert("Entry must be a positive number.");
							rc=false;
							}
						}
					else {
						alert("Entry must be a number.");
						rc=false;
						}
					}
				}
			if (!rc) {
				SysChange(z,"");
				}
			}
		}
	CheckUnfinished(qid);
	return rc;		
	}
function Expand() {
	var args=Expand.arguments;
	var tt,key,key_id,bb,t,r,c,i;
	
	key=args[1];
	key_id="qid_" + key;
	tt=args[0];
	bb=args.length>2?args[2]:-1;

	//Alert("Expand: " + tt + "," + key + "," + bb);
	try {
		t=Eval(tt);
		}
	catch (e) {
		Alert("Expand - can't find table: "  + tt);
		t=null;
		}
	if (t!=null) {
		try {
			for (i=0;i<t.rows.length;i++) {
				r=t.rows(i);
				if (r.sec==key || r.ssec==key) {
					if (r.id!=key_id) {
						if (bb<0) bb = r.style.display=="block"?0:1;
						r.style.display = bb?"block":"none";
						}
					} 
				}
			}
		catch (e) {
			Alert("Row error: " + i);
			}
		}
	return false;
	}
function Toggle(id) {
	id.style.display=id.style.display=="none"?"block":"none";
	return false;
	}	
function MyError(a,b,c) {
	alert(a + "\n" + b + "\n" +c);
	}
var qdWin=null;	
function qDetails(qid) {
	var ready,ss,ws,z,d,aa=new Array(),o="",create=0,rn;
	try {
		z=Eval("rq_" + qid);
		}
	catch (e) {	
		alert("Can't find: qid=" + qid);
		return;
		}
	try {
		ws=window.status.toLowerCase();
		if (ws.indexOf("downloading")>=0) {
			alert("Still downloading some report data.  The window may take a moment to appear.");
			}
		/*
		ready=z.readyState;
		if (ready!="complete") {
			alert("Still downloading some report data.  The window may take a moment to appear.");
			}
		*/
		}
	catch (e) {	}
	
	try {
		ss=z.innerHTML;
		if (qdWin==null) create=1;
		else {
			try {
				qdWin.SetContents(ss); 
				}
			catch(e) {
				create=1;
				}
			}
		if (create) {
			rn=parseInt(Math.random()*10000,10)
			aa[0]=window;
			aa[1]=ss;
			o+="dialogTop:0;dialogLeft:0;dialogWidth:550px;dialogHeight:400px;resizable:yes;scroll:yes;status:no;help:no;";
			qdWin=showModelessDialog("ModelessDialog.asp?junk=" + rn,aa,o);
			}
		}
	catch (e) {}
	return false;
	}
function CheckUnfinished(qid) {
	var zz,z2,v,ee="?";
	try {
		ee="get_form_field";
		zz=Eval("surveyForm.q_" + qid);
		v=zz.value.toString();
		ee="get_form_text";
		z2=Eval("qid_" + qid);
		ee="set_bg";
		if (v.length>0 || printVer)
			oldQClr=z2.style.backgroundColor="white";
		else
			oldQClr=z2.style.backgroundColor=unfinishedColor;
		}
	catch (e) {
		//alert("CheckUnfinished");//(" + qid + ") - " + ee);
		}
	}
function ShowNumericUnfinished() {
	var i,z;
	try {
		if (showUnfinished>0) {
			for (i=0;i<svQuestions.length;i++) {
				z=svQuestions[i];
				if (z.type=="NUM2") {
					CheckUnfinished(z.qid);
					}
				}
			}
		}
	catch (e) {
		alert("Error: ShowNumericUnfinished()");
		}
	}	
function OnSurveyLoad() {
	MakeN127();
	MakeResults();
	MakeCommentButtons();
	ShowNumericUnfinished();
	try {
		loading.style.display='none';
		sv_results.style.display='block';
		} catch (e) {}
	try {
		OnResultsLoaded();
		} catch (e) {}
	try {
		StartAssist();
		}
	catch (e) {
		}
	}
function ShowMe(z) {
	//alert(z.innerHTML);
	return false;
	}	
window.onerror=MyError;	

function GetQ_TR() {
	var z,zz;
	zz=z=event.srcElement;
	while (zz!=null) {
		if (zz.is_q) return zz;
		zz=zz.parentElement;
		}
	return null;
	}
function IsChildOf(childElement,parentId) {
	var z=childElement,cid;
	try {
		do {
			try { cid=z.id; } catch(e) { cid="?"; }
			if (cid==parentId) return true;
			z=z.parentElement;
			} while (z!=null);
		} catch (e) {}
	return false;
	}
function MouseOverQ() {
	var z=GetQ_TR(event.srcElement);
	if (z!=null) {
		oldQClr=z.style.backgroundColor;
//		z.style.backgroundColor="#f0f0f0";
		}
	}
function MouseOutQ() {
	var z=GetQ_TR(event.srcElement);
	if (z!=null) {
		//if (!IsChildOf(event.toElement,z.id)) 
			{
//			z.style.backgroundColor=oldQClr;
			}
		}
	}
var lastAssistY=0;
function ShowAssistDiv(b) {
	var z,oy,h,yy,y,ph;
	try {
		if (b && cbRange.checked && (!printVer)) {
			oy=document.body.scrollTop;
			//h=parseInt(event.y/10,10)*10+10;
			h=event.y;
			ph=assistPic.height;
			yy=25;
			//if (h>document.body.clientHeight-(ph+30)) yy=-(ph+30);
			y=oy+h+yy;
			/*
			if (((y-10)<=lastAssistY) && (lastAssistY<=(y+10)))
				y=lastAssistY;
			lastAssistY=y;
			*/
			//if (assistDiv.style.display!='block') 
				{
				assistDiv.style.top=y;
				assistDiv.style.left=document.body.clientWidth-assistPic.width-20;
				assistDiv.style.display='block';
				window.status="Assist: " + y;
				}
			MouseOverQ();
			}
		else if (b && (!printVer)) {
			MouseOverQ();
			}
		else {
			assistDiv.style.display='none';
			MouseOutQ();
			}
		}
	catch (e) {
		}
	}