﻿var myItinerary;

function LoginUser(email, password) {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);

    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/LoginUser",
        data: "{'email':'" + $(email).val() + "','password':'" + $(password).val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

            RequestAction($('#action').val());

            // google tracking login
            try {
                pageTracker._trackPageview("/TrackingEvents/ItineraryBuilder/LoginToLESI");
            } catch (err) { }
        },
        error: function(xhr, status, error) {

            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            var err = eval("(" + xhr.responseText + ")");
            $('#errorMessage').html(err.Message + '<br><br>');
        }
    });

}

function Cancel() {
    HideBoxes();
    
    if ($('#action').val() == 'loadItinerary')
        ToggleBox('#defaultBox', true);
    else
        ToggleBox('#actionBox', true);
        
    SetAction('');
 }

function RegisterUser(email, password, passwordConfirmation,chkCC) {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#registerBox', true);

    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/RegisterUser",
        data: "{'email':'" + $(email).val() + "','password':'" + $(password).val() + "','passwordConfirmation':'" + $(passwordConfirmation).val() + "','chkCC':'" + $(chkCC).attr('checked') + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            RequestAction($('#action').val());
            ToggleBox('#registerBox', false);
            ToggleBox('#actionBox', true);
            $('#registerBox').css('min-height', '225px');
            // google tracking register user
            try {
                pageTracker._trackPageview("/TrackingEvents/ItineraryBuilder/RegisterToLESI");
            } catch (err) { }
        },
        error: function(xhr, status, error) {
            $('#registerBox').css('min-height', '255px');
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#registerBox', false);
            var err = eval("(" + xhr.responseText + ")");
            $('#registerErrorMessage').html(err.Message + '<br><br>');
        }
    });

}

function RequestPricing(firstName, lastName, email, phone ) {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#requestPricingBox', true);

    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/RequestPrincing",
        data: "{'firstName':'" + $(firstName).val() + "','lastName':'" + $(lastName).val() + "','email':'" + $(email).val() + "','phone':'" + $(phone).val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            RequestAction($('#action').val());
            ToggleBox('#requestPricingBox', false);
            ToggleBox('#actionBox', true);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#requestPricingBox', false);
            $('#requestPricingBox').css('min-height', '215px');
            $('#requestPricingErrorMessage').html('');
            $(firstName).val('First Name');
            $(lastName).val('Last Name');
            $(email).val('Email Address');
            $(phone).val('Phone Number (not required)');
            
            // google tracking register user
            try {
                pageTracker._trackPageview("/TrackingEvents/ItineraryBuilder/RequestPricing");
            } catch (err) { }
        },
        error: function(xhr, status, error) {
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#requestPricingBox', false);
            var err = eval("(" + xhr.responseText + ")");
            $('#requestPricingBox').css('min-height', '255px');
            $('#requestPricingErrorMessage').html(err.Message + '<br><br>');
        }
    });

}

function LoadItinerary() {
    ToggleBox('#defaultBox', false);
    ToggleBox('#loginBox', true);
    SetAction('loadItinerary');
}
function CreateItinerary() {
    ToggleBox('#defaultBox', false);
    ToggleBox('#loginBox', true);

    // google tracking Create Itinerary
    try {
        pageTracker._trackEvent("ItineraryBuilder", "Create");
    } catch (err) { }
}
function ShowRegistrationBox() {
    ToggleBox('#loginBox', false);
    ToggleBox('#registerBox', true);

}

function ToggleBox(boxToToggle, visible) {
    if (!visible)
        $(boxToToggle).css('display', 'none');
    else
        $(boxToToggle).css('display', 'block');
}

function ToggleAjaxTransitionMyItinerary(loadingPanel, parentPanel, requestingInfo) {
    if (loadingPanel != "") {
        $(loadingPanel).height($(parentPanel).height() + 400);
        $(loadingPanel).width(206);

        if (requestingInfo)
            $(loadingPanel).fadeIn(200);
        else
            $(loadingPanel).fadeOut(500);
    }
    
}


function SetAction(actionToPerform) {
    $('#action').val(actionToPerform);
}


