// JavaScript Document
	var generalRules = {
		'.autoHeight': function (e) {
			var txt = $(e);
			var ht = txt.rows-1;

			e.onkeydown = function (el)
			{
				/*alert(txt.rows);	
				txt.height != txt.dummy.getHeight() + txt.line_height*/
				var c = 0;
				var r = 2;				
				var t = txt.value;
				for(var i=0; i<t.length; i++) {
					if (t.substr(i,1) == '\n') {
						c = 0;
						r++;
					}
					else {
						c++;
						if(c >= txt.cols) { c=0; r++;}
					}
				}
				if (r>ht){
					txt.rows = r;				
				}
			}
		},
		'.lightSwitch': function (e) {
			
			var lightSwitch = $(e);
			if (lightSocket = lightSwitch.up('.lightSocket')){				
				if (lightBulb = lightSocket.up(0).down('.lightBulb')){
					if (lightSwitch.checked){
						lightBulb.show();
						var watts = lightBulb.select('label');	
						if (watts){
							watts.each(function(watt)
							{
								watt.addClassName('required');
							});							
						}	/**/
									
					} else {
						
						lightBulb.hide();
						var bulbs = lightBulb.select('input');	
						if (bulbs){
							/*bulbs.invoke('disable');	*/
							bulbs.disabled = true;
						}
						
					}
				}
			}	
			
			e.onchange = function (el)
			{
				if (lightSwitch.checked){
					lightBulb.show();
					var watts = lightBulb.select('label');	
					var bulbs = lightBulb.select('input');	
					if (bulbs){
						/*bulbs.invoke('enable');	*/
						bulbs.disabled = false;
					}					
					if (watts){
						watts.each(function(watt)
						{
							watt.addClassName('required');
						});							
					}					
				} else {
					lightBulb.hide();
					var bulbs = lightBulb.select('input');	
					if (bulbs){
						bulbs.disabled = true;
						/*bulbs.invoke('disable');	*/
					}					
				}
			}
		},
		'.edit form': function (element) {
			if (!$('formProcessing')){
				var updateInfo = document.createElement('div');
				var form = $(element);
				Element.extend(updateInfo);
				updateInfo.id ='formProcessing';
				updateInfo.update("<dl class=\"cleared clearfix\"><dt>PROCESSING <span>FORM</span></dt><dd>please wait.</dd></dl>");
				
				
				updateInfo.setStyle
				(
					{
						height: form.getHeight()+'px'
					}
				);
				updateInfo.hide();
				updateInfo.addClassName('processing');
				form.appendChild(updateInfo);
			}			
			element.onsubmit = function (element) {
				var form = $(this);
				var valid = true;
				var submitButtons = null;
				
				if (submitButtons = form.select('input.submit')){
					submitButtons.each(function(s){
						$(s).disabled=true;
					});
				}
				
				

					if (inputRequired = form.select('.required')){

						inputRequired.each(function(s) {
							if (f = s.readAttribute('for')) {
								if (o = $(f)){
									if ($F(o)=='' && o.disabled==false){
										$(s).up('li').down('label').addClassName('error');
										valid = false;
									} else {
										$(s).up('li').down('label').removeClassName('error');
									}
								}
							}
						});
					}

			
				
				if (valid){
						$('formProcessing').show();
						form.select('fieldset').each(function(n)
						{
							n.setStyle(	
								{
									position: 'absolute',
									top: '-1000px',
									left: '-1000px'
								//	display: 'none'
								});
						});
					//form.submit();
					return true;
				} else {
					if (submitButtons){
						submitButtons.each(function(s){
							$(s).disabled=false;
						});
					}
					return false;;
				}
				
				return false;
								
			}
		},
		
		'.submit' : function(element){
			element.onclick = function (element) {
				valid = true;
				bn = $(this);
				this.id='submitButton';
			}
		}/*,	
		'a' : function(e){
			var ob = $(e);
			e.onclick = function (e) {
				
				if (ob.readAttribute('rel')=='external')
				{
					window.open(ob.readAttribute('href'));
					return false;
				}
				
			}
		}*/	
	};

	Behaviour.register(generalRules);
	
	