﻿/*
* Globals used
*/
var imgArray = [];
var imageIndex = 0;
var imgArrayDetail = [];
var imageIndexDetail = 0;
var oInterval;
var paused = false;
var arrPages = [];
var enableOverviewPagination = true;
var overviewExpanded = false;
var iconPath = "assets/images/map/markers/";
var imagePath = "assets/images/map/pois/";
var poiCount = 0;
var poiCounter = 0;

function loadHomepageImages() {
    loadImages("homepage");
}

/*
* Load XML via jQuery and init array oif images for the homepage slideshow
*/

function loadImages(filter) {
    var linkFilter = filter;
    jQuery.get("assets/data/data.xml?ts=" + (new Date()).getTime(), {}, function(data) {
        jQuery(data).find("marker").each(function() {
            var node = jQuery(this);
            var featured = node.attr(filter);
            if (featured == "1") { //featured attr determines if the image is shown on this page homepage
                if (filter == "homepage")
                    linkFilter = getOtherFilter(node);
                var title = node.attr("title");
                var icon = iconPath + node.attr("icon");
                var imgURL = imagePath + node.attr("imgURL");
                var pageNum = node.attr("pageNum");
                var uid = node.attr("uid");
                if (imgURL != imagePath && imgURL != null)
                    imgArray.push({ filter: linkFilter, imgURL: imgURL, clickURL: 'http://clickurl.com', target: '_self', altText: title, uid: uid, pageNum: pageNum });
            }
        });
        //Set initial BG
        jQuery("#maincontent_home").css('backgroundImage', 'url(' + imgArray[0].imgURL + ')');
        //Set initial Pagenum
        jQuery("#pageNum").html(imgArray[0].pageNum);
        updateDetails();
        initSlideshow();
        BindClickHandlers(filter);
    });
}

function getOtherFilter(node) {
    var ret = "homepage";
    if (node.attr("lighthouses") == "1") ret = "lighthouses";
    if (node.attr("cuisine") == "1") ret = "cuisine";
    if (node.attr("golf") == "1") ret = "golf";
    if (node.attr("confederationtrail") == "1") ret = "confederationtrail";
    if (node.attr("beaches") == "1") ret = "beaches";
    if (node.attr("anne") == "1") ret = "anne";
    if (node.attr("top") == "1") ret = "top";
    return ret;
}


function loadPOILinks(filter) {
    var html = "";
    var linksAdded = 0;
    jQuery.get("assets/data/data.xml?ts=" + (new Date()).getTime(), {}, function(data) {
        poiCount = jQuery(data).find("marker").size();
        jQuery(data).find("marker").each(function() {
            var node = jQuery(this);
            var featured = node.attr(filter);
            poiCounter++;
            if (featured == "1") { //featured attr determines if the image is shown on this page homepage
                var title = node.attr("title");
                var icon = iconPath + node.attr("icon");
                var imgURL = imagePath + node.attr("imgURL");
                var pageNum = node.attr("pageNum");
                var uid = node.attr("uid");
                linksAdded++;
                if (linksAdded <= linkCount) {
                    html += '<li><a href="' + filter + 'map.htm?filter=' + filter + '&uid=' + uid + '">' + title + '</a></li>';
                }
            }
            if (poiCount == poiCounter) {
                jQuery("#poiList").append(html);
                jQuery('.mcol').makeacolumnlists({ cols: linkCols, colWidth: linkColWidth, equalHeight: false, startN: 1 });
                //alert(poiCount);
            }
        });
    });
}

/*
* Load XML via jQuery and init array of images for the detail overlay iframe
*/

