var AXA = {
	carrouselDelay: new Array(),
	maxTabItems: 6
}

var Carrousel = {
	options: {
		delay: new Array(),	// delay in sec. between rotation
		pause: 15,			// delay in sec. to restart rotation after user action
		time: 250			// delay in msec. for animation
	},
	flags: {
		count: 0,			// count of total carrousel items
		current: 0,			// current displayed item
		queue: false,		// flag animation running
		interval: Object()	// timeout object (used to stop animation)
	},
	getRotationTime: function() {
		var self = Carrousel,
			next = (self.flags.current+1<self.flags.count)?self.flags.current+1:0;
		return self.options.delay[next];
	},
	animate: function(e, show){
		var self = Carrousel,
			current = self.flags.current,
			next = (self.flags.current+1<self.flags.count)?self.flags.current+1:0,
			pos = {inX:'100%', outX:'-100%'};
			if (typeof(show)!='undefined'){
				if (show<current) pos = {inX:'-100%', outX:'100%'};
				next = (show<self.flags.count)?show:0;
				if (next<0) next = self.flags.count-1;
			}

		if (next!=current){
			self.flags.queue = true;
			//jQuery('.carrousel-container .carrousel-item'+next).css('left', pos.inX);
			//jQuery('.carrousel-container .carrousel-item'+next).show();
			//jQuery('.carrousel-container .carrousel-item'+next).animate({left:'0%'}, self.options.time, 'linear', function(){self.flags.current = next});
			jQuery('.carrousel-container .carrousel-item'+next).fadeIn(self.options.time, function(){self.flags.current = next});
			//jQuery('.carrousel-container .carrousel-item'+current).animate({left:pos.outX}, self.options.time, 'linear', function(){self.flags.queue = false});
			jQuery('.carrousel-container .carrousel-item'+current).fadeOut(self.options.time, function(){self.flags.queue = false});
			
			jQuery('.carrousel-pager ul li.show').removeClass('show');
			jQuery('.carrousel-pager ul li:nth-child('+(next+1)+')').addClass('show');
			
			//neue Mafo Überschriften

			sIFR.replace( itc_franklin_gothik_std_med_ohne_switch, {
				selector: 'h1.AxaSwitchHeadline3',
				wmode:'transparent',
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:22; letter-spacing:0.5;}']
			});
	    	
			sIFR.replace( itc_franklin_gothik_std_med_mit_switch, {
				selector: 'h2.AxaSwitchHeadline1',
				wmode:'transparent',
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:20; letter-spacing:0.45 }']
			});

			sIFR.replace( itc_franklin_gothik_std_med_ohne_switch_bold, {
				selector: 'h2.AxaSwitchHeadline2',
				wmode:'transparent',
				offsetTop: '-2',
				css: ['.sIFR-root { text-align: left; font-weight:bold; color: #103184; font-size:20; letter-spacing:0.45; leading:2px;}']
			});

			//ersetzen der h2 durch div

			sIFR.replace( itc_franklin_gothik_std_med_mit_switch_mehrzeilig, {
				selector: 'div.AxaSwitchHeadline_Switch',
				wmode:'transparent',
		    	css: ['.sIFR-root { text-align: left; color: #103184; font-size:20; letter-spacing:0; leading:0px; }']
			});

			sIFR.replace( itc_franklin_gothik_std_med_ohne_switch_bold, {
				selector: 'div.AxaSwitchHeadline_Bold',
				wmode:'transparent',
				offsetTop: '-2',
				css: ['.sIFR-root { text-align: left; font-weight:bold; color: #103184; font-size:20; letter-spacing:0; leading:0px; }']
			});

			
			//Alte Überschriften für Subpages

			sIFR.replace( itc_franklin_gothik_std_med, {
				selector: 'h1.AxaSwitchHeadline',
				wmode:'opaque',
				offsetTop:'-3',
				offsetLeft:'1',
				tuneHeight:'-6',
				antiAliasType:'advanced',
				thickness:'0',
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:20px; }']
			});

			sIFR.replace( normal_itc_franklin_gothik_std_med, {
				selector: 'h1.AxaSwitchKeyvisual',
				/*wmode:'transparent',*/
				offsetTop:'-1',
				tuneHeight:'-5',
				antiAliasType:'advanced',
				thickness:'0',
				kerning:false,
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:20px; }']
			});

			sIFR.replace( normal_itc_franklin_gothik_std_med, {
				selector: 'h2.AxaSwitchKeyvisual',
				/*wmode:'transparent',*/
				offsetTop:'-1',
				tuneHeight:'-5',
				antiAliasType:'advanced',
				thickness:'0',
				kerning:false,
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:20px; }']
			});

			sIFR.replace( normal_itc_franklin_gothik_std_med, {
				selector: 'h2.AxaSwitchTransparent',
				wmode:'transparent',
				offsetTop:'-1',
				tuneHeight:'-5',
				antiAliasType:'advanced',
				thickness:'0',
				kerning:false,
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:20px; }']
			});

			sIFR.replace( normal_itc_franklin_gothik_std_med, {
				selector: 'h3.AxaSwitchKeyvisual',
				/*wmode:'transparent',*/
				offsetTop:'-1',
				tuneHeight:'-5',
				antiAliasType:'advanced',
				thickness:'0',
				kerning:false,
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:18px; }']
			});

			sIFR.replace( normal_itc_franklin_gothik_std_med, {
				selector: 'h3.AxaSwitchTransparent',
				wmode:'transparent',
				offsetTop:'-1',
				tuneHeight:'-5',
				antiAliasType:'advanced',
				thickness:'0',
				kerning:false,
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:18px; }']
			});
			
			//ersetzen der h2 durch div

			sIFR.replace( normal_itc_franklin_gothik_std_med, {
				selector: '.AxaSwitchHeadline_Normal',
				/*wmode:'transparent',*/
				offsetTop:'-1',
				tuneHeight:'-5',
				antiAliasType:'advanced',
				thickness:'0',
				kerning:false,
				css: ['.sIFR-root { text-align: left; color: #103184; font-size:20px; }']
			});

			
			if (typeof(show)=='undefined'){
				self.flags.interval = setTimeout(self.animate, Carrousel.getRotationTime()*1000);
			} else if (self.options.pause>0) {
				self.flags.interval = setTimeout(self.animate, self.options.pause*1000);
				
				reiterName = jQuery('.carrousel-container .carrousel-item'+next).attr("id");
				
			    dcsMultiTrack('DCS.dcsuri',
			            'event_click/' + '-1' + '/' + reiterName.toLowerCase() + '.evt',
			            'WT.ti', reiterName + ': ' + reiterName);
			}
		}
	},
	start: function(){
		var self = this;
		//self.flags.interval = setInterval(self.animate, Carrousel.getRotationTime()*1000);
		self.flags.interval = setTimeout(self.animate, Carrousel.options.delay[0]*1000);
		jQuery(window).unload(function(){self.stop()});
	},
	stop: function(){
		var self = this;
		//clearInterval(self.flags.interval);
		clearTimeout(self.flags.interval);
	},
	show: function(show){
		var dummy, self = this;
		self.stop();
		var fnc = function(){self.animate(dummy, show)};
		if (self.flags.queue) self.flags.interval = setTimeout(fnc, self.options.time);
		else fnc.call();
	},
	prev: function(){
		var self = this,
			next = self.flags.current-1;
		self.show(next);
	},
	next: function(){
		var self = this,
			next = self.flags.current+1;
		self.show(next);
	},
	init: function(delay){
		var self = this;
		self.options.delay = delay;
		jQuery('.carrousel-container').prepend('<div class="carrousel-pager"><a class="prev" href="#"></a><a class="next" href="#"></a></div>');
		jQuery('.carrousel-pager a.next').click(function(){
			self.next();
			jQuery(document).click();
			return false;
		});
		jQuery('.carrousel-pager a.prev').click(function(){
			self.prev();
			jQuery(document).click();
			return false;
		}).after('<ul></ul>');
		jQuery('.carrousel-container .carrousel-item').each(function(i,e){
			jQuery('.carrousel-pager ul').append('<li><a href="#">'+(i+1)+'</a></li>');
			jQuery('.carrousel-pager ul li:last-child a').click(function(){
				self.show(i);
				jQuery(document).click();
				return false;
			});
			$(e).addClass('carrousel-item'+i);
			self.flags.count++;
		});
		jQuery('.carrousel-pager ul li:first-child').addClass('show');
		if (self.flags.count>1) jQuery('.carrousel-container').addClass('carrousel-ok');
		self.start();
	}
};

