//================================== DIVERSE FUNKTIONER ==============================================//

// Funktion der viser/skjuler søgefeltet i main menu'en
function showHideSearch(obj) {

    $('#searchField').animate({
            marginRight: 10,               
            width: 100            
        }, 800, function () {
            // Animation færdig.
    });

    jQuery(obj).unbind();
    jQuery(obj).bind('click', function () {
        submitSearch(obj);
    });

}
// Funktion der submitter søgeformen fra main menu'en
function submitSearch(obj) {
    document.SearchForm1.submit();
}

// Roll up funktion der bruges på forsiden af "PRIVATE".
function frontRollup(obj, state) {
    if (state == 1) {
        jQuery(obj).stop().animate({ height: 118 }, 400, function () { });
        jQuery(obj).find('div').fadeIn();
    } else if (state == 2) {
        jQuery(obj).stop().animate({ height: 47 }, 400, function () { });
        jQuery(obj).find('div').fadeOut();
    }
}

// Hover på de fem steps i bunden af forsiden på "PRIVATE"
function step(state, obj) {    
    if(state == '1'){
        jQuery(obj).find('img').stop().animate({ height: 28, width: 48 }, 400, function () { });
        jQuery(obj).find('h3 span').hide();
        jQuery(obj).find('h3').stop().animate({ height: 9 }, 400, function () { });
        jQuery(obj).find('p').hide();
        jQuery(obj).find('div').show();

    }else if(state == '2'){
        jQuery(obj).find('img').stop().animate({ height: 45, width: 83 }, 400, function () { });
        jQuery(obj).find('h3').stop().animate({ height: 42 }, 400, function () { });

        setTimeout( function()
            {
                jQuery(obj).find('h3 span').stop().show();
            }, 250);
        
        jQuery(obj).find('div').hide();
        jQuery(obj).find('p').show();        
    }
}

// Denne funktioner håndterer dropdown menu'er der er tilknyttet "De fem steps"
function dropDownSteps(idToShow, state, obj) {
    if (state == 1) {
        jQuery(obj).animate({
            width: 340
        }, 200, function () {
            jQuery(obj).find('span.closeDropdown').fadeIn(50);
        });

        jQuery(obj).attr('class', 'wideSpan floatRight pointer')
        jQuery('#' + idToShow).slideDown(200);
    } else if (state == 2) {
        jQuery(obj).find('span.closeDropdown').hide();
        jQuery(obj).animate({
            width: 140
        }, 200, function () {
            jQuery(obj).attr('class', 'floatRight pointer')
        });        
        jQuery('#' + idToShow).slideUp(200);
    }

}

// Denne funktioner håndterer dropdown menu'er der er tilknyttet "Dine genveje"
function shortcuts(idToShow, state, obj) {     
     if (state == 1) {
          jQuery(obj).animate({
               width: 167
          }, 200, function () {
               jQuery(obj).find('span.closeDropdown').fadeIn(50);
          });

          jQuery(obj).attr('class', 'wideSpan floatRight pointer')
          jQuery('#' + idToShow).slideDown(200);     
     } else if (state == 2) {
          jQuery(obj).find('span.closeDropdown').hide();
          jQuery(obj).animate({
               width: 114
          }, 200, function () {
               jQuery(obj).attr('class', 'floatRight pointer')
          });
          jQuery('#' + idToShow).slideUp(200);
     }

}

// Denne funktion sætter cookien hvis man vælger nye genveje i dropdown menu'en.
function pickShortcuts(ulId) {
     jQuery.cookie('the_cookie', ulId, { expires: 100 });
     var dropShortcutContent = jQuery('#dropShortcutContent');
     jQuery(dropShortcutContent).find('ul').hide();
     jQuery(dropShortcutContent).find('h5').removeClass('chosenLinks');
     jQuery('#' + ulId).show();
     jQuery('#h5' + ulId).addClass('chosenLinks');
}

