window['geoplan'] = {

    version: '2.0.0',

    countries_accordion: null,

    sidebar_accordion: null,

    boxes_scroller: null,

    tabs: null,

    slideshow: null

};



window.addEvent('domready',
function() {



    geoplan.image_big = ($('image_big')) ? $('image_big') : false;

    geoplan.image_big_default = ($('image_default')) ? $('image_default') : false;

    geoplan.image_big_active = ($('image_active')) ? $('image_active') : false;

    geoplan.image_big_slideshow = ($('slideshow')) ? $('slideshow') : false;



    geoplan.boxes = ($('boxes')) ? $('boxes') : false;



    geoplan.preview_text_left = ($('preview_text_left')) ? $('preview_text_left') : false;

    geoplan.preview_text_right = ($('preview_text_right')) ? $('preview_text_right') : false;

    geoplan.default_text_left = ($('default_text_left')) ? $('default_text_left') : false;

    geoplan.default_text_right = ($('default_text_right')) ? $('default_text_right') : false;

    geoplan.content_top_left = ($('content_top_left')) ? $('content_top_left') : false;



    if ($('Datum01') && $('Datum02')) {

        var cal01 = new Calendar({
            'Datum01': 'd.m.Y'
        });

        var cal02 = new Calendar({
            'Datum02': 'd.m.Y'
        });

    }



    if ($('Abfahrtstermin') && $('Rueckkunftstermin')) {

        var cal01 = new Calendar({
            'Abfahrtstermin': 'd.m.Y'
        });

        var cal02 = new Calendar({
            'Rueckkunftstermin': 'd.m.Y'
        });

    }
    
    if ($('countries')) {
    	
    }    	

/*
    if ($('countries')) {

        var is_ie6_or_7 = false;

        var start_element = -1;

        if (Browser.Engine.name == 'trident' && (Browser.Engine.version == 4 || Browser.Engine.version == 5)) {

            //start_element = 1;

            is_ie6_or_7 = true;

        }

        geoplan.countries_accordion = new Fx.Accordion($$('#countries .country_area'), $$('#countries .countries'), {

            display: start_element,

            alwaysHide: true,

            onActive: function(toggler, element) {

				if(is_ie6_or_7) {

					if(toggler.get('text')=='Asien') {

						element.setStyle('height', '200px');

						element.setStyle('overflow', 'visible');

					}					

				}

                var active_regions = (toggler.getParent().getElement('.regions.active')) ? toggler.getParent().getElement('.regions.active') : false;

                if (active_regions) {

                    active_regions.addClass('hide').removeClass('active');

                    element.removeClass('hide');

                }

            },

            onBackground: function(toggler, element) {

                if (is_ie6_or_7) {

                    if (toggler.get('text') == 'Asien') {

                        element.setStyle('height', '300px');

                        element.setStyle('overflow', 'hidden');

                    }

                }
                
            }

        });

    }



    if ($('countries') && $('themes')) {

        geoplan.sidebar_accordion = new Fx.Accordion($$('.accordion h3'), $$('.accordion .accordion_content'), {

            display: -1,

            alwaysHide: true,

            onActive: function(toggler, element) {

                if (toggler.getParent().getProperty('id') == 'countries') {

                    element.setStyle('height', '300px');

                }

                /*

				var active_regions = (toggler.getParent().getElement('.regions.active')) ? toggler.getParent().getElement('.regions.active') : false;

				if(active_regions) {

					active_regions.addClass('hide').removeClass('active');

					element.removeClass('hide');

				}

				*/
/*
            }

        });

    }
*/


    if ($('area_catalogs')) {

        $$('#area_catalogs .catalog input').each(function(input) {

            input.addEvent('click',
            function(e) {

                var input_id = input.getProperty('id');

                var copy_id = input_id + '_copy';

                if (input.checked) {

                    var copy = input.clone();

                    copy.setProperty('id', copy_id).addClass('hide');

                    $('form_Katalog').adopt(copy);

                } else {

                    if ($(copy_id)) {

                        $(copy_id).dispose();

                    }

                }

            });

        });

    }



    if ($$('ul.icons')) {

        var list_items = $$('ul.icons li');

        new Tips(list_items, {

            title: function(el) {

                return el.getProperty('title');

            },

            text: function(el) {

                return el.getElement('img').getProperty('alt');

            }

        });

    }



    if ($('offer_tabs')) {

        geoplan.tabs = new mootabs('offer_tabs', {

            height: 'auto',

            changeTransition: 'none'

        });

    }



    if (geoplan.boxes) {

        if (Number(geoplan.boxes.getScrollSize().y) <= 300) {

            if ($('scroll_up')) {

                $('scroll_up').addClass('hide');

            }

            if ($('scroll_down')) {

                $('scroll_down').addClass('hide');

            }

        }

        geoplan.boxes_scroller = new Fx.Scroll(geoplan.boxes, {

            onComplete: function() {

                if (Number(geoplan.boxes.getScroll().y) == 0) {

                    if ($('scroll_up')) {

                        $('scroll_up').addClass('hide');

                    }

                } else {

                    if ($('scroll_up')) {

                        $('scroll_up').removeClass('hide');

                    }

                }



                if (Number(geoplan.boxes.getScroll().y) >= (Number(geoplan.boxes.getScrollSize().y) - 300)) {

                    if ($('scroll_down')) {

                        $('scroll_down').addClass('hide');

                    }

                } else {

                    if ($('scroll_down')) {

                        $('scroll_down').removeClass('hide');

                    }

                }

            }

        }).toTop();



        if ($('scroll_down')) {

            $('scroll_down').addEvent('click',
            function(e) {

                new Event(e).stop();

                geoplan.scrollDown();

            });

        }



        if ($('scroll_up')) {

            $('scroll_up').addEvent('click',
            function(e) {

                new Event(e).stop();

                geoplan.scrollUp();

            });

        }

    }



    geoplan.setBigImageDefault = function(image_url) {

        if (geoplan.image_big) {

            geoplan.image_big_default.empty().adopt(new Element('img', {

                'src': image_url

            }));

        }

    }



    /* Suckerfish Dropdown */

    $$('#navi ul li').each(function(li) {

        li.addEvents({

            'mouseover': function() {

                li.addClass('sfhover');

            },

            'mouseout': function() {

                li.removeClass('sfhover');

            }

        })

    });



    $$('#sidebar #countries h4').each(function(h4) {

        h4.addEvents({

            'mouseover': function() {

                h4.setStyle('background', '#EFEADB');

            },

            'mouseout': function() {

                h4.setStyle('background', '#F4F1E7');

            }

        });

    });



    $$('.play').each(function(button) {

        button.addEvents({

            'click': function(e) {

                new Event(e).stop();

                var slides = (button.getParent().getElements('.slides a')) ? button.getParent().getElements('.slides a') : false;

                if (slides) {

                    var data = {};

                    slides.each(function(slide) {

                        data[slide.getProperty('href')] = {
                            caption: slide.get('text')
                        };

                    });

                    geoplan.beforeSlideshow();

                    geoplan.slideshow = new Slideshow('slideshow', data, {
                        captions: true,
                        controller: false,
                        delay: 2000,
                        height: 290,
                        linked: true,
                        width: 359
                    });

                }

            }

        });

    });



    $$('a.box').each(function(box, index) {

        box.addEvents({

            'mouseenter': function() {

                /* special behaviour for team page*/

                if (box.hasClass('team')) {

                    var preview = (box.getParent().getElement('.preview')) ? box.getParent().getElement('.preview').clone() : false;

                    geoplan.showTeamPreview(preview);

                } else {

                    var left = (box.getParent().getElement('.preview_left')) ? box.getParent().getElement('.preview_left').get('html') : false;

                    var right = (box.getParent().getElement('.preview_right')) ? box.getParent().getElement('.preview_right').get('html') : false;

                    geoplan.showPreview(left, right);

                }

            },

            'mouseleave': function() {

                geoplan.hidePreview();

            },

            'click': function(e) {

                if (box.getProperty('href') == "#") {

                    new Event(e).stop();

                }

            }

        });

    });



    $$('.box img').each(function(image, index) {

        if (geoplan.image_big && image.getProperty('src') != null) {

            var image_big_url = image.getProperty('src');

            //image_big_url = image_big_url.replace(/_s./g, ".");


            if (index == 0) {

                geoplan.setBigImageDefault(image_big_url);

            }

            image.addEvents({

                'mouseover': function() {

                    if (geoplan.slideshow == null) {

                        geoplan.showBigImage(image_big_url);

                    }

                },

                'mouseout': function() {

                    if (geoplan.slideshow == null) {

                        geoplan.showBigImageDefault();

                    }

                },

                'click': function() {

                    geoplan.destroySlideshow();

                    geoplan.showBigImage(image_big_url);

                }

            });

        }

    });



    $$('#countries .country a').each(function(link) {

        link.addEvent('click',
        function(e) {

            //new Event(e).stop();
            var country_id = link.getProperty('id').substr(12, 5);

            var regions = ($('region_' + country_id)) ? $('region_' + country_id) : false;

            if (regions) {

                /* hide other countries of that area */

                link.getParent().getParent().getParent().addClass('hide');

                regions.removeClass('hide').addClass('active').addEvent('click',
                function(e) {

                    link.getParent().getParent().getParent().removeClass('hide');

                    regions.addClass('hide').removeClass('active');

                });

            }

        });

    });



    geoplan.showBigImage = function(image_url) {

        var image = new Element('img', {

            'src': image_url

        });

        geoplan.resizeImage(image, geoplan.image_big);

        geoplan.image_big_active.empty().adopt(image);

        geoplan.image_big_default.addClass('hide');

        geoplan.image_big_active.removeClass('hide');



    };



    geoplan.beforeSlideshow = function() {

        geoplan.image_big_active.addClass('hide');

        geoplan.image_big_default.addClass('hide');

        geoplan.image_big_slideshow.empty().removeClass('hide');

    };



    geoplan.destroySlideshow = function() {

        if (geoplan.slideshow != null) {

            geoplan.slideshow.destroy();

            geoplan.slideshow = null;

            geoplan.image_big_slideshow.addClass('hide');

        }

    };



    geoplan.showBigImageDefault = function() {

        geoplan.image_big_active.addClass('hide');

        geoplan.image_big_default.removeClass('hide');

    };



    geoplan.showPreview = function(left, right) {

        if (left && geoplan.default_text_left) {

            geoplan.default_text_left.addClass('hide');

            geoplan.preview_text_left.empty().set('html', left).removeClass('hide');

        }

        if (right && geoplan.default_text_right) {

            geoplan.default_text_right.addClass('hide');

            geoplan.preview_text_right.empty().set('html', right).removeClass('hide');

        }

    };



    geoplan.showTeamPreview = function(preview) {

        if (preview && geoplan.content_top_left) {

            geoplan.content_top_left.getElements('span.preview').destroy();

            geoplan.content_top_left.adopt(preview.removeClass('hide'));

        }

    };



    geoplan.hidePreview = function() {

        if (geoplan.preview_text_left && geoplan.default_text_left) {

            geoplan.preview_text_left.addClass('hide');

            geoplan.default_text_left.removeClass('hide');

            geoplan.preview_text_right.addClass('hide');

            geoplan.default_text_right.removeClass('hide');

            if (geoplan.content_top_left) {

                geoplan.content_top_left.getElements('span.preview').destroy();

            }

        }

    };



    geoplan.scrollDown = function() {

        var y = Number(geoplan.boxes.getScroll().y),

        y_scroll = y + 100;

        if (geoplan.boxes_scroller != null) geoplan.boxes_scroller.start(0, y_scroll);

    };



    geoplan.scrollUp = function() {

        var y = geoplan.boxes.getScroll().y,

        y_scroll = y - 300;

        if (geoplan.boxes_scroller != null) geoplan.boxes_scroller.start(0, y_scroll);

    };



    geoplan.resizeImage = function(image, container) {

        var width = container.getSize().x;

        var height = container.getSize().y;

        var new_ratio = width / height;

        var image_ratio = image.width / image.height;

        var new_width;

        var new_heigth;



        if (image_ratio < new_ratio) {

            //Hochformat
            new_width = Math.ceil(height * image_ratio);

            new_height = height;

        } else {

            new_width = width;

            new_height = Math.ceil(width / image_ratio);

        }



        image.setProperty('width', new_width);

        image.setProperty('height', new_height);



    };





    if ($('Rueckruf')) {

        var cal01 = new Calendar({
            'Datum01': 'd.m.Y'
        });

        var cal02 = new Calendar({
            'Datum02': 'd.m.Y'
        });

    }



    if ($('Anfrage')) {

        var cal01 = new Calendar({
            'Abfahrtstermin': 'd.m.Y'
        });

        var cal02 = new Calendar({
            'Rueckkunftstermin': 'd.m.Y'
        });

    }



    if ($('weitereErwachsene')) {

        var i_Erwachsener = 4;

        $('weitereErwachsene').addEvent('click',
        function(e) {

            i_Erwachsener++;

            var div_row = new Element('div', {

                'class': 'form_row'

            });

            var label = new Element('label', {

                'class': 'size01',

                'for': 'Erwachsener' + i_Erwachsener

            }).set('text', i_Erwachsener + '.');

            var input = new Element('input', {

                'class': 'size09',

                'type': 'text',

                'name': 'Erwachsener' + i_Erwachsener

            });

            div_row.adopt(label).adopt(input).injectBefore($('weitereErwachsene').getParent());

        });

    }



    if ($('weitereKinder')) {

        var i_Kinder = 2;

        $('weitereKinder').addEvent('click',
        function(e) {

            i_Kinder++;

            var div_row = new Element('div', {

                'class': 'form_row'

            });

            var label_name = new Element('label', {

                'class': 'size01',

                'for': 'Kind' + i_Kinder

            }).set('text', i_Kinder + '.');

            var input_name = new Element('input', {

                'class': 'size06 rightspace01',

                'type': 'text',

                'name': 'Kind' + i_Kinder

            });

            var label_birthdate = new Element('label', {

                'class': 'size04',

                'for': 'GeburtKind' + i_Kinder

            }).set('text', 'Geburtsdatum:');



            var input_birthdate = new Element('input', {

                'class': 'size03',

                'type': 'text',

                'name': 'GeburtKind' + i_Kinder

            });

            div_row.adopt(label_name).adopt(input_name).adopt(label_birthdate).adopt(input_birthdate).injectBefore($('weitereKinder').getParent());

        });

    }

	function validateEmail(email) {
	 var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	 if(reg.test(email)) {
	 return true;
	 } else {
	 return false;
	 }
	}
 

    if($('form_Anfrage')) {
		$('form_Anfrage').addEvent('submit', function(e){
			//new Event(e).stop();
			if($('Name').get('value')!='') {
				if($('Vorname').get('value')!='') {
					if($('Strasse_Nr').get('value')!='') {
						if($('Ort_PLZ').get('value')!='') {
							if(validateEmail($('e-mail').get('value')) && ($('Vorwahl').get('value')!='' && $('Durchwahl').get('value')!='')) {
								if($('Erwachsener').get('value')!='') {
									return true;
								} else {
									alert('Bitte geben Sie die Namen der Reiseteilnehmer ein.');
									$('Erwachsener').focus();	
								}
							} else {
								alert('Bitte eine gueltige E-Mail-Adresse und Telefonnummer eingeben.');
								$('e-mail').focus();
							}
						} else {
							alert('Bitte Ort und PLZ eingeben.');
							$('Ort_PLZ').focus();
						}
					} else {
						alert('Bitte Strasse und Haus-Nr. eingeben.');
						$('Strasse_Nr').focus();
					}
					
				} else {
					alert('Bitte Vorname eingeben.');
					$('Vorname').focus();
				}
			} else {
				alert('Bitte Name eingeben.');
				$('Name').focus();
			}
			return false;
		});
	}
	
	if($('form_Rueckruf')) {
		$('form_Rueckruf').addEvent('submit', function(e){
			if($('Name').get('value')!='') {
				if($('Vorname').get('value')!='') {
					if($('Vorwahl').get('value')!='' && $('Durchwahl').get('value')!='') {
						if($('Datum01').get('value')!='') {
							return true;
						} else {
							alert('Bitte ein g�ltiges Datum eingeben.');
							$('Datum01').focus();
						}
					} else {
						alert('Bitte eine g�ltige Telefonnummer eingeben.');
						$('Vorwahl').focus();
					}
				} else {
					alert('Bitte Vorname eingeben.');
					$('Vorname').focus();
				}
			} else {
				alert('Bitte Name eingeben.');
				$('Name').focus();
			}
			return false;
		});
	}

	if($('form_Newsletter')) {
		$('form_Newsletter').addEvent('submit', function(e){
			//new Event(e).stop();
			if($('Name').get('value')!='') {
				if($('Vorname').get('value')!='') {
					if(validateEmail($('e-mail').get('value'))) {
						if($('confirm').get('value')) {
							return true;
						} else {
							alert('Bitte best�tigen Sie, dass Sie aktuelle Informationen\nund exklusive Angebote erhalten m�chten.');
						}	
					} else {
						alert('Bitte eine g�ltige E-Mail Adresse eingeben.');
						$('e-mail').focus();
					}
				} else {
					alert('Bitte Vorname eingeben.');
					$('Vorname').focus();
				}
			} else {
				alert('Bitte Name eingeben.');
				$('Name').focus();
			}
			return false;
		});
	}

	if($('form_Katalog')) {
		$('form_Katalog').addEvent('submit', function(e){
			//new Event(e).stop();
			if($('Name').get('value')!='') {
				if($('Vorname').get('value')!='') {
					if($('Strasse_Nr').get('value')!='') {
						if($('Ort_PLZ').get('value')!='') {
							if($('Durchwahl').get('value')!='') {
								return true;
							} else {
								alert('Bitte Telefonnummer eingeben.');
								$('Vorwahl').focus();
							} 
						} else {
							alert('Bitte Ort und PLZ eingeben.');
							$('Ort_PLZ').focus();
						}
					} else {
						alert('Bitte Strasse und Hausnummer eingeben.');
						$('Strasse_Nr').focus();
					}
				} else {
					alert('Bitte Vorname eingeben.');
					$('Vorname').focus();
				}
			} else {
				alert('Bitte Name eingeben.');
				$('Name').focus();
			}
			return false;
		});
	}

});



function toggleMenu(handle) {
	var nextSibling = $(handle).getNext();
	var parent = $(handle).getParent();

	$$('.accordion_content').each(function (element) {
		if ((element != nextSibling) && (element != parent)) {
			element.addClass('hide');
		}
	});
	$$('.countries').each(function (element) {
		if (element != nextSibling) {
			element.addClass('hide');
		}
	});
	$$('.regions').each(function (element) {
		if (element != nextSibling) {
			element.addClass('hide');
		}
	});
	
	
	nextSibling.toggleClass('hide');
}




