var defaultEmptyOK = false
var whitespace = " \t\n\r";
var decimalPointDelimiter = "."

var isNetscape = false;
var isIE = false;
var isWhoKnows = false;
	
//This determines which browser the user is using
if (parseInt(navigator.appVersion) >= 4) 
{
  if(navigator.appName == "Netscape") 
  {
    isNetscape = true;
  }
  else if (navigator.appName == "Microsoft Internet Explorer")
  {
    isIE = true;
  }
  else 
  {
    isWhoKnows = true;
  }
}


//e.g. AddNameValueToQueryString("a", "s", "a=1&b=2&c=3") returns "a=s&b=2&c=3" 
//e.g. AddNameValueToQueryString("a", "s", "b=2&c=3") returns "b=2&c=3&a=s" 
function AddNameValueToQueryString(name, value, str)
{
  var pos, str_left, str_right;
  
  regexp = new RegExp('(^|&)' + name + '=[^&]*', 'g');
  pos = str.search(regexp);
    
  if(pos != -1)
  {
    str_left = str.substr(0, pos + 1);
    
    if(str_left.substr(str_left.length - 1 == "&"))
      str_left = str.substr(0, str_left.length - 1);
      
    str_right = str.substr(pos + 1 + RegExp["$&"].length);
    
    str = AddToQueryString('', str_left);
    str = AddToQueryString(str, str_right);
    str = AddToQueryString(str, name + '=' + value);
  }
  else
    str = AddToQueryString(str, name + '=' + value);

    
  return str;
}



function AddToQueryString(query_string, str)
{
  if(query_string.length > 0)
  {
    if(str.length > 0)
      query_string += '&' + str;
  }
  else
    query_string += str;
    
  return query_string;
}


function ChangeStatus(status_name)
{
  document.getElementById("status_name").innerHTML = status_name;
}


function CloseChildWindow(anchor)
{
  window.opener.document.edit.submit_action.value = "refresh"
  window.opener.document.edit.submit();
  window.opener.ScrollToAnchor(anchor);
}


function CloseImageGallery()
{
  window.opener.document.edit.submit_action.value = 'refresh';
  window.opener.document.edit.submit();
  self.close();
}


function CloseMoveContent(anchor)
{
  window.opener.document.edit.submit_action.value = "refresh";
  window.opener.document.edit.submit();
  self.close();
  window.opener.ScrollToAnchor(anchor);
}


function DaysInMonth(month, year)
{
  var date, i;

  date = new Date(year, month - 1, 28);
  i = 28;
  
  while(date.getDate() == i)
  {
    i++;
    date.setDate(i);
  }

  return i - 1;
}


function DeletePageAndMenu1(form, status_action, status_required)
{
  var message;
  
  if(status_required)
    message = 'Are you sure you want to move the page to the recycle bin?\n\nNote: Deleted pages can be restored to the menu from the recycle bin.';
  else
    message = 'Are you sure you want to delete the page?';
    
  if(confirm(message))
  {
    form.action = 'menu.asp?tree=DelPageAndMenu';
    form.status_action.value = status_action;
    form.submit();
  }
}


function ElementComplete(element, print_error)
{
  var complete;

  complete = true;
  
  
  switch(element.element_type)
  {
  
    case 'checkbox': complete = ElementCompleteCheckbox(element, print_error, element.mandatory); break
    case 'checkboxcontent': complete = ElementCompleteCheckbox(element, print_error, element.mandatory); break
    case 'content':  complete = ElementCompleteSelect(element, print_error, element.mandatory); break
    case 'country':  complete = ElementCompleteSelect(element, print_error, element.mandatory); break
    case 'custom':   complete = true; break
    case 'date':     complete = ElementCompleteDate(element, print_error, element.mandatory); break;
    case 'digit':    complete = ElementCompleteDigit(element, print_error, element.mandatory); break
    case 'email':    complete = ElementCompleteEmail(element, print_error, element.mandatory); break
    case 'file':     complete = ElementCompleteFile(element, print_error, element.mandatory); break
    case 'float':    complete = ElementCompleteFloat(element, print_error, element.mandatory); break
    case 'htmlarea': complete = ElementCompleteHTMLArea(element, print_error, element.mandatory); break
    case 'image':    complete = ElementCompleteFile(element, print_error, element.mandatory); break
    case 'imperial': break;
    case 'integer':  complete = ElementCompleteInteger(element, print_error, element.mandatory); break
    case 'order':    complete = ElementCompleteOrder(element, print_error, element.mandatory); break
    
    case 'page_hider': complete = ElementCompletePageHider(element, print_error, element.mandatory); break
    case 'parent':   
    case 'phone':    complete = ElementCompletePhone(element, print_error, element.mandatory); break
    case 'radio':    complete = ElementCompleteRadio(element, print_error, element.mandatory); break
    case 'select':   complete = ElementCompleteSelect(element, print_error, element.mandatory); break
    case 'state':    complete = ElementCompleteSelect(element, print_error, element.mandatory); break
    case 'text':     complete = ElementCompleteText(element, print_error, element.mandatory); break
    case 'textarea': complete = ElementCompleteTextArea(element, print_error, element.mandatory); break
    case 'url':      complete = ElementCompleteText(element, print_error, element.mandatory); break

    default:
      alert('Error ElementComplete ' + element.element_type + ' ' + element.name);
      complete = false;
  }
  
  return complete;
}


function ElementCompleteCheckbox(element, print_error, mandatory)
{
  var checkbox, complete, i;
  
  complete = true;
  checkbox = element.checkbox;
  
  if(mandatory)
  {
    complete = false;
    
    if(element.checkbox.length)
    {
      for(i = 0; i < checkbox.length; i++)
      {
        if(checkbox[i].checked == true)
        {
          complete = true;
          break;
        }
      }
    }
    else
    //if there is only one checkbox it will not have an array
    {
      if(checkbox.checked)
        complete = true;
    }
    
    if(!complete && print_error)
    {
      alert('You must enter a value for the \'' + RemoveFormatting(element.element_name) + '\'!');
      complete = false;
    } 
  }
  
  return complete;
}


