var myGlobalHandlers = {
	onCreate: function(){
		Element.show('spinner');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			Element.hide('spinner');
		}
	}
};

Ajax.Responders.register(myGlobalHandlers);

function getDate(d)
{
  var output = '';
  var mm = $(d + '_ddlMonth')
  if (mm && (mm.value != ''))
     output = mm.value + '/';
  var dd = $(d + '_txtDay')
  if (dd && (dd.value != ''))
     output += dd.value + '/';
  var yy = $(d + '_ddlYear')
  if (yy && (yy.value != ''))
     output += yy.value;
  if (output.length < 8)
     output='';
  return output;
}

function getPhone(p)
{
  var output = '';
  var p1 = $(p + '_p1')
  if (p1 && (p1.value != ''))
     output = '(' + p1.value + ')';
  var p2 = $(p + '_p2')
  if (p2 && (p2.value != ''))
     output += p2.value;
  var p3 = $(p + '_p3')
  if (p3 && (p3.value != ''))
     output += '-' + p3.value;
  var p4 = $(p + '_p4')
  if (p4 && (p4.value != ''))
     output += ' Ext. ' + p4.value;
  if (output.length < 12)
     output='';
  return output;
}

function isDate(d) {
  var month='', day='', year='';
  var mm = $(d + '_ddlMonth')
  if (mm && (mm.value != ''))
     month = mm.value;
  var dd = $(d + '_txtDay')
  if (dd && (dd.value != ''))
     day = dd.value;
  var yy = $(d + '_ddlYear')
  if (yy && (yy.value != ''))
     year = yy.value;

   var d = new Date(getDate(d));
   return d.getMonth() + 1 == month && d.getDate() == day && d.getFullYear() == year;
}

function CheckPhoneNumber(TheNumber) {
var valid = 1;
var GoodChars = "0123456789()-+ ";
var i = 0;

if (TheNumber == '') {
 valid = 0;
}

if (TheNumber.length < 10) {
 valid = 0;
}

for (i=0; i <= TheNumber.length -1; i++) {
    if (GoodChars.indexOf(TheNumber.charAt(i)) == -1)
    { valid = 0; }
} 
return valid;
}


function isPhone(p)
{
  var ph = '';
  var p1 = $(p + '_p1')
  if (p1 && (p1.value != ''))
     ph = '(' + p1.value + ')';
  var p2 = $(p + '_p2')
  if (p2 && (p2.value != ''))
     ph += p2.value;
  var p3 = $(p + '_p3')
  if (p3 && (p3.value != ''))
     ph += '-' + p3.value;
   return CheckPhoneNumber(ph);
}


function ValidateForm()
{
    //debugger;
    $('ctlBirthDate_redarrow').style.display = 'none';
    $('ctlDayPhone_redarrow').style.display = 'none';
    $('ctlEveningPhone_redarrow').style.display = 'none';
    if (!isDate('ctlBirthDate'))
    {
        $('ctlBirthDate_redarrow').style.display = 'inline';
    }
    if (!isPhone('ctlDayPhone'))
    {
        $('ctlDayPhone_redarrow').style.display = 'inline';
    }
    if (!isPhone('ctlEveningPhone'))
    {
        $('ctlEveningPhone_redarrow').style.display = 'inline';
    }
}

// Begin: Emergency Contact Javascript functions
function getContacts()
{
   var url = '/application/AddAnother/EmergencyContact.aspx';
   var container = 'divContacts';

   var myAjax = new Ajax.Updater(
                container,
                url,
                {
                    method: 'get',
                    onFailure: reportContactError
                });
}

function deleteContact(ecid)
{
   //debugger;
   $('ec_id').value = ecid;
   if (!confirm("Are you sure you want to delete this contact?"))
      return;
   var pars = 'action=delete&ecid=' + $('ec_id').value;
   var url = '/application/AddAnother/EmergencyContact.aspx';
   var container = 'divContacts';

   var myAjax = new Ajax.Updater(
                container,
                url,
                {
                    method: 'get',
                    parameters: pars,
                    onFailure: reportContactError,
                    onSuccess: deleteContactOk
                });
}

function cancelSaveContact()
{
    clearContact();
    $('ec_msg').style.display = 'inline';
    $('ec_msg').innerHTML = 'Changes not saved';
}

