/*** slideshow  ***/
var slideshowObserver = Class.create({
	initialize: function(options) {
		this.options = Object.extend({
			'elementSelector':		'',
			'groupSelector':		'',
			'groupHeading':			'',
			'headingPlacement':		'before',
			'tabClass':				'',
			'tabSelector':			'',
			'className':			'hover',
			'clickEvent':			'click',
			'startEvent':			'mouseenter',
			'stopEvent':			'mouseleave',
			'downEvent':			'mousedown',
			'upEvent':				'mouseup',
			'firstTab':				''
		},options || {});
	},
	addGroup: function(group,heading,placement,className) {
		var tabs = '';
		if (this.options.groupSelector != group) {
		
			// select visible tab
			var hashes = location.hash;
			var strHash = hashes.slice(1);
			
			var strTabName = '#'+group+' li[rel="tab_'+strHash+'"]';
			var tabArray = $$(strTabName).toArray();
			var strTabDiv = $('tab_'+strHash+'');
			
			var strAnchor = 'a[name="anchor_'+strHash+'"]';
			
			var target = $$(strAnchor).toArray();
			if (target.size() > 0) {this.options.firstTab = target[0].getOffsetParent();}

			// set class to choose dom elements for tablist
			this.options.elementSelector = '.'+group;
			// set name for group of elements to avoid duplicates
			this.options.groupSelector = group;
			
			if (className != '' && className != undefined) this.options.tabClass = 'tablist_'+className;
			if (heading != '' && heading != undefined) this.options.groupHeading = '<span class="tabHead">' + heading + '</span>';
			if (placement != '' && placement != undefined) this.options.headingPlacement = placement;
			this.options.tabSelector = '.tab_'+this.options.groupSelector;
			$$(this.options.elementSelector).each(function(element,index){
				(index == 0)? tabs = tabs + '<li class="tab_'+this.options.groupSelector+' click" rel="' + element.readAttribute('id') + '">' + element.readAttribute('rel') + '</li>':tabs = tabs + '<li class="tab_'+this.options.groupSelector+'" rel="' + element.readAttribute('id') + '">' + element.readAttribute('rel') + '</li>';
			},this);
			$$(this.options.elementSelector).each(function(element,index){
				if ($$(this.options.elementSelector).size() > 1) {
					if (index == 0) {
						if (this.options.headingPlacement == 'before') {
							element.insert({
							  before: this.options.groupHeading + '<ul class="tablist '+this.options.tabClass+'" id="'+this.options.groupSelector+'">'+tabs+'</ul>'
							});
							$$(this.options.tabSelector).each(function(element){
								Event.observe(element, this.options.startEvent, this.onStart.bindAsEventListener(this,element));
								Event.observe(element, this.options.stopEvent, this.onStop.bindAsEventListener(this,element));
								Event.observe(element, this.options.downEvent, this.onDown.bindAsEventListener(this,element));
								Event.observe(element, this.options.upEvent, this.onUp.bindAsEventListener(this,element));
							},this);
						}
						element.show();
					}
					if (index == $$(this.options.elementSelector).size()-1) {
						if (this.options.headingPlacement == 'after') {
							element.insert({
							  after: this.options.groupHeading + '<ul class="tablist '+this.options.tabClass+'" id="'+this.options.groupSelector+'">'+tabs+'</ul>'
							});
						$$(this.options.tabSelector).each(function(element){
							Event.observe(element, this.options.startEvent, this.onStart.bindAsEventListener(this,element));
							Event.observe(element, this.options.stopEvent, this.onStop.bindAsEventListener(this,element));
							Event.observe(element, this.options.downEvent, this.onDown.bindAsEventListener(this,element));
							Event.observe(element, this.options.upEvent, this.onUp.bindAsEventListener(this,element));
						},this);
						}
					}
				} else {
					element.show();
				}
			},this);
			// Set Anchor-selected tab
			if ($$(strTabName).toArray().size() > 0) {
				$$('#'+group+' li').invoke('removeClassName',this.options.clickEvent);
				$$('div.tabelement.'+group).invoke('hide');
				strTabDiv.show();
				$$('#'+group+' li[rel="tab_'+strHash+'"]').invoke('addClassName',this.options.clickEvent);
			}
		}
	
	},
	onStart: function(event,element) { element.addClassName(this.options.className); },
	onDown: function(event,element) { element.addClassName(this.options.clickEvent); },
	onUp: function(event,element) {
	
		var t = element.readAttribute('rel');
		$(t).addClassName('show');
	
		$$(this.options.tabSelector).each(function(item){
			item.removeClassName(this.options.clickEvent); 
		},this);
		element.addClassName(this.options.clickEvent);
		$$(this.options.elementSelector).each(function(item){
		        if (item.hasClassName('show')) {
                    (function(){
                        item.appear({ duration: 0.5 });
                        item.removeClassName('show');
                    }).defer();
		        } else {
                    (function(){
                        item.fade({ duration: 0.2 });
                    }).defer();
		        }
				
		},this);        
	},
	onStop: function(event,element) { element.removeClassName(this.options.className); }
});

