/**
* THIS GENERATED JS-FILE CONTAINS FOLLOWING FILES:
* - /home/httpd/vhosts/schuletg.ch/httpdocs/i4/javascript/i4_document_listener.js
* - /home/httpd/vhosts/schuletg.ch/httpdocs/i4/javascript/i4_special.js
* - /home/httpd/vhosts/schuletg.ch/httpdocs/i4/javascript/i4_validator.js
*/




var i4_Document_listener={clicks:[],keydowns:[],mouseouts:[],index_click:0,index_keydown:0,index_mouseout:0,handler_mousemove:0,handler_click:0,handler_keydown:0,run:function(){if(this.clicks.size()>0){if(this.handler_click==0){this.handler_click=document.on('click',(function(event){this.clicks.each(function(item){if(item[1].callback){var ok=true;if(item[1].exclude){item[1].exclude.each(function(item2){$$(item2).each(function(item3){if(item3===event.target){ok=false;}});});}
if(ok){item[1].callback();}}});}).bind(this));}else{this.handler_click.start();}}else{if(this.handler_click!=0){this.handler_click.stop();}}
if(this.keydowns.size()>0){if(this.handler_keydown==0){this.handler_keydown=document.on('keydown',(function(event){this.keydowns.each(function(item){if(item[1].callback){var ok=false;if(item[1].keys){item[1].keys.each(function(item2){if(item2==event.keyCode){ok=true;}});}else{ok=true;}
if(ok){item[1].callback();}}});}).bind(this));}else{this.handler_keydown.start();}}else{if(this.handler_keydown!=0){this.handler_keydown.stop();}}
if(this.mouseouts.size()>0){if(this.handler_mousemove==0){this.handler_mousemove=document.on('mousemove',(function(event){this.mouseouts.each(function(item){if(item[1].callback){var ok=false;var distance=0;if(item[1].distance){distance=item[1].distance;}
if(item[1].element){var pointer=event.pointer();var measure_left=item[1].element.measure('left');var measure_top=item[1].element.measure('top');var x_min=measure_left-distance;var x_max=measure_left+item[1].element.measure('width')+distance;var y_min=measure_top-distance;var y_max=measure_top+item[1].element.measure('height')+distance;if(!(pointer.x>x_min&&pointer.x<x_max)||!(pointer.y>y_min&&pointer.y<y_max)){ok=true;}}
if(ok){item[1].callback();}}});}).bind(this));}else{this.handler_mousemove.start();}}else{if(this.handler_mousemove!=0){this.handler_mousemove.stop();}}},click:function(params){var index=this.index_click++;this.clicks.push([index,params]);this.run();return index;},stop_click:function(index){this.clicks.each((function(item){if(item[0]==index){this.clicks=this.clicks.without(item);}}).bind(this));this.run();},keydown:function(params){var index=this.index_keydown++;this.keydowns.push([index,params]);this.run();return index;},stop_keydown:function(index){this.keydowns.each((function(item){if(item[0]==index){this.keydowns=this.keydowns.without(item);}}).bind(this));this.run();},mouseout:function(params){var index=++this.index_mouseout;this.mouseouts.push([index,params]);this.run();return index;},stop_mouseout:function(index){this.mouseouts.each((function(item){if(item[0]==index){this.mouseouts=this.mouseouts.without(item);}}).bind(this));this.run();}}
Object.extend(Prototype.Browser,{IE6:Prototype.Browser.IE&&parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5))==6,IE7:Prototype.Browser.IE&&parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5))==7,IE8:Prototype.Browser.IE&&parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5))==8});function i4_log(log,trace){if(window.console!=undefined){if(trace!=undefined&&trace){window.console.trace();}
window.console.log('[i4-log] - ',log);}};var i4_Validator={instances:[],get:function(form_id){if($(form_id).tagName.toUpperCase()!='FORM'){form_id=$(form_id).up('form').readAttribute('id');}
var instance=this.get_instance_by_form_id(form_id);if(instance==null){instance=new i4_Validator_instance();instance.set_form_id(form_id);this.instances.push([form_id,instance]);}
return instance;},get_instance_by_form_id:function(form_id){var instance=null;this.instances.each(function(item){if(item[0]==form_id){instance=item[1];}});return instance;}}
var i4_Validator_instance=Class.create({list:[],invalid_list:[],disable_list:[],from_id:'',before_submit_function:false,after_loaded_function:false,after_loaded_function_counter:0,initialize:function(){this.list=new Array();this.invalid_list=new Array();this.disable_list=new Array();},set_form_id:function(id){this.form_id=id;return this;},add:function(item){this.list.push(item);return this;},remove:function(id){this.list.each((function(item){if(item.element_id==id){this.list=this.list.without(item);}}).bind(this));return this;},clear:function(){this.list.clear();this.invalid_list.clear();this.after_loaded_function=null;this.before_submit_function=null;},start_observing:function(){this.list.each((function(item){item.event_name.each((function(event_name){$(item.element_id).on(event_name,(function(){this.check_item(item);this.update_style(item);if(item.check_element&&item.check_element.size()>0){item.check_element.each((function(element){var check_item=this.get_item(element);this.check_item(check_item);this.update_style(check_item);}).bind(this));}
this.update_submit();}).bind(this));}).bind(this));}).bind(this));if(this.after_loaded_function_counter>0){for(var i=0;i<this.after_loaded_function_counter;i++){eval('i4_Validator.'+this.form_id+'_after_loaded_function'+i+'()');}}
this.check_form();},check_form:function(){this.invalid_list.clear();this.list.each((function(item){this.check_item(item);}).bind(this));this.update_style();this.update_submit();},check_item:function(item){if(item!=''){var function_string='this.'+item.function_name+'("'+item.element_id+'", '+Object.toJSON(item.function_parameter)+')';if(!eval(function_string)){this.set_invalid(item.element_id);}else{this.set_valid(item.element_id);}}},set_invalid:function(element_id){this.invalid_list.push(element_id);this.invalid_list=this.invalid_list.uniq();},set_valid:function(element_id){this.invalid_list=this.invalid_list.without(element_id);},update_style:function(){this.list.each((function(item){this.update_item_style(item);}).bind(this));},update_item_style:function(item){if(this.invalid_list.indexOf(item.element_id)<0){$(item.element_id).addClassName("valid");$(item.element_id).removeClassName("invalid");}else{$(item.element_id).addClassName("invalid");$(item.element_id).removeClassName("valid");}
if(this.is_empty(item.element_id)&&item.function_parameter.required==0){$(item.element_id).removeClassName("invalid");$(item.element_id).removeClassName("valid");}},update_submit:function(){var button=$$("#"+this.form_id+" button[type='submit']")[0];var button=$(this.form_id).down("button[type='submit']");if(this.invalid_list.size()==0){if(button){button.removeClassName("invalid");button.addClassName("valid");button.setStyle({"cursor":"pointer"});}
$(this.form_id).onsubmit=(function(){if(/AppleWebKit|MSIE/.test(navigator.userAgent)){new Ajax.Request("/ping/close",{asynchronous:false});}
if(this.before_submit_function){eval('i4_Validator.'+this.form_id+'_before_submit_function()');}
return true;}).bind(this)}else{if(button){button.removeClassName("valid");button.addClassName("invalid");button.setStyle({"cursor":"default"});}
$(this.form_id).onsubmit=function(){return false;}}},disable:function(element_id){var disabled_item=this.get_item(element_id);if(disabled_item!=''){this.disable_list.push(disabled_item);this.list=this.list.without(disabled_item);}},enable:function(element_id){var enabled_item='';this.disable_list.each(function(item){if(item.element_id==element_id){enabled_item=item;}});if(enabled_item!=''){this.list.push(enabled_item);this.disable_list=this.disable_list.without(enabled_item);}},required:function(element_id){var item=this.get_item(element_id);if(item!=''){item.function_parameter.required=true;}},optional:function(element_id){var item=this.get_item(element_id);if(item!=''){item.function_parameter.required=false;}},get_item:function(element_id){var result='';this.list.each(function(item){if(item.element_id==element_id){result=item;}});return result;},after_loaded:function(func){var after_loaded='i4_Validator.'+this.form_id+'_after_loaded_function'+this.after_loaded_function_counter+' = '+func;eval(after_loaded);this.after_loaded_function_counter++;return this;},before_submit:function(func){var before_submit='i4_Validator.'+this.form_id+'_before_submit_function = '+func;eval(before_submit);this.before_submit_function=true;return this;},is_empty:function(id){var result=false;if($(id).getValue()==''){result=true;}
return result;},is_valid_string:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
if(parameter.max_length&&value.length>parameter.max_length){result=false;}
if(parameter.min_length&&value.length<parameter.min_length){result=false;}
if(parameter.disallow_words){parameter.disallow_words.each(function(item){if(value==item){result=false;}});}
if(parameter.character_invalid){parameter.character_invalid.each(function(item){if(value.include(item)){result=false;}});}
if(parameter.rejected_start_string){parameter.rejected_start_string.each(function(item){if(value.startsWith(item)){result=false;}});}
if(parameter.required==0&&value==""){result=true;}
return result;},is_valid_integer:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
if(isNaN(value)){result=false;}
if(parameter.max_length&&value>parameter.max_length){result=false;}
if(parameter.min_length&&value<parameter.min_length){result=false;}
if(parameter.required==0&&value==""){result=true;}
return result;},is_valid_url:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
if(!value.startsWith('http://')){result=false;}
if(parameter.required==0&&value==""){result=true;}
return result;},is_valid_mail:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
if(value.match(/^[_a-z0-9äáàâçëéèêïíìîiñöóòôüúùû-]+([._a-z0-9äáàâçëéèêïíìîiñöóòôüúùû+-]+)*@[a-z0-9äáàâçëéèêïíìîiñöóòôüúùû+-]+(.[a-z0-9\-äáàâçëéèêïíìîiñöóòôüúùû]+)*\.([a-z]{2,4})$/i)==null){result=false;}
if(parameter.required==0&&value==""){result=true;}
return result;},is_valid_file:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
if(parameter.extensions){var ext_valid=false;var splitted=value.split(".");var ext=splitted[splitted.length-1];parameter.extensions.each(function(item){if(ext.toLowerCase()==item.toLowerCase()){ext_valid=true;}});if(!ext_valid){result=false;}}
if($(id+'_preview')&&value==""){result=true;}
if(parameter.required==0&&value==""){result=true;}
return result;},is_valid_date:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
var check_date=new Date();var year='';var month='';var day='';var splitted_en=value.split("-");var splitted_de=value.split(".");if(splitted_en.size()==3){year=splitted_en[0];month=splitted_en[1];day=splitted_en[2];}else if(splitted_de.size()==3){year=splitted_de[2];month=splitted_de[1];day=splitted_de[0];}
check_date=new Date(year,month,day);if(check_date=='Invalid Date'){result=false;}
if(year==''||month==''||day==''){result=false;}
if(month<1||month>12){result=false;}
if(year<1000||year>9999){result=false;}
if((check_date.getMonth()+1)!=month&&day>32){result=false;}
if(parameter.required==0&&value==''){result=true;}
return result;},is_valid_time:function(id,parameter){var result=true;var value=$(id).getValue();if(value==""){result=false;}
var splitted=value.split(":");if(splitted.size()>1&&splitted.size()<4){var hour=splitted[0];var minutes=splitted[1];var seconds=0;if(splitted.size()==3){seconds=splitted[2];}
if(hour<0||hour>23||isNaN(hour)){result=false;}
if(minutes<0||minutes>59||isNaN(minutes)){result=false;}
if(seconds<0||seconds>59||isNaN(seconds)){result=false;}}else{result=false;}
if(parameter.required==0&&value==''){result=true;}
return result;},is_valid_compare:function(id,parameter){var result=true;var value=$(id).getValue();if(parameter.required&&value==""){result=false;}else if(parameter.compare_field&&parameter.compare_field!=''){var compare_value=$(parameter.compare_field).getValue();result=(compare_value=='')||(value==compare_value);}
return result;},is_valid_callback:function(id,parameter){var result=false;var value=$(id).getValue();var parameter_value=$H();if(!Object.isArray(parameter.parameter_field)){$H(parameter.parameter_field).each((function(item){parameter_value.set(item.key,$(item.value).getValue());}).bind(this));}
if(!Object.isArray(parameter.parameter_value)){$H(parameter.parameter_value).each((function(item){parameter_value.set(item.key,item.value);}));}
if(parameter.callback_plugin!=''){new Ajax.Request(parameter.url+'?js='+parameter.plugin+'&call='+parameter.action+'&value='+value+(parameter_value.size()==0?'':'&'+parameter_value.toQueryString()),{onSuccess:(function(response){if(response.responseText==1){this.set_valid(id);}else{this.set_invalid(id);}
this.update_item_style(this.get_item(id));this.update_submit();}).bind(this)});}
if(parameter.required==1&&value==""){result=false;}
return result;}});
