var DigitalFactory = {

    flipped : false,
    currentPage : 1,

    initialize : function()
    {
        var data = [];

        Loader.init();

        Loader.load('/videoclips/getimagefiles', data ,'DigitalFactory.getImageFilesCallback');
 		Loader.load('/index/esittely', data ,'DigitalFactory.esittelyCallback');

        $("#digitalFactory").bind("click", function(){
            $('#overlays').show();
            DigitalFactory.flip(1, true, 1);
        }, false);
        $("#stream").bind("click", function(){
            $('#overlays').show();
            DigitalFactory.flip(2, true, 1);
        }, false);
        $("#post").bind("click", function(){
            $('#overlays').show();
            DigitalFactory.flip(3, true, 1);
        }, false);
        $("#esittely").bind("click", function(){
        	Loader.load('/index/esittely', data ,'DigitalFactory.esittelyCallback');
        });
        $("#otaYhteytta").bind("click", function(){
        	Loader.load('/index/otayhteytta', data ,'DigitalFactory.otaYhteyttaCallback');
        });

    },
     otaYhteyttaCallback : function(data){

    	$("#nav li").removeClass("selected");
    	$('#content').fadeOut('fast', function() {
        	$('#overlays').hide();
        	$('#content').html('');
        	$('.pagination').html('');
    		$('#content').html(data.data[0].content);
    		$('#content').fadeIn('fast');
    		$("#sixth").addClass("selected");
    		Loader.decreaseCallCount();
      	});



    },
    esittelyCallback : function(data){

    	$("#nav li").removeClass("selected");
        $('#content').fadeOut('fast', function() {
        	$('#overlays').hide();
        	$('#content').html('');
        	$('.pagination').html('');
    		$('#content').html(data.data[0].content);
    		$('#content').fadeIn('fast');
    		$("#first").addClass("selected");
    		Loader.decreaseCallCount();
    	});

    },
    setupPlayer : function()
    {
	    $("a[rel]").hover(
			function () {
				$(this).find(".bw").hide();
		    	$(this).find(".color").show();
		  	},
		  	function () {
				$(this).find(".color").hide();
				$(this).find(".bw").show();
		  	}
		);

	    // setup overlay actions to buttons
		$("a[rel]").overlay(
		{
			speed : 200,
	
			// setup exposing (optional operation);
			onBeforeLoad: function() {
				this.expose();
			},
	
			onLoad: function(content) {
				// find the player contained inside this overlay and load it
			    this.getContent().find("a.player").flowplayer(0).load();
			},
	
			onClose: function(content) {
				$f().unload();
			    // cloase exposing
			    $.expose.close();
			}
		});

	    // install flowplayers
	    flowplayer("a.player", "/static/swf/flowplayer-3.2.5.swf", {
	    	clip:{
	    		scaling: 'orig'
	    	}
	    });

    },

    getVideoclipsCallback : function(json)
    {
        var dataObject = json.data;
        //var page = DigitalFactory.currentPage;
        var page = dataObject.currentPage;
     
        var title = "";

		if(dataObject.videoclips.length > 0){
			switch(dataObject.videoclips[0].maincategory)
	        {
				case 1:
			    	title = "Film";
			    break;
				case 2:
			        title = "Stream";
				break;
				case 3:
			     	title = "Post";
			    break;
	        }
	        //subcategory clicked
			if(!dataObject.maincategory){
				title = title + ' / ' + dataObject.videoclips[0].category_name;
			}
		}

        var content = document.getElementById("content");

        content.innerHTML = "<h1>"+title+"</h1>" + tmpl("contentTmpl", dataObject);

        $("div.slot").hide();

        var overlays = document.getElementById("overlays");
        overlays.innerHTML = tmpl("overlayTmpl", dataObject);

       	DigitalFactory.fadeInThumbnails();

        DigitalFactory.setupPlayer();
        
        if (dataObject.numPages > 1) {
		
        	$('.pagination').pagination({
				numPages	 	: dataObject.numPages,
				currentPage		: dataObject.currentPage,
				onPageChange	: function(page) {
					//DigitalFactory.currentPage = page;
					DigitalFactory.flip(dataObject.category, true, page);
				}
        	});
		
        } else {
        	$('.pagination').html('');
        }
        
        Loader.decreaseCallCount();

    },

    fadeInThumbnails: function() {

        $("div.slot:hidden").each(
            function( intIndex ){
                $("div.slot:eq("+intIndex+")").fadeIn({speed: "fast", queue: "first", postDelay: 0});
    	   }
    	);

        if ( $.fxqueue("first").length > 0 ) {
            $.fxqueue("first").start();
        }
    },

    getImageFilesCallback : function(json)
    {
        jQuery.preloadImages(json.data.data);
        Loader.decreaseCallCount();

        var data = [];
        Loader.load('/category/getcategories', data ,'DigitalFactory.getCategoriesCallback');

    },

    getCategoriesCallback : function(json)
    {
        var dataObject = json.data;
		var content = document.getElementById("digitalFactorySubNavi");

        content.innerHTML = tmpl("naviTmpl", dataObject.categories[1]);

        $( "#digitalFactorySubNavi a" ).each(
            function( intIndex ){
	            $( this ).bind (
	                "click",
		            function(){
		                DigitalFactory.flip( dataObject.categories[1].categories[intIndex].id, true, 1);
		             }, false
	            );
            }
        );
		content = document.getElementById("streamSubNavi");
        content.innerHTML = tmpl("naviTmpl", dataObject.categories[2]);

        $( "#streamSubNavi a" ).each(
            function( intIndex ){
	            $( this ).bind (
	                "click",
		            function(){
		              DigitalFactory.flip( dataObject.categories[2].categories[intIndex].id, true, 1);
		             }, false
	            );
            }
        );

		content = document.getElementById("postSubNavi");
        content.innerHTML = tmpl("naviTmpl", dataObject.categories[3]);

        $( "#postSubNavi a" ).each(
            function( intIndex ){
	            $( this ).bind (
	                "click",
		            function(){
		                DigitalFactory.flip( dataObject.categories[3].categories[intIndex].id, true, 1);
		             }, false
	            );
            }
        );
        Loader.decreaseCallCount();
        //default category=1
        data = {id:1};
       // Loader.load('/videoclips/getvideoclips',data,'DigitalFactory.getVideoclipsCallback');
    },

    flip : function(id, toHistory, page)
    {
        if(!page){
        	return;
        } 
        
    	$("#nav li").removeClass("selected");
        
    	if(id == 1 || id == "1"){
    		$("#fourth").addClass("selected");
        } else if(id == 2 || id == "2"){
        	$("#fifth").addClass("selected");
        } else if(id == 3 || id == "3"){
        	$("#third").addClass("selected");
        }
    	
    	if(id > 3){

			var nav = '#cat_'+id;
			$('#overlays').show();
			
			if($(nav).parents('ul')[0].id == 'digitalFactorySubNavi')
			{
				$("#nav li").removeClass("selected");
				$("#fourth").addClass("selected");
				$(nav).parents('li').addClass("selected");
			}
			else if($(nav).parents('ul')[0].id == 'streamSubNavi')
			{
				$("#nav li").removeClass("selected");
				$("#fifth").addClass("selected");
				$(nav).parents('li').addClass("selected");
			}
			else if($(nav).parents('ul')[0].id == 'postSubNavi')
			{
				$("#nav li").removeClass("selected");
				$("#third").addClass("selected");
				$(nav).parents('li').addClass("selected");
			}

		}


    	if(toHistory) {
            $.history( {id:id} );
    	}
        //$('.row').animate({left: '-=2000'}, {queue:false, duration:500 });
 		if ( $.fxqueue("first").length > 0 ) {
        	$.fxqueue("first").pause();
			$.fxqueue("first").stop();
		}
        var data = {id:id, page:page};

        Loader.load('/videoclips/getvideoclips',data,'DigitalFactory.getVideoclipsCallback');
    }
};

jQuery.preloadImages = function(imagefiles)
{

  for(var i = 0; i<imagefiles.length; i++)
  {
  	
    jQuery("<img>").attr("src", '/client-data/'+imagefiles[i]);
  }
};
