###########################################################################
#                            TextMate Snippets                            #
###########################################################################

global !p
def x(snip):
    if snip.ft.startswith("x"):
        snip.rv = '/'
    else:
        snip.rv = ""
endglobal

############
# Doctypes #
############
snippet doctype "DocType XHTML 1.0 Strict" b
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

endsnippet

snippet doctype "DocType XHTML 1.0 Transitional" b
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

endsnippet

snippet doctype "DocType XHTML 1.1" b
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

endsnippet

snippet doctype "HTML - 4.0 Transitional (doctype)" b
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">

endsnippet

snippet doctype "HTML - 5.0 (doctype)" b
<!DOCTYPE html>

endsnippet

#############
# Shortcuts #
#############
snippet down "Down (down)"
&#x2193;
endsnippet

snippet enter "Enter (enter)"
&#x2305;
endsnippet

snippet escape "Escape (escape)"
&#x238B;
endsnippet

snippet shift "Shift (shift)"
&#x21E7;
endsnippet

snippet tab "Tab (tab)"
&#x21E5;
endsnippet

snippet up "Up (up)"
&#x2191;
endsnippet

snippet return "Return (return)"
&#x21A9;
endsnippet

snippet right "Right (right)"
&#x2192;
endsnippet

snippet left "Left (left)"
&#x2190;
endsnippet

snippet option "Option (option)"
&#x2325;
endsnippet

#######################
# Conditional inserts #
#######################
snippet ! "IE Conditional Comment: Internet Explorer 5_0 only"
<!--[if IE 5.0]>${1:IE Conditional Comment: Internet Explorer 5.0 only }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: Internet Explorer 5_5 only"
<!--[if IE 5.5000]>${1:IE Conditional Comment: Internet Explorer 5.5 only }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: Internet Explorer 5_x"
<!--[if lt IE 6]>${1:IE Conditional Comment: Internet Explorer 5.x      }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: Internet Explorer 6 and below"
<!--[if lte IE 6]>${1:IE Conditional Comment: Internet Explorer 6 and below }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: Internet Explorer 6 only"
<!--[if IE 6]>${1:IE Conditional Comment: Internet Explorer 6 only   }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: Internet Explorer 7+"
<!--[if gte IE 7]>${1:IE Conditional Comment: Internet Explorer 7 and above }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: Internet Explorer"
<!--[if IE]>${1:       IE Conditional Comment: Internet Explorer          }<![endif]-->$0
endsnippet

snippet ! "IE Conditional Comment: NOT Internet Explorer"
<!--[if !IE]><!-->${1:  IE Conditional Comment: NOT Internet Explorer      }<!-- <![endif]-->$0
endsnippet

#############
# HTML TAGS #
#############
snippet input "Input with Label"
<label for="${2:${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g}}">$1</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="$5"${6: id="${7:$2}"}`!p x(snip)`>

endsnippet

snippet input "XHTML   <input>"
<input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="$3"${4: id="${5:$2}"}`!p x(snip)`>
endsnippet


snippet opt "Option"
<option${1: value="${2:option}"}>${3:$2}</option>
endsnippet

snippet select "Select Box"
<select name="${1:some_name}" id="${2:$1}"${3:${4: multiple}${5: onchange="${6:}"}${7: size="${8:1}"}}>
	<option${9: value="${10:option1}"}>${11:$10}</option>
	<option${12: value="${13:option2}"}>${14:$13}</option>${15:}
	$0
</select>
endsnippet


snippet textarea "XHTML   <textarea>"
<textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">$0</textarea>
endsnippet

snippet mailto "XHTML <a mailto: >"
<a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a>
endsnippet

snippet base "XHTML <base>"
<base href="$1"${2: target="$3"}`!p x(snip)`>
endsnippet

snippet body "XHTML <body>"
<body id="${1:`!p
snip.rv = snip.fn and 'Hallo' or 'Nothin'
`}"${2: onload="$3"}>
	$0
</body>
endsnippet

snippet div "XHTML <div>"
<div`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`>
   $0
</div>
endsnippet

snippet form "XHTML <form>"
<form action="${1:`!p
snip.rv = (snip.basename or 'unnamed') + '_submit'
`}" method="${2:get}" accept-charset="utf-8">
	$0

	<p><input type="submit" value="Continue →"`!p x(snip)`></p>
</form>
endsnippet

snippet h1 "XHTML <h1>"
<h1 id="${1/[\w\d]+|( )/(?1:_:\L$0\E)/g}">${1}</h1>
endsnippet

snippet head "XHTML <head>"
<head>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8"`!p x(snip)`>
	<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title>
	$0
</head>
endsnippet

snippet link "XHTML <link>"
<link rel="${1:stylesheet}" href="${2:/css/master.css}" type="text/css" media="${3:screen}" title="${4:no title}" charset="${5:utf-8}"`!p x(snip)`>
endsnippet

snippet meta "XHTML <meta>"
<meta name="${1:name}" content="${2:content}"`!p x(snip)`>
endsnippet

snippet scriptsrc "XHTML <script src...>"
<script src="$1" type="text/javascript" charset="${3:utf-8}"></script>
endsnippet

snippet script "XHTML <script>"
<script type="text/javascript" charset="utf-8">
	$0
</script>
endsnippet

snippet style "XHTML <style>"
<style type="text/css" media="screen">
	$0
</style>
endsnippet

snippet table "XHTML <table>"
<table border="${1:0}"${2: cellspacing="${3:5}" cellpadding="${4:5}"}>
	<tr><th>${5:Header}</th></tr>
	<tr><td>${0:Data}</td></tr>
</table>
endsnippet

snippet a "Link"
<a href="${1:http://www.${2:url.com}}"${3: target="_blank"}>${4:Anchor Text}</a>
endsnippet

snippet p "paragraph"
<p>$0</p>
endsnippet

snippet li "list item"
<li></li>
endsnippet

snippet ul "unordered list"
<ul>
$0
</ul>
endsnippet

snippet td "table cell"
<td>$0</td>
endsnippet

snippet tr "table row"
<tr>$0</tr>
endsnippet

snippet title "XHTML <title>"
<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title>
endsnippet

snippet fieldset "Fieldset"
<fieldset id="${1/[\w\d]+|( )/(?1:_:\L$0\E)/g}" ${2:class="${3:}"}>
	<legend>$1</legend>
	
	$0
</fieldset>
endsnippet

snippet movie "Embed QT movie (movie)" b
<object width="$2" height="$3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">
	<param name="src" value="$1"`!p x(snip)`>
	<param name="controller" value="$4"`!p x(snip)`>
	<param name="autoplay" value="$5"`!p x(snip)`>
	<embed src="${1:movie.mov}"
		width="${2:320}" height="${3:240}"
		controller="${4:true}" autoplay="${5:true}"
		scale="tofit" cache="true"
		pluginspage="http://www.apple.com/quicktime/download/"
	`!p x(snip)`>
</object>
endsnippet

snippet html5 "HTML5 Template"
<!DOCTYPE html>
<html>
<head>
	<title>${1}</title>
	<meta charset="utf-8">
</head>
<body>
	<header>
		${2}
	</header>
	<footer>
		${4}
	</footer>
</body>
</html>
endsnippet
# vim:ft=snippets:
