﻿var runningProcesses = 0;
var ChangesMade = false;

function IMadeChanges()
{
    ChangesMade = true;
    var sb = getElement('submitBtn')
    if (sb)
    {
        if (sb.className == 'nkButtonLarge_disabled' || sb.className == 'nkButtonLarge')
            sb.className = "nkButtonLarge";
        else
            sb.className = "nkButton";
        sb.disabled = false;
    }

    var sb = getElement('submitBtn_top')
    if (sb)
    {
        if (sb.className == 'nkButtonLarge_disabled' || sb.className == 'nkButtonLarge')
            sb.className = "nkButtonLarge";
        else
            sb.className = "nkButton";
        sb.disabled = false;
    }
}

function gotoURL(url)
{
    if (ChangesMade) 
    {
        displayConfirmCancelChanges(url);
    } 
    else
    {
        window.location = url;
    }
}
function processStarted()
{
    runningProcesses++;
    return runningProcesses;
}

function processEnded()
{
    runningProcesses--;
}

function isAllProcessesComplete()
{
    return (runningProcesses == 0);
}

function isLeapYear(yr) 
{
  return new Date(yr,2-1,29).getDate()==29;
}

function daysInMonth(iMonth, iYear) 
{     
    return 32 - new Date(iYear, iMonth-1, 32).getDate(); 
}

// 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) 
{
    if (strEncodedText == undefined) {return '';}
/*
    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;
*/

    var div = document.createElement('div');
    var text = document.createTextNode(strEncodedText);
    div.appendChild(text);
    var source = div.innerHTML;
    source = source.replace(new RegExp('"','g'), '&quot;');
    return source
}

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);
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function deleteItem(description, itemID)
{
    if (confirm('Are you sure you\'d like to permanently remove this ' + description + ' from the database?\r\n\r\nThis action cannot be undone.'))
    {
        getElement('action').value = 'delete';
        getElement('itemID').value = itemID;
        getElement('thisForm').submit();
    }
}

function archiveItem(description, itemID)
{
    if (confirm('Are you sure you\'d like to archive this ' + description + '?\r\n\r\nAll records in the database will be retained and will be available in archived referrals.'))
    {
        getElement('action').value = 'archive';
        getElement('itemID').value = itemID;
        getElement('thisForm').submit();
    }
}

function expireItem(description, itemID)
{
    if (confirm('Are you sure you\'d like to disable this ' + description + '?\r\n\r\nAll records in the database will be retained, but will not show as active on the website or reports.'))
    {
        getElement('action').value = 'expire';
        getElement('itemID').value = itemID;
        getElement('thisForm').submit();
    }
}

function unexpireItem(description, itemID)
{
    if (confirm('Are you sure you\'d like to enable this ' + description + '?\r\n\r\nAll records in the database will be marked as active and will show on the website and reports as such.'))
    {
        getElement('action').value = 'unexpire';
        getElement('itemID').value = itemID;
        getElement('thisForm').submit();
    }
}


function exportItem(description, itemID)
{
    getElement('action').value = 'export';
    getElement('itemID').value = itemID;
    getElement('thisForm').submit();
}

function editItem(pageURL, previousPage)
{
    if (pageURL.indexOf('?') == -1)
        window.location = pageURL + '?pp=' + encodeURIComponent(previousPage);
    else
        window.location = pageURL + '&pp=' + encodeURIComponent(previousPage);
}

function printItem(pageURL, previousPage)
{
    if (pageURL.indexOf('?') == -1)
        window.location = pageURL + '?action=print&pp=' + encodeURIComponent(previousPage);
    else
        window.open(pageURL + '&action=print&pp=' + encodeURIComponent(previousPage),'','status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=0,scrollbars=no,height=140,width=250');
}

function showNextPage()
{
    var frm = getElement('thisForm');
    var pn = getElement('pn');
    
    pn.value = parseInt(pn.value) + 1;
    
    frm.method = 'get';
    frm.submit();
}

function showPreviousPage()
{
    var frm = getElement('thisForm');
    var pn = getElement('pn');
    
    pn.value = parseInt(pn.value) - 1;
    
    frm.method = 'get';
    frm.submit();
}

function disableForm(formID)
{
    var elems = getElement(formID).elements;
    for (var i=0;i<elems.length;i++)
    {
        try
        {
            var e = elems[i];
                       
            if (e.id.substr(0,1) != '_')
            {
                e.disabled = true;
            }
        }
        catch (e) 
        {
            // do nothing
        }
    }
}

function enableForm(formID)
{
    var elems = getElement(formID).elements;
    for (var i=0;i<elems.length;i++)
    {
        try
        {
            var e = elems[i];
            e.disabled = false;
        }
        catch (e) 
        {
            // do nothing
        }
    }
}

function printPage()
{
    window.location = 'editReferral.asp?action=printi&id=' + getElement('id').value + '&pp=' + getElement('pp').value;
    //getElement('thisForm').submit();
}