jQuery.extend({
    request : { 
        queryString : function(val) { 
            var uri = window.location.search; 
            var re = new RegExp("" +val+ "\=([^\&\?]*)", "ig"); 
            return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null); 
        }, 
        queryStrings : function(uri) { 
            uri = uri || window.location.search; 
            var re = /\w*\=([^\&\?]*)/ig; 
            var retval=[]; 
            while ((arr = re.exec(uri)) != null) 
            retval.push(arr[0]); 
            return retval; 
        }, 
        setQuery : function(a, val1, val2) { 
            var a = this.queryStrings(a); 
            var retval = ""; 
            var seted = false; 
            var re = new RegExp("^" +val1+ "\=([^\&\?]*)$", "ig"); 
            for(var i=0; i<a.length; i++) { 
                if (re.test(a[i])) { 
                    seted = true; 
                    a[i] = val1 +"="+ val2; 
                } 
            } 
            retval = a.join("&"); 
            return "?" +retval+ (seted ? "" : (retval ? "&" : "") +val1+ "=" +val2);              
        }
    }
});
jQuery.extend({
	 parseXml:function(text){   
        var xmlDoc = null;   
        try //Internet Explorer   
        {   
          xmlDoc=new ActiveXObject("Microsoft.XMLDOM");   
          xmlDoc.async="false";   
          xmlDoc.loadXML(text);   
        }   
        catch(e)   
        {   
          try //Firefox, Mozilla, Opera, etc.   
            { alert("Firefox");  
            parser=new DOMParser();   
            xmlDoc=parser.parseFromString(text,"text/xml");   
            }   
          catch(e) {}   
        }   
        return xmlDoc;       
    }
});
jQuery.extend(Array.prototype,{
    contain:function(p){
        for(var ii = 0;ii<this.length;ii++){
            if(this[ii] == p){
                return true;
            }
        }
        return false;
    }
});