﻿



if (document.domain.indexOf(".rejse-pris.") != -1)
    document.domain = "rejse-pris.dk";
else
if (document.domain.indexOf(".rejsekort.") != -1)
    document.domain = "rejsekort.dk";

Cufon.replace('.frontpage .intro h1');

// region hash-navigation

/*
var m_LoadRegionLock = false;
var m_LoadRegionTimeoutTs;
var m_HashChangedCheckJobTs;
var m_currentHash = null;
function HashChangedCheck() {
    if (!m_LoadRegionLock) {
        var newHash = document.location.hash;
        if (!newHash) return;
        if (m_currentHash != newHash) {
            OnHashChanged();
            HashChangedCheckJob(500);
            return;
        }
    }
    HashChangedCheckJob(500);
}
function HashChangedCheckJob(ms) {
    if (m_HashChangedCheckJobTs) {
        clearTimeout(m_HashChangedCheckJobTs);
        m_HashChangedCheckJobTs = 0;
    }
    m_HashChangedCheckJobTs = setTimeout("HashChangedCheck()", ms);
}
function OnHashChanged() {
        m_currentHash = GetSelectedRegionFromHash();
        var region = m_map.RegionList.RegionIds[m_currentHash];
        if (!region)
            return;
        region.Select();
        LoadRegion(m_currentHash);
}
function GetSelectedRegionFromHash()
{
    if (document.location.hash) {
        var h = document.location.hash.substring(1);
        if (h) {
            var ar = h.split("=");
            if ((ar && ar.length > 1) && rejsekortRegions[ar[1]]) {
                return ar[1];
            }
        }
    }
    return false;
}
function LoadRegion(regionId) {
    if (!regionId) return;
    if (m_LoadRegionLock) return;
    m_LoadRegionLock = 1;
    m_currentHash = "#region=" + regionId;
    window.location = m_currentHash;
    var url = redirectUrl + "?region=" + regionId;
    $j("#content").html("<p>...</p>");
    m_LoadRegionTimeoutTs = setTimeout("LoadRegionTimeout()",5000);
    $j("#content").load(url + "&ax=on #content", null, jLoadCallback);
}
function jLoadCallback(responseText, textStatus, XMLHttpRequest) {
    //Cufon.refresh('h1');
    m_LoadRegionLock = 0;
}

function LoadRegionTimeout() {
    if (m_LoadRegionTimeoutTs)
        clearTimeout(m_LoadRegionTimeoutTs);
    m_LoadRegionTimeoutTs = 0;
    m_LoadRegionLock = 0;
}
// endregion hash-navigation
*/

var Tracking = 
{
    Init: function()
    {
        // frontpage steps links
        $j(".frontpage .steps a, .frontpage .jumplinks a")
            .click(function()
            {
                var text = $j(this).text();
                
                // if image is pressed, text is empty => find headline anchor
                if (text == "")
                {
                    var a = $j(this).parent().find("h3 a");
                    text = a.text();
                }
                
                pageTracker._trackEvent('Forside-links', text);
                pageTracker._trackPageview('/Events/Forside/' + text);
                
                // TEST
                // console.log("link: " + text);
                // return false;
            });
            
            // track 'køb kort' (Hvilket kort skal jeg....)
            $j(".list.products-list .buy .btn a").click(function()
            {
                var product_name = $j(".btn a").parents(".product").prevAll("h3").text();
                var page_url = document.location.pathname;
                
                pageTracker._trackEvent('Køb', page_url, product_name);
                
                // TEST
                // console.log("BUY LINK: ", product_name, page_url);
                // return false;
            });
            
            // track 'Sammenlign rejsekort'
            $j("table.zebra .btn a[title]").click(function()
            {
                var product_name = $j(this).attr("title");
                var page_url = document.location.pathname;
                pageTracker._trackEvent('Køb', page_url, product_name);

                // TEST
                // console.log("BUY: ", product_name, page_url);
                // return false;
            });
            
            // track 'Galleri (downloads)'
            $j("table#download a").click(function()
            {
                var href = $j(this).attr("href");
                pageTracker._trackEvent('Download', href);
                pageTracker._trackPageview('/Events/' + href);
                
                // TEST
                // console.log("Download: ", href);
                // return false;
            });
            
            // track exit links    
            $j('a:not(.popupwindow)').filter(function() 
            {
	            var theHref = this;
	            if (theHref.hostname && theHref.hostname !== location.hostname) 
	            {
		            $j(theHref).not(".noAutoIcon").addClass("offSite");
		            $j(theHref).not(".noAutoLink").attr('target','_blank').bind('click keypress', function(event) 
		            {
			            var code = event.charCode || event.keyCode;
			            if (!code || (code && code == 13)) 
			            {
				            if (pageTracker)
				            {
					            var fixedLink = this.href;
					            fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
					            fixedLink = '/Events/Exit link/' + fixedLink;
					            
					            pageTracker._trackEvent('Exit link', fixedLink);
					            pageTracker._trackPageview(fixedLink);
					            
					            // TEST
					            // console.log("Exit link: ", fixedLink);
					            // return false;
				            };
			            };
		            });
	            };
            });
    
    }
    
}

