/**
 *	Javascript zum Taquiri-Kontakt-Formular 2011
 *
 *	Hinweis: Am Ende der Seite ist eine minimierte Version der json2.js-lib
 */


//	Wird beim ready aufgerufen und trägt für die betroffenen Formulare unser
//	taqforms_submitDone() als submit ein.
function taqforms_initOnReady() {
	jQuery("form.taqforms").submit( function() { return taqforms_submitDone( this ); } );
}

function taqforms_submitDone( objForm ) {

	var		action	=	objForm.action;

	var		data	=	{};

	//	Daten für den AJAX-Request zusammentragen

	//	ID des Formulars. Wird auch vom AJAX zurückgegeben um das Formular eindeutig zu
	//	identifizieren.
	data["form_id"]	=	objForm["id"];

	for ( i = 0; i < objForm.elements.length; i++ ) {
		if ( objForm.elements[i].value != undefined ) {
			data[objForm.elements[i].name]	=	objForm.elements[i].value;
		}
	}

	//	Daten als ein JSON verpacken

	var		dataJSON	=	{ "ajax_json": JSON.stringify( data ) };

	jQuery.post( action, dataJSON, taqforms_ajaxReplyForm );

	jQuery("form.taqforms").fadeTo( 500, 0.5 );

	return	false;

}

//	Wird bei der AJAX-Rückkehr von taqforms_submitDone() aufgerufen
//	Der Body ist ein JSON-Objekt.
function taqforms_ajaxReplyForm( dataJSON ) {

	var	data		=	JSON.parse( dataJSON );

	var	idForm		=	data['form_id'];
	var	type		=	data['type'];

	if ( type == 'form'  ||  type == 'content'  ||  type == 'error' ) {
		jQuery("#" + idForm).html( data['source'] );
		jQuery("#" + idForm).fadeTo( 500, 1.0 );
	}
	else if ( type == 'field' ) {
	}
	else {
	}

}

//	Debug-Ausgabe
function taqforms_alertObject( obj ) {

	for ( key in obj ) {
		alert( key + "/" + obj[key] );
	}

}

//	Veranlassen, dass nach Ready des Documents die taqforms_initOnReady() aufgerufen wird.
jQuery(document).ready(
	function() { taqforms_initOnReady(); }
);


/***
 *	Minimierte Version der json2-Lib.
 *
 *	Original: https://github.com/douglascrockford/JSON-js
 *
 *	Orginal minimiert: http://code.google.com/p/soc/source/browse/app/json.min/json2.js
 ***/

this.JSON||(JSON={});
(function(){function k(a){return a<10?"0"+a:a}function n(a){o.lastIndex=0;return o.test(a)?'"'+a.replace(o,function(c){var d=q[c];return typeof d==="string"?d:"\\u"+("0000"+c.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function l(a,c){var d,f,i=g,e,b=c[a];if(b&&typeof b==="object"&&typeof b.toJSON==="function")b=b.toJSON(a);if(typeof j==="function")b=j.call(c,a,b);switch(typeof b){case "string":return n(b);case "number":return isFinite(b)?String(b):"null";case "boolean":case "null":return String(b);case "object":if(!b)return"null";
g+=m;e=[];if(Object.prototype.toString.apply(b)==="[object Array]"){f=b.length;for(a=0;a<f;a+=1)e[a]=l(a,b)||"null";c=e.length===0?"[]":g?"[\n"+g+e.join(",\n"+g)+"\n"+i+"]":"["+e.join(",")+"]";g=i;return c}if(j&&typeof j==="object"){f=j.length;for(a=0;a<f;a+=1){d=j[a];if(typeof d==="string")if(c=l(d,b))e.push(n(d)+(g?": ":":")+c)}}else for(d in b)if(Object.hasOwnProperty.call(b,d))if(c=l(d,b))e.push(n(d)+(g?": ":":")+c);c=e.length===0?"{}":g?"{\n"+g+e.join(",\n"+g)+"\n"+i+"}":"{"+e.join(",")+"}";
g=i;return c}}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(){return this.getUTCFullYear()+"-"+k(this.getUTCMonth()+1)+"-"+k(this.getUTCDate())+"T"+k(this.getUTCHours())+":"+k(this.getUTCMinutes())+":"+k(this.getUTCSeconds())+"Z"};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}}var p=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,o=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
g,m,q={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},j;if(typeof JSON.stringify!=="function")JSON.stringify=function(a,c,d){var f;m=g="";if(typeof d==="number")for(f=0;f<d;f+=1)m+=" ";else if(typeof d==="string")m=d;if((j=c)&&typeof c!=="function"&&(typeof c!=="object"||typeof c.length!=="number"))throw new Error("JSON.stringify");return l("",{"":a})};if(typeof JSON.parse!=="function")JSON.parse=function(a,c){function d(f,i){var e,b,h=f[i];if(h&&typeof h===
"object")for(e in h)if(Object.hasOwnProperty.call(h,e)){b=d(h,e);if(b!==undefined)h[e]=b;else delete h[e]}return c.call(f,i,h)}p.lastIndex=0;if(p.test(a))a=a.replace(p,function(f){return"\\u"+("0000"+f.charCodeAt(0).toString(16)).slice(-4)});if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){a=eval("("+a+")");return typeof c==="function"?d({"":a},""):a}throw new SyntaxError("JSON.parse");
}})();
