// MCH: functions for emulating maxlength functionality for textarea
// ---
function checkMaxLength(textarea, evt, maxLength)
{
  if (textarea.selected && evt.shiftKey)
    return true;
  var allowKey = false;
  if (textarea.selected && textarea.selectedLength > 0)
    allowKey = true;
  else
  {
    var keyCode = 
      document.layers ? evt.which : evt.keyCode;
    if (keyCode < 32 && keyCode != 13)
      allowKey = true;
    else           
      allowKey = textarea.value.length < maxLength;
  }
  textarea.selected = false;
  return allowKey;
}

function storeSelection(field)
{
  if (document.all)
  {
    field.selected = true;
    field.selectedLength = field.createTextRange ? document.selection.createRange().text.length : 1;
  }
}
// ---

function openEmailToFriend(siteRoot, contentTypeID, url)
{
	window.open(siteRoot + '/EmailToFriend.aspx?ContentTypeID=' + contentTypeID + '&Url=' + url, 'EmailToFriend', 'width=550,height=550,scrollbars=1,status=1,menubar=0,resizable=0,modal=1');
}

function openReportConcern(siteRoot, itemType, itemID)
{
	window.open(siteRoot + '/ReportConcern.aspx?ItemType=' + itemType + '&ItemID=' + itemID, 'ReportConcern', 'width=550,height=500,scrollbars=1,status=1,menubar=0,resizable=0,modal=1');
}

function showCharsLeft(maxChars, inputElement, displayElement, charsLeftText)
{
    var charsLeft = maxChars - inputElement.value.length;
    displayElement.innerText = charsLeft + " " + charsLeftText + ".";
}

function checkAllCheckBoxes()
{
    // MCH: checks all checkboxes on form, for RegEx comparison on element name...
    // var regEx = new RegExp(':' + aspnetCheckBoxID + '$');
    // if (regEx.test(element.name)) { element.checked = true}
    for (var i = 0; i < document.forms[0].elements.length; i++)
    {
        var element = document.forms[0].elements[i];
        if (element.type == 'checkbox')
            element.checked = true;
    }
}

function clearAllCheckBoxes()
{
    for (var i = 0; i < document.forms[0].elements.length; i++)
    {
        var element = document.forms[0].elements[i];
        if (element.type == 'checkbox')
            element.checked = false;
    }
}

function displayImage(filePath, imageName)
{
    if (document.images)
        document.images[imageName].src = filePath;
}

var EXPAND_IMAGE_FILE = "/images/plus.gif";
var COLLAPSE_IMAGE_FILE = "/images/minus.gif";

function expandCollapse(siteRoot, imageName, elementId, visibilityStateId)
{    
    if (document.getElementById)
    {
        if (document.getElementById(elementId).style.display == "none")
        {
            // expand
            document.getElementById(elementId).style.display = "block";
            displayImage(siteRoot + COLLAPSE_IMAGE_FILE, imageName);
            document.getElementById(visibilityStateId).value = "1";
        }
        else
        {
            // collapse
            document.getElementById(elementId).style.display = "none";
            displayImage(siteRoot + EXPAND_IMAGE_FILE, imageName);
            document.getElementById(visibilityStateId).value = "0";
        }
    } 
    else
    {
        if (document.layers)
        {
            if (document.elementId.display == "none")
            {
                // expand
                document.elementId.display = "block";
                displayImage(siteRoot + COLLAPSE_IMAGE_FILE, imageName);
               document.visibilityStateId.value = "1";
            }
            else
            {
                // collapse
                document.elementId.display = "none";
                displayImage(siteRoot + EXPAND_IMAGE_FILE, imageName);
                document.visibilityStateId.value = "0";
            }
        }
        else
        {
            if (document.all.elementId.style.visibility == "none")
            {
                // expand
                document.all.elementId.style.display = "block";
                displayImage(siteRoot + COLLAPSE_IMAGE_FILE, imageName);
               document.all.visibilityStateId.value = "1"; 
            }
            else
            {
                // collapse
                document.all.elementId.style.display = "none";
                displayImage(siteRoot + EXPAND_IMAGE_FILE, imageName);
                document.all.visibilityStateId.value = "0";
            }
        } 
    } 
}

function displayElement(elementId, displayType)
{
    if (document.getElementById)
    {
        document.getElementById(elementId).style.display = displayType;
    } 
    else
    {
        if (document.layers)
        {
            document.elementId.display = displayType;
        }
        else
        {
            document.all.elementId.style.display = displayType;
        } 
    }
}