// *****************************************************************************************
// SINGLE LIST ::: SORTING
// *****************************************************************************************
function move(f,bDir,sName, strTarget) {
  var el = f.elements[sName]
  var idx = el.selectedIndex
  if (idx==-1) 
    alert("You must first select the item to reorder.")
  else {
    var nxidx = idx+( bDir? -1 : 1)
    if (nxidx<0) nxidx=el.length-1
    if (nxidx>=el.length) nxidx=0
    var oldVal = el[idx].value
    var oldText = el[idx].text
    el[idx].value = el[nxidx].value
    el[idx].text = el[nxidx].text
    el[nxidx].value = oldVal
    el[nxidx].text = oldText
    el.selectedIndex = nxidx
  }

	// NEW SEQUENCE VALUES
	var strIDs = ""
	for (var j=0;j<el.options.length;j++) {
		strIDs += el.options[j].value + ", "
	}
	f.elements[strTarget].value = strIDs
}

// *****************************************************************************************
// DUAL LIST ::: BEGIN
// *****************************************************************************************
// Compare two options within a list by VALUES
function compareOptionValues(a, b)
{
  var sA = parseInt( a.value, 36 );
  var sB = parseInt( b.value, 36 );
  return sA - sB;
}

// Compare two options within a list by TEXT
function compareOptionText(a, b)
{
  var sA = parseInt( a.text, 36 );
  var sB = parseInt( b.text, 36 );
  return sA - sB;
}

// Dual list move function
function moveDualList( srcList, destList, moveAll )
{
  // Do nothing if nothing is selected
  if (  ( srcList.selectedIndex == -1 ) && ( moveAll == false )   )
  {
    return;
  }

  newDestList = new Array( destList.options.length );
  var len = 0;
  for( len = 0; len < destList.options.length; len++ )
  {
    if ( destList.options[ len ] != null )
    {
      newDestList[ len ] = new Option( destList.options[ len ].text, destList.options[ len ].value, destList.options[ len ].defaultSelected, destList.options[ len ].selected );
    }
  }

  for( var i = 0; i < srcList.options.length; i++ )
  {
    if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) )
    {
       // Statements to perform if option is selected
       // Incorporate into new list
       newDestList[ len ] = new Option( srcList.options[i].text, srcList.options[i].value, srcList.options[i].defaultSelected, srcList.options[i].selected );
       len++;
    }
  }

  // Sort out the new destination list
  // err prod sort [nonnumeric]
  // newDestList.sort( compareOptionValues );   // BY VALUES
  // newDestList.sort( compareOptionText );   // BY TEXT


  // Populate the destination with the items from the new array
  for ( var j = 0; j < newDestList.length; j++ )
  {
    if ( newDestList[ j ] != null )
    {
      destList.options[ j ] = newDestList[ j ];
    }
  }

  // Erase source list selected elements
  for( var i = srcList.options.length - 1; i >= 0; i-- )
  {
    if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) )

    {
       // Erase Source
       //srcList.options[i].value = "";
       //srcList.options[i].text  = "";
       srcList.options[i]       = null;
    }
  }
} 

// Dual list move function
function moveDualListResults( srcList , srcTarget) {
	var xValue;
	var newValue;
	newValue = '';
	
	if(srcList.options.length > 0) {
		for( var i = 0; i < srcList.options.length; i++ ) {
			xValue = srcList.options[i].value
			if(newValue.length > 0) {
				newValue += ','
			}
			// newValue += '\''
			newValue += xValue
			// newValue += '\''
		}
	}

	// RESET VALUE
	srcTarget.value = newValue;
}
// *****************************************************************************************
// DUAL LIST ::: END
// *****************************************************************************************


// *****************************************************
// HIDE||SHOW DETAILS [div]
// *****************************************************
function ToggleSubDisplay(id, idLimit, objTarget) 
{
	var elemDiv;
	var elemTarget;
	elemTarget = document.getElementById(objTarget)
	
	// SHOW ELEMENTS	
	for(var i=1; i<= idLimit; i++) {
		elemDiv = id + i;

		var elemA = document.getElementById(elemDiv);

		if (elemA == elemTarget) {
				if(elemA.style.visibility == 'visible') {
					elemA.style.display = 'none';
					elemA.style.visibility = 'hidden';
				} else {
					// elemA.style.display = 'block';
					elemA.style.display = 'inline';
					elemA.style.visibility = 'visible';
				}
			}
		}
}

function ToggleAll(id, idLimit) 
{
	var elemDiv;
	var elemTarget;
	
	// SHOW ELEMENTS	
	for(var i=1; i<= idLimit; i++) {
		elemDiv = id + i;

		var elemA = document.getElementById(elemDiv);

		if(elemA.style.visibility == 'visible') {
			elemA.style.display = 'none';
			elemA.style.visibility = 'hidden';
		} else {
			// elemA.style.display = 'block';
			elemA.style.display = 'inline';
			elemA.style.visibility = 'visible';
		}
	}

}