function AddToItinerary(categoryItemId) {
    HideBoxes();
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/AddItemToItinerary",
        data: "{'categoryItemId':'" + categoryItemId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'Add', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            $find("dataViewMyItinerary").set_data(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            $('#addToItinerary' + categoryItemId).css('display', 'none');
            $('#removeFromItinerary' + categoryItemId).css('display', 'block');
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function AddSpecialOfferToItinerary(specialOfferId) {
    HideBoxes();
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/AddItemSpecialOfferToItinerary",
        data: "{'specialOfferId':'" + specialOfferId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'Add', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            $find("dataViewMyItinerary").set_data(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            $('#addSpecialOfferToItinerary' + specialOfferId).css('display', 'none');
            $('#removeSpecialOfferFromItinerary' + specialOfferId).css('display', 'block');
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function AddEventToItinerary(eventId) {
    HideBoxes();
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/AddItemEventToItinerary",
        data: "{'eventId':'" + eventId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'Add', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            $find("dataViewMyItinerary").set_data(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            $('#addEventToItinerary' + eventId).css('display', 'none');
            $('#removeEventFromItinerary' + eventId).css('display', 'block');
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function AddToItinerarySample(itineraryId) {
    HideBoxes();
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/AddSampleItinerary",
        data: "{'itineraryId':'" + itineraryId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'AddSampleItinerary', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            $find("dataViewMyItinerary").set_data(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function SaveItinerary() {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/SaveItinerary",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            ToggleBox('#actionBox', true);
            ToggleBox('#loginBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);

            // google tracking Save Itinerary
            try {
                pageTracker._trackPageview("/TrackingEvents/ItineraryBuilder/SaveItinerary");
            } catch (err) { }

            try {
                var tracking = $('#itinerarySaveTracking')[0];
                tracking.innerHTML = "";
                var t1 = document.createElement("script");
                t1.type = "text/javascript";
                t1.src = "http://adreadytractions.com/pt/194011/?h=e43c62eda827ae899302";
                tracking.appendChild(t1);
                var t2 = document.createElement("img");
                t2.src = "http://r.casalemedia.com/r?u=137340";
                tracking.appendChild(t2);
                var t3 = document.createElement("img");
                t3.src = "http://smp.specificmedia.com/smp/v=5;m=1;t=4293;ts=" + new Date().getTime();
                tracking.appendChild(t3);
                var t4 = document.createElement("img");
                t4.src = "http://adserver.adtechus.com/pcsale/3.0/5230/0/0/0/BeaconId=30373;rettype=img;subnid=1;SalesValue=[AmountInCent];;custom1=[Building Itinerary Unsecure Pixel]";
                tracking.appendChild(t4);
                var t5 = document.createElement("iframe");
                t5.src = "//flex.atdmt.com/mstag/tag/959100f8-4e19-41c6-9ca8-5aadcfdcaba2/conversion.html?cp=5050&dedup=1";
                tracking.appendChild(t5);
                var t6 = document.createElement("img");
                t6.src = "http://r.casalemedia.com/r?u=161814";
                tracking.appendChild(t6);
            } catch (err) { }

            // show confirmation message
            alert('Your itinerary has been saved');
        },
        error: function(xhr, status, error) {
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);
            var err = eval("(" + xhr.responseText + ")");

            if (err.Message == "login") {
                ToggleBox('#actionBox', false);
                ToggleBox('#loginBox', true);
                SetAction('saveItinerary');
            }
        }
    });
}

function CreateNewItinerary() {

    // google tracking load Itinerary
    try {
        pageTracker._trackEvent("ItineraryBuilder", "StartOver");
    } catch (err) { }


    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/CreateNewItinerary",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
        myItinerary = null;
        if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            
            var categories = response.d;
            $find("dataViewMyItinerary").set_data(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);

        },
        error: function(xhr, status, error) {
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);
        }
    });
}

function RequestAction(action) {
    SetAction(action);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/GetItineraryLinkForAction",
        data: "{'action':'" + action + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            PerformAction(action, msg.d);
        },
        error: function(xhr, status, error) {
            var err = eval("(" + xhr.responseText + ")");

            if (err.Message == "login") {
                ToggleBox('#actionBox', false);
                ToggleBox('#loginBox', true);
            }
        }
    });
}

function EmailToAFriend(email, friendEmail) {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#emailBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/EmailToAFriend",
        data: "{'email':'" + $(email).val() + "','friendEmail':'" + $(friendEmail).val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            ToggleBox('#emailBox', false);
            ToggleBox('#actionBox', true);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#emailBox', false);
        },
        error: function(xhr, status, error) {
            var err = eval("(" + xhr.responseText + ")");
            $('#emailErrorMessage').html(err.Message + '<br>');
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#emailBox', false);
        }
    });
}


function LoadMyItineraryList() {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);

    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/LoadItinerary",
        data: "{ }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
        var categories = response.d;
        myItinerary = categories;
            $find("dataViewMyItinerary").set_data(categories);
            if (window.BindCategoriesOnMap != undefined) BindCategoriesOnMap(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            ToggleBox('#actionBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#defaultBox', false);
        },
        error: function(xhr, status, error) {
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
        }
    });

}

function LoadMyItineraryListFromSession() {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', true);

    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/LoadItineraryFromSession",
        data: "{ }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            var categories = response.d;
            myItinerary = categories;
            $find("dataViewMyItinerary").set_data(categories);
            if (window.BindCategoriesOnMap != undefined) BindCategoriesOnMap(categories);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            ToggleBox('#actionBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#defaultBox', false);
        },
        error: function(xhr, status, error) {
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
        }
    });

}

