﻿function showVersions(pageId) {
    
    var uri = "/common/handlers/get-versions.ashx?pageId=" + pageId;

    $.getJSON(uri, function(obj) {
        var output = "<table class=\"frame-grid\">";
        output += "<thead class=\"header\">";
        output += "<td class=\"left\" style=\"width: 10px;\">Ver.</td>";
        output += "<td style=\"width: 75px;\">Date of</td>";
        output += "<td style=\"width: 190px;\">Page Title</td>";        
        output += "<td style=\"width: 25px;\">&nbsp;</td>";
        output += "</thead>";
        
        $.each(obj, function(ii, ver) {
            var makeCurrent = "<a class=\"makeCurrent\" onclick=\"makeCurrent('" + pageId + "'," + ver.Version + ")\">Set</a>";
            output += "<tr class='" + ((ii % 2) == 0 ? "row" : "rowalt") + "'>";
            output += "<td class=\"left\" class=\"version\">" + ver.Version + "</td>";
                output += "<td>" + ver.DateUpdatedAsString + "</td>";
                output += "<td>" + ver.Title.substring(0, 20) + "... " + "</td>";                
                output += "<td>" + makeCurrent + "</td>";
            output += "</tr>";
        });

        $("#versions").html(output + "</table><a style='float: right; display: block; margin: 10px;' onclick=\"hideVersions()\" href='#'>Hide</a>");
        $("#versions").removeClass("hideVersions");
        $("#versions").addClass("showVersions");

    });
}

function hideVersions() {
    $("#versions").addClass("hideVersions");
    $("#versions").removeClass("showVersions");
}

function makeCurrent(pageId, version) {

    if (confirm("Are you sure?")) {
        var uri = "/common/handlers/set-version.ashx?pageId=" + pageId + "&ver=" + version;

        $.getJSON(uri, function(obj) {
        location.href = location.pathname;
        });
    }
}

// ---------------------------
// function to prevent email being spidered
function noEspam(theName, theDomain, theLink, theExtras) {
    if (theLink.length == 0) {
        theLink = theName + '@' + theDomain
    }

    document.write('<a href="mailto:' + theName + '@' + theDomain + theExtras + '">' + theLink + '</a>');
}


/* --------------------
various start up scripts
 - used to add the relevent events onto the search buttons
-------------------- */


$(document).ready(function() {
    // header search events
    $("#search-button").click(SiteSearch);
    $('#search-text').keypress(function(event) {
        if (event.keyCode == '13') SiteSearch();
    });

    // footer search events
    $("#search-button-footer").click(SiteSearch);
    $('#search-text-footer').keypress(function(event) {
        if (event.keyCode == '13') SiteSearch();
    });

});


// start site search
function SiteSearch() {

    var zoom_query = "";
    
    if ($('#search-text').val().length >=3){
        zoom_query = $('#search-text').val();
    }else if ($('#search-text').val().length <=3){
        zoom_query = $('#search-text-footer').val();
    }
   
    if (zoom_query.length >= 3) {
        location.href = "/search/search-results.html?zoom_per_page=15&zoom_and=1&zoom_query=" + encodeURIComponent(zoom_query);
    }
}



// --------------------------------
// function to retrieve qs param (used in search)
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}


/*
* jQuery JavaScript plugin
*
* URLDecode/Encode
* (used in search)
*
* http://0061276.netsolhost.com/tony/testurl.html
*
*/

$.extend({ URLEncode: function(c) {
    var o = ''; var x = 0; c = c.toString(); var r = /(^[a-zA-Z0-9_.]*)/;
    while (x < c.length) {
        var m = r.exec(c.substr(x));
        if (m != null && m.length > 1 && m[1] != '') {
            o += m[1]; x += m[1].length;
        } else {
            if (c[x] == ' ') o += '+'; else {
                var d = c.charCodeAt(x); var h = d.toString(16);
                o += '%' + (h.length < 2 ? '0' : '') + h.toUpperCase();
            } x++;
        } 
    } return o;
},
    URLDecode: function(s) {
        var o = s; var binVal, t; var r = /(%[^%]{2})/;
        while ((m = r.exec(o)) != null && m.length > 1 && m[1] != '') {
            b = parseInt(m[1].substr(1), 16);
            t = String.fromCharCode(b); o = o.replace(m[1], t);
        } return o;
    }
});