// JavaScript Document
var AjaxQueue = {
	batchSize: 1, //No.of simultaneous AJAX requests allowed, Default : 1
	urlQueue: [], //Request URLs will be pushed into this array
	elementsQueue: [], //Element IDs of elements to be updated on completion of a request ( as in Ajax.Updater )
	optionsQueue: [], //Request options will be pushed into this array
	setBatchSize: function(bSize){ //Method to set a different batch size. Recommended: Set batchSize before making requests
		this.batchSize = bSize;
	},
	push: function(url, options, elementID){ //Push the request in the queue. elementID is optional and required only for Ajax.Updater calls
		this.urlQueue.push(url);
		this.optionsQueue.push(options);
		if(elementID!=null){
			this.elementsQueue.push(elementID);
		} else {
			this.elementsQueue.push("NOTSPECIFIED");
		}

		this._processNext(elementID);
	},
	_processNext: function(elementID) { // Method for processing the requests in the queue. Private method. Don't call it explicitly
					$$('textarea').each(function(item) {
						Event.observe(item.id, 'keydown', function() {
    						resizeTA(item.id)
    					});
						Event.observe(item.id, 'click', function() {
    						resizeTA(item.id)
    					});
						if($('edit_agenda')){
						DPC_autoInit();
						}
						resizeTA(item.id);
					});	
	if($('enviar')){
		if($('enviar').value=='a enviar'){
			initialiseWebWizRTE();
			Event.observe($('WebWizRTE').contentWindow.document, 'paste', function() {
				setTimeout('pasteWordDoc()', 100);
    			setTimeout(function(){resizeIF($('WebWizRTE'))}, 200);
	  		});
	  		Event.observe($('WebWizRTE').contentWindow.document, 'keydown', function() {
    			resizeIF($('WebWizRTE'));
    		});
 			Event.observe($('WebWizRTE').contentWindow.document, 'click', function() {
    			resizeIF($('WebWizRTE'));
    		});
			resizeIF($('WebWizRTE'));
		}
	}
		
		if(Ajax.activeRequestCount < AjaxQueue.batchSize) // Check if the currently processing request count is less than batch size
		{
			if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") { //Check if an elementID was specified
				// Call Ajax.Request if no ElementID specified
				//Call Ajax.Request on the first item in the queue and remove it from the queue
				new Ajax.Request(AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift()); 

				var junk = AjaxQueue.elementsQueue.shift();
			} else {
				// Call Ajax.Updater if an ElementID was specified.
				//Call Ajax.Updater on the first item in the queue and remove it from the queue
				new Ajax.Updater(AjaxQueue.elementsQueue.shift(), AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
			}
		}
	}
};
Ajax.Responders.register({
  //Call AjaxQueue._processNext on completion ( success / failure) of any AJAX call.
  onComplete: AjaxQueue._processNext
});

