function createTabs($divs){
    var $ul = $('<ul>').addClass('tabs');
    if ($divs.length > 2){
        $divs.each(function(){
            var $div = $(this).css({
                'display': 'none'
            });
            var $li = $('<li>');
            var $a = $('<a>').attr('href', '#');
            var t = $div.find('legend').text();
            $a.text(t);
            $li.append($a);
            $a.click(function(){
                $divs.not($div).fadeOut(200,
                function(){
                    $div.fadeTo(300, 1);
                });
            });
            $ul.append($li);
        });
        $divs.first().before($ul);
        $ul.find('li').first().click();
    }
}

$(function(){
	var $top2 = $('#top2');
	var $inhalt = $('#inhalt');
	var pos = $inhalt.offset();
	
	var $flash = $('#flash-message');
	if($flash.length) {
		$flash.appendTo($inhalt).css({
			display: 'block',
			top:$top2.outerHeight(),
			left:pos.left + 100
		});
		var $m = $flash.children('div');
		$m.each(function(index) {
			$(this).appendTo($flash).delay(index*1000).slideDown(500,function() {
				$(this).delay(1500).slideUp(500, function() {
					$(this).remove();
				});
			});
			
		});
	}
    $('#fileupload').fileupload({
		url:'Upload.asp',
		singleFileUploads:true,
		autoUpload:true,
		maxNumberOfFiles:1,
		acceptFileTypes:'/(\.|\/)(gif|jpe?g|png)$/i'
	});

    // Load existing files:
    $.getJSON($('#fileupload form').prop('action'), function (files) {
        var fu = $('#fileupload').data('fileupload');
        fu._adjustMaxNumberOfFiles(-files.length);
        fu._renderDownload(files)
            .appendTo($('#fileupload .files'))
            .fadeIn(function () {
                // Fix for IE7 and lower:
                $(this).show();
            });
    });

    // Open download dialogs via iframes,
    // to prevent aborting current uploads:
    $('#fileupload .files a:not([target^=_blank])').live('click', function (e) {
        e.preventDefault();
        $('<iframe style="display:none;"></iframe>')
            .prop('src', this.href)
            .appendTo('body');
    });


	createTabs($('form.tabs fieldset'));
    //setupTooltip();
    $('#navigation a').click(function(e){
        var url = $(this).attr('href');
        url = url.replace(/^.*#/, '');
        $.history.load(url);
        return false;
    });
    $('#foot3').click(function(){
        message('message', 'ok');
        showSpinner();
    });
  $("img").not('.icon,.minibanner').lazyload({
       placeholder : "Bilder/T.gif",       
     threshold : 20,
       effect      : "fadeIn"
   });
  $("#youTubeList img").lazyload({
       placeholder : "Bilder/T.gif",       
       effect      : "fadeIn",
     threshold : 20,
     container: $('#youTubeList')
   });
    // css({'width':400, 'padding': '10px 0', 'margin': '-10px 0'})
    //$('ul.bandmusiker > li').addClass('ui-icon ui-icon-arrowthick-2-n-s');

    //$('ul.bandmusiker > li').draggable({axis:'y'});
    //$('ul.bandmusiker > ui-state-highlight').css({'padding': 5, 'width': 200});
    //window.setInterval(setupTermine, 5000);

    $('span.icon').live('mouseover mouseout',
    function(event){
        if (event.type == 'mouseover'){
            $(this).stop().animate({
                'scale': '1.10'
            });
        } else{
            $(this).stop().animate({
                'scale': '1'
            });
        };
    });
    afterPageLoad();
});
function afterPageLoad(){
    setupAutocompleteMusiker();
    setupForms();
    $('input[hint]').not('.hintReady').addClass('hintReady').hint();
    $('ul.bandmusiker').not('.sortable').addClass('sortable');
    // ui-widget ui-helper-clearfix');

    $('ul.sortable').not('.sortableReady').each(function(){
        var $ul = $(this).addClass('sortableReady');
        var connectWith = '';
        if ($ul.hasClass('bandmusiker')) connectWith = 'ul.bandmusiker';
        $ul.sortable({
            connectWith: connectWith,
            forcePlaceholderSize: true,
            placeholder: 'ui-state-highlight',
            tolerance: 'intersect',
            delay: 300,
            revert: true,
            cursor: 'move',
            revertDuration: 200,
            update: function(event, ui){

                },
            start: function(event, ui){
                var li = ui.item;
                li.css('opacity', 0.8);
            },
            stop: function(event, ui){
                var li = ui.item;
                li.css('opacity', 1);
            },

            receive: function(event, ui){
                var $li = ui.item;
                createHiddenPosMusiker($li);
            }
        }).disableSelection();
    });
    // checkboxIcons
    $('ZZZinput[type=checkbox],input[type=radio]').not('.checkboxReady').each(function(){
        var $input = $(this).addClass('checkboxReady');
        //.clone();
        var id = $input.attr('id');
        if (!id){
            id = createId();
            $input.attr('id', id);
        }
        var name = $input.attr('name');
        var $form = $input.closest('form');
        var $alle = $form.find('input[name="' + name + '"]').not($input);
        var $lab = $('label[for="' + id + '"]').removeAttr('for').attr('id', 'l-' + id);
        //$input.css({'position': 'relative', 'top':'-5px', 'left': '-22px', 'opacity':0.6});
        $input.css({'display': 'none'});

        var $span2 = $('<span>').attr('id', id + '-show').addClass('ui-icon');
        var $span1 = $('<span>').css('cursor', 'pointer').addClass('icon');
        var $form = $input.closest('form');
        //$span2.before($input);
        $span1.insertBefore($input);
        $span2.appendTo($span1);
        $input.appendTo($span1);
        $input.wrap('<span></span>');

        var showVal = function($input){
            var id = $input.attr('id');
            var val = $input.attr('checked');
            var $span2 = $('#' + id + '-show');
            if (val){
                $span2.removeClass('ui-icon-cancel').addClass('ui-icon-check');
            } else{
                $span2.removeClass('ui-icon-check').addClass('ui-icon-cancel');
            }
        }
        showVal($input);
        var showValAlle = function($input){
            var $form = $input.closest('form');
            var name = $input.attr('name');
            var $alle = $form.find('input[name="' + name + '"]').not($input);
            $alle.each(function(){
                showVal($(this));
            });
            showVal($input);
        }

        $span1.click(function(){
            var val = $input.attr('checked');
            var isRadio = $input.is('[type=radio]');
            if (isRadio){
                $alle.attr('checked', '');
            }
            if (val){
                $input.attr('checked', '');
            } else{
                $input.attr('checked', 'checked');
            }
            if (isRadio){
                showValAlle($input);
            } else{
                showVal($input);
            }
            $input.change();
        });
        $lab.click(function(){
            $span1.click();
        });
    });
    $('ul.sortable').find('li').not('.sortableReady').each(function(){
        var $li = $(this);
        $li.addClass('sortableReady');
        var $inLi = $li.children();
        //$li.css('border', '1px solid red');
        var $span1 = $('<span>').css('cursor', 'move').addClass('icon');
        // ui-corner-all
        var $span2 = $('<span>').addClass('ui-icon ui-icon-arrow-4');
        var $span3 = $('<span>').addClass('li').append($inLi);
        $span1.append($span2);
        $li.append($span1).append($span3);
    });
    $('span.icon').not('.hoverReady').each(function(){
        var $span = $(this);
        $span.addClass('ui-state-default hoverReady').hover(
        function(){
            $span.addClass('ui-state-hover');
        },
        function(){
            $span.removeClass('ui-state-hover');
        }
        );
    });
    $('a[atarget]').not('.targetReady').each(function(){
        var $a = $(this).addClass('targetReady');
        var ziel = $a.attr('atarget');
        var $ziel = $(ziel);

        if ($ziel.length){
            $a.bind('click.loadAjax',
            function(event){
                event.preventDefault();
                // load
                var href = '/A/page_' + $a.attr('href');
                var w = $ziel.width();
                var inside = 1;
                //$a.parents(ziel).length;
                if (inside){
                    debugAusgabe('lade');
                    showSpinner($ziel);
                    $ziel.fadeTo(300, 0.1).load(href,
                    function(){
                        hideSpinner();
                        debugAusgabe('geladen');
                        $ziel.stop().css({
                            'opacity': 0,
                            'display': 'block'
                        }).fadeTo(30, 1);
                        afterPageLoad();
                        debugAusgabe('after');
                    });

                } else{
                    var $quelle = $('div').css({
                        'position': 'absolute',
                        'display': 'none'
                    }).appendTo($ziel);
                    $quelle.html($ziel.html());
                    $ziel.html('');
                    $quelle.animate({
                        left: 200
                    });
                    $ziel.load(href,
                    function(){
                        $quelle.remove();
                        afterPageLoad();
                        $ziel.stop().css({
                            left: '-' + w + 'px',
                            opacity: 1
                        }).animate({
                            left: 0
                        },
                        function(){
                            });
                    });
                }
            });
        }
    });
    setupFancybox();
    setupHover();
    setupInputs();
    setupTinyMce();
    $('ul.tabs').not('.tabsReady').each(function(){
        var $ul = $(this).addClass('tabsReady');
        //var height=$ul.height();
        var $liAll = $ul.children('li').has('div.tabs');
        var $divAll = $liAll.children('div.tabs').css({
            'display': 'none'
        });

        $liAll.each(function(){
            var $li = $(this);
            var $div = $li.children('div.tabs');
            var id = getId($div);
            $div.insertAfter($ul);
            //debugAusgabe($div.length);
            $li.click(function(event){
                event.preventDefault();
                //				$divAll.not($div).css({'display':'none', 'position':'absolute', 'z-index':'-1'});
                $divAll.not($div).css({
                    'display': 'none'
                });
                //				$div.css({'position': 'relative', 'z-index':'1'}).fadeTo(1, 300);
                $div.css({
                    'display': 'block'
                });
                //$ul.css('height', $div.height() + height);
            });
        });
        $liAll.first().click();
    });
    $('.clipboard').not('.clipboardReady').each(function(){
        var $c = $(this).addClass('clipboardReady');
        var $body = $('body');

        var copy = function($c){
            var val = '';
            if ($c.is('input')){
                val = $c.val();
            } else{
                val = $c.text();
            }
            $body.attr('clipboard', val);
        }
        var empty = function($c){
            var val = $body.attr('clipboard');
            $body.attr('clipboard', '');
            paste($c);
            $body.attr('clipboard', val);
        }
        var paste = function($c){
            var val = $body.attr('clipboard');
            if ($c.is('input')){
                $c.val(val);
            } else{
                $c.text(val);
            }
        }
        if ($c.hasClass('copy')){
            if ($c.hasClass('onload')){
                copy($c);
            } else{
                $c.click(function(){
                    copy($c);
                });
            }
        }
        if ($c.hasClass('paste')){
            $c.click(function(){
                empty($c);
                paste($c);
            });
        }

    });
}
function createHiddenPosMusiker($li){
    var $ul = $li.closest('ul');
    var pos = $ul.attr('pos');
    var input = $ul.attr('input');
    var chk = $li.find('input').val();
    var $hid = $('#pos-' + chk);
    if ($hid.length == 0){
        $hid = $('<input />');
        $hid.attr('id', 'pos-' + chk).attr('type', 'hidden').val(chk).insertAfter($ul);
    }
    $hid.attr('name', input + pos);

}

function setupTinyMce(){
    var $textarea = $('textarea.tiny');
    $textarea.tinymce({
        script_url: '/js/tiny_mce/tiny_mce.js',
        theme: "advanced",
        language: 'de',
        width: 640,
        paste_remove_styles: true,
        theme_advanced_toolbar_location: 'top',
        theme_advanced_toolbar_align: 'center',
        theme_advanced_statusbar_location: 'bottom',
        theme_advanced_resizing: true,
        theme_advanced_resize_horizontal: false,
        theme_advanced_buttons1: 'formatselect,|,bullist,numlist,|,bold,italic,underline,strikethro,|,undo,redo,|,link,unlink,cleanup,code',
        theme_advanced_buttons2: '',
        theme_advanced_buttons3: '',
        height: $textarea.height()
    });
}
function setupTermine(){
    var div = $('div.jk_termine');
    div.each(function(){
        var termine = div.children('div.jk_termin');
        var anzahl = termine.length;
        var alt = div.attr('pos');
        alt = parseInt(alt);
        if (!alt){
            termine.css({
                'position': 'absolute',
                'display': 'none',
                'z-index': 0
            });
            alt = 1 + parseInt(Math.random() * (anzahl - 1 + 1));

        }
        var neu = alt + 1;
        if (neu > anzahl) neu = 1;
        termine.eq(alt - 1).css('z-index', 0).fadeOut(300);
        termine.eq(neu - 1).css('z-index', 1).fadeIn(400);
        div.attr('pos', neu);
    });
}
function getId($div){
    var id = $div.attr('id');
    if (!id){
        id = createId();
        $div.attr('id', id);
    }
    return (id);
}
function createId(){
    var $body = $('body');
    var z = 1;
    var id = $body.attr('createId');
    if (id){
        z = parseInt(id) + 1;
    }
    $body.attr('createId', z);
    return ('c' + z)
}
function setupForms(){

    var $forms = null;

    $forms = $('formZZZ');
    $forms.each(function(){
        var $form = $(this);
        if ($form.outerHeight() >= $(window).height() - 100){
            $form.find('input[type="text"],textarea,iframe body,select').not('.scrollToReady').each(function(){
                var $this = $(this);
                $this.addClass('scrollToReady');
                var $to = $this;
                var $toAlle = $form.find('input[type="text"],textarea,iframe body,select');
                $this.addClass('scrollToReady').bind('focus.scroll',
                function() {
                	if($to.hasClass('scroll')) {
                		
                	} else {
                		$toAlle.removeClass('scroll');
                		$to.addClass('scroll');
	                    $.scrollTo($to, 100, {
	                        offset: {
	                            top: -50
	                        },
	                        axis: 'y'
	                    });
                	}
                });
            });
        } else{
            debugAusgabe($form.outerHeight() + ' - ' + $(window).height());
        }
    });
	$('form .refreshAfterUpdate').not('.refreshAfterUpdateReady').each(function() {
		var $input=$(this).addClass('refreshAfterUpdateReady');
		var $form = $input.closest('form');
		var $refresh = $form.find('input.refresh').first();
		if($refresh.length) {
			$input.bind('change.refreshAfterUpdate', function() {
				$refresh.click();
			});
		}
	});
    $forms = $('form').not('.captchaReady');
    $forms.each(function(){
        var $form = $(this).addClass('captchaReady');
        var $hid = $('<input>').attr('type', 'hidden').attr('name', 'cap').val('').appendTo($form);
        $form.find('input,select,textarea,option').bind('mouseover mouseenter keydown click change',
        function(){
            //$hid.val(parseInt($hid.val())+1);
            $hid.val('1');
        });
        $form.submit(function(){
            var ok = true;
            if ($form.hasClass('submitted')){
                ok = false;
            } else{
                $form.addClass('submitted');
                formHide($form);
            }
            return (ok);
        });
    });
    $forms = $('form[ajax=1]').not('.ajaxReady');
    $forms.each(function(){
    	function showRequest(formData, jqForm, options) { 
			if(rabbi()) {
				var queryString = $.param(formData); 
				alert('About to submit: \n\n' + queryString); 
			}
		    return true; 
		} 
		function checkCancel(formData, jqForm, options) {
			var $form=jqForm[0];
			//showRequest(formData, jqForm, options);
			var params = {};
			$.each(formData, function(index,value) {
				params[value.name] = value.value;
			});
			var y = params['Y'];
			//alert(y);
			if(y) {
				// cancel
				if(jqForm.hasClass('hidden')) {
					jqForm.fadeOut();
					hideSpinner($form);
				}
				return(false);
			}
		}
        var $form = $(this).addClass('ajaxReady');
        var form_action=$form.attr('action');
        var $hid = $("<input>").attr('type', 'hidden').attr('name', 'ajax_action').attr('value', form_action).appendTo($form);
        var options = {
            //target:        '#output1',   // target element(s) to be updated with server response 
            beforeSubmit:  checkCancel,  // pre-submit callback 
            success: function(responseText, statusText, xhr, $form){
            	//if(rabbi()) alert('xxx: ' + responseText.status);
                //message(responseText.message, responseText.error);
                var status = responseText.status;
                if(status=="ok") {
                	formShowOK($form);
                } else {
                	formShowError($form);
                }
                formShow($form);
                switch(form_action) {
                	case 'Admin_FunctionExe.asp':
                	
                		break;
                	
                }
            },
            dataType: 'json',
            // other available options: 
            url:        '/A/Ajax_Form.asp'         // override for form's 'action' attribute 
            //type:      type        // 'get' or 'post', override for form's 'method' attribute 
            //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
            //clearForm: true        // clear all form fields after successful submit 
            //resetForm: true        // reset the form after successful submit 

            // $.ajax options can be used here too, for example: 
            //timeout:   3000 
        };
        $form.ajaxForm(options);
    });
    $forms = $('ZZZ_form[message]').not('messageReady');
    $forms.each(function(){
        var $form = $(this);
        $form.addClass('messageReady');
        var bn = $form.attr('button');
        var m = $form.attr('message');
        var b = $form.find('input[name="' + bn + '"]');
        if (b){
            //      b.css('border', '20px solid red');
            //alert(b.attr('value'));
            b.css('width',
            function(index){
                if (index == 0) index = b.innerWidth();
                index = index + 50;
                return (index);

            });
            $form.submit(function(){
                var ok = true;
                if ($form.hasClass('submitted')){
                    ok = false;
                } else{
                    $form.addClass('submitted');
                    b.attr({
                        'disabled': 'disabled',
                        'value': m
                    });
                    setInterval(function(){
                        var t = b.val();
                        //alert(t);
                        if (substr_count(t, '.') < 6){
                            if (t.substr(0, 1) != ' '){
                                t = ' ' + t;
                            }
                            b.val(t + ' .');
                        } else{
                            t = t.substr(1, t.length - 1) + t.substr(0, 1);
                            b.val(t);
                        }
                    },
                    150);
                }
                return ok;
            });
        }
    });
    $('input.jPicker').not('.jPickerReady').each(function(){
        var $this = $(this).addClass('jPickerReady');
        //var offset = $this.closest('ul').offset();
        //, speed: {show:200, hide:200}
        //, effects:{type:'fade'}
            //position: {
                //x: offset.left-100,
                //y: offset.top
            //},
        $this.jPicker({
            window: {
                title: 'Farbe auswählen'
            },
            images: {
                clientPath: '/JS/jPicker/images/'
            },
            localization: {
                text:
                {
                    title: 'Farbe auswählen',
                    newColor: 'neu',
                    currentColor: 'alt',
                    ok: 'OK',
                    cancel: 'abbrechen'
                }
            }
        }); //.css('display', 'none');
    });
    $('#form-termin').each(function(){
        var $input = null;
        var $form = $(this);
        var $veranstalter = $('#t_veranstalter');
        var $veranstalterId = $('#t_veranstalterid');
        var $datum = $('#t_datum');
        var $ort = $('#t_ort');
        var $ortId = $('#t_ortid');
        var $land = $('#t_land');
        var $landId = $('#t_landid');
        var $fest = $('#t_fest');
        var $festId = $('#t_festid');
        var $verein = $('#t_verein');
        var $vereinId = $('#t_vereinid');
        var $bandId = $('#t_bandid');
        
        //alert('1');
        // clear und load
        function getFestivals(){
            //alert('get festivals');
            var d = $datum.val();
            var o = $ortId.val();
            var json = null;
            if (d && o){
                var callback = function(){
                    afterPageLoad();
                };
                loadHtml('/A/Ul_Festivals.asp', {
                    'd': d,
                    'o': o,
                    'in': 'UL_FestID'
                },
                callback, '#divFestivals');
            }
        }
        function getVereine(){
            //alert('get vereine');
            var o = $ortId.val();
            var json = null;
            if (o){
                var callback = function(){
                    afterPageLoad();
                };
                loadHtml('/A/Ul_Vereine.asp', {
                    'o': o,
                    'in': 'UL_VereinID'
                },
                callback, '#divVereine');
            }
        }
        function getVeranstalter(id){
            //alert('getVeranstalter'+id);
            var v = loadJsonSync('/A/Veranstalter.asp', {
                'i': id
            }, $form);
            //alert(v);
            return(v);
        }
        function loadFestival(id) {
        	if(id) {
        		var v = getVeranstalter(id);
                $.each(v.ticketlinks, function(index, element){
                	var $l = $('<a>').attr('target', 'linktest').addClass('festival').text(element[2]).attr('href', element[4]);
                	$form.find('span.ticketsgefunden').append($l);
                });
        		
        	}
        }
		function loadVerein(id) {
			//
		}
        function loadVeranstalter(){
            clearVeranstalter();
            var id = $veranstalterId.val();
            function inputCheck(){
                if ($input.length){
                    var r = false;
                    if (!rabbi()){
                        if ($input.val()){
                            r = true;
                        }
                    }
                    if (r){
                        $input.attr('readonly', 'readonly');
                    }
                }
            }
            if(id){
                var v = getVeranstalter(id);
                var $input = null;

                $input = $form.find('input[name=v_strasse]').val(v.strasse);
                inputCheck();
                $input = $form.find('input[name=v_plz]').val(v.plz);
                inputCheck();
                $input = $form.find('input[name=v_email]').val(v.email);
                inputCheck();
                $input = $form.find('input[name=v_emailz]').val(v.emailz);
                inputCheck();
                $input = $form.find('input[name=v_homepage]').val(v.homepage);
                inputCheck();
                $input = $form.find('input[name=v_telefon]').val(v.telefon);
                inputCheck();
                $.each(v.ticketlinks, function(index, element){
                	var $l = $('<a>').attr('target', 'linktest').addClass('veranstalter').text(element[2]).attr('href', element[4]);
                	$form.find('span.ticketsgefunden').append($l);
                });
                //$form.find('p.ticketsgefunden > a.veranstalter').text(v.ticketlinkdomain).attr('href',v.ticketlink);
			}
		}
		function clearBand() {
			//$bandId.val(''); // geht nicht
			var $ulMusiker=$('#divBandMusiker');
			$ulMusiker.find('li, input').remove();
		}
        function loadBand() {
        	clearBand();
            var id = $bandId.val();
            if(id){
                getUlBandMusikerAlleMarkiert(id, '#divBandMusiker', 'T_Musiker', '');
            }
        }
        //alert('2');
        function clearOrt(){
            $ortId.val('');
            $ort.val('');
        }
        function clearVeranstalter(){
            $form.find('input[name^=v_]').val('');
            $form.find('span.ticketsgefunden > a.veranstalter').remove();
        }
        function clearVeranstalterId(){
            $veranstalter.val('');
            $veranstalterId.val('');
            clearVeranstalter();
        }

        function clearFestival(){
            //alert('clear festival');
            $fest.val('');
            $festId.val('');
            $form.find('span.ticketsgefunden > a.festival').remove();
        }
        function clearVerein(){
            //alert('clear festival');
            $verein.val('');
            $vereinId.val('');
        }

        // after update
        //alert('3');
        $landId.unbind('change.afterUpdate').bind('change.afterUpdate',
        function(){
            clearOrt();
            clearVeranstalterId();
            clearFestival();
			clearVerein();
        });
        $ort.unbind('change.afterUpdate').bind('change.afterUpdate',
        function(){

            });
        $datum.unbind('change.afterUpdate').bind('change.afterUpdate',
        function(){
            getFestivals();
        });
        $ortId.unbind('change.afterUpdate').bind('change.afterUpdate',
        function(){
            clearVeranstalterId();
            clearFestival();
            getFestivals();
			getVereine();
        });
        $veranstalterId.unbind('change.afterUpdate').bind('change.afterUpdate',
        function(){
            //if(id) getVeranstalterFormAdresse(id, '#veranstalter-adresse');
            //alert('v');
            loadVeranstalter();
            //alert('after');
        });
        /*
        $bandId.unbind('change.afterUpdate').bind('change.afterUpdate',
        function(){
            loadBand();
        });
        */
        //alert('4');
        $('input[name=UL_FestID]').change(function(){
        	clearFestival();
            var $input = $(this);
            var val = $input.attr('checked');
            var id = '';
            var t = '';
            if (val){
                id = 'l-' + $input.attr('id');
                t = $('#' + id).text();
                id = $input.attr('value');
	            $('#t_festid').val(id);
	            $('#t_fest').val(t);
	            loadFestival(id);
            }
        });
        $('input[name=UL_VereinID]').change(function(){
        	clearVerein();
            var $input = $(this);
            var val = $input.attr('checked');
            var id = '';
            var t = '';
            if (val){
                id = 'l-' + $input.attr('id');
                t = $('#' + id).text();
                id = $input.attr('value');
	            $('#t_vereinid').val(id);
	            $('#t_verein').val(t);
	            loadVerein(id);
            }
        });
        //alert('5');

    });
    $('#form-cd').each(function(){
        var $form = $(this);
        var $titel=$('#cd_titel');
    	var $interpret=$('#cd_interpret');
    	var $gefunden = $('#gefunden');

        var $li = $('#ulCD_BandMusiker li');
        //$('#cd_bandmusiker li').draggable();
        $li.find('input:checkbox').change(function(){
            var $ul = $(this).closest('ul');
            var pos = $ul.attr('pos');
            var $checkbox = $(this).attr('name', 'CD_MusikerID');
            var $ulmusiker = $('#cd_musikerid');
            $li.appendTo($ulmusiker).change(null);
            createHiddenPosMusiker($li);
        });

        $form.find('div.div-shop').each(function(){
            var slideSpeed = 800;
            var $div = $(this);
            var $fieldset = $div.closest('fieldset');
            var $a = $div.find('a.shop-suche');
            var $shopLink = $div.find('input.shop-link');
            var $shopLinkSuche = $div.find('input.shop-linksuche');
            var $shopId = $div.find('input.shop-id');
            var $open = $div.find('div.shop-suche');
            var $iframe = $open.find('iframe.shop-suche');
            var $menu = $div.find('div.shop-menu');
            var w = $(window).width() - 20;
            var h = $(window).height() - 20;
            $a.bind('click.shopsuche',
            function(){
                //$shopLink.val('http://www.kirschbaum-edv.de/webdesign');
                //$shopLink.val('http://www.dastelefonbuch.de/');
                var url = $shopLink.val();
                if (url == "") url = $shopLinkSuche.val();
                url = "/iframe.asp?jazzkalenderrequestparameter=" + escape(url);
                $iframe.add($menu).slideDown(slideSpeed,
                function(){
                    $.scrollTo($menu, slideSpeed);
                    $iframe.attr('src', url);
                });
                //$.scrollTo($this, 1500, {offset: {top:-50}, axis: 'y'});
            });
            var ende = function(){
                $iframe.add($menu).slideUp(slideSpeed,
                function(){
                    $.scrollTo($div, slideSpeed);
                    //$iframe.attr('src', '');
                });
            }
            $menu.find('a.ok').click(function(){
                $shopLink.val($iframe.contents().find('body').attr('url'));
                ende();
            });
            $menu.find('a.test').click(function(){
                $shopLink.val($iframe.contents().find('body').attr('url'));
            });
            $menu.find('a.cancel').click(function(){
                ende();
            });

        });

    });
}
function loadHtml(url, data, callback, div){
    if (div){
        var $div = $(div);
        $div.fadeOut(300).load(url, data,
        function(response, status, xhr){
            $div.stop().fadeTo(300, 1);
            hideSpinner();
            callback();
        });
    }
}
function loadJsonSync(url, data, $div){
    var j = null;
    formHide($div);
    $.ajax({
        url: url,
        cache:false,
        data: data,
        async: false,
        dataType: 'json',
        complete: function() {
        	formShow($div);
        },
        success: function(data){
            j = data;
        }
    });
    return (j);
}
function formHide($form){
    $form.animate({
        opacity: 0.3
    },
    300);
    showSpinner($form);
}
function formShow($form){
	$form.animate({
	        opacity: 1
	    },
	100);
	$form.removeClass('submitted');
	hideSpinner();
}
function formShowOK($form) {
	var alt=$form.css('background-color');
	$form.animate({
	        'background-color': '#85CF81'
	    },
	300, function() {
		$form.animate({
	        'background-color': alt
	    },300);
	});
}
function formShowError($form) {
	var alt=$form.css('background-color');
	$form.animate({
	        'background-color': '#FFBFC8'
	    },
	300, function() {
		$form.animate({
	        'background-color': alt
	    },300);
	});
	
}
function setupInputs(){
    $.datepicker.setDefaults($.datepicker.regional['']);
    $.datepicker.setDefaults({
        //showOn: 'both',
        //changeMonth: true,
        //changeYear: true,
        showAnim: '',
        numberOfMonths: [1, 3]
    });

    $("input.datum").not('.datumReady').each(function(){
        var $i = $(this).addClass('datumReady');
        $i.bind('keypress.mk',
        function(event){
            if (event.which == 44){
                event.preventDefault();
                $i.simulate('keypress', {
                    charCode: 46
                });
            }
        });
        $i.datepicker($.datepicker.regional['de']);
    });
    $("input.uhrzeit").not('.uhrzeitReady').each(function(){
        var i = $(this).addClass('uhrzeitReady');
        var w = 83; //parseFloat(i.css('width')) - 8;
        
        i.timePicker({
            step: 30,
            width: w
        });
    });
}
function setupTooltip(){
    var i = $('a[title]');
    if (i.length){
        i.tooltip({
            tip: '#tooltip',
            effect: 'fade',
            fadeOutSpeed: 100,
            predelay: 100,
            position: 'center right',
            opacity: 0.90
        });
    }
}
function setupAutocompleteMusiker(){
    inputs = $("input[rel='ajax_search']");
    //inputs.attr('autocomplete', 'off');
    inputs.each(function(){
        //    alert('hh');      
        var ms = $(this);
        var debug = ms.attr('debug');
        var was = ms.attr('was');
        var res = ms.attr('res');
        var ul = ms.attr('ul');
        var o1 = ms.attr('o1');
        if (o1){
            o1 = $('#' + o1).val();
        }
        var o2 = ms.attr('o2');
        if (o2){
            o2 = $('#' + o2).val();
        }
        var o3 = ms.attr('o3');
        var inputname = ms.attr('inputname');
        var inputid = ms.attr('inputid');
        if (inputid){
            var $inputid = $('#' + inputid);
        }
        //    var w = parseFloat(ms.css('width')) - 8;
        // default
        var mc = 3;
        var h = 250;
        var w = 500;
        var uurl = was;
        switch (was){
        case 'alles':
            h = 450;
            break;
        case 'konzert':
        case 'ort':
            uurl = 'ort';
            break;
        case 'land':
            mc = 1;
        case 'musiker':
        case 'band':
            break;
        case 'verein':
        case 'veranstalter':
        case 'festival':
            uurl = 'veranstalter';
            break;
        case 'musiker':
        case 'musiker2':
            uurl = 'musiker';
            break;
        }
        ms.unautocomplete().autocomplete(null, {
            url: 'A/' + uurl + '_Search.asp',
            extraParams: {
                'o1': o1,
                'o2': o2,
                'o3': o3
            },
            width: w,
            minChars: mc,
            highlight: false,
            multiple: false,
            matchContains: true,
            max: 300,
            scrollHeight: h,
            formatItem: function(data, i, n, value){
                var id = data[1];
                var feld = data[0];
                switch (was){
                case 'musiker':
                case 'band':
                case 'veranstalter':
                    var item = '';
                    var bild = data[2];
                    var bildwo = data[3];
                    var bildurl = '';
                    switch (bildwo){
                    case '1':
                        switch (was){
                        case 'musiker':
                            bildurl = '/~upload/MusikerBilder/' + bild;
                            break;
                        case 'band':
                            bildurl = '/~upload/BandBilder/' + bild;
                            break;
                        case 'veranstalter':
                            bildurl = '/~upload/VeranstalterBilder/' + bild;
                            break;
                        }
                        break;
                    case '2':
                        bildurl = "http://" + bild;
                        break;
                    }
                    if (bildurl == '') bildurl = '/Bilder/KeinThumb150.gif';

                    //item = feld + ' ' + bild;
                    item = "<span class='bild'><img src='" + bildurl + "' /></span><span class='text'>" + feld + "</span>";
                    return (item);
                    break;
                case 'ort':
                    return (feld);
                    break;
                default:
                    return (feld);
                    break;
                }
                //return value.split(".")[0];

            },
            formatResult: function(data, value){
                var id = data[1];
                var feld = data[0];
                switch (was){
                case 'musiker':
                    return (feld);
                    break;
                case 'band':
                    return (feld);
                    break;
                case 'veranstalter':
                    return (feld);
                    break;
                case 'ort':
                    return (feld);
                    break;
                }
            }
        });
        var temp = $('#temp');

        function msAfterUpdate(ms, was, id){
            switch (was){
            case 'ort':
                //
                //$('#t_ortid').change();
                break;
            case 'band':
                if ($('#t_bandid').length){
                    if(id) getUlBandMusikerAlleMarkiert(id, '#divBandMusiker', 'T_Musiker', '');
                }
                break;
            case 'veranstalter':

                break;
            case 'festival':
                //getFestivalFormAdresse(id, '#festival-adresse');
                break;
            }
            var alt = ms.val();
            ms.attr({
                'alt': alt,
                'result': ''
            });
			ms.fadeTo(100, 1, function() {
				ms.trigger('change');
			});
        }
        function prepareSanduhr($ms){
            var height = $ms.innerHeight();
            var width = $ms.innerWidth();
            var top = (height - 16) / 2;
            var left = width - 16 - 4;
            $ms.css('background-position', left + 'px ' + top + 'px');
        }

        ms.bind('focusin.autocomplete',
        function(){
            prepareSanduhr(ms);

            var alt = ms.val();
            ms.attr({
                'alt': alt,
                'result': ''
            });
        }).bind('focusout.autocomplete',
        function(){
            switch (res){
            case 'h':
                if($hidden.hasAttr('ac')) {
					var alt = ms.attr('alt');
					var neu = ms.val();
					var result = ms.attr('result');
					if (!result){
						if (alt != neu){
							$('#' + inputid).change();
							//msAfterUpdate(ms, was, id);
							$inputid.val('');
						} else{
						}
					}
				}
                break;
            }
        });
        ms.result(function(event, data, formatted){
            //var ms = $(this);
            ms.attr('result', '1');
            var was = ms.attr('was');
            var id = data[1];
            var res = ms.attr('res');
            var feld = data[0];
            var bild = null;
            var url = null;
            var $body = $('body');
            var append = ms.attr('append');
            //bild = data[0];
            switch (res){
            case 'h':
                // hidden field
                $('#' + inputid).val(id).change().attr('ac', id);
                break;
            case 'li1':
                var liId = inputname + '-' + id;
                var ist = $('#' + liId).length;
                var li = null;
                var li2 = null;
                var start = null;
                var ziel = null;
                var $ul = $('#' + inputid);
                if(ist){
                    li = $('#' + liId).closest('li');
                } else{
                    li = $('<li><input id="' + liId + '" name="' + inputname + '" checked="checked" value="' + id + '" type="checkbox"><label for="' + liId + '">' + feld + '</label></li>');
                }
                if (!inputid){
                    debugAusgabe('!inputid');
                } else{
                    start = ms.offset();
                    if (ist){
                        $('#' + liId).attr('checked', true);
                    } else{
                        li.css({
                            'opacity': 0
                        });
                        if (append == 1){
                            $ul.append(li);
                        } else{
                            $ul.prepend(li);
                        }
                    }
                    ms.val('').focus();
                    ziel = li.offset();
                    //
                    li2 = li.clone().css({
                        'list-style-type': 'none',
                        'z-index': 10,
                        'position': 'absolute',
                        'top': start.top,
                        'left': start.left,
                        'opacity': 1
                    });
                    $body.append(li2);
                    //afterPageLoad();
                    var ab = (ziel.top - start.top) / 100;
                    ab = 1 + ab / 10;
                    var t = 150 * ab;
                    li2.animate({
                        'left': start.left - 5
                    },
                    150).animate({
                        'top': ziel.top - 5,
                        'left': ziel.left - 5
                    },
                    t,
                    function(){
                        li2.animate({
                            'left': ziel.left
                        },
                        150,
                        function(){
                            li2.remove();
                            if(!ist) li.css('opacity', 1);
                        });
                    });
                }
                break;
            case 'goDetail':
                ms.val(feld);
                url = null;
                //debugAlert(id);
                switch (was){
                case 'band':
                    url = 'Jazz_Band.asp?ID=' + id;
                    break;
                case 'musiker':
                case 'musiker2':
                    url = 'Jazz_Musiker.asp?ID=' + id;
                    break;
                case 'veranstalter':
                    url = 'Jazz_Veranstalter.asp?ID=' + id;
                    break;
                case 'konzert':
                    if (!id){
                        url = 'Suche_Jazz_Konzert.asp';
                    } else{
                        url = 'Jazz_Konzerte.asp?' + feld + '=&OrtID=' + id;
                    }
                    break;
                }
                if (url){
                    window.location.href = url;
                }
                break;
            default:
                debugAlert('res!!!');
            }
			/*
            switch (was){
            case 'ort':
                msAfterUpdate(ms, was, id);
            case 'musiker':
                break;
            case 'musiker2':
                bild = data[2];
                break;
            case 'band':
                msAfterUpdate(ms, was, id);
                //getUlBandMusiker(id, '#ulBandMusiker', 'E1', '');
                break;
            case 'veranstalter':
                msAfterUpdate(ms, was, id);
                //getVeranstalterFormAdresse(id, '#veranstalter-adresse');
                break;
            case 'ort':
                break;
            }
			*/
            //this.parent().next('ul').append(li);
			msAfterUpdate(ms, was, id);
			afterPageLoad();
            //setupAutocompleteMusiker();
//            return(false);
        });
    });
}
function showSpinner($wo){
    var $body = $('body');
    $body.addClass('spinner');
    var $div = $('#spinner');
    if (!$div.length){
        $div = $('<div>').attr('id', 'spinner').addClass('ac_loading').appendTo('body');
    }
    var offset = $wo.offset();
    var top = offset.top;
    var h = $wo.outerHeight();
    if (h > 100){
        top = top + 50;
    } else{
        top = top + (h / 2) - 8;
    }
    var left = offset.left + ($wo.outerWidth() - 16) / 2;
    $div.css({
        'top': top,
        'left': left
    }).stop().fadeTo(1, 300);
}
function hideSpinner(){
    var $body = $('body');
    $body.removeClass('spinner');
    var $div = $('#spinner');
    if ($div.length){
        $div.stop().fadeOut();
    }

}
function getVeranstalterFormAdresse(id, div){
    var $div = $(div);
    var html = '';
    if ($div.length){
        showSpinner($div);
        $div.fadeOut(300).load("/A/VeranstalterFormAdresse.asp", {
            'i': id
        },
        function(response, status, xhr){
            //if(status) alert(xhr.status + " " + xhr.statusText);
            $div.stop().fadeTo(300, 1);
            hideSpinner();
            //afterPageLoad();
        });
    }
}
function getVeranstalternichtbenutzt(id, callback){
    loadJson("/A/Veranstalter.asp", {
        'i': id
    },
    callback);
}
function getUlBandMusiker(bandid, div, inputname, tags){
    var $div = $(div);
    var $form = $div.closest('form');
    var html = '';
    if ($div.length){
        showSpinner($form);
        $div.load("/A/UlBandMusiker.asp", {
            'bandid': bandid,
            'i': inputname,
            't': tags
        },
        function(response, status, xhr){
            hideSpinner();
//            $div.stop().fadeTo(300, 1);
            afterPageLoad();
        });
    }
}
function getUlBandMusikerAlleMarkiert(bandid, div, inputname, tags){
    var $div = $(div);
    var html = '';
    var $form = $div.closest('form');
    if ($div.length){
        formHide($form);
        $div.load("/A/UlBandMusikerAlleMarkiert.asp", {
            'bandid': bandid,
            'i': inputname,
            't': tags
        },
        function(response, status, xhr){
            formShow($form);
            //$div.stop().fadeTo(300, 1);
            afterPageLoad();
        });
    }
}
function HoverTerminEditShow(id){
    var TerminIDdiv = '';

}
function HoverTerminEdit(){
    var id = $('a.hte').attr('href');
    var i = id.indexOf('ID=');
    if (i != -1){
        id = id.substr(i + 3);
    }
    TerminID = id;
    $('a.hte').attr('href', '#');
    $('a.hte').hover(function(){
        $('div.TE').slideUp();
        $('#TE' + id).slideDown();
    });
    $('#TE' + id).mouseout(function(){
        $('#TE' + id).slideUp();
    });
    $('a.hte').mouseout(function(){
        $('#TE' + id).slideUp();
    });
}
function message(mess, stil){
    var tempo = 150;
    var warten = 800;

    m = $("#message");
    m.removeClass().addClass(stil).text(mess);

    y = $(window).height() / 3;
    x = $(window).width() / 2;
    m.width(x);
    m.height(y);

    y = $(window).height() / 6;
    x = $(window).width() / 4;

    m.css('top', y).css('left', x);

    m.fadeIn(tempo).delay(warten).fadeOut(tempo);
}
function rabbi(){
    var i = $('#foot3').length;
    return i;
}
function debugAusgabe(data){
    $('#foot3').prepend('<p>' + data + '</p>');
}
function debugAlert(data){
    if (rabbi()) alert(data);
}
function jsaktiv(m){
    alert(m);
}
function getMusiker(nachname, vorname){

    }
function nixx(){

    }
function setupHover(){
    var t = 300;
    $('div.jk_detail img.jk_foto').not('.hoverReady').each(function(){
        var img = $(this).addClass('hoverReady');
        img.hover(function(){
            var position = img.position();
            img.stop().css({
                'border': '6px solid #FFECCF',
                'position': 'absolute',
                'top': position.top - 6,
                'left': position.left - 6
            });
        },
        function(){
            img.stop().css({
                'border': 'none',
                'position': '',
                'top': '',
                'left': ''
            });
        });
    });

    $('li[rechts]').not('.rechtsReady').each(function(){
    	var $li = $(this).addClass('rechtsReady');
    	var $a = $li.children('a').attr('href', '#');
        $a.click(function(){
	        var $ul = $li.closest('ul');
        	var $lis=$ul.children('li[rechts]').not($li);
        	$lis.each(function() {
        		var $li = $(this);
        		var $div = $li.children($li.attr('rechts'));
        		if($div.hasClass('show')) {
	        		$div.stop().slideUp(t).removeClass('show');
	        		$div.find('input').val('');
        		}
        	});
			$('div.ac_results').slideUp(t);
        	var $div = $li.children($li.attr('rechts'));
        	$div.stop();
        	if($div.hasClass('show')) {
            	$div.slideUp(t).removeClass('show');
        	} else {
        		$div.slideDown(t).addClass('show').find('input').focus();
        	}
        	/*
            var alle = $('li[rechts]').not(li);
            alle.each(function(){
                var li = $(this);
                var div = li.attr('rechts');
                div = li.children(div);
                div.stop().slideUp(t);
                div.find('input').val('');
                $('div.ac_results').slideUp(t);
            });
            var div = li.attr('rechts');
            div = li.children(div);
            div.stop().slideDown(t);
            div.find('input').focus();
            */
        });
    });
    $('ul.tabs > li').hover(function(){
        var li = $(this);
        ul = li.find('ul.tabs');
        ul.stop().fadeTo(t, 1);
    },
    function(){
        var li = $(this);
        ul = li.find('ul.tabs');
        ul.stop().fadeOut(t / 2);

    });
	$('img.icon').hover(function(){
        $(this).stop().animate({
            scale: '1.05 1.05'
        },
        t);
    },
    function(){
        $(this).stop().animate({
            scale: '1 1'
        },
        t / 2);
    });
    $('ul.ulKlein > li').hover(function(){
        d = $(this).find('div.infos');
        c = d.find('div.copyright');
        c.fadeIn(t);

        //    c=d.find('.jk_fotoThumb');
        //  c.removeClass('jk_fotoThumb').addClass('jk_fotoThumb2');
        d.stop().css({
            'z-index': 1000,
            'display': 'block'
        }).animate({
            'left': '-50px',
            'top': '-50px',
            'opacity': 1,
            'width': 380,
            'height': 160
        },
        t);
        d = d.find('.jk_fotoThumb2');
        if (d) d.stop().switchClass('jk_fotoThumb2', 'jk_fotoThumb', t);
    },
    function(){
        d = $(this).find('div.infos');
        c = d.find('div.copyright');
        c.css('display', 'none');

        //c=d.find('.jk_fotoThumb2');
        //c.removeClass('jk_fotoThumb2').addClass('jk_fotoThumb');
        d.stop().css('z-index', 5).animate({
            'left': '0',
            'top': '0',
            'opacity': 0.1,
            'width': 300,
            'height': 60
        },
        t,
        function(){
            $(this).css('display', 'none');
        });
        d = d.find('.jk_fotoThumb');
        d.stop().switchClass('jk_fotoThumb', 'jk_fotoThumb2', t);
    });
    $('#zzz ul.ulKlein > li').hover(function(){
        d = $(this).find('div.infos');
        d.stop().css('z-index', 10).animate({
            'left': '-50px',
            'top': '-50px',
            'opacity': 1,
            'width': 380,
            'height': 160
        },
        400);
        d = d.find('img');
        d.animate({
            'height': '120'
        });
    },
    function(){
        d = $(this).find('div.infos');
        d.stop().css('z-index', 0).animate({
            'left': '0',
            'top': '0',
            'opacity': 0.7,
            'width': 280,
            'height': 60
        },
        400,
        function(){
            $(this).css('display', 'none');
        });
        d = d.find('img');
        d.animate({
            'height': '60'
        });
    });
}
function isset(varname){
    return (typeof(window[varname]) != 'undefined');
}
function setupFancybox(){
    $('.fancybox').not('.fancyboxReady').each(function(){
        var $t = $(this);
        $t.addClass('fancyboxReady').fancybox({
            modal: true
        });
    });
    $('#youTubeList a').not('.fancyboxReady').each(function(){
        var $a = $(this);
        $a.addClass('fancyboxReady').click(function(){
            var $div = $('#jwplayer');
            if ($div.length == 0){
                var $div = $('<div>').css('display', 'none').attr('id', 'jwplayer').appendTo('body');
            }
            var href = $a.attr('href');
            //href = '/js/jwplayer/player.asp?v=' + href;
            //alert();
            //location.href = href;
            $.fancybox({
                'padding': 0,
                'autoScale': true,
                'transitionIn': 'elastic',
                'transitionOut': 'elastic',

                'width': 605,
                'height': 440,
                'href': '#jwplayer',
                'type': 'swf',
                'swf': {
                    'wmode': 'transparent',
                    'allowfullscreen': 'true'
                }
            });
            var so = new SWFObject('/js/jwplayer/player.swf', 'ply', '605', '440', '9', '#000000');
            so.addParam('allowfullscreen', 'true');
            so.addParam('allowscriptaccess', 'always');
            so.addParam('wmode', 'opaque');
            so.addVariable('file', href);
            so.addVariable('autostart', 'true');
            so.write('fancybox-inner');
            //$div.css('display', 'block');
            return (false);
        });
    });
    $('#alt_youTubeList a').not('.fancyboxReady').each(function(){
        var $a = $(this);
        $a.addClass('fancyboxReady').click(function(){
            $.fancybox({
                'padding': 0,
                'autoScale': true,
                'transitionIn': 'elastic',
                'transitionOut': 'elastic',

                'width': 605,
                'height': 440,
                'href': this.href.replace(new RegExp("watch\\?v=", "i"), 'v/') + '&autoplay=1',
                'type': 'swf',
                'swf': {
                    'wmode': 'transparent',
                    'allowfullscreen': 'true'
                }
            });
            return (false);
        });
    });
}