function ElementCompleteDate(element, print_error, mandatory)
{
  var complete, day, month, name, year;
  
  name = element.name;
  
  day = document.getElementById(name + '_day');
  month = document.getElementById(name + '_month');
  year = document.getElementById(name + '_year');
  
  if(mandatory && (day.selectedIndex == 0 || month.selectedIndex == 0 || year.selectedIndex == 0))
    complete = false;
  else
    complete = true;
  
  if(!complete && print_error)
  {
    if(day.selectedIndex == 0)
      day.focus();
    
    else if(month.selectedIndex == 0)
      month.focus();
    
    else if(year.selectedIndex == 0)
      year.focus();
    
    alert('You must enter a value for the \'' + RemoveFormatting(element.element_name) + '\'!');
    complete = false;
  } 
  
  return complete;
}


function ElementCompleteDigit(digit, print_error, mandatory)
{
  var complete;

  complete = true;
  
  
  if(mandatory && digit.value.length == 0)
  {
    if(print_error)
    {
      digit.focus();
      alert('You must enter a value for the \'' + RemoveFormatting(digit.element_name) + '\'!');
    }

    complete = false;
  }
  else if(digit.value.search(/[^\+\d\s]/) != -1)
  {
    digit.focus();
    alert('You must enter only digits or spaces for the \'' + RemoveFormatting(digit.element_name) + '\'!');
    complete = false;
  }
  
  
  return complete;
}


function ElementCompleteOrder(element, print_error, mandatory)
{
  var complete;
  
  complete = true;
  
  if(element.type == 'text')
    complete = ElementCompleteInteger(element, print_error, mandatory);
    
  return complete;
}


function ElementCompletePhone(digit, print_error, mandatory)
{
  var complete, d1, d2;
  
  complete = true;
  
  if(digit.prefixes >= 1)
  {
    d1 = document.getElementById(digit.name + '_1');
    d1.element_name = "First prefix";
    complete = ElementCompleteDigit(d1, print_error, mandatory);
  }
    
  if(complete && digit.prefixes >= 2)
    complete = ElementCompleteDigit(document.getElementById(digit.name + '_2'), print_error, mandatory);

  if(complete)
    complete = ElementCompleteDigit(digit, print_error, mandatory);
  
  return complete;
}


function ElementCompleteEmail(email, print_error, mandatory)
{
  var complete;
  
  
  if(mandatory && !isEmail(email.value))
  {
    if(print_error)
    {
      email.focus();
      alert('You must enter a valid email address for the \'' + RemoveFormatting(email.element_name) + '\'!');
    }

    complete = false;
  }
  
  else if(!mandatory && email.value.length > 0 && !isEmail(email.value))
  {
    if(print_error)
    {
      email.focus();
      alert('You must enter a valid email address for the \'' + RemoveFormatting(email.element_name) + '\'!');
    }

    complete = false;
  }
  
  else
    complete = true;
  
  return complete;
}


function ElementCompleteFile(file, print_error, mandatory)
{
  var complete;
  
  if(mandatory)
    complete = ElementCompleteFileMandatory(file, print_error);
  else
    complete = ElementCompleteFileNotMandatory(file, print_error);
  
  return complete;
}



function ElementCompleteFileMandatory(file, print_error)
{
  var complete, file_type, pos, types;
  
  complete = true;
  
  
  if(file.value.length == 0)
  {
    if(!file.has_value)
    {
      complete = false;

      if(print_error)
      {
        file.focus();
        alert('You must enter a value for the \'' + RemoveFormatting(file.element_name) + '\'!');
      }
    }
  }
  else
  {
    file_type = FileType(file.value)
    complete = ElementCompleteFileType(file, file_type);
     
    if(!complete)
    {
      file.focus();
      types = ValidFileTypes(file);
      
      if(print_error)
        alert('You must enter a file type of: ' + types + '!');
    }
  }

  return complete;
}


function ElementCompleteFileNotMandatory(file, print_error)
{
  var complete;
  
  complete = true;
  
  if(file.value != null)
  {  
    if(file.value.length != 0)
    {
      file_type = FileType(file.value)
      complete = ElementCompleteFileType(file, file_type);
       
      if(!complete)
      {
        file.focus();
        types = ValidFileTypes(file);
        
        if(print_error)
          alert('You must enter a file type of: ' + types + '!');
      }
    }
  }
    
  return complete;
}


function ElementCompleteFileType(file, type)
{
  var valid;
  
  valid = false;
  
  if(file.file_types.length == 0)
    valid = true;
  else
  {
    for(i = 0; i < file.file_types.length; i++)
    {
      if(file.file_types[i].toLowerCase() == type.toLowerCase())
      {
        valid = true;
        break;
      }
    }
  }
  
  return valid;
}


