﻿
function getQuerystring(key, default_) {
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
};

$(document).ready(function () {
    $('.broker-selector').val(getQuerystring('l'));
    $('.broker-selector').dropkick({
        theme: 'mytheme',
        width: 216,
        startSpeed: 500,
        change: function (value, label) {
            location.href = location.pathname + '?l=' + value;
        }
    });

    //setup metadata for validation plugin
    $.metadata.setType("attr", "validate");

    //Use this function to center the blockUI dialog (make this call after blockUI is used: $('.blockUI.blockMsg').blockUICenter();)
    $.fn.blockUICenter = function () {
        this.css("position", "absolute");
        this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");
        this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");
        return this;
    }

    //blockUI defaults
    $.blockUI.defaults.css.border = 'none';
    $.blockUI.defaults.css.width = 'auto';
    $.blockUI.defaults.css.backgroundColor = 'transparent';

    //init top nav items
    initNewsletterDownload();

    //init HTML forms
    initNewsletterForm();
    initQuestionForm();

    function initNewsletterDownload() {

        //setup newsletter top item
        $("#hd-newsletter-download").click(function () {
            $("#hd-newsletter-download-items").toggle();
        });
        //setup newsletter sub items
        $("#hd-newsletter-download-items").hover(
          function () {
              $("#hd-newsletter-download-items").show();
          },
          function () {
              $("#hd-newsletter-download-items").hide();
          }
        );

    }

    function initNewsletterForm() {

        //Newsletter form validation
        $("#newsletter-form").validate({
            rules: {
                "newsletter-printed": {
                    required: function () {
                        return $('input:radio[name=newsletter-existing]:checked').val() == 'Y';
                    }
                }
            }
        });

        //Newsletter button (top menu)
        $('#newsletter-signup-btn').click(function () {
            $.blockUI({ message: $('#newsletter-form') });
            $('.blockUI.blockMsg').blockUICenter();
        });

        //Newsletter - existing customer radio
        $('input:radio[name=newsletter-existing]').click(function () {
            //show/hide the printed area depending on selected value
            var existing = $(this).val();
            if (existing == 'Y') {
                $("#newsletter-printed").show();
            } else {
                $("#newsletter-printed").hide();
            }
        });

        //Newsletter form submit
        $('#newsletter-signup-submit').click(function () {

            //validate the form
            var msg = '';
            var formValid = $("#newsletter-form").valid();
            if (formValid == true) {

                //collect form vars and submit to db
                var email = $("#newsletter-email").val();
                var firstName = $("#newsletter-fname").val();
                var lastName = $("#newsletter-lname").val();
                var existingCustomer = $('input:radio[name=newsletter-existing]:checked').val();
                var eNewsLetterOnly = $('input:radio[name=newsletter-printed]:checked').val();

                $.ajax({
                    type: "POST",
                    url: "../services.asmx/NewsletterSignup",
                    cache: false,
                    async: true,
                    contentType: "application/json; charset=utf-8",
                    data: '{email:"' + email + '", firstName:"' + firstName + '", lastName:"' + lastName + '", existingCustomer:"' + existingCustomer + '", eNewsLetterOnly:"' + eNewsLetterOnly + '"}',
                    dataType: "json",
                    complete: function () {
                        msg = 'complete';
                    },
                    success: ajaxSuccessful,
                    error: ajaxFailure
                });

                _gaq.push(['_trackEvent', 'form', 'submit', 'newsletter']); //google tracking
                //reset the form for next time
                document.getElementById('newsletter-form').reset();
                $("#newsletter-printed").hide(); //need to hide this area for reset
                $.blockUI({ message: $("#newsletter-thanks") }); //show the thankyou message  
                $('.blockUI.blockMsg').blockUICenter();
                setTimeout($.unblockUI, 4000); //leave the thankyou for a bit...

            }

        });

        //Newsletter form close
        $('#newsletter-signup-close').click(function () {
            _gaq.push(['_trackEvent', 'form', 'close', 'newsletter']); //google tracking
            //reset the form for next time
            document.getElementById('newsletter-form').reset();
            $.unblockUI();
            return false;
        });

    }

    function initQuestionForm() {

        //Question form validation
        $("#question-form").validate();

        //Question link 
        $('#question-btn').click(function () {
            $.blockUI({ message: $('#question-form') });
            $('.blockUI.blockMsg').blockUICenter();
        });

        //Question form submit
        $('#question-submit').click(function () {

            //validate the form
            var msg = '';
            var formValid = $("#question-form").valid();
            if (formValid == true) {

                //collect form vars and submit to db
                var firstName = $("#question-fname").val();
                var lastName = $("#question-lname").val();
                var city = $("#question-city").val();
                var email = $("#question-email").val();
                var phone = $("#question-phone").val();
                var commentsQuestions = $("#question-qtext").val();
                //collect interests
                var interests = '';
                $('.question-interest:checked').each(function (index) {
                    interests = interests + $(this).val() + ', '
                });
                if ($("#question-interest-other-text").val() != '') {
                    interests = interests + ' Other (' + $("#question-interest-other-text").val() + ')';
                }

                $.ajax({
                    type: "POST",
                    url: "../services.asmx/InsertOnlineQuestion",
                    cache: false,
                    async: true,
                    contentType: "application/json; charset=utf-8",
                    data: '{firstName:"' + firstName + '", lastName:"' + lastName + '", city:"' + city + '", email:"' + email + '", phone:"' + phone + '", interests:"' + interests + '", commentsQuestions:"' + commentsQuestions + '"}',
                    dataType: "json",
                    complete: function () {
                        msg = 'complete';
                    },
                    success: ajaxSuccessful,
                    error: ajaxFailure
                });

                _gaq.push(['_trackEvent', 'form', 'submit', 'ask_us_anything']); //google tracking
                //reset the form for next time
                document.getElementById('question-form').reset();
                $.blockUI({ message: $("#question-thanks") }); //show the thankyou message  
                $('.blockUI.blockMsg').blockUICenter();
                setTimeout($.unblockUI, 2500); //leave the thankyou for a bit...

            }

        });

        //Question form close
        $('#question-close').click(function () {
            _gaq.push(['_trackEvent', 'form', 'close', 'ask_us_anything']); //google tracking
            //reset the form for next time
            document.getElementById('question-form').reset();
            $.unblockUI();
            return false;
        });

    }

});

//AJAX Handlers
function ajaxSuccessful(data, status) {
	var msg = 'ajaxSuccessful: success';
	//console.log(msg);
}

function ajaxFailure(xmlRequest) {
	var msg = 'ajaxFailure: FAIL: \n\r xmlRequest.status=' + xmlRequest.status + ' \n\r xmlRequest.statusText=' + xmlRequest.statusText + '\n\r xmlRequest.responseText=' + xmlRequest.responseText;
    //alert(msg);
	//console.log(msg);
}

function ajaxFailureDetailed(objXMLHttpRequest, textStatus, errorThrown) {
	var msg = 'ajaxFailureDetailed: FAIL : objXMLHttpRequest.responseText=' + objXMLHttpRequest.responseText;
	//console.log(msg);
}