/************* SYNTAX ***************
AjaxQueue.setBatchSize(size);

AjaxQueue.push(URL , OPTIONS, [ElementID]);

************** USAGE ***************
AjaxQueue.setBatchSize(4);
AjaxQueue.push("http://www.testingqueue.com/process/",{onSucess: funcSuccess, onfailure: funcFailure});
AjaxQueue.push("http://www.testingqueue.com/process1/",{onSucess: funcSuccess1, onfailure: funcFailure1}, "myDiv");
AjaxQueue.push("http://www.testingqueue.com/process2/",{onSucess: funcSuccess2, onfailure: funcFailure2});
AjaxQueue.push("http://www.testingqueue.com/process3/",{onSucess: funcSuccess3, onfailure: funcFailure3});
AjaxQueue.push("http://www.testingqueue.com/process4/",{onSucess: funcSuccess4, onfailure: funcFailure4});
AjaxQueue.push("http://www.testingqueue.com/process5/",{onSucess: funcSuccess5, onfailure: funcFailure5});
**********************************/
function submitForm(form, url, id) {

var form = $(form)
				pop_efectuado();
        /*
        usa método request() da classe Form da prototype, que serializa os campos
        do formulário e submete (por POST como default) para a action especificada no form
        */
			if ($('WebWizRTE')){
				if($('texto')){
					$('texto').value = $('WebWizRTE').contentWindow.document.body.innerHTML;
				}
				if($('descricao')){
					$('descricao').value = $('WebWizRTE').contentWindow.document.body.innerHTML;
				}
				if($('conteudo')){
					$('conteudo').value = $('WebWizRTE').contentWindow.document.body.innerHTML;
				}
			}
				/*if (id=='menu'){
					cancelEdit();
				}*/
        form.request({
          onComplete: function(transport){
              /*
            se o retorno for diferente de -1, entende-se que não houve problemas
            */
          	if(transport.responseText!=-1){
				//if (document[form.id].enviar.value=='a actualizar'){alert(document[form.id].enviar.value)}
				if (document[form.id].enviar.value=='a actualizar'){
 					if(form.id=='edit_agenda'){//agenda
						AjaxQueue.push('col1agenda.asp', '', 'Col1');
						DPC_autoInit();
					}
					else if(form.id=='edit_links'){//links
 						AjaxQueue.push('col3_links.asp', '', 'links');
						$('Col2').innerHTML=transport.responseText;
					}
					else if(form.id=='edit_tipos'){//tipos noticias
						$('Col2').innerHTML=transport.responseText;
 						AjaxQueue.push('noticias_tipos_inc.asp', '', 'tipos');
					}
					else if(form.id=='edit_tipos_agenda'){//tipos agenda
						if(form.action.indexOf('sim')!= -1){
							location.reload();
						}
						else{
							$('Col2').innerHTML=transport.responseText;
 							AjaxQueue.push('agenda_tipos_inc.asp', '', 'tipos_agenda');
						}
					}
					else if(form.id=='edit_locais'){//locais
						if(form.action.indexOf('sim')!= -1){
							location.reload();
						}
						else{
							$('Col2').innerHTML=transport.responseText;
 							AjaxQueue.push('../agenda_locais.asp', '', 'locais');
						}
					}
					else if(form.id=='edit_issuu'){//issuu
						if(form.action.indexOf('sim')!= -1){
							location.reload();
						}
						else{
							$('Col2').innerHTML=transport.responseText;
						}
					}
					else{//noticias
						AjaxQueue.push('col1.asp', '', 'Col1');
					}
					
					if ($('destaque')){//destaque da agenda
						if ($('destaque').checked==true){
 							AjaxQueue.push('destaques_agenda.asp', '', 'Destaques3');
						}
					}
					
					if ($('destaque1')){
						if ($('destaque1').checked==true){
 							AjaxQueue.push('destaques1.asp', '', 'Destaques1');
						}
					}
					
					if ($('destaque2')){
						if ($('destaque2').checked==true){
 							AjaxQueue.push('destaques2.asp', '', 'Destaques2');
						}
					}
					$('enviar').value='actualizar';
				}
				else{
					
					$(id).innerHTML=transport.responseText;
					
					if ($('destaque1')){
						if ($('destaque1').checked==true){
 							AjaxQueue.push('destaques1.asp', '', 'Destaques1');
						}
					}
					if ($('destaque2')){
						if ($('destaque2').checked==true){
 							AjaxQueue.push('destaques2.asp', '', 'Destaques2');
						}
					}
						
					if(form.id=='edit_agenda'){//agenda
						AjaxQueue.push('col1agenda.asp', '', 'Col1');
						DPC_autoInit();
					}
					else if(form.id=='edit_noticias'){//noticias
						AjaxQueue.push('col1.asp', '', 'Col1');
					}
					
					$$('textarea').each(function(item) {
						Event.observe(item.id, 'keydown', function() {
    						resizeTA(item.id);
    					});
						Event.observe(item.id, 'click', function() {
    						resizeTA(item.id);
    					});
						resizeTA(item.id);
					});
					
					if($('edit_noticias')||$('edit_agenda')||$('formPaginas')){
						initialiseWebWizRTE();
						Event.observe($('WebWizRTE').contentWindow.document, 'paste', function() {
							setTimeout('pasteWordDoc()', 100);
    						setTimeout(function(){resizeIF($('WebWizRTE'))}, 200);
	  					});
						Event.observe($('WebWizRTE').contentWindow.document, 'keydown', function() {
    						resizeIF($('WebWizRTE'));
    					});
						Event.observe($('WebWizRTE').contentWindow.document, 'click', function() {
    						resizeIF($('WebWizRTE'));
    					});
						resizeIF($('WebWizRTE'));
					}
				}
			}
        }, 
		
		onfailure: function(){
			alert('Ocorreu um erro!!!');
			}
        });
				setTimeout("$('efectuado').innerHTML='<center>Operação terminada!!!</center>'", 250);
				setTimeout("pop_efectuado_end()", 500);
		
   return false;
}
function submitFormPubli(form, url, id) {

var form = $(form)
        /*
        usa método request() da classe Form da prototype, que serializa os campos
        do formulário e submete (por POST como default) para a action especificada no form
        */
				pop_efectuado();
        form.request({
          onComplete: function(transport){
              /*
            se o retorno for diferente de -1, entende-se que não houve problemas, então apaga-se
            os campos do formulário usando o método reset() da classe Form
            */
          	if(transport.responseText!=-1){
				$('efectuado').innerHTML='<center>Operação terminada!!!</center>';
				$(id).innerHTML=transport.responseText;
				AjaxQueue.setBatchSize(4);
				AjaxQueue.push('pub1.asp', '', 'pub1');
				AjaxQueue.push('pub2.asp', '', 'pub2');
				AjaxQueue.push('pub3.asp', '', 'pub3');
				AjaxQueue.push('pub4.asp', '', 'pub4');
			}
        }, 
		
		onfailure: function(){
			alert('Ocorreu um erro!!!');
			}
        });
		
				setTimeout("pop_efectuado_end()", 500)
   return false;
}
function submitFormUsers(form, url, id) {

var form = $(form)

	if($('formuser')){
		if (form.utilizador.value == ""){
	    	alert("Preencha o campo Utilizador por favor!!!");
			form.utilizador.select();
			form.utilizador.focus();
			return false;
		}
		else if (form.password.value == ""){
	    	alert("Preencha o campo Password por favor!!!");
			form.password.select();
			form.password.focus();
			return false;
		}
		else if (form.password.value.length < "6"){
	    	alert("A Password deve ter no minimo 6 caracteres!!!");
			form.password.select();
			form.password.focus();
			return false;
		}
		else if (form.password2 && form.password2.value != form.password.value){
	    	alert("As Passwords não são iguais!!!");
			form.password2.select();
			form.password2.focus();
			return false;
		}
	}
	//else{
	//form.btnEvents.disabled = true;
	//form.btnEvents.value = "Aguarde por favor...";
        /*
        usa método request() da classe Form da prototype, que serializa os campos
        do formulário e submete (por POST como default) para a action especificada no form
        */
				pop_efectuado();
        form.request({
          onComplete: function(transport){
              /*
            se o retorno for diferente de -1, entende-se que não houve problemas, então apaga-se
            os campos do formulário usando o método reset() da classe Form
            */
          	if(transport.responseText!=-1){
				$('efectuado').innerHTML='<center>Operação terminada!!!</center>';
				$(id).innerHTML=transport.responseText;
			}
        }, 
		
		onfailure: function(){
			alert('Ocorreu um erro!!!');
			}
        });
		
				setTimeout("pop_efectuado_end()", 500)
	//}
   return false;
}

