var dialog_enableDebug = false;

function openDialog() {
	debugPrint("openDialog","dialog");
	el = document.getElementById('hiddenDialog');
	el.style.display = 'block';
	positionDialog();
}

function closeDialog() {
	el = document.getElementById('hiddenDialog');
	el.style.display= 'none';	// ja piiloon
	el.innerHTML = "";	// putsataan turha koodi hidastamasta sivua
}

function loadDialog(url, callback) {
	var slicePos = url.indexOf('?');
	var postData = url.substr(slicePos+1);
	var url = url.substr(0,slicePos);

	debugPrint("loadDialog: "+postData,"dialog");

	var dialogrequest = createXMLHttpRequest();
	dialogrequest.open("POST", url, true);

	dialogrequest.onreadystatechange=function() {
		if (dialogrequest.readyState==4) {
			debugPrint("loadDialog: dialog loaded","dialog");
			var el = document.getElementById('hiddenDialog');

			var regString = "<!-- <dialog> -->([\\n]|.)*<!-- <\\/dialog> -->";
			var rx = new RegExp(regString, "mig");
			var match = rx.exec(dialogrequest.responseText);
			if(match) {
				debugPrint("loadDialog: updating dynamic dialog innerHTML","dialog");
				el.innerHTML = match[0];
				openDialog();
				if(callback) callback();
			} else {
				alert("loadDialog: xmlhttprequest returned no dialog-content. What it returned was:\n"+dialogrequest.responseText);
			}
		}
	}
	// vältetään cachetus
	dialogrequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	dialogrequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	dialogrequest.send(postData);

	debugPrint("loadDialog: sent XMLHttpRequest","dialog");

	return;
}

function dialog_focusFirst() {
	el = document.getElementById('hiddenDialog');
	if(el) {
		var inputs = document.getElementsByName("dialogProp");
		if(inputs) inputs[0].focus();
	}
}

// expressionit css-styleen jotka pitävät dialogin oikeassa kohdassa.
function centerDialogY() {
	el = document.getElementById("hiddenDialog");
	return Math.floor(document.body.scrollTop + (document.body.clientHeight - el.offsetHeight) / 2);
}
function centerDialogX() {
	el = document.getElementById("hiddenDialog");
	var xpos = Math.floor(document.body.scrollLeft + (document.body.clientWidth - el.offsetWidth) / 2);
	// jos löytyy jompikumpi seuraavista elementeistä keskitetään siihen, muuten keskitetään bodyyn.
	baseEl = document.getElementById("editor_body");
	if(!baseEl) baseEl = document.getElementById("editor_short_body");
	if(baseEl) {
		xpos = Math.floor(getOffsetLeft(baseEl) + (baseEl.offsetWidth/2) - (el.offsetWidth/2));
	}

	baseEl = document.getElementById("pageInfo");
	if(baseEl) {
		xpos = Math.floor(getOffsetLeft(baseEl));
	}

	return xpos;
}

function positionDialog() {
	el = document.getElementById("hiddenDialog");
	el.style.left = centerDialogX();
	el.style.top = centerDialogY();
	setTimeout("positionDialog()", 10);
}

// kertoo onko dialogin DIV näkyvissä.
function isDialogVisible() {
	var el = document.getElementById('hiddenDialog');

	if(el) {
		if(el.style) {
			if(el.style.display == "block") {
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	} else {
		return false;
	}
}

