
var isIE7 = false;
var isIE6 = false;
if($.browser.msie && parseFloat($.browser.version.substr(0,3))<"8"){ isIE7 = true; }
if($.browser.msie && parseFloat($.browser.version.substr(0,3))<"7"){ isIE6 = true; isIE7 = false; }

// make sure indexOf is supported
if(!Array.indexOf){
    Array.prototype.indexOf = function(obj, start){
        for(var i=(start||0); i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
    }
}

//Accordion
$(document).ready( function() {
	$('.toggle_container').hide();
	$('.trigger').click( function() {
		if ( $(this).hasClass('trigger_active') ) {
			$(this).next('.toggle_container').slideToggle('slow');
			$(this).removeClass('trigger_active');
		} else {
			$('.trigger_active').next('.toggle_container').slideToggle('slow');
			$('.trigger_active').removeClass('trigger_active');
			$(this).next('.toggle_container').slideToggle('slow');
			$(this).addClass('trigger_active');
		};
	return false;
	});
}); 

var cboptions = {opacity: 0.5 };
if (isIE6 || isIE7) { cboptions = {transition: 'none', opacity: 0.5 }; }

$(function() {

	/**
	 *    Slider - Slot Machine
	 */
	reload_slotMachine();
	/**
	 *    Slider - sliderGallery
	 */
	reload_sliderGallery();
	/**
	 *    Slider - sliderGallery_v Suchergebnisse
	 */
	reload_sliderGallery_v();
	/**
	 *    Slider - Filter Preis
	 */
	$(function() {

		if ( $("#amount_slider").length > 0 ) {
			$("#amount_slider").slider({
				range: true,
				min: 0,
				max: 550,
				step: 50,
				values: [$("#amount_min").val(), $("#amount_max").val()],
				slide: function(event, ui) {
					set_amount_slider_value(ui.values[0],ui.values[1]);
					$('#buttonSearchRefresh').show();
				}
			});
			set_amount_slider_value($("#amount_min").val(), $("#amount_max").val());
		}
		function set_amount_slider_value(min, max){
			$("#amount_slider").slider('value',[min, max]);
			$("#amount_min").val(min);
			$("#amount_max").val(max);
			// TODO: move to JS vars in order to support i18n
			if (min==0) {min='gratis';}
			if (max>500) {max='unlimited';}
			$('#amount_legend').text(min+' - '+max);
			//$($("#amount_slider a.ui-slider-handle")[0]).attr('title',min);
			//$($("#amount_slider a.ui-slider-handle")[1]).attr('title',max);
			//$("#amount_slider, #amount_slider div.ui-slider-range").attr('title',min+' - '+max);
		}
	});

	
	/**
	 *	Slider - related-offers & related-offers-near
	 */
	for(var i = 1; i <= 2; i++) {
		if ($('#offers-carousel-'+i).length > 0) {
			$('#offers-carousel-'+i+' li img').css( { 'visibility': 'hidden' } );
			$('#offers-carousel-'+i).jcarousel({
					scroll: 1,
					itemVisibleInCallback: function(e, o){
						//Bilder einblenden/laden, wenns sie angezeigt werden.
						$(o).find('img').css( { 'visibility': 'visible' } );
					}
				});
		}
	}
	/**
	 *	Slider - Filter
	 */
	$(function() {
		$('.sliderControl').append('<div class="range"></div>');
		$('.sliderControl .range').slider({
			animate: true,
			max: 100,
			min: 0,
			step: 5,
			orientation: 'horizontal',
			stop: function(event, ui) {
				$(ui.handle).parent().parent().parent().parent().find('input[type=hidden]')
					.val(ui.value);
				$(ui.handle).parent().parent().parent().attr('title',ui.value);
			},
			slide: function (event, ui) {
				$(ui.handle).parent().parent().parent().attr('title',ui.value);
			}
		});
	});

	/**
	 *	Meta Flyout
	 */

	$('#dcMetaNav .panel').click(function() {
		var nH = $(this).width() +24 +10
		if ( nH < 120 ) { nH = 120; }
		$('#metaflyout').css({
			'left': $(this).position().left,
			'width': nH
		});
		if ($('#metaflyout:hidden').length == 0) {
			$('#metaflyout').slideUp('middle');
		} else {
			if ($('#categoryflyout:hidden').length == 0) { $('#categoryflyout').slideUp('fast'); }
			if ($('.searchbtn .cusomflyout:hidden').length == 0) { $('.searchbtn .cusomflyout').slideUp('fast'); }
			$('.searchbtnactive').removeClass('searchbtnactive');
			$('#metaflyout').slideDown('middle');
		}
	});
	
	/**
	 *	Video Hover
	 *	@todo '.sliderGallery ul li' wird für die neue Startseite nicht mehr gebraucht
	 */
	$('.sliderGallery ul li, #slot-machine .slot ul a').hover( 
		function() {
			$(this).find('.info').animate({opacity: 0}, 0);
			$(this).find('.info').show(); 
			$(this).find('.info').animate({opacity: 1.0}, {duration:"fast",queue:false});
		}
	,
		function() {
			$(this).find('.info').animate({opacity: 0.0}, {duration:"slow",queue:false}, function(){ $(this).find('.info').hide(); });
		}
	);
	/**
	 *	Kalender
	 */
	
		var display_options_on = false;
		$("ul#display_options li").click( function(){
			if(!display_options_on){
				$(this).find('ul').slideDown('middle');
				display_options_on = true;
			} else {
				$(this).find('ul').slideUp('middle');
				display_options_on = false;
			}
		});
		$("ul#display_options li a").click( function(){
			if(display_options_on){
				$(this).find('ul').slideUp('middle');
				display_options_on = false;
			}
		});
		
	
	/**
	 *	Channel Filter
	 */
		//Set Filter
		if($('div#frmSearch.varbox').length > 0) {
			$('#chanFilter').show();
			$('#chanFilter').css('top',parseInt($('#chanFilter').css('top')) + 25);
			$('#chanFilter').hide();
		}

	$('#chanBtn').click(function() {
		$('#chanFilter').fadeIn('middle');
		$('#ctChanTabs').fadeOut('fast');
		//Set Filter
		if($('div#frmSearch.varbox').length > 0) { checkChanFilterSize(); }
	});
	$('#chanFilter h3 a').click(function() {
		$('#chanFilter').fadeOut('middle');
		$('#ctChanTabs').fadeIn('fast');
	});

	/**
	 *	Filter List
	 */

	$('#chanFilter ul li').each(function(i) {
		if($(this).attr('class') == 'label high') { $(this).height(22); }
		$(this).css({zIndex:100-(i--)});
	});

	/**
	 *	Filter  Matrix-Slider
	 */
	$(function(){
		var plast = '00';
		$('#picker').hide();
		$('.example').css({ left: -999, top: -999 });
		$('#filter_subject').val('0:0');
		$('#slider2d').click(function(e) {
			var pos = $(this).offset();
			var left = e.pageX - pos.left;
			var top = e.pageY - pos.top;
			if (top < 0) 
				top = 0;
			if (top < 39) {
				top = 5;
				top_ul = 0;
				top_value = 1;
				}
			if (top > 38) {
				top = 41;
				top_ul = -22;
				top_value = 2;
				}			
			if (left < 40) {
				left = 6;			
				left_ul = 0;
				left_value = 1;
				}
			if (left > 39 && left < 80) {
				left = 46;			
				left_ul = -286;
				left_value = 2;
				}	
			if (left > 79 && left < 120) {
				left = 86;			
				left_ul = -572;
				left_value = 3;
				}
			if (left > 119) {
				left = 125;			
				left_ul = -858;
				left_value = 4;
				}
			if( plast == (top+''+left) && $('#picker:visible').length > 0) {
				$('#picker').hide();
				$('.example').css({ left: -999, top: -999 });
				$('#filter_subject').val('0:0');
			} else {
				$('#picker').show();
				$('#picker').css({ left: left, top: top });
				$('.example').css({ left: left_ul, top: top_ul });
				$('#filter_subject').val(top_value+':'+left_value);
				plast = (top+''+left);
			}		
		});
	});

	$('#voucherpreview').height($('#boxCont').height()-30);
	$('#voucherpreview').fadeTo(0, 0.5);
	
	/**
	 *   New Category Flyout
	 */
	categoryflyout_init()

	/**
	 *	Language Dropdown
	 */
	$('#dcMetaNav a.iconFlag').click(function() {
		/** var p = getRect('dcSrd');
		* $('#languageswitch').css('top',20);
		* $('#languageswitch').css('left',25);
		* $('#languageswitch').show();
		* return false;
		*/
		$('#sgInfo').dialog('open'); $('.ui-widget-overlay').fadeTo(0,0,function(){ $('.ui-widget-overlay').fadeTo(200,0.5); }); return false;		
	});
	
	$('#languageswitch').click(function() {
		$('#languageflyout').hide();
		$('#countryflyout').hide();
		$('#languageswitch').hide();
		langdropdowns.mopen = false;
		return false;
	});

	langdropdowns('language');
	langdropdowns('country');
	function langdropdowns(menu){
		langdropdowns.aktfield = ""
		langdropdowns.aktmenu = menu
		langdropdowns.mopen = false;
		$('.'+menu+'dropdown a').click(function() {
			$(this).attr('id', 'langdropdownbtn');
			var p = getRect('langdropdownbtn');
			p.left -= $('#dcSrd').offset().left;
			p.top -= $('#dcSrd').offset().top;
			$(this).removeAttr('id');
			langdropdowns.newfield = $(this).parent().find('input');
			if (!langdropdowns.aktfield) { langdropdowns.aktfield = $(this).parent().find('input'); }
			if (langdropdowns.mopen && menu == langdropdowns.aktmenu && langdropdowns.newfield.attr('id') == langdropdowns.aktfield.attr('id')) {
				$('#'+menu+'flyout').slideUp('fast');
				langdropdowns.mopen = false;
			} else {
				if (langdropdowns.mopen && (menu != langdropdowns.aktmenu || langdropdowns.newfield != langdropdowns.aktfield)) {
					$('#'+langdropdowns.aktmenu+'flyout').hide();
					langdropdowns.mopen = false;
				} 
				if (!langdropdowns.mopen) {
					$('#'+menu+'flyout').css('top',p.top + p.height);
					$('#'+menu+'flyout').css('left',p.left + p.width - $('#'+menu+'flyout').width() - 11);
					$('#'+menu+'flyout').slideDown('middle');
					langdropdowns.aktmenu = menu
					langdropdowns.aktfield = $(this).parent().find('input');
					langdropdowns.mopen = true;
				}
			} 
			$('#'+menu+'flyout li').click(function() {
				langdropdowns.aktfield.val($(this).text())
				langdropdowns.aktfield.css('backgroundImage','url('+$(this).find('img').attr('src')+')')
				$('#'+menu+'flyout').slideUp('middle', function() {$(this).css( "fontWeight","normal" );});
				langdropdowns.mopen = false;
			});
			$('#'+menu+'flyout li').hover(
				function(){ $(this).css( "fontWeight","bold" );	}, function(){ $(this).css( "fontWeight","normal" ); }
			);
			$('#'+menu+'flyout').hover(
				function(){}, function(){ $('#'+menu+'flyout').slideUp('middle'); langdropdowns.mopen = false;}
			);
			return false;
		});
	}

	/**
	 *	Kampagnedetails
	 */
	$('.kamp_overview a.kampdetails').click(function() {
		if($(this).find('span.s').css('display') != 'none') {
			$(this).find('span.s').hide();
			$(this).find('span.h').show();
			$(this).addClass('iconlupeminus');
			$(this).parent().parent().next().find('div.details').slideDown('middle');
		} else {
			$(this).find('span.s').show();
			$(this).find('span.h').hide();
			$(this).removeClass('iconlupeminus');
			$(this).parent().parent().next().find('div.details').slideUp('middle');
		}
		return false;
	});
	$('.kamp_overview input.gutdetail').click(function() {
		if($(this).attr('checked')){
			$(this).parent().parent().parent().next().find('div.gutdetail').slideDown('middle');
		} else {
			$(this).parent().parent().parent().next().find('div.gutdetail').slideUp('middle');
		}
	});
	$('.akzept_overview input.akzeptdetail').click(function() {
		if($(this).attr('checked')){
			$(this).parent().parent().parent().next().find('div.akzeptdetail').slideDown('middle');
		} else {
			$(this).parent().parent().parent().next().find('div.akzeptdetail').slideUp('middle');
		}
	});

	
	/**
	 *	Kalender
	 */
	loaddatepicker();
	$('.addnewdate').click(function() {
		var ad = $('.detzeitpunkt:last');
		//werte Speichern
		var ado = new Array();
		ad.find('input.radio').each(function(i, val) { ado[i] = $(val).attr('checked'); });
		//datepicker vom letztem eintrag entfernen
		ad.find('.hasDatepicker').each(function(i, val) {
			$(val).datepicker('destroy');
			$(val).removeAttr('id')
		});
		// letzten eintrag kopieren
		var nd = ad.clone(true).insertAfter('.detzeitpunkt:last');
		//namen neu vergeben (radiobuttons)
		nd.find('input.radio').each(function(i, val) { cal_count_id(val); });
		//namen neu vergeben (selectfelder)
		nd.find('select.select').each(function(i, val) { cal_count_id(val); });
		//namen neu vergeben (inputfelder)
		nd.find('input.time').each(function(i, val) { cal_count_id(val); });
		//werte wiederherstellen
		ad.find('input.radio').each(function(i, val) { $(val).attr('checked',ado[i]); });
		//neue werte nullen
		nd.find('input.radio').each(function(i, val) { $(val).attr('checked',false); });
		//Datepicker neu laden
		loaddatepicker();
		return false;
	});
	/**
	 *	Hilfe
	 */	
	$('.hilfe, .hilfe2').click(function(){
		var helpid = $(this).attr('id');
		center2viewport('#helpbox');
		vhidden4selectON(); //FÃ¼r IE6. Selectboxen verstecken
		
		$('#helpbox .helpcontent').text('');
		
		if ($('#helpbox').css("display") == 'none') { $('#helpbox').show(); }
		//Hier Script zum nachladen der Hilfe
		//$('#helpbox .helpcontent').removeClass('loadergreen');
		//
		//
		return false;
	});
	/**
	 *    Gutschein einstellen - Marketing-Optionen - Bezugsrahmen
	 */				
	$('.addbezugsrahmen').click(function () {
		var sname;
		var sec = $(this).parent().parent().parent();
		var seccount = sec.parent().find('.'+sec.attr('class')).length;
		if($(this).attr('checked')) {
			$(".hasDatepicker").datepicker( 'destroy' );
			//var newsec = sec.clone(true).insertAfter(sec);
			var newsec = sec.mkclone();
			newsec.find("input.datepicker[type='hidden']").removeAttr('id');
			newsec.find('.addbezugsrahmen').attr('checked',false);
			newsec.find('.selbezugsrahmen').attr('value','none');
			newsec.find('.broptions .br').each(function(i, val) {
				$(val).hide();
			});
			/*
			newsec.find('INPUT,SELECT,TEXTAREA').each(function(i,el){
				$(el).attr('name',$(el).attr('name').replace(/_[0-9]+$/g,'_'+(seccount+1)));
				if($(el).attr('id')!='') { $(el).attr('id',$(el).attr('id').replace(/_[0-9]+$/g,'_'+(seccount+1))); }
				$('.bookingid').val();
			});
			newsec.find('label').each(function(i,el){
				if($(el).attr('for')!='') { $(el).attr('for',$(el).attr('for').replace(/_[0-9]+$/g,'_'+(seccount+1))); }
			});
			*/
			loaddatepicker();
		} else if (seccount>1) {
			sec.remove()
		}
	});
	$('.selbezugsrahmen').change(function () {
		var sec = $(this).parent().parent().parent();
		if(sec.find('.addbezugsrahmen').attr('checked')) {
			sec.find('.broptions .br').each(function(i, val) {
				$(val).hide();
			});
			if ( $(this).attr('value') != 'none' ) {
				sec.find('.broptions').find('.br'+$(this).attr('value')).show();
			}
			if ( $(this).val() == 2 ) {
				sec.find('.broptions').find(".categories").show();
			} else 
			if ( $(this).val() == 3 ) {
				sec.find('.broptions').find(".city").show();
			} else 
			if ( $(this).val() == 4 ) {
				sec.find('.broptions').find(".date").show();
			} else 
			if ( $(this).val() == 5 ) {
				sec.find('.broptions').find(".date").show();
				sec.find('.broptions').find(".city").show();
			}	
		} else {
		}
	});


	/**
	 *    Lightbox
	 */
	$('a.lightbox').colorbox(cboptions);
	$('a.lightbox').click(function(){
		if ( $(this).hasClass('cbLuV') ) {
			$('#cboxWrapper').addClass('blueheader');
			$('#cboxWrapper').addClass('cbluv');
		} else if ($(this).hasClass('cbblue')) {
			$('#cboxWrapper').addClass('blueheader');
			$('#cboxWrapper').addClass('cbluv');
		} else {
			$('#cboxWrapper').removeClass('blueheader');
			$('#cboxWrapper').removeClass('cbluv');
		}
	});
	$().bind('cbox_complete', function(e){
		$('#cboxOverlay').width($(document).width());
		$('#cboxOverlay').height($(document).height());
		if ($('#cboxWrapper').hasClass('orangeheader')) {
			setTimeout(function(){
				reload_sliderGallery_v();
			}, 50);
		}
		setTimeout(function(){ /* IE6&7 Position Fix*/
			if (isIE6 || isIE7) {
				if ($('#cboxWrapper').hasClass('orangeheader')) {
					$('#cboxLoadedContent , #cboxContent').width($('#boxCont.cbgiftoptions').width());
				}
				if (isIE7) {
					center2viewport($('#colorbox').get(0),-310);
				} else {
					center2viewport($('#colorbox').get(0),30);
				}
			} else {
				$.fn.colorbox.resize();
			}
		}, 20);
	});


	$('.actions a, .campaign a.action').click(function() {
		if($(this).hasClass('none')) { return true; }
		var p = $(this);
		while (p.find('.alayer').length == 0) { p = p.parent(); }
		var aa = false;
		p.find('.alayer').each(function(i, obj){ $(obj).hide(); });
		if($(this).hasClass('action')) { aa = true; $(this).removeClass('action'); }
		p.find('.l'+$(this).attr('class')).show()
		if(aa) { aa = false; $(this).addClass('action'); }
		return false;
	});
	$('.alayer .close').click(function(){
		$(this).parent().parent().find('.alayer').each(function(i, obj){ $(obj).hide(); });
		$(this).parent().parent().find('.luser').show(); 
		return false;							
	});

	/**
	 *	was bringt mir box
	 */
	$('.whichbringsme .wbm_cont').hide();
	$('.whichbringsme .wbm_title').hover(function(){ $(this).addClass('wbm_title_hover'); },function(){ $(this).removeClass('wbm_title_hover'); });
	$('.whichbringsme .wbm_title').click(function(){
		$('.whichbringsme .wbm_title').hide();
		$(this).parent().find('.wbm_cont').show();
	});
	$('.whichbringsme .wbm_back').click(function(){
		$(this).parent().hide();
		$('.whichbringsme .wbm_title').show();
		return false;
	});
	
	/**
	 * DOPPELDEAL Slider
	 */
	if ($('#boxCalDays').length) {
		$('#boxCalDays .caldays li a').click(function(){
			var t = $(this);
			var li = $('#boxCalDays .caldays li');
			if (t.parent().hasClass('active')) return false;
			li.removeClass('active');
			$('#boxCalDays .caldays').animate(
					{'left': 200 - t.position().left },
					{duration:"slow",queue:false,
						complete:function(){
							li.removeClass('active');
							t.parent().addClass('active');
							//@toto: Hier soll ein Ajax Aufruf durchgeführt werden.
							window.location.href = t.get(0).href;
						}
				});
			return false;
		});
	}
	
	if(isIE7) $('#prozent90').css({'float':'left'});
	
});
/**
 *	Initialisiert den Coverflow bei den Suchergebnissen
 */
var IFinit = false;
function initimageflow(){
	
	if (!IFinit) {
		var instanceOne = new ImageFlow();
		instanceOne.init({
			ImageFlowID: 'searchCoverflow', 
			imageCursor: 'pointer',
			imageFocusM: 1.5,
			imagesHeight:0.8,
			reflections: false, 
			reflectionP: 0.0,
			onClick: function() {
				location.href=this.url;
			}
		});
		IFinit = true;
	}
};

/**
 *	erhÃ¶ht die id im namen eines elements
 */
function cal_count_id(itm) {
	var nid = $(itm).attr('name');
	var aid = nid.match(/[0-9]+/);
	nid = nid.replace(/[0-9]+/, parseInt(aid)+1);
	$(itm).attr('name',nid);
}
/**
 *	Zentriet das Ogutbjekt am Vievport des Browsers
 */
function center2viewport(obj) {
	var t = center2viewport.arguments[1];
	var x = center2viewport.arguments[2];
	var xt = center2viewport.arguments[3];
	if (!t) { t=0; }
	var scrollpos = getscrollpos();
	$(obj).css("top", scrollpos + ((($(window).height() - $(obj).height())/2) - 290) + t);  //im Fenster Zentrieren
	if (!xt) { xt=0; }
	if (x) { $(obj).css("left", ((($(window).width() - $(obj).width())/2) - 290) + xt);  }
}

/**
 *	selectboxen bei overlib fÃ¼r den IE verstecken
 */
function vhidden4selectON() {
	if($.browser.msie && parseFloat($.browser.version.substr(0,3))<"7"){
		$('.select').css('visibility','hidden');
		$('.js_visibility_hidden').css('visibility','hidden');
	}
	$('.js_vhidden').css('visibility','hidden');
}
function vhidden4selectOFF() {
	if($.browser.msie && parseFloat($.browser.version.substr(0,3))<"7"){
		$('.select').css('visibility','visible');
		$('.js_visibility_hidden').css('visibility','visible');
	}
	$('.js_vhidden').css('visibility','visible');
}
/**
 *	Kalender
 */
function loaddatepicker() {
	$(".datepicker").datepicker({
		showOn: 'button',
		buttonImage: 'http://static.gutscheintv.de/images/icon_cal.png',
		buttonImageOnly: true,
		changeMonth: false,
		changeYear: false,
		beforeShow: function(input) {
				vhidden4selectON();
			},
		onClose: function(dateText, inst) {
				var d = $(this).datepicker('getDate');
				if(d){
					$(this).parent().find('.dateday').attr('value',d.getDate());
					$(this).parent().find('.datemonth').attr('value',d.getMonth()+1);
					$(this).parent().find('.dateyear').attr('value',d.getFullYear());
				}
				vhidden4selectOFF();
			}
	});
}

/**
 *	Verbleibend zeichen
 */
function txtcounter(fieldid, countid, max) {
	$(document).ready(function(){
		$('#'+fieldid).keyup(function(event){
			var text = $('#'+fieldid).val();
			if (text.length > max) {
				text = text.substring(0, max);		
				$('#'+fieldid).val(text);
			}
			$('#'+countid).text(max - text.length);
		});
	});
}

/*Position ermitteln*/
function getRect (o){
	var pr = getRect.arguments[1];
	if (typeof pr == 'undefined') { pr = false; }
    var r = { top:0, left:0, width:0, height:0 };
    if(!o) return r;
    else if(typeof o == 'string' ) o = document.getElementById(o);
    if( typeof o != 'object' ) return r;
     if(typeof o.offsetTop != 'undefined')    {
         r.height = o.offsetHeight;
         r.width = o.offsetWidth;
         r.left = r.top = 0;
         while (o && o.tagName != 'BODY')         {
         	if (pr && $(o).css('position') != 'static') {
         		break;
         	}
              r.top  += parseInt( o.offsetTop );
              r.left += parseInt( o.offsetLeft );
              o = o.offsetParent;
         }
    }
    return r;
}

function getscrollpos()
{
	var scrollPos;
	if (typeof window.pageYOffset != 'undefined') {
	   scrollPos = window.pageYOffset;
	}
	else if (typeof document.compatMode != 'undefined' &&
		 document.compatMode != 'BackCompat') {
	   scrollPos = document.documentElement.scrollTop;
	}
	else if (typeof document.body != 'undefined') {
	   scrollPos = document.body.scrollTop;
	}
    return scrollPos;
}
/**
 *	Dupliziert ein Element und erhöt die namen/ids um eins.
 *	Bsp: $('.zuclonendeselement:last').mk_clone();
 */
$.fn.mkclone = function() {
	var attribute = new Array ('name','id');
	var c = 0; var l;
	var all;

	//if(typeof element != 'object') { element = $(element+':last'); }
	var ne = this.clone(true).insertAfter(this); 
	if(ne.get(0).tagName.toLowerCase().match(/(input)?(select)?(textarea)?/)[0] !='') {
		all = ne;
	} else {
		all = ne.find('INPUT,SELECT,TEXTAREA');
	}
	all.each(function(i,el){
		for (var i = 0; i < attribute.length; i++) {
			a = attribute[i]
			if($(el).attr(a)){
				c = $(el).attr(a).search(/[0-9]+$/);
				if (c != -1) {
					c = parseInt($(el).attr(a).substr(c));
					if(a =='id' && $(el).attr(a)) { // wenn id, nach label suchen
						l = ne.find('label[for='+$(el).attr(a)+']');
						if(l.length>0) { l.attr('for',l.attr('for').replace(/_[0-9]+$/g,'_'+(c+1))); }
					}
					$(el).attr(a,$(el).attr(a).replace(/_[0-9]+$/g,'_'+(c+1)));
				}
			}
		}
	});
	return ne;
}

/**
 *    Slider - Slot Machine
 */

function reload_slotMachine() {
	if ( $('#slot-machine').lenght == 0 ) return;
	var slot = $('#slot-machine .slot-box .slot');
	var pager = $('#slot-machine .pager');
	var slotH = slot.outerHeight() + 1;
	var ul = $('ul', slot);
	var slider = $('#slot-machine .slider')
	var timerV = null; var timerS = 200;
	var itemHeight = $('li', ul).outerHeight(true);
	var itemsHeight = ul.innerHeight() - slotH;

	if( $('.inner', pager).length > 0 ) {
		$('.range', slider).slider('destroy');
		$('.inner', pager).find('a').unbind('click');
		$('.inner', pager).remove();
		ul.css({'top':0});
	}
	
	if(!itemsHeight) {
		slider.hide();
		pager.hide();
	} else {
		slider.show();
		$('.range', slider).slider({
			animate: true,
			min: -itemsHeight,
			max: 0,
			value: itemsHeight,
			orientation: 'vertical',
			change:function (event, ui) { slotMachineAnimate(ui); },
			slide: function (event, ui) { slotMachineAnimate(ui); }
		});
		$('li img', ul).css('visibility','hidden');
		timerV = setTimeout(function(){ slotMachineVisibleImages(slot) }, 0);
		
		/** PAGER */
		pager.show();
		var itemsPerRow = Math.floor(slotH/itemHeight);
		var pagerPages = Math.ceil((itemsHeight - 10 ) / (itemsPerRow * itemHeight)) + 1;
		
		// generate
		pager.append( $('<div/>').addClass('inner') );
		var pagerInner = $('.inner', pager);
		for (var i=1;i<=pagerPages;i++) {
			pagerInner.append( $('<a/>').attr('href', 'javascript:void(0)').addClass( (i==1) ? 'pagenum active num'+i : 'pagenum num'+i ).text(i) );
		}
		pagerInner.prepend( $('<a/>').attr('href', 'javascript:void(0)').addClass('next') );
		pagerInner.prepend( $('<a/>').attr('href', 'javascript:void(0)').addClass('back') );
		
		// Set Pager Width
		var pagerWidth = 0;
		pagerInner.find('a').each(function(i, o){ pagerWidth = pagerWidth + $(o).outerWidth(true); });
		pagerWidth = pagerWidth + (pagerInner.outerWidth() - pagerInner.width())
		if (pagerWidth > 560) pagerWidth = 560;
		pager.width(pagerWidth);
		
		// Pagination
		var pagerAct = 1;
		pagerInner.find('a').bind('click', function(){
			var lnk = $(this);
			pagerInner.find('a.active').removeClass('active');
			if (lnk.hasClass('back')) {
				pagerAct--;
				if (pagerAct <= 1) pagerAct = 1;
			} else if (lnk.hasClass('next')) {
				pagerAct++;
				if (pagerAct >= pagerPages) pagerAct = pagerPages;
			} else {
				pagerAct = parseInt(lnk.text());
			}
			pagerInner.find('a.num'+pagerAct).addClass('active');
			var v = -(itemHeight * ( pagerAct - 1 ) * itemsPerRow );
			$('.range', slider).slider('option', 'value', v);
			slotMachineAnimate({value: v }, false);
		});
	}
	
	function slotMachineAnimate(ui, slide){
		if (slide == null){ slide = true; }
		ul.each(function(i,o){
			var t = $(o);
			var h = t.innerHeight() - slotH;
			var v = ui.value;
			if(-h > v) v = -h;
			t.animate({'top' : (v)}, {duration:500, queue:false, complete: function(){ 
				if (i<1) {
					clearTimeout(timerV);
					timerV = setTimeout(function(){ slotMachineVisibleImages(slot); }, timerS);
					if (slide) {
						pagerAct = Math.floor( -v / (itemsPerRow * itemHeight) ) + 1;
						pagerInner.find('a.active').removeClass('active');
						pagerInner.find('a.num'+pagerAct).addClass('active');
					}
				}
			}});
		});
	}
	
	function slotMachineVisibleImages(c){
		var ul = $('ul', c);
		ul.each(function(i, o){
			$('li', o).each(function(i,obj){
				obj = $(obj);
				var objul = obj.parent();
				var img = obj.find('img');
				if ( img.css('visibility') == 'hidden') {
					if(
						obj.position().top + objul.position().top < (c.outerHeight() - 1)
						&& obj.position().top + objul.position().top + obj.outerHeight() > 1
						) {
						img.css('visibility','visible');
					}
				}
			});
		});
	}
	/* ul.find('a').colorbox(cboptions);
	ul.find('a').click(function(){ $('#cboxWrapper').addClass('voucherDetails'); });
	*/
}
/**
 *    Slider - sliderGallery
 *    @todo wird für die neue Startseite nicht mehr gebraucht
 */
function reload_sliderGallery() {
	var itemwidth = 133;
	var c = $('div.sliderGallery');
	var ul = $('ul', c);
	var s = $('.slider', c);
	var itemsWidth = ul.innerWidth() - c.outerWidth();
	var timerV = null; var timerS = 1000;

	if ($('.handle', c).length == 0 || itemsWidth <= 0) {
		$('.range', s).slider('destroy');
		ul.css('left',0);
		if(itemsWidth<=0){
			s.hide();
			return;
		} else { s.show(); }
	} else {
		$('.handle', c).remove();
		s.append('<div class="range"></div>');
		s.show();
	}
	s.unbind('click');
	s.click(function(e){
		if ( e.pageX - $(this).offset().left > ($(this).width()/2) ) {
			$('.range', s).slider( 'value' , $('.range', s).slider('value') + itemwidth );
		} else {
			$('.range', s).slider( 'value' , $('.range', s).slider('value') - itemwidth );
		}
	});
	$('.range', s).slider({
		animate: true,
		min: 0,
		max: itemsWidth,
		orientation: 'horizontal',
		change: function (event, ui) {
			ul.animate({'left' : (ui.value * -1)}, {duration:500,queue:false});
			clearTimeout(timerV); timerV = setTimeout(function(){ visibleimages_sliderGallery(c) }, timerS);
		},
		slide: function (event, ui) {
			ul.animate({'left' : (ui.value * -1)}, {duration:500,queue:false});
			clearTimeout(timerV); timerV = setTimeout(function(){ visibleimages_sliderGallery(c) }, timerS);
		}
	});
	$('li img', ul).css('visibility','hidden');
	timerV = setTimeout(function(){ visibleimages_sliderGallery(c) }, 0);
}
function visibleimages_sliderGallery(c){
	var ul = $('ul', c);
	$('li', ul).each(function(i,obj){
		var img = $(obj).find('img');
		if ( img.css('visibility') == 'hidden' ) {
			if($(obj).position().left + ul.position().left < (c.outerWidth() - 1)) {
				img.css('visibility','visible');
			}
		}
	});
}
/**
 *    Slider - sliderGallery_v Suchergebnisse
 */
function reload_sliderGallery_v() {
	$('div.sliderGallery_v, div.sliderGallery_big').each(function(i,obj) {
		var c = $(obj);
		if ((!c.hasClass('noscroll') && c.parents(':hidden').not(':visible').length == 0) || c.parents('#colorbox').length > 0 ) {
			var ul = $('ul', c);
			var s = $('.slider', c);
			var itemsHeight = ul.innerHeight() - c.outerHeight();

			if ($('.handle', c).length == 0 || itemsHeight <= 0) {
				$('.range', s).slider('destroy');
				ul.css('top',0);
				if(itemsHeight<=0){
					s.hide();
					ul.addClass('noslider');
					return;
				} else { s.show(); ul.removeClass('noslider'); }
			} else {
				$('.handle', c).remove();
				s.append('<div class="range"></div>');
				s.show();
				ul.removeClass('noslider');
			}
			
			$('.range', s).slider({
				animate: true,
				min: 0,
				max: itemsHeight,
				value: itemsHeight,
				orientation: 'vertical',
				slide: function (event, ui) {
					ul.animate({'top' : -(itemsHeight + (ui.value * -1))}, {duration:500,queue:false});
				},
				change: function (event, ui) {
					ul.animate({'top' : -(itemsHeight + (ui.value * -1))}, {duration:500,queue:false});
				}
			});
			if( (-ul.innerHeight()) > parseInt(ul.css('top')) ) {
				ul.animate( {'top' : (ul.innerHeight() - c.outerHeight()) }, {duration:500,queue:false} );
			}
		}
	});
}

function checkChanFilterSize(){
	if ( $('#chanFilter:visible').length > 0 ) {
		var cfT = 25;
		var cfH = $('#chanFilter').height() + 50 + cfT;
		var fsH = $('#frmSearch').height();
		var fsmH = $('#frmSearch .middle').height() +18 ;
		var nH = 0;
		if(cfH>fsH) { nH = cfH; }
		if(cfH<fsH) { nH = fsmH; }
		if(cfH>nH) { nH = cfH; }
		if(fsmH>nH) { nH = fsmH; }
		if (nH > 318 ) { $('#frmSearch').height(nH); }
	} else {
		var nH = $('#frmSearch .middle').height() + 18;
		if (nH > 318 ) { $('#frmSearch').height(nH); }
	}
}

/**
 *   New Category Flyout
 */
var abtn;
var customflyout = false;
var s_show = 250; var s_hide = 100;
//var epMax = 3;
function categoryflyout_init() {
	//Kategorie hover & einblenden Unterkategorien
	$("#categoryflyout li, .cusomflyout li").unbind('hover');
	$("#categoryflyout li, .cusomflyout li").hover(
		function() { 
			$(this).addClass("hover");
			var lsub = $(this).find('ul');
			if(lsub.length>0) {
				setTimeout(function(){
					if(lsub.parent().hasClass("hover")) {
						//lsub.slideDown(s_show);
						lsub.show(s_show);
						/*
						var hto = lsub.height();
						lsub.show(); lsub.css('height','28px');
						lsub.animate({'height':hto},s_show)
						*/
					}
				},s_hide);
				lsub.css('z-index',900);
			}
		},
		function() {
			$(this).removeClass("hover");
			var lsub = $(this).find('ul');
			if(lsub.length>0) {
				lsub.slideUp(s_hide);
				lsub.css('z-index',200);
			}
		}
	);
	//Klick auf Kategorie
	$("#categoryflyout li span, .cusomflyout li span").unbind('click');
	$("#categoryflyout li span, .cusomflyout li span").click(function(){
		if (!customflyout) {
			var cfid = abtn.find('input.cat_id');
			var cfname = abtn.find('input.cat_name');
			if (cfid.length > 0 ) {
				c = $(this).attr('id').search(/[0-9]+$/);
				if (c != -1) {
					c = parseInt($(this).attr('id').substr(c));
					cfid.val(c);
					if(abtn.hasClass('checkcrumb')) setKategoryCrump(c);
				} else if(abtn.hasClass('checkcrumb')) setKategoryCrump('all');			
			}
		} else {
			var cfid = abtn.find('input.custom_id');
			var cfname = abtn.find('input.custom_name');
			var oButtonSearch = $('#buttonSearchRefresh');
			$(this).parent().parent().find('li').removeClass('active');
			$(this).parent().addClass('active');
			if (cfid.length > 0 ) {
				cfid.val($(this).attr('id'));
				cfid.change();
			}
			if (oButtonSearch.length > 0) {
				oButtonSearch.show();
			}
		}
		
		if (cfname.length > 0 ) {
			cfname.val($(this).text());
			cfname.change();
		}
		//Einstellprozess Kategorieauswahl
		if (abtn.hasClass('fkats')){
			add_kat(cfname.val(), cfid.val());
		}
		//
		$('.searchbtnactive').removeClass('searchbtnactive');
		$("#categoryflyout").slideUp(s_hide);
		if(abtn.hasClass('filtercategory')) {
			var checkFilterSize = false;
			if(abtn.parent().parent().parent().parent().attr('id')=='chanFilter'){checkFilterSize = true;}
			
			if($(this).attr('id') == 'cfitmremove') {
				if (abtn.parent().find('.filtercategory').length > 1) {
					abtn.parent().css('height',parseInt(abtn.parent().css('height'))-24);
					abtn.remove();
				} else {
					abtn.find('input.cat_id').val('');
					abtn.find('input.cat_name').val('');
				}
			} else if (abtn.hasClass('canclone')) {
				if(abtn.next().length == 0) {
					abtn.parent().css('height',parseInt(abtn.parent().css('height'))+24);
					var nbtn = abtn.parent().find('.filtercategory:last').mkclone();
					nbtn.find('input.cat_id').val('');
					nbtn.find('input.cat_name').val('');
				}
			}
			if(checkFilterSize){ checkChanFilterSize(); }
		} else {
			if(parseInt($(this).attr('id').substr($(this).attr('id').search(/[0-9]+$/))) > 0) {
				$("#hdSearchCategory").html("> " + $(this).text()).data( 'catID', $(this).attr('id').replace( 'catID_', '' ));
			} else {
				$("#hdSearchCategory").html("").data( 'catID', '');
			}
		}
	});
	//Klick auf button zum �ffnen der Kategorieliste
	$('.searchbtn').unbind('click');
	$('.searchbtn').click(function() {
		if($(this).hasClass('disabled')) { return false; }
		abtn = $(this);
		customflyout = abtn.hasClass('cusomflyout');
		if(!customflyout) {
			$("#categoryflyout li:first").css('display',(abtn.hasClass('canclone') || abtn.hasClass('canremove')) ? 'list-item' : 'none');
			$("#categoryflyout li #catID_0").parent().css('display',abtn.hasClass('notall') ? 'none' : 'list-item');
			if($("#categoryflyout:hidden").length > 0 ) {
				show_categoryflyout(abtn);
			} else {
				$("#categoryflyout").slideUp(s_hide, function(){
					if(abtn.hasClass('searchbtnactive')) {
						abtn.removeClass('searchbtnactive');
					} else {
						show_categoryflyout(abtn);
					}
				});
			}
		} else {
			if($(this).find('ul.cusomflyout:hidden').length > 0 ) {
				if ($('#categoryflyout:visible').length > 0) { $('#categoryflyout').slideUp('fast'); }
				if ($('.searchbtn ul.cusomflyout:visible').length > 0) { $('.searchbtn ul.cusomflyout').slideUp('fast'); }
				$(this).find('ul.cusomflyout').slideDown(s_show, function(){
					$('.searchbtnactive').removeClass('searchbtnactive');
					abtn.addClass('searchbtnactive');
				});
			} else {
				$(this).find('ul.cusomflyout').slideUp(s_hide, function(){
					if(abtn.hasClass('searchbtnactive')) { abtn.removeClass('searchbtnactive'); }
				});
			}
		}
	});
	$('.kat .close').unbind('click');
	$('.kat .close').click(function(){ remove_kat(this); });
	function remove_kat(t) {
		var val = $(t).parent().find('.title').text();
		var id = $(t).parent().attr('id');
		id = id.replace(/,/,'.');
		//$('#vouchercategories').val()
		var data = $.trim($('#vouchercategories').val());
		if (data.search(id) >= 0) {
			data = data.split(",");
			var dataN = new Array();
			for (var i = 0; i < data.length; i++) {
				if (data[i] != id) {
					dataN.push(data[i]);
				}
			}
			set_kat_text(dataN);
			/*
			if(dataN.length < epMax) {
				$(t).parent().parent().parent().find('.searchbtn').removeClass('disabled');
			}
			*/
			$(t).parent().remove();
		}
	}
	// W�hle deine Stadt flyout im header
	$('#hdSearch .ortflyout .custom_name').change(function(){
		$('#hdSearch input.ort').val($('#hdSearch .ortflyout .custom_name').val());
	});
	// Kategorie Crump im header
	function setKategoryCrump(id) {
		var li = new Array();
		var lakt = $('#categoryflyout #catID_'+id).parent()
		do {
			li.push(lakt);
			lakt = lakt.parent().parent();
		} while (lakt.is('li'))
		li.reverse();
		
		var cc = $('#catCrumb');
		cc.html('');
		$.each(li,function(i,o){
			cc.append($('<span>').text( $(o).children('span').text() ))
				.append($('<span>').addClass('seperator'));
		});
		cc.find('.seperator:last').remove();
	}
}
function add_kat(v, id) {
	var data = $.trim($('#vouchercategories').val());
	if (data.search(id) == -1) {
		data = data.split(",");
		/*
		if(data.length < epMax) {
		*/
			if (data[0].length > 0 ) {
				data.push(id.replace(/,/,'.'));
			} else {
				data[0] = id.replace(/,/,'.');
			}
			set_kat_text(data);
			var wrp = abtn.parent().find('.katWrp');
			var nkat = wrp.append('<span class="kat" id="'+id+'"><span class="close">&nbsp;</span><span class="title">'+v+'</span></span>');
			$('.kat .close').unbind('click');
			$('.kat .close').click(function(){ remove_kat(this); });
		/*
		}
		if(data.length < epMax) {
			abtn.removeClass('disabled');
		} else {
			abtn.addClass('disabled');
		}
		*/
	}
}
function set_kat_text(d){
	var v = '';
	if ( d.length > 0 ) {
		v = d[0];
		for (var i = 1; i < d.length; i++) {
			v = v +','+d[i];
		}
	}
	$('#vouchercategories').val(v);
}
function show_categoryflyout(btn) {
	var t = btn.offset().top
			+ btn.height()
			+ parseInt(btn.css('padding-top'))
			+ parseInt(btn.css('padding-bottom'))
			+ parseInt(btn.css('border-top-width'))
			+ parseInt(btn.css('border-bottom-width'))
			;
	var l = btn.offset().left;
	$("#categoryflyout").css({
		'top':  t,
		'left': l
	});
	if(($(document).width()-400)<l) { $("#categoryflyout").addClass('cfleft'); }
	else { $("#categoryflyout").removeClass('cfleft'); }

	$("#categoryflyout li").removeClass('hover');
	
	if ($('#metaflyout:hidden').length == 0) { $('#metaflyout').slideUp('fast'); }
	if ($('.searchbtn ul.cusomflyout:visible').length > 0) { $('.searchbtn ul.cusomflyout').slideUp('fast'); }
	
	$("#categoryflyout").slideDown(s_show, function(){
		$('.searchbtnactive').removeClass('searchbtnactive');
		btn.addClass('searchbtnactive');
		$("#categoryflyout li ul:visible").hide();
	});
}
/* End New Category Flyout */

/* Function zum w�hlen der Ansicht bei der Suche */
function btnsearch_view(v){
	$('#rSearchViewMode').val(v);
	$('.btnsearch_view a span.button').removeClass('active');
	$('.btnsearch_view a.btnsearch_'+v+' span').addClass('active');
	return false;
}

// remote call of ajax-enabled function
function rCall(component, method, format, params, options, callback){
	var sTarget = options.domupdate_id;
	var req = $.toJSON( params );
	
	// ajax remote request
	$.ajax({
		type: "post",
		url: "/apps/services/oRemote.cfm",
		data: "hm=" + component + "&fn=" + method + "&fo=" + format + "&req=" + encodeURIComponent(req),
		cache: false,
		async: true,
		success: function(msg){
			
			if (typeof(sTarget) != 'undefined') {
				$('#'+sTarget).html(msg);
			}	
			
			if (typeof(callback) != 'undefined') {
				callback( msg );
				}
		}
	});

	return false;	
}