(Initialize = {
	Products: function(){
		jQuery('#navi-container ul.navi > li > a').each(function(){
			jQuery(this).mouseover(function(){
				jQuery(document).click();
				jQuery(this).parent().addClass('active');
			});
			jQuery(this).mouseout(function(){
				jQuery(this).parent().removeClass('active');
			});
			/*
			jQuery(this).click(function(){
				jQuery(document).click();
				return false;
			});
			*/
		});
		jQuery('#navi-container .subnav-wrapper').each(function(){
			jQuery(this).mouseover(function(){
				jQuery(this).parent().addClass('active');
			});
			jQuery(this).mouseout(function(){
				jQuery(this).parent().removeClass('active');
			});
		});
	},
	QuickNav: function(){
		jQuery('#quick-wrapper a.dropbox').click(function(){
			if (jQuery(this).parent().hasClass('show')){
				jQuery(this).parent().removeClass('show');
			} else {
				jQuery(document).click();
				jQuery(this).parent().addClass('show');
			}
			if (jQuery(this).parent().hasClass('show')){
				var self = jQuery(this).parent(),
					fnc = function(){
						self.removeClass('show');
						jQuery(document).unbind('click');
					}
				jQuery(document).bind('click', fnc);
				jQuery(window).unload(fnc);
			}
			return false;
		});
	},
	InputHint: function(){
		jQuery('input:text, input:password').each(function(){
			jQuery(this).attr('default', jQuery(this).attr('title'));
			jQuery(this).attr('title', '');
			if (!jQuery(this).attr('value')) jQuery(this).attr('value', jQuery(this).attr('default'));
			jQuery(this).focus(function(){
				if (jQuery(this).attr('value')==jQuery(this).attr('default')){
					jQuery(this).attr('value', '');
				} else {
					jQuery(this).select();
				}
			});
			jQuery(this).blur(function(){
				if (!jQuery(this).attr('value')){
					jQuery(this).attr('value', jQuery(this).attr('default'));
				}
			});
		});
	},
	Tabs: function(max){
		var count = 0;
		jQuery('.tabs-container .tabs-bar').append('<ul></ul>');
		jQuery('.tabs-container .tabs-item').each(function(i,e){
			jQuery('.tabs-container .tabs-bar ul').append('<li><a href="#">'+$(e).find('h2').text()+'</a></li>');
			jQuery('.tabs-container .tabs-bar ul li:last-child a').click(function(){
				jQuery('.tabs-container .tabs-bar ul li').removeClass('show');
				jQuery('.tabs-container .tabs-bar ul li:nth-child('+(i+1)+')').addClass('show');
				
				reiterName = jQuery('.tabs-container .tabs-bar ul li:nth-child('+(i+1)+') a'  ).text();
				
			    dcsMultiTrack('DCS.dcsuri',
			            'event_click/' + '-1' + '/' + reiterName.toLowerCase() + '.evt',
			            'WT.ti', reiterName + ': ' + reiterName);
				
				jQuery('.tabs-container .tabs-item').hide();
				jQuery('.tabs-container .tabs-item:nth-child('+(i+2)+')').show();
				jQuery(document).click();
				return false;
			});
			$(e).addClass('tabs-item'+i);
			count++;
			if (count==max) return false;
		});
		jQuery('.tabs-container .tabs-bar ul li:first-child').addClass('show');
		if (count>1) jQuery('.tabs-container').addClass('tabs-ok');
	},
	Sidebar: function(){
		jQuery('#sidebar-teaser-wrapper .sidebar-teaser').each(function(){
			var obj = jQuery(this).find('a.more-link');
			if (obj.length==1) {
				jQuery(this).addClass('linked');
				jQuery(this).click(function(){
					location.href = jQuery(obj).attr('href');
				});
				jQuery(obj).click(function(){
					jQuery(this).click();
					return false;
				});
			}
		});
	},
	init: function(){
		jQuery(document).ready(function(){
			$('div.Carrousel_delay').html(function(index,html){
				AXA.carrouselDelay[index] = html.replace(/^\s/g, '').replace(/\s$/g, '');
				return html;
			});
			Carrousel.init(AXA.carrouselDelay);
			Initialize.Tabs(AXA.maxTabItems);
			Initialize.Products();
			Initialize.QuickNav();
			Initialize.InputHint();
			Initialize.Sidebar();
		});
	}
}).init();