
/**
 * Ugy vált nyelvet hogy felküldi az aktuális url csak épp lecseréli
 * a langcode paramétert vagy ha az nincs benne akkor hozzáadja
 * @param langcode
 * @param doLocationReplace
 */
function changeLanguage(langcode, doLocationReplace)
{
	var paramDelimiter = document.location.search == '' ? '?' : '&';
	var url = document.location.toString();

	var lngParamIndex = url.indexOf("langcode=");
	if(lngParamIndex == -1)
	{
		// az url-ekben lehet # anchor miatt is, erre is figyelni kell!
		var anchorStartIndex = url.indexOf("#");
		if(anchorStartIndex == -1)
		{
			// nincs benne anchor! sim�n a v�g�re �runk
			url += paramDelimiter + "langcode=" + langcode;
		}
		else
		{
			// van benne anchor!
			var newurl = url.substring(0, anchorStartIndex);
			newurl += paramDelimiter + "langcode=" + langcode;
			newurl += url.substring(anchorStartIndex);
			url = newurl;
		}

	}
	else
	{
		// csak kicser�lj�k az "editlang" �rt�k�t...
		var paramEndsIndex = url.indexOf("&", lngParamIndex);
		var newurl = url.substring(0, lngParamIndex + "langcode=".length) + langcode;
		if(paramEndsIndex != -1)
			newurl += url.substring(paramEndsIndex);
		url = newurl;
	}
	
	if(doLocationReplace)
		document.location.replace(url);
	else
		document.location.href = url;
}


/**
 * A body onload-jára van kötve. Ha akarsz saját onload funkciókat akkor csinálj egy
 * pageLoaded() függvényt, ezt érzkelni fogja és meghívja!
 */
function _pageLoaded()
{
	if(typeof pageLoaded == "function")
		pageLoaded();
}

/**
 * A body onresize-jára van kötve. Ha akarsz saját onresize funkciókat akkor csinálj egy
 * pageResized() függvényt, ezt érzkelni fogja és meghívja!
 */
function _pageResized()
{
	if(typeof pageResized == "function")
		pageResized();
}

 
 /*---------------------------------------------------
 popup support
--------------------------------------------------*/

//nyitott greybox popup id-jének nyilvántartása
var _openedGreyboxPageId = null;

//ennek hamarabb kell lennie mint az openPopupPage()-nek különben a greybox callback
//nem fog futni bezárásra IE alatt. Arrrggghhh!
function _greyboxPopupClosed()
{
	//alert("id: "+openedGreyboxPageId);
	setTimeout("_greyboxPopupReallyClosed()", GB_POPUP_CLOSE_TIME);
}
function _greyboxPopupReallyClosed()
{
	_popupPageClosed(_openedGreyboxPageId);
	_openedGreyboxPageId = null;
}

//ha ez true mire a _popupPageClosed() lefut, akkor az oldal újratölti majd magát
var refreshPageContent = false;
var refreshPageContentUrl = null;

//popup oldal megnyitása
function openPopupPage(pageId, encodedExtraIniParamsStr, paramsToAppendStr)
{
	// popupPageInfo
	var popupPageInfo = popupPageInfos[pageId];
	if(popupPageInfo)
	{
		// megvan az info blokk!
		
		// nyitva mar?
		if(openedPopups[pageId])
		{
			//alert(popupAlreadyOpenedMsg);
		}
		else
		{
			var type = popupPageInfo['type'];
			var width = popupPageInfo['iniParams']['width'];
			if(!width)
				width = 640;
			var height = popupPageInfo['iniParams']['height'];
			if(!height)
				height = 480;

			var fullWidth = getViewportWidth();
			var fullHeight = getViewportHeight();
			
			// %-os width/height kezelés jön!
			var percentIndex = (""+width).indexOf("%");
			if(percentIndex >= 0)
			{
				// van benne %
				var percent = parseInt(width.substring(0, percentIndex));
				percent /= 100;
				width = Math.round(fullWidth * percent);
			}
			else
				width = parseInt(width);
			var percentIndex = (""+height).indexOf("%");
			if(percentIndex >= 0)
			{
				// van benne %
				var percent = parseInt(height.substring(0, percentIndex));
				percent /= 100;
				height = Math.round(fullHeight * percent);
			}
			else
				height = parseInt(height);
			// maximalis meretre figyelunk!
			if(type == "greybox")
			{
				if(width > fullWidth)
					width = fullWidth - 20;
				if(height > fullHeight)
					height = fullHeight - 20;
			}
			else if(type == "normal")
			{
				if(width > fullWidth)
					width = fullWidth - 20;
				if(height > fullHeight)
					height = fullHeight - 20;
			}
			
			var url = openPopupUrlTemplate;
			url = url.replace("<pageId>", pageId);
			if(encodedExtraIniParamsStr == undefined)
				encodedExtraIniParamsStr = '';
			url = url.replace("<encodedExtraIniParams>", encodedExtraIniParamsStr);
			if(paramsToAppendStr == undefined)
				paramsToAppendStr = '';
			//paramsToAppendStr += "rw="+width+"&rh="+height;
			if(paramsToAppendStr.length > 0)
				url += "&" + paramsToAppendStr;
			//alert(url);

			if(type == "greybox")
			{
				_openedGreyboxPageId = pageId;
				
				var title = popupPageInfo['iniParams']['title'];
				GB_showCenter(title, url, height, width, _greyboxPopupClosed);
				//GB_showCenter(title, url, height, width);
				
				openedPopups[pageId] = true;
			}
			else if(type == "normal")
			{
				var props = "width="+width+",height="+height+",status=no,menubar=no,scrollbars=auto,resizable=yes,personalbar=no,toolbar=no,fullscreen=no";
				var handle = window.open(url, "_blank", props);
				
				openedPopups[pageId] = handle;
			}
		}
	}
	else
	{
		alert("openPopupPage(): there is no PopupPageInfo defined for pageId="+pageId);
	}

}


//a szerver nyugtázta h megkapta a popup bezárását tutira!
function _popupClosedAcknowledged(originalRequest)
{
	if(refreshPageContent)
	{
		//alert("refreshing content - as requested!");
		refreshPageContent = false;
		if(typeof reloadPage == "function") {
			reloadPage();
		} else {
			if(refreshPageContentUrl == null) {
				// csak frissulunk
				location.reload(true);
			} else {
				// url-re megyunk
				location.href = refreshPageContentUrl;
			}
		}
	}
}

/**
* Callback, az ablak bezáródott. Ha van popupPageClosed() js függvény definiálva akkor
* azt is meghivja.
* Ha van reloadPage() függvényed definiálva és a popup reload-ot kért, akkor az fog futni!
* 
* @param pageId
*/
function _popupPageClosed(pageId)
{
	//alert(pageId + " page closed!");
	
	url = popupClosedUrlTemplate;
	url = url.replace("<pageId>", pageId);
	//alert(url);
	
	// elmegy a req a szerverre h az is tudja h becsukva...
	if(refreshPageContent)
		var req = new Ajax.Request(url, {method: 'get', onComplete: _popupClosedAcknowledged});
	else
		var req = new Ajax.Request(url, {method: 'get'});
	
	openedPopups[pageId] = false;

	if(typeof popupPageClosed == "function")
		popupPageClosed(pageId);
}



