﻿function ValidateHiddenField(source, args)
{
    var control = document.getElementById(source.controltovalidate);
    args.IsValid = !isEmpty(control.value);
}

function ValidateCheckBox(source, args)
{
    var control = document.getElementById(source.controltovalidate);
    args.IsValid = control.checked;
}

function ValidateCheckBoxList(source, args)
{
    var control = document.getElementById(source.controltovalidate);

    var selectedItemCount = 0;
    var liIndex = 0;
    var currentListItem = document.getElementById(control.id + '_' + liIndex.toString());
    while (currentListItem != null)
    {
        if (currentListItem.checked) selectedItemCount++;
        liIndex++;
        currentListItem = document.getElementById(control.id + '_' + liIndex.toString());
    }
    
    if(selectedItemCount > 0)
      args.IsValid = true;
    else
      args.IsValid = false;
}

function ValidateEventType(source, args)
{
  //IF NO STANDARD EVENT TYPE IS SELECTED AND NO OTHER EVENT TYPE IS ENTERED 
  //OR BOTH ARE ENTERED (ONLY ONE CAN BE ENTERED)
  if((isEmpty(theForm.ctl00$cphBody$cboEventType.value) 
      && isEmpty(theForm.ctl00$cphBody$txtOtherEventType.value))
     || (isEmpty(theForm.ctl00$cphBody$cboEventType.value) == false 
         && isEmpty(theForm.ctl00$cphBody$txtOtherEventType.value) == false))
    args.IsValid = false;
  else
    args.IsValid = true;
}

function ValidateState(source, args)
{
  if (theForm.ctl00$cphBody$cboCountry)
  {
    if((theForm.ctl00$cphBody$cboCountry.value == "31" || theForm.ctl00$cphBody$cboCountry.value == "192")
        && isEmpty(theForm.ctl00$cphBody$cboState.value))
      args.IsValid = false;
    else
      args.IsValid = true;
  }
  else
  {
    if (isEmpty(theForm.ctl00$cphBody$cboState.value) && isEmpty(theForm.ctl00$cphBody$txtAltState.value))
      args.IsValid = false;
    else
      args.IsValid = true;
  }
}

function ValidateCustomState(source, args)
{
  var ddlState = document.getElementById(source.controltovalidate);
  var txtStateOther = document.getElementById(source.controltovalidate+'Other');
  var ddlCountry;
  var bCountryRequired = false;
  
  if (!isEmpty(ddlState.getAttribute('rel')))
  {
    ddlCountry = document.getElementById('ctl00_cphBody_'+ddlState.getAttribute('rel'));
    bCountryRequired = ddlCountry.getAttribute('rel') == 'required' ? true : false;
  }
  
  if (ddlCountry && bCountryRequired == true)
  {
    if((ddlCountry.value == "31" || ddlCountry.value == "192") && isEmpty(ddlState.value))
      args.IsValid = false;
    else
      args.IsValid = true;
  }
  else
  {
    if (isEmpty(ddlState.value) && isEmpty(txtStateOther.value))
      args.IsValid = false;
    else
      args.IsValid = true;
  }
}

function ValidateComments(source, args)
{
  if(args.Value.length > 4000)
    args.IsValid = false;
  else
    args.IsValid = true;
}

function ValidateTextarea(source, args)
{
  if(args.Value.length > 2000)
    args.IsValid = false;
  else
    args.IsValid = true;
}

var bAlternateDateFieldsState = 1 //set to 1 so initial toggle will change it all to hidden
function ToggleAlternateDateFields()
{
  ToggleElement("ctl00_cphBody_spAlternateArrivalStart");
  ToggleElement("ctl00_cphBody_spAlternateArrivalEnd");
  ToggleElement("ctl00_cphBody_spAlternateStayStart");
  ToggleElement("ctl00_cphBody_spAlternateStayEnd");
  ToggleLinkState("ctl00_cphBody_hlToggleAlternateDateFields");
  if (bAlternateDateFieldsState == 0)
    bAlternateDateFieldsState = 1
  else
    bAlternateDateFieldsState = 0
}

function ToggleElement(elementId)
{
  var element;
  if (document.getElementById(elementId))
  {
    element = document.getElementById(elementId);
    if (bAlternateDateFieldsState == 0)
      element.style.display = 'block';
    else
      element.style.display = 'none';
  }
}

function ToggleLinkState(elementId)
{
  var element;
  if (document.getElementById(elementId))
  {
    element = document.getElementById(elementId);
    if (bAlternateDateFieldsState == 0)
      element.innerHTML = "-" + element.innerHTML.substr(1,element.innerHTML.length)
    else
      element.innerHTML = "+" + element.innerHTML.substr(1,element.innerHTML.length)
  }
}