var SearchBox =
{
    Init: function(selector)
    {
        var searchField = $j(selector);
        var searchDefaultText = "Søg på Rejsekort";
        
        searchField
            .focus(function()
            {
                if (searchField.val() == searchDefaultText)
                {
                    searchField.val("");
                }
                
	            $j(this).addClass("active");
            })
            .blur(function()
            {
                if (searchField.val() == "")
                {
                    $j(this)
                        .removeClass("active")
                        .val(searchDefaultText);
                }
	            
            });
            
	
	    if (searchField.val() == "")
	    {
	        searchField.val(searchDefaultText)
	    }
	    else
	    {
	        searchField.addClass("active");
	    }
	    
	    
    }
};

var IFrame =
{
    SetAutoheight: function(selector)
    {
        $j(selector).each(function()
        {
            $j(this).bind("load", function()
            {
                var iframe = $j(this);
                if (iframe[0].contentDocument)
                {
                    iframe.css("height", iframe[0].contentDocument.body.offsetHeight + 35);
                }
                else
                {
                    iframe.css("height", iframe[0].contentWindow.document.body.scrollHeight);
                }
            });
        });
    }
};


var $j = jQuery.noConflict();

$j(document).ready(function() 
{
    Tracking.Init();
    SearchBox.Init("#search .searchText");
    IFrame.SetAutoheight(".iframe_page");
    
    // map toggle options (regions/pilots)
    /*
    $j(".map-options a").click(function()
    {
        if ($j(this).is("#show-regions"))
        {
            //this.className='RadioGfx RadioGfxSelected';
            //document.getElementById('ShowPilotsBtn').className='RadioGfx';  
            mapTheRegions()
        }
        else
        {
           //this.className='RadioGfx RadioGfxSelected'; 
           //document.getElementById('ShowRegionsBtn').className='RadioGfx'; 
           mapThePilots() 
        }
        
        return false;
    });
    */

    $j(".jumplinks li:last").addClass("last");
    
    // hash navigation - getting selected region.
    /*
    var t = GetSelectedRegionFromHash();
    if (t)
        theRegionSelected = t;

    if (window.onhashchange)
        window.onhashchange = function() { if (!m_LoadRegionLock) OnHashChanged(); };
    else
        HashChangedCheckJob(1000);
    */
    
    $j("table.zebra tr:odd").addClass("odd");
    $j("body").supersleight();

    $j('.searchText').keydown(function(e) 
    {
        if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) 
        {
            e.preventDefault();
            eval($j('.searchButton').attr('href'));
            return false;
        }
    });

    /* faq list */
    var faq_container = $j("dl.faq");
    if (faq_container.size())
    {
       
    
        faq_container
            .find("dd").hide().end()
            .find("dt a").click(function()
            {
                $j(this).parent().next("dd").slideToggle();
                return false;
            });
        
        // if location has hash
        if (location.hash)
        {
            var hash = location.hash.substring(1);
            $j("a[name='"+hash+"']").next("a").click();
        }
        
    }

});


