$(window).load(windowResize);
$(window).resize(windowResize);

var ieplus=0;
if($.browser.msie){
	ieplus=5;
}
var effectSpeed=-1;
if($.browser.opera){
	effectSpeed=0;
}
var change=0;
var load=0;

var os='windows';
var winReg=new RegExp(/windows/);
var winLin=new RegExp(/linux|freebsd/);
var winMac=new RegExp(/macintosh/);

if(winReg.test(navigator.userAgent.toLowerCase())){
	os='windows';
}
if(winLin.test(navigator.userAgent.toLowerCase())){
	os='unix';
}
if(winMac.test(navigator.userAgent.toLowerCase())){
	os='macintosh';
}

function windowResize(){
	var prototype=$(document);
	if($.browser.msie){
		prototype=$('body');
	}else if($.browser.opera || $.browser.konqueror){
		prototype=$(window);
	}

	$('#counter').css('top', 0);
	
	$('#body').width(0);
	$('#body').height(0);
	$('#body').width($('body').width()-ieplus);
	$('#body').height(prototype.height()-ieplus);
	
	resizeScroll();
	loadWalls();
	resizeMonitor();
	resizeButton();
	resizeSlogan();
	$('#counter').css('display', 'block');
	$('#counter').css('top', $('#body').height()-50);
	
	if(!load){
		if(location.href.hash){
			changeWall(location.href.hash.substring(1), 0);
		}else{
			lastWall();
		}
		load=1;
		change=0;
	}
}

