sendMailCallback = function (result) {
		alert('result: ' + result);
	}

function ContatoGUIModel(viewHolder) {
    this.currentView = viewHolder;

	this.sendMail = function (formData){
		var textFunc = this.currentView.valueOf();
		
		/*
		//This code will send a data object via a GET request and alert the retrieved data.
		var jsonRequest = new Request.JSON({
					//url: "http://192.168.2.5/works/FotodeFato/siteajax/sendMailX.php",
					url: "sendMailX.php?data=" + formData,
					onComplete: function(dataFromServer){
								viewHandler.getView(textFunc).currentModel.sendMailCallback
							}
					}).get(formData);
	
		*/
	
		/*var query = 'nome='+
					formData.contatoNome+
					'&email=' + formData.contatoEmail+
					'&fone=' + formData.contatoFone+
					'&mensagem=' + formData.contatoMensagem;
		*/
		//var myRequest = new Request({url: 'http://localhost/some_url'}).send("save=username&name=John");
						
		//var request =  new Json.Remote(url, { onComplete: sendMailCallback}).send();
		

		/*var jsonRequest = new Request.JSON({url: "sendMailX.php", onSuccess: function(dataFromServer){
					viewHandler.getView(textFunc).currentModel.sendMailCallback(dataFromServer);
				}}).get({'data':formData});
		*/



	}
	
	this.sendMailCallback = function (result) {
		alert(result);
	}
	
	//Observar este metodo eh obrigatorio nos models
	//o model precisa saber a view que o exibe. 
	//caso tenha mais de uma view, usar padr?o observer;
	//nos callbacks do ajax, que sao tratados pelo model
	// devemos delegar a view o redraw.
	this.registerView = function(myView) {
		this.currentView = myView;
	}
}

function ContatoGUIView(viewHolder, template) {
	this.id = ( new Date() ).getTime();
	this.currentModel = new ContatoGUIModel(viewHolder);
    this.currentView = viewHolder;
    this.currentViewInstanceTemplate = 'viewHandler.getView(\'' + this.currentView +'\')';
    
	this.draw = function() {
		var viewContentBuffer = '';
		viewContentBuffer = templateManager.loadTemplate(template);
		viewContentBuffer = templateManager.setVars(viewContentBuffer, /@@@TEXTAREA@@@/g, 'textarea');
		viewContentBuffer = templateManager.setVars(viewContentBuffer, /@@@METHODPATH@@@/g, this.currentViewInstanceTemplate);
		viewContentBuffer = templateManager.setVars(viewContentBuffer, /@@@IMG_PATH@@@/g, IMG_PATH);
		
		viewHandler.drawView('innerContent', viewContentBuffer);
		//loading(false);
	}

	/*this.field_xek = function (form){
		if (viewHandler.getElementDirectly('contatoNome').value == ""){
			alert("Campo Nome sem informação! Campo Obrigatório.");
			viewHandler.getElementDirectly('contatoNome').focus();
			return (false);
		}
		if (viewHandler.getElementDirectly('contatoEmail').value == ""){
			alert("Campo E-mail sem informação! Campo Obrigatório.");
			viewHandler.getElementDirectly('contatoEmail').focus();
			return (false);
		}
		if (viewHandler.getElementDirectly('contatoFone').value == ""){
			alert("Campo Telefone sem informação! Campo Obrigatório.");
			viewHandler.getElementDirectly('contatoFone').focus();
			return (false);
		}
		if (viewHandler.getElementDirectly('contatoMensagem').value == ""){
			alert("Campo Mensagem sem informação! Campo Obrigatório.");
			viewHandler.getElementDirectly('contatoMensagem').focus();
			return (false);
		}
		//this.submit();
		return (true);
	}*/
	
	/*this.submit = function (){
		var form = {
			contatoNome: viewHandler.getElementDirectly('contatoNome').value,
			contatoEmail: viewHandler.getElementDirectly('contatoEmail').value,
			contatoFone: viewHandler.getElementDirectly('contatoFone').value,
			contatoMensagem: viewHandler.getElementDirectly('contatoMensagem').value
		}
		this.currentModel.sendMail(form);
	}*/
	
	this.start= function() {

	}
	
	this.unload= function() {
		this.currentModel = null;
	}
	
	/*
    * Metodo obrigatorio nas views
    * para garantir flexibilidade a view.
    * A view nao depende do seu holder para ser exibida.
    */
    this.setViewHolder = function(viewHolder) {
	     this.currentView = viewHolder;
    }
    
}