function ElementCompleteFloat(element, print_error, mandatory)
{
  var complete;
  
  if(isFloat(element.value))
    complete = true;
  else
  {
    complete = false;
  
    if(print_error)
    {
      element.focus();
      alert('You must enter a number for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }
  }
  
  return complete;
}

function ElementCompleteHTMLArea(element, print_error, mandatory)
{
  var complete, is_TinyMCE;
  
  is_TinyMCE = document.getElementById(element.name).is_TinyMCE;
  
  if(is_TinyMCE)
    complete = ElementCompleteHTMLArea_tinyMCE(element, print_error, mandatory);
  else
    complete = ElementCompleteHTMLArea_IE(element, print_error, mandatory);
    
  return complete;
}


function ElementCompleteHTMLArea_tinyMCE(element, print_error, mandatory)
{
  var complete, dom_element, value;
  
  value = tinyMCE.getInstanceById(element.id).getBody().innerHTML;

  if(mandatory && value.length == 0)
  {
    if(print_error)
    {
      alert('You must enter a value for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }

    complete = false;
  }
  else if(value.length > element.length)
  {
    if(print_error)
    {
      alert('You can only enter ' + element.length + ' characters for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }

    complete = false;
  
  }
  else
    complete = true;
    
  
  return complete;
}


function ElementCompleteHTMLArea_IE(element, print_error, mandatory)
{
  var complete;
  
  //transfer the MSHTML elements HTML to the hidden variable
  element.value = document.all[element.name + '_htmlarea'].innerHTML;


  if(mandatory && element.value.length == 0)
  {
    if(print_error)
    {
      alert('You must enter a value for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }

    complete = false;
  }
  else if(element.value.length > element.length)
  {
    if(print_error)
    {
      alert('You can only enter ' + element.length + ' characters for the \'' + RemoveFormatting(element.element_name) + '\'!\nCurrently there are ' + element.value.length + ' characters.');
    }

    complete = false;
  
  }
  else
    complete = true;
    
  if(!complete)
    document.all[element.name + '_htmlarea'].focus();
  
  return complete;
}


function ElementCompleteInteger(element, print_error, mandatory)
{
  var complete;
  
  if(isInteger(element.value))
    complete = true;
  else
  {
    complete = false;
  
    if(print_error)
    {
      element.focus();
      alert('You must enter a whole number for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }
  }
  
  return complete;
}


function ElementCompletePageHider(element, print_error, mandatory)
{
  var complete, i, radio;
  
  radio = element.radio;

  if(mandatory)
  {
    complete = false;
      
    for(i = 0; i < radio.length; i++)
    {
      if(radio[i].checked == true)
      {
        complete = true;
        break;
      }
    }
    
    if(!complete && print_error)
    {
      radio[0].focus();
      alert('You must enter a value for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }
  }
  else   
    complete = true;
  
  return complete;
}


function ElementCompleteRadio(element, print_error, mandatory)
{
  var complete, i, radio;
  
  radio = element.radio;

  if(mandatory)
  {
    complete = false;
      
    for(i = 0; i < radio.length; i++)
    {
      if(radio[i].checked == true)
      {
        complete = true;
        break;
      }
    }
    
    if(!complete && print_error)
    {
      radio[0].focus();
      alert('You must enter a value for the \'' + RemoveFormatting(element.element_name) + '\'!');
    }
  }
  else   
    complete = true;
  
  return complete;
}


function ElementCompleteSelect(select, print_error, mandatory)
{
  var complete;
  
  complete = true;
  
  if(select.options.length > 1)
  {
    if(mandatory && select.selectedIndex == 0)
    {
      if(print_error)
      {
        select.focus();
        alert('You must enter a value for the \'' + RemoveFormatting(select.element_name) + '\'!');
      }

      complete = false;
    }
  }
  
  return complete;
}


function ElementCompleteText(text, print_error, mandatory)
{
  var complete;

  if(mandatory && text.value.length == 0)
  {
    if(print_error)
    {
      text.focus();
      alert('You must enter a value for the \'' + RemoveFormatting(text.element_name) + '\'!');
    }

    complete = false;
  }
  else
    complete = true;
  
  return complete;
}


function ElementCompleteTextArea(textarea, print_error, mandatory)
{
  var complete;

  if(mandatory && textarea.value.length == 0)
  {
    if(print_error)
    {
      textarea.focus();
      alert('You must enter a value for the \'' + RemoveFormatting(textarea.element_name) + '\'!');
    }

    complete = false;
  }
  else if(textarea.value.length > textarea.length)
  {
    if(print_error)
    {
      textarea.focus();
      alert('You can only enter ' + textarea.length + ' characters for the \'' + RemoveFormatting(textarea.element_name) + '\'!\nCurrently there are ' + textarea.value.length + ' characters.');
    }

    complete = false;
  
  }
  else
    complete = true;
  
  return complete;
}


function FileType(filename)
{
  var pattern = /\./g;
  var pos, result, type;
  
  pos = -1;
  
  while((result = pattern.exec(filename)) != null)
  {
    pos = result.index;
  }
  
  if(pos != -1)
    type = filename.substr(pos + 1);
  else
    type = "";
    
  return type;
}


function InArray(str, arr)
{
  var in_array;
  
  in_array = false;

  for(var i = 0; i < arr.length; i++)
  {
    if(arr[i] == str)
    {
      in_array = true;
      break;
    }
  }
  
  return in_array;
}


function isDigit (c)
{   
  return ((c >= "0") && (c <= "9"))
}


function isEmail (s)
{   
  if (isEmpty(s)) 
    if (isEmail.arguments.length == 1) return defaultEmptyOK;
    else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return false;
    
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { 
      i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}


function isEmpty(s)
{   
  return ((s == null) || (s.length == 0))
}


function isFloat (s)
{   
  var i;
  var seenDecimalPoint = false;

  if (isEmpty(s)) 
     if (isFloat.arguments.length == 1) return defaultEmptyOK;
     else return (isFloat.arguments[1] == true);

  if (s == decimalPointDelimiter) 
    return false;

  // Search through string's characters one by one
  // until we find a non-numeric character.
  // When we do, return false; if we don't, return true.

  for (i = 0; i < s.length; i++)
  {   
    // Check that current character is number.
    var c = s.charAt(i);

    if ((c == decimalPointDelimiter) && !seenDecimalPoint) 
      seenDecimalPoint = true;
    else if(i == 0 && c == '-')
      ;
    else if (!isDigit(c)) 
      return false;
  }

  // All characters are numbers.
  return true;
}


function isInteger (s)
{   
  var i;

  if (isEmpty(s)) 
     if (isInteger.arguments.length == 1) return defaultEmptyOK;
     else return (isInteger.arguments[1] == true);

  // Search through string's characters one by one
  // until we find a non-numeric character.
  // When we do, return false; if we don't, return true.

  for (i = 0; i < s.length; i++)
  {   
    // Check that current character is number.
    var c = s.charAt(i);

    if (!isDigit(c)) return false;
  }

  // All characters are numbers.
    return true;
}


function isWhitespace (s)
{   
  var i;

  // Is s empty?
  if (isEmpty(s)) return true;

  // Search through string's characters one by one
  // until we find a non-whitespace character.
  // When we do, return false; if we don't, return true.

  for (i = 0; i < s.length; i++)
  {   
      // Check that current character isn't whitespace.
      var c = s.charAt(i);

      if (whitespace.indexOf(c) == -1) return false;
  }

  // All characters are whitespace.
  return true;
}


function MessageLength(form)
{
  var length, text;
  
  if(isNetscape)
  {
    if(tinyMCE.getInstanceById('email_message'))
    {
      text = tinyMCE.getInstanceById('email_message').getBody().innerHTML;
      text = text.replace(/<br>/gi, '');
      length = text.length;
    }
  }
  else if(form.email_message)
  {
    length = form.email_message.value.length;
  }

  return length;
}


function OnAddFile(form, IDDefinitionContent, IDDataContent, column)
{
  var left, top1, height, width;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_file.asp?IDDefinitionContent=' + IDDefinitionContent + '&IDDataContent=' + IDDataContent + '&column=' + column, 'new', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnAddImage(form, IDDefinitionContent, IDDataContent, column, IDDataContent_parent)
{
  var left, top1, height, width;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_image.asp?IDDefinitionContent=' + IDDefinitionContent + '&IDDataContent=' + IDDataContent + '&column=' + column + '&IDDataContent_parent=' + IDDataContent_parent, 'new', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnAddImageGallery(form, IDDataContent, IDDefinitionContent, column)
{
  var left, top1, height, width;
  
  width = 650;
  height = 400;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_gallery_image.asp?user_type=' + form.user_type.value + '&IDDefinitionContent=' + IDDefinitionContent + '&IDDataContent=' + IDDataContent + '&column=' + column + '&IDDataContent_user=' + form.IDDataContent_user.value, 'new', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnApprove(form, status_action)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(submit)
  {
    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.submit_action.value = 'approve';
    form.submit();
  }  
}


function OnChangeAssociations(IDDataContent, IDDefinitionContent, element_no)
{
  var left, top1;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('change_associations.asp?element_no=' + element_no + '&IDDataContent=' + IDDataContent + '&IDDefinitionContent=' + IDDefinitionContent, 'add_existing', 'width=750,height=500,alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnChangeDependency(form)
{
  form.submit_action.value = "edit";
  form.submit();
}


function OnChangeOrder(IDDataContent, IDDefinitionContent, column)
{
  var width, left, top1;
  
  width = 300;
  height = 100;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('move.asp?IDDataContent=' + IDDataContent + '&IDDefinitionContent=' + IDDefinitionContent + '&column=' + column, 'move', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnChangeOrderQuery(select, name)
{
  var div_ref = document.all(name);

  if(select.selectedIndex > 0)
    div_ref.style.visibility = "visible";
  else
    div_ref.style.visibility = "hidden";
}


function OnChildEdit(form, IDDefinitionContent, IDDataContent, IDDataContentSelector, user_type, IDDataContent_user)
{
  var left, top1, height, width;
  
  width = 0.85*screen.width;
  height = 0.85*screen.height;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_child.asp?IDDefinitionContent=' + IDDefinitionContent + '&IDDataContent=' + IDDataContent + '&IDDataContentSelector=' + IDDataContentSelector + '&user_type=' + user_type + '&IDDataContent_user=' + IDDataContent_user, 'edit', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnChildNew(form, IDDefinitionContent, IDDataContentSelector, user_type, IDDataContent_user)
{
  var left, top1, height, width;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_child.asp?IDDefinitionContent=' + IDDefinitionContent + '&IDDataContentSelector=' + IDDataContentSelector + '&user_type=' + user_type + '&IDDataContent_user=' + IDDataContent_user, 'new', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnClearSearch(form)
{
  form.action = "menu.asp";
  form.misc.value = "clear";//for "clear"
  form.start.value = 1;
  form.submit();
}


function OnClickCover(form, IDDefinitionContent)
{
  form.action = 'menu.asp';
  form.IDDefinitionContent.value = IDDefinitionContent;
  form.start.value = 1;
  form.submit_action.value = 'menu';
  form.search_type.value='';
  form.submit();
}


function OnClickEditCheckbox(form, IDDefinitionContent, position_element, column)
{
  if(form.IDDataContent.value == '0')
    alert('You must save this item in order to edit checkboxes!');
  else
    OnClickEditSelect(form, IDDefinitionContent, position_element, column)
}


function OnClickEditSelect(form, IDDefinitionContent, position_element, column)
{
  var width, left, top1;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_options.asp?IDDefinitionContent=' + IDDefinitionContent + '&position_element=' + position_element + '&column=' + column, 'edit_select', 'width=' + width + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnCloseImage(form, IDDataContent_parent)
{
  action = 'edit.asp';
  
  if(window.opener.document.edit.IDDataContent_parent)
  {
    if(window.opener.document.edit.IDDataContent_parent.value.length > 0)
      action = 'edit_child.asp';
  }
  
  window.opener.document.edit.action = action;
  window.opener.document.edit.submit_action.value = 'refresh';
  window.opener.document.edit.submit();

  self.close();
}


function OnContentNew(form, IDDataContentSelector, order, column)
{
  var action;
  
  action = 'edit.asp';
  
  form.action = form.action + '?IDDataContentSelector_add=' + IDDataContentSelector + '&order=' + order + '&add_content=' + column;

  form.submit_action.value = 'save';
  form.submit();
}


function OnDeleteNoStatus(form, IDDataContent)
{
  if(confirm('Are you sure that you want to delete this item?\n\nDeletion destroys all data on this screen permanently.\nIt cannot be recovered.'))
  {
    if(confirm('Are you absolutely certain?\n\nDeletion destroys all data permanently.'))
    {
      form.action = "menu.asp";
      form.IDDataContent.value = IDDataContent;
      form.submit_action.value = "delete";
      form.submit();
    }
  }
}


function OnDeleteStatus(form, IDDataContent)
{
///
  if(confirm('Are you sure that you want to delete this item?\n\nDeletion destroys all data on this screen\n\nYou will be able to reinstate this content from the Approval Archive if you really need it again.'))
  {
    form.action = "menu.asp";
    form.IDDataContent.value = IDDataContent;
    form.submit_action.value = "delete";
    form.submit();
  }
}


function OnDeleteApprove(form, status_action)
{

  if(confirm('Are you sure that you want to delete this item?\n\nDeleting this item changes its status to Awaiting Deletion.\n\nDeletion will be confirmed by the Administrator.'))
  {
    //it is not necessary to validate the form if its status is being changed to deleted, however
    //we need to set the IE HtmlArea's hidden values and this function does this
    OnSaveCheck(form, false);

    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.submit_action.value = 'save';
    form.submit();
  }
}


function OnDeleteNoApprove(form, IDDataContent)
{
  if(confirm('Are you sure that you want to delete this item?\n\nDeletion destroys all data on this screen.'))
  {
    form.action = "menu.asp";
    form.IDDataContent.value = IDDataContent;
    form.submit_action.value = "delete";
    form.submit();
  }
}


function OnDeleteAll(form)
{
  if(confirm('Are you sure that you want to delete all items?'))
  {
    form.action = 'menu.asp';
    form.submit_action.value = 'delete_all';
    form.submit();  
  }
}


function OnDeleteChild(form, IDDataContent, IDDefinitionContent, column)
{
  if(confirm('Are you sure that you want to delete this item?'))
  {
    var miscellaneous;
    
    miscellaneous = window.opener.document.edit.miscellaneous.value;
    
    miscellaneous = AddNameValueToQueryString('IDDataContent_delete', IDDataContent, miscellaneous);
    miscellaneous = AddNameValueToQueryString('IDDefinitionContent_delete', IDDefinitionContent, miscellaneous);
    miscellaneous = AddNameValueToQueryString('column', column, miscellaneous);
    
    window.opener.document.edit.miscellaneous.value = miscellaneous;
    
    window.opener.document.edit.submit_action.value = 'save';
    window.opener.document.edit.submit();

    self.close();
  }
}


function OnDeleteEmbeddedContent(form, IDDataContent, IDDefinitionContent, column, status_action)
{
  if(confirm('Are you sure that you want to delete this item?'))
  {
    form.miscellaneous.value = AddNameValueToQueryString('IDDataContent_delete', IDDataContent.toString(), form.miscellaneous.value);
    form.miscellaneous.value = AddNameValueToQueryString('IDDefinitionContent_delete', IDDefinitionContent.toString(), form.miscellaneous.value);
    form.miscellaneous.value = AddNameValueToQueryString('column', column, form.miscellaneous.value);
    
    OnSave(form, status_action);
  }
}




function OnDeleteImageGallery1(form, IDDataImageGallery, column)
{
  var ok;
  
  if(confirm('Are you sure you want to delete this image?'))
  {
    form.action = 'edit.asp?delete_image_gallery=1&IDDataImageGallery=' + IDDataImageGallery + '&column=' + column;
    form.submit_action.value = 'refresh';
    form.submit();  
  }
}


function OnDeleteSelect(form, item)
{
  if(confirm('Are you sure you want to delete this item?'))
  {
    form.form_action.value = "delete";
    form.item.value = item;
    form.submit();
    
    window.opener.document.edit.submit_action.value = "refresh"
    window.opener.document.edit.submit();
  }
}


function OnEdit(form, IDDataContent)
{
  form.action = "edit.asp";
  form.IDDataContent.value = IDDataContent;
  form.submit_action.value = "edit";
  
  form.submit();
}


function OnEditContentNextPrevious(form, IDDataContent)
{
  form.IDDataContent.value = IDDataContent;
  form.submit();
}


function OnEditDirect(form, IDDefinitionContent, IDDataContent, IDDataTreeMenu)
{
  if(form.IDDataTreeMenu)
    form.IDDataTreeMenu.value = IDDataTreeMenu;
    
  form.IDDefinitionContent.value = IDDefinitionContent;
  OnEdit(form, IDDataContent);
}


function OnEditImageGallery(form, IDDataContent, IDDefinitionContent, column, IDDataImageGallery, allow_picture)
{
  var left, top1, height, width;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('edit_gallery_image.asp?IDDataContent_user=' + form.IDDataContent_user.value + '&user_type=' + form.user_type.value + '&IDDataImageGallery=' + IDDataImageGallery + '&IDDefinitionContent=' + IDDefinitionContent + '&IDDataContent=' + IDDataContent + '&column=' + column, 'new', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnEditSelect(form, no, value)
{
  var new_value;
  
  new_value = prompt('Enter the new value', value);
  new_value = new_value.replace(/&/gi, '\\&');
  
  if(new_value)
  {
    form.form_action.value = 'update';
    form.item.value = 'no=' + no + '&old_value=' + value + '&new_value=' + new_value;
    form.submit();
  }
}


function OnEmailBelow(form, IDDefinitionContent)
{
  var left, top1, height, width;

  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('email_all.asp?IDDefinitionContent=' + IDDefinitionContent + '&query=' + escape(form.query.value), 'email_all', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnEnterHit(form, event, function_to_call)
{
  if(isIE)
    OnEnterHitIE(form, event, function_to_call);
  else if(isNetscape)
    OnEnterHitNetscape(form, event, function_to_call);
}


function OnEnterHitIE(form, event, function_to_call)
{
  var keycode;
  
  if (window.event) 
  {
    keycode = window.event.keyCode;
  }
  else 
    return true;

  if(keycode == 13)
  {
    function_to_call(form);
    return false;
  }
  else
    return true;
}


function OnEnterHitNetscape(form, event, function_to_call)
{
  if(event.which == 13)
  {
    function_to_call(form);
    return false;
  }
  else
    return true;
}


function OnExclusiveCheckox(checkbox, checkboxes)
{
  var i;
  
  if(checkbox.checked)
  {
    for(i = 0; i < checkboxes.length; i++)
    {
      if(checkboxes[i].value != checkbox.value)
      {
        if(checkboxes[i].value != 'Bar Secrets' && checkbox.value != 'Bar Secrets') //ihub specific if
          checkboxes[i].checked = false;
      }
    }
  }
}


function OnExport(form, name)
{
  if(email = prompt('Enter the email address to send the ' + name, 'someone@somewhere.com.au'))
  {
    form.submit_action.value = "export";
    form.misc.value = email;
    form.submit();
  }
}


function OnFloat(ok, element, name)
{
  if(ok)
  {
    if(element.value.length == 0)
    {
      alert('You must select a value for the \'' + name + '\'');
      element.focus();
      ok = false;
    }
    else
    {
      if(!isFloat(element.value))
      {
        alert('You must enter a number for the \'' + name + '\'');
        element.focus();
        ok = false;
      }
    }
  }

  return ok;
}


function OnHTMLAreaHelp()
{
  var left, top1, height, width;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('htmlareahelp.asp', 'htmlareahelp', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnItemsToApprove(form)
{
  form.action = "content_to_approve.asp"
  form.submit();
}


function OnLogin(form)
{
  var ok;
  
  ok = true;

  if(form.username.value.length == 0)
  {
    form.username.focus();
    alert('You must enter a value for the username');
    ok = false;
  }
  
  else if(form.password.value.length == 0)
  {
    form.password.focus();
    alert('You must enter a value for the password');
    ok = false;
  }
  
  
  if(ok)
  {
    form.submit();
  }
}

var OnLogin_pointer = OnLogin


function OnGoTo(form, start)
{
  form.submit_action.value = 'next';
  form.action = 'menu.asp';
  form.start.value = start;
  form.submit();
}


function OnMoveContent(IDDataContentSelector, order, record_count, IDDefinitionContent_parent, IDDataContent_parent, column)
{
  var width, left, top1;
  
  width = 300;
  height = 100;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('move_content.asp?IDDataContentSelector=' + IDDataContentSelector + '&order=' + order + '&record_count=' + record_count + '&IDDefinitionContent_parent=' + IDDefinitionContent_parent + '&IDDataContent_parent=' + IDDataContent_parent + '&column=' + column, 'move_content', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnMoveOK(IDDataContent, new_position, current_position, column)
{
  window.opener.document.menu.action = "menu.asp?IDDataContent=" + IDDataContent + "&new_position=" + new_position.options[new_position.selectedIndex].value + "&current_position=" + current_position + "&column=" + column;
  window.opener.document.menu.form_action = "reorder";
  window.opener.document.menu.submit();
  
  self.close();
}


function OnMoveSelect(form, current_item, select)
{
  form.item.value = current_item;
  form.move_position.value = parseInt(select.options[select.selectedIndex].value) - 1;
  form.form_action.value = 'move';
  form.submit();
}


function OnNext(form, display)
{
  form.submit_action.value = 'next';
  form.action = 'menu.asp';
  form.start.value = parseInt(form.start.value) + display;
  form.submit();
}


function OnNewPage(form, IDDataTreeMenu)
{
  form.action = 'new.asp?IDDataTreeMenu=' + IDDataTreeMenu;
  form.submit();
}


function OnNoToShow(form)
{
  form.submit();
}


function OnPrevious(form, start)
{
  form.submit_action.value = 'previous';
  form.action = 'menu.asp';
  form.start.value = start;
  form.submit();
}


function OnPowerSearch(form)
{
  form.action = "menu.asp";
  form.submit_action.value = "";
  form.search_type.value = "power";
  form.start.value = 1;
  form.submit();
}


function OnPrintPreview(form, IDDefinitionContent, IDDataContent)
{
  var left, top1;
  
  width = 750;
  height = 500;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;

  window.open('print_preview.asp?IDDefinitionContent=' + parseInt(IDDefinitionContent) + '&IDDataContent=' + parseInt(IDDataContent), 'print_preview', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=1,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnReInstate(form, status_action, IDDataContent, IDDataContent_locked)
{
  if(confirm('Do you wish to replace the current editable content with this one?'))
  {
    form.miscellaneous.value = AddNameValueToQueryString("IDDataContent_locked", IDDataContent_locked, form.miscellaneous.value)
    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.IDDataContent.value = IDDataContent;
    form.submit();
  }
}


function OnReject(form, status_action)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(submit && form.comments.value.length == 0)
  {
    alert('You must enter a comment if you want to reject the form!');
    form.comments.focus();
    submit = false;
  }
  
  if(submit)
  {
    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.submit_action.value = "save";
    form.submit();
  }
}


function OnRemoveContent(form, IDDataContentSelector, column, order)
{
  if(confirm('Are you sure you want to delete this content?'))
  {
   if(confirm('Are you really sure?\nDeletion is permanent, you will not be able to recover this content'))
   {
      form.action = form.action + '?IDDataContentSelector_del=' + IDDataContentSelector + '&IDDataContentSelector_del_column=' + column + '&order=' + order;
      form.submit_action.value = 'refresh';
      form.submit();
    }
  }
}



function OnReStore(form, status_action, IDDataContent_locked)
{
  if(confirm('Restoring this item makes its content editable so it can be reposted to the website.\nDo you want to continue?'))
  {
    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.submit_action.value = "";
    form.submit();
  }
}


function OnSave(form, status_action, require_comments)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(form.comments)
  {
    if(form.comments.value.length == 0 && require_comments)
    {
      alert('You must enter a comment that describes the changes you have made!');
      form.comments.focus();
      submit = false;
    } 
  } 
  
  if(submit)
  {
    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.submit_action.value = "save";
    form.submit();
  }
}


function OnSaveCheck(form, print_error)
{
  var complete, i;

  complete = true;

  for(i = 0; i < form.form_elements.length; i++)
  {
  
    if(!ElementComplete(form.form_elements[i], print_error))
    {
      complete = false;
      break;
    }
  }

  return complete;
}


function OnSaveChild(form)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(submit)
  {
    form.action = 'edit_child.asp';
    form.submit_action.value = "save";
    form.submit();
  }
}


function OnSaveContentLink(form, maximum_content, name)
{
  var i, ok, total_checked;
  
  ok = true;
  total_checked = 0;

  if(maximum_content != -1)
  {
    for(i = 0; i < form.elements.length; i++)
    {
      if(form.elements[i].type == 'checkbox')
      {
        if(form.elements[i].checked)
          total_checked++;
      }
    }
    
  
    if(total_checked > maximum_content)
    {
      ok = false;
      alert('You can only select ' + parseInt(maximum_content) + ' ' + name + '!\nPlease remove some selections.');
    }
  }
  

  if(ok)
  {
    form.form_action.value = 'save';
    form.submit();

    window.opener.document.edit.submit_action.value = "refresh"
    window.opener.document.edit.submit();
  }
}


function OnSaveImage(image)
{
  var complete, mandatory;
  
  if(image.has_value)
    mandatory = false;
  else
    mandatory = image.mandatory;
    
  complete = ElementCompleteFile(image, true, mandatory);
  
  image.form.submit_action.value = 'save';
  
  if(complete)
    image.form.submit();
}


function OnSaveNew(form, status_action)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(submit)
  {
    form.action = 'edit.asp'
    form.submit_action.value = "add_new";
    form.status_action.value = status_action;
    form.submit();
  }
}


function OnSaveNewChild(form, IDDataContent_mixed, IDDefinitionContent_mixed)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(submit)
  {
    form.action = 'edit_child.asp';
    form.submit_action.value = "add_new";
    form.submit();
  }
}


function OnSaveSelectOptions(form)
{
  form.form_action.value = "save";
  form.submit();
  
  
  if(window.opener.document.edit.action.search(/child/) != -1)
    window.opener.document.edit.action = "edit_child.asp";
  else
    window.opener.document.edit.action = "edit.asp";
  
  window.opener.document.edit.submit_action.value = "refresh"
  window.opener.document.edit.submit();
}


function OnModifyPrivileges(form)
{
  var left, top1, height, width;
  
  width = 750;
  height = 300;

  left = (screen.width - 0.85*screen.width)/2;
  top1 = (screen.height - 0.85*screen.height)/4;
  window.open('modify_privileges.asp?IDDataContent_user=' + form.IDDataContent_user.value + '&IDDataTreeMenu=' + form.IDDataTreeMenu.value, 'new', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnSavePrivileges(form)
{
  form.submit();
}


function OnSearch(form)
{
  form.action = "menu.asp";
  form.submit_action.value = "search";
  form.start.value = 1;

  form.submit();
}


function OnSend(form, content_name)
{
  var ok;
  
  ok = true;
  
  if(!isNetscape && form.email_message)
  {
    form.email_message.value = document.all['email_message_htmlarea'].innerHTML;
  }
  
  if(ok && !isEmail(form.from.value))
  {
    ok = false;
    alert('You must enter a valid From email address!');
    form.from.focus();
  }

  if(ok && form.subject.value.length == 0)
  {
    form.subject.focus();
    alert('You must enter a value for the email subject!');
    ok = false;
  }
    
  if(ok && MessageLength(form) == 0)
  {
    ok = false;
    alert('You must enter a value for the newsletter message!');
  }

  if(ok)
  {
    if(confirm('Are you sure you want to email all selected ' + content_name + '?'))
    {
      form.form_action.value = 'send_begin';
      form.submit();
    }
  }
}


function OnSendPreview(form)
{
  var ok;
  
  ok = true;
  
  if(!isNetscape && form.email_message)
    form.email_message.value = document.all['email_message_htmlarea'].innerHTML;
  
  if(ok && !isEmail(form.from.value))
  {
    ok = false;
    alert('You must enter a valid From email address!');
    form.from.focus();
  }

  if(ok && form.subject.value.length == 0)
  {
    form.subject.focus();
    alert('You must enter a value for the Subject!');
    ok = false;
  }
    
  if(ok && MessageLength(form) == 0)
  {
    ok = false;
    alert('You must enter a value for the Message!');
  }

  if(ok && !isEmail(form.preview.value))
  {
    ok = false;
    alert('You must enter a valid email address for the Preview Email Address!');
    form.email_address_preview.focus();
  }

  if(ok)
  {
    form.form_action.value = 'send_preview';
    form.submit();
  }
  
}


function OnSubmitForApproval(form, status_action)
{
  var submit;
  
  submit = OnSaveCheck(form, true);
  
  if(submit)
  {
    if(form.comments)
    {
      if(form.comments.value.length == 0)
      {
        alert('You must enter a comment if you want to re-submit the form for approval!');
        form.comments.focus();
        submit = false;
      }
    }
  }
  
  if(submit)
  {
    form.status_action.value = status_action;
    form.action = 'edit.asp';
    form.submit_action.value = "save";
    form.submit();
  }
}


function OnViewLocked(form)
{
  form.action='menu.asp';
  form.submit_action.value='view_locked';
  form.submit();
}


//adds an Option to a select if it doesn't already exist
function OptionExists(select, field_name)
{
  var exists;
  
  exists = false;
  
  for(i = 0; i < select.options.length; i++)
  {
    if(select.options[i].text == field_name)
    {
      exists = true;
    }
  }
  
  return exists;
}


function OnRestoreDeletedImage(form)
{
  if(confirm('Do you want to restore this image?'))
  {
    form.action = "edit.asp"
    form.submit_action.value = "refresh"
    form.submit();
  }
}


function ScrollToAnchor(name)
{
  location.hash = name;
	self.scrollTo(0, screen.height);
}


var OnSearch_pointer = OnSearch;


function OnSendSMS(form)
{
  var ok;
  
  ok = true;

  if(ok && form.sms_message.value.length == 0)
  {
    ok = false;
    alert('You must add a value for the mobile message!');
    form.sms_message.focus();
  }
  
  if(ok)
  {
    form.form_action.value = "send";
    form.submit();
  }
}


function OnSendSMSPreview(form)
{
  var ok

  ok = SMS_OK(form)
  
  if(ok)
  {
    form.form_action.value = "send_preview";
    form.submit();
  }
}

function OnShowAll(form)
{
  form.action = "menu.asp";
  form.submit_action.value = "show_all";
  form.submit();
}


function OnShowGroups(form)
{
  form.action = "menu.asp";
  form.submit_action.value = "show_groups";
  form.submit();
}


function OnSimpleSearch(form)
{
  form.action = "menu.asp";
  form.submit_action.value = "";
  form.search_type.value = "simple";
  form.start.value = 1;
  form.submit();
}


function SMS_OK(form)
{
  var ok;
  
  ok = true;
  
  if(ok && form.sms_message.value.length == 0)
  {
    ok = false;
    alert('You must add a value for the mobile message!');
    form.sms_message.focus();
  }
  /*
  else if(form.sms_subject.value.length == 0)
  {
    ok = false;
    alert('You must add a value for the message subject!');
    form.sms_subject.focus();
  }
  */
  else if(ok && form.sms_message.value.length > 160)
  {
    ok = false;
    alert('The message must be less than 160 characters!');
    form.sms_message.focus();
  }
  else if(form.sms_preview.value.length == 0)
  {
    ok = false;
    alert('You must add a value for the preview mobile number!');
    form.sms_preview.focus();
  }
  
  return ok;
}


function OnViewLockedHistory(form, select)
{
  OnEdit(form, select.options[select.selectedIndex].value)
}


function RemoveFormatting(text)
{
  text = text.replace(/<br>/i, '');
  text = text.replace(/&nbsp;/gi, ' ');
  
  return text;
}


function RemoveOptionDirect(select, i)
{
  for(j = i; j <= select.options.length - 2; j++)
  {
    select.options[j].text = select.options[j + 1].text;
    select.options[j].value = select.options[j + 1].value;
  }
  
  select.options.length--;
}


//displays an error if any fields in the form are null
function ValidateDay(day_combo, month_combo, year_combo)
{
  var day, month, year;
  
  if(day_combo.selectedIndex != 0 && month_combo.selectedIndex != 0 && year_combo.selectedIndex != 0)
  {
    day = parseInt(day_combo.options[day_combo.selectedIndex].value);
    
    switch(month_combo.options[month_combo.selectedIndex].text)
    {
      case 'Jan': month = 1; break;
      case 'January': month = 1; break;
      case 'Feb': month = 2; break;
      case 'February': month = 2; break;
      case 'Mar': month = 3; break;
      case 'March': month = 3; break;
      case 'Apr': month = 4; break;
      case 'April': month = 4; break;
      case 'May': month = 5; break;
      case 'Jun': month = 6; break;
      case 'June': month = 6; break;
      case 'Jul': month = 7; break;
      case 'July': month = 7; break;
      case 'Aug': month = 8; break;
      case 'August': month = 8; break;
      case 'Sep': month = 9; break;
      case 'September': month = 9; break;
      case 'Oct': month = 10; break;
      case 'October': month = 10; break;
      case 'Nov': month = 11; break;
      case 'November': month = 11; break;
      case 'Dec': month = 12; break;
      case 'December': month = 12; break;
    }

    year = parseInt(year_combo.options[year_combo.selectedIndex].text);
      
    days = DaysInMonth(month, year);
      
    day_combo.length = days + 1;
      
    if(day > days)
      day_combo.selectedIndex = days;
      
    for(i = 29; i <= days; i++)
    {
      day_combo.options[i].text = i;
      day_combo.options[i].value = i;
    }
  }
}


function ValidFileTypes(file)
{
  var types;
  types = "";
  
  for(i = 0; i < file.file_types.length; i++)
  {
    if(i == 0)
      types += file.file_types[i];
    else
      types += ' or ' + file.file_types[i];
    
    if(i < file.file_types.length - 2)
      types += ', ';

  }
  
  return types;
}
