// JavaScript Document

/* Substitui o conteúdo de canvas por uma imagem de loading centralizada */
function loading(canvas){
	canvas.update('<table style="width: 100%; height: 100%; border-spacing: 0px; padding: 0px; text-align:center"><tr><td><img alt="loading..." src="site_images/loading.gif"></td></tr></table>');
}

/* Carrega informações de uma música. */
function musica_info(canvas_id, url, musica, tabela){
	var canvas = $(canvas_id);
	
	loading(canvas);

	new Ajax.Request(url , {
		method:'get',
		
		parameters: {
			id:musica,
			table_name:tabela
		},
		
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/* Carrega informações de uma música. */
function carrega_info(url, id, table_name){
	var canvas = $('campo');
	
	loading(canvas);

	new Ajax.Request(url , {
		method:'get',
		
		parameters: {
			id:id,
			table_name:table_name
		},
		
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/* Carrega páginas simples sem parâmetros */
function reload(canvas_id, url){
	var canvas = $(canvas_id);
	
	loading(canvas);

	new Ajax.Request(url , {
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/* Carrega páginas simples com parametro id */
function reload_id(canvas, url, id){
	var canvas = $(canvas);
	
	loading(canvas);

	new Ajax.Request(url , {
		method:'get',
		
		parameters: {
			id:id
		},
		
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/* Carrega páginas simples com parametro id e offset */
function reload_paginator(canvas, url, id, offset){
	var canvas = $(canvas);
	
	loading(canvas);

	new Ajax.Request(url , {
		method:'get',
		
		parameters: {
			id:id,
			offset:offset
		},
		
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/* Carrega páginas simples com parametro id */
function carrega_pagina_id(url, id){
	var canvas = $('campo');
	
	loading(canvas);

	new Ajax.Request(url , {
		method:'get',
		
		parameters: {
			id:id
		},
		
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/* Carrega páginas simples sem parâmetros. */
function carrega_pagina(url){
	var canvas = $('campo');
	
	loading(canvas);

	new Ajax.Request(url , {
		method:'post',

	    onSuccess: function(transport){
			//canvas.innerHTML = transport.responseText;
			canvas.update(transport.responseText);
			
			/* Our event handler to add history change events */
				if (!rawMaterial[rawIndex]) {
					rawIndex = 0;
				}
				var a = rawMaterial[rawIndex];
				dhtmlHistory.add(a[0],a[1]);
				if (typeof a[1] == "object") {/*stringify this so we can log it better*/
					a[1] = historyStorage.toJSON(a[1]);
				}
				var msg = "<b>A history event has been added:</b> [newLocation=" + a[0] + " | historyData=" + a[1] + "]";
				log(msg);
				rawIndex++;
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
}

/** Verifica um formulário, e submete caso não hajam erros. Página de resultado mostrada no canvas. */
function verifica(form, canvas){

	if(window.CKEDITOR != undefined){
		//Atualiza os editores da página
		for(var editor in CKEDITOR.instances){
			console.log('atualizando editor');
			console.log(editor);
			CKEDITOR.instances[editor].updateElement();
		}
	}

	var check = true;

	for (var i=0; i < form.elements.length; i++) {
   		var element = form.elements[i];

		if(element.classList != null && element.classList.contains('required')){
			if(element.value == "" || element.value == "NULL"){
				check = false;
			}
		}
	}

	if(check == false){
		alert('Existem campos obrigat\u00f3rios n\u00e3o preenchidos');
		return false;
	}
	
	var canvas = $(canvas);
	
	loading(canvas);
	
	$(form).request({
		method:'post',
		
	    onSuccess: function(transport){
			canvas.update(transport.responseText);
			form.reset();
    	},
    	onFailure: function(transport){
			console.log(transport.responseText);
		}
  	});
	
	//Evita que o formulário seja submetido normalmente
	return false;
}

function cursorHand()
{
    document.body.style.cursor = "pointer";
}

function cursorDefault()
{
   document.body.style.cursor = "default";
}

function modal(url, id, title){
	Modalbox.show(url, {title: title, width: 800, height: 400});
}