function loadDetailImages(uid) {
    jQuery.get("assets/data/data.xml?ts=" + (new Date()).getTime(), {}, function(data) {
        jQuery(data).find("marker").each(function() {
            var node = jQuery(this);
            var id = node.attr("uid");
            if (uid == id) {
                var icon = iconPath + node.attr("icon");
                var overview = jQuery(node).find("overview");
                var page = jQuery(overview).find("page");
                var title = node.attr("title");
                if (page.text() != null && page.text() != "") {
                    //Add marker icon in top left
                    jQuery("#poiNumber").attr("src", icon);
                    jQuery("#poiNumber").show();

                }
                else {
                    //Hide things
                    jQuery("#poiNumber").hide();
                    jQuery("#iframe_poi_inner_lower").hide();
                    jQuery("#imgPOI").height(307);
                }
                setupOverviewPagination(overview);
                jQuery("#overviewTitle").html(jQuery(overview).find("title").text());
                trkr2('POI_Detail_Viewed', jQuery(overview).find("title").text());
                jQuery("#iframe_poi_inner").show();
                var hardLinks = '<br/><a target="_blank" href="http://www.tourismpei.com/guide/index.php3">Order Visitors Guide</a><br/><a target="_blank" href="http://www.tourismpei.com/pei-downloads">Download Visitors Guide</a>';
                jQuery("#iframe_poi_inner_lower_right_linkscopy").html(jQuery(node).find("links").text().replace('<a href', '<a target="_blank" onclick="trkr(\'morei865\', this.href, null);" href') + hardLinks);
                jQuery(node).find("asset").each(function() {
                    var asset = jQuery(this);
                    var url = imagePath + asset.attr("url");
                    imgArrayDetail.push({ url: url });
                });
            }

        });
        //Set initial BG
        jQuery("#imgPOI").css('backgroundImage', 'url(' + imgArrayDetail[0].url + ')');
        jQuery("#detailWindow_menucount").html((imageIndex + 1) + ' of ' + imgArrayDetail.length);
        if (imgArrayDetail.length < 2) {
            jQuery("#detailWindow_menucontrol").hide();
            jQuery("#detailWindow_Closer").addClass("detailWindow_CloseStandalone");
        } else {
            initSlideshowDetail();
            jQuery("#detailWindow_menucontrol").show();
            jQuery("#detailWindow_Closer").addClass("detailWindow_Close");
        }
        //Set initial Pagenum
        //jQuery("#pageNum").html(imgArray[0].pageNum);

        BindClickHandlersDetail();
    });
}

/* 
* Put content into correct pages and hookup links
*/

function setupOverviewPagination(overview) {
    jQuery(overview).find("page").each(function() {
        var pageContent = jQuery(this);
        arrPages.push(pageContent.text());
        jQuery("#detailOverlayOverviewPageNav").append("<a href='javascript:void(0);' onclick='changeOverviewPageContent(" + (arrPages.length - 1) + ")'>" + arrPages.length + "</a>&nbsp;");
    });
    jQuery("#overviewDescription").html(arrPages[0]);
    jQuery("#detailOverlayOverviewPageNav").hide();
}

function changeOverviewPageContent(index){
    jQuery("#overviewDescription").html(arrPages[index]);
}


/* 
* Initialize Slideshow for homepage
*/

function initSlideshow() {
    $j(window).resize(function() {
        //$j('#maincontent_home').BgImageTransition = null;
        //alert('done');
    });
    $j(function() {
        paused = false;
        oInterval = setInterval(function() {

            (imageIndex < imgArray.length - 1) ? imageIndex++ : imageIndex = 0;                

            var currentImg = imgArray[imageIndex];

            $j('#maincontent_home').BgImageTransition(currentImg.imgURL, { callback: updateDetails });
        }, 7000)
    });
}

/* 
* Initialize Slideshow within the detail overlay iframe
*/

function initSlideshowDetail() {
    $j(function() {
        paused = false;
        oInterval = setInterval(function() {

        (imageIndex < imgArrayDetail.length - 1) ? imageIndex++ : imageIndex = 0;

        var currentImg = imgArrayDetail[imageIndex];

            $j('#imgPOI').BgImageTransition(currentImg.url, { callback: updateCounter });
        }, 7000)
    });
}


/*
* Update the page num and map links on the homepage
* Called by the timer function and manual controls
*/
function updateDetails() {
    jQuery("#pageNum").html(imgArray[imageIndex].pageNum);
    jQuery("#guideLink").attr('href', 'http://issuu.com/tourismpei/docs/pei-visitors-guide/' + imgArray[imageIndex].pageNum + '?mode=embed&layout=http://skin.issuu.com/v/light/layout.xml&showFlipBtn=true&autoFlip=false');
}

/*
* Update the "1 of 18" in the detail overlay iframe
*/
function updateCounter() {
    jQuery("#detailWindow_menucount").html((imageIndex + 1) + ' of ' + imgArrayDetail.length);
    
}

/*
* Click handlers for the homepage slideshow controls (back, next, pause, play)
*/
function BindClickHandlers(filter) {
    //Back
    $j("#menuback").click(function() {
        clearInterval(oInterval);
        imageIndex == 0 ? imageIndex = (imgArray.length - 1) : imageIndex--;
        jQuery("#maincontent_home").css('backgroundImage', 'url(' + imgArray[imageIndex].imgURL + ')');
        updateDetails();
        initSlideshow();
    });

    //Pause
    $j("#menupause").click(function() {
        //Set icon to "Play"?
        if (paused) {
            jQuery("#pauseplay").attr("src", "assets/images/menucontrol_pause.jpg");
            initSlideshow();
        }
        else {
            clearInterval(oInterval);
            jQuery("#pauseplay").attr("src", "assets/images/menucontrol_play.jpg");
            paused = true;
        }
    });

    //Next
    $j("#menuforward").click(function() {
        clearInterval(oInterval);
        (imageIndex < imgArray.length - 1) ? imageIndex++ : imageIndex = 0;
        jQuery("#maincontent_home").css('backgroundImage', 'url(' + imgArray[imageIndex].imgURL + ')');
        updateDetails();
        initSlideshow();
    });

    //mapit
    $j("#menumapit").click(function() {
        //alert(imgArray[imageIndex].filter);
        location.href = imgArray[imageIndex].filter + 'map.htm?filter=' + imgArray[imageIndex].filter + '&uid=' + imgArray[imageIndex].uid;
    });
}