function EmailMobile(email) {
    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#emailBoxMobile', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/EmailMobile",
        data: "{'email':'" + $(email).val() + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            ToggleBox('#emailBoxMobile', false);
            ToggleBox('#actionBox', true);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#emailBoxMobile', false);
        },
        error: function(xhr, status, error) {
            var err = eval("(" + xhr.responseText + ")");
            $('#mobileErrorMessage').html(err.Message + '<br>');
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#emailBoxMobile', false);
        }
    });
}

function PerformAction(actionToPerform, response) {
    switch (actionToPerform) {
        case "loadItinerary":
            LoadMyItineraryList();

            // google tracking load Itinerary
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Open");
            } catch (err) { }
            break;
        case "saveItinerary":
            SaveItinerary();
            break;
        case "shareOnFacebook":
            ToggleBox('#actionBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#registerBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            window.open(response);

            // google tracking share On Facebook
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Share", "Facebook");
            } catch (err) { }
            break;
        case "printItinerary":
        
            ToggleBox('#actionBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#registerBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            window.open(response);

            // google tracking share On Facebook
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Print", "Itinerary");
            } catch (err) { }
            break;
        case "emailToAFriend":
            
            ToggleBox('#emailBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#registerBox', false);
            ToggleBox('#actionBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            // google tracking email To A Friend
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Share", "Email");
            } catch (err) { }
            break;
        case "mobileAFriend":
            
            ToggleBox('#emailBoxMobile', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#registerBox', false);

            ToggleBox('#actionBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);

            // google tracking mobile A Friend
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Share", "Mobile");
            } catch (err) { }
            break;
        case "requestPricing":
            
            ToggleBox('#requestPricingBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#requestPricingBox', true);
            ToggleBox('#actionBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            // google tracking mobile A Friend
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Request Pricing");
            } catch (err) { }
            break;
        case "getURL":
            ToggleBox('#actionBox', true);
            ToggleBox('#loginBox', false);
            ToggleBox('#registerBox', false);
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#loginBox', false);
            window.open(response);
            try {
                pageTracker._trackEvent("ItineraryBuilder", "Share", "GetURL");
            } catch (err) { }
            break;
    }
    SetAction('');
}

function onMyItineraryCommand(sender, args) {
    switch (args.get_commandName()) {
        case "Remove":
            RemoveFromItinerary(args.get_commandArgument());
            break;
        case "RemoveEvent":
            RemoveEventFromItinerary(args.get_commandArgument());
            break;
        case "ToggleDescription":

            if ($(args.get_commandArgument()).css('display') == 'none')
                $(args.get_commandArgument()).fadeIn(200);
            else
                $(args.get_commandArgument()).fadeOut(500);
            break;
    }
}

function RemoveFromItinerary(categoryItemId) {
    HideBoxes();

    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/RemoveItemFromItinerary",
        data: "{'categoryItemId':'" + categoryItemId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'Remove', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            $find("dataViewMyItinerary").set_data(categories);
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);
            $('#addToItinerary' + categoryItemId).css('display', 'block');
            $('#removeFromItinerary' + categoryItemId).css('display', 'none');
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function RemoveSpecialOfferFromItinerary(specialOfferId) {
    HideBoxes();

    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/RemoveItemSpecialOfferFromItinerary",
        data: "{'specialOfferId':'" + specialOfferId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'Remove', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            $find("dataViewMyItinerary").set_data(categories);
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);
            $('#addSpecialOfferToItinerary' + specialOfferId).css('display', 'block');
            $('#removeSpecialOfferFromItinerary' + specialOfferId).css('display', 'none');
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function RemoveEventFromItinerary(eventId) {
    HideBoxes();

    ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', true);
    $.ajax({
        type: "POST",
        url: "/itinerary/business-service.aspx/RemoveItemEventFromItinerary",
        data: "{'eventId':'" + eventId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            try { pageTracker._trackEvent('ItineraryBuilder', 'Remove', response.d.ItemTitle); } catch (err) { }
            var categories = response.d.Items;
            myItinerary = categories;
            $find("dataViewMyItinerary").set_data(categories);
            if (window.RefreshSelectedData != undefined) RefreshSelectedData();
            ToggleAjaxTransitionMyItinerary('#myItineraryLoadingPanel', '#actionBox', false);
            $('#addEventToItinerary' + eventId).css('display', 'block');
            $('#removeEventFromItinerary' + eventId).css('display', 'none');
            ToggleBox('#defaultBox', false);
            ToggleBox('#actionBox', true);
        }
    });
}

function HideBoxes() {
    ToggleBox('#loginBox', false);
    ToggleBox('#registerBox', false);
    ToggleBox('#emailBoxMobile', false);
    ToggleBox('#emailBox', false);
    ToggleBox('#requestPricingBox', false);
}


function SwitchInput(inputToShow, inputToHide) {

    document.getElementById(inputToShow).style.display = "block";
    document.getElementById(inputToHide).style.display = "none";
    document.getElementById(inputToShow).focus();
}