function saveContact(validate)
{
   //debugger;
   $('ec_msg').innerHTML = '';

   // validations
   var valmsg = '';
   if ($('ec_fn').value == '')
   {
        if  (valmsg == '')
            valmsg = 'Following fields are required: First Name';
        else
            valmsg = valmsg + ', First Name';
   }
   
   if ($('ec_ln').value == '')
   {
        if  (valmsg == '')
            valmsg = 'Following fields are required: Last Name';
        else
            valmsg = valmsg + ', Last Name';
   }

   if (getPhone('ctlECPhone') == '')
   {
        if  (valmsg == '')
            valmsg = 'Following fields are required: Phone';
        else
            valmsg = valmsg + ', Phone';
   }
   
   if (valmsg != '')
   {
      //var submit = WasSubmitClicked()
      if (validate)
      {
        $('ec_msg').style.display = 'inline';
        $('ec_msg').innerHTML = valmsg;
      }
      return;
   }

   var pars = 'action=save&ecid=' + $('ec_id').value + '&fn=' + $('ec_fn').value + '&ln=' + $('ec_ln').value + 
        '&phone1=' + getPhone('ctlECPhone') + 
        '&phone2=' + getPhone('ctlECAltPhone') +
        '&rel=' + $('ec_rel').value;
   var url = '/application/AddAnother/EmergencyContact.aspx';
   var container = 'divContacts';

   var myAjax = new Ajax.Updater(
                container,
                url,
                {
                    method: 'get',
                    parameters: pars,
                    onFailure: reportContactError,
                    onSuccess: clearContact
                });
}

function reportContactError()
{
    alert('Error processing contacts.');
}

function deleteContactOk()
{
   $('ec_id').value = 0;
   getContacts();
   $('ec_msg').style.display = 'inline';
   $('ec_msg').innerHTML  = 'Contact deleted';
}

function editContact(ecid,fn,ln,p1,p2,p3,p4,altp1,altp2,altp3,altp4,rel)
{
   //debugger;
   $('ec_id').value = ecid;
   $('ec_fn').value = fn;
   $('ec_ln').value = ln;
   $('ctlECPhone_p1').value = p1;
   $('ctlECPhone_p2').value = p2;
   $('ctlECPhone_p3').value = p3;
   $('ctlECPhone_p4').value = p4;
   $('ctlECAltPhone_p1').value = altp1;
   $('ctlECAltPhone_p2').value = altp2;
   $('ctlECAltPhone_p3').value = altp3;
   $('ctlECAltPhone_p4').value = altp4;
   $('ec_rel').value = rel;
   $('ec_msg').style.display = 'inline';
   $('imgSaveContact').style.display = 'inline';
   $('imgCancelContact').style.display = 'inline';
   $('imgAddContact').style.display = 'none';
   $('ec_msg').innerHTML  = 'Editing ' + fn + ' ' + ln;
}
function clearContact()
{
   $('ec_id').value = 0;
   $('ec_fn').value = '';
   $('ec_ln').value = '';
   $('ctlECPhone_p1').value = '';
   $('ctlECPhone_p2').value = '';
   $('ctlECPhone_p3').value = '';
   $('ctlECPhone_p4').value = '';
   $('ctlECAltPhone_p1').value = '';
   $('ctlECAltPhone_p2').value = '';
   $('ctlECAltPhone_p3').value = '';
   $('ctlECAltPhone_p4').value = '';
   $('ec_rel').value = '';
   $('ec_msg').style.display = 'inline';
   $('ec_msg').innerHTML  = 'Contact saved';
   $('imgSaveContact').style.display = 'none';
   $('imgCancelContact').style.display = 'none';
   $('imgAddContact').style.display = 'inline';
}
// End: Emergency Contact Javascript functions

// Begin: Residence Address Javascript functions
function getDate(d)
{
  var output = '';
  var mm = $(d + '_ddlMonth')
  if (mm && (mm.value != ''))
     output = mm.value + '/';
  var dd = $(d + '_txtDay')
  if (dd && (dd.value != ''))
     output += dd.value + '/';
  var yy = $(d + '_ddlYear')
  if (yy && (yy.value != ''))
     output += yy.value;
  if (output.length < 8)
     output='';
  return output;
}

function getResidences()
{
   var url = '/application/AddAnother/ResidenceAddress.aspx';
   var container = 'divResidences';

   var myAjax = new Ajax.Updater(
                container,
                url,
                {
                    method: 'get',
                    onFailure: reportResidenceError
                });
}

function deleteResidence(resid)
{
   //debugger;
   $('res_id').value = resid;
   if (!confirm("Are you sure you want to delete this Residence Address?"))
      return;
   var pars = 'action=delete&resid=' + $('res_id').value;
   var url = '/application/AddAnother/ResidenceAddress.aspx';
   var container = 'divResidences';

   var myAjax = new Ajax.Updater(
                container,
                url,
                {
                    method: 'get',
                    parameters: pars,
                    onFailure: reportResidenceError,
                    onSuccess: deleteResidenceError
                });
}