function resizeScroll(){
	if(!$('#scroll').get(0)){
		var scroll=document.createElement('div');
		var scroll_back=document.createElement('div');
		
		scroll.id='scroll';
		scroll_back.id='scroll_back';	
		
		document.body.appendChild(scroll);
		document.body.appendChild(scroll_back);
	}else{
		var scroll=$('#scroll');
		var scroll_back=$('#scroll_back');
	}

	$(scroll).width($('#body').width()+ieplus);
	$(scroll).css('top', Math.ceil(($('#body').height())/2-59));
	$(scroll_back).width($('#body').width()+ieplus);
	$(scroll_back).css('top', Math.ceil(($('#body').height())/2-59));
	
	$(scroll).css('left', '-'+(($(scroll).width()-$('#body').width())/2));
}
function loadWalls(){
	if(walls.length*2!=$('.wall-preview').size()){
		
		var wall_dublicate=document.createElement('div');
		wall_dublicate.id='walls_dublicate';
		$('#scroll').append(wall_dublicate);
		
		var wall=document.createElement('div');
		wall.id='walls';
		$('#scroll').append(wall);
		
		for(x in walls){
			wall=document.createElement('div');
			wall.className='wall-preview';
			wall.innerHTML='<a href="javascript:void(0);" onclick="changeWall(\''+walls[x]+'\', event);"><img src="/wall/'+walls[x]+'-small.jpg" /></a>';
			$('#walls').append(wall);
			
			wall=document.createElement('div');
			wall.className='wall-preview';
			wall.innerHTML='<a href="javascript:void(0);" onclick="changeWall(\''+walls[x]+'\', event);"><img src="/wall/'+walls[x]+'-small.jpg" /></a>';
			$('#walls_dublicate').append(wall);
		}
		
		$('.wall-preview img').mouseover(function(){
			$(this).animate({
				opacity:	'1'
			}, 200)
		});
		$('.wall-preview img').mouseout(function(){
			$(this).animate({
				opacity:	'0.5'
			}, 200)
		});
		
		$('#walls').width(walls.length*(100+14));
		$('#walls_dublicate').width(walls.length*(100+14));
	}
	$('#walls').css('left', ($('#body').width()/2));
	$('#walls_dublicate').css('left', $('#body').width()/2-$('#walls_dublicate').width());
}
function resizeMonitor(){	
	if(!$('#monitor').get(0)){
		var monitor=document.createElement('div');
		monitor.id='monitor';
		monitor.className=os;
		document.body.appendChild(monitor);
		
		var display=document.createElement('div');
		display.id='display';
		display.className=os;
		document.body.appendChild(display);
		
		var blick=document.createElement('div');
		blick.id='blick';
		blick.className=os;
		document.body.appendChild(blick);
		
		if(os=='macintosh' || os=='unix'){
			var hi=document.createElement('div');
			hi.id='hi';
			hi.className=os;
			hi.innerHTML='<a href="javascript:void(0);" onclick="closeHi();" class="close">x</a><a href="'+rarLink+'" class="hello">скачать все</a>';
			document.body.appendChild(hi);
		}
	}else{
		var monitor=$('#monitor').get(0);
		var display=$('#display').get(0);
		var blick=$('#blick').get(0);
		var hi=$('#hi').get(0);
	}
	
	$(monitor).css('left', ($('#body').width()-$(monitor).width())/2);
	$(monitor).css('top', ($('#body').height()-$(monitor).height())/2);
	
	if(hi){
		$(hi).css('left', ($('#body').width()-$(hi).width())/2);
		$(hi).css('top', 50);
	}
	
	switch(os){
		case 'windows':{
			if($.browser.msie){
				$(display).css('left', (($('#body').width()-$(monitor).width())/2)+31);
			}else{
				$(display).css('left', (($('#body').width()-$(monitor).width())/2)+48);
			}
			$(display).css('top', (($('#body').height()-$(monitor).height())/2)+31);
			$(display).width(275);
			$(display).height(207);
			break;
		}
		case 'macintosh':{
			$(display).css('left', (($('#body').width()-$(monitor).width())/2)+21);
			$(display).css('top', (($('#body').height()-$(monitor).height())/2)+22);
			$(display).width(329);
			$(display).height(206);
			break;
		}
		case 'unix':{
			$(display).css('left', (($('#body').width()-$(monitor).width())/2)+21);
			$(display).css('top', (($('#body').height()-$(monitor).height())/2)+23);
			$(display).width(329);
			$(display).height(206);
			break;
		}
	}
	
	$(blick).css('left', $(monitor).offset().left);
	$(blick).css('top', $(monitor).offset().top);
}
function closeHi(){
	$('#hi').remove();
}
function changeWall(name, e){
	
	$('#display').css('background', '#1A1A1A');
	$('#button-download').remove();
	location.href='#'+name;
	
	$('#body').animate({opacity: '0'}, 'fast', 'linear', function(){
		$('#body').css('background', '#1A1A1A');
		var newWall=new Image();
		var blue=0;
		newWall.src='/wall/'+name+'.jpg';
		newWall.className='hidden-wall';
		newWall.id='hidden-wall-big';
		document.body.appendChild(newWall);
		
		var newWall2=new Image();
		newWall2.src='/wall/'+name+'-middle.jpg';
		newWall2.className='hidden-wall';
		document.body.appendChild(newWall2);
		
		$('#body').css('background', '#1A1A1A url(/wall/'+name+'.jpg) no-repeat 50% 50%');
		
		if($('#display').attr('class')=='windows'){
			if(Math.ceil(Math.random()*10)==1){
				$('#display').css('background', '#1A1A1A url(/img/bluescreen.gif) no-repeat 50% 50%');
				blue=1;
			}else{
				$('#display').css('background', '#1A1A1A url(/wall/'+name+'-middle.jpg) no-repeat 50% 50%');
			}
		}else{
			$('#display').css('background', '#1A1A1A url(/wall/'+name+'-middle.jpg) no-repeat 50% 50%');
		}
		
		var timer=setInterval(function(){
			if(($('#hidden-wall-big').attr('height')==newWall.height) || ($('#hidden-wall-big').height()==newWall.height)){
				$('#body').animate({opacity: '1'}, 'fast');
				clearInterval(timer);
				$('.hidden-wall').remove();
				if(!blue){
					var button=document.createElement('div');
					button.id='button-download';
					button.className=$('#display').attr('class');
					button.innerHTML='<a href="/wall/'+name+'.jpg" target="_blank">Скачать</a>';
					$(button).css('opacity', '0');
					$('body').append(button);
					$(button).animate({'opacity': '1'}, 'fast');
					resizeButton();
				}
			}
		}, 100);
	});
	
	
	if(e){
		var target=e.target;
		if($.browser.msie){target=e.srcElement;}
		
		change=1;
		var timer=setInterval(function(){
			var realSpeed=50;
			var position=$(target).offset().left;
			
			if(($(target).offset().left-$('#body').width()/2)+realSpeed<0){
				realSpeed=-50;
			}
			
			if(realSpeed>0 && position>$('#walls').width()+($(target).width())){
				position=position-$('#walls').width();
			}else if(realSpeed<0 && position<0-($(target).width())){
				position=position+$('#walls').width();
			}
			
			
			
			if((realSpeed>0 && position>=$('#body').width()/2) || (realSpeed<0 && position<=$('#body').width()/2)){
				if(realSpeed<0 && $('#walls_dublicate').offset().left>=0){
					$('#walls').css('left', '0');
					$('#walls_dublicate').css('left', -($('#walls_dublicate').width()));
				}
				if(realSpeed>0 && $('#walls').offset().left<=0){
					$('#walls_dublicate').css('left', '0');
					$('#walls').css('left', $('#walls').width());
				}
				$('#walls').css('left', parseInt($('#walls').css('left'))-realSpeed);
				$('#walls_dublicate').css('left', parseInt($('#walls_dublicate').css('left'))-realSpeed);
			}else{
				clearInterval(timer);
				change=0;
			}
		}, effectSpeed);
	}
	
}
function resizeButton(){
	if($('#button-download').get(0)){
		$('#button-download').css('left', Math.ceil($('#display').offset().left+($('#display').width()-$('#button-download').width())/2));
		$('#button-download').css('top', Math.ceil($('#display').offset().top+($('#display').height()-$('#button-download').height())/2));
	}
}
function resizeSlogan(){
	$('#slogan').css('left', Math.ceil($('#body').width()-$('#slogan').width())/2+15);
}
function favorite(){
	if(window.sidebar){
		window.sidebar.addPanel('wall4you', location.href,'');
	}else{
		window.external.AddFavorite(location.href, 'wall4you');
	}
	return false;
}
function lastWall(e){
	changeWall(walls[walls.length-1], 0);
}
$(document).ready(function(){
	var x=$('#body').width()/2;
	var target;
	var speed=10; // ± 10
	var realSpeed=0;
	
	if($.browser.mozilla){
		speed=5;
	}
	if($.browser.msie){
		$('#logo img').attr('src', '/img/blank.gif');
		$('#slogan img').attr('src', '/img/blank.gif');
		$('#smitana img').attr('src', '/img/blank.gif');
	}
	
	$().mousemove(function(e){
		x=e.pageX;
		target=e.target;
	});
	
	setInterval(function(){
		if(($(target).attr('id')=='body' || $(target).attr('id')=='monitor') && !change){
			realSpeed=Math.ceil(x*(speed*2)/$('#body').width())-speed;
			if($('#walls').get(0) && $('#walls_dublicate').get(0) && $('.wall-preview').size()==walls.length*2){
				if(realSpeed<0 && $('#walls_dublicate').offset().left>=0){
					$('#walls').css('left', '0');
					$('#walls_dublicate').css('left', -($('#walls_dublicate').width()));
				}
				if(realSpeed>0 && $('#walls').offset().left<=0){
					$('#walls_dublicate').css('left', '0');
					$('#walls').css('left', $('#walls').width());
				}
				$('#walls').css('left', parseInt($('#walls').css('left'))-realSpeed);
				$('#walls_dublicate').css('left', parseInt($('#walls_dublicate').css('left'))-realSpeed);
			}
		}
	}, effectSpeed);
	
	if($.browser.msie){
		setInterval(function(){$('#body').html('');}, 1);
	}
	
	$('#counter img').mouseover(function(){
		$(this).animate({
			opacity:	'1'
		}, 150)
	});
	$('#counter img').mouseout(function(){
		$(this).animate({
			opacity:	'0.3'
		}, 150)
	});
});