/**
 * Luotu: 5.5.2008 Marko Behm
 * Tarvitsee toimiakseen:
 * - prototype.js
 * - ajax.js
 * - ajax-dynamic-content.js
 * - css-tyylejä alla luotaville diveille
 *
 * Käyttöesimerkki:
 * openContent('{$www_base}ajax/popup/language','200','100','10%',1);
*/

function openContent(action,width,height,margintop){
	Stamp = new Date();
	var tim = Stamp.getHours()+'-'+Stamp.getMinutes()+'-'+Stamp.getSeconds();

	if (!$('black_overlay')){									// Varjoalue luodaan body-osan alkuun
		var main = document.body;
		var div_popup_overlay = document.createElement('DIV');
		var d_height = getDocumentHeight();

		main.insertBefore(div_popup_overlay,main.firstChild);
		div_popup_overlay.id = 'black_overlay';
		$('black_overlay').style.display = 'block';
		$('black_overlay').onclick = function(){closeMe("");}	// Sulkee popupin, jos käyttäjä klikkaa varjoaluetta

		if (d_height > 0)
			$('black_overlay').style.height = d_height;
	}

	if (!$('popup_holder')){									// Popup_holder asemoi popupin css:llä
		var main = document.body;
		var div_popup_holder = document.createElement('DIV');
		main.insertBefore(div_popup_holder,main.firstChild);
		div_popup_holder.id = 'popup_holder';

		refreshHeight('popup_holder');

		$('popup_holder').onclick = function(e) {
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if (clickObj == 'popup_holder') {
				closeMe('');									// Sulkee popupin, jos käyttäjä klikkaa popup-holderia
			}
		}
	}

	if (!$('div_popup')){										// Varsinainen popup, jonka sisältö ladataan ajaxilla
		var div_popup = document.createElement('DIV');
		$('popup_holder').appendChild(div_popup);
		div_popup.id = 'div_popup';
		$('div_popup').style.width = width;
		$('div_popup').style.height = height;

		if (margintop)
			$('div_popup').style.marginTop = margintop;
	}


	if (action.indexOf('/-/') < 1){								// Muokataan ajaxille lähtevää requestia. Huomioidaan su3-parametrit
		if (action.charAt(action.length-1) == '/'){
			action = action+'-/';
		}
		else
			action = action+'/-/';
	}
	else if (action.charAt(action.length-1) != '/'){
		action = action+'/';
	}

	action = action+'time/'+tim;								// Lisätään urliin dummy-parametri, jotta selaimet eivät onnistu kutsun cacheamisessa

	if(arguments[4])
		alert(action);											// Debug näyttää ajettavan urlin

//	$('div_popup').innerHTML = '<div style="background-color:white; color:#555555; padding:10px; border:1px solid:#555555;">Ladataan...</div>';
	ajax_loadContent('div_popup',action);						// Ladataan sisältö ajax-kutsulla

	setTimeout('refreshHeight("black_overlay");',1000);			// Odotetaan, jotta sisältö asettuu paikalleen, ja päivitetään varjon pituutta
}

/* Sulkee popupin */
function closeMe(href){
	var startWith = 0;
	fadeOut(startWith,href);
}

/* Palauttaa selainikkunan korkeuden */
function getBrowserHeight(){
	var height = 0;
	if (window.innerHeight)
		height = window.innerHeight;
	else if (document.body.clientHeight)
		height = document.body.clientHeight;

	return height;
}

/* Himmentää popupin, poistaa sen ja ohjaa hrefiin tarvittaessa */
function fadeOut(opacity,href){

	if (opacity > 0){
		var addition = 1.5;
		var op  = opacity-addition;
		var Obj = $('black_overlay');
		var Obj2 = $('popup_holder');

		Obj.style.opacity = op/10;
		Obj.style.filter = 'alpha(opacity=' + op*10 + ')';

		Obj2.style.opacity = op/10;
		Obj2.style.filter = 'alpha(opacity=' + op*10 + ')';

		setTimeout("fadeOut("+op+",'"+href+"')",10);
	}
	else{
		document.body.removeChild($('black_overlay'));
		document.body.removeChild($('popup_holder'));

		if (href)
			window.location.href = href;
	}
}

/* Hakee sivun sisällön korkeuden. Huomioi IE:n ja Firefoxin eroavuudet. */
function getDocumentHeight(){
	var ret = 0;

	if (document.body.scrollHeight)
		ret = document.body.scrollHeight;
	else if (document.height)
		ret = document.height;

	return ret;
}

/* Päivittää annetun elementin korkeudeksi sivusisällön korkeuden */
function refreshHeight(id){
	if ($(id))
		$(id).style.height = getDocumentHeight()+'px';
}