function openFWDialog(page, width, height) {
	fwDialog.init(page, width, height, '');
}

function openFWDialogBottom(page, width, height, elementId) {
	fwDialog.init(page, width, height, elementId);
}

var fwDialog = {
    frame: null,
    parent: '',
    editor: null,
		
	init: function (page, width, height, elementId) {
		var body = document.getElementsByTagName('body')[0];
		var back = document.createElement('span');
		back.id = 'fwback';
		this.frame = document.createElement('iframe');
		this.frame.id = 'fwframe';
        this.frame.scrolling='no';
		this.frame.frameBorder = 'no';
		this.frame.src = page;
        this.frame.style.width = width+'px';
        this.frame.style.height = height+'px';
        var t = 0;
        if (elementId.length == 0) {
            t = (body.clientHeight - height) / 2;

            if (t > 100) t = 100;
        } else {
            var anchorElement = document.getElementById(elementId);
            t = anchorElement.offsetTop - height/2;
        }
        if (t < 0) t = 0;
        this.frame.style.top = t+'px';
        this.frame.style.left = (body.clientWidth - width) /2+'px';
		body.appendChild(this.frame);
    	body.appendChild(back);
	},
	
	setEditor: function(ed) {
		this.editor = ed;
	},
	
	closeEditor: function(ed) {
		if (ed) {
			ed.hide();
			ed.remove();
			ed = null;
		}
	},
	
	close: function() {
		if (this.editor != null) {
			closeEditor(this.editor);
		}
		var body = document.getElementsByTagName('body')[0];
		var back = document.getElementById('fwback');
		if (back != null){
			body.removeChild(back);
		}
		var frame = document.getElementById('fwframe');
		if (frame != null){
			body.removeChild(frame);
		}
	}

};

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return null;
	}
}

var req = null;


function submitForm (servlet, parameters, parent) {
    if (!req) req = getXmlHttpRequestObject();
    fwDialog.parent = parent;
	if (req && (req.readyState == 4 || req.readyState == 0)) {
		req.open("POST", servlet, true);
		req.onreadystatechange = this.handleSubmit;
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.setRequestHeader("Content-length", parameters.length);
		req.send(parameters);
	}
}

function handleSubmit() {
	if (req.readyState == 4) {
        if (req.status == 200) {
        	if (req.responseText.charAt(0)=='!') {        		
        		alert('Error occured during page creation:' + req.responseText.substring(1));
        		parent.location.reload();
        	} else {
        		parent.location.href=parent.location.href.replace(escape(fwDialog.parent), escape(req.responseText));
        	}
		}
	}
}
	
