// подсветка кода
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[(function(e){return d[e]})];e=(function(){return'\\w+'});c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 2q={};(l(){5 33="4R 5b V 15 3X 5c 3E 5d "+"5e 1n 31 2S 59 5f 5h 3h "+"5i 5j F 5k 5l 5a 1w 5g q 57 "+"50 7 56 4V 4W 4X 4Y 4T 1T 4Z 51 "+"52 53 54 55 5m 58 5n 5E "+"5q o 5H 5I 5J 5K 5F "+"5L 5N 2u 5O 3l 4S 3f 1f 1R 5Q "+"5R 5G 5M 5D 5w 5C, 5r 5s "+"5t 5u 5p 2y 3e";5 30="5v 5x 5y 5z 5A 5B 4U 5o "+"4u 29 4h 4j 4e 4f 4k 2H 4d 4i "+"4c 46 47 h 49 B 4n 4G 4I 4J 4m 4B "+"4r 4s 4t 4w 4y 4A 4l 4z 4x 5";5 2P="4o 4q 4v 4C 4L 4F "+"3g 4Q 4P 4O 4N 4M 4K";5 2N="4E 4H l 4p 4D 2T";5 2Q="4b 45 4g 48 4a 5S 5P 63";5 3k="5V 71 72 7b 7a 6K 6R 6N 6Y "+"6O 6L 6P 6S 6T 6M 6F 6C 6D";5 38="6A E 6E 6G 6H 6I 6U 6Q 6V "+"6W 78 79 7c";5 3n="77 76";5 2m=[33,30,2P,2N,2Q,3k,38,3n];q(5 k=0;k<2m.f;k++){5 1U=2m[k].75(\' \');q(5 i=0;i<1U.f;i++){7(1U[i]){2q[1U[i]]=1f}}}}).70(3l);5 1u=\'1q\';5 3L=\'6X\';5 1a=\'73\';5 3K=\'5T\';5 1L=\'74\';5 1F=\'6B\';5 Q=\'6J\';5 1h=\'6z\';5 3z=\'6e\';5 18=\'6x\';5 2d=\'66\';5 1d=\'67\';5 3U=8;l 3c(19){o(19>=\'a\'&&19<=\'z\')||(19>=\'A\'&&19<=\'Z\')}l 1b(1S,2r,39,3b){1S.64(39,3b||0);1R{2r.2i.68(2r,1S)}29{1S.2i(0,2)}}5 3D=(l(){5 2n=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","V","15","1n","2S","3h","F","29","3g","o","3f","1R","3e"];5 1m=\'(?:\'+\'(?:(?:^|[^0-9\\.])\\\\.{1,3})|\'+\'(?:(?:^|[^\\\\+])\\\\+)|\'+\'(?:(?:^|[^\\\\-])-)\';q(5 i=0;i<2n.f;++i){5 22=2n[i];7(3c(22.X(0))){1m+=\'|\\\\b\'+22}F{1m+=\'|\'+22.I(/([^=<>:&])/g,\'\\\\$1\')}}1m+=\'|^)\\\\s*$\';o 1T 6b(1m)})();5 28=/&/g;5 2c=/</g;5 2e=/>/g;5 3a=/\\"/g;l 2M(1q){o 1q.I(28,\'&27;\').I(2c,\'&2b;\').I(2e,\'&2a;\').I(3a,\'&3r;\')}l 1G(1q){o 1q.I(28,\'&27;\').I(2c,\'&2b;\').I(2e,\'&2a;\')}5 3v=/&2b;/g;5 3u=/&2a;/g;5 3t=/&6y;/g;5 3s=/&3r;/g;5 3q=/&27;/g;l 3w(G){5 K=G.1B(\'&\');7(K<0){o G}q(--K;(K=G.1B(\'&#\',K+1))>=0;){5 E=G.1B(\';\',K);7(E>=0){5 1j=G.D(K+3,E);5 24=10;7(1j&&1j.X(0)==\'x\'){1j=1j.D(1);24=16}5 26=5Z(1j,24);7(!62(26)){G=(G.D(0,K)+5W.5X(26)+G.D(E+1))}}}o G.I(3v,\'<\').I(3u,\'>\').I(3t,"\'").I(3s,\'"\').I(3q,\'&\')}l 2C(J){o\'5U\'==J.1A}5 1X=h;l 3o(J){7(h===1X){5 2g=1g.3j(\'3d\');2g.5Y(1g.60(\'<!61 25 6c "25 69">\\n<25 />\'));1X=!/</.N(2g.1P)}7(1X){5 13=J.1P;7(2C(J)){13=1G(13)}o 13}5 B=[];q(5 T=J.2f;T;T=T.36){1W(T,B)}o B.1V(\'\')}l 1W(J,B){2u(J.6d){15 1:5 1k=J.1A.2O();B.y(\'\\6u\',1k);q(5 i=0;i<J.20.f;++i){5 2w=J.20[i];7(!2w.3i){1n}B.y(\' \');1W(2w,B)}B.y(\'>\');q(5 T=J.2f;T;T=T.36){1W(T,B)}7(J.2f||!/^(?:2L|6g|6r)$/.N(1k)){B.y(\'<\\/\',1k,\'>\')}V;15 2:B.y(J.1k.2O(),\'="\',2M(J.37),\'"\');V;15 3:15 4:B.y(1G(J.6s));V}}l 3S(2t){5 2s=\'                \';5 1C=0;o l(1l){5 B=h;5 K=0;q(5 i=0,n=1l.f;i<n;++i){5 19=1l.X(i);2u(19){15\'\\t\':7(!B){B=[]}B.y(1l.D(K,i));5 1v=2t-(1C%2t);1C+=1v;q(;1v>=0;1v-=2s.f){B.y(2s.D(0,1v))}K=i+1;V;15\'\\n\':1C=0;V;31:++1C}}7(!B){o 1l}B.y(1l.D(K));o B.1V(\'\')}}5 3x=/(?:[^<]+|<!--[\\s\\S]*?-->|<!\\[2Z\\[([\\s\\S]*?)\\]\\]>|<\\/?[a-6v-Z][^>]*>|<)/g;5 2V=/^<!--/;5 2Y=/^<\\[2Z\\[/;5 2X=/^<2L\\b/i;l 3P(s){5 1Q=s.v(3x);5 1p=[];5 1o=0;5 W=[];7(1Q){q(5 i=0,n=1Q.f;i<n;++i){5 v=1Q[i];7(v.f>1&&v.X(0)===\'<\'){7(2V.N(v)){1n}7(2Y.N(v)){1p.y(v.D(9,v.f-3));1o+=v.f-12}F 7(2X.N(v)){1p.y(\'\\n\');1o+=1}F{W.y(1o,v)}}F{5 2o=3w(v);1p.y(2o);1o+=2o.f}}}o{u:1p.1V(\'\'),3H:W}}l 1y(3I,21){5 2k={};(l(){5 2h=3I.6o(21);q(5 i=2h.f;--i>=0;){5 O=2h[i];5 23=O[3];7(23){q(5 c=23.f;--c>=0;){2k[23.X(c)]=O}}}})();5 42=21.f;o l(M,1s){1s=1s||0;5 6=[1s,Q];5 2l=\'\';5 K=0;5 Y=M;2y(Y.f){5 H;5 L=h;5 O=2k[Y.X(0)];7(O){5 v=Y.v(O[1]);L=v[0];H=O[0]}F{q(5 i=0;i<42;++i){O=21[i];5 2j=O[2];7(2j&&!2j.N(2l)){1n}5 v=Y.v(O[1]);7(v){L=v[0];H=O[0];V}}7(!L){H=Q;L=Y.D(0,1)}}6.y(1s+K,H);K+=L.f;Y=Y.D(L.f);7(H!==1a&&/\\S/.N(L)){2l=L}}o 6}}5 3B=1y([[1u,/^\\\'(?:[^\\\\\\\']|\\\\[\\s\\S])*(?:\\\'|$)/,h,"\'"],[1u,/^\\"(?:[^\\\\\\"]|\\\\[\\s\\S])*(?:\\"|$)/,h,\'"\'],[1u,/^\\`(?:[^\\\\\\`]|\\\\[\\s\\S])*(?:\\`|$)/,h,\'`\']],[[Q,/^(?:[^\\\'\\"\\`\\/\\#]+)/,h,\' \\r\\n\'],[1a,/^#[^\\r\\n]*/,h,\'#\'],[1a,/^\\/\\/[^\\r\\n]*/,h],[1u,/^\\/(?:[^\\\\\\*\\/]|\\\\[\\s\\S])+(?:\\/|$)/,3D],[1a,/^\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,h]]);l 3Y(M){o 3B(M)}5 3G=1y([],[[Q,/^\\s+/,h,\' \\r\\n\'],[Q,/^[a-3Q$@][a-3Q$@0-9]*/i,h],[1L,/^6k[a-6n-9]+[a-z]/i,h],[1L,/^(?:\\d(?:6h\\d+)*\\d*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?[a-z]*/i,h,\'6i\'],[1F,/^[^\\s\\w\\.$@]+/,h]]);l 3V(u,6){q(5 i=0;i<6.f;i+=2){5 H=6[i+1];7(H===Q){5 C=6[i];5 E=i+2<6.f?6[i+2]:u.f;5 1D=u.D(C,E);5 R=3G(1D,C);q(5 j=0,m=R.f;j<m;j+=2){5 3M=R[j+1];7(3M===Q){5 3J=R[j];5 3O=j+2<m?R[j+2]:1D.f;5 L=u.D(3J,3O);7(L==\'.\'){R[j+1]=1F}F 7(L 2H 2q){R[j+1]=3L}F 7(/^@?[A-Z][A-Z$]*[a-z][A-6f-z$]*$/.N(L)){R[j+1]=L.X(0)==\'@\'?1L:3K}}}1b(R,6,i,2);i+=R.f-2}}o 6}5 3C=1y([],[[Q,/^[^<]+/,h],[3z,/^<!\\w[^>]*(?:>|$)/,h],[1a,/^<!--[\\s\\S]*?(?:-->|$)/,h],[18,/^<\\?[\\s\\S]*?(?:\\?>|$)/,h],[18,/^<%[\\s\\S]*?(?:%>|$)/,h],[18,/^<(6l|H|2A)\\b[^>]*>[\\s\\S]*?<\\/\\1\\b[^>]*>/i,h],[1h,/^<\\/?\\w[^<>]*>/,h]]);5 3A=/^(<[^>]*>)([\\s\\S]*)(<\\/[^>]*>)$/;l 3R(u){5 6=3C(u);q(5 i=0;i<6.f;i+=2){7(6[i+1]===18){5 C=6[i];5 E=i+2<6.f?6[i+2]:u.f;5 3F=u.D(C,E);5 v=(3F.v(3A));7(v){6.2i(i,2,C,1h,C+v[1].f,18,C+v[1].f+(v[2]||\'\').f,1h)}}}o 6}5 3T=1y([[1d,/^\\\'[^\\\']*(?:\\\'|$)/,h,"\'"],[1d,/^\\"[^\\"]*(?:\\"|$)/,h,\'"\'],[1F,/^[<>\\/=]+/,h,\'<>/=\']],[[1h,/^[\\w-]+/,/^</],[1d,/^[\\w-]+/,/^=/],[2d,/^[\\w-]+/,h],[Q,/^\\s+/,h,\' \\r\\n\']]);l 3Z(u,6){q(5 i=0;i<6.f;i+=2){5 H=6[i+1];7(H===1h){5 C=6[i];5 E=i+2<6.f?6[i+2]:u.f;5 1D=u.D(C,E);5 14=3T(1D,C);1b(14,6,i,2);i+=14.f-2}}o 6}l 3W(u,6){q(5 i=0;i<6.f;i+=2){5 H=6[i+1];7(H==18){5 C=6[i];5 E=i+2<6.f?6[i+2]:u.f;5 14=1Z(u.D(C,E));q(5 j=0,m=14.f;j<m;j+=2){14[j]+=C}1b(14,6,i,2);i+=14.f-2}}o 6}l 44(u,6){5 1E=1w;q(5 i=0;i<6.f;i+=2){5 H=6[i+1];7(H===2d){5 C=6[i];5 E=i+2<6.f?6[i+2]:u.f;1E=/^6m|^H$/i.N(u.D(C,E))}F 7(H==1d){7(1E){5 C=6[i];5 E=i+2<6.f?6[i+2]:u.f;5 11=u.D(C,E);5 2K=11.f;5 2J=(2K>=2&&/^[\\"\\\']/.N(11)&&11.X(0)===11.X(2K-1));5 1I;5 1K;5 1J;7(2J){1K=C+1;1J=E-1;1I=11}F{1K=C+1;1J=E-1;1I=11.D(1,11.f-1)}5 1e=1Z(1I);q(5 j=0,m=1e.f;j<m;j+=2){1e[j]+=1K}7(2J){1e.y(1J,1d);1b(1e,6,i+2,0)}F{1b(1e,6,i,2)}}1E=1w}}o 6}l 1Z(M){5 6=3Y(M);6=3V(M,6);o 6}l 43(M){5 6=3R(M);6=3Z(M,6);6=3W(M,6);6=44(M,6);o 6}l 40(2F,W,6){5 G=[];5 1N=0;5 U=h;5 1r=h;5 1c=0;5 17=0;5 3y=3S(3U);l 1H(1M){7(1M>1N){7(U&&U!==1r){G.y(\'</1O>\');U=h}7(!U&&1r){U=1r;G.y(\'<1O 3E="\',U,\'">\')}5 3N=1G(3y(2F.D(1N,1M))).I(/(\\r\\n?|\\n| ) /g,\'$1&6j;\').I(/\\r\\n?|\\n/g,\'<2L>\');G.y(3N);1N=1M}}2y(1f){5 1t;7(1c<W.f){7(17<6.f){1t=W[1c]<=6[17]}F{1t=1f}}F{1t=1w}7(1t){1H(W[1c]);7(U){G.y(\'</1O>\');U=h}G.y(W[1c+1]);1c+=2}F 7(17<6.f){1H(6[17]);1r=6[17+1];17+=2}F{V}}1H(2F.f);7(U){G.y(\'</1O>\')}o G.1V(\'\')}l 3m(2D){1R{5 2z=3P(2D);5 u=2z.u;5 W=2z.3H;5 41=/^\\s*</.N(u)&&/>\\s*$/.N(u);5 6=41?43(u):1Z(u);o 40(u,W,6)}3X(e){7(\'2x\'2H 6q){2x.6w(e);2x.6t()}o 2D}}5 32=1f;l 6p(2v){5 1z=[1g.2B(\'1i\'),1g.2B(\'34\'),1g.2B(\'2A\')];5 1x=[];q(5 i=0;i<1z.f;++i){q(5 j=0;j<1z[i].f;++j){1x.y(1z[i][j])}}1z=h;5 k=0;l 2p(){5 2R=(32?1T 2W().2U()+3p:2T);q(;k<1x.f&&1T 2W().2U()<2R;k++){5 P=1x[k];7(P.1Y&&P.1Y.1B(\'35\')>=0){5 2G=1w;q(5 p=P.2I;p!=h;p=p.2I){7((p.1A==\'1i\'||p.1A==\'34\'||p.1A==\'2A\')&&p.1Y&&p.1Y.1B(\'35\')>=0){2G=1f;V}}7(!2G){5 13=3o(P);13=13.I(/(?:\\r\\n?|\\n)$/,\'\');5 2E=3m(13);7(!2C(P)){P.1P=2E}F{5 1i=1g.3j(\'3d\');q(5 i=0;i<P.20.f;++i){5 a=P.20[i];7(a.3i){1i.65(a.1k,a.37)}}1i.1P=2E;P.2I.6a(1i,P)}}}}7(k<1x.f){6Z(2p,3p)}F 7(2v){2v()}}2p()}',62,447,'|||||var|decorations|if||||||||length||null||||function|||return||for||||source|match|||push|||out|start|substring|end|else|html|style|replace|node|pos|token|sourceCode|test|patternParts|cs|PR_PLAIN|subDecs||child|openDecoration|break|extractedTags|charAt|tail|||attribValue||content|subDecorations|case||decPos|PR_SOURCE|ch|PR_COMMENT|PR_spliceArrayInto|tagPos|PR_ATTRIB_VALUE|attribSourceDecorations|true|document|PR_TAG|pre|num|name|plainText|pattern|continue|sourceBufLen|sourceBuf|str|currentDecoration|opt_basePos|outputTag|PR_STRING|nSpaces|false|elements|PR_createSimpleLexer|codeSegments|tagName|indexOf|charInLine|chunk|nextValueIsSource|PR_PUNCTUATION|PR_textToHtml|emitTextUpTo|attribSource|attribSourceEnd|attribSourceStart|PR_LITERAL|sourceIdx|outputIdx|span|innerHTML|matches|try|inserted|new|kw|join|PR_normalizedHtml|PR_innerHtmlWorks|className|PR_decorateSource|attributes|fallthroughStylePatterns|preceder|shortcutChars|radix|foo|codePoint|amp|pr_amp|finally|gt|lt|pr_lt|PR_ATTRIB_NAME|pr_gt|firstChild|testNode|allPatterns|splice|contextPattern|shortcuts|lastToken|KEYWORDS|preceders|literalText|doWork|PR_keywords|container|SPACES|tabWidth|switch|opt_whenDone|attr|console|while|sourceAndExtractedTags|xmp|getElementsByTagName|PR_isRawContent|sourceCodeHtml|newContent|sourceText|nested|in|parentNode|quoted|attribLen|br|PR_attribToHtml|JSCRIPT_KEYWORDS|toLowerCase|JAVA_KEYWORDS|PERL_KEYWORDS|endTime|delete|Infinity|getTime|pr_commentPrefix|Date|pr_brPrefix|pr_cdataPrefix|CDATA|CSHARP_KEYWORDS|default|PR_SHOULD_USE_CONTINUATION|CPP_KEYWORDS|code|prettyprint|nextSibling|value|RUBY_KEYWORDS|containerPosition|pr_quot|countReplaced|PR_isWordChar|PRE|typeof|throw|instanceof|do|specified|createElement|PYTHON_KEYWORDS|this|prettyPrintOne|SH_KEYWORDS|PR_getInnerHtml|250|pr_ampEnt|quot|pr_quotEnt|pr_aposEnt|pr_gtEnt|pr_ltEnt|PR_htmlToText|pr_chunkPattern|tabExpander|PR_DECLARATION|PR_SOURCE_CHUNK_PARTS|PR_C_STYLE_STRING_AND_COMMENT_LEXER|PR_MARKUP_LEXER|REGEXP_PRECEDER_PATTERN|class|sourceChunk|PR_C_STYLE_LITERAL_IDENTIFIER_PUNC_RECOGNIZER|tags|shortcutStylePatterns|subStart|PR_TYPE|PR_KEYWORD|subStyle|htmlChunk|subEnd|PR_extractTags|z_|PR_tokenizeMarkup|PR_tabExpander|PR_TAG_LEXER|PR_TAB_WIDTH|PR_splitNonStringNonCommentTokens|PR_splitSourceNodes|catch|PR_splitStringAndCommentTokens|PR_splitTagAttributes|PR_recombineTagsAndDecorations|isMarkup|nPatterns|PR_decorateMarkup|PR_splitSourceAttributes|sub|is|lock|until|object|use|require|into|interface|from|group|unless|fixed|internal|foreach|implicit|unchecked|ref|override|package|with|synchronized|sealed|stackalloc|string|event|boolean|select|ushort|uint|unsafe|ulong|sbyte|implements|NaN|debugger|throws|orderby|export|params|readonly|super|import|native|strictfp|final|extends|transient|abstract|thread|namespace|delegate|int|long|mutable|naked|noinline|goto|noreturn|nothrow|novtable|operator|private|inline|friend|protected|deprecated|extern|bool|char|const|const_cast|dllexport|float|dllimport|double|dynamic_cast|enum|explicit|property|public|descending|volatile|reinterpret_cast|directive|uuid|virtual|void|as|using|base|by|byte|checked|decimal|declaration|unsigned|register|static|typename|selectany|short|signed|sizeof|static_cast|union|struct|template|BEGIN|typedef|typeid|elsif|typ|XMP|and|String|fromCharCode|appendChild|parseInt|createTextNode|DOCTYPE|isNaN|END|unshift|setAttribute|atn|atv|apply|bar|replaceChild|RegExp|PUBLIC|nodeType|dec|Za|link|_|123456789|nbsp|0x|script|on|f0|concat|prettyPrint|window|img|nodeValue|trace|074|zA|log|src|apos|tag|then|pun|True|None|begin|False|rescue|ensure|module|pln|except|or|yield|global|not|pass|undef|exec|print|raise|when|next|redo|kwd|lambda|setTimeout|call|assert|def|com|lit|split|fi|done|retry|alias|elif|del|defined'.split('|'),0,{}))
// подсветка кода

// подсказки
window.onerror=null;tooltip={attr_name:"tooltip",blank_text:"(откроется в новом окне)",newline_entity:"  ",max_width:0,delay:30,t:document.createElement("DIV"),c:null,g:false,m:function(e){if(tooltip.g){oCanvas=document.getElementsByTagName((document.compatMode&&document.compatMode=="CSS1Compat")?"HTML":"BODY")[0];x=window.event?event.clientX+oCanvas.scrollLeft:e.pageX;y=window.event?event.clientY+oCanvas.scrollTop:e.pageY;tooltip.a(x,y);}},d:function(){tooltip.t.setAttribute("id","tooltip");document.body.appendChild(tooltip.t);a=document.all?document.all:document.getElementsByTagName("*");aLength=a.length;for(var i=0;i<aLength;i++){if(!a[i]||!a[i].getAttribute)continue;tooltip_title=a[i].getAttribute("title");if(tooltip_title&&typeof tooltip_title!="string")tooltip_title="";tooltip_alt=a[i].getAttribute("alt");tooltip_blank=a[i].getAttribute("target")&&a[i].getAttribute("target")=="_blank"&&tooltip.blank_text;if(tooltip_title||tooltip_blank){a[i].setAttribute(tooltip.attr_name,tooltip_blank?(tooltip_title?tooltip_title+" "+tooltip.blank_text:tooltip.blank_text):tooltip_title);if(a[i].getAttribute(tooltip.attr_name)){a[i].removeAttribute("title");if(tooltip_alt&&a[i].complete)a[i].removeAttribute("alt");tooltip.l(a[i],"mouseover",tooltip.s);tooltip.l(a[i],"mouseout",tooltip.h);}}else if(tooltip_alt&&a[i].complete){a[i].setAttribute(tooltip.attr_name,tooltip_alt);if(a[i].getAttribute(tooltip.attr_name)){a[i].removeAttribute("alt");tooltip.l(a[i],"mouseover",tooltip.s);tooltip.l(a[i],"mouseout",tooltip.h);}}
if(!a[i].getAttribute(tooltip.attr_name)&&tooltip_blank){}}
document.onmousemove=tooltip.m;window.onscroll=tooltip.h;tooltip.a(-99,-99);},s:function(e){d=window.event?window.event.srcElement:e.target;if(!d.getAttribute(tooltip.attr_name))return;s=d.getAttribute(tooltip.attr_name);if(tooltip.newline_entity){s=s.replace(/\&/g,"&amp;");s=s.replace(/\</g,"&lt;");s=s.replace(/\>/g,"&gt;");s=s.replace(eval("/"+tooltip.newline_entity+"/g"),"<br />");tooltip.t.innerHTML=s;}else{if(tooltip.t.firstChild)tooltip.t.removeChild(tooltip.t.firstChild);tooltip.t.appendChild(document.createTextNode(s));}
tooltip.c=setTimeout("tooltip.t.style.visibility = 'visible';",tooltip.delay);tooltip.g=true;},h:function(e){tooltip.t.style.visibility="hidden";if(!tooltip.newline_entity&&tooltip.t.firstChild)tooltip.t.removeChild(tooltip.t.firstChild);clearTimeout(tooltip.c);tooltip.g=false;tooltip.a(-99,-99);},l:function(o,e,a){if(o.addEventListener)o.addEventListener(e,a,false);else if(o.attachEvent)o.attachEvent("on"+e,a);else return null;},a:function(x,y){oCanvas=document.getElementsByTagName((document.compatMode&&document.compatMode=="CSS1Compat")?"HTML":"BODY")[0];w_width=oCanvas.clientWidth?oCanvas.clientWidth+oCanvas.scrollLeft:window.innerWidth+window.pageXOffset;w_height=window.innerHeight?window.innerHeight+window.pageYOffset:oCanvas.clientHeight+oCanvas.scrollTop;tooltip.t.style.width=((tooltip.max_width)&&(tooltip.t.offsetWidth>tooltip.max_width))?tooltip.max_width+"px":"auto";t_width=tooltip.t.offsetWidth;t_height=tooltip.t.offsetHeight;tooltip.t.style.left=x+8+"px";tooltip.t.style.top=y+8+"px";if(x+t_width>w_width)tooltip.t.style.left=w_width-t_width+"px";if(y+t_height>w_height)tooltip.t.style.top=w_height-t_height+"px";}}
var root=window.addEventListener||window.attachEvent?window:document.addEventListener?document:null;if(root){if(root.addEventListener)root.addEventListener("load",tooltip.d,false);else if(root.attachEvent)root.attachEvent("onload",tooltip.d);}



// CSS менюха
function cssmenuhover()
{
        if(!document.getElementById("cssmenu"))
                return;
        var lis = document.getElementById("cssmenu").getElementsByTagName("LI");
        for (var i=0;i<lis.length;i++)
        {
                lis[i].onmouseover=function(){this.className+=" iehover";}
                lis[i].onmouseout=function() {this.className=this.className.replace(new RegExp(" iehover\\b"), "");}
        }
}
if (window.attachEvent)
        window.attachEvent("onload", cssmenuhover);


// модальные окна
(function($) {
  $.facebox = function(data, klass) {
    $.facebox.loading()

    if (data.ajax) fillFaceboxFromAjax(data.ajax)
    else if (data.image) fillFaceboxFromImage(data.image)
    else if (data.div) fillFaceboxFromHref(data.div)
    else if ($.isFunction(data)) data.call($)
    else $.facebox.reveal(data, klass)
  }

  /*
   * Public, $.facebox methods
   */

  $.extend($.facebox, {
    settings: {
      opacity      : 0,
      overlay      : true,
      loadingImage : '/engine/ajax/load2.gif',
      closeImage   : '/templates/Default/images/closelabel.gif',
      imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
      faceboxHtml  : '\
    <div id="facebox" style="display:none;"> \
      <div class="popup"> \
        <table> \
          <tbody> \
            <tr> \
              <td class="tl"/><td class="b"/><td class="tr"/> \
            </tr> \
            <tr> \
              <td class="b"/> \
              <td class="body"> \
                <div class="content"> \
                </div> \
                <div class="footer"> \
                  <a href="#" class="close"> \
                    <img src="/templates/Default/images/closelabel.gif" title="Закрыть окно" class="close_image" /> \
                  </a> \
                </div> \
              </td> \
              <td class="b"/> \
            </tr> \
            <tr> \
              <td class="bl"/><td class="b"/><td class="br"/> \
            </tr> \
          </tbody> \
        </table> \
      </div> \
    </div>'
    },

    loading: function() {
      init()
      if ($('#facebox .loading').length == 1) return true
      showOverlay()

      $('#facebox .content').empty()
      $('#facebox .body').children().hide().end().
        append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')

      $('#facebox').css({
        top:	getPageScroll()[1] + (getPageHeight() / 10),
        left:	385.5
      }).show()

      $(document).bind('keydown.facebox', function(e) {
        if (e.keyCode == 27) $.facebox.close()
        return true
      })
      $(document).trigger('loading.facebox')
    },

    reveal: function(data, klass) {
      $(document).trigger('beforeReveal.facebox')
      if (klass) $('#facebox .content').addClass(klass)
      $('#facebox .content').append(data)
      $('#facebox .loading').remove()
      $('#facebox .body').children().fadeIn('normal')
      $('#facebox').css('left', $(window).width() / 2 - ($('#facebox table').width() / 2))
      $(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
    },

    close: function() {
      $(document).trigger('close.facebox')
      return false
    }
  })

  /*
   * Public, $.fn methods
   */

  $.fn.facebox = function(settings) {
    init(settings)

    function clickHandler() {
      $.facebox.loading(true)

      // support for rel="facebox.inline_popup" syntax, to add a class
      // also supports deprecated "facebox[.inline_popup]" syntax
      var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
      if (klass) klass = klass[1]

      fillFaceboxFromHref(this.href, klass)
      return false
    }

    return this.click(clickHandler)
  }

  /*
   * Private methods
   */

  // called one time to setup facebox on this page
  function init(settings) {
    if ($.facebox.settings.inited) return true
    else $.facebox.settings.inited = true

    $(document).trigger('init.facebox')
    makeCompatible()

    var imageTypes = $.facebox.settings.imageTypes.join('|')
    $.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i')

    if (settings) $.extend($.facebox.settings, settings)
    $('body').append($.facebox.settings.faceboxHtml)

    var preload = [ new Image(), new Image() ]
    preload[0].src = $.facebox.settings.closeImage
    preload[1].src = $.facebox.settings.loadingImage

    $('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
      preload.push(new Image())
      preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
    })

    $('#facebox .close').click($.facebox.close)
    $('#facebox .close_image').attr('src', $.facebox.settings.closeImage)
  }
  
  // getPageScroll() by quirksmode.com
  function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;	
    }
    return new Array(xScroll,yScroll) 
  }

  // Adapted from getPageSize() by quirksmode.com
  function getPageHeight() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    return windowHeight
  }

  // Backwards compatibility
  function makeCompatible() {
    var $s = $.facebox.settings

    $s.loadingImage = $s.loading_image || $s.loadingImage
    $s.closeImage = $s.close_image || $s.closeImage
    $s.imageTypes = $s.image_types || $s.imageTypes
    $s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
  }

  // Figures out what you want to display and displays it
  // formats are:
  //     div: #id
  //   image: blah.extension
  //    ajax: anything else
  function fillFaceboxFromHref(href, klass) {
    // div
    if (href.match(/#/)) {
      var url    = window.location.href.split('#')[0]
      var target = href.replace(url,'')
      $.facebox.reveal($(target).clone().show(), klass)

    // image
    } else if (href.match($.facebox.settings.imageTypesRegexp)) {
      fillFaceboxFromImage(href, klass)
    // ajax
    } else {
      fillFaceboxFromAjax(href, klass)
    }
  }

  function fillFaceboxFromImage(href, klass) {
    var image = new Image()
    image.onload = function() {
      $.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
    }
    image.src = href
  }

  function fillFaceboxFromAjax(href, klass) {
    $.get(href, function(data) { $.facebox.reveal(data, klass) })
  }

  function skipOverlay() {
    return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null 
  }

  function showOverlay() {
    if (skipOverlay()) return

    if ($('facebox_overlay').length == 0) 
      $("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')

    $('#facebox_overlay').hide().addClass("facebox_overlayBG")
      .css('opacity', $.facebox.settings.opacity)
      .click(function() { $(document).trigger('close.facebox') })
      .fadeIn(200)
    return false
  }

  function hideOverlay() {
    if (skipOverlay()) return

    $('#facebox_overlay').fadeOut(200, function(){
      $("#facebox_overlay").removeClass("facebox_overlayBG")
      $("#facebox_overlay").addClass("facebox_hide") 
      $("#facebox_overlay").remove()
    })
    
    return false
  }

  /*
   * Bindings
   */

  $(document).bind('close.facebox', function() {
    $(document).unbind('keydown.facebox')
    $('#facebox').fadeOut(function() {
      $('#facebox .content').removeClass().addClass('content')
      hideOverlay()
      $('#facebox .loading').remove()
    })
  })

})(jQuery);

//автотехтарея

$(document).ready (function() {
    $('textarea.f_textarea').autogrow();   // тут ставим class, в данном примере f_textarea
});

//увеличение картинок
$(document).ready(function() {
			$("a.zoom").fancybox();
			
			$("a.zoom1").fancybox({
				'overlayOpacity'	:	0.7,
				'overlayColor'		:	'#000'
			});
				
			$("a.zoom2").fancybox({
				'zoomSpeedIn'		:	500,
				'zoomSpeedOut'		:	500,
				'overlayShow'		:	false
			});
		});