var m_map;
/*
Region google map
*/
function RegionMapInit(id, redirectUrl, highlightSelected, showResetRegionBtn) {
    var map = m_map = Creuna.GoogleMaps.maps[id];

    if (!map)
        return;

    if (redirectUrl)
        redirectUrl = decodeURIComponent(redirectUrl);
    else
        redirectUrl = "";

    var selectedRegion = theRegionSelected; // (from Page Goolge Map.xslt) //readCookie("region"); // jQuery.cookie("region");

    if (map.RegionList) {
        for (var id in map.RegionList.RegionIds) {
            var reg = map.RegionList.RegionIds[id];

            if (reg.Id == selectedRegion && highlightSelected == true) {
                // make selected Region from cookie pre selected.
                reg.Select();
            }

            reg.OnRegionClicked = function(e) {
                var newUrl = redirectUrl + "?region=" + this.Id;
                if (typeof (MapIsOnFrontpage) != "undefined" && MapIsOnFrontpage == 1) {
                    window.location = newUrl;
                    return;
                }
                // select, then redirect use when region is clicked.

                var wasSelected = this.Select();
                var selectedRegion = (wasSelected) ? this.Id : "all";
                LoadRegion(selectedRegion);
            };
        }
    }
    
    if (MapIsOnFrontpage == 1) 
    {
        map.legendOperational = new Legends(objRegionStyles.ready, txtRegionOprational, 0, 245, "map-label-frontpage");
        map.legendPlanned = new Legends(objRegionStyles.notReady, txtRegionPlanned, 150, 245, "map-label-frontpage");
    }
    else 
    {
        map.legendOperational = new Legends(objRegionStyles.ready, txtRegionOprational, 70, 210, "map-label");
        map.legendPlanned = new Legends(objRegionStyles.notReady, txtRegionPlanned, 235, 210, "map-label");
    }
    // NO HIDE
    map.addControl(map.legendOperational);
    map.addControl(map.legendPlanned);
    
    // add region button
    if (showResetRegionBtn)
    {
        map.addControl(new ResetRegionButton());
    }

}


/*
Legends (label/signatures)
*/
function Legends(regionStyle, caption, x, y, baseCssClass) 
{
    function LegendsControl() 
    {
    }
    
    LegendsControl.prototype = new GControl();
    
    LegendsControl.prototype.initialize = function(map) 
    {
        var legendContainer = $j("<div/>").addClass(baseCssClass);
        
        var box = $j("<div/>")
            .css(
            {
                "background-color": regionStyle.out.fill.color,
                "border-color": regionStyle.out.stroke.color,
                "-moz-border-radius": "6px"
            })
            .addClass(baseCssClass + "-signature");

        legendContainer.append(box);
        legendContainer[0].innerHTML += caption;
        map.getContainer().appendChild(legendContainer[0]);
        
        return legendContainer[0];
    }

    LegendsControl.prototype.getDefaultPosition = function() 
    {
        return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x, y));
    }
    
    return new LegendsControl();
}

/*
Reset region button [Hele Danmark]
*/
function ResetRegionButton() 
{
    function ResetRegionButtonControl() {
    }

    ResetRegionButtonControl.prototype = new GControl();

    ResetRegionButtonControl.prototype.initialize = function(map) {
        // wrapper div
        var resetBtn = document.createElement("div");
        resetBtn.className = "map-btn";

        // button link
        var resetLink = document.createElement("a");
        resetLink.innerHTML = txtAllDenmark;
        resetLink.href = "?region=all";

/*
        if (!theRegionSelected) {
            resetBtn.className += " map-btn-disabled";
            resetLink.href = "#";
            GEvent.addDomListener(resetLink, "click", function(evt) {
                return false;
                evt.preventDefault();
            });
        }
*/
        resetBtn.appendChild(resetLink);
        map.getContainer().appendChild(resetBtn);
        return resetBtn;
    }

    ResetRegionButtonControl.prototype.getDefaultPosition = function() {
        return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(40, 12));
    }

    return new ResetRegionButtonControl();
}

