<!--
function HighlightLink(img, regSrc, selSrc, select)
{
	var src = img.src;
	if(src == null || src == '') return;

    if(select)  { src = src.replace(regSrc, selSrc);  }
    else        { src = src.replace(selSrc, regSrc);  }
    
	img.src = src;
	
}	// ------------------------------------------------------

function ChangePWD()
{
	var pwd = document.getElementById('pwd1').value;	
    var pwdRow = GetObject('grRow');    
    var userPWD = GetObject('PWD_' + pwdRow.value); 
	
	if(pwd == null || pwd == '')
	{
		document.getElementById('errDialogMsg').innerHTML = 'Please type the password!';
	}
	else
	{
		while(pwd.indexOf(' ') != -1) { pwd = pwd.replace(' ',''); }
		
		if(pwd.length < 5)
		{
			document.getElementById('errDialogMsg').innerHTML = 'Please type at least 5 characters.';
		}

		else if(pwd != document.getElementById('pwd2').value)
		{
			document.getElementById('errDialogMsg').innerHTML = 'Please re-type the password!';
		}
		else
		{
			userPWD.value = pwd; 
			SetUpdateFlag('rowUpdFlag_' + pwdRow.value, 'gridUpdFlag');
			SwitchObjects(null,'changePwd')
			document.forms[0].submit();
		}
	}
}	// ------------------------------------------------------

function ChangeFontColor(txt)
{
   txt.style.color = '#004080';
}	// ------------------------------------------------------	

function HighlightBorder(txt, select, bgcolor)
{
    if(select) 
    {
       txt.style.border = 'solid 1px #d0d0d0';
    }  
    else  
    {
     if(bgcolor=='blue')  txt.style.border = 'solid 1px #8dbbd8';
     else                 txt.style.border = 'solid 1px #ffffff';
    }
          
}	// ------------------------------------------------------

function LoadUserAdminFormContainers(id)
{
    var userFN = GetObject('First_Name_' + id); 
    var userLN = GetObject('Last_Name_' + id); 
	var lbl = GetObject('userName'); 
	var pwdRow = GetObject('grRow');
	
	lbl.innerHTML = 'for ' + userFN.value + ' ' + userLN.value;
	pwdRow.value = id;
	
	
	// clear password controls
	var pwd1 = GetObject('pwd1');
	var pwd2 = GetObject('pwd2');
	pwd1.value='';
	pwd2.value='';
}	// ------------------------------------------------------

function UpdateStatus(src, resId, rowUpdFlag, grdUpdFlag)
{
	var res = GetObject(resId);
	if(src != null && res != null && res != '')	
	{
		res.value = src.checked ? -1 : 1;
	}

	SetUpdateFlag(rowUpdFlag, grdUpdFlag);
}

// ---------------------- STRESS TEST FUNCTIONS --------------------------------
var testWindows = null, statBoard = null;
var cmdStart = null, cmdStop = null, cmdPause = null;
var txtUrl = null, txtRefRate = null, txtWinCnt = null, ckbPreventCacheing = null;;

var refresh_interval = 0;
var win_count = 0;
var url = '';
var preventCacheing = false, questMark = false;
var running_st = 0, rounds = 0;

function StartST()
{
    if(running_st == 1 || !LoadControls()) return;
    
    // get number of test windows:
    if(ValidatePositiveInteger(txtWinCnt, statBoard)) { win_count = txtWinCnt.value; }  else return;
    
    // get refresh interval:
    if(ValidatePositiveNumber(txtRefRate, statBoard)) { refresh_interval = parseFloat(txtRefRate.value) * 1000; }  else return;

    // get url:
    if(ValidateURL(txtUrl, statBoard)) { url = txtUrl.value; }  else return;

    // start:
    running_st = 1;
    rounds = 1;
    cmdStart.value = 'Wait';
    cmdStart.disabled = true;
    cmdPause.disabled = false;
    cmdStop.disabled = false;
    
    startTime = new Date();

    if(testWindows == null)
    {
        statBoard.innerHTML = 'Starting ...';
        testWindows = new Array(win_count);
        
//        for(var i = 0; i < win_count; i++) testWindows[i] = window.open(url,'StressTest_' + i,'height=400,width=500');
        
        window.setTimeout('RefreshTestWindows()', 100);
    }
}

function RefreshTestWindows()
{
    if(running_st == 0) return;
    rounds++;
    
    var tail = preventCacheing ? ((questMark ? "&" : "?") + 'stbround=' + rounds + '&stbrwin=' ) : "";
    
    if(testWindows != null) for(var i = 0; i < win_count; i++) { testWindows[i] = window.open((tail == "" ? url : url + tail + i.toString()),'StressTest_' + i,'height=400,width=500'); }
    
    window.setTimeout('RefreshTestWindows()', refresh_interval);
    
    statBoard.innerHTML = 'Stress Test ran ' + rounds.toString() + ' times in ' + win_count.toString() + ' windows = ' + (rounds * win_count).toString() + ' times over ' + DecodeSeconds(rounds * refresh_interval / 1000);
}