function ToggleTabDisplay(id, idLimit, objTarget, strColour, strTabOff, strTabTop, strTabBottom) {
	var elemDiv;
	var elemTarget;
	var elemURL;
	var elemTD;
	elemTarget = document.getElementById(objTarget);
	elemURL = document.getElementById('l' + objTarget);
	elemTD = document.getElementById('td' + objTarget);
	
	// SHOW ELEMENTS	
	for(var i=1; i<= idLimit; i++) {
		elemDiv = id + i;

		var elemA = document.getElementById(elemDiv);
		if (elemA.id == elemTarget.id) {
			elemA.style.display = 'inline';
elemA.style.display = 'block';
			elemA.style.visibility = 'visible';
		} else {
			elemA.style.display = 'none';
			elemA.style.visibility = 'hidden';
		}
	}

	// HANDLE LINKS
	for(var j=1; j<= idLimit; j++) {
		elemDiv = 'l' + id + j;
		var elemB = document.getElementById(elemDiv);
		if (elemB == elemURL) {
			elemB.style.color = 'black';
		} else {
			elemB.style.color = strColour;
		}

	}

	// HANDLE TD TABS
	for(var k=1; k<= idLimit; k++) {
		elemDiv = 'td' + id + k;
		var elemC = document.getElementById(elemDiv);

		if (elemC.id == elemTD.id) {
			elemC.className = strTabTop;
		} else {
			elemC.className = strTabOff;
		}
	}
	// bottom tab
	// elemDiv = 'td' + id + 6;
	elemDiv = 'td' + id + (idLimit + 1);
	var elemC = document.getElementById(elemDiv);
	elemC.className = strTabBottom;

}

// TAB TOGGLE FOR OVERVIEW
function ToggleTabDisplayOverview(id, idLimit, objTarget, strColour, strTabOff, strTabTop, strTabBottom) {
	var elemDiv;
	var elemTarget;
	var elemURL;
	var elemTD;
	elemTarget = document.getElementById(objTarget);
	elemURL = document.getElementById('l' + objTarget);
	elemTD = document.getElementById('td' + objTarget);
	
	// SHOW ELEMENTS	
	for(var i=1; i<= idLimit; i++) {
		elemDiv = id + i;

		var elemA = document.getElementById(elemDiv);
		if (elemA.id == elemTarget.id) {
			elemA.style.display = 'inline';
elemA.style.display = 'block';
			elemA.style.visibility = 'visible';
		} else {
			elemA.style.display = 'none';
			elemA.style.visibility = 'hidden';
		}
	}

idLimit = 4
if(id == 'tab5') {
	id = 'tab2';
}

if(id == 'tab6') {
	id = 'tab4';
}

	// HANDLE LINKS
	for(var j=1; j<= idLimit; j++) {
		elemDiv = 'l' + id + j;
		var elemB = document.getElementById(elemDiv);
		if (elemB == elemURL) {
			elemB.style.color = 'black';
		} else {
			elemB.style.color = strColour;
		}
	}

	// HANDLE TD TABS
	for(var k=1; k<= idLimit; k++) {
		elemDiv = 'td' + id + k;
		var elemC = document.getElementById(elemDiv);

		if (elemC.id == elemTD.id) {
			elemC.className = strTabTop;
		} else {
			elemC.className = strTabOff;
		}
	}

	// bottom tab
	elemDiv = 'td' + id + 6;
	var elemC = document.getElementById(elemDiv);
	elemC.className = strTabBottom;

}

/* ********************************************************* 
LAYER POPUP CODE
********************************************************* */
// Copyright 2006,2007 Bontrager Connection, LLC
// http://bontragerconnection.com/ and http://willmaster.com/
// Version: July 28, 2007
var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }

function AssignPosition(d) {
if(self.pageYOffset) {
	rX = self.pageXOffset;
	rY = self.pageYOffset;
	}
else if(document.documentElement && document.documentElement.scrollTop) {
	rX = document.documentElement.scrollLeft;
	rY = document.documentElement.scrollTop;
	}
else if(document.body) {
	rX = document.body.scrollLeft;
	rY = document.body.scrollTop;
	}
if(document.all) {
	cX += rX; 
	cY += rY;
	}
d.style.left = (cX+10) + "px";
d.style.top = (cY+10) + "px";
}

function HideContent(d) {
if(d.length < 1) { return; }
document.getElementById(d).style.display = "none";
}

function ShowContent(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
dd.style.display = "block";
}

function ReverseContentDisplay(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
if(dd.style.display == "none") { dd.style.display = "block"; }
else { dd.style.display = "none"; }
}


// *****************************************************
// DELETE CONFIRMATION ::: FORM
// *****************************************************
function confirmDeleteForm(strLink, objForm) {
	var msg = "Are you sure you want to delete?";
	
	if ( confirm(msg) ) {
		objForm.action = objForm.action + '&btnDeleteProfile=1';
		objForm.submit();
	} else {
		void(0);
		// document.location = strLink;
	}
}

// *****************************************************
// DELETE CONFIRMATION ::: LINK
// *****************************************************
function confirmDeleteLink(objURL) {
	var msg = "Are you sure you want to delete?";

	if ( confirm(msg) ) {
		document.location = objURL;
	}
}

