/*
 * jQuick 1.3.2 - 23 march 2007 - http://jquick.sullof.com
 * Copyright (c) 2007 Francesco Sullo
 * Dual licensed under the MIT (MIT-LICENSE.txt) 
 * and GPL (GPL-LICENSE.txt) licenses.
 * jQuick requires jQuery (http://www.jquery.com)
 * Inspired by DOM Creation by Michael Geary (http://mg.to)
 */
 
 
 
 

jQuery.fn.extend({

	jQuickAttr: function (attr,tag) {
		if (document.all) {
			// fix events in IE if passed as attributes
			var ev = "blur change click dblclick error focus keydown keypress keyup load mousedown mousemove mouseout mouseover mouseup resize scroll select submit unload ";
			var re = new RegExp("^on","i");
			for (var k in attr) {
				try {
					if (re.test(k)) {
						var e = k.toLowerCase().substring(2);
						if (ev.indexOf(e) != -1) {
							eval("jQuery.mom = function () { "+attr[k]+"; }");
							this.bind(e,jQuery.mom);
						}
						else this.attr(k,attr[k]);
					}
					else this.attr(k,attr[k]);
				}
				catch (e) { 
					this.attr(k,attr[k]);
				}
			}
		}
		else this.attr(attr);
		if (jQuery.browser.safari && tag == 'LABEL') {
			// add LABEL support in Safari
			for (var j in attr) {
				if (j.toLowerCase()=='for') {
					this.bind("click", function () {
						var input = jQuery("#"+attr[j]);
						switch (input.attr("type")) {
							case "checkbox":
							case "radio":
								input[0].click();
								break;
							default:
								input[0].focus();
						}					  
					});
					break;
				}
			}
		}
	},
	
	jQuickAppend: function (a) {
		if (typeof a == 'object') this.append(a);
		else {
			if (/</.test(a)) {
				var x;
				if (/^[^<]+</.test(a)) {
					x = a.split("<")[0];
					this.append(document.createTextNode(x));
				}
				x = a.replace(/^[^<]*/,'').replace(/>[^>]*$/,'');
				this.append(x);
				if (/>[^>]+$/.test(a)) {
					x = a.replace(/.*>([^>]*)$/,'$1');
					this.append(document.createTextNode(x));
				}
			}
			else this.append(document.createTextNode(a));
		}
	}
});
	

(function() {
     var t = "A<ABBR<ACRONYM<ADDRESS<AREA<B<BASE<BDO<BIG<BLOCKQUOTE<BODY<BR<BUTTON<CAPTION<CITE<CODE<COL<COLGROUP<DD<DEL<DIV<DFN<DL<DT<EM<FIELDSET<FONT<FORM<FRAME<FRAMESET<H1<H2<H3<H4<H5<H6<HEAD<HR<HTML<I<IFRAME<IMG<INPUT<INS<KBD<LABEL<LEGEND<LI<LINK<MAP<META<NOFRAMES<NOSCRIPT<OBJECT<OL<OPTGROUP<OPTION<P<PARAM<PRE<Q<SAMP<SCRIPT<SELECT<SMALL<SPAN<STRONG<STYLE<SUB<SUP<TABLE<TBODY<TD<TEXTAREA<TFOOT<TH<THEAD<TITLE<TR<TT<UL<VAR".split("<");
	for (var j=0;j<t.length;j++) {
		var tl = t[j].toLowerCase();
		eval("jQuery."+t[j]+" = function() { return (function (args) {var attr = args[0]||{};var z = typeof attr == 'string' || typeof attr== 'number' ? 0: 1; var str = '<"+tl+"';"+
			 //fix readonly input type for IE																											 
			(tl=='input' && document.all ? "if (z) for (var j in attr) if (j.toLowerCase()=='type') { if (attr[j]) str+=' type=\"'+attr[j]+'\"'; break; }":"")+
			"str+='/>';var n = jQuery(str); if (z) n.jQuickAttr(attr,'"+tl+"'); for (var i=z;i<args.length;i++) { var a = args[i]; if (!a) continue; if (a.constructor != Array) n.jQuickAppend(a); else for (var k=0;k<a.length;k++) n.jQuickAppend(a[k]); } return n;})(arguments); }")
	}
})();

