if (! window.console){
    console = {
            log: function(msg){
                //$('body').append("<p>" + msg + "</p>");
            }
        }
}

var search_field_word
var navi_images
var silvermine

$(document).ready(function() {
    $('a.movie').each(function(){
        flowplayer(this,{src: "/static/flash/flowplayer-3.1.5.swf", wmode: "transparent"},{
            clip: {
                url: this.href,
                autoPlay: true,
                scaling: 'fit'
            }
        })
    });
    
    $('a.video-link').oembed(
        null, 
        {
            embedMethod: "replace", 
            maxWidth: 500,
            maxHeight: 500
        }
    );
    
    $('#viewerNextImage').click(imageViewer.nextImage);
    $('#viewerPrevImage').click(imageViewer.prevImage);
	$('#viewerStartStop').click(imageViewer.toggleShow);
	$('#viewerImageInfoInner').click(imageViewer.showInfo);
	$('#viewerImageInfoInner').hover(imageViewer.hoverInfoIn,imageViewer.hoverInfoOut)
	$('#viewerImageShop').click(imageViewer.buyImage)
    $('html').click(imageViewer.hideInfo);
    
    $('.controlls .tip').cluetip({
        splitTitle: '|', 
        showTitle: false,
        positionBy: 'bottomTop',
        width: 150,
        dropShadow: false,
        clickThrough: true,
        hoverIntent: {
            sensitivity: 1,
            interval: 1000
     }});
     
     $('#menu-left select').change(function(){
         $('#menu-left form').submit();
     });
     
     search_field_word = $('#search-field').focus(function(){
         if ($(this).val() == search_field_word){
             $(this).val('');
         }
     }).blur(function(){
         if ($(this).val() == ''){
             $(this).val(search_field_word);
         }
     }).val()
     
     preload_navi();
})

