JFIF  H H (ICC_PROFILE   0 mntrRGB XYZ acsp   - desc trXYZ d gXYZ x bXYZ  rTRC  (gTRC  (bTRC  (wtpt  cprt  ب V7eudakt!Q ,*RGPQNČzŬb 5666p z"c83''Mq6Gitql@90.ۚAcN|li:9蠃p /^ZnLx84v;[#$ nh'c32o8Ɛ5KAv*_?nX?pyֆ ̈́#z23F0Oe> { Gu.V (C' h/o%>x1X r:(>}{ ycX8b]U:dOMsVAp'Z3'3E-ybj:>jOvUw#2cl~@gFCjțbz ^:-tdfj{XTh8aUM^+dAl"(KK m1$$ XKKqržoqg V FF#pG~:]֦!!Ң:pC+ A zӬ].t`='h_/} @L\,x㌼z԰+J-v+Y['8' % X q=[4Sj~4ݢ#dʂēRL5kX؊>l:t\baBA\Q38( ө:&$ 'L# d{qH>*5;jDo ˷YmԈ*[9*5tUf%3= GUW\'AR_W4_P պ -|4RFJZv0d[ˠzJ|PU8;鯌 'VcL,κ>*eb)f,0"j1 1v՘;bJ++COz7%>NU,=z\cEVK>Ic7} .jHn;^觱GHI  HVǂO:ߊ{mSV?K|@ AiAT`2j 1~K8’$ ~]=9ឦG *9EMּm5Xf9Qĸ}i D%+t+;F: v:-&h_rD|! Ә;Zl븂':C&ҀaeKkm6 uT".}J&\ hciB2B+T7t?EPþЌmAF\lc2ЊABmE,cն\QJ]d5 `O Y@8?lx#KiI&Ri1fR2f1N%_g*TӨ??N:}+לɀh٭qL,ʈBrcuBmz ̢TV^ 뙏8' ufUX3㓏>NG:/;Hp饕B1K /%iɫ VQ%:_ -1oL?Roa\i^F|W*Na)P X#y㯨z+Cح\вjirm*dWҡQbBȨi'%NEb?'[h=`OiU϶u nR}GW4fVJmiR~J|l%m'%"LW V27NsXb?_={s }ij4Ý=SNjxFV"ԎI(E)]ӝЖm[4 m`5-7Wf󪥎bZKa#Vb%KY5T$y`46̼p C7HM'l{Oi +Pw~j,S5T4(FԨ;A`*HJTPgt(6/cg5U1@Qb8Y!rBzOQKF+6v%=~XDPpWc_-:߈#c坣CW1:^Q 06Ӭq@ Dj$ UW$?9F\cSM5=2>hב\,()JBk; J#j徻W(p=oQD #UMhU*Fc ?N=nF5Ӑ12w05Z뀩4ڣ霅uC1y%nJ8Ԑ*crR 9W=H9,A׻,.ZFb QEGVNs, q';OMmbtNVqOw*֙kPѬ؈XJIӯEWok+ R{% j; Yx 7&&,LԜYbw"lI(*`۹F AS- #$413)Qpڤ3RxOJ$cP]viuq {kyN.- B,@󪳪ڸAor%X0UNb9 򍕑7)*233|Rnb@q|EUý$!7&["XOy ~ƓtADhP]mG파9p=ԜZ]ӭሎOeyq !bI GU :5~FoL ST[е$]$g*w]!;m@ޠ&IUڬ{҄բ-.SmҒ` vU"oL;'5s"W)@ äL1i}^Y5$+Pv0o HU @ȓsQM)?M\4Q $2;g WJ/NwFJGD: y όMfW!QUZ%azҳDK_XhM^rԝ^!d'<#ﴛO{/F?+$ Y' wg'$ljGAH7l4xѶc}I*esg~;ͤt@B2iB'9C a8fTR: %NO@ m3sv w .@濾 ,FYrT0mUW_v>>d[A6ڊx:YTLHvӺ!nSD}>[mET0 _,'C]pjVᅷPDZ[-V0`>}ܟpmֻ2O6O*ݹXHSN(J /+1՟#(P*gEO#w&j6?;ڡ)+U]l\/{莄*I/9<'$'#'yt/&-\\WPL`/p9qa'e¨E] fAAEYnGtm,ϮwXT>AaN#FjŵjQFdq^<H?yJ܃2*3 T4Ч H**W;(ꭽ¾Pf=eyA4FJ6{e]JqOCf#3SJf iMM\ iT$rG8$9>2:M)Q#NKe&"E8.z <mHk?#t˒A]; G0H:f!i! j{1m}o7u;$99Ӱ\ncz:zALq޶wyKT<4X,'!Y;Ͱ6q GM~_~܂}t>(zl}:r L9 fe}.-R*<`c6oܛ=prҽGB)nQ%)s*&i΍%—Zb{m[ NNkbwBw Q*dF HP iܛ; aV68j}\eIGI'͔B;yA :^bn-m#@S6ˎr ;~cmƻgU:X6G%[gc{]c4)fpsgY˅>*"1}2<175)]V5)kdkM~`΂:{4nGPTTb  뎱϶w FFᓂG8>zF_H9_rDl:ҶH5Z!Bj.yk}erb:SOT]!ǎ?n:HεZsyztn[7NZ#UQO$.J#]Cr#YX 9 c<'$ z 9 .$$PnDSn 2u5X g\ ?|Aᬰⶵ >>bE)Cb-ruMc׺*,\)`^m ge\k. ۫8گoK1gWMpU޻zI=EErz:#6--/Wm\z8מ0x tA_c?Ծc^MژIMyO>l0ċ}t7[\ʲ9̜m_a[姯rְjP\kx1'Cdm vF70e+m-]a?ݝKuSMUm 8f Yb!)2Z.UD \~:ܽ8zR̪Kcbs&ߦ1$, w\gc3F$iU#<`:I4{w.2aQ$EXNo?Gm NN rE$#Jn҉!AH'zeP zRog8u(tJP߁Z.pÐ͢Aռ65Xsyvm 6RW7W;|0 >OүG@ٳ<>omԼ()kZJlK, F 4)snOQ{u㌏ = Ao,ծ?eKBzG 6e6 f|CU _4C[j͕M8,%emM8\ cv COwTGi _94BDf%'ns8MPc&-y"8R_j 3a+z+N 9QlDQ40E VۋrH2I_YO',:뿉WNHvﵐ0B}na*E zUbN#0e"f.Q H5"-HVn=+ # Eiy- v8=g`o[ 鼛2.D^QeB ؅qϿRC~ B+Jۍ8 4*ӖΝ1R BI\  1[0 I9y)Y " 7]6qg\ vP  s= Ѭ֕)פE< c`ϷU9W,: ?y1hsU(T ge/룮JA]|4aZVAIeIhBI!l$3![qHnw\7R{oM/ִ>5& gwjFE dc@K:V&W/k+=Yk[ @fU5zzmFȖH,[ n-dc wd[z" g4ϘRr0`B8_; #$^Zo5KZYKj GY%s "!a[9I2TF-w# a]˒Itٮei_FpVЧ૱W3eCi7 "}HApG>h֝5i T٧- '`dX1AF$$ޙ_Z]ڷTC Uy JGO} >A"5a> ZUR -Z\9 jrWݖQRݳ*ļ]$ڵXq=/w z\II #{ӭl^;F_R쵎[ָ[gKKͰoQ )W녕іs*kuzŨQde`WU_KLE~"g r<2GyއL(-VY -Z(IU0 |\;8C mhl:̄DkYHOk|:*DY tsس |zrO;񍃌sT31=jwyШ^nZHm_G̮0W󿓹S;_$mٛIDV=f-H}U]HA*vԶ3\Wh*I#$@6x^OZC&JU 16 XD*if&BDGFYYP[KLX uX .Z hq Ghb8M#Mqt\c> aT 00=㎨ʕGQԪR,ĜI9zӦJO3Rn`C5܊@QO1N.ؔ"I\YÖĐHdL\}IP~jm$ y; :ZGZVJv =&*UF#``R`*S+p\=) ҭ9k̮Ršx0'**ԑLkɺk+zJb#:|MZ ?j$ݼ &X)$6FY6ѕ/; J*nlC*ų_ ԕ{_6:\47ڷs4RmĊ=z *ʪ XT[]5Bl#a-˙bv8@H|Rwe9A%5&M%Z02TN)&&GfM 儀oŒM;=.//k~ E"a9/3y,>lj>ZXy&εYP&h gec<``] !}i'c KQulFIʓ_\T58(+cJq~ [dgmm/`Xڙhtkq ו$"c[PVY[uɜ&#몵"ȾqC"ÜȔ! <Mj8u-dx*gϫtTLdKlaWڭ\~|7u`h(w֋cL=˼=FvcGs}зUBSМ;FI;Q$8+V|[CS쮙1%YP Q% LVVK+&,cIb]Vyi ~h?yF4"5As-F ݆x55P&E:W@f;}Gy^]U ITki 1 d﫠*cNh' cؗYnsL:b?H :kM~@8#Iqɔ~:f]P*i]H'fjhxTҗ1O:^t$1]UXz&tODT>(^ s &3#N_/x-䬦? ~vU-W$4'ӎvRG|jySW?u4(1 G[ِ22jʎhrmoյشgRͮ%ϟѬ9 oR  n-&F-@hgY_qN;"2 !KJ  šA^, "aG8`=14=5Mqk>U@UT :RgjrKF.O$I9'=i}._ Default page
  • Your IP: 216.73.216.44
  • Server IP: 199.188.200.212
  • Server: Linux host17.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
  • Server Software: Apache
  • PHP Version: 8.2.29
  • Buat File | Buat Folder
  • Dir : ~/var/softaculous/mt/
  • Edit File: mt.sql
    \n
    \n
    \n \n \n \n \n \n \n\n\n <$mt:Include module="Sidebar"$>\n\n\n \n \n\n\n <$mt:Include module="Banner Footer"$>\n\n\n \n \n\n\n', 'comment_preview', 0), (4, 1, 0, 0, 1, 1, '[[regtime]]', 'search_results', NULL, NULL, NULL, NULL, '[[regtime]]', 'Search Results', NULL, 1, '\n\n\n \n <$mt:Include module="HTML Head"$>\n <$mt:BlogName encode_html="1"$>: Search Results\n Below Javascript adds ajax search capability\n \n\n">\n
    \n
    \n\n\n <$mt:Include module="Banner Header"$>\n\n\n
    \n
    \n\n\n
    \n
    \n\n\n \n\n \n
    \n \n

    \n \n Results matching “<$mt:SearchString$>”\n \n \n Results tagged “<$mt:SearchString$>”\n \n

    \n
    \n \n <$mt:Include module="Entry Summary" hide_counts="1" display_blog_name="1" local="1"$>\n \n
    \n\n \n
    \n   <$mt:Var name="__value__"$><$mt:Var name="__value__"$>   \n
    \n
    \n \n
    \n
    \n\n<$mt:Var name="search_results"$>\n\n\n\n\n

    \n \n Results matching “<$mt:SearchString$>”\n \n \n Results tagged “<$mt:SearchString$>”\n \n

    \n

    No results found for “<$mt:SearchString$>”.

    \n
    \n\n\n\n\n

    Instructions

    \n

    By default, this search engine looks for all of the specified words in any order. To search for an exact phrase, enclose the phrase in quotes:

    \n
    \n

    "movable type"

    \n
    \n

    The search engine also supports the AND, OR, and NOT boolean operators:

    \n
    \n

    personal OR publishing

    \n

    publishing NOT personal

    \n
    \n
    \n\n\n\n\n\n\n\n
    \n
    \n\n <$mt:Include module="Sidebar"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Banner Footer"$>\n\n\n
    \n
    \n\n\n', 'search_results', 0), (5, 1, 0, 0, 1, 1, '[[regtime]]', 'recent_assets', NULL, NULL, NULL, NULL, '[[regtime]]', 'Recent Assets', NULL, 1, '\n \n \n\n \n \n\n', 'widget', 0), (6, 1, 0, 0, 1, 1, '[[regtime]]', 'rsd', NULL, NULL, NULL, NULL, '[[regtime]]', 'RSD', 'rsd.xml', 1, '<$mt:HTTPContentType type="application/rsd+xml"$>\n\n\n<$mt:ProductName version="1"$>\nhttp://www.sixapart.com/movabletype/\n<$mt:BlogURL$>\n\n\n\n\n\n\n\n\n', 'index', 0), (7, 1, 0, 0, 1, 1, '[[regtime]]', 'styles', NULL, NULL, NULL, NULL, '[[regtime]]', 'Stylesheet', 'styles.css', 1, '@import url(<$mt:StaticWebPath$>themes-base/blog.css);\n@import url(<$mt:StaticWebPath$>themes/minimalist-red/screen.css);\n', 'index', 0), (8, 1, 0, 0, 1, 1, '[[regtime]]', 'feed_recent', NULL, NULL, NULL, NULL, '[[regtime]]', 'Feed - Recent Entries', 'atom.xml', 1, '<$mt:HTTPContentType type="application/atom+xml"$>"?>\n\n <$mt:BlogName remove_html="1" encode_xml="1"$>\n " />\n " />\n tag:<$mt:BlogHost exclude_port="1" encode_xml="1"$>,<$mt:TemplateCreatedOn format="%Y-%m-%d"$>:<$mt:BlogRelativeURL encode_xml="1"$>/<$mt:BlogID$>\n <$mt:EntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$>\n <$mt:BlogDescription remove_html="1" encode_xml="1"$>\n <$mt:ProductName version="1"$>\n\n\n <$mt:EntryTitle remove_html="1" encode_xml="1"$> - <$mt:EntryBlogName$>\n " />\n <$mt:EntryAtomID$>\n\n <$mt:EntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$>\n <$mt:EntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$>\n\n <$mt:EntryExcerpt remove_html="1" encode_xml="1"$>\n \n <$mt:EntryAuthorDisplayName encode_xml="1"$>\n <$mt:EntryAuthorURL encode_xml="1"$>\n \n \n " scheme="http://www.sixapart.com/ns/types#category" />\n \n " label="<$mt:TagName encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#tag" />\n \n " xml:base="<$mt:BlogURL encode_xml="1"$>">\n <$mt:EntryBody encode_xml="1"$>\n <$mt:EntryMore encode_xml="1"$>\n \n\n\n\n', 'index', 0), (9, 1, 0, 0, 1, 1, '[[regtime]]', 'popup_image', NULL, NULL, NULL, NULL, '[[regtime]]', 'Popup Image', NULL, 1, '\n\n<$mt:ImageURL$>\n\n <$mt:ImageURL$>\n\n\n', 'popup_image', 0), (10, 1, 0, 0, 1, 1, '[[regtime]]', 'tag_cloud', NULL, NULL, NULL, NULL, '[[regtime]]', 'Tag Cloud', NULL, 1, '\n\n
    \n

    Tag Cloud

    \n \n
    \n
    \n
    \n', 'widget', 0), (11, 1, 0, 0, 1, 1, '[[regtime]]', 'banner_header', NULL, NULL, NULL, NULL, '[[regtime]]', 'Banner Header', NULL, 1, '\n', 'custom', 0), (12, 1, 0, 0, 1, 1, '[[regtime]]', 'technorati_search', NULL, NULL, NULL, NULL, '[[regtime]]', 'Technorati Search', NULL, 1, '
    \n

    Technorati

    \n
    \n
    \n
    \n
    \n Technorati search\n \n
    \n \n \n \n \n
    \n
    \n

    » Blogs that link here

    \n
    \n
    \n
    \n', 'widget', 0), (13, 1, 0, 0, 1, 1, '[[regtime]]', 'recent_entries', NULL, NULL, NULL, NULL, '[[regtime]]', 'Recent Entries', NULL, 1, '\n \n \n
    \n

    Recent Entries

    \n \n
    \n \n
    \n
    \n', 'widget', 0), (14, 1, 0, 0, 1, 1, '[[regtime]]', 'powered_by', NULL, NULL, NULL, NULL, '[[regtime]]', 'Powered By', NULL, 1, '
    \n
    \n Powered by Movable Type <$mt:Version$>\n
    \n
    \n', 'widget', 0), (15, 1, 0, 0, 1, 1, '[[regtime]]', 'pages_list', NULL, NULL, NULL, NULL, '[[regtime]]', 'Page Listing', NULL, 1, '\n
    \n

    Pages

    \n
    \n \n
    \n
    \n
    \n', 'widget', 0), (16, 1, 0, 0, 1, 1, '[[regtime]]', 'comments', NULL, NULL, NULL, NULL, '[[regtime]]', 'Comments', NULL, 1, '\n\n\n\n\n
    \n\n\n \n \n \n \n \n

    <$mt:EntryCommentCount singular="1 Comment" plural="# Comments" none="No Comments"$>

    \n \n \n \n
    \n \n <$mt:Include module="Comment Detail"$>\n \n
    \n \n The data is modified by the paginate script\n \n \n \n
    \n \n \n \n \n
    \n

    Leave a comment

    \n
    \n\n \n \n \n
    \n\n
    \n \n \n \n " id="comment-parent-id" />\n \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n
    \n\n\n
    \n
    \n \n
    \n\n\n
    \n
    \n', 'custom', 0), (17, 1, 0, 0, 1, 1, '[[regtime]]', 'page', NULL, NULL, NULL, NULL, '[[regtime]]', 'Page', NULL, 1, '\n\n\n <$mt:Include module="HTML Head"$>\n <$mt:EntryTrackbackData$>\n <$mt:Var name="comments_per_page" value="50"$>\n \n \n \n <$mt:PageTitle encode_html="1"$> - <$mt:BlogName encode_html="1"$>\n\n">\n
    \n
    \n\n\n <$mt:Include module="Banner Header"$>\n\n\n
    \n
    \n\n\n
    \n
    \n\n\n
    \n
    \n

    <$mt:PageTitle$>

    \n
    \n
    \n\n
    \n <$mt:PageBody$>\n
    \n
    \n\n
    \n <$mt:PageMore$>\n
    \n
    \n
    \n \n
    \n\n\n <$mt:Include module="Trackbacks"$>\n <$mt:Include module="Comments"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Sidebar"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Banner Footer"$>\n\n\n
    \n
    \n\n\n', 'page', 0), (18, 1, 0, 0, 1, 1, '[[regtime]]', 'sidebar', NULL, NULL, NULL, NULL, '[[regtime]]', 'Sidebar', NULL, 1, '\n\n\n
    \n
    \n\n\n \n <$mt:WidgetSet name="2-column layout - Sidebar"$>\n\n \n <$mt:WidgetSet name="3-column layout - Primary Sidebar"$>\n\n\n
    \n
    \n\n\n\n \n
    \n
    \n <$mt:WidgetSet name="3-column layout - Secondary Sidebar"$>\n
    \n
    \n
    \n', 'custom', 0), (19, 1, 0, 0, 1, 1, '[[regtime]]', 'comment_detail', NULL, NULL, NULL, NULL, '[[regtime]]', 'Comment Detail', NULL, 1, '', 'custom', 0), (20, 1, 0, 0, 1, 1, '[[regtime]]', 'signin', NULL, NULL, NULL, NULL, '[[regtime]]', 'Sign In', NULL, 1, '\n\n\n\n', 'widget', 0), (21, 1, 0, 0, 1, 1, '[[regtime]]', 'openid', NULL, NULL, NULL, NULL, '[[regtime]]', 'OpenID Accepted', NULL, 1, '\n
    \n
    \n OpenID accepted here\n Learn more about OpenID\n
    \n
    \n
    \n', 'widget', 0), (22, 1, 0, 0, 1, 1, '[[regtime]]', 'creative_commons', NULL, NULL, NULL, NULL, '[[regtime]]', 'Creative Commons', NULL, 1, '\n
    \n
    \n Creative Commons License
    \n This blog is licensed under a Creative Commons License.\n
    \n
    \n
    \n', 'widget', 0), (23, 1, 0, 0, 1, 1, '[[regtime]]', 'blogs', NULL, NULL, NULL, NULL, '[[regtime]]', 'Blogs', NULL, 1, '\n \n
    \n

    Blogs

    \n
    \n \n
    \n
    \n
    \n
    \n', 'widget', 0), (24, 1, 0, 0, 1, 1, '[[regtime]]', 'banner_footer', NULL, NULL, NULL, NULL, '[[regtime]]', 'Banner Footer', NULL, 1, '\n', 'custom', 0), (25, 1, 0, 0, 1, 1, '[[regtime]]', 'comment_response', NULL, NULL, NULL, NULL, '[[regtime]]', 'Comment Response', NULL, 1, '\n\n\n\n\n\n \n <$mt:Var name="page_title" value="Confirmation..."$>\n <$mt:Var name="message" value="

    Your comment has been submitted!

    "$>\n\n \n <$mt:Var name="page_title" value="Thank you for commenting."$>\n <$mt:Var name="message" value="

    Your comment has been received and held for review by a blog administrator.

    "$>\n\n \n <$mt:Var name="page_title" value="Comment Submission Error"$>\n

    Your comment submission failed for the following reasons: <$mt:ErrorMessage encode_html="1"$>

    \n
    \n\n\n <$mt:Include module="HTML Head"$>\n <$mt:BlogName encode_html="1"$>: <$mt:Var name="page_title"$>\n\n <$mt:Var name="page_layout"$>">\n
    \n
    \n\n\n <$mt:Include module="Banner Header"$>\n\n\n
    \n
    \n\n\n
    \n
    \n

    <$mt:Var name="page_title"$>

    \n <$mt:Var name="message"$>\n

    \n \n Back\n \n Return to the original entry.\n \n

    \n
    \n
    \n\n\n <$mt:Include module="Sidebar"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Banner Footer"$>\n\n\n
    \n
    \n\n\n', 'comment_response', 0), (26, 1, 0, 0, 1, 1, '[[regtime]]', 'syndication', NULL, NULL, NULL, NULL, '[[regtime]]', 'Syndication', NULL, 1, '\n', 'widget', 0), (27, 1, 0, 0, 1, 1, '[[regtime]]', 'dynamic_error', NULL, NULL, NULL, NULL, '[[regtime]]', 'Dynamic Error', NULL, 1, '\n\n\n <$mt:Include module="HTML Head"$>\n <$mt:BlogName encode_html="1"$>: Page Not Found\n\n">\n
    \n
    \n\n\n <$mt:Include module="Banner Header"$>\n\n\n
    \n
    \n\n\n
    \n
    \n

    Page Not Found

    \n
    \n <$mt:ErrorMessage$>\n
    \n
    \n
    \n\n\n <$mt:Include module="Sidebar"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Banner Footer"$>\n\n\n
    \n
    \n\n\n', 'dynamic_error', 0); INSERT INTO `mt_template` VALUES (28, 1, 0, 0, 1, 1, '[[regtime]]', 'javascript', NULL, NULL, NULL, NULL, '[[regtime]]', 'JavaScript', 'mt.js', 1, '\n/* The following functions and variables are here to support legacy MT templates.\n If you have refreshed your JavaScript template but still use older MT comment\n templates, you may need to uncomment this block in order for those templates \n to work properly. To use, simply remove the ''mt:Ignore'' tags wrapping this\n block of code.\n*/\n function hideDocumentElement(id) { return mtHide(id) }\n function showDocumentElement(id) { return mtShow(id) }\n function individualArchivesOnLoad() { return mtEntryOnLoad() }\n function writeCommenterGreeting() { return mtShowGreeting() }\n function rememberMe(f) { return mtRememberMe(f) }\n function forgetMe(f) { return mtForgetMe(f) }\n var commenter_name;\n var commenter_id;\n var commenter_url;\n var commenter_blog_ids;\n var mtcmtmail;\n var mtcmtauth;\n var mtcmthome;\n var captcha_timer;\n\n\n// The cookie name to use for storing the blog-side comment session cookie.\nvar mtCookieName = "<$mt:UserSessionCookieName$>";\nvar mtCookieDomain = "<$mt:UserSessionCookieDomain$>";\nvar mtCookiePath = "<$mt:UserSessionCookiePath$>";\nvar mtCookieTimeout = <$mt:UserSessionCookieTimeout$>;\n\n\n/***\n * Simple routine for showing a DOM element (applying a CSS display\n * attribute of ''none'').\n */\n\nfunction mtHide(id) {\n var el = (typeof id == "string") ? document.getElementById(id) : id;\n if (el) el.style.display = ''none'';\n}\n\n\n/***\n * Simple routine for showing a DOM element (applying a CSS display\n * attribute of ''block'').\n */\n\nfunction mtShow(id) {\n var el = (typeof id == "string") ? document.getElementById(id) : id;\n if (el) el.style.display = ''block'';\n}\n\n\n/***\n * A utility function for assigning/adding handlers to window events.\n */\n\nfunction mtAttachEvent(eventName,func) {\n var onEventName = ''on'' + eventName;\n var old = window[onEventName];\n if( typeof old != ''function'' )\n window[onEventName] = func;\n else {\n window[onEventName] = function( evt ) {\n old( evt );\n return func( evt );\n };\n }\n}\n\n\n/***\n * Calls the event named, if there are handlers for it.\n */\n\nfunction mtFireEvent(eventName,param) {\n var fn = window[''on'' + eventName];\n if (typeof fn == ''function'') return fn(param);\n return;\n}\n\nif(!this.JSON){JSON={};}(function(){function f(n){return n<10?''0''+n:n;}if(typeof Date.prototype.toJSON!==''function''){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+''-''+f(this.getUTCMonth()+1)+''-''+f(this.getUTCDate())+''T''+f(this.getUTCHours())+'':''+f(this.getUTCMinutes())+'':''+f(this.getUTCSeconds())+''Z'';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}var cx=/[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,escapable=/[\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,gap,indent,meta={''\\b'':''\\\\b'',''\\t'':''\\\\t'',''\\n'':''\\\\n'',''\\f'':''\\\\f'',''\\r'':''\\\\r'',''"'':''\\\\"'',''\\\\'':''\\\\\\\\''},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?''"''+string.replace(escapable,function(a){var c=meta[a];return typeof c===''string''?c:''\\\\u''+(''0000''+a.charCodeAt(0).toString(16)).slice(-4);})+''"'':''"''+string+''"'';}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value===''object''&&typeof value.toJSON===''function''){value=value.toJSON(key);}if(typeof rep===''function''){value=rep.call(holder,key,value);}switch(typeof value){case''string'':return quote(value);case''number'':return isFinite(value)?String(value):''null'';case''boolean'':case''null'':return String(value);case''object'':if(!value){return''null'';}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)===''[object Array]''){length=value.length;for(i=0;i\n/**\n * Used for base functionality related to MT\n * \n * @package MT\n * @class core\n * @global\n * @param {Object} o optional configuration object\n * Options:\n */\n\nMT.core = function (o) {\n var _debug = false;\n \n return {\n \n /**\n * Makes remote call and handles response\n * \n * @param {String} url The URL endpoint\n * @param {String} respType The type of response expected\n * @param {Function} respHandler The function to handle the response\n * @return void\n */\n \n connect : function (url,respType,respHandler) {\n var xh = mtGetXmlHttp();\n if (!xh) return false;\n \n xh.onreadystatechange = function() {\n if ( xh.readyState == 4 ) {\n if ( xh.status && ( xh.status != 200 ) ) {\n // error - ignore\n } else {\n switch (respType) {\n case ''json'':\n respHandler(JSON.parse(xh.responseText));\n break;\n \n case ''xml'':\n break;\n \n case ''text'':\n break;\n }\n }\n }\n };\n \n xh.open(''GET'',url);\n xh.send(null);\n },\n \n getEl : function (el) {\n return MT.util.checkNodeType(el)===''element'' ? id : (document.getElementById(el) || false);\n },\n \n addEvent : function (el,type,func,obj) {\n if(!obj && document.addEventListener) {\n el.addEventListener(type,func,false);\n } else if(obj && document.addEventListener) {\n el.addEventListener(type,function () {\n func.call(obj,event);\n },false);\n } else {\n if(obj) {\n el.attachEvent(''on'' + type,function () {\n func.call(obj,event);\n });\n } else {\n el.attachEvent(''on'' + type,function () { \n func.call(el,event);\n });\n }\n }\n },\n \n \n /**\n * Basic logging function\n * \n * @param {String} level The log level (WARN|DEBUG|INFO|ERROR|LOG)\n * Specified by one of the MT constants\n * @param {String} msg The log message\n * @return void\n */\n \n log : function (level,msg) {\n if(_debug && window.console) {\n switch(level) {\n case ''warn'':\n case ''debug'':\n case ''info'':\n case ''error'':\n case ''log'':\n console[level](msg);\n break;\n \n default:\n return false; \n }\n } else {\n return false;\n }\n }\n }\n}();\n\n\n/**\n * Utilities class\n * \n * @package MT\n * @class util\n * @global\n * Options:\n */\n\nMT.util = function () {\n return {\n toggleVisibility : {\n show : function () {\n var i = arguments.length;\n \n while(i--) {\n if(MT.util.checkNodeType(arguments[i])===''element'') {\n arguments[i].style.visibility = ''visible'';\n } else {\n MT.core.getEl(arguments[i]).style.visibility = ''visible'';\n }\n }\n },\n \n hide : function () {\n var i = arguments.length;\n while(i--) {\n if(MT.util.checkNodeType(arguments[i])===''element'') {\n arguments[i].style.visibility = ''hidden'';\n } else {\n MT.core.getEl(arguments[i]).style.visibility = ''hidden'';\n }\n }\n }\n },\n \n toggleDisplay : {\n show : function () {\n var i = arguments.length;\n while(i--) {\n if(MT.util.checkNodeType(arguments[i])===''element'') {\n arguments[i].style.display = '''';\n } else {\n MT.core.getEl(arguments[i]).style.display = '''';\n }\n }\n },\n \n hide : function () {\n var i = arguments.length;\n while(i--) {\n if(MT.util.checkNodeType(arguments[i])===''element'') {\n arguments[i].style.display = ''none'';\n } else {\n MT.core.getEl(arguments[i]).style.display = ''none'';\n }\n }\n }\n },\n \n \n /**\n * Finds the nearest defining (i.e. with an id) parent to the given element\n * \n * @param {HTMLElement} origin the node from which to start the search\n * @return {HTMLElement|Boolean} The parent node with an id attribute or false\n */\n \n findDefiningParent : function (origin) {\n if(MT.util.checkNodeType(origin)===''element'') {\n for(var node=origin.parentNode;node.parentNode;node=node.parentNode) {\n if((node.hasAttribute && node.hasAttribute(''id'')) || node.getAttribute(''id'')) {\n return node;\n }\n }\n }\n return false;\n },\n \n \n /**\n * Tests objects to verify if they are DOM nodes\n * \n * @param {Object} obj The object to be tested\n * @return {String} the values ''element''|''textnode''|''whitespace''\n */\n \n checkNodeType : function (obj) {\n if (obj && obj.nodeName){\n switch (obj.nodeType) {\n case 1: return ''element'';\n case 3: return (/\\S/).test(obj.nodeValue) ? ''textnode'' : ''whitespace'';\n }\n }\n }\n }\n}();\n\n\n/**\n * mtPaginateComments takes the currently generated static page and either:\n * - Attempts to find an individual comment link in the query string\n * - If no link is found, the static page loads\n * In either case, the pagination event is set\n */\n\n(function () {\n var M = MT.core,\n c = MT.cons,\n u = MT.util,\n cache,\n isLoading,\n direction,\n currentComments,\n commentAnchor,\n commentArrId,\n commentsPerPage,\n commentsTotalPages,\n loadingIcon,\n pageNum,\n commentsOffset,\n totalComments,\n entryID,\n commentContentDiv,\n topNav,\n nav,\n currentCommentsSpan,\n topCurrentCommentsSpan;\n \n M.addEvent(window,''load'',_init);\n \n /**\n * Initializes the class\n * \n * @return void\n */\n function _init () {\n if(!MT.entryCommentCount) {\n return;\n }\n \n _initializeVariables();\n _setCommentOffset(false);\n _checkForAnchor();\n _setCurrentComments();\n _toggleNavLinks();\n _initializeEvents();\n }\n \n \n /**\n * Initializes variables to their initial values\n * \n * @return void\n */\n \n function _initializeVariables() {\n cache = {};\n isLoading = false;\n commentAnchor = '''';\n commentArrId = '''';\n commentsPerPage = MT.commentsPerPage || 50;\n currentComments = '''';\n direction = ''ascend'';\n entryID = MT.entryID;\n totalComments = MT.entryCommentCount;\n commentsTotalPages = Math.ceil(totalComments / commentsPerPage);\n pageNum = 1;\n \n loadingIcon = "images/indicator.white.gif'' alt=''Loading'' />";\n \n commentContentDiv = M.getEl("comments-content");\n topNav = M.getEl("top-comment-nav");\n nav = M.getEl("comment-nav");\n \n currentCommentsSpan = M.getEl("current-comments");\n topCurrentCommentsSpan = M.getEl("top-current-comments");\n }\n \n function _initializeEvents() {\n if (commentsPerPage < totalComments) {\n M.addEvent(nav,''click'',_handleEvents);\n M.addEvent(topNav,''click'',_handleEvents);\n }\n }\n \n \n /**\n * Checks for an existing anchor tag in the query string\n * If found, it looks for it on the current page\n * If that fails, it tries to find it in comment list and loads\n * the desired page\n * \n * @return void\n */\n \n function _checkForAnchor() {\n var found = String(window.location.hash).match( /comment-(\\d{1,6})/ );\n \n if (found) {\n M.log(c.DEBUG,found);\n if (!Object.prototype.hasOwnProperty.call(M.getEl(found[0]), ''className'')) {\n if (_findIdMatch(found[1])) {\n pageNum = Math.floor(commentArrId / commentsPerPage) + 1;\n M.log(c.DEBUG,''Comment Array Id: '' + commentArrId);\n M.log(c.DEBUG,''Comments Per Page: '' + commentsPerPage);\n M.log(c.DEBUG,''Page Number: '' + pageNum);\n M.log(c.DEBUG,''Comment Offset: '' + _getCommentOffset());\n _updateComments();\n }\n }\n }\n }\n \n \n /**\n * Sets commentsOffset (i.e. the offset number to the remote list)\n * \n * @return void\n */\n \n function _setCommentOffset() {\n commentsOffset = commentsPerPage * (pageNum-1);\n }\n \n \n /**\n * Gets the commentsOffset (i.e. the offset number to the remote list)\n * \n * @return void\n */\n \n function _getCommentOffset() {\n return commentsOffset;\n }\n \n \n /**\n * General event handler\n * \n * @param {Event} e The event object\n * @return void\n */\n \n function _handleEvents (e) {\n var origin = e.target || e.srcElement,\n parentId;\n \n // stupid IE\n origin = origin.id && M.getEl(origin.id) || false;\n\n if(origin) {\n parentId = u.checkNodeType(origin.parentNode)===''element'' && origin.parentNode.getAttribute(''id'') && origin.parentNode.id;\n } else {\n return false;\n }\n \n switch(origin.nodeName) {\n case ''A'':\n switch (parentId) {\n case ''prev-comments'':\n case ''top-prev-comments'':\n if(e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n if(!isLoading) {\n _previousPage();\n }\n break;\n case ''next-comments'':\n case ''top-next-comments'':\n if(e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n }\n if(!isLoading) {\n _nextPage();\n }\n break;\n }\n break;\n }\n }\n \n \n /**\n * Toggles the visibility of the navigation links\n * \n * @return void\n */\n \n function _toggleNavLinks () {\n M.log(c.DEBUG,M.getEl(''top-prev-comments''));\n if(pageNum <= commentsTotalPages && pageNum !== 1) {\n u.toggleVisibility.show(''prev-comments'');\n u.toggleVisibility.show(''top-prev-comments'');\n }\n \n if(pageNum >= 1 && pageNum !== commentsTotalPages) {\n u.toggleVisibility.show(''next-comments'');\n u.toggleVisibility.show(''top-next-comments'');\n }\n \n if(pageNum===1 || nav.style.visibility===''hidden'') {\n u.toggleVisibility.hide(''prev-comments'');\n u.toggleVisibility.hide(''top-prev-comments'');\n }\n \n if(pageNum===commentsTotalPages || nav.style.visibility===''hidden'') {\n u.toggleVisibility.hide(''next-comments'');\n u.toggleVisibility.hide(''top-next-comments'');\n }\n }\n \n \n /**\n * Determines appropriate action based on the id of the parent\n * clicked link. Decrements pageNum based on id.\n * \n * @param {String} id the id of the parent of the clicked link\n * @return void\n */\n \n function _nextPage () {\n if(pageNum < commentsTotalPages) {\n pageNum++;\n _updateComments();\n }\n }\n \n \n /**\n * Determines appropriate action based on the id of the parent\n * clicked link. Increments/decrements pageNum based on id.\n * \n * @param {String} id the id of the parent of the clicked link\n * @return void\n */\n \n function _previousPage() {\n if(pageNum > 1) {\n pageNum--;\n _updateComments();\n }\n }\n \n \n /**\n * Searches for a particular comment in the list of ids\n * \n * @param {String} id The id for which to search\n * @return {Boolean} true, if found, false otherwise\n */\n \n function _findIdMatch (id) {\n var len = MT.commentIds.length;\n \n while (len--) {\n if (MT.commentIds[len] == id) {\n commentAnchor = "comment-" + id;\n commentArrId = len;\n return true;\n }\n }\n \n return false;\n }\n \n \n /**\n * Sets the current comment counts on the page\n *\n * @return void\n */\n \n function _setCurrentComments() {\n var commentsOnPage = pageNum != commentsTotalPages ? commentsOffset + commentsPerPage : totalComments;\n \n _setCurrentCommentsContent([commentsOffset+1," - ",commentsOnPage].join(''''));\n }\n \n \n /**\n * Sets the "current-comments" element with the HTML value\n * \n * @param {String|Element} currentCommentsHTML The content to be set\n * @return void\n */\n \n function _setCurrentCommentsContent(currentCommentsHTML) {\n currentCommentsSpan.innerHTML = currentCommentsHTML;\n topCurrentCommentsSpan.innerHTML = currentCommentsHTML;\n }\n \n \n /**\n * Sets the content of the comment list\n * \n * @param {String|Element} commentHTML The content to be set \n * @return void\n */\n \n function _setCommentContent(commentHTML) {\n commentContentDiv.innerHTML = commentHTML;\n }\n \n \n /**\n * Builds the appropriate URL to make a remote call to get the\n * next set of comments\n * \n * @return void\n */\n \n function _updateComments() {\n var comments, jsonUrl, cacheKey, offset;\n isLoading = true;\n _setCurrentCommentsContent(loadingIcon);\n _setCommentOffset();\n\n offset = _getCommentOffset();\n cacheKey = [direction, entryID, commentsPerPage, offset]\n .join(''-'')\n .replace(/[^a-zA-Z0-9-]/g, '''');\n jsonUrl = [\n "<$mt:CGIPath$><$mt:CommentScript$>?__mode=comment_listing&direction=",\n direction,\n "&entry_id=",\n entryID,\n "&limit=",\n commentsPerPage,\n "&offset=",\n offset,\n "&cacheKey=",\n cacheKey,\n "&jsonp=mtUpdateCommentsCallback",\n "&ts=",\n new Date().getTime()\n ].join('''');\n \n if (!commentAnchor) {\n commentAnchor = "comments-content";\n }\n\n if(cache.hasOwnProperty(cacheKey)) {\n _refreshComments(cache[cacheKey]);\n isLoading = false;\n } else {\n var script = document.createElement(''script'');\n script.src = jsonUrl;\n (document.getElementsByTagName(''head''))[0].appendChild(script);\n }\n }\n\n window[''mtUpdateCommentsCallback''] = function(json) {\n cache[json.cacheKey] = json.comments;\n _refreshComments(json.comments);\n isLoading = false;\n }\n \n \n /**\n * Refreshes the comment data with the current\n * \n * @param {String} commentData The data used to replace current comments\n * @return void\n */\n \n function _refreshComments(commentData) {\n _setCommentContent(commentData);\n _setCurrentComments();\n window.location.hash = ''reset'';\n window.location.hash = commentAnchor;\n _toggleNavLinks();\n }\n})();\n\n\n/***\n * Displays a relative date.\n * ''ts'' is a Date object, ''fds'' is a string of the date which\n * will be displayed if the given date is older than 1 week.\n */\n\nfunction mtRelativeDate(ts, fds) {\n var now = new Date();\n var ref = ts;\n var delta = Math.floor((now.getTime() - ref.getTime()) / 1000);\n\n var str;\n if (delta < 60) {\n str = ''moments ago'';\n } else if (delta <= 86400) {\n // less than 1 day\n var hours = Math.floor(delta / 3600);\n var min = Math.floor((delta % 3600) / 60);\n if (hours == 1)\n str = ''1 hour ago'';\n else if (hours > 1)\n str = ''2 hours ago''.replace(/2/, hours);\n else if (min == 1)\n str = ''1 minute ago'';\n else\n str = ''2 minutes ago''.replace(/2/, min);\n } else if (delta <= 604800) {\n // less than 1 week\n var days = Math.floor(delta / 86400);\n var hours = Math.floor((delta % 86400) / 3600);\n if (days == 1)\n str = ''1 day ago'';\n else if (days > 1)\n str = ''2 days ago''.replace(/2/, days);\n else if (hours == 1)\n str = ''1 hour ago'';\n else\n str = ''2 hours ago''.replace(/2/, hours);\n }\n return str ? str : fds;\n}\n\n\n/***\n * Used to display an edit link for the given entry.\n */\n\nfunction mtEditLink(entry_id, author_id) {\n \n // This function has been inactivated by default because of the security issue.\n // You can activate this function if "AdminScript" is already known by visitor.\n \n \n\n var u = mtGetUser();\n if (! u) return;\n if (! entry_id) return;\n if (! author_id) return;\n if (u.id != author_id) return;\n var link = ''Edit'';\n document.write(link);\n\n \n}\n\n\n/***\n * Called when an input field on the comment form receives focus.\n */\n\nfunction mtCommentFormOnFocus() {\n // if CAPTCHA is enabled, this causes the captcha image to be\n // displayed if it hasn''t been already.\n mtShowCaptcha();\n}\n\n\n/***\n * Displays a captcha field for anonymous commenters.\n */\n\nvar mtCaptchaVisible = false;\nfunction mtShowCaptcha() {\n var u = mtGetUser();\n if ( u && u.is_authenticated ) return;\n if (mtCaptchaVisible) return;\n var div = document.getElementById(''comments-open-captcha'');\n if (div) {\n div.innerHTML = ''<$mt:CaptchaFields$>'';\n mtCaptchaVisible = true;\n }\n}\n\n\n/* user object\n -- saved in user cookie --\n u.name (display name)\n u.url (link to home page)\n u.email (for anonymous only)\n u.userpic (url for commenter/author)\n u.profile (link to profile)\n u.is_trusted (boolean)\n u.is_author (user has posting rights)\n u.is_banned (banned status; neither post/comment perms)\n u.can_post (has permission to post)\n u.can_comment (has permission to comment)\n\n -- status fields --\n u.is_authenticated (boolean)\n u.is_anonymous (user is anonymous)\n*/\n\n\nvar is_preview;\nvar user;\n\n/***\n * Assigns a user object as the actively logged in user; also saves the\n * user information in a browser cookie.\n */\n\nfunction mtSetUser(u) {\n if (u) {\n // persist this\n user = u;\n mtSaveUser();\n // sync up user greeting\n mtFireEvent(''usersignin'');\n }\n}\n\n\n/***\n * Simple function that escapes single quote characters for storing\n * in a cookie.\n */\n\nfunction mtEscapeJS(s) {\n s = s.replace(/''/g, "'");\n return s;\n}\n\n\n/***\n * Simple function that unescapes single quote characters that were\n * stored in a cookie.\n */\n\nfunction mtUnescapeJS(s) {\n s = s.replace(/'/g, "''");\n return s;\n}\n\n\n/***\n * Serializes a user object into a string, suitable for storing as a cookie.\n */\n\nfunction mtBakeUserCookie(u) {\n var str = "";\n if (u.name) str += "name:''" + mtEscapeJS(u.name) + "'';";\n if (u.url) str += "url:''" + mtEscapeJS(u.url) + "'';";\n if (u.email) str += "email:''" + mtEscapeJS(u.email) + "'';";\n if (u.is_authenticated) str += "is_authenticated:''1'';";\n if (u.profile) str += "profile:''" + mtEscapeJS(u.profile) + "'';";\n if (u.userpic) str += "userpic:''" + mtEscapeJS(u.userpic) + "'';";\n if (u.sid) str += "sid:''" + mtEscapeJS(u.sid) + "'';";\n str += "is_trusted:''" + (u.is_trusted ? "1" : "0") + "'';";\n str += "is_author:''" + (u.is_author ? "1" : "0") + "'';";\n str += "is_banned:''" + (u.is_banned ? "1" : "0") + "'';";\n str += "can_post:''" + (u.can_post ? "1" : "0") + "'';";\n str += "can_comment:''" + (u.can_comment ? "1" : "0") + "'';";\n str = str.replace(/;$/, '''');\n return str;\n}\n\n\n/***\n * Unserializes a user cookie and returns a user object with the restored\n * state.\n */\n\nfunction mtUnbakeUserCookie(s) {\n if (!s) return;\n\n var u = {};\n var m;\n while (m = s.match(/^((name|url|email|is_authenticated|profile|userpic|sid|is_trusted|is_author|is_banned|can_post|can_comment):''([^'']+?)'';?)/)) {\n s = s.substring(m[1].length);\n if (m[2].match(/^(is|can)_/)) // boolean fields\n u[m[2]] = m[3] == ''1'' ? true : false;\n else\n u[m[2]] = mtUnescapeJS(m[3]);\n }\n if (u.is_authenticated) {\n u.is_anonymous = false;\n } else {\n u.is_anonymous = true;\n u.can_post = false;\n u.is_author = false;\n u.is_banned = false;\n u.is_trusted = false;\n }\n return u;\n}\n\n\n/***\n * Retrieves an object of the currently logged in user''s state.\n * If no user is logged in or cookied, this will return null.\n */\n\nfunction mtGetUser() {\n if (!user) {\n var cookie = mtGetCookie(mtCookieName);\n if (!cookie) return;\n user = mtUnbakeUserCookie(cookie);\n if (! user) {\n user = {};\n user.is_anonymous = true;\n user.can_post = false;\n user.is_author = false;\n user.is_banned = false;\n user.is_trusted = false;\n }\n }\n return user;\n}\n\n\n/***\n * Issues a request to the MT comment script to retrieve the currently\n * logged-in user (if any).\n */\n\nvar mtFetchedUser = false;\n\nfunction mtFetchUser(cb) {\n if (!cb) cb = ''mtSetUser'';\n if ( ( cb == ''mtSetUser'' ) && mtGetUser() ) {\n var url = document.URL;\n url = url.replace(/#.+$/, '''');\n url += ''#comments-open'';\n location.href = url;\n } else {\n // we aren''t using AJAX for this, since we may have to request\n // from a different domain. JSONP to the rescue.\n mtFetchedUser = true;\n var u = mtGetUser();\n var script = document.createElement(''script'');\n var ts = new Date().getTime();\n script.src = ''<$mt:CGIPath$><$mt:CommentScript$>?__mode=userinfo&blog_id=<$mt:BlogID$>&jsonp='' + cb + ''&ts='' + ts + ''&sid='' + u.sid;\n (document.getElementsByTagName(''head''))[0].appendChild(script);\n }\n}\n\nfunction mtVerifySession(cb) {\n if (!cb) return;\n var script = document.createElement(''script'');\n var ts = new Date().getTime();\n var u = mtGetUser();\n script.src = ''<$mt:CGIPath$><$mt:CommentScript$>?__mode=verify_session&blog_id=<$mt:BlogID$>&jsonp='' + cb + ''&ts='' + ts + ''&sid='' + u.sid;\n (document.getElementsByTagName(''head''))[0].appendChild(script);\n}\n\n\n\n/***\n * Called when the ''Remember me'' checkbox is changed. If the checkbox\n * is cleared, the cached user cookie is immediately cleared.\n */\n\nfunction mtRememberMeOnClick(b) {\n if (!b.checked)\n mtClearUser(b.form);\n return true;\n}\n\n\n/***\n * Called when comment form is sent.\n * Required parameter: Form DOM object of comment form.\n * If form has a ''bakecookie'' member, it will be used to signal\n * storing the anonymous commenter information to a cookie.\n * If form has a ''armor'' member, it will be used to store\n * a token that is checked by the comment script.\n */\n\n\nvar mtRequestSubmitted = false;\nfunction mtCommentOnSubmit(f) {\n if (!mtRequestSubmitted) {\n mtRequestSubmitted = true;\n\n if (f.armor)\n f.armor.value = ''<$mt:BlogSitePath encode_sha1="1"$>'';\n if (f.bakecookie && f.bakecookie.checked)\n mtSaveUser(f);\n\n // disable submit buttons\n if (f.preview_button) f.preview_button.disabled = true;\n if (f.post) f.post.disabled = true;\n\n var u = mtGetUser();\n if ( !is_preview && ( u && u.is_authenticated ) ) {\n // validate session; then submit\n mtVerifySession(''mtCommentSessionVerify'');\n return false;\n }\n\n return true;\n }\n return false;\n}\n\nfunction mtCommentSessionVerify(app_user) {\n var f = document[''comments_form''];\n if ( app_user && app_user.verified ) {\n f.submit();\n } else {\n alert(''Your session has expired. Please sign in again to comment.'');\n mtClearUser();\n mtFireEvent(''usersignin'');\n\n mtShow(''comments-form'');\n mtHide(''comments-open-footer'');\n\n }\n}\n\nfunction mtUserOnLoad() {\n var u = mtGetUser();\n\n // if the user is authenticated, hide the ''anonymous'' fields\n // and any captcha input if already shown\n if ( document.getElementById(''comments-form'')) {\n if ( u && u.is_authenticated ) {\n mtShow(''comments-form'');\n mtHide(''comments-open-data'');\n if (mtCaptchaVisible)\n mtHide(''comments-open-captcha'');\n } else {\n\n mtHide(''comments-form'');\n\n }\n if ( u && u.is_banned )\n mtHide(''comments-form'');\n\n // if we''re previewing a comment, make sure the captcha\n // field is visible\n if (is_preview)\n mtShowCaptcha();\n else\n mtShowGreeting();\n\n // populate anonymous comment fields if user is cookied as anonymous\n var cf = document[''comments_form''];\n if (cf) {\n if (u && u.is_anonymous) {\n if (u.email) cf.email.value = u.email;\n if (u.name) cf.author.value = u.name;\n if (u.url) cf.url.value = u.url;\n if (cf.bakecookie)\n cf.bakecookie.checked = u.name || u.email;\n } else {\n if (u && u.sid && cf.sid)\n cf.sid.value = u.sid;\n }\n if (cf.post && cf.post.disabled)\n cf.post.disabled = false;\n if (cf.preview_button && cf.preview_button.disabled)\n cf.preview_button.disabled = false;\n mtRequestSubmitted = false;\n }\n }\n}\n\n\n\n/***\n * Called when an entry archive page is loaded.\n * This routine controls which elements of the comment form are shown\n * or hidden, depending on commenter type and blog configuration.\n */\n\n\nfunction mtEntryOnLoad() {\n var cf = document[''comments_form''];\n if (cf && cf.preview) cf.preview.value = '''';\n mtHide(''trackbacks-info'');\n mtHide(''comments-open'');\n mtFireEvent(''usersignin'');\n}\n\nfunction mtEntryOnUnload() {\n if (mtRequestSubmitted) {\n var cf = document[''comments_form''];\n if (cf) {\n if (cf.post && cf.post.disabled)\n cf.post.disabled = false;\n if (cf.preview_button && cf.preview_button.disabled)\n cf.preview_button.disabled = false;\n }\n mtRequestSubmitted = false;\n }\n return true;\n}\n\nmtAttachEvent(''usersignin'', mtUserOnLoad);\n\n\n\n/***\n * Handles the action of the "Sign in" link. First clears any existing\n * user cookie, then directs to the MT comment script to sign the user in.\n */\n\nfunction mtSignIn() {\n var doc_url = document.URL;\n doc_url = doc_url.replace(/#.+/, '''');\n var url = ''<$mt:SignInLink$>'';\n if (is_preview) {\n if ( document[''comments_form''] ) {\n var entry_id = document[''comments_form''].entry_id.value;\n url += ''&entry_id='' + entry_id;\n } else {\n url += ''&return_url=<$mt:BlogURL encode_url="1"$>'';\n }\n } else {\n url += ''&return_url='' + encodeURIComponent(doc_url);\n }\n mtClearUser();\n location.href = url;\n}\n\nfunction mtSignInOnClick(sign_in_element) {\n var el;\n if (sign_in_element) {\n // display throbber\n el = document.getElementById(sign_in_element);\n if (!el) // legacy MT 4.x element id\n el = document.getElementById(''comment-form-external-auth'');\n }\n if (el)\n el.innerHTML = ''Signing in...  '';\n\n mtClearUser(); // clear any ''anonymous'' user cookie to allow sign in\n mtSignIn();\n return false;\n}\n\nfunction mtSetUserOrLogin(u) {\n if (u && u.is_authenticated) {\n mtSetUser(u);\n } else {\n // user really isn''t logged in; so let''s do this!\n mtSignIn();\n }\n}\n\n\n/***\n * Handles sign out from the web site.\n * First clears any existing user cookie, then direts to the MT comment\n * script to sign the user out.\n */\n\nfunction mtSignOut(entry_id) {\n mtClearUser();\n var doc_url = document.URL;\n doc_url = doc_url.replace(/#.+/, '''');\n var url = ''<$mt:SignOutLink$>'';\n if (is_preview) {\n if ( document[''comments_form''] ) {\n var entry_id = document[''comments_form''].entry_id.value;\n url += ''&entry_id='' + entry_id;\n } else {\n url += ''&return_url=<$mt:BlogURL encode_url="1"$>'';\n }\n } else {\n url += ''&return_url='' + encodeURIComponent(doc_url);\n }\n location.href = url;\n}\n\n\n/***\n * Handles the action of the "Sign out" link.\n */\n\nfunction mtSignOutOnClick() {\n mtSignOut();\n return false;\n}\n\n\n/***\n * Handles the display of the greeting message, depending on what kind of\n * user is logged in and blog comment policy.\n */\n\n\nfunction mtShowGreeting() {\n\n var reg_reqd = truefalse;\n\n var cf = document[''comments_form''];\n if (!cf) return;\n\n var el = document.getElementById(''comment-greeting'');\n if (!el) // legacy MT 4.x element id\n el = document.getElementById(''comment-form-external-auth'');\n if (!el) return;\n\n var eid = cf.entry_id;\n var entry_id;\n if (eid) entry_id = eid.value;\n\n var phrase;\n var u = mtGetUser();\n\n if ( u && u.is_authenticated ) {\n if ( u.is_banned ) {\n phrase = ''You do not have permission to comment on this blog. (\\sign out\\<\\/a\\>)'';\n } else {\n var user_link;\n if ( u.is_author ) {\n user_link = '''' + u.name + '''';\n } else {\n // registered user, but not a user with posting rights\n if (u.url)\n user_link = '''' + u.name + '''';\n else\n user_link = u.name;\n }\n // TBD: supplement phrase with userpic if one is available.\n phrase = ''Thanks for signing in, __NAME__. (\\sign out\\<\\/a\\>)'';\n phrase = phrase.replace(/__NAME__/, user_link);\n }\n } else {\n if (reg_reqd) {\n phrase = ''\\Sign in\\<\\/a\\> to comment.'';\n } else {\n phrase = ''\\Sign in\\<\\/a\\> to comment, or comment anonymously.'';\n }\n }\n el.innerHTML = phrase;\n\n mtShowCaptcha();\n\n}\n\n\n\n/***\n * Handles the action of the ''Reply'' links.\n */\n\nfunction mtReplyCommentOnClick(parent_id, author) {\n mtShow(''comment-form-reply'');\n\n var checkbox = document.getElementById(''comment-reply'');\n var label = document.getElementById(''comment-reply-label'');\n var text = document.getElementById(''comment-text'');\n\n // Populate label with new values\n var reply_text = ''Replying to \\comment from __AUTHOR__\\<\\/a\\>'';\n reply_text = reply_text.replace(/__PARENT__/, parent_id);\n reply_text = reply_text.replace(/__AUTHOR__/, author);\n label.innerHTML = reply_text;\n\n checkbox.value = parent_id; \n checkbox.checked = true;\n try {\n // text field may be hidden\n text.focus();\n } catch(e) {\n }\n\n mtSetCommentParentID();\n}\n\n\n/***\n * Sets the parent comment ID when replying to a comment.\n */\n\nfunction mtSetCommentParentID() {\n var checkbox = document.getElementById(''comment-reply'');\n var parent_id_field = document.getElementById(''comment-parent-id'');\n if (!checkbox || !parent_id_field) return;\n\n var pid = 0;\n if (checkbox.checked == true)\n pid = checkbox.value;\n parent_id_field.value = pid;\n}\n\n\n/***\n * Persists a copy of the current user cookie into the browser cookie stash.\n */\n\nfunction mtSaveUser(f) {\n // We can''t reliably store the user cookie during a preview.\n if (is_preview) return;\n\n var u = mtGetUser();\n\n if (f && (!u || u.is_anonymous)) {\n if ( !u ) {\n u = {};\n u.is_authenticated = false;\n u.can_comment = true;\n u.is_author = false;\n u.is_banned = false;\n u.is_anonymous = true;\n u.is_trusted = false;\n }\n if (f.author != undefined) u.name = f.author.value;\n if (f.email != undefined) u.email = f.email.value;\n if (f.url != undefined) u.url = f.url.value;\n }\n\n if (!u) return;\n\n var cache_period = mtCookieTimeout * 1000;\n\n // cache anonymous user info for a long period if the\n // user has requested to be remembered\n if (u.is_anonymous && f && f.bakecookie && f.bakecookie.checked)\n cache_period = 365 * 24 * 60 * 60 * 1000;\n\n var now = new Date();\n mtFixDate(now);\n now.setTime(now.getTime() + cache_period);\n\n var cmtcookie = mtBakeUserCookie(u);\n mtSetCookie(mtCookieName, cmtcookie, now, mtCookiePath, mtCookieDomain,\n location.protocol == ''https:'');\n}\n\n\n/***\n * Clears the blog-side user cookie.\n */\n\nfunction mtClearUser() {\n user = null;\n mtDeleteCookie(mtCookieName, mtCookiePath, mtCookieDomain,\n location.protocol == ''https:'');\n}\n\n\n/***\n * Sets a browser cookie.\n */\n\nfunction mtSetCookie(name, value, expires, path, domain, secure) {\n if (domain && ( domain.match(/^\\.?localhost$/) || domain.match(/^[0-9\\.]+$/) ))\n domain = null;\n var curCookie = name + "=" + encodeURIComponent(value) +\n (expires ? "; expires=" + expires.toGMTString() : "") +\n (path ? "; path=" + path : "") +\n (domain ? "; domain=" + domain : "") +\n (secure ? "; secure" : "");\n document.cookie = curCookie;\n}\n\n\n/***\n * Retrieves a browser cookie.\n */\n\nfunction mtGetCookie(name) {\n var prefix = name + ''='';\n var c = document.cookie;\n var cookieStartIndex = c.indexOf(prefix);\n if (cookieStartIndex == -1)\n return '''';\n var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);\n if (cookieEndIndex == -1)\n cookieEndIndex = c.length;\n var this_cookie = c.substring(cookieStartIndex + prefix.length, cookieEndIndex);\n if ( this_cookie.match(/\\%u/i) ) {\n return '''';\n }\n return decodeURIComponent( this_cookie );\n}\n\n\n/***\n * Deletes a browser cookie.\n */\n\nfunction mtDeleteCookie(name, path, domain, secure) {\n if (mtGetCookie(name)) {\n if (domain && domain.match(/^\\.?localhost$/))\n domain = null;\n document.cookie = name + "=" +\n (path ? "; path=" + path : "") +\n (domain ? "; domain=" + domain : "") +\n (secure ? "; secure" : "") +\n "; expires=Thu, 01-Jan-70 00:00:01 GMT";\n }\n}\n\nfunction mtFixDate(date) {\n var skew = (new Date(0)).getTime();\n if (skew > 0)\n date.setTime(date.getTime() - skew);\n}\n\n\n/***\n * Returns a XMLHttpRequest object (for Ajax operations).\n */\n\nfunction mtGetXmlHttp() {\n if ( !window.XMLHttpRequest ) {\n window.XMLHttpRequest = function() {\n var types = [\n "Microsoft.XMLHTTP",\n "MSXML2.XMLHTTP.5.0",\n "MSXML2.XMLHTTP.4.0",\n "MSXML2.XMLHTTP.3.0",\n "MSXML2.XMLHTTP"\n ];\n\n for ( var i = 0; i < types.length; i++ ) {\n try {\n return new ActiveXObject( types[ i ] );\n } catch( e ) {}\n }\n\n return undefined;\n };\n }\n if ( window.XMLHttpRequest )\n return new XMLHttpRequest();\n}\n\n// BEGIN: fast browser onload init\n// Modifications by David Davis, DWD\n// Dean Edwards/Matthias Miller/John Resig\n// http://dean.edwards.name/weblog/2006/06/again/?full#comment5338\n\nfunction mtInit() {\n // quit if this function has already been called\n if (arguments.callee.done) return;\n\n // flag this function so we don''t do the same thing twice\n arguments.callee.done = true;\n\n // kill the timer\n // DWD - check against window\n if ( window._timer ) clearInterval(window._timer);\n\n // DWD - fire the window onload now, and replace it\n if ( window.onload && ( window.onload !== window.mtInit ) ) {\n window.onload();\n window.onload = function() {};\n }\n\n\n mtInitCommenter();\n\n\n}\n\n/* for Mozilla/Opera9 */\nif (document.addEventListener) {\n document.addEventListener("DOMContentLoaded", mtInit, false);\n}\n\n/* for Internet Explorer */\n/*@cc_on @*/\n/*@if (@_win32)\nif (!document.addEventListener){\n document.write("\n<$mt:CCLicenseRDF$>\n<$mt:CanonicalLink$>\n', 'custom', 0), (33, 1, 0, 0, 1, 1, '[[regtime]]', 'recent_comments', NULL, NULL, NULL, NULL, '[[regtime]]', 'Recent Comments', NULL, 1, '\n \n \n\n \n \n\n', 'widget', 0), (34, 1, 0, 0, 1, 1, '[[regtime]]', 'main_index', NULL, NULL, NULL, NULL, '[[regtime]]', 'Main Index', 'index.html', 1, '\n\n\n <$mt:Include module="HTML Head"$>\n " />\n <$mt:BlogName encode_html="1"$>\n\n">\n
    \n
    \n\n\n <$mt:Include module="Banner Header"$>\n\n\n
    \n
    \n\n\n
    \n
    \n\n \n <$mt:Include module="Entry Summary" display_blog_name="1"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Sidebar"$>\n\n\n
    \n
    \n\n\n <$mt:Include module="Banner Footer"$>\n\n\n
    \n
    \n\n\n', 'index', 0), (35, 1, 0, 0, 1, 1, '[[regtime]]', '3column_layout_secondary_sidebar', NULL, NULL, NULL, NULL, '[[regtime]]', '3-column layout - Secondary Sidebar', NULL, 1, '', 'widgetset', 0), (36, 1, 0, 0, 1, 1, '[[regtime]]', '3column_layout_primary_sidebar', NULL, NULL, NULL, NULL, '[[regtime]]', '3-column layout - Primary Sidebar', NULL, 1, '', 'widgetset', 0), (37, 1, 0, 0, 1, 1, '[[regtime]]', '2column_layout_sidebar', NULL, NULL, NULL, NULL, '[[regtime]]', '2-column layout - Sidebar', NULL, 1, '', 'widgetset', 0), (38, 0, 0, 0, 1, NULL, '[[regtime]]', 'notify-entry', NULL, NULL, NULL, NULL, '[[regtime]]', 'Entry Notify', NULL, 1, 'A new <$mt:entryclasslabel$> entitled ''<$mt:EntryTitle$>'' has been published to <$mt:BlogName$>.\n\nView entry:View page: <<$mt:EntryStatus$><$mt:EntryPermalink$><$mt:Var name="entry_editurl"$>>\n\n------------------------------------------------------------------------\n<$mt:EntryClassLabel lower_case="1"$> Title: <$mt:EntryTitle$>\nPublish Date: <$mt:EntryDate mail="1"$>\n\n\n<$mt:EntryExcerpt wrap_text="72"$>\n\n------------------------------------------------------------------------\n\nMessage from Sender:\n<$mt:Var name="message"$>\n\n------------------------------------------------------------------------\n\n<$mt:EntryBody remove_html="1" wrap_text="72"$>\n\n------------------------------------------------------------------------\n\nYou are receiving this email either because you have elected to receive notifications about new content on <$mt:BlogName$>, or the author of the post thought you would be interested. If you no longer wish to receive these emails, please contact the following person:\n\n<$mt:AuthorDisplayName$> <<$mt:AuthorEmail$>><$mt:var name="from_address"$>\n', 'email', 0), (39, 0, 0, 0, 1, NULL, '[[regtime]]', 'recover-password', NULL, NULL, NULL, NULL, '[[regtime]]', 'Password Recovery', NULL, 1, 'A request was made to change your Movable Type password. To complete this process click on the link below to select a new password.\n\n\n\nIf you did not request this change, you can safely ignore this email.\n\n\n', 'email', 0), (40, 0, 0, 0, 1, NULL, '[[regtime]]', 'verify-subscribe', NULL, NULL, NULL, NULL, '[[regtime]]', 'Subscribe Verify', NULL, 1, 'Thank you for subscribing to notifications about updates to <$mt:BlogName$>. Follow the link below to confirm your subscription:\n\n<$mt:Var name="script_path"$>?__mode=confirm;email=<$mt:Var name="email" escape="url"$>;magic=<$mt:Var name="magic" escape="url"$>;blog_id=<$mt:BlogID$>;redirect=<$mt:Var name="redirect_url" escape="url"$>;entry_id=<$mt:EntryID$>\n\nIf the link is not clickable, just copy and paste it into your browser.\n\n<$mt:Include module="Mail Footer"$>\n', 'email', 0), (41, 0, 0, 0, 1, NULL, '[[regtime]]', 'lockout-ip', NULL, NULL, NULL, NULL, '[[regtime]]', 'IP Address Lockout', NULL, 1, 'This email is to notify you that an IP address has been locked out.\n\nIP Address: \nRecovery: \n\n\n', 'email', 0), (42, 0, 0, 0, 1, NULL, '[[regtime]]', 'commenter_confirm', NULL, NULL, NULL, NULL, '[[regtime]]', 'Commenter Confirm', NULL, 1, 'Thank you registering for an account to comment on <$mt:BlogName$>. \n\nFor your security and to prevent fraud, we ask you to confirm your account and email address before continuing. Once your account is confirmed, you will immediately be allowed to comment on <$mt:BlogName$>.\n\nTo confirm your account, please click on the following URL, or cut and paste this URL into a web browser:\n\n<$mt:Var name="confirm_url"$>\n\nIf you did not make this request, or you don''t want to register for an account to comment on <$mt:BlogName$>, then no further action is required.\n\nSincerely,\n<$mt:AuthorDisplayName encode_html="1"$>Movable Type\n\n<$mt:Include module="Mail Footer"$>\n', 'email', 0), (43, 0, 0, 0, 1, NULL, '[[regtime]]', 'new-ping', NULL, NULL, NULL, NULL, '[[regtime]]', 'New Ping', NULL, 1, '\n \n \n \n An unapproved TrackBack has been posted on your blog ''<$mt:BlogName$>'', on entry #<$mt:EntryID$> (<$mt:EntryTitle$>). You need to approve this TrackBack before it will appear on your site.\n \n An unapproved TrackBack has been posted on your blog ''<$mt:BlogName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>). You need to approve this TrackBack before it will appear on your site.\n \n \n An unapproved TrackBack has been posted on your blog ''<$mt:BlogName$>'', on category #<$mt:CategoryID$>, (<$mt:CategoryLabel$>). You need to approve this TrackBack before it will appear on your site.\n \n \n An unapproved TrackBack has been posted on your website ''<$mt:WebsiteName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>). You need to approve this TrackBack before it will appear on your site.\n \n\n \n \n \n A new TrackBack has been posted on your blog ''<$mt:BlogName$>'', on entry #<$mt:EntryID$> (<$mt:EntryTitle$>).\n \n A new TrackBack has been posted on your blog ''<$mt:BlogName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>).\n \n \n A new TrackBack has been posted on your blog ''<$mt:BlogName$>'', on category #<$mt:CategoryID$> (<$mt:CategoryLabel$>).\n \n \n A new TrackBack has been posted on your website ''<$mt:WebsiteName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>).\n \n\n\nExcerpt: \n<$mt:PingExcerpt wrap_text="72"$>\n\nURL: <$mt:PingURL$>\nTitle: <$mt:PingTitle$>\nBlog: <$mt:PingBlogName$>\nIP address: <$mt:PingIP$>\n\nApprove TrackBack: \n <<$mt:Var name="approve_url"$>>\n\nView TrackBack: \n <<$mt:EntryPermalink$>>\n\nReport TrackBack as spam: \n <<$mt:Var name="spam_url"$>>\n\nEdit TrackBack: \n <<$mt:Var name="edit_url"$>>\n\n<$mt:Include module="Mail Footer"$>\n', 'email', 0), (44, 0, 0, 0, 1, NULL, '[[regtime]]', 'lockout-user', NULL, NULL, NULL, NULL, '[[regtime]]', 'User Lockout', NULL, 1, 'This email is to notify you that a Movable Type user account has been locked out.\n\nUsername: \nDisplay Name: \nEmail: \n\nIf you want to permit this user to participate again, click the link below.\n\n\n\n\n', 'email', 0), (45, 0, 0, 0, 1, NULL, '[[regtime]]', 'new-comment', NULL, NULL, NULL, NULL, '[[regtime]]', 'New Comment', NULL, 1, 'An unapproved comment has been posted on your blog ''<$mt:BlogName$>'', for entry #<$mt:EntryID$> (<$mt:EntryTitle$>). You need to approve this comment before it will appear on your site.An unapproved comment has been posted on your blog ''<$mt:BlogName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>). You need to approve this comment before it will appear on your site.An unapproved comment has been posted on your website ''<$mt:WebsiteName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>). You need to approve this comment before it will appear on your site.A new comment has been posted on your blog ''<$mt:BlogName$>'', on entry #<$mt:EntryID$> (<$mt:EntryTitle$>).A new comment has been posted on your blog ''<$mt:BlogName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>).A new comment has been posted on your website ''<$mt:WebsiteName$>'', on page #<$mt:PageID$> (<$mt:PageTitle$>).\n\n<$mt:CommentBody remove_html="1" wrap_text="72"$>\n\nCommenter name: <$mt:CommentAuthor$> \nCommenter email address: <$mt:CommentEmail$>\nCommenter URL: <$mt:CommentURL$>\nCommenter IP address: <$mt:CommentIP$>\n\nApprove comment:\n <<$mt:Var name="approve_url"$>>\nView comment:\n <<$mt:Var name="view_url" escape="html"$>>\nEdit comment:\n <<$mt:Var name="edit_url"$>>\nReport the comment as spam:\n <<$mt:Var name="spam_url"$>>\n\n<$mt:Include module="Mail Footer"$>\n', 'email', 0), (46, 0, 0, 0, 1, NULL, '[[regtime]]', 'footer-email', NULL, NULL, NULL, NULL, '[[regtime]]', 'Mail Footer', NULL, 1, '\n-- \nPowered by Movable Type <$mt:Version$>\n<$mt:Var name="portal_url"$>\n', 'custom', 0), (47, 0, 0, 0, 1, NULL, '[[regtime]]', 'commenter_notify', NULL, NULL, NULL, NULL, '[[regtime]]', 'Commenter Notify', NULL, 1, 'This email is to notify you that a new user has successfully registered on the blog ''<$mt:BlogName$>''. Here is some information about this new user.\n\nNew User Information:\nUsername: <$mt:CommenterUsername$> \nFull Name: <$mt:CommenterName$>\nEmail: <$mt:CommenterEmail$>\n\nTo view or edit this user, please click on or cut and paste the following URL into a web browser:\n<$mt:Var name="profile_url"$>\n\n<$mt:Include module="Mail Footer"$>\n', 'email', 0), (48, 0, 0, 0, 1, NULL, '[[regtime]]', 'comment_throttle', NULL, NULL, NULL, NULL, '[[regtime]]', 'Comment throttle', NULL, 1, 'If this was an error, you can unblock the IP address and allow the visitor to add it again by logging in to your Movable Type installation, choosing Blog Config - IP Banning, and deleting the IP address <$mt:Var name="throttled_ip"$> from the list of banned addresses.\nA visitor to your blog <$mt:BlogName$> has automatically been banned by adding more than the allowed number of comments in the last <$mt:Var name="throttle_seconds"$> seconds.\n\nThis was done to prevent a malicious script from overwhelming your weblog with comments. The banned IP address is\n\n<$mt:Var name="throttled_ip"$>\n\n<$mt:Var name="message"$>\n', 'email', 0); -- -------------------------------------------------------- -- -- Table structure for table `mt_templatemap` -- CREATE TABLE `mt_templatemap` ( `templatemap_id` int(11) NOT NULL AUTO_INCREMENT, `templatemap_archive_type` varchar(25) NOT NULL, `templatemap_blog_id` int(11) NOT NULL, `templatemap_build_interval` int(11) DEFAULT NULL, `templatemap_build_type` smallint(6) DEFAULT '1', `templatemap_file_template` varchar(255) DEFAULT NULL, `templatemap_is_preferred` tinyint(4) DEFAULT NULL, `templatemap_template_id` int(11) NOT NULL, PRIMARY KEY (`templatemap_id`), KEY `mt_templatemap_is_preferred` (`templatemap_is_preferred`), KEY `mt_templatemap_archive_type` (`templatemap_archive_type`), KEY `mt_templatemap_template_id` (`templatemap_template_id`), KEY `mt_templatemap_blog_id` (`templatemap_blog_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; -- -- Dumping data for table `mt_templatemap` -- INSERT INTO `mt_templatemap` VALUES (1, 'Page', 1, NULL, 1, NULL, 1, 17); -- -------------------------------------------------------- -- -- Table structure for table `mt_template_meta` -- CREATE TABLE `mt_template_meta` ( `template_meta_template_id` int(11) NOT NULL, `template_meta_type` varchar(75) NOT NULL, `template_meta_vchar` varchar(255) DEFAULT NULL, `template_meta_vchar_idx` varchar(255) DEFAULT NULL, `template_meta_vdatetime` datetime DEFAULT NULL, `template_meta_vdatetime_idx` datetime DEFAULT NULL, `template_meta_vinteger` int(11) DEFAULT NULL, `template_meta_vinteger_idx` int(11) DEFAULT NULL, `template_meta_vfloat` float DEFAULT NULL, `template_meta_vfloat_idx` float DEFAULT NULL, `template_meta_vblob` mediumblob, `template_meta_vclob` mediumtext, PRIMARY KEY (`template_meta_template_id`,`template_meta_type`), KEY `mt_template_meta_type_vint` (`template_meta_type`,`template_meta_vinteger_idx`), KEY `mt_template_meta_type_vflt` (`template_meta_type`,`template_meta_vfloat_idx`), KEY `mt_template_meta_type_vdt` (`template_meta_type`,`template_meta_vdatetime_idx`), KEY `mt_template_meta_type_vchar` (`template_meta_type`,`template_meta_vchar_idx`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `mt_template_meta` -- INSERT INTO `mt_template_meta` VALUES (35, 'modulesets', '31,30', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (36, 'modulesets', '23,15,26,21,14', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (37, 'modulesets', '31,23,30,15,26,21,14', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -- -------------------------------------------------------- -- -- Table structure for table `mt_template_rev` -- CREATE TABLE `mt_template_rev` ( `template_rev_id` int(11) NOT NULL AUTO_INCREMENT, `template_rev_changed` varchar(255) NOT NULL, `template_rev_created_by` int(11) DEFAULT NULL, `template_rev_created_on` datetime DEFAULT NULL, `template_rev_description` varchar(255) DEFAULT NULL, `template_rev_label` varchar(255) DEFAULT NULL, `template_rev_modified_by` int(11) DEFAULT NULL, `template_rev_modified_on` datetime DEFAULT NULL, `template_rev_rev_number` int(11) NOT NULL DEFAULT '0', `template_rev_template` mediumblob NOT NULL, `template_rev_template_id` int(11) NOT NULL, PRIMARY KEY (`template_rev_id`), KEY `mt_template_rev_template_id` (`template_rev_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `mt_touch` -- CREATE TABLE `mt_touch` ( `touch_id` int(11) NOT NULL AUTO_INCREMENT, `touch_blog_id` int(11) DEFAULT NULL, `touch_modified_on` datetime DEFAULT NULL, `touch_object_type` varchar(255) DEFAULT NULL, PRIMARY KEY (`touch_id`), KEY `mt_touch_blog_type` (`touch_blog_id`,`touch_object_type`,`touch_modified_on`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- Dumping data for table `mt_touch` -- INSERT INTO `mt_touch` VALUES (1, 0, '[[regtime]]', 'author'), (3, 1, '[[regtime]]', 'page'), (2, 1, '[[regtime]]', 'template'); -- -------------------------------------------------------- -- -- Table structure for table `mt_trackback` -- CREATE TABLE `mt_trackback` ( `trackback_id` int(11) NOT NULL AUTO_INCREMENT, `trackback_blog_id` int(11) NOT NULL, `trackback_category_id` int(11) NOT NULL DEFAULT '0', `trackback_created_by` int(11) DEFAULT NULL, `trackback_created_on` datetime DEFAULT NULL, `trackback_description` mediumtext, `trackback_entry_id` int(11) NOT NULL DEFAULT '0', `trackback_is_disabled` tinyint(4) DEFAULT '0', `trackback_modified_by` int(11) DEFAULT NULL, `trackback_modified_on` datetime DEFAULT NULL, `trackback_passphrase` varchar(30) DEFAULT NULL, `trackback_rss_file` varchar(255) DEFAULT NULL, `trackback_title` varchar(255) DEFAULT NULL, `trackback_url` varchar(255) DEFAULT NULL, PRIMARY KEY (`trackback_id`), KEY `mt_trackback_category_id` (`trackback_category_id`), KEY `mt_trackback_created_on` (`trackback_created_on`), KEY `mt_trackback_blog_id` (`trackback_blog_id`), KEY `mt_trackback_entry_id` (`trackback_entry_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; -- -- Dumping data for table `mt_trackback` -- INSERT INTO `mt_trackback` VALUES (1, 1, 0, 1, '[[regtime]]', '...', 1, 0, NULL, '[[regtime]]', NULL, NULL, 'home', '[[wwwurl]]/home.html'); -- -------------------------------------------------------- -- -- Table structure for table `mt_ts_error` -- CREATE TABLE `mt_ts_error` ( `ts_error_error_time` int(11) NOT NULL, `ts_error_funcid` int(11) NOT NULL DEFAULT '0', `ts_error_jobid` int(11) NOT NULL, `ts_error_message` varchar(255) NOT NULL, PRIMARY KEY (`ts_error_jobid`,`ts_error_funcid`), KEY `mt_ts_error_funcid_time` (`ts_error_funcid`,`ts_error_error_time`), KEY `mt_ts_error_error_time` (`ts_error_error_time`), KEY `mt_ts_error_jobid` (`ts_error_jobid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `mt_ts_exitstatus` -- CREATE TABLE `mt_ts_exitstatus` ( `ts_exitstatus_jobid` int(11) NOT NULL, `ts_exitstatus_completion_time` int(11) DEFAULT NULL, `ts_exitstatus_delete_after` int(11) DEFAULT NULL, `ts_exitstatus_funcid` int(11) NOT NULL, `ts_exitstatus_status` int(11) DEFAULT NULL, PRIMARY KEY (`ts_exitstatus_jobid`), KEY `mt_ts_exitstatus_funcid` (`ts_exitstatus_funcid`), KEY `mt_ts_exitstatus_delete_after` (`ts_exitstatus_delete_after`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `mt_ts_funcmap` -- CREATE TABLE `mt_ts_funcmap` ( `ts_funcmap_funcid` int(11) NOT NULL AUTO_INCREMENT, `ts_funcmap_funcname` varchar(255) NOT NULL, PRIMARY KEY (`ts_funcmap_funcid`), UNIQUE KEY `mt_ts_funcmap_funcname` (`ts_funcmap_funcname`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `mt_ts_job` -- CREATE TABLE `mt_ts_job` ( `ts_job_jobid` int(11) NOT NULL AUTO_INCREMENT, `ts_job_arg` mediumblob, `ts_job_coalesce` varchar(255) DEFAULT NULL, `ts_job_funcid` int(11) NOT NULL, `ts_job_grabbed_until` int(11) NOT NULL, `ts_job_insert_time` int(11) DEFAULT NULL, `ts_job_priority` int(11) DEFAULT NULL, `ts_job_run_after` int(11) NOT NULL, `ts_job_uniqkey` varchar(255) DEFAULT NULL, PRIMARY KEY (`ts_job_jobid`), UNIQUE KEY `mt_ts_job_uniqfunc` (`ts_job_funcid`,`ts_job_uniqkey`), KEY `mt_ts_job_funcpri` (`ts_job_funcid`,`ts_job_priority`), KEY `mt_ts_job_funccoal` (`ts_job_funcid`,`ts_job_coalesce`), KEY `mt_ts_job_funcrun` (`ts_job_funcid`,`ts_job_run_after`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;