var imgRadio = new Array();
var imgCheck = new Array();

function IsExplorer()
{
	return (window.navigator.userAgent.indexOf("MSIE") > -1);
}

function NextPage()
{
	SubmitPage(-2);
}

function RejectEvaluation()
{
	SubmitPage(-3);
}

function PrevPage()
{
	SubmitPage(-1);
}

function SubmitPage(Action)
{
	DisableButton(document.Qtnr.Save);
	DisableButton(document.Qtnr.Prev);
	DisableButton(document.Qtnr.Next);
	DisableButton(document.Qtnr.Reject);
	DisableButton(document.Qtnr.SaveTop);
	
	StopTimer();
	document.Qtnr.Action.value = Action;
	if (IsExplorer())
		document.forms(0).submit();
	else
		document.forms[0].submit();
}

function DisableButton(btn)
{
	if (btn != null) 
	{
		btn.disabled=true;
	}
}

function SkipDirectPage()
{

var SelIndex = document.Qtnr.DirectPage.selectedIndex;	
var SelValue = document.Qtnr.DirectPage.options[SelIndex].value;
	
	SubmitPage(SelValue);
}

function SaveOnly()
{
	SubmitPage(0);
}

function ChangeLanguage(lang)
{
	document.Qtnr.Lang.value = lang;
	SubmitPage(-999);
}

function SaveRedirect(RedirectTo)
{	
	//alert("surveyjs " + RedirectTo);
	document.Qtnr.ActionParam.value = RedirectTo;	
	SubmitPage(-998);
}	

function SaveRedirectCustom(RedirectTo)
{
	document.Qtnr.ActionParam.value = RedirectTo;	
	SubmitPage(-997);
}

function selectAnswer(FieldNumber, FieldValue, select)
{

	var ctl = eval('document.Qtnr.Q' + FieldNumber);

	var i;


	if (ctl != undefined)
	{
	
		if (ctl.type=='radio' || ctl.type==undefined)
		{
			for (i = 0; i < ctl.length; i++)
			{
				if (ctl[i].value == FieldValue)
					ctl[i].checked = select;
				else
					ctl[i].checked = false;
			}
		}
		else if (ctl.type=='checkbox')
		{
			//alert(2);
			ctl.checked = select;
		}
		else if (ctl.type=='text' || ctl.type=='hidden')
		{
		
			if (select)
				ctl.value = FieldValue;
			else
				ctl.value="";
		}
	}
}
	
function HandleRadio(FieldNum, FieldVal, Count)
{	
	var i;
	for (i=0; i<=Count; i++)
	{
		if (typeof(eval('document.Qtnr.R' + FieldNum + '_' + i)) != 'undefined') {
			if (i==FieldVal) // checked
				eval('document.Qtnr.R' + FieldNum + '_' + i).src = imgRadio[2].src;
			else  // unchecked
				eval('document.Qtnr.R' + FieldNum + '_' + i).src = imgRadio[0].src;
		}
	}
	eval('document.Qtnr.Q' + FieldNum).value = FieldVal;
}

function HandleCheckBox(FieldNum, FieldVal)
{
	var Checked = (eval('document.Qtnr.Q' + FieldNum).value == FieldVal);
	
	if (Checked)  // uncheck
	{
		eval('document.Qtnr.C' + FieldNum).src = imgCheck[0].src;
		eval('document.Qtnr.Q' + FieldNum).value = 0;
	}
	else // check
	{
		eval('document.Qtnr.C' + FieldNum).src=imgCheck[2].src;
		eval('document.Qtnr.Q' + FieldNum).value = FieldVal;
	}
}
	
function HandleRadio2(FieldNum, FieldVal)
{	
	var i;
	var obj = eval("document.Qtnr.R"+FieldNum);
	if (typeof(obj) != 'undefined')
	{	
		for (i=0; i<obj.length; i++)
		{
			if (obj(i).value == FieldVal)
			{
				obj(i).src=imgRadio[2].src;
			}
			else
			{
				obj(i).src=imgRadio[0].src;
			}
		}
		eval('document.Qtnr.Q' + FieldNum).value = FieldVal;
	}			
}

function HandleExclusiveChoice(FieldNumber, OptsNum, ExclusiveFldNum, OSFieldNum)
{
	var ectl = eval('document.forms[0].Q' + ExclusiveFldNum);
	var ctl;
	var i;
	
	if (ectl != undefined) {						
		for (i=0; i < OptsNum; i++) 	{					
			ctl = eval('document.forms[0].Q' + (FieldNumber+i));

			if (ctl != undefined && ctl.type=='checkbox') {
				if ((FieldNumber+i) != ExclusiveFldNum) 
				{
					ctl.checked = false;
					ctl.disabled = ectl.checked;
				} 								
			}
		}				
		if (OSFieldNum>0)
		{
			eval('document.forms[0].KEY' + OSFieldNum).disabled=ectl.checked;
		}
	}					
}		