// Denne funktion fylder "Genveje" boksen ud der ligger til højre for flashslideshow.
// Først tjekker jeg om cookien er sat. Hvis den ikke er bliver den først samling genveje vist. 
// Ellers bliver de valgte links vist.
function populateShortcuts(displayThese) {
     if (displayThese != null) {
          var insertUl = jQuery('#'+displayThese).show().clone();
          jQuery('div.shortcuts ').append(insertUl);
          jQuery('#h5' + displayThese).addClass('chosenLinks');
     } else {          
          var insertUl = jQuery('#dropShortcutContent ul:first').show().clone();
          jQuery('div.shortcuts ').append(insertUl);
          jQuery('#dropShortcutContent h5:first').addClass('chosenLinks');
     }
}

// DW's breadcrumb sucks max, så her styles den.
function breadcrumbFix(obj, areaid, isRef, hpName){
	var breadSpan = jQuery(obj).find('span.Legend');
	jQuery(obj).find('span.Legend img').attr('src','/Files/System/images/gfx_breadcrumbArrow.png');
	breadSpan.html(breadSpan.html().replace(/»/ig, ""));
	jQuery(breadSpan).prepend('<a href="/Default.aspx?areaid='+ areaid + '">' + hpName +'</a>');
	
	// Hvis brødkrummen vises på en reference eller en testimonial skal brødkrummen placeres anderledes
	if(isRef == 1){
		jQuery('div.testimonialDesc ').prepend(breadSpan);
	}else if(isRef == 2){
		jQuery('div.galleryThumbs').append(breadSpan);
	}
}

// Denne funktion styrer billede karusellen på Testimonials/Referencer og Galleri
function loopImages(obj, imageClass, thumbWrapClass, nextBaseClass, imageWidth, slideTime){
	var imageCount = jQuery('img.'+ imageClass).size();

	for(i=0; i < imageCount; i++){
		jQuery('img.' + imageClass + ':eq('+i+')').attr('alt',i);
	}

	if(imageCount > 1){
		jQuery(obj).find('img.' + nextBaseClass + 'Forward').removeClass('displayNone').bind('click', function () { 
			toogleImages(1, imageCount, imageClass, thumbWrapClass, imageWidth, slideTime); 
		});
		jQuery(obj).find('img.' + nextBaseClass + 'Back').removeClass('displayNone').bind('click', function () { 
			toogleImages(2, imageCount, imageClass, thumbWrapClass, imageWidth, slideTime); 
		});;
		
		var htmlChunk = '<div class="' + thumbWrapClass + '">';
		
		for(i=0; i < imageCount; i++){
			if(i == 0){
				htmlChunk += '<img src="/files/System/images/gfx_testimonial_mini_active.png" />';
			}else{
				htmlChunk += '<img src="/files/System/images/gfx_testimonial_mini.png" />';
			}
		}
		
		htmlChunk += '</div>';
		jQuery(obj).prepend(htmlChunk);
	}	
}

// Denne funktion styrer bileder på testimonials og referencer. Den finder ud af om man har klikket på venstre eller højre pil. Og viser det rette billede. 
function toogleImages(direction, totalImages, imageClass, thumbWrapClass, imageWidth, slideTime){
	if(direction == 1){
		var currentSelected = jQuery('img.imageSelected');
		var currentPos = jQuery(currentSelected).attr('alt');
		var newPos = parseFloat(currentPos)+1;
		if(newPos >= totalImages){
			newPos  = 0;
		}
		var nextImage = jQuery('img.' + imageClass + ':eq('+newPos+')');
		jQuery(nextImage).removeClass('displayNone');
        jQuery(currentSelected).stop().animate({ left: -imageWidth }, slideTime, function () { 
			jQuery(currentSelected).addClass('displayNone').removeClass('imageSelected').css('left','0px');
			jQuery('div.' + thumbWrapClass + ' img:eq('+currentPos+')').attr('src','/files/System/images/gfx_testimonial_mini.png');
			jQuery('div.' + thumbWrapClass + ' img:eq('+newPos+')').attr('src','/files/System/images/gfx_testimonial_mini_active.png');
			jQuery(nextImage).addClass('imageSelected'); 
		});		
	}else if( direction == 2){
		var currentSelected = jQuery('img.imageSelected');
		var currentPos = jQuery(currentSelected).attr('alt');
		var newPos = parseFloat(currentPos)-1;
		if(newPos < 0){
			newPos = totalImages-1;
		}
		var nextImage = jQuery('img.' + imageClass + ':eq('+newPos+')');
		jQuery(nextImage).removeClass('displayNone');
        jQuery(currentSelected).stop().animate({ left: imageWidth }, slideTime, function () { 
			jQuery(currentSelected).addClass('displayNone').removeClass('imageSelected').css('left','0px');
			jQuery('div.' + thumbWrapClass + ' img:eq('+currentPos+')').attr('src','/files/System/images/gfx_testimonial_mini.png');
			jQuery('div.' + thumbWrapClass + ' img:eq('+newPos+')').attr('src','/files/System/images/gfx_testimonial_mini_active.png');
			jQuery(nextImage).addClass('imageSelected'); 
		});
	}
}


