/*
 * @author silent
 */

function getGETparam(_get_str, _param){
	if(typeof _get_str == 'undefined') return;
  	var pattern = "(?:&)?"+_param+"=([^&]*)&?";
	var re = new RegExp(pattern);
	if(re.test(_get_str)){
    	return decodeURI(RegExp["$1"]);
	}else{
    	return null;
	}	
}

function setGETstring(_get, _param, _val){
	var re_param = /^\w+$/;
	if(typeof _get == 'undefined' || _get == null) _get = '';
	if(typeof _val == 'undefined' || _val == null) _val = '';
	if(!re_param.test(_param)) return _get;
	
	_get = _get.replace('?', '');
 	var re = /^\S+=\S*/;
	var params = _get.split('&');
	if(!re.test(_get) || params.length == 0) return '?'+_param+'='+encodeURI(_val);
	var is_new_param = true;
	var parsed = new Array();
	var n = 0;
	for(var i = 0; i < params.length; i++){
		if(!re.test(params[i])) continue;
		_tmp = params[i].split('=');
		if(_param == _tmp[0]) is_new_param = false; 
		parsed[n] = _tmp[0]+'='+(_param == _tmp[0] ? encodeURI(_val) : (typeof _tmp[1] != 'undefined' ? _tmp[1] : ''));
		n++;
	}
	if(is_new_param == true) parsed[n] = _param+'='+encodeURI(_val);
	
	_get = '?'+parsed.join('&');
	return _get;
}


function substituteGETParameter(param, val){
	var url;
	if(param != ''){
		url = location.protocol+'//'+location.hostname+location.pathname+setGETstring(location.search, param, val);
	}else{
		url = location.protocol+'//'+location.hostname+location.pathname+'?'+location.search;
	}
	return url;
}