// Move Teasers
var teaserObserver = Class.create({
	initialize: function(options) {
		var maxnumber = ($$('#teaseList li').size()*180)-(180*4);
		//$('teasetitle').insert('('+ $$('#teaseList li').size() + ')');
		switch($$('#teaseList li').size())
        {
        case 4:
          $('teaseSlideLeft').hide();$('teaseSlideRight').hide(); 
          break;
        default:
            if (maxnumber == 0) { $('teaseSlideRight').addClassName('off'); }
    		$('teaseSlideLeft').addClassName('off');
    		$('teaseList').setStyle({'left': 0});
    		$('teaseSlideRight').observe('click', function (e) {
    			console.log("teaseSlideRight");
    			var item = new Element.Layout($('teaseList'));
    			var itemPos = item.get('left');
    			console.log("teaseSlideRight, itemPos: "+itemPos);
    			if (itemPos <= 0 && itemPos > maxnumber*-1 && maxnumber >= 180) { new Effect.Move('teaseList', { x: -180, mode: 'relative', queue: { position: 'end', scope: 'teaserslides', limit: 1 } }); $('teaseSlideLeft').removeClassName('off'); }	
    			if (itemPos == ((maxnumber-180)*-1)) { $('teaseSlideRight').addClassName('off'); }
    		},'teaseslideright', 888);
    		$('teaseSlideLeft').observe('click', function (e) {
    			console.log("teaseSlideLeft");
    			var item = new Element.Layout($('teaseList'));
    			var itemPos = item.get('left');
    			console.log("teaseSlideLeft, itemPos: "+itemPos);
    			if (itemPos < 0) { new Effect.Move('teaseList', { x: 180, mode: 'relative', queue: { position: 'end', scope: 'teaserslides', limit: 1 } }); $('teaseSlideRight').removeClassName('off'); }
    			if (itemPos == -180) { $('teaseSlideLeft').addClassName('off'); }
    		},'teaseslideleft', 888);
        }
	}
});

// link triggers overlay on .dk
function remoteTrigger(){
  	(document.referrer!='')? str = document.referrer: str = 'none';
  	dom = location.host;
  	var hashes = location.hash;
	var strHash = hashes.slice(1);
	$('body').addClassName('ref-'+str);
	if (str.indexOf("facebook.com") != -1 && dom.indexOf("hwam.dk") != -1) { 
    	overlays.createNew('body', 'fb', 836, 500, '', 50, 'http://hwam.dk/servicesider/kampagner/meretid','');
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay.html'});
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay_fb.html'});
    } else if (str.indexOf("byggeri.dk") != -1 && dom.indexOf("hwam.dk") != -1 ) {
    	overlays.createNew('body', 'byg', 836, 500, '', 50, 'http://hwam.dk/servicesider/kampagner/meretid','');
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay.html'});
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay_byggeri.html'});
    } else if (str.indexOf("idenyt") != -1 && dom.indexOf("hwam.dk") != -1 ) { 
    	overlays.createNew('body', 'ide', 836, 500, '', 50, 'http://hwam.dk/servicesider/kampagner/meretid','');
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay.html'});
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay_idenyt.html'});
    } else if ((str.indexOf("jp") != -1 || strHash=='jp') && dom.indexOf("hwam.dk") != -1 ) { 
    	overlays.createNew('body', 'jp', 836, 500, '', 50, 'http://hwam.dk/servicesider/kampagner/meretid','');
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay.html'});
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay_jp.html'});
    } else if (strHash == "10221414" && dom.indexOf("hwam.dk") != -1 ) {
    	overlays.createNew('body', 'byg', 836, 500, '', 50, 'http://hwam.dk/servicesider/kampagner/meretid','');
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay.html'});
    	document.fire('custom:googletrack', { eventtype: 'page', url: '/kampagne/meretid/openoverlay_bannersys-uspec.html'});
    }
}

chainDomLoaded.addFunction(function(){
	remoteTrigger();
},'referrer',999);
//document.fire('custom:googletrack', { eventtype: 'page/click', url: '/index.html', btnname: 'Open window', label: 'Kampagne for xxx' });