function submitFormPesquisa(form, url, id) {

var form = $(form)
        /*
        usa método request() da classe Form da prototype, que serializa os campos
        do formulário e submete (por POST como default) para a action especificada no form
        */
				//pop_efectuado();
        form.request({
          onComplete: function(transport){
              /*
            se o retorno for diferente de -1, entende-se que não houve problemas, então apaga-se
            os campos do formulário usando o método reset() da classe Form
            */
          	if(transport.responseText!=-1){
				$(id).innerHTML=transport.responseText;
			}
        }, 
		
		onfailure: function(){
			alert('Ocorreu um erro!!!');
			},
		evalScripts: true
        });
		
   return false;
}

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function pop_efectuado(){
	
var divw;
var divh;
var w = 200;
var h = 37;
		divw = document.documentElement.offsetWidth / 2;
		divh = document.documentElement.offsetHeight / 2;
	if(window.innerWidth){
		divw = window.innerWidth / 2;
		divh = window.innerHeight / 2;
	}

	var divBgh = document.documentElement.scrollHeight;
	var divTop = divh + GetScrollTop() - (h / 2);
	var divLeft = divw - (w / 2) ;

	var newdiv1 = document.createElement('div');
	newdiv1.setAttribute('id', 'blacktop');
	newdiv1.textAlign = "center";
	newdiv1.style.position = 'absolute';
	newdiv1.style.left = '0px';
	newdiv1.style.top = '0px';
	newdiv1.style.width = '100%';
	newdiv1.style.height = getDocHeight()+'px';
	newdiv1.style.background = 'url(../imagens/black-70.png)';
	newdiv1.style.zIndex = '9999999';

	var newdiv2 = document.createElement('div');
	newdiv2.setAttribute('id', 'efectuado');
	newdiv2.style.position = 'absolute';
	newdiv2.style.left = divLeft+'px';
	newdiv2.style.top = divTop+'px';
	newdiv2.style.width = w+'px';
	newdiv2.style.height = h+'px';
	newdiv2.style.fontFamily = 'arial';
	newdiv2.style.fontWeight = 'bold';
	newdiv2.style.color = '#FFF';
	newdiv2.style.paddingTop = '18px';
	newdiv2.style.background = 'url(../imagens/pop_efectuado_bg.png)';
	newdiv2.style.zIndex = '99999999';

/*if (Prototype.Browser.IE) {	
	document.documentElement.style.overflow='hidden';
}
else{
	document.body.style.overflow='hidden';
}*/
	document.body.appendChild(newdiv1);
	document.body.appendChild(newdiv2);
	newdiv2.innerHTML='<center>A processar...</center>';
}
function pop_efectuado_end(){
 	document.body.removeChild($('efectuado'));
 	document.body.removeChild($('blacktop'));
	//document.body.style.overflow='auto';
	//document.documentElement.style.overflow='auto';
}
function pop_login(url,wi,hi){
	
var divw;
var divh;
var w = wi;
var h = hi;

		divw = document.documentElement.offsetWidth / 2;
		divh = document.documentElement.offsetHeight / 2;
	if(window.innerWidth){
		divw = window.innerWidth / 2;
		divh = window.innerHeight / 2;
	}

	var divBgh = document.documentElement.scrollHeight;
	var divTop = divh - (h / 2);
	var divLeft = divw - (w / 2) ;

	var newdiv2Content = '<iframe id="login" frameborder ="0" src="../'+url+'.asp" style=" position: absolute; top: '+divTop+'px; left: '+divLeft+'px; overflow-y: hidden; width: '+w+'px; height: '+h+'px;"></iframe>';

	var newdiv1 = document.createElement('div');
	newdiv1.setAttribute('id', 'blacktop');
	newdiv1.textAlign = "center";
	newdiv1.style.position = 'absolute';
	newdiv1.style.left = '0px';
	newdiv1.style.top = '0px';
	newdiv1.style.width = '100%';
	newdiv1.style.height = getDocHeight()+'px';
	newdiv1.style.background = 'url(../imagens/black-70.png)';
	newdiv1.style.zIndex = '999999';

	var newdiv2 = document.createElement('div');
	newdiv2.setAttribute('id', 'backlogin');
	newdiv2.textAlign = "center";
	newdiv2.style.position = 'absolute';
	newdiv2.style.left = '0px';
	newdiv2.style.top = GetScrollTop()+'px';
	newdiv2.style.width = '100%';
	newdiv2.style.height = '100%';
	newdiv2.style.zIndex = '99999999';

	if (document.body) {	
		document.body.style.overflow='hidden';
	}
	else{
		document.documentElement.style.overflow='hidden';
	}
	
	document.body.appendChild(newdiv1);
	document.body.appendChild(newdiv2);
	newdiv2.innerHTML = newdiv2Content;
}

