﻿var js_ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';

/*
function js_stripScripts(str)
{
return str.replace(new RegExp(js_ScriptFragment, 'img'), '');
}
*/

function js_extractScripts(str) {
    var matchAll = new RegExp(js_ScriptFragment, 'img');
    var matchOne = new RegExp(js_ScriptFragment, 'im');

    var arr = str.match(matchAll) || [];
    var res = [];

    for (var i = 0; i < arr.length; i++) res.push((arr[i].match(matchOne) || ['', ''])[1]);
    return res;
}

function js_evalScripts(str) {
    var arr = js_extractScripts(str);
    for (var i = 0; i < arr.length; i++) eval(arr[i]);
}

function js_updateElement(element) {
    var content = element.innerHTML;
    /* element.innerHTML = it_stripScripts(content); */
    setTimeout(function() { js_evalScripts(content) }, 10);
}


var js_postbackElement;

function js_beginRequestHandler(sender, args) {
    js_postbackElement = args.get_postBackElement();
}

function js_pageLoadedHandler(sender, args) {
    if (typeof (js_postbackElement) === "undefined") return;

    var updatedPanels = args.get_panelsUpdated();
    for (var i = 0; i < updatedPanels.length; i++) js_updateElement(updatedPanels[i]);
}

function js_registerJsEval() {
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(js_beginRequestHandler);
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(js_pageLoadedHandler);
}
