$(document).ready(function() {
    blankTarget();

    $("a.fancybox").fancybox({
        'zoomSpeedIn': 300,
        'zoomSpeedOut': 300,
        'overlayShow': true,
        'hideOnContentClick': false,
        'titlePosition'	: 'over',
        'autoDimensions' : true,
		'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
		    return '<span id="fancybox-title-over">' +  (currentIndex + 1) + ' / ' + currentArray.length + '</span>';
		}
    });

    $('#slider1').bxSlider({
	    controls: true
	});

    $('#slider2').bxSlider({
	    controls: true
	});

    $('#slider3').bxSlider({
	    controls: true
	});

    $("a.ref_kep").fancybox({
        'transitionIn'	: 'elastic',
        'transitionOut'	: 'elastic',
        'titlePosition'		: 'inside',
        'overlayColor'		: '#000',
        'overlayOpacity'	: 0.6,
		'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
		    return '<span id="fancybox-title-inside"><strong>(' +  (currentIndex + 1) + ' / ' + currentArray.length + ')</strong>&nbsp;&nbsp;&nbsp;' + title + '</span>';
		}
    });

    $('.pics').each(function() {
        var $this = $(this);
        var arr =  $this.attr('id').split('_');
        $this.cycle({
            speed: 2000,
            timeout: 3000,
            prev: '#prev_' + arr[1],
            next: '#next_' + arr[1],
        }).cycle('pause');
    });
});

function blankTarget()
{
    if(!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for(var i=0; i<anchors.length; i++)
    {
        var anchor = anchors[i];
        anchor.tabindex = i;
        if(anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
        {
            anchor.target = "_blank";
        }
    }
}

function newsscoller(prev)
{
    var current_image = $('#gallery li.selected').length ? $('#gallery li.selected') : $('#gallery li:first');
    var current_excerpt = $('#excerpt li.selected').length ? $('#excerpt li.selected') : $('#excerpt li:first');

    if (prev) {
        var next_image = (current_image.prev().length) ? current_image.prev() : $('#gallery li:last');
        var next_excerpt = (current_excerpt.prev().length) ? current_excerpt.prev() : $('#excerpt li:last');
    }
    else {
        var next_image = (current_image.next().length) ? current_image.next() : $('#gallery li:first');
        var next_excerpt = (current_excerpt.next().length) ? current_excerpt.next() : $('#excerpt li:first');
    }

    $('#excerpt li, #gallery li').removeClass('selected');

    next_image.addClass('selected');
    next_excerpt.addClass('selected');

    $('#mask-gallery').scrollTo(next_image, 800);
    $('#mask-excerpt').scrollTo(next_excerpt, 800);
}

$(window).load(function() {
    $(".grayscale img").fadeIn(500);

    $('.grayscale img').each(function() {
        var el = $(this);
        el.css({"position":"absolute"}).wrap("<div class='img_wrapper' style='display: inline-block'>").clone().addClass('img_grayscale').css({"position":"absolute","z-index":"98","opacity":"0"}).insertBefore(el).queue(function() {
    	    var el = $(this);
        	el.parent().css({"width":this.width,"height":this.height});
        	el.dequeue();
        });

        this.src = grayscale(this.src);
    });

    $('.grayscale img').mouseover(function(){
        $(this).parent().find('img:first').stop().animate({opacity:1}, 500);
    })
    $('.img_grayscale').mouseout(function(){
        $(this).stop().animate({opacity:0}, 500);
    });
});

function grayscale(src){
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var imgObj = new Image();
    imgObj.src = src;
    canvas.width = imgObj.width;
    canvas.height = imgObj.height;
    ctx.drawImage(imgObj, 0, 0);
    var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);
    for(var y = 0; y < imgPixels.height; y++) {
        for(var x = 0; x < imgPixels.width; x++) {
            var i = (y * 4) * imgPixels.width + x * 4;
            var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
            imgPixels.data[i] = avg;
            imgPixels.data[i + 1] = avg;
            imgPixels.data[i + 2] = avg;
        }
    }
    ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
    return canvas.toDataURL();
}