function pop_logout(){
	$('login').src='';
 	document.body.removeChild($('blacktop'));
 	document.body.removeChild($('backlogin'));
	if (document.body) {	
		document.body.style.overflow='auto';
	}
	else{
		document.documentElement.style.overflow='auto';
	}
}

function pop_video(video){
var divw;
var divh;
var w = 565;
var h = 350;
		divw = document.documentElement.offsetWidth / 2;
		divh = document.documentElement.offsetHeight / 2;
	if(window.innerWidth){
		divw = window.innerWidth / 2;
		divh = window.innerHeight / 2;
	}

	var divBgh = document.documentElement.scrollHeight;
	var divTop = divh - (h / 2) - 100;
	var divLeft = divw - (w / 2) ;

	var newdiv2Content = '<div style="text-align: right; position: absolute; top: '+(divTop-16)+'px; left: '+(divLeft+w-16)+'px; height:14px;"><a href="javascript:pop_video_off()" class="linkBranco texto16"><img src="../imagens/botaofechar.png" border="0" /></a></div><iframe id="iframe_video" onkeyup="pop_video_off();" style="position: absolute; top: '+divTop+'px; left: '+divLeft+'px; width: '+w+'px; height: '+h+'px" src="http://www.youtube.com/embed/'+video+'?rel=0" frameborder="0" allowfullscreen></iframe>';

	var newdiv1 = document.createElement('div');
	newdiv1.setAttribute('id', 'blacktop');
	newdiv1.textAlign = "center";
	newdiv1.style.position = 'absolute';
	newdiv1.style.left = '0px';
	newdiv1.style.top = '0px';
	newdiv1.style.width = '100%';
	newdiv1.style.height = getDocHeight()+'px';
	newdiv1.style.background = 'url(../imagens/black-70.png)';
	newdiv1.style.zIndex = '999999';

	var newdiv2 = document.createElement('div');
	newdiv2.setAttribute('id', 'backlogin');
	newdiv2.textAlign = "center";
	newdiv2.style.position = 'absolute';
	newdiv2.style.left = '0px';
	newdiv2.style.top = GetScrollTop()+'px';
	newdiv2.style.width = '100%';
	newdiv2.style.height = '100%';
	newdiv2.style.zIndex = '99999999';

	if (document.body) {	
		document.body.style.overflow='hidden';
	}
	else{
		document.documentElement.style.overflow='hidden';
	}
	
	document.body.appendChild(newdiv1);
	document.body.appendChild(newdiv2);
	newdiv2.innerHTML = newdiv2Content;
	$('iframe_video').focus();

}

