﻿function setCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString() + "; path=/");
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function AddLink(cookieName, title, url, resultText, max) {
    var originalLinks = GetLinks(cookieName);
    var newLinks = new Array();

    //check if its already in list
    for (var i = 0; i < originalLinks.length; i++) {
        if (!(title == originalLinks[i][0])) {
            newLinks.push(originalLinks[i]);
        }
    }

    if (newLinks.length > 0) {
        newLinks = new Array(new Array(title, url, resultText)).concat(newLinks);
        //trim down to 5
        newLinks = newLinks.slice(0, max);
    }
    else {
        newLinks = new Array(new Array(title, url, resultText));
    }
    setCookie(cookieName, newLinks.join(','), 180);
}

function GetLinks(cookieName) {
    var links = getCookie(cookieName);
    var linksArray = new Array();
    if (links != null && links.length > 0) {
        var splitValues = links.split(',');

        if (splitValues.length % 3 == 0) {
            var i = 0;
            while (i < splitValues.length) {
                linksArray.push(new Array(splitValues[i], splitValues[i + 1], splitValues[i + 2]));
                i = i + 3;
            }
        }
        else {
            //problem - currupt cookie, reset it
            setCookie(cookieName, '', 180);
        }
    }
    return linksArray;
}


function AddRecentlyViewedJob(title, url) {
    //special code, dont reply on whats being passed in because its offline we do "special" stuff

    var title = document.title;
    var url = document.URL;
    AddLink("RecentlyViewedJobs", title, url, '', 5);
}

function AddCareerProfilerResult(title, url, resultText) {
    AddLink("CareerProfilerResult", title, url, resultText, 20);
}


function GetRecentlyViewedJobList() {
    return GetLinks("RecentlyViewedJobs");
}

function GetCareerProfilerResult() {
    return GetLinks("CareerProfilerResult");
}


function ClearRecentlyViewedJobList() {
    setCookie("RecentlyViewedJobs", '', 180);
}

function ClearCareerProfilerResult() {
    setCookie("CareerProfilerResult", '', 180);
}

//moved from page to here. Customised for offline
function RenderRecentlyVisitedJobs() {
    var recentlyViewed = GetRecentlyViewedJobList();
    if (recentlyViewed != null && recentlyViewed.length > 0) {
        var recentJobsContainerStringBuildler = "<ul class='recentJobs'>";
        for (var i = 0; i < recentlyViewed.length; i++) {
            recentJobsContainerStringBuildler += "<li><a title='" + recentlyViewed[i][0] + ". ' href='" + siteRootPath + recentlyViewed[i][1] + "'>" + recentlyViewed[i][0] + "</a></li>";
        }
        recentJobsContainerStringBuildler += "</ul>"
        recentJobsContainerStringBuildler += "<a href='javascript:ClearRecentlyViewedJobList(); RenderRecentlyVisitedJobs();'>Clear List</a>"

        $(".recentJobsContainer").html(recentJobsContainerStringBuildler);
    }
    else {
        $(".recentJobsContainer").html("No jobs viewed recently")
    }

}

//moved from page to here. Customised for offline
function RenderCareerProfilerResults() {
    var cpresults = GetCareerProfilerResult();
    if (cpresults != null && cpresults.length > 0) {
        var stringBuilder = "";
        for (var i = 0; i < cpresults.length; i++) {
            alert("LINKING TO" + cpresults[i][1]);
            stringBuilder += "<li><a title='" + cpresults[i][0] + ". ' href='" + siteRootPath + cpresults[i][1] + "'>" + cpresults[i][0] + "</a></li>";
        }

        $(".careerProfilerContainer .careerProfilerResultsWrapper .results").html(stringBuilder);
        $(".careerProfilerContainer .careerProfilerResultsWrapper").show();
        $(".careerProfilerContainer .careerProfilerBanner").hide();
    }
    else {
        $(".careerProfilerContainer .careerProfilerResultsWrapper .results").empty();
        $(".careerProfilerContainer .careerProfilerResultsWrapper").hide();
        $(".careerProfilerContainer .careerProfilerBanner").show();
    }

}