context: $.Select = function( t, context ) {	context = context || $.context || document;	if ( t.constructor != String ) {		return [t];	}		if ( t.indexOf("//") === 0 ) {		context = context.documentElement;		t = t.substr(2,t.length);	} else if ( t.indexOf("/") === 0 ) {		context = context.documentElement;		t = t.substr(1,t.length);		// FIX Assume the root element is right :(		if ( t.indexOf('/') ) {			t = t.substr(t.indexOf('/'),t.length);		}	}		var ret = [context];	var done = [];	var last = null;  	while ( t.length > 0 && last != t ) {    var r = [];		last = t;	        t = $.cleanSpaces(t);	        var re = new RegExp( "^//", "i" );    t = t.replace( re, "" );			if ( t.indexOf('..') === 0 || t.indexOf('/..') === 0 ) {			if ( t.indexOf('/') === 0 ) {				t = t.substr(1,t.length);			}			r = $.map( ret, function(a){ return a.parentNode; } );			t = t.substr(2,t.length);			t = $.cleanSpaces(t);		} else if ( t.indexOf('>') === 0 || t.indexOf('/') === 0 ) {			r = $.map( ret, function(a){ return ( a.childNodes.length > 0 ? $.sibling( a.firstChild ) : null ); } );			t = t.substr(1,t.length);			t = $.cleanSpaces(t);		} else if ( t.indexOf('+') === 0 ) {			r = $.map( ret, function(a){ return $.sibling(a).next; } );			t = t.substr(1,t.length);			t = $.cleanSpaces(t);		} else if ( t.indexOf('~') === 0 ) {			r = $.map( ret, function(a){				var r = [];				var s = $.sibling(a);				if ( s.n > 0 ) {					for ( var i = s.n; i < s.length; i++ ) {						r[r.length] = s[i];					}				}				return r;			});			t = t.substr(1,t.length);			t = $.cleanSpaces(t);		} else if ( t.indexOf(',') === 0 || t.indexOf('|') === 0 ) {			if ( ret[0] == context ) { ret.shift(); }			done = $.merge( done, ret );			r = ret = [context];			t = " " + t.substr(1,t.length);		} else {			var re2 = new RegExp( "^([#.]?)([a-z0-9\\*_-]*)", "i" );			var m = re2.exec(t);						if ( m[1] == "#" ) { // Ummm, should make this work in all XML docs				var oid = document.getElementById(m[2]);				r = oid ? [oid] : [];				t = t.replace( re2, "" );			} else {				if ( m[2] === "" || m[1] == "." ) { m[2] = "*"; }					for ( var i = 0; i < ret.length; i++ ) {					var o = ret[i];					if ( o ) {						switch( m[2] ) {							case '*':								r = $.merge( $.getAll(o), r );							break;							case 'text': case 'radio': case 'checkbox': case 'hidden':							case 'button': case 'submit': case 'image': case 'password':							case 'reset': case 'file':								r = $.merge( $.grep( $.tag(o,"input"), 									function(a){ return a.type == m[2]; }), r );							break;							case 'input':								r = $.merge( $.tag(o,"input"), r );								r = $.merge( $.tag(o,"select"), r );								r = $.merge( $.tag(o,"textarea"), r );							break;							default:								r = $.merge( r, $.tag(o,m[2]) );							break;						}					}				}			}		}		if ( t ) {			var val = $.filter(t,r);			ret = r = val.r;			t = $.cleanSpaces(val.t);		}	}	if ( ret && ret[0] == context ) { ret.shift(); }	done = $.merge( done, ret );	return done;};
meta: 2411	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/2411/4b6bcb235fc4ae30692d27910dffbf79295e36f4/jquery.js/buggy/jquery/jquery.js