// Denne funktion fylder de rigtige produkttyper ind i dropdown menu på galleri søgning. Alt efter hvilket produkt man har valgt.
function populateGalleryList(groupId){
	var hiddenProductTypes = jQuery('#hiddenProductTypes');	
	var productTypes = jQuery('#ProductTypes');
	var hiddenProductTypesCount = jQuery('#hiddenProductTypes').find('option[id=' + groupId + ']').size();
	jQuery('option.insertedOption').remove();		
	jQuery(hiddenProductTypes).find('option').each(function (i) {	    
		if(jQuery(this).attr('id') == groupId){
			if(hiddenProductTypesCount <= 1){
			    jQuery(productTypes).append('<option selected="selected" class="insertedOption" value="' + jQuery(this).attr('value') + '">' + jQuery(this).attr('rel') + '</option>');
			}else{
			    jQuery(productTypes).append('<option class="insertedOption" value="' + jQuery(this).attr('value') + '">' + jQuery(this).attr('rel') + '</option>');
			}
		}											   
	});
}

// Denne funktion viser galleri-siden med de billede parametre man har valgt i dropdown menuen
function showGallery(){
	var productTypes = jQuery('#ProductTypes');	
	var productId = jQuery(productTypes).find('option:selected').attr('value');
	if(productId != 'false'){
		window.location = '/Default.aspx?id=404&ProductID='+productId+'&PID=1730';
	}else{
		alert('Du har ikke valgt nogen produkt type');
	}
}
// Denne funktion viser galleri-siden med de billede parametre man har valgt i dropdown menuen
function showGalleryDE(){
	var productTypes = jQuery('#ProductTypes');	
	var productId = jQuery(productTypes).find('option:selected').attr('value');
	if(productId != 'false'){
		window.location = '/Default.aspx?id=1589&ProductID='+productId+'&PID=9556';
	}else{
		alert('Sie haben kein Produkt ausgewählt');
	}
}

function showGalImage(obj, thumbWrapClass){
	var imageToShow = jQuery(obj).attr('alt');
	var currentSelected = jQuery('img.imageSelected');
	var currentPos = jQuery(currentSelected).attr('alt');
	
	jQuery('img.imageSelected').removeClass('imageSelected').addClass('displayNone');
	jQuery('img.galleriImg:eq(' + imageToShow + ')').removeClass('displayNone').addClass('imageSelected');

	jQuery('div.' + thumbWrapClass + ' img:eq('+currentPos+')').attr('src','/files/System/images/gfx_testimonial_mini.png');
	jQuery('div.' + thumbWrapClass + ' img:eq('+imageToShow+')').attr('src','/files/System/images/gfx_testimonial_mini_active.png');

}

// Slide kontakt form op og ned
function slideContactForm(obj){
	if(jQuery('#activateForm').hasClass('expanded')){
		jQuery('#activateForm').slideUp('fast').removeClass('expanded');
		jQuery(obj).removeClass('activeKontakt').addClass('inactiveKontakt');
	}
	else{
		jQuery('#activateForm').slideDown('fast').addClass('expanded');		
		jQuery(obj).removeClass('inactiveKontakt').addClass('activeKontakt');
	}
}