function DecodeSeconds(sec)
{
    var runtime = '';    
    if(sec >= 7200) 
    {
        runtime = ((sec - sec % 3600) / 3600).toString() + ' hrs ';
        sec = sec % 3600;
    }
    else if(sec >= 3600) 
    {
        runtime = ((sec - sec % 3600) / 3600).toString() + ' hour ';
        sec = sec % 3600;
    }

    if(sec >= 60) 
    {
        runtime += ( ((sec - sec % 60) / 60).toString() + ' min ' );
        sec = sec % 60;
    }
 
    if(sec > 0) 
    {
        runtime += ( sec.toString() + ' sec' );
    }
   
    return runtime;
}

function PauseST()
{
    if(running_st == 0) return;
    window.clearTimeout();
    running_st = 0;
    
    cmdStart.value = 'Continue';
    cmdStart.disabled = false;
    cmdPause.disabled = true;
    cmdStop.value  = 'Stop and Close Windows';
    

}

function StopST()
{
    if(running_st != 0) window.clearTimeout();
    running_st = 0;
    cmdStart.value = 'Start';
    cmdStart.disabled = false;
    cmdPause.disabled = true;
    cmdStop.disabled = true;
    
    if(testWindows != null) for(var i = 0; i < win_count; i++) if(testWindows[i] != null) testWindows[i].close();
    
    testWindows = null;
    refresh_interval = 0;
    win_count = 0;
}

function LoadControls()
{
    // get start button:
    if(cmdStart == null) cmdStart = GetObject('cmdStartST');

    // get pouse button:
    if(cmdPause == null) cmdPause = GetObject('cmdPauseST');

    // get stop button:
    if(cmdStop == null) cmdStop = GetObject('cmdStopST');

    // get stat board:
    if(statBoard == null) statBoard = GetObject('stStats');
    
    // get url:
    if(txtUrl == null) txtUrl = GetObject('txtUrl');

    // get test window count:
    if(txtWinCnt == null) txtWinCnt = GetObject('txtWinCnt');
    
    // get refresh rate:
    if(txtRefRate == null) txtRefRate = GetObject('txtRefRate');
    
    // get ckbPreventCacheing:
    if(ckbPreventCacheing == null) ckbPreventCacheing = GetObject('ckbPreventCacheing');

    // validate controls:
    if(cmdStart == null)    { alert('Missing Start Button!');       return false; }
    if(statBoard == null)   { alert('Missing Stat Board');          return false; }
    if(txtUrl == null)      { alert('Missing Textbox URL');         return false; }
    if(txtWinCnt == null)   { alert('Missing Textbox Win Count');   return false; }
    if(txtRefRate == null)  { alert('Missing Textbox Refresh');     return false; }
    
    if(ckbPreventCacheing == null) { alert('Missing Checkbox Prevent Cacheing'); return false; }
    
    return true;
}

function ValidateURL(txt, msgbrd)
{
	var temp = Trim(txt.value);
	var valid = false;
	var len = temp.length;
	var ext = new Array('.asp','.aspx','.php');
	
	if(temp != '' && temp.indexOf('.') > 1 && temp.indexOf('.') < len - 2)
	{
	    // validate for "Prevent Cacheing:
	    preventCacheing = ckbPreventCacheing.checked;
	    if(preventCacheing)
	    {
	        var e = 0, ind = 0, eLen = ext.length;
	        for(; e < eLen; e++)
	        {
	            ind = temp.indexOf(ext[e]);
	            
	            if(ind == -1) continue;
	            
	            if(ind == (len - ext[e].length))
	            {
	                questMark = false;
	                valid = true;
	                break;	                
	            }
	            else if(temp.indexOf(ext[e] + '?') != -1)
	            {
	                questMark = true;
	                valid = true;
	                break;
	            }
	        }
	    }
	    else
	    {
	        valid = true;
	    }
	}
	
	//////////////////////////// valid entry: 
	if(valid)
	{
	    if(temp.indexOf('http://') != 0 && temp.indexOf('https://') != 0) temp = 'http://' + temp;	    
	    txt.value = temp;

		PaintValid(txt);
		return true;
	}
	//////////////////////////// invalid entry:
	else	
	{	
		PaintInvalid(txt);
		if(preventCacheing) msgbrd.innerHTML = '<span class="errorColor">Invalid URL. Make sure the Prevent Cacheing URL requirements are met</span>';
		else                msgbrd.innerHTML = '<span class="errorColor">Invalid URL</span>';
		return false;
	}
}

//-->

