var ajax_requests = {

  classifiedsModerateContact:function() {

    var section = $F('clas_section');
    var item_id = $F('clas_item_id');
    var return_url = $F('return_url');
    var copy = $F('sender_copy');
    var phone = $F('sender_phone');
    var message = escape($F('sender_message'));

    var errs = '';
    if (message.length < 10) errs += 'Your message is not entered or too short.\n';

    if (errs != '') {
      return alert(errs);
    }


    var url = '/common/ajax.php';
    var pars = 'ajax_request=classifiedsModerateContact&section=' + section + '&item_id=' + item_id + '&return_url=' + return_url + '&copy=' + copy + '&phone=' + phone + '&message=' + message;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.classifiedsModerateContact_showLoading,
                                          onFailure:  ajax_requests.classifiedsModerateContact_showError,
                                          onComplete: ajax_requests.classifiedsModerateContact_showResponse
                                        });
  },
  classifiedsModerateContact_showLoading:function(originalRequest) {
    document.getElementById('send_button').disabled = true;
    document.getElementById('clas_email_form_status').innerHTML = '<font color=blue>&lt; <i>saving your response...</i> &gt;</font>';
  },

  classifiedsModerateContact_showError:function(originalRequest) {
    document.getElementById('send_button').disabled = false;
    document.getElementById('clas_email_form_status').innerHTML = '<font color=red>>&lt; error1... &gt;</font>';
  },

  classifiedsModerateContact_showResponse:function(originalRequest) {
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('clas_email_form').innerHTML = originalRequest.responseText;
    } else {
      document.getElementById('send_button').disabled = false;
      document.getElementById('clas_email_form_status').innerHTML = '<font color=red>&lt; error2... &gt;</font>' + originalRequest.status;
    }
  },

  // CLASSIFIEDS CLASS: SEND CONTACT FORM
  classifiedsContactSeller:function() {

    var section = $F('clas_section');
    var item_id = $F('clas_item_id');
    var return_url = $F('return_url');
    var copy = $F('sender_copy');
    var phone = $F('sender_phone');
    var message = escape($F('sender_message'));

    var errs = '';
    if (message.length < 10) errs += 'Your message is not entered or too short.\n';

    if (errs != '') {
      return alert(errs);
    }


    var url = '/common/ajax.php';
    var pars = 'ajax_request=classifiedsContactSeller&section=' + section + '&item_id=' + item_id + '&return_url=' + return_url + '&copy=' + copy + '&phone=' + phone + '&message=' + message;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.classifiedsContactSeller_showLoading,
                                          onFailure:  ajax_requests.classifiedsContactSeller_showError,
                                          onComplete: ajax_requests.classifiedsContactSeller_showResponse
                                        });
  },

  classifiedsContactSeller_showLoading:function(originalRequest) {
    document.getElementById('send_button').disabled = true;
    document.getElementById('clas_email_form_status').innerHTML = '<font color=blue>&lt; <i>sending email...</i> &gt;</font>';
  },

  classifiedsContactSeller_showError:function(originalRequest) {
    document.getElementById('send_button').disabled = false;
    document.getElementById('clas_email_form_status').innerHTML = '<font color=red>>&lt; error1... &gt;</font>';
  },

  classifiedsContactSeller_showResponse:function(originalRequest) {
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('clas_email_form').innerHTML = originalRequest.responseText;
    } else {
      document.getElementById('send_button').disabled = false;
      document.getElementById('clas_email_form_status').innerHTML = '<font color=red>&lt; error2... &gt;</font>' + originalRequest.status;
    }
  },

  // USER CLASS: REQUEST LOGIN
  usersRequestLogin:function() {

    var login_request_email = $F('login_request_email');

    var errs = '';
    if (!login_request_email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) errs += 'Email address is not entered or invalid.\n';

    if (errs != '') {
      alert(errs);
      return;
    }

    var url = '/common/ajax.php';
    var pars = 'ajax_request=requestLogin&login_request_email=' + login_request_email;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.usersRequestLogin_showLoading,
                                          onFailure:  ajax_requests.usersRequestLogin_showError,
                                          onComplete: ajax_requests.usersRequestLogin_showResponse
                                        });
  },
  usersRequestActivation:function() {

    var activation_request_email = $F('activation_request_email');

    var errs = '';
    if (!activation_request_email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) errs += 'Activation Email address is not entered or invalid.\n';

    if (errs != '') {
      alert(errs);
      return;
    }

    var url = '/common/ajax.php';
    var pars = 'ajax_request=requestActivation&activation_request_email=' + activation_request_email;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.usersRequestLogin_showLoading,
                                          onFailure:  ajax_requests.usersRequestLogin_showError,
                                          onComplete: ajax_requests.usersRequestLogin_showResponse
                                        });
  },

  usersRequestLogin_showLoading:function(originalRequest) {
    document.getElementById('request_button').disabled = true;
    document.getElementById('login_request_status').innerHTML = '<font style="font-size:11px; color:#3333ff;"><i>(Processing your request. Please wait.)</i></font>';
  },

  usersRequestLogin_showError:function(originalRequest) {
    document.getElementById('request_button').disabled = false;
    document.getElementById('login_request_status').innerHTML = '<font color=red>>&lt; error1... &gt;</font>';
  },

  usersRequestLogin_showResponse:function(originalRequest) {
    document.getElementById('request_button').disabled = false;
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('login_request_status').innerHTML = originalRequest.responseText;
    } else {
      $('login_request_status').innerHTML = '<font color=red>&lt; error2... &gt;</font>' + originalRequest.status;
    }
  },

  // FORM CLASS: SEND FORM 
  formSendEmail:function() {

    var mod_id = $F('form_mod_id');
    var name_first = $F('form_name_first');
    var name_last = $F('form_name_last');
    var email = $F('form_email');
    var phone = $F('form_phone');
    var message = escape($F('form_message'));

    var errs = '';
    if (name_first == '') errs += 'Your first name is not entered.\n';
    if (name_last == '') errs += 'Your last name is not entered.\n';
    if (!email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) errs += 'Email address is not entered or invalid.\n';
    if (phone != '' && !phone.match(/^[0-9]{3}-[0-9]{3}-[0-9]{4}/)) errs += 'Please enter your phone number as showed in the example.\n';
    if (message.length < 20) errs += 'Message is not entered or too short.\n';

    if (errs != '') {
      return alert(errs);
    }

    var url = '/common/ajax.php';
    var pars = 'ajax_request=formSendEmail&mod_id=' + mod_id + '&name_first=' + name_first + '&name_last=' + name_last + '&email=' + email + '&phone=' + phone + '&message=' + message;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.formSendEmail_showLoading,
                                          onFailure:  ajax_requests.formSendEmail_showError,
                                          onComplete: ajax_requests.formSendEmail_showResponse
                                        });
  },

  formSendEmail_showLoading:function(originalRequest) {
    document.getElementById('send_button').disabled = true;
    document.getElementById('form_status').innerHTML = '<font color=blue>&lt; <i>sending email...</i> &gt;</font>';
  },

  formSendEmail_showError:function(originalRequest) {
    document.getElementById('send_button').disabled = false;
    document.getElementById('form_status').innerHTML = '<font color=red>>&lt; error1... &gt;</font>';
  },

  formSendEmail_showResponse:function(originalRequest) {
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('forms_form').innerHTML = originalRequest.responseText;
    } else {
      document.getElementById('send_button').disabled = false;
      document.getElementById('form_status').innerHTML = '<font color=red>&lt; error2... &gt;</font>' + originalRequest.status;
    }
  },

  // POLL CLASS: 
  pollSwapFormAndResult:function(mod_id, view_mode) {

    if (view_mode == 'results') {
      var view_results = 1;
    } else {
      var view_results = 0;
    }

    var url = '/common/ajax.php';
    var pars = 'ajax_request=pollSwapFormAndResult&mod_id=' + mod_id + '&view_results=' + view_results;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.pollSwapFormAndResult_showLoading,
                                          onFailure:  ajax_requests.pollSwapFormAndResult_showError,
                                          onComplete: ajax_requests.pollSwapFormAndResult_showResponse
                                        });
  },

  pollSwapFormAndResult_showLoading:function(originalRequest) {
  },

  pollSwapFormAndResult_showError:function(originalRequest) {
  },

  pollSwapFormAndResult_showResponse:function(originalRequest) {
    var mod_id = originalRequest.responseText.substring(0, 10) * 1;
    var new_html = originalRequest.responseText.substring(10);
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('poll_content_' + mod_id).innerHTML = new_html;
    }
  },

  pollVote:function(mod_id, questions) {

    var url = '/common/ajax.php';
    var pars = 'ajax_request=pollVote&mod_id=' + mod_id + '&questions=' + questions;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.pollVote_showLoading,
                                          onFailure:  ajax_requests.pollVote_showError,
                                          onComplete: ajax_requests.pollVote_showResponse
                                        });
  },

  pollVote_showLoading:function(originalRequest) {
  },

  pollVote_showError:function(originalRequest) {
  },

  pollVote_showResponse:function(originalRequest) {
    var mod_id = originalRequest.responseText.substring(0, 10) * 1;
    var new_html = originalRequest.responseText.substring(10);
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('poll_content_' + mod_id).innerHTML = new_html;
    }
  },

  // EVENT CLASS:
  eventCalendar:function(mod_id, year, month, date) {

    var url = '/common/ajax.php';
    var pars = 'ajax_request=eventCalendar&mod_id=' + mod_id + '&year=' + year + '&month=' + month + '&date=' + date;
    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.eventCalendar_showLoading,
                                          onFailure:  ajax_requests.eventCalendar_showError,
                                          onComplete: ajax_requests.eventCalendar_showResponse
                                        });
  },

  eventCalendar_showLoading:function(originalRequest) {
  },

  eventCalendar_showError:function(originalRequest) {
  },

  eventCalendar_showResponse:function(originalRequest) {
    var mod_id = originalRequest.responseText.substring(0, 10) * 1;
    var new_html = originalRequest.responseText.substring(10);
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('event_calendar_' + mod_id).innerHTML = new_html;
    }
  },

  // EVENT V2 CLASS:
  eventContactPoster:function() {

    var event_id = $F('event_id');
    var copy = $F('sender_copy');
    var return_url = $F('return_url');
    var message = escape($F('sender_message'));

    var errs = '';
    if (message.length < 10) errs += 'Your message is not entered or too short.\n';

    if (errs != '') {
      return alert(errs);
    }


    var url = '/common/ajax.php';
    var pars = 'ajax_request=eventContactPoster&event_id=' + event_id + '&copy=' + copy + '&return_url=' + return_url + '&message=' + message;

    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.eventContactPoster_showLoading,
                                          onFailure:  ajax_requests.eventContactPoster_showError,
                                          onComplete: ajax_requests.eventContactPoster_showResponse
                                        });
  },

  eventContactPoster_showLoading:function(originalRequest) {
    document.getElementById('send_button').disabled = true;
  },

  eventContactPoster_showError:function(originalRequest) {
    document.getElementById('send_button').disabled = false;
  },

  eventContactPoster_showResponse:function(originalRequest) {
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('event_email_form').innerHTML = originalRequest.responseText;
    } else {
      document.getElementById('send_button').disabled = false;
    }
  },

  eventCalendarRollMonth:function(mod_id, adjust, date) {
                                          
    var url = '/common/ajax.php';         
    var pars = 'ajax_request=eventCalendarRollMonth&mod_id=' + mod_id + '&event_calendar_adjust=' + adjust + '&event_calendar_date=' + date;
    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.eventCalendarRollMonth_showLoading,
                                          onFailure:  ajax_requests.eventCalendarRollMonth_showError,
                                          onComplete: ajax_requests.eventCalendarRollMonth_showResponse
                                        });
  },
  
  eventCalendarRollMonth_showLoading:function(originalRequest) {
  },
  
  eventCalendarRollMonth_showError:function(originalRequest) {
  },
    
  eventCalendarRollMonth_showResponse:function(originalRequest) {
    var mod_id = originalRequest.responseText.substring(0, 10) * 1;
    var new_html = originalRequest.responseText.substring(10);
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('event_calendar_' + mod_id).innerHTML = new_html;
    }
  },

  // FINANCE CLASS:
  financeGetStockQuote:function(mod_id, ticker, show_chart, chart_link) {
    var url = '/common/ajax.php';
    var pars = 'ajax_request=financeGetStockQuote&mod_id=' + mod_id + '&ticker=' + ticker + '&show_chart=' + show_chart + '&chart_link=' + chart_link;
    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading:  ajax_requests.financeGetStockQuote_showLoading,
                                          onFailure:  ajax_requests.financeGetStockQuote_showError,
                                          onComplete: ajax_requests.financeGetStockQuote_showResponse
                                        });

  },

  financeGetStockQuote_showLoading:function(originalRequest) {
  },

  financeGetStockQuote_showError:function(originalRequest) {
  },

  financeGetStockQuote_showResponse:function(originalRequest) {
    var mod_id = originalRequest.responseText.substring(0, 10) * 1;
    var new_html = originalRequest.responseText.substring(10);
    if (originalRequest.status == 200 && originalRequest.responseText.length > 2) {
      $('stock_quote_' + mod_id).innerHTML = new_html;
    }
    if (originalRequest.responseText.length < 200) {
      clearTimeout(stock_quote_timer);
      stock_quote_timer = null;
    } else {
      if (adjust_stock_quote_height > 0) {
        $('stock_quote_bar_v').height = stock_quote_height;
        adjust_stock_quote_height = 0;
      }
    }
  },

  /**
   * function: eventUpdateCounties -> calls common/ndfd/updateCounties.php to get the
   *    proper counties for the selected state.
   *
   * @param: state
   * @return: nothing
   */
  eventUpdateCounties:function(state) {
    var url = '/common/ndfd/updateCounties.php';
    pars = 'state=' + state;
    var myAjax = new Ajax.Request( url, { method: 'get',
                                         parameters: pars,
                                         onLoading:  ajax_requests.eventUpdateCounties_showLoading,
                                         onFailure:  ajax_requests.eventUpdateCounties_showError,
                                         onComplete: ajax_requests.eventUpdateCounties_showResponse
                                       });
  },

  eventUpdateCounties_showLoading:function(originalRequest) {
  },

  eventUpdateCounties_showError:function(originalRequest) {
  },

  /**
   * function: eventUpdateCounties_showResponse -> handles the respondes sent by 
   *    common/ndfd/updateCounties.php.
   *
   * @param: XmlHttpRequest originalRequest
   * @return: nothing
   */
  eventUpdateCounties_showResponse:function(originalRequest) {
    var html = originalRequest.responseText;
    if (originalRequest.status == 200 && originalRequest.responseText.length > 0) {
      $('sel_county_id').innerHTML = html;
    }
  },

  /**
   * function: eventUpdateIcao -> calls common/ndfd/updateIcao.php to get the
   *    proper ICAO codes for the selected state to use in getting the
   *    current observations.
   *
   * @param: state
   * @return: nothing
   */
  eventUpdateIcao:function(state) {
    var url = '/common/ndfd/updateIcao.php';
    pars = 'state=' + state;
    var myAjax = new Ajax.Request( url, { method: 'get',
                                          parameters: pars,
                                          onLoading: ajax_requests.eventUpdateIcao_showLoading,
                                          onFailure: ajax_requests.eventUpdateIcao_showError,
                                          onComplete: ajax_requests.eventUpdateIcao_showResponse
                                       });
  },

  eventUpdateIcao_showLoading:function(originalRequest) {
  },

  eventUpdateIcao_showError:function(originalRequest) {
  },

  /**
   * function: eventUpdateIcao_showResponse -> handles the respondes sent by
   *    common/ndfd/updateIcao.php.
   *
   * @param: XmlHttpRequest originalRequest
   * @return: nothing
   */
  eventUpdateIcao_showResponse:function(originalRequest) {
    var html = originalRequest.responseText;
    if (originalRequest.status == 200 && originalRequest.responseText.length > 0) {
      $('sel_icao_id').innerHTML = html;
    }
  }
};
