/**
 * @author Dennis Hellwig
 */
YAHOO.namespace("aerophil.catalog");
YAHOO.aerophil.catalog = function () {
	var $YD = YAHOO.util.Dom;
	var $YE = YAHOO.util.Event;
	var $YC = YAHOO.util.Connect;
	var $YA = YAHOO.util.Anim;
	var $ = $YD.get;
	if (typeof String.supplant == 'undefined')
  {
    String.prototype.supplant = function (o) { 
      return this.replace(/{([^{}]*)}/g, 
        function (a, b) {  
          var r = o[b];
            return (typeof r === 'string') ?  r : a; 
        }
      ); 
    }; 
  }
	var actionXhrPath = "/order/getCatalog.php";
	var formHTML = '<form id="orderCatalogForm" action="{actionPath}" method="post">'+
									'<ol>'+
										'<li>'+
											'<label for="address">Bitte geben Sie Ihren Namen und Ihre Adresse ein:</label>'+
											'<textarea name="address" id="address"></textarea>'+
											'<input id="btOrderCatalogSubmit" type="submit" value="Abschicken &gt;">'+
										'</li>'+
									'</ol>'+
								'</form>';
	
	return  {
		init: function()
		{
			YAHOO.util.Event.addListener("orderCatalog","click",this.displayForm, null, YAHOO.aerophil.catalog);
		},
		displayForm: function(e)
		{
			// YAHOO.log("displayForm");
			if( YAHOO.util.Dom.inDocument("formContainer") )
			{
				return;
			}
			YAHOO.util.Dom.setStyle($("orderCatalog"), "display", "none");
			var formContainer = document.createElement("div");
			formContainer.id = "formContainer";
			var attributes = {
				actionPath: actionXhrPath
			}
			formContainer.innerHTML = formHTML.supplant(attributes);
			var button = YAHOO.util.Event.getTarget(e);
			YAHOO.util.Dom.insertAfter(formContainer, button);
			YAHOO.util.Event.addListener("orderCatalogForm","submit", this.submitForm, null, YAHOO.aerophil.catalog);
		},
		submitForm: function(e)
		{
			YAHOO.util.Event.stopEvent(e);
			YAHOO.log("submitForm");
			$("btOrderCatalogSubmit").disabled = "disabled";
			var callback = {
				success: function(o) {
					YAHOO.log("o.responseText: " + o.responseText)
					YAHOO.util.Dom.setStyle($("formContainer"), "display", "none");
					var el = $("orderCatalog");
					el.id = "orderMessage";
					el.innerHTML = "Vielen Dank! Der Katalog wird in Kürze versandt.";
					YAHOO.util.Dom.setStyle(el, "display", "block");
				}, 
				failure: function(o) {
					YAHOO.log("o.statusText: " + o.statusText)
				}
			};
			
			var formObject = $("orderCatalogForm");
			YAHOO.util.Connect.setForm(formObject);
			var cObj = YAHOO.util.Connect.asyncRequest('POST', actionXhrPath, callback ); 
		}
	};
}();
YAHOO.util.Event.onAvailable("catalogTeaser", function(){ YAHOO.util.Dom.removeClass(this, "hideMe");}, this);
YAHOO.util.Event.onContentReady("catalogTeaser", YAHOO.aerophil.catalog.init, null, YAHOO.aerophil.catalog);