 if(typeof DIS == "undefined") DIS = {};

DIS.Fader = Class.create();


	Label2Input = function(id) {
		var el_input = $(id);
		if (!el_input) return;
		var label = getHtmlFor(id);
		if (!label) return;

		el_input.value = el_input.title = label.innerHTML;
		
		label.style.display = "none";
		
		el_input.observe("focus", function(event) {
			var element = event.element();
			if (element.value==element.title) {
				element.value="";
			}
		});

		el_input.observe("blur", function(event) {
			var element = event.element();
			if (element.value=="") {
				element.value=element.title;
			}
		});
		
	}
	getHtmlFor = function(id) {
		var labels = $A(document.getElementsByTagName("label"));
		var label = null;
		labels.each(
			function(_label) {
				if (_label.htmlFor == id) {
					label = _label;
					return;
				}
			}
		);
		return label;
	}
	BiggerTextarea = function(id) { 
		var el_input = $(id);
		if (!el_input) return;
		el_input.rows = 1;
		el_input.observe("focus", function(event) {
			var element = event.element();
//			element.addClassName("bigger");
			if (element.value=="" || element.value==element.title) {
//				if (element.hasClassName("bigger") != true) {
					var ef = new Effect.BlindDownDIS(element);
					ef = null;
//				}
			}
		});

		el_input.observe("blur", function(event) {
			var element = event.element();
			if (element.value=="" || element.value==element.title) {
//				element.removeClassName("bigger");
//				if (element.hasClassName("bigger") == true) {
					var ef = new Effect.BlindUpDIS(element);
					ef = null;
//				}

			}
		});
	}
Effect.BlindUpDIS = function(element) { 
  element = $(element);
  var elementDimensions = element.getDimensions();
  //element.makeClipping();
  return new Effect.Scale(element, 100,
    Object.extend({ 
	 	scaleContent: false, 
      scaleX: false, 
		scaleFrom: 1000,
		scaleMode: {originalHeight:15, originalWidth: elementDimensions.width},
      restoreAfterFinish: false,
		queue: 'end',
      afterFinishInternal: function(effect) {
        //effect.element.hide().undoClipping();
//		  element.removeClassName("bigger");
      } 
    }, arguments[1] || { })
  );
};	
Effect.BlindDownDIS = function(element) {
  element = $(element);
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({ 
    scaleContent: false, 
    scaleX: false,
    scaleFrom: 10,
    scaleMode: {originalHeight:150, originalWidth: elementDimensions.width},
    restoreAfterFinish: false,
    queue: 'end',
    afterSetup: function(effect) {
      //effect.element.makeClipping().setStyle({height: '15px'}).show(); 
    },  
    afterFinishInternal: function(effect) {
      //effect.element.undoClipping();
//		  element.addClassName("bigger");
    }
  }, arguments[1] || { }));
};


document.observe("dom:loaded", function() { 

	var inputs = $$("textarea, input[type=text]");
	inputs.each(
		function(_input) {
			_input.observe("focus", function(event) {
				var element = event.element();
				element.addClassName("active");
			});
			_input.observe("blur", function(event) {
				var element = event.element();
				element.removeClassName("active");
			});
		}
	);

  var asideInputs = $$("#aside textarea, #aside input[type=text]");
  var asideTxtArea = $$("#aside textarea");
	
	asideInputs.each(
    function(_input) {
      Label2Input(_input.id);
    });
	
asideTxtArea.each(
    function(_input) {
      BiggerTextarea(_input.id);
    });	
	
});

