﻿//(function() {

var animateX = -20;
var animateInterval = 10;

var currentPage = null;
var currentDialog = null;
var currentWidth = 0;
var currentHash = location.hash;
var hashPrefix = "#";
var pageHistory = [];
var dtlastSwipe = new Date();
var _alert = null;

addEventListener("load", function(event) {
    var body = document.getElementsByTagName("body")[0];
    for (var child = body.firstChild; child; child = child.nextSibling) {
        if (child.nodeType == 1 && child.getAttribute("selected") == "true") {
            showPage(child);
            break;
        }
    }

    setInterval(checkOrientAndLocation, 300);
    setTimeout(hideAddress, 100);
}, false);

function hideAddress() {

    window.scrollTo(0, 1); // pan to the bottom, hides the location bar
}

addEventListener("click", function(event) {
    //event.preventDefault();

    if (_alert) {
        _alert.style.display = "none";
        _alert = null;
        return;
    }
    var link = event.target;
    //alert(link);

    while (link && link.localName && link.localName.toLowerCase() != "a")
        link = link.parentNode;
    if (link && link.hash) {
        var page = document.getElementById(link.hash.substr(1));
        if (page) {
            //alert(0);
            if (link.id != "homeButton")
                showPage(page);
        }
        else {

            //alert(link.hash);
            new AjaxObject(link);
        }

    }
}, true);

function checkOrientAndLocation() {

    if (window.innerWidth != currentWidth) {
        currentWidth = window.innerWidth;

        var orient = innerWidth == 320 ? "portrait" : "landscape";
        document.body.setAttribute("orient", orient);
        setTimeout(hideAddress, 100);

    }

    //alert(location.hash + " - " + currentHash);
    if (location.hash != currentHash) {
        currentHash = location.hash;

        var pageId = currentHash.substr(hashPrefix.length);
        var page = document.getElementById(pageId);

        if (page) {
            var index = pageHistory.indexOf(pageId);
            var backwards = index != -1;
            if (backwards) {
                pageHistory.splice(index, pageHistory.length);
            }


            showPage(page, backwards);

            //}

        }
    }
}

function showPage(page, backwards) {
    dtlastSwipe = new Date();
    if (page == null) { return; }




    if (currentDialog) {
        currentDialog.removeAttribute("selected");
        currentDialog = null;
    }

    if (page.className.indexOf("dialog") != -1) {
        showDialog(page);
    }
    else {
        location.href = currentHash = hashPrefix + page.id;
        //alert(currentHash);
        pageHistory.push(page.id);

        var fromPage = currentPage;
        currentPage = page;


        var homeButton = document.getElementById("homeButton");
        if (homeButton) {
            homeButton.style.display = (page.id) == "Home" ? "none" : "inline";
            var parentName = page.getAttribute("parentName");
            if (parentName != undefined) {
                homeButton.innerHTML = "Home"; //parentName || "";
                homeButton.href = "#Home"; //"#" + (parentName == "Home" ? "Home" : fromPage.id);
            }
        }

        var pageTitle = document.getElementById("pageTitle");
        //var limitLen = 15; //7 - ((page.getAttribute("parentName") != undefined) ? page.getAttribute("parentName").length : 4);
        pageTitle.innerHTML = page.title; //(page.title.length < limitLen ? page.title : page.title.substr(0, limitLen) + "...");// || "";
        //if (page.title.length > 23)
        //    pageTitle.innerHTML = page.title.substr(0, 23) + "...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;";

        var pt = page.title.length;
        if (pt > 22)
            pageTitle.innerHTML = page.title.substr(0, 22) + "...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;";

        if (pt > 10 && pt <= 22)
            pageTitle.innerHTML = page.title.substr(0, pt) + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;";




        if (fromPage) {
            setTimeout(swipePage, 0, fromPage, page, backwards);
        }


    }
    //RemoveElement(page);

}

function swipePage(fromPage, toPage, backwards) {

    toPage.style.left = "100%";
    toPage.setAttribute("selected", "true");
    scrollTo(0, 1);

    var percent = 100;
    var timer = setInterval(function() {
        percent += animateX;
        if (percent <= 0) {
            percent = 0;
            fromPage.removeAttribute("selected");
            clearInterval(timer);
            //setTimeout(RemoveElement,1500,toPage);
        }

        fromPage.style.left = (backwards ? (100 - percent) : (percent - 100)) + "%";
        toPage.style.left = (backwards ? -percent : percent) + "%";
    }, animateInterval);



}



function RemoveElement(toPage) {


    //now delete anything that isnt toPage and isnt the parent
    var pageULs = document.getElementsByTagName("UL");
    for (var i = 0; i < pageULs.length; i++) {

        if (toPage.id.indexOf("Home") == 0) {
            //delete any P and Z ones
            if (pageULs[i].id.indexOf("S") == 0 || pageULs[i].id.indexOf("sp") == 0 || pageULs[i].id.indexOf("pc") == 0 || pageULs[i].id.indexOf("C") == 0 || pageULs[i].id.indexOf("P") == 0 || pageULs[i].id.indexOf("Z") == 0)
                document.body.removeChild(pageULs[i]);

        }
        if (toPage.id.indexOf("C") == 0 || toPage.id.indexOf("S") == 0) {
            //delete any P and Z ones
            if (pageULs[i].id.indexOf("P") == 0 || pageULs[i].id.indexOf("Z") == 0)
                document.body.removeChild(pageULs[i]);

        }
        if (toPage.id.indexOf("P") == 0) {
            //delete any Z ones
            if (pageULs[i].id.indexOf("Z") == 0)
                document.body.removeChild(pageULs[i]);
        }

    }


}

function showDialog(form) {
    currentDialog = form;
    form.setAttribute("selected", "true");

    form.onsubmit = function(event) {
        event.preventDefault();
        form.removeAttribute("selected");

        var index = form.action.lastIndexOf("#");
        if (index != -1) {
            //alert('s4');
            showPage(document.getElementById(form.action.substr(index + 1)));
        }
    }

    form.onclick = function(event) {
        if (event.target == form)
            form.removeAttribute("selected");
    }
}

//})();