function slider(obj){
	var foldThisOut = jQuery(obj).attr('title');
	switch(jQuery('#showThis'+foldThisOut).hasClass('displayNone')){
		case false: 
			jQuery('#showThis'+foldThisOut).slideUp('fast').addClass('displayNone');
			jQuery(obj).find('a').removeClass().addClass('collapsedArrow');
			break;
		case true:
			jQuery('#showThis'+foldThisOut).slideDown('fast').removeClass('displayNone');			
			jQuery(obj).find('a').removeClass().addClass('expandedArrow');
			break;
	}
}
function drawings(direction) {
    var drawingImageWrap = jQuery('#drawingImageWrap');
    var drawingCount = jQuery(drawingImageWrap).children().size();    
    switch (direction) {
        case '1':
            var firstVisible = jQuery(drawingImageWrap).find('div.shown:first');
            var firstVisiblePos = parseFloat(jQuery(firstVisible).attr('id'));
            if(firstVisiblePos > 1){            
                var aarPreviousPositions = new Array();            
                aarPreviousPositions[0] = firstVisiblePos+3;
                aarPreviousPositions[1] = firstVisiblePos+2;
                aarPreviousPositions[2] = firstVisiblePos+1;
                aarPreviousPositions[3] = firstVisiblePos;
                nextPosToShow = firstVisiblePos - 1;
                var nexToShow = jQuery('#' + nextPosToShow);
                $(nexToShow).animate({
                    left: 0                
                }, 200, function () {
                     $(nexToShow).removeClass('hidden').addClass('shown');
                });
                $('#'+ aarPreviousPositions[3]).animate({
                    left: 100                
                }, 200, function () {
                    // Animation færdig.
                });
                 $('#'+ aarPreviousPositions[2]).animate({
                    left: 200                
                }, 200, function () {
                    // Animation færdig.
                });
                 $('#'+ aarPreviousPositions[1]).animate({
                    left: 300                
                }, 200, function () {
                    // Animation færdig.
                });
                 $('#'+ aarPreviousPositions[0]).animate({
                    left: 400                
                }, 200, function () {
                    $('#'+ aarPreviousPositions[0]).removeClass('shown').addClass('hidden');
                });
            }
            break;
        case '2':
            var lastVisible = jQuery(drawingImageWrap).find('div.shown:last');
            var lastVisiblePos = parseFloat(jQuery(lastVisible).attr('id'));
            if(lastVisiblePos < drawingCount){
                var aarPreviousPositions = new Array();            
                aarPreviousPositions[0] = lastVisiblePos-3;
                aarPreviousPositions[1] = lastVisiblePos-2;
                aarPreviousPositions[2] = lastVisiblePos-1;
                aarPreviousPositions[3] = lastVisiblePos;
                nextPosToShow = lastVisiblePos + 1;
                var nexToShow = jQuery('#' + nextPosToShow);
                $(nexToShow).animate({
                    left: 300                
                }, 200, function () {
                     $(nexToShow).removeClass('hidden').addClass('shown');
                });
                $('#'+ aarPreviousPositions[3]).animate({
                    left: 200                
                }, 200, function () {
                    // Animation færdig.
                });
                 $('#'+ aarPreviousPositions[2]).animate({
                    left: 100                
                }, 200, function () {
                    // Animation færdig.
                });
                 $('#'+ aarPreviousPositions[1]).animate({
                    left: 0                
                }, 200, function () {
                    // Animation færdig.
                });
                 $('#'+ aarPreviousPositions[0]).animate({
                    left: -100                
                }, 200, function () {
                    $('#'+ aarPreviousPositions[0]).removeClass('shown').addClass('hidden');
                });
            }
            break;            
    }
}

//================================== DOCUMENT LOAD ===================================================//

