var ytplayer = false;

// Update a particular HTML element with a new value
function updateHTML(elmId, value) {
  document.getElementById(elmId).innerHTML = value;
}

// This function is called when an error is thrown by the player
function onPlayerError(errorCode) {
  alert("An error occured of type:" + errorCode);
}

// This function is called when the player changes state
function onPlayerStateChange(newState) {
    if (ytplayer) {
        if(newState == 1) {
            $('.video_row .play_link').addClass('pause');
            $('#playit').hide();
        } else {
            $('.video_row .play_link').removeClass('pause');
            $('#playit').show();
        }
    }
}

function generateTime(seconds) {
    var seconds = parseInt(seconds);
    var minutes = parseInt(seconds/60);
    seconds = seconds - minutes*60;
    if (minutes<10)
        minutes = '0'+minutes;
    if (seconds<10)
        seconds = '0'+seconds;
    return minutes+':'+seconds;

}

// Display information about the current state of the player
function updatePlayerInfo() {
  if(ytplayer && ytplayer.getDuration) {
    var duration = ytplayer.getDuration();
    var current = ytplayer.getCurrentTime();
    updateHTML("videoDuration", generateTime(duration));
    updateHTML("videoCurrentTime", generateTime(current));
    var percent = 0;
    var loadedPercent = parseInt(ytplayer.getVideoBytesLoaded()/ytplayer.getVideoBytesTotal()*255);
    if(duration>0)
        var percent = parseInt(current/duration*265);

    $('#progress').css({width:percent});
    $('#loaded').css({width:loadedPercent});
  }
}

// This function is automatically called by the player once it loads
function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("ytPlayer");
  setInterval(updatePlayerInfo, 250);
  updatePlayerInfo();
  ytplayer.addEventListener("onStateChange", "onPlayerStateChange");
  ytplayer.addEventListener("onError", "onPlayerError");

  var video = $('.video_box').attr('video');
  ytplayer.loadVideoById(video);
}

// The "main method" of this sample. Called when someone clicks "Run".
function loadPlayer() {
  var params = {allowScriptAccess: "always", wmode: "transparent"};
  var atts = {id: "ytPlayer"};
  swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=player1",
                     "player", "488", "299", "8", null, null, params, atts);
}

$(function(){
	$('.select-player').live('click', function(){

 	    $(".popup_overlay, .popup_w").fadeIn();
        loadPlayer();

        $('.popup_w').center();
        $(".popup_overlay").css('height', $('body').outerHeight());

        var video = $(this).attr('video');
        var vid = $(this).attr('vid');
        var title = $('#slide-'+vid+' .video_block>h2').text();
        var description = $('#slide-'+vid+' .video_block>p').text();
        $('.video_box').attr('vid', vid);
        $('.video_box').attr('video', video);
        $('.frame>h3').text(title);

        if(description)
            $('.frame>p').text(description);

        return false;
    });

    $('.img_gallery a').click(function(){
        $('#idPreloaderImageImg').show();
        var href = $(this).attr('href');
        $('.img_gallery a').removeClass('active');
        $(this).addClass('active');
        $('.gallery_detail img').attr('src', href);

        $('#idMainImageImg').bind('load',function () {
            $('#idPreloaderImageImg').fadeOut(1000);
        });

        return false;
    });

    $('.img_gallery a:first').click();

    var animatedPhotos = false;

    $('.next').click(function(){
        var diff = parseInt($('.img_gallery ul').css('margin-top')) - 300;
        var height = -parseInt($('.img_gallery ul').height()-98);
        if (!animatedPhotos && diff>height) {
            animatedPhotos = true;
            $('.img_gallery ul').animate({'margin-top':diff}, function(){
                animatedPhotos = false;
            });
        }
        return false;
    });

    $('.prev').click(function(){
        var diff = parseInt($('.img_gallery ul').css('margin-top')) + 300;
        if (!animatedPhotos && diff<=0) {
            animatedPhotos = true;
            $('.img_gallery ul').animate({'margin-top':diff}, function(){
                animatedPhotos = false;
            });
        }
        return false;
    });
    $('#volume').css({width:56});
    //Load an initial video into the player
    $('.video_row .play_link, #playit').live('click', function() {
        if (ytplayer) {
            if($(this).hasClass('pause'))
                ytplayer.pauseVideo();
            else
                ytplayer.playVideo();
        }
        return false;
    });

    $(".close").live('click', function () {
        if (ytplayer)
            ytplayer.stopVideo();
        $('#player-wrapper').html('<div id="player"></div>');
        $(".popup_overlay, .popup_w").fadeOut();
    });

    $('.progress_bar').live('click', function(e){
        if(ytplayer) {
            var X = e.pageX - $(this).offset().left;
            var progress = X/265;
            var time = progress*ytplayer.getDuration();
            ytplayer.seekTo(time);
        }
    })

    $('.volume_box').live('click', function(e){
        if(ytplayer) {
            var X = e.pageX - $(this).offset().left;
            var volume = ((X-20)/56)*100;
            if (volume < 0) {
                if($(this).hasClass('mute')) {
                    ytplayer.unMute();
                    $(this).removeClass('mute');
                } else {
                    ytplayer.mute();
                    $(this).addClass('mute');
                }
        } else {
            if(volume > 100)
                volume = 100;
            ytplayer.unMute();
            $(this).removeClass('mute');
            ytplayer.setVolume(volume);
            $('#volume').css({width:(volume/100)*56});
        }
        }
  })
});
