﻿jQuery.fn.egrep = function(pat) {
    var out = [];
    var textNodes = function(n) {
        if (n.nodeType == Node.TEXT_NODE) {
            var t = typeof pat == 'string' ?
    n.nodeValue.indexOf(pat) != -1 :
    pat.test(n.nodeValue);
            if (t) {
                out.push(n.parentNode);
            }
        }
        else {
            jQuery.each(n.childNodes, function(a, b) {
                textNodes(b);
            });
        }
    };
    this.each(function() {
        textNodes(this);
    });
    return out;
};

jQuery(document).ready(function() {

    if (jQuery(".m_QueryStringHiddenInput").attr("value") != null && jQuery(".m_QueryStringHiddenInput").attr("value").toString() != "") {

        // 1) READ SEARCH TERM FROM HIDDEN INPUT VALUE WRITTEN TO PAGE IN USERCONTROL HEADER.ASCX.CS
        //lowercase
        var m_searchTermToLower = jQuery(".m_QueryStringHiddenInput").attr("value").toString(); //alert(m_searchTermToLower);
        //UPPERCASE
        var m_searchTermToUpper = m_searchTermToLower.toUpperCase(); //alert(m_searchTermToUpper);
        //Capitalised first letter only of Search Term    
        var m_FirstLetterOfSearchTerm = m_searchTermToLower.substr(0, 1);
        var m_RemainingLettersOfSearchTerm = m_searchTermToLower.substring(1, m_searchTermToLower.length);
        var m_FirstLetterOfSearchTermToUpper = m_FirstLetterOfSearchTerm.toUpperCase();
        var m_searchTermCapitalisedAtStart = m_FirstLetterOfSearchTermToUpper + m_RemainingLettersOfSearchTerm; //alert(m_searchTermCapitalisedAtStart);


        // 2) DEFINE NEW REGULAR EXPRESSION
        //lowercase
        var m_searchTermExpressionToLower = new RegExp(m_searchTermToLower); //alert(m_searchTermExpressionToLower);
        //UPPERCASE
        var m_searchTermExpressionToUpper = new RegExp(m_searchTermToUpper); //alert(m_searchTermExpressionToUpper);
        //Capitalised first letter only of Search Term
        var m_searchTermExpressionCapitalisedFirstLetter = new RegExp(m_searchTermCapitalisedAtStart); //alert(m_searchTermExpressionCapitalisedFirstLetter);


        // 3) USE EGREP FUNCTION TO LOCATE AND MODIFY BLOCKS CONTAINING SEARCH TERM
        //lowercase
        var n = jQuery("#MainPageTable").egrep(m_searchTermExpressionToLower);
        for (var i = 0; i < n.length; ++i) {
            void (jQuery(n[i]).css('background-color', 'yellow'));
        };
        //UPPERCASE
        var o = jQuery("#MainPageTable").egrep(m_searchTermExpressionToUpper);
        for (var j = 0; j < o.length; ++j) {
            void (jQuery(o[j]).css('background-color', 'yellow'));
        };
        //Capitalised first letter only of Search Term
        var p = jQuery("#MainPageTable").egrep(m_searchTermExpressionCapitalisedFirstLetter);
        for (var k = 0; k < p.length; ++k) {
            void (jQuery(p[k]).css('background-color', 'yellow'));
        };
    }
});