function cancelSaveResidence()
{
    clearResidence();
    $('res_msg').style.display = 'inline';
    $('res_msg').innerHTML = 'Changes not saved';
}

function saveResidence(validate)
{
   //debugger;
   $('res_msg').innerHTML = '';
   
   // validations
   var valmsg = '';
   if ($('ctlResidenceAddress_txtAddress1').value == '')
   {
        if  (valmsg == '')
            valmsg = 'Following fields are required: Address 1';
        else
            valmsg = valmsg + ', Address 1';
   }

   if ($('ctlResidenceAddress_txtCity').value == '')
   {
        if  (valmsg == '')
            valmsg = 'Following fields are required: City';
        else
            valmsg = valmsg + ', City';
   }

   if ($('ctlResidenceAddress_drpState').value == '')
   {
        if  (valmsg == '')
            valmsg = 'Following fields are required: State';
        else
            valmsg = valmsg + ', State';
   }

   if (valmsg != '')
   {
      if (validate)
      {
        $('res_msg').style.display = 'inline';
        $('res_msg').innerHTML = valmsg;
      }  
      return;
   }
   
   var pars = 'action=save&resid=' + $('res_id').value + 
    '&a1=' + $('ctlResidenceAddress_txtAddress1').value + 
    '&a2=' + $('ctlResidenceAddress_txtAddress2').value + 
    '&c=' + $('ctlResidenceAddress_txtCity').value + 
    '&s=' + $('ctlResidenceAddress_drpState').value + 
    '&z=' + $('ctlResidenceAddress_txtZip').value + 
    '&d1=' + getDate('ctlResidenceDateFrom') +
    '&d2=' + getDate('ctlResidenceDateTo');
   var url = '/application/AddAnother/ResidenceAddress.aspx';
   var container = 'divResidences';

   var myAjax = new Ajax.Updater(
                container,
                url,
                {
                    method: 'get',
                    parameters: pars,
                    onFailure: reportResidenceError,
                    onSuccess: clearResidence
                });
}

function reportResidenceError()
{
    alert('Error processing Residence Address.');
}

function deleteResidenceError()
{
   $('res_id').value = 0;
   $('res_msg').style.display = 'inline';
   $('res_msg').innerHTML  = 'Residence deleted';
}

function editResidence(resid,a1,a2,c,s,z,d1d,d1m,d1y,d2d,d2m,d2y)
{
   //debugger;
   $('res_id').value = resid;
   $('ctlResidenceAddress_txtAddress1').value = a1;
   $('ctlResidenceAddress_txtAddress2').value = a2;
   $('ctlResidenceAddress_txtCity').value = c;
   $('ctlResidenceAddress_drpState').value = s;
   $('ctlResidenceAddress_txtZip').value = z;
   $('ctlResidenceDateFrom_ddlMonth').value = d1m;
   $('ctlResidenceDateFrom_txtDay').value = d1d;
   $('ctlResidenceDateFrom_ddlYear').value = d1y;
   $('ctlResidenceDateTo_ddlMonth').value = d2m;
   $('ctlResidenceDateTo_txtDay').value = d2d;
   $('ctlResidenceDateTo_ddlYear').value = d2y;
   $('imgSaveResidence').style.display = 'inline';
   $('imgCancelResidence').style.display = 'inline';
   $('imgAddResidence').style.display = 'none';
   $('res_msg').style.display = 'inline';
   $('res_msg').innerHTML  = 'Editing ' + c + ', ' + s;
}
function clearResidence()
{
   $('res_id').value = 0;
   $('ctlResidenceAddress_txtAddress1').value = '';
   $('ctlResidenceAddress_txtAddress2').value = '';
   $('ctlResidenceAddress_txtCity').value = '';
   $('ctlResidenceAddress_drpState').value = '';
   $('ctlResidenceAddress_txtZip').value = '';
   $('ctlResidenceDateFrom_ddlMonth').value = '';
   $('ctlResidenceDateFrom_txtDay').value = '';
   $('ctlResidenceDateFrom_ddlYear').value = '';
   $('ctlResidenceDateTo_ddlMonth').value = '';
   $('ctlResidenceDateTo_txtDay').value = '';
   $('ctlResidenceDateTo_ddlYear').value = '';
   $('res_msg').style.display = 'inline';
   $('res_msg').innerHTML  = 'Residence saved';
   $('imgSaveResidence').style.display = 'none';
   $('imgCancelResidence').style.display = 'none';
   $('imgAddResidence').style.display = 'inline';
}
// End: Residence Address Javascript funtcions
