/* Copyright (c) 2006-2007 Mathias Bank (http://www.mathias-bank.de) 
  * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)  
  * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 
  *  
  * Version 2.1 
  *  
  * Thanks to  
  * Hinnerk Ruemenapf - http://hinnerk.ruemenapf.de/ for bug reporting and fixing. 
  * Tom Leonard for some improvements 
  *  
  */ 
 jQuery.fn.extend({ 
 /** 
 * Returns get parameters. 
 * 
 * If the desired param does not exist, null will be returned 
 * 
 * To get the document params: 
 * @example value = $(document).getUrlParam("paramName"); 
 *  
 * To get the params of a html-attribut (uses src attribute) 
 * @example value = $('#imgLink').getUrlParam("paramName"); 
 */  
 getUrlParam: function(strParamName){ 
           strParamName = escape(unescape(strParamName)); 
            
           var returnVal = new Array(); 
           var qString = null; 
            
           if ($(this).attr("nodeName")=="#document") { 
                 //document-handler 
                  
                 if (window.location.search.search(strParamName) > -1 ){ 
                          
                         qString = window.location.search.substr(1,window.location.search.length).split("&"); 
                 } 
                          
           } else if ($(this).attr("src")!="undefined") { 
                  
                 var strHref = $(this).attr("src") 
                 if ( strHref.indexOf("?") > -1 ){ 
                 var strQueryString = strHref.substr(strHref.indexOf("?")+1); 
                         qString = strQueryString.split("&"); 
                 } 
           } else if ($(this).attr("href")!="undefined") { 
                  
                 var strHref = $(this).attr("href") 
                 if ( strHref.indexOf("?") > -1 ){ 
                 var strQueryString = strHref.substr(strHref.indexOf("?")+1); 
                         qString = strQueryString.split("&"); 
                 } 
           } else { 
                 return null; 
           } 
                  
            
           if (qString==null) return null; 
           for (var i = 0; i < qString.length; i++) { 
               var index = qString[i].indexOf("="); 
               if (index >= 0) { 
                   var strCurrentParamName = escape(unescape(qString[i].substr(0, index))); 
                   if (strCurrentParamName == strParamName) { 
                       returnVal.push(qString[i].substr(index + 1)); 
                   } 
               } 
           } 
  
           if (returnVal.length==0) return null; 
           else if (returnVal.length==1) return returnVal[0]; 
           else return returnVal; 
         } 
 }); 
 
