﻿var runningProcesses = 0;

function processStarted()
{
    runningProcesses++;
    return runningProcesses;
}

function processEnded()
{
    runningProcesses--;
}

function isAllProcessesComplete()
{
    return (runningProcesses == 0);
}

// returns the array number of the selected radio button or -1 if no button is selected
function getSelectedRadio(buttonGroup) 
{
   if (buttonGroup[0]) {
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; }
   }
   return -1;
} 

// loops through all radio buttons and checks the appropriate one
function setRadioValue(radioObj, newValue) 
{
	if(!radioObj)
	{
		return;
    }
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		
		if(radioObj[i].value == newValue.toString()) 
		{
			radioObj[i].checked = true;
		}
	}
}

// returns the value of the selected radio button or "" if no button is selected
function getSelectedRadioValue(buttonGroup) 
{
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) {
         return buttonGroup[i].value;
      } else {
         return buttonGroup.value;
      }
   }
}



function replaceAll(text, strA, strB)
{
    return text.replace( new RegExp(strA,"g"), strB );    
}

function keyExistsInArray(key, arr)
{
    return (arr[key] != undefined);
}

function setSelectedValue(controlID, value)
{
    var newVal = value.toUpperCase();
    var ctl = getElement(controlID);
    if (ctl)
    {
        for(i=0;i<ctl.length;i++)
        {
            if(ctl.options[i].value.toUpperCase()==newVal)
            {
                ctl.selectedIndex=i;
                return;
            }
        }
    }
}

// from the w3c
function getElement(aID){ 
  return ((document.getElementById) ? document.getElementById(aID)
                                    : document.all[aID]);
} 

function setInnerText(aID, text)
{
    if(document.all){
        getElement(aID).innerText = text;
    } else{
        getElement(aID).textContent = text;
    }
}

function getInnerText(aID)
{
    return ((document.all) ? getElement(aID).innerText
                           : getElement(aID).textContent);
}

function setInnerHTML(aID, html)
{
    getElement(aID).innerHTML = html;
}

function getInnerHTML(aID)
{
    return getElement(aID).innerHTML;
}

function WebEncode(strEncodedText) 
{
    var source = strEncodedText;
    source = source.replace(/\&/g,'&amp;');
    source = source.replace(/\</g,'&lt;');
    source = source.replace(/\>/g,'&gt;');
    source = source.replace(new RegExp('"','g'), '&quot;');
    
    var result = '';
	for (var i = 0; i < source.length; i++)	{		var c = source.charAt(i);		if (c < ' ' || c > '~')		{			c = '&#' + c.charCodeAt() + ';';		}		result += c;	}    
    return result;
}

function createHiddenInput(formID, inputID, value)
{
    var input = document.createElement("input");
    input.setAttribute("type", "hidden");
    input.setAttribute("name", inputID);
    input.setAttribute("id", inputID);
    input.setAttribute("value", value);
    
    getElement(formID).appendChild(input);
}
