function openDoc(options)
{
	try
	{
		htm();
	}
	catch(err) {}

	__ex_openDoc(options)

}



function __ex_openDoc(options)
{
	options=options||{};
	options.evalScripts = options.evalScripts || true;
	options.evalResponse = options.evalResponse || false;
	options.method = options.method || 'post';
	options.ws_name = options.ws_name || 'ws_main';
	options.script = options.script || false;
	options.loadEvent = options.loadEvent || 'wait';
	options.img = options.img || img_wait;
	options.timout = options.timout || 0;
	options.onComplete = options.onComplete || null;
	options.bgblock = options.bgblock || false;

	if(!options.script)
	{
		alert("Erro: O script não está defenido.");
		return false;
	}

	showLoading(options.loadEvent, options.img);

	if(options.params)
	{
		var myForm = options.params
		options.params = "p="+options.script+"&ws="+options.ws_name;
		for (var a=0; a<myForm.length; a++)
			options.params += addElementToURL(myForm.elements[a]);
	}else options.params = "p="+options.script+"&ws="+options.ws_name;

	var ws_update = $(options.ws_name) || false;
	var AjaxRequest =new Ajax('pageloader.php', {
		data: options.params,
		method: options.method,
		update: ws_update,
		evalScripts: options.evalScripts,
		evalResponse: options.evalResponse,
		onComplete: function(response){
			if(options.bgblock)
				setTimeout("hideLoading(1)",options.timout);
			else
				setTimeout("hideLoading(0)",options.timout);
			Debugger(response , options);
			eval(options.onComplete);
		},
		onFailure: function() { alert('Ocorreu um erro ao tentar aceder!');}
	});

	AjaxRequest.request();
}

function Debugger(response , options)
{
	if ($('debug'))
	{
		//$('debug').makeDraggable({snap: 25});
		$('debug_params').setHTML("ws_name: ("+options.ws_name+" | "+$(options.ws_name)+")\n<br />Params: ("+options.params+")\n<br />");
		$('debug_html').setHTML("<textarea name=\"html\" cols=\"50\" rows=\"6\">"+response+"</textarea>");
		$('debug_response').setHTML("Response: ("+response+")\n<br />");
		//alert("Params:\n ("+options.params+")");
	}
}

function getUpdateDiv(ws_name)
{
	var wnd = window;
	//procura do elemento em todas as frames
	while (!wnd.document.getElementById(ws_name) && wnd.parent && wnd.parent != wnd)
		wnd = wnd.parent;

	myDoc = wnd.document;

	 return(myDoc.getElementById(ws_name));
}

function addmsgWait(loadEvent, image) {

	var img = image || img_wait;
	var doc = '';
	try { msg = msgLoad[loadEvent]}
	catch (e) { msg = 'Carregando.'};
	if (!document.getElementById('waitDIV'))
	{
		var objBody = document.getElementsByTagName('body').item(0);
		var objDIV = document.createElement("div");
		objDIV.setAttribute('id','waitDIV');
		objDIV.setAttribute('class','waitDIV');
		objDIV.style.top = (window.getScrollHeight() - 60)+ 'px';
		doc+='<table border="0" cellspacing="0" cellpadding="0" class="wait_table">';
    doc+='<tr><td colspan="2" width="1" height="5px"></td></tr>';
    doc+='<tr><td class="wait_msg" colspan="2" align="left"><img id="imgLoad" src="'+image.src+'" align="absmiddle" />&nbsp;&nbsp;&nbsp;'+msg+'</td></tr>';
    doc+='<tr><td colspan="2" width="1px" height="5px"></td></tr>';
    doc+='</table>';
		objDIV.innerHTML=doc;
		objBody.insertBefore(objDIV, objBody.firstChild);
	}
}

function showLoading(loadEvent, image)
{
	addFullTransparentDIV();
	addmsgWait(loadEvent, image);
	showMsgDialog({fadeTime:100});
}

function hideLoading(bgblock)
{
	if(bgblock)
		removeObj('waitDIV');
	else
		hideMsgDialog({destroyObjects:true,fadeTime:100});
}