// *****************************************************
// cancel CONFIRMATION ::: FORM
// *****************************************************
function confirmCancel(objURL) {
	var msg = " We're sorry to see you go.\n Are you sure you want to cancel?\n All your data will be deleted, this cannot be undone.";

	if ( confirm(msg) ) {
		document.location = objURL;
	}

}


// *****************************************************
// USED FOR CREATING MONTH/DAY/YEAR DROP DOWNS
// *****************************************************
function fncSetDate(strFormName,strParentControl) {
	var strEval;
	var strDate;
	var strMonth;
	var strDay;
	var strYear;

	var y;
	var m;
	var d;

	var strBlankDate;
	// alert(strFormName + '\n' + strParentControl);
	// strDate = "yikes!";
	// strBlankDate = document.forms[strFormName].elements[strParentControl].value;

	// DETERMINE MONTH
	strEval = strParentControl + '_month_param';
	strMonth = document.forms[strFormName].elements[strEval].value
	m = strMonth;
	// PAD ZERO
	if(strMonth.length < 2) {
		strMonth = '0' + strMonth;
	}

	// DETERMINE DAY
	strEval = strParentControl + '_day_param';
	strDay = document.forms[strFormName].elements[strEval].value
	d = strDay
	// PAD ZERO
	if(strDay.length < 2) {
		strDay = '0' + strDay;
	}

	// DETERMINE YEAR
	strEval = strParentControl + '_year_param';
	strYear = document.forms[strFormName].elements[strEval].value
	y = strYear;


if(d.length == 0 && m.length == 0) {
	d = 1;
	strDay = d;
	m = 1;
	strMonth = m;
}

            var dt = new Date(m + '/' + d + '/' + y);
            var dtCheck = m + '/' + d + '/' + y;
            var dtNew;

            y = (dt.getYear() > 1900 ? dt.getYear() : 1900 + dt.getYear());
            m = dt.getMonth() + 1;
            d = dt.getDate();


    // ALERT FOR INVALID DATE
    dtNew = m + '/' + d + '/' + y;
	// alert(strYear.length)
    if (dtCheck != dtNew) {
		if(strYear.length > 0) {

    	alert("An invalid date has been selected.");

    		d = 1;
			strDay = d;

			// RESET DAY TO FIRST
			strEval = strParentControl + '_day_param';
			document.forms[strFormName].elements[strEval].selectedIndex = 0;
		}
   	}

	// SET DATE
	strDate = strMonth + '/' + strDay + '/' + strYear

	// POPULATE PARENT FORM CONTROL ELEMENT
	document.forms[strFormName].elements[strParentControl].value = strDate;
}

// *****************************************************
// SET TIME PARAMETER
// *****************************************************
function fncSetTime(strFormName,strParentControl) {
	var strEval;
	var strTime;
	var strHour;
	var strMinute;
	var strAMPM;

	// DETERMINE MONTH
	strEval = strParentControl + '_hour_param';
	strHour = document.forms[strFormName].elements[strEval].value;

	// DETERMINE DAY
	strEval = strParentControl + '_minute_param';
	strMinute = document.forms[strFormName].elements[strEval].value;

	// DETERMINE DAY
	strEval = strParentControl + '_AMPM_param';
	strAMPM = document.forms[strFormName].elements[strEval].value;

	// VALIDATE FOR AM/PM TIME
	if (strHour == '00' && strAMPM == 'PM') {
		strHour = '12';
//		alert(strHour + ':' + strMinute + ':00' + ' ' + strAMPM);
	}

	// SET TIME
	strTime = strHour + ':' + strMinute + ':00' + ' ' + strAMPM;

	// POPULATE PARENT FORM CONTROL ELEMENT
	document.forms[strFormName].elements[strParentControl].value = strTime;
}


// *****************************************************
// SET TIME PARAMETER
// *****************************************************
function ToggleArrow(strImageName) {
	var objImage;
	var strNewImage;
	var strCurrentImage;
	
	objImage = document[strImageName]
	strCurrentImage = objImage.src;

	if(strCurrentImage.indexOf('downarrow.gif') > 0) {
		strNewImage = strCurrentImage.replace('downarrow','uparrow');
		objImage.src = strNewImage;
	} else {
		if(strCurrentImage.indexOf('uparrow.gif') > 0) {
			strNewImage = strCurrentImage.replace('uparrow','downarrow');
			objImage.src = strNewImage;
		}
	}

}

// *****************************************************
// GRAPH HELP
// *****************************************************
function fncGraphHelp() {
	var strMessage;
	strMessage ='';
	strMessage += 'You can select which graphs you want to view. Just check/uncheck and click \"update graph.\"';
	strMessage += '\n\nAverage: This shows your raw scores over time (or the average raw scores for admin users).';
	strMessage += '\n\nNet: This shows the net change over time. Your first survey is the "baseline" and the numbers show the changes in your survey compared to your baseline.';
	strMessage += '\n\nRemember to click "update graph" after any changes.';

	alert(strMessage);
}

//-->


