﻿/// <reference path="jquery-1.4.1-vsdoc2.js" />

Wipfli.Event = function () {
    var m_ddlIndustry;
    var m_ddlTopic;
    var m_ddlSpeaker;
    var m_ddlLocation;
    var m_FirstName;
    var m_LastName;
    var m_Title;
    var m_Company;
    var m_Address;
    var m_City;
    var m_State;
    var m_Zip;
    var m_Phone;
    var m_Fax;
    var m_Email;
    Ext.onReady(this.Initialize.createDelegate(this));
}

Ext.extend(Wipfli.Event, Ext.util.Observable,
{
    Initialize: function () {
        this.addEvents({ "onData": true });

        this.m_ddlIndustry = document.getElementById("ddlIndustry");
        this.m_ddlTopic = document.getElementById("ddlTopic");
        this.m_ddlSpeaker = document.getElementById("ddlSpeaker");
        this.m_ddlLocation = document.getElementById("ddlLocation");
    },

    LoadCookies: function () {
        this.m_FirstName = CookieRead("FirstName");
        this.m_LastName = CookieRead("LastName");
        this.m_Title = CookieRead("Title");
        this.m_Company = CookieRead("Company");
        this.m_Address = CookieRead("Address");
        this.m_City = CookieRead("City");
        this.m_State = CookieRead("State");
        this.m_Zip = CookieRead("Zip");
        this.m_Phone = CookieRead("Phone");
        this.m_Phone = CookieRead("Fax");
        this.m_Email = CookieRead("Email");
    },

    SetCookieFields: function () {
        if (document.getElementById('efirstname'))
            document.getElementById('efirstname').value = this.m_FirstName;
        if (document.getElementById('elastname'))
            document.getElementById('elastname').value = this.m_LastName;
        if (document.getElementById('etitle'))
            document.getElementById('etitle').value = this.m_Title;
        if (document.getElementById('ecompany'))
            document.getElementById('ecompany').value = this.m_Company;
        if (document.getElementById('eaddress'))
            document.getElementById('eaddress').value = this.m_Address;
        if (document.getElementById('ecity'))
            document.getElementById('ecity').value = this.m_City;
        if (document.getElementById('estate'))
            document.getElementById('estate').value = this.m_State;
        if (document.getElementById('ezip'))
            document.getElementById('ezip').value = this.m_Zip;
        if (document.getElementById('ephone'))
            document.getElementById('ephone').value = this.m_Phone;
        if (document.getElementById('efax'))
            document.getElementById('efax').value = this.m_Fax;
        if (document.getElementById('eemail'))
            document.getElementById('eemail').value = this.m_Email;
    },

    SubmitEventsLandingSearch: function () {
        Wipfli.AjaxAPI.WipfliAjax.EventsLandingSearch(this.m_ddlIndustry.value, this.m_ddlTopic.value, this.m_ddlSpeaker.value, this.m_ddlLocation.value, this.SubmitEventsSearch_Process.createDelegate(this));
    },
    SubmitEventsSearch_Process: function (response) {
        if (response.error) {
            //alert(response.error.Message);
        }
        else {
            var divMC = Ext.get("divEventsMC");
            var a = Ext.DomQuery.selectNode('data', response.value);
            divMC.update(a.firstChild.nodeValue);
        }
    },
    EventPaymentDetails: function (eventid, sessionids) {
        Wipfli.AjaxAPI.WipfliAjax.EventPaymentDetails(eventid, sessionids, this.EventPaymentDetails_Process.createDelegate(this));
    },

    EventPaymentDetails_Process: function (response) {
        if (response.error) {
            //alert(response.error.Message);
        }
        else {
            var divXML = Ext.get("divPaymentLocation");
            var a = Ext.DomQuery.selectNode('data', response.value);
            divXML.update(a.firstChild.nodeValue);
        }
    },

    EventConfirmationMsg: function (firstname, lastname, cost, eventid, sessionids) {
        Wipfli.AjaxAPI.WipfliAjax.EventConfirmationMsg(firstname, lastname, cost, eventid, sessionids, this.EventConfirmationMsg_Process.createDelegate(this));
    },

    EventConfirmationMsg_Process: function (response) {
        if (response.error) {
            //alert(response.error.Message);
        }
        else {
            var divXML = Ext.get("divEventMessage");
            var a = Ext.DomQuery.selectNode('data', response.value);
            divXML.update(a.firstChild.nodeValue);
        }
    },

    RegisterDialog: function (eventID) {
        Wipfli.AjaxAPI.WipfliAjax.EventRegisterRetrieve(eventID, this.RegisterDialog_Process.createDelegate(this));
    },
    RegisterDialog_Process: function (response) {
        if (response.error) {
            //alert(response.error.Message);
        }
        else {
            var divMC = Ext.get("divEventRegisterMC");
            var a = Ext.DomQuery.selectNode('data', response.value);
            divMC.update(a.firstChild.nodeValue);
            this.SetCookieFields();
        }
    },

    Register: function (eventID) {
        var msg = "";

        var efirstname = $("#efirstname").val();
        var elastname = $("#elastname").val();
        var etitle = $("#etitle").val();
        var ecompany = $("#ecompany").val();
        var eaddress = $("#eaddress").val();
        var ecity = $("#ecity").val();
        var estate = $("#estate").val();
        var ezip = $("#ezip").val();
        var eemail = $("#eemail").val();
        var ephone = $("#ephone").val();
        var efax = $("#efax").val();
        var ecost = $("input[name=ecost]").val();
        var eregcode = $("input[name=eregcode]").val();
        var eeventname = $("input[name=eeventname]").val();
        var edate = $("input[name=edate]").val();
        var elocation = $("input[name=elocation]").val();
        var econtactemail = $("input[name=econtactemail]").val();
        var estarjobid = $("input[name=estarjobid]").val();

        var sessionIDs = "";
        $("input.sessionCheckbox:checked").each(function () {
            if (sessionIDs != "") {
                sessionIDs += ", ";
            }
            sessionIDs += $(this).val();
        });

        //hard-code an exception for this specific event -- automatically select all session IDs when someone registers
        if (eventID == 8151) {
            sessionIDs += "8145, 8146, 8147, 8149"
            alert("You will automatically be registered for all four event sessions.");
        }

        if (efirstname == "") { msg += "-- First Name\n"; }
        if (elastname == "") { msg += "-- Last Name\n"; }
        if (ecompany == "") { msg += "-- Company\n"; }
        if (eaddress == "") { msg += "-- Address\n"; }
        if (ecity == "") { msg += "-- City\n"; }
        if (estate == "") { msg += "-- State\n"; }
        if (ezip == "") { msg += "-- Zip Code\n"; }
        if (!isValidEmail(eemail)) { msg += "-- E-mail Address\n"; }
        if (ephone == "") { msg += "-- Phone Number\n"; }


        if (msg != "") {
            alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");
        } else if (sessionIDs == "") {
            alert("You must select a session");
        } else {
            if ((ecost != "0") && (ecost != "")) {
                CookieSet("EventSessions", sessionIDs);
                CookieSet("EventID", eventID);
                CookieSet("EventName", eeventname);
                CookieSet("EventDate", edate);
                CookieSet("EventLocation", elocation);
                CookieSet("STARJobID", estarjobid);
                CookieSet("Cost", ecost);
            }
            Wipfli.AjaxAPI.WipfliAjax.EventRegister(eventID.toString()
                                                        , efirstname
                                                        , elastname
                                                        , etitle
                                                        , ecompany
                                                        , eaddress
                                                        , ecity
                                                        , estate
                                                        , ezip
                                                        , eemail
                                                        , ephone
                                                        , efax
                                                        , ecost
                                                        , eregcode
                                                        , eeventname
                                                        , edate
                                                        , elocation
                                                        , econtactemail
                                                        , sessionIDs
                                                        , this.Register_Process.createDelegate(this)
                                                        );
        }
    },
    Register_Process: function (response) {
        //if (response.error) {
            //alert(response.error.Message);
        //}
        //else {
            //set cookies
            CookieSet("FirstName", document.getElementById('efirstname').value);
            CookieSet("LastName", document.getElementById('elastname').value);
            CookieSet("Title", document.getElementById('etitle').value);
            CookieSet("Company", document.getElementById('ecompany').value);
            CookieSet("Address", document.getElementById('eaddress').value);
            CookieSet("City", document.getElementById('ecity').value);
            CookieSet("State", document.getElementById('estate').value);
            CookieSet("Zip", document.getElementById('ezip').value);
            CookieSet("Phone", document.getElementById('ephone').value);
            CookieSet("Fax", document.getElementById('efax').value);
            CookieSet("Email", document.getElementById('eemail').value);

            this.LoadCookies();

            if ((document.getElementById('ecost').value == "0") || (document.getElementById('ecost').value == "")) {
                alert('Thank you for registering.');
                document.location.href = 'Events.aspx';
            } else {
                document.location.href = 'EventPayment.aspx';
            }

        //}
    }



});

