﻿function findFormFields(parent) {
    selector = parent + " input," + parent + " select," + parent + " textarea";
    return $(selector);
}

function getAllFormFields() {
    return findFormFields("#AppointmentWizard");
}

function trackPage(index) {
    var trackPagePrefix = Enilon.BrowserConfiguration.TrackPagePrefix;
    if (typeof (_gat) != 'undefined') {
        var pageTracker = _gat._getTracker("UA-5033753-1");
        pageTracker._initData();
        pageTracker._trackPageview();

        if (index < 3) {

            var url = "/appointment/step" + (index + 1);
            if (typeof (trackPagePrefix) !== 'undefined') 
                url = trackPagePrefix + url;

            pageTracker._trackPageview(url);
        }
    }

    if ($('#otherTracking').length == 0)
    {
        $('#AppointmentWizard').append('<div id="otherTracking">');
        var openXID = '63';
        var centroID = '129882'; //default to step 1

        //openX Tracking Code
        var p = (location.protocol=='https:'?'https://d.tradex.openx.com/tjs.php':'http://d.tradex.openx.com/tjs.php');
        var r = Math.floor(Math.random() * 999999);
        $('#otherTracking').append("<" + "script language='JavaScript' type='text/javascript' src='" + p + "?trackerid=" + openXID + "&amp;append=0&amp;r=" + r + "'><" + "\/script>");
        $('#otherTracking').append("<noscript><div id='m3_tracker_" + openXID + "' style='position: absolute; left: 0px; top: 0px; visibility: hidden;'><img src='http://d.tradex.openx.com/ti.php?trackerid=63&amp;cb=%%RANDOM_NUMBER%%' width='0' height='0' alt='' /></div></noscript>");

        //centroTracking Code
        var ebRand = Math.random() + '';
        ebRand = ebRand * 1000000;
        $('#otherTracking').append("<scr" + "ipt src='HTTP://bs.serving-sys.com/BurstingPipe/ActivityServer.bs?cn=as&amp;ActivityID=" + centroID + "&amp;rnd=" + ebRand + "'></scr" + "ipt>");
        $('#otherTracking').append("<noscript><img width=\"1\" height=\"1\" style=\"border:0\" src=\"HTTP://bs.serving-sys.com/BurstingPipe/ActivityServer.bs?cn=as&amp;ActivityID=" + centroID + "&amp;ns=1\"/></noscript>");
    }
        
}

function onSelectDate(dateText, inst) {
    var selectedDate = Date.parse(dateText);
    var page = "/CustomControls/AppointmentAjax.aspx/GetTimeList"
    $.ajax({
        type: "POST",
        url: page,
        data: "{ 'selectedDateObj' : '" + dateText + "' }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: onSelectDateSuccess
    });
}

function onSelectDateSuccess(data) {
    $(".RequestedTimeList").attr('disabled', false);
    var options = $(".RequestedTimeList");
    $(".RequestedTimeList > option").remove();
    options.append($("<option />").val("").text("---Select a time---"));
    for (var key in data.d) {
        options.append($("<option />").val(key).text(data.d[key]));
    }
}

function disableDays(date) {
    var parsedDate = Date.parse(date);
    for (var i = 0; i < exclusionsJs.length; i++) {
        if (parsedDate == Date.parse(exclusionsJs[i])) return [false, ''];
    }
    return [true, ''];
}

function saveAppointment() {
    submitRooms();
    fields = getAllFormFields();
    var values = fields.serialize();
    var url = "/CustomControls/AppointmentSave.aspx?devicecode=" + Enilon.BrowserConfiguration.DeviceCode;   //for tracking kiosk1, kiosk2, etc.
    $.ajax({
      type: "POST",
      url: url,
      data: values,
      success: function (data) {
        trackPage(3);
        window.location = Enilon.BrowserConfiguration.ConfirmationPage; // +"?d=" + new Date();
      }
    });
}

function submitRooms() {
    var ct = $(".SelectionsDivTemplate").length;

    for (var i = 0; i < ct; i++) {
        var homeArea = $($(".HomeAreaList")[i]);
        var areaType = $($(".AreaTypeList")[i]);

        homeArea.attr("name", "HomeAreaList_" + i);
        areaType.attr("name", "AreaTypeList_" + i);

    }
}


function goBack(e) {

    e.preventDefault();
    clearValidation();
    $(".AppointmentSubmit").hide();
    $(".AppointmentNext").show();

    tabs.prev();

    if (tabs.getIndex() == 0) {
        $("#AppointmentBack").hide();
    }
    else {
        $("#AppointmentBack").show();
    }
        

    trackPage(tabs.getIndex());
}

function goNext(e) {
    //console.log('next');
    e.preventDefault();
    if (checkValidation() == false) return;
    if (tabs.getIndex() == 1) {
        $(".AppointmentSubmit").show();
        $(".AppointmentNext").hide();
    }
    $("#AppointmentBack").show();
    $(window).scrollTo('0');
    tabs.next();
    trackPage(tabs.getIndex());
}


$.tools.validator.fn("[type=referralcode]", function (el, value) {
    valid = true;
    if (value != "") {
        $.ajax({
            type: "POST",
            url: "/CustomControls/AppointmentValidateReferralCode.aspx",
            data: $("#ReferralCode").serialize(),
            async: false,
            success: function (data) {
                if (data != "valid") {
                    // data will be the error message
                    $("#ReferralCode").attr("data-message", data);
                    valid = false;
                }
            }
        });
    }

    return valid;
});




