var Wiky={version:0.95,blocks:null,rules:{all:["Wiky.rules.pre","Wiky.rules.nonwikiblocks","Wiky.rules.wikiblocks","Wiky.rules.post",],pre:[{rex:/(\r?\n)/g,tmplt:"\xB6"},],post:[{rex:/(^\xB6)|(\xB6$)/g,tmplt:""},{rex:/@([0-9]+)@/g,tmplt:function($0,$1){return Wiky.restore($1)}},{rex:/\xB6/g,tmplt:"\n"}],nonwikiblocks:[{rex:/\\([%])/g,tmplt:function($0,$1){return Wiky.store($1)}},{rex:/\[(?:\{([^}]*)\})?(?:\(([^)]*)\))?%(.*?)%\]/g,tmplt:function($0,$1,$2,$3){return":p]"+Wiky.store("<pre"+($2?(' lang="x-'+Wiky.attr($2)+'"'):"")+Wiky.style($1)+">"+Wiky.apply($3,$2?Wiky.rules.lang[Wiky.attr($2)]:Wiky.rules.code)+"</pre>")+"[p:"}}],wikiblocks:["Wiky.rules.nonwikiinlines","Wiky.rules.escapes",{rex:/(?:^|\xB6)(={1,6})(.*?)[=]*(?=\xB6|$)/g,tmplt:function($0,$1,$2){var h=$1.length;return":p]\xB6<h"+h+">"+$2+"</h"+h+">\xB6[p:"}},{rex:/(?:^|\xB6)[-]{4}(?:\xB6|$)/g,tmplt:"\xB6<hr/>\xB6"},{rex:/\\\\([ \xB6])/g,tmplt:"<br/>$1"},{rex:/(^|\xB6)([*01aAiIg]*[\.*])[ ]/g,tmplt:function($0,$1,$2){var state=$2.replace(/([*])/g,"u").replace(/([\.])/,"");return":"+state+"]"+$1+"["+state+":"}},{rex:/(?:^|\xB6);[ ](.*?):[ ]/g,tmplt:"\xB6:l][l:$1:d][d:"},{rex:/\[(?:\{([^}]*)\})?(?:\(([^)]*)\))?\"/g,tmplt:function($0,$1,$2){return":p]<blockquote"+Wiky.attr($2,"cite",0)+Wiky.attr($2,"title",1)+Wiky.style($1)+">[p:"}},{rex:/\"\]/g,tmplt:":p]</blockquote>[p:"},{rex:/\[(\{[^}]*\})?\|/g,tmplt:":t]$1[r:"},{rex:/\|\]/g,tmplt:":r][t:"},{rex:/\|\xB6[ ]?\|/g,tmplt:":r]\xB6[r:"},{rex:/\|/g,tmplt:":c][c:"},{rex:/^(.*)$/g,tmplt:"[p:$1:p]"},{rex:/(([\xB6])([ \t\f\v\xB6]*?)){2,}/g,tmplt:":p]$1[p:"},{rex:/\[([01AIacdgilprtu]+)[:](.*?)[:]([01AIacdgilprtu]+)\]/g,tmplt:function($0,$1,$2,$3){return Wiky.sectionRule($1==undefined?"":$1,"",Wiky.apply($2,Wiky.rules.wikiinlines),!$3?"":$3)}},{rex:/\[[01AIacdgilprtu]+[:]|[:][01AIacdgilprtu]+\]/g,tmplt:""},{rex:/<td>(?:([0-9]*)[>])?([ ]?)(.*?)([ ]?)<\/td>/g,tmplt:function($0,$1,$2,$3,$4){return"<td"+($1?' colspan="'+$1+'"':"")+($2==" "?(' style="text-align:'+($2==$4?"center":"right")+';"'):($4==" "?' style="text-align:left;"':""))+">"+$2+$3+$4+"</td>"}},{rex:/<(p|table)>(?:\xB6)?(?:\{(.*?)\})/g,tmplt:function($0,$1,$2){return"<"+$1+Wiky.style($2)+">"}},{rex:/<p>([ \t\f\v\xB6]*?)<\/p>/g,tmplt:"$1"},"Wiky.rules.shortcuts"],nonwikiinlines:[{rex:/%(?:\{([^}]*)\})?(?:\(([^)]*)\))?(.*?)%/g,tmplt:function($0,$1,$2,$3){return Wiky.store("<code"+($2?(' lang="x-'+Wiky.attr($2)+'"'):"")+Wiky.style($1)+">"+Wiky.apply($3,$2?Wiky.rules.lang[Wiky.attr($2)]:Wiky.rules.code)+"</code>")}},{rex:/%(.*?)%/g,tmplt:function($0,$1){return Wiky.store("<code>"+Wiky.apply($2,Wiky.rules.code)+"</code>")}}],wikiinlines:[{rex:/\*([^*]+)\*/g,tmplt:"<strong>$1</strong>"},{rex:/_([^_]+)_/g,tmplt:"<em>$1</em>"},{rex:/\^([^^]+)\^/g,tmplt:"<sup>$1</sup>"},{rex:/~([^~]+)~/g,tmplt:"<sub>$1</sub>"},{rex:/\(-(.+?)-\)/g,tmplt:"<del>$1</del>"},{rex:/\?([^ \t\f\v\xB6]+)\((.+)\)\?/g,tmplt:'<abbr title="$2">$1</abbr>'},{rex:/\[(?:\{([^}]*)\})?[Ii]ma?ge?\:([^ ,\]]*)(?:[, ]([^\]]*))?\]/g,tmplt:function($0,$1,$2,$3){return Wiky.store("<img"+Wiky.style($1)+' src="'+$2+'" alt="'+($3?$3:$2)+'" title="'+($3?$3:$2)+'"/>')}},{rex:/\[([^ ,]+)[, ]([^\]]*)\]/g,tmplt:function($0,$1,$2){return Wiky.store('<a href="'+$1+'">'+$2+"</a>")}},{rex:/(((http(s?))\:\/\/)?[A-Za-z0-9\._\/~\-:]+\.(?:png|jpg|jpeg|gif|bmp))/g,tmplt:function($0,$1,$2){return Wiky.store('<img src="'+$1+'" alt="'+$1+'"/>')}},{rex:/((mailto\:|javascript\:|(news|file|(ht|f)tp(s?))\:\/\/)[A-Za-z0-9\.:_\/~%\-+&#?!=()@\x80-\xB5\xB7\xFF]+)/g,tmplt:'<a href="$1">$1</a>'}],escapes:[{rex:/\\([|*_~\^])/g,tmplt:function($0,$1){return Wiky.store($1)}},{rex:/\\&/g,tmplt:"&amp;"},{rex:/\\>/g,tmplt:"&gt;"},{rex:/\\</g,tmplt:"&lt;"}],shortcuts:[{rex:/---/g,tmplt:"&#8212;"},{rex:/--/g,tmplt:"&#8211;"},{rex:/[\.]{3}/g,tmplt:"&#8230;"},{rex:/<->/g,tmplt:"&#8596;"},{rex:/<-/g,tmplt:"&#8592;"},{rex:/->/g,tmplt:"&#8594;"},],code:[{rex:/&/g,tmplt:"&amp;"},{rex:/</g,tmplt:"&lt;"},{rex:/>/g,tmplt:"&gt;"}],lang:{}},inverse:{all:["Wiky.inverse.pre","Wiky.inverse.nonwikiblocks","Wiky.inverse.wikiblocks","Wiky.inverse.post"],pre:[{rex:/(\r?\n)/g,tmplt:"\xB6"}],post:[{rex:/@([0-9]+)@/g,tmplt:function($0,$1){return Wiky.restore($1)}},{rex:/\xB6/g,tmplt:"\n"}],nonwikiblocks:[{rex:/<pre([^>]*)>(.*?)<\/pre>/mgi,tmplt:function($0,$1,$2){return Wiky.store("["+Wiky.invStyle($1)+Wiky.invAttr($1,["lang"]).replace(/x\-/,"")+"%"+Wiky.apply($2,Wiky.hasAttr($1,"lang")?Wiky.inverse.lang[Wiky.attrVal($1,"lang").substr(2)]:Wiky.inverse.code)+"%]")}}],wikiblocks:["Wiky.inverse.nonwikiinlines","Wiky.inverse.escapes","Wiky.inverse.wikiinlines",{rex:/<h1>(.*?)<\/h1>/mgi,tmplt:"=$1="},{rex:/<h2>(.*?)<\/h2>/mgi,tmplt:"==$1=="},{rex:/<h3>(.*?)<\/h3>/mgi,tmplt:"===$1==="},{rex:/<h4>(.*?)<\/h4>/mgi,tmplt:"====$1===="},{rex:/<h5>(.*?)<\/h5>/mgi,tmplt:"=====$1====="},{rex:/<h6>(.*?)<\/h6>/mgi,tmplt:"======$1======"},{rex:/<(p|table)[^>]+(style=\"[^\"]*\")[^>]*>/mgi,tmplt:function($0,$1,$2){return"<"+$1+">"+Wiky.invStyle($2)}},{rex:/\xB6{2}<li/mgi,tmplt:"\xB6<li"},{rex:/<li class=\"?([^ >\"]*)\"?[^>]*?>([^<]*)/mgi,tmplt:function($0,$1,$2){return $1.replace(/u/g,"*").replace(/([01aAiIg])$/,"$1.")+" "+$2}},{rex:/(^|\xB6)<(u|o)l[^>]*?>\xB6/mgi,tmplt:"$1"},{rex:/(<\/(?:dl|ol|ul|p)>[ \xB6]*<(?:p)>)/gi,tmplt:"\xB6\xB6"},{rex:/<dt>(.*?)<\/dt>[ \f\n\r\t\v]*<dd>/mgi,tmplt:"; $1: "},{rex:/<blockquote([^>]*)>/mgi,tmplt:function($0,$1){return Wiky.store("["+Wiky.invStyle($1)+Wiky.invAttr($1,["cite","title"])+'"')}},{rex:/<\/blockquote>/mgi,tmplt:'"]'},{rex:/<td class=\"?lft\"?>\xB6*[ ]?|<\/tr>/mgi,tmplt:"|"},{rex:/\xB6<tr(?:[^>]*?)>/mgi,tmplt:"\xB6"},{rex:/<td colspan=\"([0-9]+)\"(?:[^>]*?)>/mgi,tmplt:"|$1>"},{rex:/<td(?:[^>]*?)>/mgi,tmplt:"|"},{rex:/<table>/mgi,tmplt:"["},{rex:/<\/table>/mgi,tmplt:"]"},{rex:/<tr(?:[^>]*?)>\xB6*|<\/td>\xB6*|<tbody>\xB6*|<\/tbody>/mgi,tmplt:""},{rex:/<hr\/?>/mgi,tmplt:"----"},{rex:/<br\/?>/mgi,tmplt:"\\\\"},{rex:/(<p>|<(d|o|u)l[^>]*>|<\/(dl|ol|ul|p)>|<\/(li|dd)>)/mgi,tmplt:""},"Wiky.inverse.shortcuts"],nonwikiinlines:[{rex:/<code>(.*?)<\/code>/g,tmplt:function($0,$1){return Wiky.store("%"+Wiky.apply($1,Wiky.inverse.code)+"%")}}],wikiinlines:[{rex:/<strong[^>]*?>(.*?)<\/strong>/mgi,tmplt:"*$1*"},{rex:/<b[^>]*?>(.*?)<\/b>/mgi,tmplt:"*$1*"},{rex:/<em[^>]*?>(.*?)<\/em>/mgi,tmplt:"_$1_"},{rex:/<i[^>]*?>(.*?)<\/i>/mgi,tmplt:"_$1_"},{rex:/<sup[^>]*?>(.*?)<\/sup>/mgi,tmplt:"^$1^"},{rex:/<sub[^>]*?>(.*?)<\/sub>/mgi,tmplt:"~$1~"},{rex:/<del[^>]*?>(.*?)<\/del>/mgi,tmplt:"(-$1-)"},{rex:/<abbr title=\"([^\"]*)\">(.*?)<\/abbr>/mgi,tmplt:"?$2($1)?"},{rex:/<a href=\"([^\"]*)\"[^>]*?>(.*?)<\/a>/mgi,tmplt:function($0,$1,$2){return $1==$2?$1:"["+$1+","+$2+"]"}},{rex:/<img([^>]*)\/>/mgi,tmplt:function($0,$1){var a=Wiky.attrVal($1,"alt"),h=Wiky.attrVal($1,"src"),t=Wiky.attrVal($1,"title"),s=Wiky.attrVal($1,"style");return s||(t&&h!=t)?("["+Wiky.invStyle($1)+"img:"+h+(t&&(","+t))+"]"):h}},],escapes:[{rex:/([|*_~%\^])/g,tmplt:"\\$1"},{rex:/&amp;/g,tmplt:"\\&"},{rex:/&gt;/g,tmplt:"\\>"},{rex:/&lt;/g,tmplt:"\\<"}],shortcuts:[{rex:/&#8211;|\u2013/g,tmplt:"--"},{rex:/&#8212;|\u2014/g,tmplt:"---"},{rex:/&#8230;|\u2026/g,tmplt:"..."},{rex:/&#8596;|\u2194/g,tmplt:"<->"},{rex:/&#8592;|\u2190/g,tmplt:"<-"},{rex:/&#8594;|\u2192/g,tmplt:"->"}],code:[{rex:/&amp;/g,tmplt:"&"},{rex:/&lt;/g,tmplt:"<"},{rex:/&gt;/g,tmplt:">"}],lang:{}},toHtml:function(str){Wiky.blocks=[];return Wiky.apply(str,Wiky.rules.all)},toWiki:function(str){Wiky.blocks=[];return Wiky.apply(str,Wiky.inverse.all)},apply:function(str,rules){if(str&&rules){for(var i in rules){if(typeof(rules[i])=="string"){str=Wiky.apply(str,eval(rules[i]))}else{str=str.replace(rules[i].rex,rules[i].tmplt)}}}return str},store:function(str,unresolved){return unresolved?"@"+(Wiky.blocks.push(str)-1)+"@":"@"+(Wiky.blocks.push(str.replace(/@([0-9]+)@/g,function($0,$1){return Wiky.restore($1)}))-1)+"@"},restore:function(idx){return Wiky.blocks[idx]},attr:function(str,name,idx){var a=str&&str.split(",")[idx||0];return a?(name?(" "+name+'="'+a+'"'):a):""},hasAttr:function(str,name){return new RegExp(name+"=").test(str)},attrVal:function(str,name){return str.replace(new RegExp("^.*?"+name+'="(.*?)".*?$'),"$1")},invAttr:function(str,names){var a=[],x;for(var i in names){if(str.indexOf(names[i]+"=")>=0){a.push(str.replace(new RegExp("^.*?"+names[i]+'="(.*?)".*?$'),"$1"))}}return a.length?("("+a.join(",")+")"):""},style:function(str){var s=str&&str.split(/,|;/),p,style="";for(var i in s){p=s[i].split(":");if(p[0]==">"){style+="margin-left:4em;"}else{if(p[0]=="<"){style+="margin-right:4em;"}else{if(p[0]==">>"){style+="float:right;"}else{if(p[0]=="<<"){style+="float:left;"}else{if(p[0]=="="){style+="display:block;margin:0 auto;"}else{if(p[0]=="_"){style+="text-decoration:underline;"}else{if(p[0]=="b"){style+="border:solid 1px;"}else{if(p[0]=="c"){style+="color:"+p[1]+";"}else{if(p[0]=="C"){style+="background:"+p[1]+";"}else{if(p[0]=="w"){style+="width:"+p[1]+";"}else{style+=p[0]+":"+p[1]+";"}}}}}}}}}}}return style?' style="'+style+'"':""},invStyle:function(str){var s=/style=/.test(str)?str.replace(/^.*?style=\"(.*?)\".*?$/,"$1"):"",p=s&&s.split(";"),pi,prop=[];for(var i in p){pi=p[i].split(":");if(pi[0]=="margin-left"&&pi[1]=="4em"){prop.push(">")}else{if(pi[0]=="margin-right"&&pi[1]=="4em"){prop.push("<")}else{if(pi[0]=="float"&&pi[1]=="right"){prop.push(">>")}else{if(pi[0]=="float"&&pi[1]=="left"){prop.push("<<")}else{if(pi[0]=="margin"&&pi[1]=="0 auto"){prop.push("=")}else{if(pi[0]=="display"&&pi[1]=="block"){}else{if(pi[0]=="text-decoration"&&pi[1]=="underline"){prop.push("_")}else{if(pi[0]=="border"&&pi[1]=="solid 1px"){prop.push("b")}else{if(pi[0]=="color"){prop.push("c:"+pi[1])}else{if(pi[0]=="background"){prop.push("C:"+pi[1])}else{if(pi[0]=="width"){prop.push("w:"+pi[1])}else{if(pi[0]){prop.push(pi[0]+":"+pi[1])}}}}}}}}}}}}}return prop.length?("{"+prop.join(",")+"}"):""},sectionRule:function(fromLevel,style,content,toLevel){var trf={p_p:"<p>$1</p>",p_u:"<p>$1</p><ul$3>",p_o:"<p>$1</p><ol$3>",u_p:"<li$2>$1</li></ul>",u_c:"<li$2>$1</li></ul></td>",u_r:"<li$2>$1</li></ul></td></tr>",uu_p:"<li$2>$1</li></ul></li></ul>",uo_p:"<li$2>$1</li></ol></li></ul>",uuu_p:"<li$2>$1</li></ul></li></ul></li></ul>",uou_p:"<li$2>$1</li></ul></li></ol></li></ul>",uuo_p:"<li$2>$1</li></ol></li></ul></li></ul>",uoo_p:"<li$2>$1</li></ol></li></ol></li></ul>",u_u:"<li$2>$1</li>",uu_u:"<li$2>$1</li></ul></li>",uo_u:"<li$2>$1</li></ol></li>",uuu_u:"<li$2>$1</li></ul></li></ul></li>",uou_u:"<li$2>$1</li></ul></li></ol></li>",uuo_u:"<li$2>$1</li></ol></li></ul></li>",uoo_u:"<li$2>$1</li></ol></li></ol></li>",u_uu:"<li$2>$1<ul$3>",u_o:"<li$2>$1</li></ul><ol$3>",uu_o:"<li$2>$1</li></ul></li></ul><ol$3>",uo_o:"<li$2>$1</li></ol></li></ul><ol$3>",uuu_o:"<li$2>$1</li></ul></li></ul></li></ul><ol$3>",uou_o:"<li$2>$1</li></ul></li></ol></li></ul><ol$3>",uuo_o:"<li$2>$1</li></ol></li></ul></li></ul><ol$3>",uoo_o:"<li$2>$1</li></ol></li></ol></li></ul><ol$3>",u_uo:"<li$2>$1<ol$3>",o_p:"<li$2>$1</li></ol>",oo_p:"<li$2>$1</li></ol></li></ol>",ou_p:"<li$2>$1</li></ul></li></ol>",ooo_p:"<li$2>$1</li></ol></li></ol>",ouo_p:"<li$2>$1</li></ol></li></ul></li></ol>",oou_p:"<li$2>$1</li></ul></li></ol></li></ol>",ouu_p:"<li$2>$1</li></ul></li></ul></li></ol>",o_u:"<li$2>$1</li></ol><ul$3>",oo_u:"<li$2>$1</li></ol></li></ol><ul$3>",ou_u:"<li$2>$1</li></ul></li></ol><ul$3>",ooo_u:"<li$2>$1</li></ol></li></ol></li></ol><ul$3>",ouo_u:"<li$2>$1</li></ol></li></ul></li></ol><ul$3>",oou_u:"<li$2>$1</li></ul></li></ol></li></ol><ul$3>",ouu_u:"<li$2>$1</li></ul></li></ul></li></ol><ul$3>",o_ou:"<li$2>$1<ul$3>",o_o:"<li$2>$1</li>",oo_o:"<li$2>$1</li></ol></li>",ou_o:"<li$2>$1</li></ul></li>",ooo_o:"<li$2>$1</li></ol></li></ol></li>",ouo_o:"<li$2>$1</li></ol></li></ul></li>",oou_o:"<li$2>$1</li></ul></li></ol></li>",ouu_o:"<li$2>$1</li></ul></li></ul></li>",o_oo:"<li$2>$1<ol$3>",l_d:"<dt>$1</dt>",d_l:"<dd>$1</dd>",d_u:"<dd>$1</dd></dl><ul>",d_o:"<dd>$1</dd></dl><ol>",p_l:"<p>$1</p><dl>",u_l:"<li$2>$1</li></ul><dl>",o_l:"<li$2>$1</li></ol><dl>",uu_l:"<li$2>$1</li></ul></li></ul><dl>",uo_l:"<li$2>$1</li></ol></li></ul><dl>",ou_l:"<li$2>$1</li></ul></li></ol><dl>",oo_l:"<li$2>$1</li></ol></li></ol><dl>",d_p:"<dd>$1</dd></dl>",p_t:"<p>$1</p><table>",p_r:"<p>$1</p></td></tr>",p_c:"<p>$1</p></td>",t_p:"</table><p>$1</p>",r_r:"<tr><td>$1</td></tr>",r_p:"<tr><td><p>$1</p>",r_c:"<tr><td>$1</td>",r_u:"<tr><td>$1<ul>",c_p:"<td><p>$1</p>",c_r:"<td>$1</td></tr>",c_c:"<td>$1</td>",u_t:"<li$2>$1</li></ul><table>",o_t:"<li$2>$1</li></ol><table>",d_t:"<dd>$1</dd></dl><table>",t_u:"</table><p>$1</p><ul>",t_o:"</table><p>$1</p><ol>",t_l:"</table><p>$1</p><dl>"};var type={"0":"decimal-leading-zero","1":"decimal",a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman",g:"lower-greek"};var from="",to="",maxlen=Math.max(fromLevel.length,toLevel.length),sync=true,sectiontype=type[toLevel.charAt(toLevel.length-1)],transition;for(var i=0;i<maxlen;i++){if(fromLevel.charAt(i+1)!=toLevel.charAt(i+1)||!sync||i==maxlen-1){from+=fromLevel.charAt(i)==undefined?" ":fromLevel.charAt(i);to+=toLevel.charAt(i)==undefined?" ":toLevel.charAt(i);sync=false}}transition=(from+"_"+to).replace(/([01AIagi])/g,"o");return !trf[transition]?("?("+transition+")"):trf[transition].replace(/\$2/,' class="'+fromLevel+'"').replace(/\$3/,!sectiontype?"":(' style="list-style-type:'+sectiontype+';"')).replace(/\$1/,content).replace(/<p><\/p>/,"")}};