/* 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(strParamNumber, rel_root){

    strParamName = parseInt(strParamNumber);
    var returnVal = '';
    var qString = null;
    var splitChar = '';

    if ($(this).attr("nodeName")=="#document") {

      if(window.location.pathname.indexOf('.') != -1) {
        if(window.location.search.indexOf('=') != -1) {
          search_pieces = window.location.search.split('=');
          search_string = search_pieces[1];
          if(search_string != '') {
            pezzi = search_string.split('/');
            for(var i = 0; i < pezzi.length; i++) {
              if(i == (strParamName*2+1)) {
                returnVal = pezzi[i];
                break;
              }
            }
          } else {
            returnVal = '';
          }
        } else {
          returnVal = '';
        }
      } else {
        if(typeof(rel_root) != 'undefined') {
          root = rel_root;
        } else {
          root = '';
        }

        log('Root:'+root);

        url_to_search = window.location.pathname.replace(root, '');

        log('url_to_search:'+url_to_search);

        search_pieces = url_to_search.slice(1, -1).split('/');
        for(var i = 0; i < search_pieces.length; i++) {
          if(i == (strParamName+1)) {
            returnVal = search_pieces[i];
            break;
          }
        }
      }
    }

    log('Sezione:'+returnVal);

    if (typeof(returnVal) == 'undefined') {
      return null;
    } else if (returnVal.length==0) {
             return null;
    } else if (returnVal.length==1) {
             return returnVal[0];
    } else return returnVal;
  }
});
