(function(){var a,b,c,d,e,f,g=Object.prototype.hasOwnProperty;c={escapeHTML:function(a){return String(a||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")},perserveWhitespace:function(a){var b,c,d,e;d=/<[a-zA-Z]+>[^<]*<\/[a-zA-Z]+>/g,c="",b=0,e=d.exec(a);if(e){while(e)c+=a.substring(b,e.index),c+=e[0].replace(/\n/g,"&#x000A;"),b=e.index+e[0].length,e=d.exec(a);c+=a.substring(b)}else c=a;return c},templateError:function(a,b,c,d){var e,f;f=d+" at line "+a+" and character "+b+":\n"+c+"\n",e=0;while(e<b-1)f+="-",e++;f+="^";return f},generateElementAttributes:function(a,b,c,d,e,f,h,i,j){var k,l,m,n,o,p,q,r,s;l={},l=this.combineAttributes(l,"id",b),c.length>0&&c[0].length>0&&(l=this.combineAttributes(l,"class",c));if(e)for(k in e){if(!g.call(e,k))continue;l=this.combineAttributes(l,k,e[k])}if(d)try{r=d.call(a,a),r&&(s=null,r.id?s=r.id:r.get&&(s=r.get("id")),l=this.combineAttributes(l,"id",s),m=null,r["class"]?m=r["class"]:r.get&&(m=r.get("class")),l=this.combineAttributes(l,"class",m))}catch(t){throw haml.HamlRuntime.templateError(h,i,j,"Error evaluating object reference - "+t)}if(f)try{p=f.call(a,a);if(p)for(k in p){if(!g.call(p,k))continue;if(k==="data"){o=p[k];for(n in o){if(!g.call(o,n))continue;l=this.combineAttributes(l,"data-"+n,o[n])}}else l=this.combineAttributes(l,k,p[k])}}catch(u){throw haml.HamlRuntime.templateError(h,i,j,"Error evaluating attribute hash - "+u)}q="";if(l)for(k in l){if(!g.call(l,k))continue;haml.hasValue(l[k])&&((k==="id"||k==="for")&&l[k]instanceof Array?q+=" "+k+'="'+_(l[k]).flatten().join("-")+'"':k==="class"&&l[k]instanceof Array?q+=" "+k+'="'+_(l[k]).flatten().join(" ")+'"':q+=" "+k+'="'+haml.attrValue(k,l[k])+'"')}return q},indentText:function(a){var b,c;c="",b=0;while(b<a)c+="  ",b++;return c},combineAttributes:function(a,b,c){var d;haml.hasValue(c)&&(b==="id"&&c.toString().length>0?a&&a.id instanceof Array?a.id.unshift(c):a&&a.id?a.id=[a.id,c]:a?a.id=c:a={id:c}:b==="for"&&c.toString().length>0?a&&a["for"]instanceof Array?a["for"].unshift(c):a&&a["for"]?a["for"]=[a["for"],c]:a?a["for"]=c:a={"for":c}:b==="class"?(d=[],c instanceof Array?d=d.concat(c):d.push(c),a&&a["class"]?a["class"]=a["class"].concat(d):a?a["class"]=d:a={"class":d}):b!=="id"&&(a||(a={}),a[b]=c));return a}},e=function(){function a(a){var b;this.buffer=null,this.bufferIndex=null,this.prevToken=null,this.token=null;if(a.templateId){b=document.getElementById(a.templateId);if(b)this.buffer=b.innerHTML,this.bufferIndex=0;else throw"Did not find a template with ID '"+a.templateId+"'"}else a.template&&(this.buffer=a.template,this.bufferIndex=0)}a.prototype.currentLineMatcher=/[^\n]*/g,a.prototype.tokenMatchers={whitespace:/[ \t]+/g,element:/%[a-zA-Z][a-zA-Z0-9]*/g,idSelector:/#[a-zA-Z_\-][a-zA-Z0-9_\-]*/g,classSelector:/\.[a-zA-Z0-9_\-]+/g,identifier:/[a-zA-Z][a-zA-Z0-9\-]*/g,quotedString:/[\'][^\'\n]*[\']/g,quotedString2:/[\"][^\"\n]*[\"]/g,comment:/\-#/g,escapeHtml:/\&=/g,unescapeHtml:/\!=/g,objectReference:/\[[a-zA-Z_@][a-zA-Z0-9_]*\]/g,doctype:/!!!/g,continueLine:/\|\s*\n/g},a.prototype.matchToken=function(a){var b;a.lastIndex=this.bufferIndex,b=a.exec(this.buffer);if((b!=null?b.index:void 0)===this.bufferIndex)return b[0]},a.prototype.matchMultiCharToken=function(a,b,c){var d,e;if(!this.token){d=this.matchToken(a);if(d){this.token=b,this.token.tokenString=(e=typeof c=="function"?c(d):void 0)!=null?e:d,this.token.matched=d;return this.advanceCharsInBuffer(d.length)}}},a.prototype.matchSingleCharToken=function(a,b){if(!this.token&&this.buffer.charAt(this.bufferIndex)===a){this.token=b,this.token.tokenString=a,this.token.matched=a;return this.advanceCharsInBuffer(1)}},a.prototype.getNextToken=function(){var a,b,c,d,e,f,g;if(isNaN(this.bufferIndex))throw haml.HamlRuntime.templateError(this.lineNumber,this.characterNumber,this.currentLine,"An internal parser error has occurred in the HAML parser");this.prevToken=this.token,this.token=null;if(this.buffer===null||this.buffer.length===this.bufferIndex)this.token={eof:!0,token:"EOF"};else{this.initLine();if(!this.token){b=this.buffer.charCodeAt(this.bufferIndex),c=this.buffer.charCodeAt(this.bufferIndex+1);if(b===10||b===13&&c===10)this.token={eol:!0,token:"EOL"},b===13&&c===10?(this.advanceCharsInBuffer(2),this.token.matched=String.fromCharCode(b)+String.fromCharCode(c)):(this.advanceCharsInBuffer(1),this.token.matched=String.fromCharCode(b)),this.characterNumber=0,this.currentLine=this.getCurrentLine()}this.matchMultiCharToken(this.tokenMatchers.whitespace,{ws:!0,token:"WS"}),this.matchMultiCharToken(this.tokenMatchers.continueLine,{continueLine:!0,token:"CONTINUELINE"}),this.matchMultiCharToken(this.tokenMatchers.element,{element:!0,token:"ELEMENT"},function(a){return a.substring(1)}),this.matchMultiCharToken(this.tokenMatchers.idSelector,{idSelector:!0,token:"ID"},function(a){return a.substring(1)}),this.matchMultiCharToken(this.tokenMatchers.classSelector,{classSelector:!0,token:"CLASS"},function(a){return a.substring(1)}),this.matchMultiCharToken(this.tokenMatchers.identifier,{identifier:!0,token:"IDENTIFIER"}),this.matchMultiCharToken(this.tokenMatchers.doctype,{doctype:!0,token:"DOCTYPE"}),this.token||(g=this.matchToken(this.tokenMatchers.quotedString),g||(g=this.matchToken(this.tokenMatchers.quotedString2)),g&&(this.token={string:!0,token:"STRING",tokenString:g.substring(1,g.length-1),matched:g},this.advanceCharsInBuffer(g.length))),this.matchMultiCharToken(this.tokenMatchers.comment,{comment:!0,token:"COMMENT"}),this.matchMultiCharToken(this.tokenMatchers.escapeHtml,{escapeHtml:!0,token:"ESCAPEHTML"}),this.matchMultiCharToken(this.tokenMatchers.unescapeHtml,{unescapeHtml:!0,token:"UNESCAPEHTML"}),this.matchMultiCharToken(this.tokenMatchers.objectReference,{objectReference:!0,token:"OBJECTREFERENCE"},function(a){return a.substring(1,a.length-1)});if(!this.token&&this.buffer&&this.buffer.charAt(this.bufferIndex)==="{"){e=this.bufferIndex+1,d=this.characterNumber,f=this.lineNumber,a=1;while(e<this.buffer.length&&(a>1||this.buffer.charAt(e)!=="}"))this.buffer.charAt(e)==="{"?a++:this.buffer.charAt(e)==="}"&&a--,e++;if(e===this.buffer.length){this.characterNumber=d+1,this.lineNumber=f;throw this.parseError('Error parsing attribute hash - Did not find a terminating "}"')}this.token={attributeHash:!0,token:"ATTRHASH",tokenString:this.buffer.substring(this.bufferIndex,e+1),matched:this.buffer.substring(this.bufferIndex,e+1)},this.advanceCharsInBuffer(e-this.bufferIndex+1)}this.matchSingleCharToken("(",{openBracket:!0,token:"OPENBRACKET"}),this.matchSingleCharToken(")",{closeBracket:!0,token:"CLOSEBRACKET"}),this.matchSingleCharToken("=",{equal:!0,token:"EQUAL"}),this.matchSingleCharToken("/",{slash:!0,token:"SLASH"}),this.matchSingleCharToken("!",{exclamation:!0,token:"EXCLAMATION"}),this.matchSingleCharToken("-",{minus:!0,token:"MINUS"}),this.matchSingleCharToken("&",{amp:!0,token:"AMP"}),this.matchSingleCharToken("<",{lt:!0,token:"LT"}),this.matchSingleCharToken(">",{gt:!0,token:"GT"}),this.matchSingleCharToken("~",{tilde:!0,token:"TILDE"}),this.token===null&&(this.token={unknown:!0,token:"UNKNOWN"})}return this.token},a.prototype.lookAhead=function(a){var b,c,d,e,f,g,h,i;i=null;if(a>0){e=this.token,h=this.prevToken,d=this.currentLine,g=this.lineNumber,c=this.characterNumber,b=this.bufferIndex,f=0;while(f++<a)i=this.getNextToken();this.token=e,this.prevToken=h,this.currentLine=d,this.lineNumber=g,this.characterNumber=c,this.bufferIndex=b}return i},a.prototype.initLine=function(){if(!this.currentLine&&this.currentLine!==""){this.currentLine=this.getCurrentLine(),this.lineNumber=1;return this.characterNumber=0}},a.prototype.getCurrentLine=function(a){var b;this.currentLineMatcher.lastIndex=this.bufferIndex+(a!=null?a:0),b=this.currentLineMatcher.exec(this.buffer);return b?b[0]:""},a.prototype.parseError=function(a){return haml.HamlRuntime.templateError(this.lineNumber,this.characterNumber,this.currentLine,a)},a.prototype.skipToEOLorEOF=function(){var a,b,c;c="",!this.token.eof&&!this.token.eol&&(this.currentLineMatcher.lastIndex=this.bufferIndex,b=this.currentLineMatcher.exec(this.buffer),b&&b.index===this.bufferIndex&&(a=_(b[0]).rtrim(),_(a).endsWith("|")?(c+=a.substring(0,a.length-1),this.advanceCharsInBuffer(a.length-1),this.getNextToken(),c+=this.parseMultiLine()):(c=b[0],this.advanceCharsInBuffer(c.length),this.getNextToken())));return c},a.prototype.parseMultiLine=function(){var a,b,c;c="";while(this.token.continueLine)this.currentLineMatcher.lastIndex=this.bufferIndex,b=this.currentLineMatcher.exec(this.buffer),b&&b.index===this.bufferIndex&&(a=_(b[0]).rtrim(),_(a).endsWith("|")&&(c+=a.substring(0,a.length-1),this.advanceCharsInBuffer(a.length-1)),this.getNextToken());this.pushBackToken();return c},a.prototype.advanceCharsInBuffer=function(a){var b,c,d;d=0;while(d<a)b=this.buffer.charCodeAt(this.bufferIndex+d),c=this.buffer.charCodeAt(this.bufferIndex+d+1),b===13&&c===10?(this.lineNumber++,this.characterNumber=0,this.currentLine=this.getCurrentLine(d),d++):b===10?(this.lineNumber++,this.characterNumber=0,this.currentLine=this.getCurrentLine(d)):this.characterNumber++,d++;return this.bufferIndex+=a},a.prototype.currentParsePoint=function(){return{lineNumber:this.lineNumber,characterNumber:this.characterNumber,currentLine:this.currentLine}},a.prototype.pushBackToken=function(){if(!this.token.unknown&&!this.token.eof){this.bufferIndex-=this.token.matched.length;return this.token=this.prevToken}};return a}(),a=function(){function a(a){this.generator=a,this.buffer="",this.outputBuffer=""}a.prototype.append=function(a){this.buffer.length===0&&this.generator.mark();if(a&&a.length>0)return this.buffer+=a},a.prototype.appendToOutputBuffer=function(a){if(a&&a.length>0){this.flush();return this.outputBuffer+=a}},a.prototype.flush=function(){this.buffer&&this.buffer.length>0&&(this.outputBuffer+=this.generator.generateFlush(this.buffer));return this.buffer=""},a.prototype.output=function(){return this.outputBuffer},a.prototype.trimWhitespace=function(){var a,b;if(this.buffer.length>0){b=this.buffer.length-1;while(b>0){a=this.buffer.charAt(b);if(a===" "||a==="\t"||a==="\n")b--;else if(b>1&&(a==="n"||a==="t")&&this.buffer.charAt(b-1)==="\\")b-=2;else break}if(b>0&&b<this.buffer.length-1)return this.buffer=this.buffer.substring(0,b+1);if(b===0)return this.buffer=""}};return a}(),d=function(){function a(){this.outputBuffer=new haml.Buffer(this)}a.prototype.appendEmbeddedCode=function(a,b,c,d,e){this.outputBuffer.flush(),this.outputBuffer.appendToOutputBuffer(a+"try {\n"),this.outputBuffer.appendToOutputBuffer(a+'    var value = eval("'+b.replace(/"/g,'\\"').replace(/\\n/g,"\\\\n")+'");\n'),this.outputBuffer.appendToOutputBuffer(a+'    value = value === null ? "" : value;'),c?this.outputBuffer.appendToOutputBuffer(a+"    html.push(haml.HamlRuntime.escapeHTML(String(value)));\n"):d?this.outputBuffer.appendToOutputBuffer(a+"    html.push(haml.HamlRuntime.perserveWhitespace(String(value)));\n"):this.outputBuffer.appendToOutputBuffer(a+"    html.push(String(value));\n"),this.outputBuffer.appendToOutputBuffer(a+"} catch (e) {\n"),this.outputBuffer.appendToOutputBuffer(a+"  throw new Error(haml.HamlRuntime.templateError("+e.lineNumber+", "+e.characterNumber+', "'+this.escapeJs(e.currentLine)+'",\n'),this.outputBuffer.appendToOutputBuffer(a+'    "Error evaluating expression - " + e));\n');return this.outputBuffer.appendToOutputBuffer(a+"}\n")},a.prototype.initOutput=function(){return this.outputBuffer.appendToOutputBuffer("  var html = [];\n  var hashFunction = null, hashObject = null, objRef = null, objRefFn = null;\n  with (context || {}) {\n")},a.prototype.closeAndReturnOutput=function(){this.outputBuffer.flush();return this.outputBuffer.output()+'  }\n  return html.join("");\n'},a.prototype.appendCodeLine=function(a){this.outputBuffer.flush(),this.outputBuffer.appendToOutputBuffer(c.indentText(this.indent)),this.outputBuffer.appendToOutputBuffer(a);return this.outputBuffer.appendToOutputBuffer("\n")},a.prototype.lineMatchesStartFunctionBlock=function(a){return a.match(/function\s\((,?\s*\w+)*\)\s*\{\s*$/)},a.prototype.lineMatchesStartBlock=function(a){return a.match(/\{\s*$/)},a.prototype.closeOffCodeBlock=function(a){if(!a.token.minus||!a.matchToken(/\s*\}/g)){this.outputBuffer.flush();return this.outputBuffer.appendToOutputBuffer(c.indentText(this.indent)+"}\n")}},a.prototype.closeOffFunctionBlock=function(a){if(!a.token.minus||!a.matchToken(/\s*\}/g)){this.outputBuffer.flush();return this.outputBuffer.appendToOutputBuffer(c.indentText(this.indent)+"});\n")}},a.prototype.generateCodeForDynamicAttributes=function(a,b,c,d,e,f){this.outputBuffer.flush(),d.length>0&&(d=this.replaceReservedWordsInHash(d),this.outputBuffer.appendToOutputBuffer('    hashFunction = function () { return eval("hashObject = '+d.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"); };\n')),e.length>0&&this.outputBuffer.appendToOutputBuffer('    objRefFn = function () { return eval("objRef = '+e.replace(/"/g,'\\"')+'"); };\n');return this.outputBuffer.appendToOutputBuffer('    html.push(haml.HamlRuntime.generateElementAttributes(context, "'+a+'", ["'+b.join('","')+'"], objRefFn, '+JSON.stringify(c)+", hashFunction, "+f.lineNumber+", "+f.characterNumber+', "'+this.escapeJs(f.currentLine)+'"));\n')},a.prototype.replaceReservedWordsInHash=function(a){var b,c,d,e,f;c=a,f=["class","for"];for(d=0,e=f.length;d<e;d++)b=f[d],c=c.replace(b+":",'"'+b+'":');return c},a.prototype.escapeJs=function(a){return a.replace(/"/g,'\\"')},a.prototype.generateJsFunction=function(a){try{return new Function("context",a)}catch(b){throw"Incorrect embedded code has resulted in an invalid Haml function - "+b+"\nGenerated Function:\n"+a}},a.prototype.generateFlush=function(a){return'    html.push("'+this.escapeJs(a)+'");\n'},a.prototype.setIndent=function(a){return this.indent=a},a.prototype.mark=function(){};return a}(),b=function(){function a(){this.outputBuffer=new haml.Buffer(this)}a.prototype.appendEmbeddedCode=function(a,b,c,d,e){var f;this.outputBuffer.flush(),f=this.calcCodeIndent(),this.outputBuffer.appendToOutputBuffer(f+"try\n"),this.outputBuffer.appendToOutputBuffer(f+'  exp = CoffeeScript.compile("'+b.replace(/"/g,'\\"').replace(/\\n/g,"\\\\n")+'", bare: true)\n'),this.outputBuffer.appendToOutputBuffer(f+"  value = eval(exp)\n"),this.outputBuffer.appendToOutputBuffer(f+'  value ?= ""\n'),c?this.outputBuffer.appendToOutputBuffer(f+"  html.push(haml.HamlRuntime.escapeHTML(String(value)))\n"):d?this.outputBuffer.appendToOutputBuffer(f+"  html.push(haml.HamlRuntime.perserveWhitespace(String(value)))\n"):this.outputBuffer.appendToOutputBuffer(f+"  html.push(String(value))\n"),this.outputBuffer.appendToOutputBuffer(f+"catch e \n"),this.outputBuffer.appendToOutputBuffer(f+"  throw new Error(haml.HamlRuntime.templateError("+e.lineNumber+", "+e.characterNumber+', "'+this.escapeJs(e.currentLine)+'",\n');return this.outputBuffer.appendToOutputBuffer(f+'    "Error evaluating expression - " + e))\n')},a.prototype.initOutput=function(){return this.outputBuffer.appendToOutputBuffer("html = []\n")},a.prototype.closeAndReturnOutput=function(){this.outputBuffer.flush();return this.outputBuffer.output()+'return html.join("")\n'},a.prototype.appendCodeLine=function(a){this.outputBuffer.flush(),this.prevCodeIndent!=null&&this.prevCodeIndent<this.indent&&this.outputBuffer.appendToOutputBuffer(c.indentText(this.indent-this.prevCodeIndent)),this.outputBuffer.appendToOutputBuffer(_(a).trim()),this.outputBuffer.appendToOutputBuffer("\n");return this.prevCodeIndent=this.indent},a.prototype.lineMatchesStartFunctionBlock=function(a){return a.match(/\) [\-=]>\s*$/)},a.prototype.lineMatchesStartBlock=function(a){return!0},a.prototype.closeOffCodeBlock=function(a){return this.outputBuffer.flush()},a.prototype.closeOffFunctionBlock=function(a){return this.outputBuffer.flush()},a.prototype.generateCodeForDynamicAttributes=function(a,b,c,d,e,f){this.outputBuffer.flush(),d.length>0&&(d=this.replaceReservedWordsInHash(d),this.outputBuffer.appendToOutputBuffer('hashFunction = () -> s = CoffeeScript.compile("'+d.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'", bare: true); eval "hashObject = " + s\n')),e.length>0&&this.outputBuffer.appendToOutputBuffer('objRefFn = () -> s = CoffeeScript.compile("'+e.replace(/"/g,'\\"')+'", bare: true); eval "objRef = " + s\n');return this.outputBuffer.appendToOutputBuffer('html.push(haml.HamlRuntime.generateElementAttributes(this, "'+a+'", ["'+b.join('","')+'"], objRefFn ? null, '+JSON.stringify(c)+", hashFunction ? null, "+f.lineNumber+", "+f.characterNumber+', "'+this.escapeJs(f.currentLine)+'"))\n')},a.prototype.replaceReservedWordsInHash=function(a){var b,c,d,e,f;c=a,f=["class","for"];for(d=0,e=f.length;d<e;d++)b=f[d],c=c.replace(b+":",'"'+b+'":');return c},a.prototype.escapeJs=function(a){return a.replace(/"/g,'\\"')},a.prototype.generateJsFunction=function(a){var b;console.log("------------------------------"),console.log(a),console.log("------------------------------");try{b=CoffeeScript.compile(a,{bare:!0}),console.log("["+b+"]");return new Function(b)}catch(c){throw"Incorrect embedded code has resulted in an invalid Haml function - "+c+"\nGenerated Function:\n"+b}},a.prototype.generateFlush=function(a){return this.calcCodeIndent()+'html.push("'+this.escapeJs(a)+'")\n'},a.prototype.setIndent=function(a){return this.indent=a},a.prototype.mark=function(){return this.prevIndent=this.indent},a.prototype.calcCodeIndent=function(){return this.prevCodeIndent!=null&&this.prevIndent>this.prevCodeIndent?c.indentText(this.prevIndent-this.prevCodeIndent):""};return a}(),f=this,f.haml={compileHaml:function(a){return this._compileHamlTemplate(a,new haml.JsCodeGenerator)},compileCoffeeHaml:function(a){return this._compileHamlTemplate(a,new haml.CoffeeCodeGenerator)},compileStringToJs:function(a){var b,c;b=new haml.JsCodeGenerator,c=this._compileHamlToJs(new haml.Tokeniser({template:a}),b);return b.generateJsFunction(c)},compileCoffeeHamlFromString:function(a){var b,c;b=new haml.CoffeeCodeGenerator,c=this._compileHamlToJs(new haml.Tokeniser({template:a}),b);return b.generateJsFunction(c)},compileHamlToJsString:function(a){var b;b="function (context) {\n",b+=this._compileHamlToJs(new haml.Tokeniser({template:a}),new haml.JsCodeGenerator);return b+="}\n"},_compileHamlTemplate:function(a,b){var c,d;haml.cache||(haml.cache={});if(haml.cache[a])return haml.cache[a];d=this._compileHamlToJs(new haml.Tokeniser({templateId:a}),b),c=b.generateJsFunction(d),haml.cache[a]=c;return c},_compileHamlToJs:function(a,b){var c,d;c=[],b.initOutput(),a.getNextToken();while(!a.token.eof)a.token.eol?a.getNextToken():(d=haml._whitespace(a),b.setIndent(d),a.token.doctype?haml._doctype(a,d,b):a.token.exclamation?haml._ignoredLine(a,d,c,b):a.token.equal||a.token.escapeHtml||a.token.unescapeHtml||a.token.tilde?haml._embeddedJs(a,d,c,{innerWhitespace:!0},b):a.token.minus?haml._jsLine(a,d,c,b):a.token.comment||a.token.slash?haml._commentLine(a,d,c,b):a.token.amp?haml._escapedLine(a,d,c,b):haml._templateLine(a,c,d,b));haml._closeElements(0,c,a,b);return b.closeAndReturnOutput()},_doctype:function(a,b,d){var e,f;if(a.token.doctype){d.outputBuffer.append(c.indentText(b)),a.getNextToken(),e=a.skipToEOLorEOF();if(e&&e.length>0){f=e.split(/\s+/);switch(f[0]){case"XML":f.length>1?d.outputBuffer.append("<?xml version='1.0' encoding='"+f[1]+"' ?>"):d.outputBuffer.append("<?xml version='1.0' encoding='utf-8' ?>");break;case"Strict":d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">');break;case"Frameset":d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">');break;case"5":d.outputBuffer.append("<!DOCTYPE html>");break;case"1.1":d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');break;case"Basic":d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">');break;case"Mobile":d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">');break;case"RDFa":d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">')}}else d.outputBuffer.append('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');return d.outputBuffer.append("\\n")}},_commentLine:function(a,b,d,e){var f,g;if(a.token.comment){a.skipToEOLorEOF(),a.getNextToken(),g=haml._whitespace(a);while(!a.token.eof&&g>b)a.skipToEOLorEOF(),a.getNextToken(),g=haml._whitespace(a);return a.pushBackToken()}if(a.token.slash){haml._closeElements(b,d,a,e),e.outputBuffer.append(c.indentText(b)),e.outputBuffer.append("<!--"),f=a.skipToEOLorEOF(),f&&f.length>0&&e.outputBuffer.append(f),f&&_(f).startsWith("[")&&f.match(/\]\s*$/)?(d[b]={htmlConditionalComment:!0},e.outputBuffer.append(">")):d[b]={htmlComment:!0};if(haml._tagHasContents(b,a))return e.outputBuffer.append("\\n")}},_escapedLine:function(a,b,d,e){var f;if(a.token.amp){haml._closeElements(b,d,a,e),e.outputBuffer.append(c.indentText(b)),f=a.skipToEOLorEOF(),f&&f.length>0&&e.outputBuffer.append(haml.HamlRuntime.escapeHTML(f));return e.outputBuffer.append("\\n")}},_ignoredLine:function(a,b,d,e){var f;if(a.token.exclamation){a.getNextToken(),a.token.ws&&(b+=haml._whitespace(a)),a.pushBackToken(),haml._closeElements(b,d,a,e),f=a.skipToEOLorEOF();return e.outputBuffer.append(c.indentText(b)+f+"\\n")}},_embeddedJs:function(a,b,d,e,f){var g,h,i,j,k;d&&haml._closeElements(b,d,a,f);if(a.token.equal||a.token.escapeHtml||a.token.unescapeHtml||a.token.tilde){h=a.token.escapeHtml||a.token.equal,k=a.token.tilde,g=a.currentParsePoint(),i=a.skipToEOLorEOF(),j=c.indentText(b),(!e||e.innerWhitespace)&&f.outputBuffer.append(j),f.appendEmbeddedCode(j,i,h,k,g);if(!e||e.innerWhitespace)return f.outputBuffer.append("\\n")}},_jsLine:function(a,b,c,d){var e;if(a.token.minus){haml._closeElements(b,c,a,d),e=a.skipToEOLorEOF(),d.setIndent(b),d.appendCodeLine(e);if(d.lineMatchesStartFunctionBlock(e))return c[b]={fnBlock:!0};if(d.lineMatchesStartBlock(e))return c[b]={block:!0}}},_templateLine:function(a,b,d,e){var f,g,h,i,j,k,l,m,n,o;a.token.eol||haml._closeElements(d,b,a,e),m=haml._element(a),l=haml._idSelector(a),h=haml._classSelector(a),n=haml._objectReference(a),f=haml._attributeList(a),j=a.currentParsePoint(),g=haml._attributeHash(a),o={selfClosingTag:!1,innerWhitespace:!0,outerWhitespace:!0},a.token.slash&&(o.selfClosingTag=!0,a.getNextToken()),a.token.gt&&haml._lineHasElement(m,l,h)&&(o.outerWhitespace=!1,a.getNextToken()),a.token.lt&&haml._lineHasElement(m,l,h)&&(o.innerWhitespace=!1,a.getNextToken()),haml._lineHasElement(m,l,h)?(o.selfClosingTag||(o.selfClosingTag=haml._isSelfClosingTag(m)&&!haml._tagHasContents(d,a)),haml._openElement(j,d,m,l,h,n,f,g,b,o,e)):!haml._isEolOrEof(a)&&!a.token.ws&&a.pushBackToken(),i=haml._elementContents(a,d+1,o,e),haml._eolOrEof(a);if(o.selfClosingTag&&i.length>0)throw haml.HamlRuntime.templateError(j.lineNumber,j.characterNumber,j.currentLine,"A self-closing tag can not have any contents");if(i.length>0){i.match(/^\\%/)&&(i=i.substring(1));if(o.innerWhitespace&&haml._lineHasElement(m,l,h)||!haml._lineHasElement(m,l,h)&&haml._parentInnerWhitespace(b,d)){k=d,m.length>0&&(k+=1);return e.outputBuffer.append(c.indentText(k)+i+"\\n")}return e.outputBuffer.append(_(i).trim()+"\\n")}if(!haml._lineHasElement(m,l,h)&&o.innerWhitespace)return e.outputBuffer.append(c.indentText(d)+"\\n")},_elementContents:function(a,b,c,d){var e;e="",a.token.eof||(a.token.ws&&a.getNextToken(),a.token.exclamation?e=a.skipToEOLorEOF():a.token.equal||a.token.escapeHtml||a.token.unescapeHtml?haml._embeddedJs(a,b,null,c,d):a.token.eol||(a.pushBackToken(),e=a.skipToEOLorEOF()));return e},_attributeHash:function(a){var b;b="",a.token.attributeHash&&(b=a.token.tokenString,a.getNextToken());return b},_objectReference:function(a){var b;b="",a.token.objectReference&&(b=a.token.tokenString,a.getNextToken());return b},_attributeList:function(a){var b,c;c={};if(a.token.openBracket){a.getNextToken();while(!a.token.closeBracket){b=haml._attribute(a),b?c[b.name]=b.value:a.getNextToken();if(a.token.ws||a.token.eol)a.getNextToken();else if(!a.token.closeBracket&&!a.token.identifier)throw a.parseError("Expecting either an attribute name to continue the attibutes or a closing bracket to end")}a.getNextToken()}return c},_attribute:function(a){var b,c;b=null;if(a.token.identifier){c=a.token.tokenString,a.getNextToken(),haml._whitespace(a);if(!a.token.equal)throw a.parseError("Expected '=' after attribute name");a.getNextToken(),haml._whitespace(a);if(!a.token.string&&!a.token.identifier)throw a.parseError("Expected a quoted string or an identifier for the attribute value");b={name:c,value:a.token.tokenString},a.getNextToken()}return b},_closeElement:function(a,b,d,e){var f,g;if(b[a]){e.setIndent(a),b[a].htmlComment?e.outputBuffer.append(c.indentText(a)+"-->\\n"):b[a].htmlConditionalComment?e.outputBuffer.append(c.indentText(a)+"<![endif]-->\\n"):b[a].block?e.closeOffCodeBlock(d):b[a].fnBlock?e.closeOffFunctionBlock(d):(f=!b[a].tagOptions||b[a].tagOptions.innerWhitespace,f?e.outputBuffer.append(c.indentText(a)):e.outputBuffer.trimWhitespace(),e.outputBuffer.append("</"+b[a].tag+">"),g=!b[a].tagOptions||b[a].tagOptions.outerWhitespace,haml._parentInnerWhitespace(b,a)&&g&&e.outputBuffer.append("\\n")),b[a]=null;return e.mark()}},_closeElements:function(a,b,c,d){var e,f;e=b.length-1,f=[];while(e>=a)f.push(haml._closeElement(e--,b,c,d));return f},_openElement:function(a,b,d,e,f,g,h,i,j,k,l){var m,n,o;m=d.length===0?"div":d,n=haml._parentInnerWhitespace(j,b),o=!k||k.outerWhitespace,o||l.outputBuffer.trimWhitespace(),b>0&&n&&o&&l.outputBuffer.append(c.indentText(b)),l.outputBuffer.append("<"+m),i.length>0||g.length>0?l.generateCodeForDynamicAttributes(e,f,h,i,g,a):l.outputBuffer.append(haml.HamlRuntime.generateElementAttributes(null,e,f,null,h,null,a.lineNumber,a.characterNumber,a.currentLine));if(k.selfClosingTag){l.outputBuffer.append("/>");if(k.outerWhitespace)return l.outputBuffer.append("\\n")}else{l.outputBuffer.append(">"),j[b]={tag:m,tagOptions:k};if(k.innerWhitespace)return l.outputBuffer.append("\\n")}},_isSelfClosingTag:function(a){return a==="meta"||a==="img"||a==="link"||a==="script"||a==="br"||a==="hr"},_tagHasContents:function(a,b){var c;if(!haml._isEolOrEof(b))return!0;c=b.lookAhead(1);return c.ws&&c.tokenString.length/2>a},_parentInnerWhitespace:function(a,b){return b===0||!a[b-1]||!a[b-1].tagOptions||a[b-1].tagOptions.innerWhitespace},_lineHasElement:function(a,b,c){return a.length>0||b.length>0||c.length>0},hasValue:function(a){return a!=null&&a!==!1},attrValue:function(a,b){return a==="selected"||a==="checked"||a==="disabled"?a:b},_whitespace:function(a){var b;b=0,a.token.ws&&(b=a.token.tokenString.length/2,a.getNextToken());return b},_element:function(a){var b;b="",a.token.element&&(b=a.token.tokenString,a.getNextToken());return b},_eolOrEof:function(a){if(a.token.eol||a.token.continueLine)return a.getNextToken();if(!a.token.eof)throw a.parseError("Expected EOL or EOF")},_idSelector:function(a){var b;b="",a.token.idSelector&&(b=a.token.tokenString,a.getNextToken());return b},_classSelector:function(a){var b;b=[];while(a.token.classSelector)b.push(a.token.tokenString),a.getNextToken();return b},_isEolOrEof:function(a){return a.token.eol||a.token.eof}},f.haml.Tokeniser=e,f.haml.Buffer=a,f.haml.JsCodeGenerator=d,f.haml.CoffeeCodeGenerator=b,f.haml.HamlRuntime=c}).call(this)
