﻿/// <reference path="jquery-1.3.2-vsdoc2.js" />


if ($('#SearchToggle').length > 0)
{
    // this is the NewSearch page

//    if ($('#sprakradet-search').hasClass('active')) {
//        sprakradetActive();
//    }
//    else
//        klarsprakActive();
//    
    // try service call
    activeTab();
}

function activeTab() {
    $.ajax({
        type: "POST",
        url: "/Templates/Sprakradet/Services/SearchService.asmx/GetActiveTab",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: "{}",
        success: function(msg) {
            if (msg.d === 'klarsprak') {
                klarsprakActive();
            }
            else {
                sprakradetActive();
            } 
        }
    });
}

function klarsprakActive() {
    $('#SprakradetResultArea').hide();
    $('.sprakradet-filters').hide();
    $('#klarsprak-search').addClass('active');
}

function sprakradetActive() {
    $('#KlarsprakResultArea').hide();
    $('.klarsprak-filters').hide();
    $('#sprakradet-search').addClass('active');
}

$('#sprakradet-search').click(function() {
    toggleSearchResult($(this));
    
    setActiveTab('sprakradet');
    
    return false;
});
$('#klarsprak-search').click(function() {
    toggleSearchResult($(this));
    
    setActiveTab('klarsprak');
    
    return false;
});

function setActiveTab(tab) {
    $.ajax({
        type: "POST",
        url: "/Templates/Sprakradet/Services/SearchService.asmx/SetActiveTab",
        data: "{'tab':'" + tab + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
        }
    });
}

function toggleSearchResult(link) {
    $('#SprakradetResultArea, .sprakradet-filters, #KlarsprakResultArea, .klarsprak-filters').toggle();
    $('#sprakradet-search, #klarsprak-search').removeClass('active');
    
    link.addClass('active');
}

// Font resizing
$('#small').click(function() {
    $('body').removeClass('small medium large').addClass('small');
    createCookie('fontsize', 'small', 365);
    return false;
});

$('#medium').click(function() {
    $('body').removeClass('small medium large').addClass('medium');
    createCookie('fontsize', 'medium', 365);
    return false;
});
$('#large').click(function() {
    $('body').removeClass('small medium large').addClass('large');
    createCookie('fontsize', 'large', 365);
    return false;
});

var fontsize = readCookie('fontsize');
if (fontsize == 'small' || fontsize == 'medium' || fontsize == 'large') {
    $('body').removeClass('small medium large').addClass(fontsize);
}



// cookie functions http://www.quirksmode.org/js/cookies.html
function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}
function eraseCookie(name) {
    createCookie(name, "", -1);
}



/* SEARCH FUNCTIONS */
function highlightOnLoad() {
    // Get search string        

    var str = window.location.href;
    //look for "Sog"
    var patt = /Sok/g;
    var isonsearchpage = patt.test(str);

    if (isonsearchpage) {
        var searchString = getSearchString();

        // Starting node, parent to all nodes you want to search
        // SL: 300610: Added a new div to SprakradetResultArea and KlarsprakResultArea. If not it will set <span class="highlighted"> on the NumericPagerField
        var textContainerNodeS = document.getElementById("SprakradetResultAreaText");
        var textContainerNodeK = document.getElementById("KlarsprakResultAreaText");

        // Informational message for search
        //var searchInfo = 'Search Results for: ';
        var searchInfo = '';

        if (searchString != '') {
            // Split search terms on '|' and iterate over resulting array
            var searchTerms = searchString.split('|');
            for (var i in searchTerms) {
                // The regex is the secret, it prevents text within tag declarations to be affected
                var regex = new RegExp(">([^<]*)?(" + searchTerms[i] + ")([^>]*)?<", "ig");
                highlightTextNodes(textContainerNodeS, regex, i);
                highlightTextNodes(textContainerNodeK, regex, i);
                // Add to info-string
                searchInfo += ' <span class="highlighted">' + searchTerms[i] + '</span> ';
            }
        }

        // Create div describing the search
        //                var searchTermDiv = document.createElement("H2");
        //                searchTermDiv.className = 'searchterms';
        //                searchTermDiv.innerHTML = searchInfo;

        //                // Insert as very first child in searched node
        //                textContainerNode.insertBefore(searchTermDiv, textContainerNode.childNodes[0]);
    }
}

// Pull the search string out of the URL
function getSearchString() {
    // Return sanitized search string if it exists
    if (idTextSearchBox != null) {
        if (idTextSearchBox != '') {
            if (typeof (document.getElementById(idTextSearchBox)) != "undefined") {
                var rawSearchString = document.getElementById(idTextSearchBox).value.replace(/[a-zA-Z0-9\?\&\=\%\#]+s\=(\w+)(\&.*)?/, "$1");
            }
        }
    }

    // Replace '+' with '|' for regex
    // Also replace '%20' if your cms/blog uses this instead (credit to erlando for adding this)
    rawSearchString = rawSearchString.replace(/\%20|\+/g, "\|");
    // also remove double quotas (") 
    regExp = new RegExp("\"", "g");

    return rawSearchString.replace(regExp, "");
}

function highlightTextNodes(element, regex, termid) {
    var tempinnerHTML = element.innerHTML;
    // Do regex replace
    // Inject span with class of 'highlighted termX' for google style highlighting
    element.innerHTML = tempinnerHTML.replace(regex, '>$1<span class="highlighted">$2</span>$3<');
}

// Call this onload, I recommend using the function defined at: http://untruths.org/technology/javascript-windowonload/
//window.onload = highlightOnLoad;