function SizeUpTextArea(textArea, minRows) 
{
	var rows = textArea.value.split('\n');		
	var rowsCount = 1;
	// for each row
	for (var i = 0; i < rows.length; i++) 
	{			
		if (rows[i].length >= textArea.cols) 
		{
			rowsCount += Math.ceil(rows[i].length / textArea.cols);
		}
	}				
	rowsCount = Math.ceil((rowsCount + rows.length) * 1);			
	if (rowsCount > minRows) 
	{
		textArea.rows = rowsCount;
	}
}
	
					
function limitText(field, maxChars, ret)
{
var result = true;

	if (ret) 
	{
		if (field.value.length >= maxChars)
		{
			result = false;
		}
		if (window.event)
			window.event.returnValue = result;
		return result;
	}
	else
	{
		//var diff = maxChars - field.value.length;
		if (field.value.length > maxChars)
		{
			field.value = field.value.substring(0,maxChars);
		}	
	}
	
}

function TrackCount(fieldObj,countFieldName,maxChars)
{
  var countField = eval("fieldObj.form."+countFieldName);
  var diff = maxChars - fieldObj.value.length;

  // Need to check & enforce limit here also in case user pastes data
  if (diff < 0)
  {
    fieldObj.value = fieldObj.value.substring(0,maxChars);
    diff = maxChars - fieldObj.value.length;
  }
  countField.value = diff;
}


function PreloadImagesArr(Arr, imgOff, imgOver, imgOn)
{
var i;
var argLength = PreloadImagesArr.arguments.length - 1;

	for(i = 0;i < argLength; i++) 
	{
		Arr[i] = new Image();
		Arr[i].src = PreloadImagesArr.arguments[i+1];
	}
}
// This function holds all the startup
var loaded = false;
function BodyLoad()
{
	if (!loaded){
		history.go(+1);
		//RestoreScrollPosition();
		RunStartupScript();
		LoadError();		
		loaded=true;
	}
}

function NextEvaluation()
{
	try 		
	{	
		//alert("NextEvaluation " + window.top.frames.length);
		if (window.top.frames.length > 0)
		{
			var fram;
			if(IsExplorer())
				fram = window.top.frames("fraList");//.MoveToNext();
			else
				fram = window.top.frames["fraList"];//.MoveToNext();
			/*if(fram == null)
				alert("im null");
			else
				alert(fram.name);
				*/
			fram.MoveToNext();
		}	
	}
	catch(er)	{}
}

// make tablecolumns equal
function resizeTableCols(tblID, fromCol, toCol, byRow)
{
	//alert('start ' + tblID);
	theTable = document.getElementById(tblID); 
	//alert(2);
	if (byRow==undefined) byRow=0;
	theRow = theTable.firstChild.childNodes[byRow];
	if (fromCol==undefined) fromCol=0;
	if (toCol==undefined) toCol=theRow.childNodes.length-1;		
	widestColumn = 0;    
	//alert(tblID);
	for(i = fromCol;i <= toCol; i++) {   					
	//alert(4);
		if (theRow.childNodes[i].getAttribute("noResize")==null) {
			// Measure each column...       
			thisColumnWidth = theRow.childNodes[i].scrollWidth;       
			if(thisColumnWidth > widestColumn) {         
				widestColumn = thisColumnWidth;       
			}     
		}
	}     	
	//alert(widestColumn);
	for(i = fromCol;i <= toCol; i++) {       
		// Apply the widest column width to all columns       
		if (theRow.childNodes[i].getAttribute("noResize")==null) {
			theRow.childNodes[i].style.width = widestColumn + "px";   
		}  
	}   
	//alert('finish ' + tblID);
}
	
// floating box
/* Keep in the same position Script */
		var box;
		var boxTopOffset = 0;
		var boxLeftOffset = 0;
		var boxAlignRight = false;
		
		function reposeBox() 
		{
			// determine the correct left
			var oleft;
			if (boxAlignRight) 
				oleft = document.body.scrollWidth - box.style.pixelWidth - boxLeftOffset;				
			else
				oleft = boxLeftOffset ;
			// Move the content into view
			//var topOff = document.body.clientHeight - element.scrollHeight - bottomOffset;
			box.style.pixelTop = document.body.scrollTop + boxTopOffset;
			box.style.pixelLeft = oleft;
		}

		function loadBox(Box, TopOffset, LeftOffset, AlignRight) 
		{
			var rtl			
			// init parameters
			box = Box;
			boxTopOffset = TopOffset;	
			boxLeftOffset = LeftOffset		
			// determine rtl by form
			if (document.forms[0].attributes("dir").value!="")
				rtl = (document.forms[0].attributes("dir").value == "rtl");
			else
				rtl = (document.body.attributes("dir").value == "rtl");
			// determine alignment
			if (rtl)
				boxAlignRight = !AlignRight;
			else
				boxAlignRight = AlignRight;
			
			// When the page scrolls, move the content
			window.onscroll = reposeBox;
			window.onresize = reposeBox;					
			// Initialize the position	
			reposeBox();	
		}		
