var is_max = false;
var tmp = false;
var active_navi_img = false;

var myrules = {
	
	'select.switch' : function(el) {
		el.onchange = function() {
			
			var someNodeList = $(el).getElementsByTagName('option');
			var nodes = $A(someNodeList);

			nodes.each(function(node) {
			
				if (node.readAttribute('value') == $(el).value ) {
					var rels = node.readAttribute('rel').gsub(' ','').split(',');
			
					rels.each(function(s) {
					
						var commands = ['enable','disable','show','hide'];
						var args = s.split(':');
						
						if(args.size() < 2)
							return;
						
						if( commands.indexOf(args[0]) == -1)
							return;
						
						var func = '';
						
						if ( args[0] == 'show' || args[0] == 'hide') {
							if( el.checked && args[0] == 'hide'
								|| (! el.checked) && args[0] == 'show')
								func = 'show';
							else
								func = 'hide';
						}
						else if ( args[0] == 'enable' || args[0] == 'disable') {
							if( el.checked && args[0] == 'disable'
								|| (! el.checked) && args[0] == 'enable')
								func = 'disable';
							else
								func = 'enable';
						}
						$$(args[1]).invoke(func);
						$$(args[1]).invoke(func);
			
					});
				}
			});
		}
	},

	'input.overwrite' : function(el) {
		el.onchange = function() {
			prefix = 'overwrite_';
			el_name = el.name.substring( prefix.length );
			if( ! el.checked )
			{				
				// overwrite_<element.name>
				disable( el.form.elements[ el_name ] );
			}
			else 
			{
				enable( el.form.elements[ el_name ] );
			}
			return true;
		}
	},
	
	'select.chooseOrNew' : function(el) {
		el.onchange = function() {
			if( el.selectedIndex != 0 )
			{				
				disable( el.form.elements[ el.name + "_new"] );
			}
			else 
			{
				enable( el.form.elements[ el.name + "_new"] );
			}
			return true;
		}
	},
	
	'button.selectMod' : function(el) {
		el.onclick = function() {
		
			var elSel = el.form.elements[ el.getAttribute("rel")];
			
			if( el.value == 'add' )
			{
				var val = prompt(unescape('Eintrag hinzuf%FCgen'));
				if( val == null || val.length == 0 )
					return;
				
				var elOptNew = document.createElement('option');
				elOptNew.text = val;
				elOptNew.value = val;
				try {
			    	elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
			  	}
			  	catch(ex) {
			    	elSel.add(elOptNew); // IE only
			    }
			}
			else if( el.value == 'remove')
			{			
				if( elSel.selectedIndex == -1 )
					alert(unescape('Kein Eintag ausgew%E4hlt'));
				var i;
				for (i = elSel.length - 1; i>=0; i--) {
					if (elSel.options[i].selected) {
						elSel.remove(i);
					}
				}
			}
		}
	},
	
	'.submitter' : function(el) {
		el.onclick = function() {
			if( el.parentNode == "[object HTMLFormElement]" ) {
				el.parentNode.submit();
			}	
		}
	},
	
	'.onChangeSubmit' : function(el) {
		el.onchange = function() {
			el.form.submit();
		}
	},
	
	'input.confirm_deletion' : function(el) {
		el.onclick = function() {
			return confirm(unescape('Wollen sie den Eintrag wirklich l%F6schen?'));
		}
	},
	
	'input.validate_submit' : function(el) {
		el.onclick = function() {
			form = el.form;
			inputs = form.getElementsByTagName("input");
			error_inputs = new Array();
			var err_msg = new Array('Folgende Fehler sind aufgetreten:\n');
			var error = false;
			for (var i = 0; i < inputs.length; i++) {
				jscss('remove', inputs[ i], 'validationError');
				
				if( jscss('check', inputs[ i], 'notEmpty') ) {
					if (!inputs[ i].value && !inputs[ i].disabled) {      
						error = true;
				    	err_msg.push(inputs[ i].title + unescape(' muss ausgef%FCllt sein'));
				    	error_inputs.push(inputs[ i]);
				    }
				}
				
				if( jscss('check', inputs[ i], 'email') ) {
					if ( inputs[ i].value && !inputs[ i].disabled) {      
					      var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
					      var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
					      var regex = "^"+usr+"\@"+domain+"$";
					      var myrxp = new RegExp(regex);
					      var check = (myrxp.test(inputs[ i].value));
					        if (check != true) {
					          error=true;
					          err_msg.push(inputs[ i].title+' ist keine Email Adresse');
					          error_inputs.push(inputs[ i]);
					        }
					}
				}
				    
				if( jscss('check', inputs[ i], 'url') ) {
					if ( inputs[ i].value && !inputs[ i].disabled) {
					      var regex = "^(((ht|f)tp(s?))\://)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.([a-z]{2,4})(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&amp;%\$#\=~_\-]+))*$";
					      var myrxp = new RegExp(regex);
					      var check = (myrxp.test(inputs[ i].value));
					        if (check != true) {
					          error=true;
					          err_msg.push(inputs[ i].title+' keine gültige URL');
					          error_inputs.push(inputs[ i]);
					     }
					 }
				}
				
				if( jscss('check', inputs[ i], 'integer') ) {
					if ( inputs[ i].value && !inputs[ i].disabled) {
					      var regex = "^[0-9]*$";
					      var myrxp = new RegExp(regex);
					      var check = (myrxp.test(inputs[ i].value));
					        if (check != true) {
					          error=true;
					          err_msg.push(inputs[ i].title+' ist keine Zahl');
					          error_inputs.push(inputs[ i]);
					     }
					 }
				}
			}
			
			// add error class to input fields
			for (var i = 0; i < error_inputs.length; i++) {
				jscss('add', error_inputs[ i], 'validationError');
			}
			
			// print error message
			if (error) {
			    err_msg = err_msg.join('\n\xB7 ');
				alert(err_msg);
				return false;
			  }
			  else {
			  	//alert('found no errors');
			    return true;
			  }
		}
	},	};Behaviour.register(myrules);

