$(document).ready(function() {
	C.init();
})

var C={
	init: function(){
		C.events();
		C.twitter.init();
		C.works.init();
		C.bgFlashToggle();
	},
	
	bgFlashToggle: function(){
		$flash_box=$('#flashBgBox');
		if($flash_box.children('div').length){
			var flashvars = {
				video:'/img/room_800.f4v',
				//image: '/img/ny_2010.jpg',
				time:'2010:03:15:23:59'
			};
			var params = {wmode:'transparent',menu: "false",scale: "noScale",allowFullscreen: "true",allowScriptAccess: "always"};
			var attributes = {id:"NileStub"};
			swfobject.embedSWF("/swf/NileStub3.swf", "flashBg", "100%", "100%", "8", '', flashvars, params, attributes);
		}else{
			$flash_box.html('<div id="flashBg"><div class="alt"></div></div>');
		}
	},
	
	events: function(){
		$('#links p.demoreel a').bind('click',function(event){
			event.preventDefault();
			C.demoreel.toggle();
		})
		$('#demoreelLayer a.close').bind('click',function(event){
			event.preventDefault();
			C.demoreel.toggle();
		})
		$('#links li.portfolio a').bind('click',function(event){
			event.preventDefault();
			C.portfolio.toggle();
		})
		$('#portfolioLayer a.close').bind('click',function(event){
			event.preventDefault();
			C.portfolio.toggle();
		})
		$('#links li.works a').bind('click',function(event){
			event.preventDefault();
			C.works.toggle();
		})
		$('#worksBox a.prev').bind('click',function(event){
			event.preventDefault();
			C.works.prevNext({prev:true});
		})
		$('#worksBox a.next').bind('click',function(event){
			event.preventDefault();
			C.works.prevNext({next:true});
		})
	},
	
	twitter: {
		messages: null,
		current: 0,
		init: function(){
			$('#twitter>div.w1100').prepend(
				$(document.createElement('p')).append(
					$(document.createElement('a')).addClass('logo').attr({href:'http://twitter.com/nile_ru'})).append(
					$(document.createElement('b'))).append(
					$(document.createElement('span')))
			);
			$.getJSON('/get_twitter.php',{},function(json){
				C.twitter.messages=json.twitter;
				C.twitter.swap();
			});
		},

		swap: function(){
			C.twitter.current++;
			C.twitter.current=C.twitter.current % C.twitter.messages.length;
			var message=C.twitter.messages[C.twitter.current];
			var $twitter_p=$('#twitter p');
			var msg_html=message.msg;
			if(msg_html.search(/http:\/\//)>=0){
				msg_html=msg_html.replace(/(http:\/\/[^"\s]+)/g,'<a href="$1" target="_blank">$1</a>');
			}
			$twitter_p.children('b').html(msg_html);
			$twitter_p.children('span').text(message.at);
			setTimeout('C.twitter.swap()',15*1000);
		}
	},
	
	demoreel: {
		toggle: function(){
			var $black=$('#blackLayer');
			var $flash=$('#demoreelFlash');
			var $layer=$('#demoreelLayer');
			if($flash.children('div.alt').length){
				$black.css({opacity:0}).show().animate({opacity:0.9},'slow');
				$layer.css({opacity:0}).show().animate({opacity:1},'slow',function(){
					C.bgFlashToggle();
					var flashvars = {file: '/swf/video.flv', image: '/swf/nile_preview.jpg',icons: false, displayclick: 'play', skin: '/swf/stylish_slim.swf'};
					var params = {play: "true",wmode:'transparent',menu: "false",scale: "noScale",allowFullscreen: "true"};
					var attributes = {};
					swfobject.embedSWF("/swf/player-viral.swf", "demoreelFlash", 621, 381, "8", '/swf/expressInstall.swf', flashvars, params, attributes);
				});
			}else{
				$flash.parent().html('<div id="demoreelFlash"><div class="alt"></div></div>');
				C.bgFlashToggle();
				$black.animate({opacity:0},'slow',function(){
					$black.hide();
				});
				$layer.animate({opacity:0},'slow',function(){
					$layer.hide();
				});
			}
		}
	},

	portfolio: {
		toggle: function(){
			var $black=$('#blackLayer');
			var $layer=$('#portfolioLayer');
			if($layer[0].offsetHeight==0){
				$black.css({opacity:0}).show().animate({opacity:0.9},'slow');
				$layer.css({opacity:0}).show().animate({opacity:1},'slow',function(){
					C.bgFlashToggle();
				});
			}else{
				C.bgFlashToggle();
				$black.animate({opacity:0},'slow',function(){
					$black.hide();
				});
				$layer.animate({opacity:0},'slow',function(){
					$layer.hide();
				});
			}
		}
	},
	
	works: {
		arr: [],
		current: 0,
		w: 900,
		init: function(){
			if(C.works.arr.length){
				var works=C.works.arr;
				for(var i=0; i<works.length; i++){
					var ext=works[i].src.match(/([^\.]+)$/)[1];
					if(ext=='flv'){
						C.works.arr[i].type='movie';
					}else if(ext=='php'){
						C.works.arr[i].type='html';
					}else{
						var image=new Image();
						image.src=works[i].src;
						C.works.arr[i].type='image';
						C.works.arr[i].image=image;
					}
				}
			}
		},
		
		draw: function(){
			$ofh=$('#worksBox>div.ofh');
			if($ofh.children().length==0){
				var $table=$(document.createElement('tr')).
					appendTo($(document.createElement('table')).
						appendTo($ofh));
				var works=C.works.arr;
				for(var i=0; i<works.length; i++){
					var $div=$(document.createElement('div')).addClass(works[i].type).
						appendTo($(document.createElement('td')).
							appendTo($table));
					if(works[i].type=='movie'){
						var flvbox_id='flvbox_'+i;
						var hpad=Math.floor((900-works[i].width)/2);
						var vpad=Math.floor((630-works[i].height)/2);
						$div.css({
							width: works[i].width+'px',
							height: works[i].height+'px',
							padding: vpad+'px '+hpad+'px'
						}).
							append($(document.createElement('div')).attr({id:flvbox_id})).
							append($(document.createElement('p')).addClass('sub').
								append($(document.createElement('a')).attr({href:'#'}).addClass('close').text('Закрыть')).
								append($(document.createElement('span')).html(works[i].title)));
						var flashvars = {file: works[i].src, image: works[i].image, icons: false, displayclick: 'play', skin: '/swf/stylish_slim.swf'};
						var params = {play: "true",wmode:'transparent',menu: "false",scale: "noScale",allowFullscreen: "true"};
						var attributes = {};
						swfobject.embedSWF("/swf/player-viral.swf", flvbox_id, works[i].width, works[i].height, "8", '/swf/expressInstall.swf', flashvars, params, attributes);
					}else if(works[i].type=='html'){
						//в html-версии не будет p.sub, закрывающая ссылка пусть будет прямо в html-коде
						var $htmlbox=$(document.createElement('div')).addClass('htmlBox').appendTo($div);
						var callback=(function($box){
							return function(code){$box.html(code);}
						})($htmlbox);
						$.ajax({
							type: 'GET',
							dataType: 'html',
							url: works[i].src+'?'+Math.random(),
							success: callback
						});
					}else{
						$div.
							append($(document.createElement('img')).attr({src: works[i].image.src})).
							append($(document.createElement('p')).addClass('sub').
									append($(document.createElement('a')).attr({href:'#'}).addClass('close').text('Закрыть')).
									append($(document.createElement('span')).html(works[i].title)).
									append($(document.createElement('a')).attr({href:'http://'+works[i].url}).text(works[i].url)));
						if(works[i].image.width){
							$table.children('td').eq(i).find('p.sub').width(works[i].image.width);
						}
					}
					$table.children('td').eq(i).find('a.close').bind('click',function(event){
						event.preventDefault();
						C.works.toggle();
					})
				}
				C.works.arrows();
			}
		},

		toggle: function(){
			var $black=$('#blackLayer');
			var $layer=$('#worksLayer');
			if($layer[0].offsetHeight==0){
				C.works.draw();
				$black.css({opacity:0}).show().animate({opacity:0.9},'slow');
				$layer.css({opacity:0}).show().animate({opacity:1},'slow',function(){
					C.bgFlashToggle();
					var works_length=$layer.find('td').length;
					$layer.find('table').css({
						width: (900*works_length)+'px',
						height: '630px',
						zoom: 1
					});
				});
			}else{
				C.bgFlashToggle();
				$black.animate({opacity:0},'slow',function(){
					$black.hide();
				});
				$layer.animate({opacity:0},'slow',function(){
					$layer.hide();
					C.works.current=0;
					C.works.arrows();
					$layer.find('table').css({left:0});
				});
			}
		},
		
		prevNext: function(hash){
			if(C.works.is_animate)return;
			C.works.is_animate=true;
			var current_bak=C.works.current;
			if(C.works.current>0 && hash.prev){
				C.works.current--;
			}else if(C.works.current+1<C.works.arr.length && hash.next){
				C.works.current++;
			}
			
			if(current_bak!=C.works.current){
				var left=-1*C.works.w*C.works.current;
				//убираем подписи
				var $work_div_bak=$('#worksBox td').eq(current_bak).children('div');
				var $work_div_current=$('#worksBox td').eq(C.works.current).children('div');
				$work_div_current.find('p.sub').css({opacity:0});
				$work_div_bak.find('p.sub').animate({opacity:0},'fast',function(){
					$('#worksBox div.ofh table').animate({left:left},'slow',function(){
						$work_div_current.find('p.sub').animate({opacity:1});
						C.works.arrows();
						C.works.is_animate=false;
					});
				});
			}
		},
		
		arrows: function(){
			if(C.works.current==0){
				$('#worksBox a.prev').hide();
			}else{
				$('#worksBox a.prev').show();
			}
			if(C.works.current+1==C.works.arr.length){
				$('#worksBox a.next').hide();
			}else{
				$('#worksBox a.next').show();
			}
		}
	}
}