// animated box - smooth move
		
		// keep the same position animated move script
		var boxAni;
		var boxAniTopOffset;
		var boxAniLeftOffset;
		var boxAniAlignRight;
		var boxAniAlignBottom;

		function boxAniLeftPos()
		{
			//horizontal position
					
			if (document.body.getAttribute("dir") == "rtl") 						
						return(boxAni.style.pixelLeft = boxAniLeftOffset ) ;
					else
						return(document.body.scrollWidth - boxAni.style.pixelWidth - boxAniLeftOffset-100);				
			/*if (boxAniAlignRight) 
				return(document.body.scrollWidth - boxAni.style.pixelWidth - boxAniLeftOffset);				
			else
				return(boxAni.style.pixelLeft = boxAniLeftOffset) ;*/
		}
		
		function boxAniTopPos()
		{
			if (boxAniAlignBottom)
				return(document.body.clientHeight - boxAni.scrollHeight - boxAniTopOffset);		
			else			
				return (boxAniTopOffset);	
		}
		function reposeBoxAni() {
			// calculate the desired position
			var top;
			//horizontal position
			boxAni.style.pixelLeft = boxAniLeftPos();			
			// vertical position
			top = boxAniTopPos();
			// move according to diference			
			var Dif = parseInt((document.body.scrollTop+top-boxAni.offsetTop));
			if (Dif < -10 || Dif > 10) // large move
				boxAni.style.pixelTop+=parseInt(Dif*.1);
			else // small move
			{
				if (Dif > 0)
					boxAni.style.pixelTop+=1;
				else if (Dif < 0)
					boxAni.style.pixelTop-=1;
			}
		}

		function loadBoxAni(Box, LeftOffset, TopOffset, AlignRight, AlignBottom) 
		{
		
			var rtl;
			// init parameters
			boxAni = Box;
			
			boxAniTopOffset = TopOffset;	
			boxAniLeftOffset = LeftOffset	;
			// determine rtl by form
			if (document.forms[0].attributes("dir").value!="")
				rtl = (document.forms[0].attributes("dir").value == "rtl");
			else
				rtl = (document.body.attributes("dir").value == "rtl");
			// determine horizontal alignment
			if (rtl)
				boxAlignRight = !AlignRight;
			else
				boxAlignRight = AlignRight;
			//	determine vertical alignment
			boxAniAlignBottom = AlignBottom;		
			// put on the initial position
			boxAni.style.display="";
			window.setInterval("reposeBoxAni()",20);			
		}
		
		
		
 var backgroundset=false;   // do not change, for internal use only

  //--------------------------------------------------------------//
  // fixedBackground                                              //
  //--------------------------------------------------------------//
  // set the fixed background image. If Called for the first time //
  // it will set the necessary body styles, layers, and images to //
  // create the fixed background effect,  otherwise it will  just //
  // change the background image.                                 // 
  //                                                              //
  // Insert the following into the html to load the script        //
  //   <script src="fixedbackground.js"></script>                 //
  //                                                              //
  // 1) How to Use in body-tag (preferred):                       //
  //  <body onload="fixedBackground('background.jpg');">          //
  //                                                              //
  // 2) How to Use in link:                                       //
  //  <a href="javascript:fixedBackground('background.jpg');">    //
  //    Try this background...                                    //
  //  </a>                                                        //
  //                                                              //
  // 3) How to use in script:                                     //
  //  <script>                                                    //
  //    fixedBackground('background.jpg');                        //
  //  </script>                                                   //
  //--------------------------------------------------------------//

  function fixedBackground(url)
  {
    if(!backgroundset)
    {
      document.body.style.overflow = 'hidden';
      document.body.style.padding  = '0px';
      document.body.style.margin   = '0px';

      var overlay = document.createElement('DIV');
      overlay.style.position    = 'absolute';
      overlay.style.top         = '0px';
      overlay.style.left        = '0px';
      overlay.style.height      = '100%';
      overlay.style.width       = '100%';
      overlay.style.overflow    = 'auto';

      overlay.innerHTML         = document.body.innerHTML;
      document.body.innerHTML   = '<img id="background" height="100%"  width="100%" src="' + url + '" style="left: 0; bottom: 0; right: 0; top: 0; z-index: 0" />';

      document.body.appendChild(overlay);

      backgroundset=true;
    }
    else
      background.src=url;
  }

  //--------------------------------------------------------------//		