﻿var userNavigated = true;

function onStateChanged(sender, e) {

    var PageID = parseInt(e.get_state().Page);
    
    var ProductID = e.get_state().Product;

    if (userNavigated) {
        if (ProductID != undefined) {
            restoreProductSubMenue(ProductID)
        }
        else {
            if (isFinite(PageID)) {
                restoreState(PageID);
            }
        }
    }
}

//Go back to the last page (just static sites)
function restoreState(PageID) {
    if (PageID == undefined || !isFinite(PageID))
        return;
    else
        requestContent(PageID);
}

//Go back to the last page (just product)
function restoreProductState(ProductID) {
    if (ProductID == undefined || !isFinite(ProductID))
        return;
    else
        requestProduct(ProductID, true);
}

//Go back to a submenue of a product
function restoreProductSubMenue(ProductID) {
    var ProductIDArray = new Array();
    ProductIDArray = ProductID.split("_");

    if (ProductIDArray.length >= 2) {
        switch (parseInt(ProductIDArray[1])) {
            case 11:
                requestVersions(ProductIDArray[0]);
                break;
            case 12:
                requestScreenshots(ProductIDArray[0]);
                break;
            case 13:
                requestDownload(ProductIDArray[0]);
                break;
            case 14:
                requestBuy(ProductIDArray[0]);
                break;
            default:
                restoreProductState(ProductID);
                break;
        }
    }
    else {
        if (isFinite(parseInt(ProductID))) {
            restoreProductState(ProductID);
        }
    }
 }

///////SET HISTORY POINTS///////

 function setHistory(pageID) {
    productHistory = false;
    var id = String(currentPageID);
    userNavigated = false;
    Sys.Application.addHistoryPoint({ Page: id }, document.title);
    userNavigated = true;
}

function setHistoryProduct(ProductID) {
    var id = String(ProductID);
    userNavigated = false;
    Sys.Application.addHistoryPoint({ Product: id}, document.title);
    userNavigated = true;
}


function setHistoryVersion(ProductVersion) {
    var title = document.title;
    var id = String(ProductVersion);
    
    userNavigated = false;
    title = SetHistoryTitle(title);
    Sys.Application.addHistoryPoint({ Product: id + "_11" }, title + " - Version");
    userNavigated = true;
}

function setHistoryScreenshot(ProductVersion) {
    var title = document.title;
    var id = String(ProductVersion);

    userNavigated = false;
    title = SetHistoryTitle(title);
    Sys.Application.addHistoryPoint({ Product: id + "_12" }, title + " - Screenshots");    
    userNavigated = true;
}

function setHistoryDownload(ProductVersion) {
    var title = document.title;
    var id = String(ProductVersion);

    userNavigated = false;
    title = SetHistoryTitle(title);
    Sys.Application.addHistoryPoint({ Product: id + "_13" }, title + " - Download");
    userNavigated = true;

}

function setHistoryBuy(ProductVersion) {
    var title = document.title;
    var id = String(ProductVersion);
    
    userNavigated = false;
    title = SetHistoryTitle(title);
    Sys.Application.addHistoryPoint({ Product: id + "_14" }, title + " - Buy");
    userNavigated = true;
}

function SetHistoryTitle(title)
{
    if (title.indexOf("|", 0) != -1) {
        title = title.substring(12, document.title.length);
        return title;
    }
    else if (title.indexOf("-", 0) != -1) {
        title = title.substring(0, title.indexOf("-", 0));
        return title;
    }

    return title;
}
