﻿/** 
* Copyright 2006-2007 massimocorner.com
* License: http://www.massimocorner.com/license.htm
* @author      Massimo Foti (massimo@massimocorner.com)
* @version     0.4.1, 2007-04-16
* @require     tmt_core.js
* @require     tmt_net.js
* @require     tmt_form.js
*/


if(typeof(tmt)=="undefined"){alert("Error: tmt.core JavaScript library missing");}
tmt.ajaxform={};tmt.ajaxform.AJAX_USER_AGENT="TMT ajaxform";tmt.ajaxform.init=function(){if(typeof(tmt.net)=="undefined"){alert("Error: tmt.net JavaScript library missing");return;}
else{if(typeof(tmt.form)=="undefined"){alert("Error: tmt.form JavaScript library missing");return;}}
var formNodes=document.getElementsByTagName("form");for(var i=0;i<formNodes.length;i++){if(formNodes[i].getAttribute("tmt:ajaxform")=="true"){formNodes[i].tmtAjaxform=tmt.ajaxform.factory(formNodes[i]);}}}
tmt.ajaxform.factory=function(formNode){var obj={};obj.form=formNode;obj.action=obj.form.getAttribute("action");obj.method="GET";if(obj.form.getAttribute("method")&&obj.form.getAttribute("method").toUpperCase()=="POST"){obj.method="POST";}
obj.message="";if(obj.form.getAttribute("tmt:ajaxmessage")){obj.message=obj.form.getAttribute("tmt:ajaxmessage");}
obj.defaultCallback=function(){if(obj.message==""){obj.message=this.response.responseText;}
tmt.form.displayMessage(this.response.contextData.domNode,obj.message);}
obj.submitCallback=obj.defaultCallback;if(obj.form.getAttribute("tmt:ajaxformcallback")){var callBackName=obj.form.getAttribute("tmt:ajaxformcallback");obj.submitCallback=eval(callBackName);}
obj.errMessage="";if(obj.form.getAttribute("tmt:ajaxerrmessage")){obj.errMessage=obj.form.getAttribute("tmt:ajaxerrmessage");}
obj.defaultErrback=function(){if(obj.errMessage==""){obj.errMessage=this.response.responseText;}
tmt.form.displayErrorMessage(this.response.contextData.domNode,obj.errMessage);}
obj.errback=obj.defaultErrback;if(obj.form.getAttribute("tmt:ajaxformerrback")){var errbackName=obj.form.getAttribute("tmt:ajaxformerrback");obj.errback=eval(errbackName);}
obj.send=function(){var formValues=tmt.form.serializeForm(obj.form,true);var valueObj={};if(obj.method=="GET"){valueObj.url=obj.action+"?"+formValues;}
else{valueObj.url=obj.action;valueObj.params=formValues;}
valueObj.method=obj.method;valueObj.loadCallback=obj.submitCallback;valueObj.errback=obj.errback;valueObj.contextData={};valueObj.contextData.domNode=obj.form;valueObj.headers={"X-Requested-With":tmt.ajaxform.AJAX_USER_AGENT};tmt.net.httpRequest(valueObj);return false;}
return obj;}
tmt.addEvent(window,"load",tmt.ajaxform.init);