// MVDM Interactive Library (c) 2008 by Marc Vontobel

var MVDM = new function() {
	this.form = new function() {
		
		/** Submit the Form **/
		this.send = function( _form ) {
			try {$('loading').style.display = '';} catch (e) {}
			var _input = _form.getElementsByTagName('input');
			var _postBody = 'form=' + _form.id;
			for( var i = 0; i < _input.length; i++ ) {
				if ( _input[i].type == 'text' || _input[i].type == 'hidden' || ( _input[i].type == 'radio' && _input[i].checked ) || ( _input[i].type == 'checkbox' && _input[i].checked ) ) {
					_postBody += '&' + _input[i].name + "=" + escape( _input[i].value );
				} 
				_input[i].disabled = true;
			}
			_input = _form.getElementsByTagName('textarea');
			for( var i = 0; i < _input.length; i++ ) {
				_postBody += '&' + _input[i].name + "=" + escape( _input[i].value );
				_input[i].disabled = true;
			}
			new Ajax.Request(	_form.action, {
								method: 'post',
								postBody: _postBody,
											
								onSuccess:function(t) {
									eval( t.responseText );
								},
								
								on404: function(t) {
									alert('Error 404: location "' + t.statusText + '" was not found.');
								},
								
								onFailure: function(t) {
									alert('Error ' + t.status + ' -- ' + t.statusText);
								}
			});
			return false;
		},
		
		/** Enable all Fields **/
		this.enableFields = function( _form ) {
		try {$('loading').style.display = 'none';} catch (e) {}
			var form = $( _form );
			if ( form != null ) {
				var _input = form.getElementsByTagName('input');
				for( var i = 0; i < _input.length; i++ ) {
					_input[i].disabled = false;
				}
				_input = form.getElementsByTagName('textarea');
				for( var i = 0; i < _input.length; i++ ) {
					_input[i].disabled = false;
				}
			}
		},
		
		/** Clear all Fields **/
		this.clearFields = function ( _form ) {
			var form = $( _form );
			if (form != null) {
				var _input = form.getElementsByTagName('input');
				for( var i = 0; i < _input.length; i++ ) {
					if ( _input[i].type == 'text' || _input[i].type == 'textarea' ) {
						_input[i].value = '';
					}
				}
				_input = form.getElementsByTagName('textarea');
				for( var i = 0; i < _input.length; i++ ) {
					_input[i].value = '';
				}
			}
		},
		
		/** Set error **/
		this.setError = function( _field ) {
			try { $( _field ).className = 'textError'; } catch (e) {}
		};
		
		/** Remove error **/
		this.removeError = function( _field ) {
			try { $( _field ).className = 'text'; } catch (e) {}
		};
		
		this.blurTime = function( elem, defaultTime ) {
			for (var i = elem.value.length; i < defaultTime.length; i++) {
				elem.value = elem.value += defaultTime[i];
			}
		};
		/**
		* TypeTime wird bei jedem Tastedruck innerhalb eines TimeTextfeldes
		* aufgerufen und �berpr�ft die Richtigkeit der Eingabe.
		*/
		this.typeTime = function( evt, elem ) {
			evt = (evt) ? evt : window.event;
			var charCode = (evt.which) ? evt.which : evt.keyCode;
			var valueLength = elem.value.length;
			if (charCode > 31) {
				switch (valueLength) {
					case 0: // Erstes Zeichen muss 0, 1 oder 2 sein
						if (charCode < 48 || charCode > 57)
								return false;
						if (charCode > 50 && charCode < 58) {
							elem.value = "0";
						}
						break;
					case 1: // Zeites Zeichen muss irgend eine Zahl sein
						var val = elem.value;
						if (val < 2) {
							if (charCode < 48 || charCode > 57)
								return false;
						} else {
							if (charCode < 48 || charCode > 52)
								return false;
						}
						break;
					case 2: // Drittes Zeichen: Doppelpunkt oder Zahl [0:5]
						if (charCode < 48 || (charCode > 53 && charCode != 58))
							return false;
						else if (charCode != 58) {
							var val = elem.value;
							elem.value = val += ":";
						}
						break;
					case 3:
						if (charCode < 48 || (charCode > 53))
							return false;
						break;
					case 4:
						if (charCode > 31 && (charCode < 48 || charCode > 57))
							return false;
						break;	
				}
			} else if (charCode == 8 && valueLength == 4) { // If delete
				var val = elem.value;
				elem.value = val.substring(0,3);
			}
			return true;
		};
	};
};
