function _setUrl(strNewParams, mode) {

		var strCurHref = window.location.href;
		if( mode == 2 ) {
			var strCurHref = window.opener.location.href;
		}
		var strNewHref = "";
		var strAddParams = "";
		var strScript = "";
		if ( strCurHref.indexOf("?") > -1 ){
		//gdy url zawiera '?'			

			strScript = strCurHref.substr(0,strCurHref.indexOf("?"));
			strCurParams = strCurHref.substr(strCurHref.indexOf("?")+1);
			
			if( strNewParams.indexOf("&") == 0 ) {
			//je�li na pocz�tku jest '&'
				strNewParams = strNewParams.substr(1);
			}
			else {
			//je�li na pocz�tku nie ma '&'			
				strNewParams = strNewParams;
			}			
			
			arrCurParams = strCurParams.split("&");
			arrNewParams = strNewParams.split("&");
			
			for ( var countNew = 0; countNew < arrNewParams.length; countNew++ ){				
				for ( var countCur = 0; countCur < arrCurParams.length; countCur++ ){				
						
					if( arrNewParams[countNew].split("=")[0] ==  arrCurParams[countCur].split("=")[0] ) {
					//je�li nazwy parametr�w s� takie same 
						arrCurParams[countCur] = arrNewParams[countNew];
						arrNewParams[countNew] = '';
						break;
					}
				}
				
				if( arrNewParams[countNew] != '' ) {
					strAddParams += '&' + arrNewParams[countNew];
				}				
			}

			strNewHref = strScript + '?' + arrCurParams.join("&") + strAddParams;
			
		}
		else {
		//gdy url nie zawiera '?'		
			if( strNewParams.indexOf("&") == 0 ) {	
			//je�li na pocz�tku jest '&'
				strNewHref = strCurHref + '?' + strNewParams.substr(1);
			}
			else {
			//je�li na pocz�tku nie ma '&'
				strNewHref = strCurHref + '?' + strNewParams;
			}			
		}
		
		switch(mode) {
			case 1:	
				return strNewHref;
				break;
			case 2:
				strNewHref.replace("&popup","");
				window.opener.location.href = strNewHref;
				break;
			default:					
				window.location.assign(strNewHref);				
		}
}

function setUrl(strNewParams) {
	_setUrl(strNewParams, 0);
}

function setUrlPopup(strNewParams) {
	return _setUrl(strNewParams, 1);
}

function setUrlParent(strNewParams) {
	_setUrl(strNewParams, 2);
}