function SetCBOIndex(elementId, index)
{
  var element;
  if (document.getElementById(elementId))
  {
    element = document.getElementById(elementId);
    element.selectedIndex = index;
  }
}

function SetTxtValue(elementId, value)
{
  var element;
  if (document.getElementById(elementId))
  {
    element = document.getElementById(elementId);
    element.value = value;
  }
}

function UpdateEventDateFieldsFromCal(cal)
{
  UpdateEventDateFields(cal.params.inputField.id);  
}
function UpdateEventDateFields(updatedFieldId)
{
  var value = document.getElementById(updatedFieldId).value;
  
  if (updatedFieldId == 'ctl00_cphBody_txtMeetingStart')
  {
    SetTxtValue('ctl00_cphBody_txtMeetingEnd',value);
    SetTxtValue('ctl00_cphBody_txtStayStart',value);
    SetTxtValue('ctl00_cphBody_txtStayEnd',value);
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtMeetingEnd')
  {
    SetTxtValue('ctl00_cphBody_txtStayEnd',value);
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtStayStart')
  {
    SetTxtValue('ctl00_cphBody_txtStayEnd',value);
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtStayEnd')
  {
    
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtAltMeetingStart')
  {
    SetTxtValue('ctl00_cphBody_txtAltMeetingEnd',value);
    SetTxtValue('ctl00_cphBody_txtAltStayStart',value);
    SetTxtValue('ctl00_cphBody_txtAltStayEnd',value);
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtAltMeetingEnd')
  {
    SetTxtValue('ctl00_cphBody_txtAltStayEnd',value);
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtAltStayStart')
  {
    SetTxtValue('ctl00_cphBody_txtAltStayEnd',value);
  }
  else if (updatedFieldId == 'ctl00_cphBody_txtAltStayEnd')
  {
    
  }
}

/*
function updateDDL(sControlName)
{
  var sHiddenName = sControlName;
  sControlName = 'ctl00_cphBody_' + sControlName.replace('hid', 'cbo');
  theForm[sControlName + 'Month'].value = formatDate(theForm[sHiddenName].value.substring(0, 2));
  theForm[sControlName + 'Day'].value = formatDate(theForm[sHiddenName].value.substring(3, 5));
  theForm[sControlName + 'Year'].value = theForm[sHiddenName].value.substring(6, 10);

  if(sControlName == 'ctl00_cphBody_cboMeetingStart')
  {
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboMeetingEnd', sHiddenName, 'hidMeetingStart'); 
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboStayStart', sHiddenName, 'hidStayStart'); 
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboStayEnd', sHiddenName, 'hidStayEnd'); 
  }
  if(sControlName == 'ctl00_cphBody_cboMeetingEnd')
  {
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboStayEnd', sHiddenName, 'hidStayEnd'); 
  }
  if(sControlName == 'ctl00_cphBody_cboStayStart')
  {
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboStayEnd', sHiddenName, 'hidStayEnd'); 
  }
  
  if(sControlName == 'ctl00_cphBody_cboAlternateArrivalStart')
  {
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboAlternateArrivalEnd', sHiddenName, 'hidAlternateArrivalStart'); 
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboAlternateStayStart', sHiddenName, 'hidAlternateStayStart'); 
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboAlternateStayEnd', sHiddenName, 'hidAlternateStayEnd'); 
  }
  if(sControlName == 'ctl00_cphBody_cboAlternateArrivalEnd')
  {
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboAlternateStayEnd', sHiddenName, 'hidAlternateStayEnd'); 
  }
  if(sControlName == 'ctl00_cphBody_cboAlternateStayStart')
  {
    SetDateControlFields(sControlName, 'ctl00_cphBody_cboAlternateStayEnd', sHiddenName, 'hidAlternateStayEnd'); 
  }
}

function SetDateControlFields(sFilledControlName, sControlName, sFilledHiddenName, sHiddenName)
{
    SetCBOIndex(sControlName + 'Month', theForm[sFilledControlName + 'Month'].selectedIndex);
    SetCBOIndex(sControlName + 'Day', theForm[sFilledControlName + 'Day'].selectedIndex);
    SetCBOIndex(sControlName + 'Year', theForm[sFilledControlName + 'Year'].selectedIndex);
    if (document.getElementById(sHiddenName))
      theForm[sHiddenName].value = theForm[sFilledHiddenName].value;
}
*/