var imageViewer = function(){
	var running = false;
    var url;
	
    return {
        imageCollection: [],
		fixedCaption: false,
        visibleCaption: false,
        hoverInfo: false,
        showRunning: false,
        showTimer: null,
        current: -1,
        loadCounter: 0,
        completed: false,
        loadingImage: new Image(),
        landScapeHeight: 430,
        
        changeImage: function(num){          
            imageViewer.current = num;
            if (imageViewer.imageCollection[num].image == null) {
                url = imageViewer.loadingImage.url;
                imageViewer.loadImage(num);
            } else if (! imageViewer.imageCollection[num].isLoaded) {
                url = imageViewer.loadingImage.src;
            } else {
                url = imageViewer.imageCollection[num].url
                //console.log('height: ' + imageViewer.imageCollection[num].image.height)
                if (imageViewer.imageCollection[num].image.height > imageViewer.landScapeHeight){
                    $('#image-viewer').removeClass('landscape').addClass('portrait');
                } else {
                    $('#image-viewer').removeClass('portrait').addClass('landscape')
                }  
            }
            $('#image-viewer-screen img').attr('src',url).attr('id','image_' + num);
            $('#viewerCurrentImage span').html(num + 1);
            $('#image-viewer-caption').html(imageViewer.imageCollection[num].caption);
            imageViewer.centerCaption();
        },
        
        nextImage: function(e){
            var c = imageViewer.getCurrentImage();
            if (c > -1) {
                
                if (c < imageViewer.imageCollection.length -1){
                    imageViewer.changeImage(c+1);
                } else {
                    imageViewer.changeImage(0);
                }
            }
            if (e != null && e.type == 'click' && imageViewer.showRunning) {
                imageViewer.toggleShow();
            }
            else {
                if (imageViewer.fixedCaption || imageViewer.visibleCaption) {
                    $('#image-viewer-screen img').fadeIn('slow');
                    imageViewer.centerCaption();
                    $('#image-viewer-caption').fadeIn('slow');
                } else {
                    $('#image-viewer-screen img').fadeIn('slow');
                }
            }
            return false;
        },
        
        prevImage: function(){
            var c = imageViewer.getCurrentImage();
            if (c > -1) {
                if (c > 0){
                    imageViewer.changeImage(c-1);
                } else {
                    imageViewer.changeImage(imageViewer.imageCollection.length-1);
                }
            }
            return false;
        },
        
        getCurrentImage: function(){
            if (imageViewer.current == -1){
                var id = String($('#image-viewer-screen img').attr('id'));
                if (id != ''){
                    id = id.substring(6);
                    imageViewer.current = parseInt(id);
                }
            }
            return imageViewer.current
        },
        
        setCurrentImage: function(num){
            imageViewer.current = num;
            if (imageViewer.imageCollection[num].image == null) {
                imageViewer.loadImage(num)
            }
        },
		
		showInfo: function(){
			if (imageViewer.fixedCaption){
                return false;
            } else { 
				imageViewer.fixedCaption = true;
				$('#image-viewer-caption').show();
			    return false;
			}
		},
        
        hideInfo: function(){
            if (imageViewer.fixedCaption){
                imageViewer.fixedCaption = false;
                imageViewer.visibleCaption = false;
                $('#image-viewer-caption').hide();
                return true;
            }
        },
		
		hoverInfoIn: function(){
            imageViewer.hoverInfo = true;
			if (! imageViewer.fixedCaption){
                imageViewer.centerCaption();
                imageViewer.visibleCaption = true;
				$('#image-viewer-caption').show();
			}
		},
		
		hoverInfoOut: function(){
            imageViewer.hoverInfo = false;
			if (! imageViewer.fixedCaption){
                imageViewer.visibleCaption = false;
				$('#image-viewer-caption').hide();
			}
		},
        
        toggleShow: function(){
            if (imageViewer.showRunning){
                window.clearTimeout(imageViewer.showTimer);
                imageViewer.showRunning = false;
                $('#viewerStartStop .stop').hide();
                $('#viewerStartStop .start').show();
                return false;
            } else {
                //imageViewer.showRunning = true;
                imageViewer.procedeShow();
                $('#viewerStartStop .start').hide();
                $('#viewerStartStop .stop').show();
                return false;
            }
        },
        
        procedeShow: function(){
            if (this.showRunning) {
                if (imageViewer.hoverInfo) {
                    imageViewer.showTimer = window.setTimeout("imageViewer.procedeShow()", 1000);
                    return;
                }
                if (imageViewer.fixedCaption || imageViewer.visibleCaption) {
                    $('#image-viewer-caption').fadeOut('slow')
                }
                $('#image-viewer-screen img').fadeOut('slow', imageViewer.nextImage);
     
                //this.nextImage();
            }
            else {
                this.showRunning = true;
                this.changeImage(this.getCurrentImage());
            }
            imageViewer.showTimer = window.setTimeout("imageViewer.procedeShow()", 4000);
        },
        
        centerCaption: function(){
            var consolePos = $('#image-viewer-screen').position()
            var img = $('#image-viewer-screen img');
            var imgPos = img.position();
            var caption = $('#image-viewer-caption');
            caption.css({'top': imgPos.top + img.height() - (caption.outerHeight()),'left': consolePos.left});
        },
        
        loadImage: function(num){
            //console.log('loadImage: ' + num);
            if (num == null){
                if (! imageViewer.complete && imageViewer.loadCounter == 0){
                    
                    for(i=0;i<imageViewer.imageCollection.length;i++){
                        if (imageViewer.imageCollection[i].image == null) {
                            //console.log('found image to load: ' + i);
                            imageViewer.createImage(i)
                            return
                        } 
                    }
                    
                    console.log('preloading complete');
                    imageViewer.complete = true;
                }
            } else {
                if (imageViewer.imageCollection[num].image == null) {
                    imageViewer.createImage(num)
                } else {
                    if (! imageViewer.complete && imageViewer.loadCounter == 0) {
                        imageViewer.loadImage();
                    }
                }
            }
        },
        
        createImage: function(num){
            //console.log('createImage: ' + num);
            imageViewer.imageCollection[num].image = new Image();
            $(imageViewer.imageCollection[num].image).attr('alt',num).load(imageViewer.imageLoaded);
            //imageViewer.imageCollection[num].image.onload = imageViewer.imageLoaded
            imageViewer.imageCollection[num].image.src = imageViewer.imageCollection[num].url;
            imageViewer.loadCounter += 1;
        },
        
        imageLoaded: function() {
            if (imageViewer.loadCounter > 0) imageViewer.loadCounter -= 1;
            //console.log('loadCounter: ' + imageViewer.loadCounter);
            var num =  $(this).attr('alt');
            //console.log(num);
            imageViewer.imageCollection[num].isLoaded = true;
            if (num == imageViewer.current){
                $('#image-viewer-screen img').attr('src',imageViewer.imageCollection[num].url)
                if (imageViewer.imageCollection[num].image.height > imageViewer.landScapeHeight){
                    $('#image-viewer').removeClass('landscape').addClass('portrait');
                } else {
                    $('#image-viewer').removeClass('portrait').addClass('landscape')
                }  
            }
            imageViewer.loadImage(null);
        },
        buyImage: function () {
            silvermine = window.open(imageViewer.imageCollection[imageViewer.current].link);
            silvermine.focus();
            return false;
        }
    }
}();

function preload_navi(){
    var buttons = ['home','reportagen','fotografen','publikationen','kontakt','news','blog'];
    var img;
    navi_images = [];
    for (i in buttons){
        img = new Image();
        img.src = media_url + 'images/menue/' + buttons[i] + '_i' + menu_lang + '.png';
        navi_images.push(img);
        img = new Image();
        img.src = media_url + 'images/menue/' + buttons[i] + '_a' + menu_lang + '.png';
        navi_images.push(img);
    }
}
