﻿$(document).ready(function() {

    // Sign In Panel
    $(".signIn").click(function() {
        if ($(this).hasClass("accountOpen") == true) {
            $("#login").slideUp();
            $(this).removeClass("accountOpen");
        } else if ($(this).hasClass("accountOpen") == false) {
            $("#login").slideDown();
            $(this).addClass("accountOpen");
        };
        $(this).blur();
        return false;
    });

    $("#findTickets .btnSubmitDefault, #findTickets .btnSubmit").hover(
        function() {
            $(this).addClass("btnPress");
        },
        function() {
            $(this).removeClass("btnPress");
        }
    );

    $(".transcript div").hide();
    $(".transcript h3").addClass("js").text("Click to view Transcript");
    $(".transcript h3.js").click(function() {
        $(this).next().slideDown();
        $(this).text("Transcript").removeClass("js");
    });

    $(".popup").live("click", function() {

        // Popup Code
        var overlay = '<div id="popUpOverlay"></div>';
        var popup = '<div id="popUp"><div class="close">Close</div><div class="content">';
        popup += '  <a class="compare" href="#">Add to comparison</a>';
        popup += '  <h1>Newbury to Oxford</h1>';
        popup += '  <div class="box">';
        popup += '    <h2>16:50 Newbury to Reading</h2>';
        popup += '    <p>First Great Western train bound for London Paddington</p>';
        popup += '  </div>';
        popup += '  <p>Change trains at Reading</p>';
        popup += '  <div class="box">';
        popup += '    <h2>17:40 Reading to Oxford</h2>';
        popup += '    <p>First Great Western train bound for Newcastle</p>';
        popup += '  </div>';
        popup += '  <a class="compare" href="#">Add to comparison</a>';
        popup += '</div></div>';

        // Append Popup Code
        $("body").append(overlay).append(popup);

        // Be nice to IE6, Draw the overlay, Fade in
        // We can't use $(document).height() because of Opera
        $("#popUpOverlay").css("filter", "alpha(opacity=0)").height($("body").height()).fadeTo("slow", 0.3);

        // Animate the popup
        var top = ($(window).height() - $("#popUp").height()) / 2 + $(window).scrollTop() + "px";

        $("#popUp").animate({
            top: top
        }, 1000);

        // If this was a link, disable the effects
        $(this).blur();
        return false;

    });
    $("#popUp .close, #popUpOverlay").live("click", function() {

        // Animate the popup away
        $("#popUp").animate({ top: "-400px" }, 1000, function() {
            $("#popUp").remove();
        });

        // Undraw the overlay
        $("#popUpOverlay").fadeTo("slow", 0.0, function() {
            $("#popUpOverlay").remove();
        });

    });

    // Tabs and Panes
    
    // Choose Date Tab
    var myDate = location.href.split("?SelectedDate=");
    if (myDate[1]) {
        var myYear = myDate[1].substring(0, 4);
        var myMonth = myDate[1].substring(4, 6);
        var myDay = myDate[1].substring(6, 8);
        $(".calenderField").val(myDay + "/" + myMonth + "/" + myYear);
        $("#updates .pane, #updates .tabs li").removeClass("current");
        $("#updates #updateChoose, #updates .tabs li:has(a[href*=updateChoose])").addClass("current");
    };

    // Hide all non-current non-child panes
    $(".pane:not(.current):not(.pane .pane)").hide();
    // Tab Click event
    $(".tabs li a").click(function(t) {
        var t = ".pane";
        t += $(this).attr("href"); // target
        $(".pane:not(.pane .pane)").hide(); // Hide all non-child panes
        $(t).show(); // Show target pane
        $(this).parent().siblings().removeClass("current"); // Remove .current from all <li>
        $(this).parent().addClass("current"); // Add .current to this <li>
        $(this).blur();
        return false;
    });

    // Toggle (Travel updates)
    $(".toggle:not(a)").next().hide();
    $(".toggle:not(a)").click(function() {
        if ($(this).next().is(":visible")) {
            $(this).removeClass("open").next().hide();
        } else {
            $(this).addClass("open").next().show();
        };
    });

    //QuickTickets links
    $("a[rel*='QuickTicket']").click(function() {

        //TODO: add overlay with explanation because this process takes a while
        var href = $(this).attr("href");
        var qs = href.split("?")[1];
        var abstractJourneyId = "";
        var ticketCode = "";
        var routeRestrictionCode = "";
        if (qs) {
            //Pull values from querystring to pass to webservice
            var params = qs.split("&");
            for (var param in params) {
                var name = params[param].split("=")[0];
                var value = params[param].split("=")[1];
                if (name && value) {
                    if (name.indexOf("AbstractJourneyId") != -1) {
                        abstractJourneyId = value;
                    }
                    else if (name.indexOf("TicketCode") != -1) {
                        ticketCode = value;
                    }
                    else if (name.indexOf("RouteRestrictionCode") != -1) {
                        routeRestrictionCode = value;
                    }
                }
            }
            //Invoke webservice to retrieve XML
            getRetailXml(abstractJourneyId, ticketCode, routeRestrictionCode);
        }
        return false;
    });


    function getRetailXml(journey, code, route) {
        $.get(
            BasePath + "_WebServices/XcelPrototype.svc/GetXmlForQuickTicketFormPost",
            {
                abstractJourneyId: journey,
                ticketCode: code,
                routeRestrictionCode: route
            },
            function() {
                return submitQuickTicket.call(self, arguments);
            }
        );
    };


    function submitQuickTicket(response) {
        var form = "<form id='form1' name='form1' method='post' action='http://www.buytickets.crosscountrytrains.co.uk/DataPassedIn.aspx'>\
        <input type='hidden' id='RetailXml' name='RetailXml' />\
        </form>";
        $('body').append(form);
        $('input#RetailXml').val($.browser.msie || $.browser.safari ?
	        response.xml : response[0]);
        return $('#form1').submit();
    };

    /* Filter for Travel Updates */
    $("#updates .notxc").hide(); // Default as CrossCountry filter is checked on load
    $("#updates .filterCrossCountry input").change(function() {
        var pane = $(this).parents(".pane");
        $(pane).find(".notxc").hide();
        //$(pane).find(".xc").show();
    });
    $("#updates .filterAllTrains input").change(function() {
        var pane = $(this).parents(".pane");
        //$(pane).find(".xc").hide();
        $(pane).find(".notxc").show();
    });

});