jQuery(document).ready(function () {
	
    // søge knappen i main menu'en bliver tildelt en onclick handler, der kalder showHideSearch funktionen.
    jQuery('#search').bind('click', function () {
        showHideSearch(jQuery(this));
    });

    // Her attaches rollup funktionen på forsiden af "PRIVATE". Først tester jeg om elementet funktionen
    // skal attaches til rent faktisk eksisterer på siden.
    var rollupExists = jQuery('#frontRollUp').find('.rollUp');
    if (rollupExists[0]) {
        jQuery(rollupExists).hover(
            function () {
                frontRollup(rollupExists, 1);
            },
            function () {
                frontRollup(rollupExists, 2);
            }
        );
    }

    // Her nulstilles margin på det sidste step i "De fem steps" på forsiden af private.
    // Derefter binder jeg en hover funktion der hver enkelt step
    // Først tester jeg om der overhovedet findes step på siden.
    var stepsExists = jQuery('#femSteps');
    if (stepsExists[0]) {
        jQuery('#femSteps').show();
        jQuery(stepsExists).find('div.step:eq(4)').css('margin', '0px');
        jQuery(stepsExists).find('div.step').hover(function () { step('1', this); }, function () { step('2', this); });
    }

    // Her kobles toogle eventhandleren til Dropdown "De fem steps" på alle sider under "PRIVATE".
    // Først tester jeg om den eksisterer på siden.
    var dropdownExists = jQuery('#dropdownActivate');
    if (dropdownExists[0]) {
        // Her fjerner jeg borderen på det sidste step i dropdown menu'en
        jQuery('div.dropdownStep:eq(4)').css({ 'background': 'none', 'margin-bottom': '0px' });
        jQuery(dropdownExists).toggle(function () {
            dropDownSteps('dropdownSteps', 1, this);
        }, function () {
            dropDownSteps('dropdownSteps', 2, this);
        });
    }

    // Her kobles toogle eventhandleren til Dropdown "Dine genveje" på alle sider under "Professionelle".
    // Først tester jeg om den eksisterer på siden.
    var shortcutsExists = jQuery('#shortcutsActive');
    if (shortcutsExists[0]) {
        // Her opretter jeg en cookie der skal holdes styr på om man har valgt noget i "Dine genvej" under professionelle
        var shortcutCookie = jQuery.cookie('the_cookie');

        jQuery(shortcutsExists).toggle(function () {
            shortcuts('dropShortcutContent', 1, this);
        }, function () {
            shortcuts('dropShortcutContent', 2, this);
        });

        // Her indsættes links i "GENVEJE" boksen på forsiden af Professionelle.
        // Jeg kalder funktionen med værdien i cookien. Den bestemmer hvad der bliver vist. 
        populateShortcuts(shortcutCookie);

    }

	try {
	// Her laves rollover effect på forside slides
	$("#flashSlideShow a").hover(function() {
		//$(".flashSlideShow").append('<div class="slideActive">&gt;&gt;</div>');
		$(".slideActive", this).dequeue().stop(true, true).show();
		//this.(".slideActive").dequeue().stop(true, true).fadeIn();
		//$("#LogoByline").css("display", "block").typewriter();
	}, function() {
		$(".slideActive", this).dequeue().stop(true, true).hide();
		//$("#LogoByline").dequeue().stop(true, true).fadeOut();
	});
	} catch (e) {}
	try {
	// Her laves rollover effect på forside slides
	$("#flashSlideShowProf a").hover(function() {
		//$(".flashSlideShow").append('<div class="slideActive">&gt;&gt;</div>');
		$(".slideActive", this).dequeue().stop(true, true).show();
		//this.(".slideActive").dequeue().stop(true, true).fadeIn();
		//$("#LogoByline").css("display", "block").typewriter();
	}, function() {
		$(".slideActive", this).dequeue().stop(true, true).hide();
		//$("#LogoByline").dequeue().stop(true, true).fadeOut();
	});
	} catch (e) {}


    // Her kobles funktionen til skift af billeder i galleriet på forsiden
    // på PRIVATE. Det første jeg gør er endnu engang at tjekke om elementerne findes
    var frontGalExists = jQuery('#galleriUl');
    if (frontGalExists[0]) {
        jQuery('#galleriUl').jcarousel({
            wrap: 'circular'
        });
        jQuery('#frontGallery img').attr('height', '105');
    }

    // Her kobler jeg billed rotator på testimonial/reference billeder
    // Først tjekker jeg om der er nogen
    var testimonialExists = jQuery('#testimonialImages');
    if (testimonialExists[0]) {
        loopImages(testimonialExists, 'testiImage', 'miniTestimonials', 'testi', 500, 400);
    }

    // Her køres populateGalleryList funktionen
    // Først tjekker jeg om der findes en dropdown liste på siden
    var gallerySearchExists = jQuery('#ProductGroups');
    if (gallerySearchExists[0]) {
        var groupId = jQuery(this).find('option:first').attr('id');
        populateGalleryList(groupId);
        jQuery('#btnGallerySearch').bind('click', function () {
            showGallery();
        });
		
        jQuery(gallerySearchExists).bind('change', function () {
            selectedId = jQuery(this).find('option:selected').attr('id');
            populateGalleryList(selectedId);
        });
    }

    // Her køres populateGalleryList funktionen
    // Først tjekker jeg om der findes en dropdown liste på siden
    var gallerySearchExists = jQuery('#ProductGroupsDE');
    if (gallerySearchExists[0]) {
        var groupId = jQuery(this).find('option:first').attr('id');
        populateGalleryList(groupId);
        jQuery('#btnGallerySearch').bind('click', function () {
            showGalleryDE();
        });
		
        jQuery(gallerySearchExists).bind('change', function () {
            selectedId = jQuery(this).find('option:selected').attr('id');
            populateGalleryList(selectedId);
        });
    }

    // Her kobler jeg billed rotator på Galleri
    // Først tjekker jeg om der er et galleri
    var galleriExists = jQuery('#galleryImages');
    if (galleriExists[0]) {
        loopImages(galleriExists, 'galleriImg', 'miniGallery', 'gallery', 718, 400);
        jQuery('img.galThumb').bind('click', function () {
            showGalImage(this, 'miniGallery');
        });
    }

    //Kontaktform slide Up & Down listener
    var kontaktFormExists = jQuery('#activateKontaktForm');
    if (kontaktFormExists[0]) {

        jQuery(kontaktFormExists).toggle(function () {
            slideContactForm(this);
        }, function () {
            slideContactForm(this);
        });
    }

    //slide Up & Down listener
    var slideExists = jQuery('.foldOut');
    if (slideExists[0]) {
        jQuery('.foldOut').bind('click', function () { slider(this); });
    }


    // Her tjekker jeg om det jeg står på en side med snittegninger. Gør jeg det fikser jeg margin på billede og tekst, så de bliver centreret.
    var drawing = jQuery('div.drawing');
    if (drawing[0]) {
        jQuery(drawing).find('img').each(function (i) {
            thisImg = jQuery(this);
            var detOver = jQuery(thisImg).width();
            fullSpace = 100 - detOver;
            newMargin = Math.ceil(fullSpace / 2);
            if (newMargin >= 50) {
                newMargin = 33;
            }
            jQuery(thisImg).css('margin-left', newMargin);
        });
        jQuery(drawing).find('span').each(function (i) {
            thisSpan = jQuery(this);
            var detOver = jQuery(thisSpan).width();
            fullSpace = 100 - detOver;
            newMargin = Math.ceil(fullSpace / 2);
            if (newMargin >= 50) {
                newMargin = 33;
            }
            jQuery(thisSpan).css('margin-left', newMargin);
        });
        jQuery('img.drawingBack').bind('click', function () {
            drawings('1');
        });
        jQuery('img.drawingForward').bind('click', function () {
            drawings('2');
        });
    }

	var isLightbox = jQuery("a[rel='lightbox']");
	if(isLightbox[0]){
		jQuery("a[rel='lightbox']").colorbox();
	}
	
	//Language Dropdown

	$(".menuTop .language a").click(function() {
		$("#Languages").slideDown();
	});

	$(document).bind('click', function(e) {
		var $clicked = $(e.target);
		if (! $clicked.parents().hasClass("language"))
			$("#Languages").hide();
	});
	
});
