	
	var preloader = new Object();
	
	preloader.load = function (imgs, callback) {
		preloader.callback = callback;
		preloader.images = new Array();
		
		for (var i=0 ; i<imgs.length ; i++){
			preloader.images[i] = new Image();
			preloader.images[i].src = imgs[i]; 
		}
		
		preloader.process();
	}
	
	preloader.process = function () {
		var complete = true;
		for (var i=0 ; i<preloader.images.length ; i++){
			if (!preloader.images[i].complete)  complete = false;
		}
		if (complete){
			preloader.callback();
		}else{
			setTimeout(preloader.process, 100);
		}
	}
	
	var anim = new Object();
	
	anim.start = function() {
		var links = $('#selector a');
		for (var i=0 ; i<preloader.images.length ; i++){
			$('#anim').append('<div class="img_wrapper"><img src="'+preloader.images[i].src+'" /></div>');
			links[i].i = i;
		}
		$('#anim img').width('100px');
		
		anim.items = new Array();
		var imgs = $('#anim img');
		anim.step = Math.PI*2/imgs.length;
		anim.min_x = 70;
		if (document.body.clientWidth<=1024)
			anim.max_x = 650;
		else if (document.body.clientWidth<=1280)
			anim.max_x = 800;
		else if (document.body.clientWidth<=1400)
			anim.max_x = 820;
		else
			anim.max_x = 950;
		
		anim.min_width = 90;
		anim.max_width = 400;
		
		anim.fd = 5;
		anim.fs = 10;
		
		var fi = Math.PI + Math.PI/2;
		
		for (var i=0 ; i<imgs.length ; i++ ){
			anim.items[i] = new Object();
			anim.items[i].i = i;
			anim.items[i].img = $(imgs[i]);
			anim.items[i].div = $(anim.items[i].img.parent());
			anim.items[i].set_fi = function(fi) {	
				fi += anim.step*this.i;
				
				this.div.css('left', (.5 + .5 * Math.cos(fi)) * (anim.max_x - anim.min_x) + anim.min_x);
				var z = Math.sin(fi)*-1;
				this.div.css('z-index', Math.round((z+1)/2*100+500));
				var width = Math.round(z * (anim.max_width - anim.min_width) + anim.min_width);
				if (width <4) width = 4;
				this.img.width(width);
				//this.img.css('opacity', (z+1)/2);
				//$('#dbg'+this.i).html(i+'<br /> z_1: '+z+'<br />fi: '+fi+'<br />x: '+this.div.css('left')+'<br /><br />');				
			}
		}
		//anim.anim();
		anim.fi = 3600;
		$($("#selector a")[0]).click();
	}
	anim.stop = 0;
	anim.left = true;
	anim.anim = function() { 
		anim.fi += anim.left ?  -anim.fs : anim.fs ;
		anim.fi = anim.fi%3600;
		if(anim.fi<0) anim.fi=3600;
		//$('#dbg1').html(anim.fi);
		if (anim.fi!=anim.stop) setTimeout(anim.anim, anim.fd);
		else anim.busy = false;
		
		for (var i=0 ; i<anim.items.length ; i++){
			anim.items[i].set_fi(Math.PI/180 * (anim.fi/10) );
		}
	}
	
	anim.to_fi = function(fi, link) {
		if(fi==anim.fi) return 0;
		if(anim.busy) return 1;
		anim.busy = true;
		
		anim.left = fi<anim.fi;
		if(fi==2700 && anim.fi==0) anim.left = true;
		if(anim.fi==2700 && fi==0) anim.left = false;
		
		$("#selector a, #description div").removeClass('selected');
		//alert(link.i);
		$("#selector a:eq("+link.i+"), #description div:eq("+link.i+")").addClass('selected');
		anim.stop = fi;
		anim.anim();
	}
	
	$(function(){preloader.load(['/images/index/dom1.jpg',
								 '/images/index/dom2.jpg',
								 '/images/index/dom3.jpg',
								 '/images/index/dom4.jpg'], anim.start)});
	// tabset
	var tabset = new Object();					
	$(function () {
		$(window).resize(function(){
			tabset.width = $(".item_scroller .item:eq(0)").width();
		});
		$(window).resize();
		
		var link = $(".tab_set .tabs a");
		for (var i=0 ; i<link.length ; i++){
			link[i].i = i;
		}
		$(".tab_set .items").height($(".item_scroller .item:eq(0)").height());
		$(".item_scroller .item").css('display','block');
		$(".tab_set .tabs a").click(function(){
			/*
			var left = ((this.i*100)* -1) +'%';
			$(".tab_set .item_scroller").animate({marginLeft: left}, 'slow');
			$(".tab_set .items").animate({height: $(".item_scroller .item:eq("+this.i+")").height()}, 'slow');
			$('.tab_set .tabs div').removeClass('selected');
			$('.tab_set .tabs div:eq('+this.i+')').addClass('selected');
			*/
			
			//var left = (this.i * 100) *-1 + 1+ '%';
			//alert(left);
			$(".tab_set .item_scroller").animate({left: -tabset.width*this.i+'px'}, 'slow');
			$(".tab_set .items").animate({height: $(".item_scroller .item:eq("+this.i+")").height()}, 'slow');
			$('.tab_set .tabs div').removeClass('selected');
			$('.tab_set .tabs div:eq('+this.i+')').addClass('selected');
			return false;
		});
		
		$(".tab_set .tabs a").mouseover(function(){
			if ('selected' != $(this).parent().attr('class')){
				$(this).parent().addClass('hover');
			}
		});
		$(".tab_set .tabs a").mouseout(function(){
			if ('selected' != $(this).parent().attr('class')){
				$(this).parent().removeClass('hover');
			}
		});
	});
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	