//
// Stellt sicher, dass die Zeilen einer Tabelle
// immer abwechselnd eingefärbt werden
//
function table_update_row_styles(selector){
	try {
		selector = selector || '.data'
		$$(selector).each(function(e){
				e.getElementsBySelector('tr').each(function(tr, i){
					tr.removeClassName('r0');
					tr.removeClassName('r1');
					if (i % 2 == 0){
						tr.addClassName('r0');
					}
					else {
						tr.addClassName('r1');
					}
				});
		});
	}
	catch(e){}
}

Element.addMethods({
  upwards: function(element, iterator) {
    while (element = $(element)) {
      if (iterator(element)) return element;
      element = element.parentNode;
    }
  }
});

TableRowHover = Class.create();
TableRowHover.prototype = {
	initialize: function(options){
		var tables = document.getElementsByTagName('table');
		for (var i=0; i<tables.length; i++) {
			el = $(tables[i]);
			if (el.hasClassName('data')) {
				// Gecko fügt automatisch ein tbody Element ein
				if (el.childElements().first().tagName.toLowerCase()=='tbody'){
					rows = el.childElements().first().childElements();
				}
				else {
					rows = el.childElements();
				}
				// bei allen trs ein mouseover und mouseout Event hinzufügen
				for (var i=0; i<rows.length; i++) {
					row = $(rows[i]);
					if (row.hasClassName('r0') || row.hasClassName('r1')){
						Event.observe(row, 'mouseover', function(ev){
							el = ev.element().upwards(function(e){
								if (e.tagName.toLowerCase()=='tr'){ return e }
							});
							$(el).addClassName('hover');
						});
						Event.observe(row, 'mouseout',  function(ev){
							el = ev.element().upwards(function(e){
								if (e.tagName.toLowerCase()=='tr'){ return e }
							});
							$(el).removeClassName('hover');
						});
					}
				}
			}
			
		}
	}
}

//Event.observe(window, 'load', function(){new TableRowHover();});

var set_field_value = function(value, field, append){
	if(field===null){
		var field = 'textmodule_v5';
	}
	if(append===true){
		$(field).value = $(field).value + value + "\n";
	}
	else{
		$(field).value = value;
	}
}

var show_ops4_popup = function(url, field, append){
	if(field===undefined){
		var field = 'textmodule_v5';
	}
	url = url + '?field='+field + '&append='+append
	window.open(url,'Medien','width=600,height=450,left=100,top=100,status=no,scrollbars,toolbar=no,resizable');
}

var SetUrl = function(url, field, append){
	if(field===null){
		var field = 'textmodule_v5';
	}
	$(field).value = url;
}

var show_asset_popup = function(url, field){
	if(field===undefined){
		var field = 'textmodule_v5';
	}
	window.open(url+'?field='+field,'Medien','width=600,height=450,left=100,top=100,status=no,scrollbars,toolbar=no,resizable');
}

Event.observe(window, 'load', function(){
	var epoch_cals = new Array();
	$$('.date_field').each(function(e, index){
		epoch_cals[index] = new Epoch('cal'+index, 'popup', e, false);
	});
	
	if($('print_button')){
		Event.observe('print_button', 'click', function(e){
			window.print(); 
			e.stop();
		});	
	}
});

function trim(s) {
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmpty(fld, errorMessage) {
	var error = "";
  
	if (trim(fld.value).length == 0) {
        error = errorMessage + "\n";
    }
    return error;   
}

function validateEmail(fld, errorMessage) {
	var error = "";
	var val = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;
    
	if (val == "" || !emailFilter.test(val) || val.match(illegalChars)) {
		error = errorMessage + "\n";
	}
	return error;
}