/**
* 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
* - /home/httpd/vhosts/schuletg.ch/httpdocs/i4/plugin/image/javascript/i4_image.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;}});var i4_Image={slider_counter:0,slider_started:[],translations:null,loader_src:'',set_translations:function(translations){this.translations=translations;},set_loader_src:function(src){this.loader_src=src;},listener_keydown_next:0,listener_keydown_prev:0,listener_keydown_esc:0,observe_tn:function(params){if($(params.gallery_container)){$(params.id).setStyle({'cursor':'pointer'});$(params.id).next('.plus').setStyle({'cursor':'pointer'});if($(params.view_id)){$(params.view_id).hide();}
$(params.id).observe('click',(function(){this.click(params)}).bind(this));$(params.id).next('.plus').observe('click',(function(){this.click(params)}).bind(this));}else{log('container "'+params.gallery_container+'" does not extist!');}},click:function(params){$$('.image_slider_container').each(function(item){item.hide();})
$(params.view_container).hide();$(params.gallery_container).show();Effect.ScrollTo(params.gallery_container,{duration:0.2,offset:-20});if(this.slider_started.indexOf($(params.gallery_container).down('.slider').readAttribute('id'))){this.slider_started.push($(params.gallery_container).down('.slider').readAttribute('id'));this.load_image(params.gallery_container,this.get_slide_index(params.gallery_container,params.view_id),params.view_container,params);var image=new Image();image.onload=(function(){$(params.view_id).down('img').show();$(params.gallery_container).down('img.loader_gif').hide();if($(params.gallery_container).down('.slider').childElements().size()>1){J('#'+$(params.gallery_container).down('.slider').readAttribute('id')).cycle({fx:'fade',speed:'1000',timeout:0,startingSlide:this.get_slide_index(params.gallery_container,params.view_id),next:'#'+params.gallery_container+' .next',prev:'#'+params.gallery_container+' .prev',cleartypeNoBg:true,fit:true,before:function(current,next,opts){$(params.gallery_container).down('img.loader_gif').show();var image=new Image();image.onload=function(){next.down('img').show();$(params.gallery_container).down('img.loader_gif').hide();i4_Image.renew_height(params.gallery_container,next);i4_Image.renew_height(current.up('.slider').readAttribute('id'),next);}
image.src=next.down('img').readAttribute('src');},after:function(current,next,opts){current.up('.slider').setStyle({'width':$(params.gallery_container).getStyle('width')});J('#'+params.gallery_container+' .position').html((opts.currSlide+1)+'/'+opts.slideCount);if((opts.currSlide+1)==opts.slideCount){$$('#'+params.gallery_container+' .next')[0].hide();}else{$$('#'+params.gallery_container+' .next')[0].show();i4_Image.load_image(params.gallery_container,opts.currSlide+1,params.view_container,params);}
if(opts.currSlide==0){$$('#'+params.gallery_container+' .prev')[0].hide();}else{$$('#'+params.gallery_container+' .prev')[0].show();i4_Image.load_image(params.gallery_container,opts.currSlide-1,params.view_container,params);}}});this.register_keylistener(params);}else{$(params.gallery_container).down('.slider').setStyle({'width':$(params.gallery_container).getStyle('width')});this.renew_height(params.gallery_container,$(params.gallery_container).down('.slider').childElements()[0]);$(params.view_id).show();$$('#'+params.gallery_container+' .next')[0].hide();$$('#'+params.gallery_container+' .prev')[0].hide();}}).bind(this);image.src=$(params.view_id).down('img').src;}else{var starting_slide=this.get_slide_index(params.gallery_container,params.view_id);var slider_id=$(params.gallery_container).down('.slider').readAttribute('id');this.load_image(params.gallery_container,starting_slide,params.view_container,params);this.register_keylistener(params);if($(params.gallery_container).down('.slider').childElements().size()>1){if(starting_slide!=null){J('#'+slider_id).cycle(starting_slide);}else{this.close(params);}}}},load_image:function(gallery_container,slide_index,view_container,params){var slide=$(gallery_container).down('.slider').down();if(slide_index>0){slide=slide.next(slide_index-1);}
if(slide.down().tagName.toLowerCase()!='img'){slide.insert({top:new Element('img',{src:slide.down('div.src').innerHTML,alt:slide.down('div.alt').innerHTML}).setStyle({'height':'auto','cursor':'pointer'}).hide().observe('click',(function(){this.close(params);}).bind(this))});slide.down('div.src').remove();slide.down('div.alt').remove();}},renew_height:function(gallery_container,current_view){var slider_top;if($(gallery_container).hasClassName('slider')){slider_top=current_view.getStyle('top');}else{slider_top=$(gallery_container).down('.slider').getStyle('top');}
var space=parseInt($('slider_navigation').getStyle('marginTop').sub('px',''))+parseInt(slider_top.sub('px',''))+$('slider_navigation').getHeight();var height=current_view.getHeight()+space+'px';$(gallery_container).setStyle({'height':height});},get_slide_index:function(gallery_container,view_id){var result=null;$$('#'+gallery_container+' .slider')[0].childElements().each((function(item,i){item.hide();if(item.readAttribute('id')==view_id){result=i;item.show();}}).bind(this));return result;},prepair_gallery_container:function(params){if(!$(params.gallery_container)){this.slider_counter++;$(params.view_container).insert({before:new Element('div',{'id':params.gallery_container}).addClassName('image_slider_container').setStyle({'float':'left','width':$(params.view_container).getWidth()-parseInt($(params.view_container).getStyle('paddingLeft').sub('px',''))+'px','marginLeft':$(params.view_container).getStyle('marginLeft'),'marginTop':$(params.view_container).getStyle('marginTop'),'paddingLeft':$(params.view_container).getStyle('paddingLeft')}).hide().insert({top:"<div id='slider_"+this.slider_counter+"' class='slider'></div>"}).insert({top:"<div id='slider_navigation'> <div class='left'><a class='prev' href='javascript://'>"+this.translations.prev+"</a></div> <div class='center'><span class='position'></span><a class='back_button' href='javascript://'>"+this.translations.back+"</a></div> <div class='right'><a class='next' href='javascript://'>"+this.translations.next+"</a></div> </div> "}).insert({top:new Element('img',{src:this.loader_src}).addClassName('loader_gif')})});$(params.gallery_container).down('img.loader_gif').setStyle({'left':($(params.gallery_container).getWidth()/2)-15+'px'});$$('#'+params.gallery_container+' .back_button')[0].observe('click',(function(){this.close(params);}).bind(this));}
$('slider_'+this.slider_counter).insert({bottom:$(params.view_id)});},register_keylistener:function(params){this.listener_keydown_next=i4_Document_listener.keydown({keys:[39],callback:(function(){if($$('#'+params.gallery_container+' .next')[0].getStyle('display')!='none'){J('#'+$(params.gallery_container).down('.slider').readAttribute('id')).cycle('next');}}).bind(this)});this.listener_keydown_prev=i4_Document_listener.keydown({keys:[37],callback:(function(){if($$('#'+params.gallery_container+' .prev')[0].getStyle('display')!='none'){J('#'+$(params.gallery_container).down('.slider').readAttribute('id')).cycle('prev');}}).bind(this)});this.listener_keydown_esc=i4_Document_listener.keydown({keys:[27],callback:(function(){this.close(params);}).bind(this)});},close:function(params){$(params.gallery_container).hide();$(params.view_container).show();i4_Document_listener.stop_keydown(this.listener_keydown_next);i4_Document_listener.stop_keydown(this.listener_keydown_prev);i4_Document_listener.stop_keydown(this.listener_keydown_esc);}}