/*
* Click handlers for the detail overlay iFrame controls (back, next, pause, play)
*/
function BindClickHandlersDetail() {
    //Back
    $j("#detailWindow_menuback").click(function() {
        clearInterval(oInterval);
        imageIndex == 0 ? imageIndex = (imgArrayDetail.length - 1) : imageIndex--;
        jQuery("#imgPOI").css('backgroundImage', 'url(' + imgArrayDetail[imageIndex].url + ')');
        updateCounter();
        initSlideshowDetail();
    });

    //Pause
    $j("#detailWindow_menupause").click(function() {
        //Set icon to "Play"?
        if (paused) {
            jQuery("#pauseplay").attr("src", "assets/images/menucontrol_poi_pause.png");
            initSlideshowDetail();
        }
        else {
            clearInterval(oInterval);
            jQuery("#pauseplay").attr("src", "assets/images/menucontrol_poi_play.png");
            paused = true;
        }
    });

    //Next
    $j("#detailWindow_menuforward").click(function() {
        clearInterval(oInterval);
        (imageIndex < imgArrayDetail.length - 1) ? imageIndex++ : imageIndex = 0;
        jQuery("#imgPOI").css('backgroundImage', 'url(' + imgArrayDetail[imageIndex].url + ')');
        updateCounter();
        initSlideshowDetail();
    });
}

/*
* Hide the detailOverlay iFrame etc
*/

function hideDetailOverlay() {

    jQuery("#detailOverlay", top.document).fadeOut();
    jQuery("#visitorsguide_blue", top.document).fadeOut();
}

function expandDetailOverlay() {
    if (overviewExpanded) {
        overviewExpanded = false;
        jQuery("#iframe_poi_inner_lower_left").animate({ top: '+=205px', height: '102px' }, 'slow');
        //Change the Collapse to More
        jQuery("#morecollapse").attr("src", "assets/images/b_expand.png");
        //Hide the paging
        jQuery("#detailOverlayOverviewPageNav").hide();
        //Show first page in case it is not already
        jQuery("#overviewDescription").html(arrPages[0]);
    }
    else {
        overviewExpanded = true;
        jQuery("#iframe_poi_inner_lower_left").animate({ top: '-=205px', height: '287px' }, 'slow');
        //Change the More to Collapse
        jQuery("#morecollapse").attr("src", "assets/images/b_collapse.png");
        if(enableOverviewPagination)
        if (arrPages.length > 1 && enableOverviewPagination)
            jQuery("#detailOverlayOverviewPageNav").show();
    }

}


function showShareWidget() {
    jQuery("#btnShare").attr("src", "assets/images/subnav_share_up.jpg");
    jQuery("#sharePanel").show().animate({ top: '+=125px', height: '125px' }, 'slow', function() {
        //Change share image arrow direction
        //jQuery("#btnShare").attr("src", "assets/images/subnav_share_up.jpg");
    });
}

function hideShareWidget() {
    jQuery("#btnShare").attr("src", "assets/images/subnav_share_down.jpg");
    jQuery("#sharePanel").animate({ top: '-=125px', height: '0px' }, 'slow', function() {
        jQuery("#sharePanel").hide();
        //Change share image arrow direction
        //jQuery("#btnShare").attr("src", "assets/images/subnav_share_down.jpg");
    });
}

function showShareWidgetHome() {
    jQuery("#btnShare").attr("src", "assets/images/subnav_share_down.jpg");
    jQuery("#sharePanelHome").show().animate({ top: '-=150px', height: '150px' }, 'slow', function() {
        //Change share image arrow direction
        //jQuery("#btnShare").attr("src", "assets/images/subnav_share_down.jpg");
    });
}

function hideShareWidgetHome() {
    jQuery("#btnShare").attr("src", "assets/images/subnav_share_up.jpg");
    jQuery("#sharePanelHome").animate({ top: '+=150px', height: '0px' }, 'slow', function() {
        jQuery("#sharePanelHome").hide();
        //Change share image arrow direction
        //jQuery("#btnShare").attr("src", "assets/images/subnav_share_up.jpg");
    });
}