function pop_video_off(){
	$('iframe_video').src='';
 	document.body.removeChild($('blacktop'));
 	document.body.removeChild($('backlogin'));
	if (document.body) {	
		document.body.style.overflow='auto';
	}
	else{
		document.documentElement.style.overflow='auto';
	}
}

function resetEditNoticias(){
	document.img.src='../img_noticias/'+document.edit_noticias.imgold.value;
	document.edit_noticias.img.value=document.edit_noticias.imgold.value;
	$('WebWizRTE').contentWindow.document.body.innerHTML = document.edit_noticias.texto.value;
	resizeIF($('WebWizRTE'));
}
function resetEditAgenda(){
	document.img.src='../img_agenda/'+document.edit_agenda.imgold.value;
	document.edit_agenda.img.value=document.edit_agenda.imgold.value;
	$('WebWizRTE').contentWindow.document.body.innerHTML = document.edit_agenda.descricao.value;
	resizeIF($('WebWizRTE'));
}

function onLoad(URL){
	AjaxQueue.setBatchSize(3);
	AjaxQueue.push('../cabecalho.asp','', 'cabecalho');
	AjaxQueue.push('../rodape.asp','', 'rodape');
	if(URL){
		AjaxQueue.push(URL+'.asp','', 'inicio');
	}
}

function supdater(){
	AjaxQueue.setBatchSize(3);
	AjaxQueue.push("../col1.asp",'', "Col1");
	AjaxQueue.push("../col2.asp",'', "Col2");
	AjaxQueue.push("../col3.asp",'', "Col3");
}

function pesquisaupdater(){
	AjaxQueue.setBatchSize(2);
	AjaxQueue.push("../col1.asp",'', "Col1");
	AjaxQueue.push("../col3.asp",'', "Col3");
}

function noticiasupdater(){
	AjaxQueue.setBatchSize(3);
	AjaxQueue.push("../col1.asp",'', "Col1");
	AjaxQueue.push("../col3.asp",'', "Col3");
	if(queryString('id')){
		AjaxQueue.push("noticias_inc.asp?id="+queryString('id'),'', "Col2");
		}
	else if(queryString('tipo')){
		AjaxQueue.push("noticias_inc.asp?tipo="+queryString('tipo'),'', "Col2");
		}
	else{
		Col2.innerHTML='<center><h1>A noticia que solicitou não se encontra na base de dados!!!</h1></center>';
		}
}

function agendaupdater(){
	AjaxQueue.setBatchSize(3);
	AjaxQueue.push("../col1agenda.asp",'', "Col1");
	AjaxQueue.push("../col3.asp",'', "Col3");
	if(queryString('mes')){
		AjaxQueue.push("agenda_inc.asp?mes="+queryString('mes'),'', "Col2");
	}
	else if(queryString('local')){
		AjaxQueue.push("agenda_inc.asp?local="+queryString('local'),'', "Col2");
	}
	else if(queryString('evento')){
		AjaxQueue.push("agenda_inc.asp?evento="+queryString('evento'),'', "Col2");
	}
	else{
		AjaxQueue.push("agenda_inc.asp?id="+queryString('id'),'', "Col2");
	}
}

function paginasupdater(){
	AjaxQueue.setBatchSize(3);
	AjaxQueue.push("../col1.asp",'', "Col1");
	AjaxQueue.push("col2.asp",'', "col2Main");
	AjaxQueue.push("../col3.asp",'', "Col3");
}

function edipdfupdater(){
	AjaxQueue.setBatchSize(3);
	AjaxQueue.push('../col1.asp','', 'Col1');
	AjaxQueue.push('../col3.asp','', "Col3");
	AjaxQueue.push('edicao_inc.asp','', 'Col2');
}

function contador(){
	new Ajax.PeriodicalUpdater('contador', 'contador.asp', {
  	method: 'get', frequency: 10, decay: 2
	});
	//AjaxQueue.push('contador', 'contador.asp', '');
	//setTimeout('contador()', 3000);
}
