/*    Only Debug Mode */ if (!("console" in window)) { window.console = {}; window.console.log = function(str){ return str; }; }

/*    Global Items
-------------------------------------------------*/
var globalFunc = {};
globalFunc.preload = function (imgs){
	for(var i = 0; i < imgs.length; i++){
		var imgObj = new Image();
		imgObj.src = imgs[i];
	}
};


(function(){

/* main
-------------------------------------------------- */
$(function(){
	vm.init();
	vs.init();
});

/* Local Functions
-------------------------------------------------- */
var animTime = 1000;
var slideTime= 5000;

var vs = {
	init:function(){
		var target=$('#topics .visualLink .column');
		this.target = target;
		this.category = 'v-information';		
		this.btnarea = $('#sub-visual-btn');
		
		this.btnarea.find('a').click(function(){
			var _this = $(this);
			var getid = _this.attr('href').replace('#','');
			
			if( vs.category != getid ){
				vs.category = getid;
				vs.select();
			}
			
			return false;
		}).find('img').rollover({suffix:'_o'});
		
		this.select();
		
	},
	select:function(){
		vs.target.each(function(index,elm){
			var _this = $(elm);
			var columnid = _this.attr('id');
			
			if( vs.category == columnid ){
				_this.show();
			}else{
				_this.hide();
			}
		});
		
		//btn stay
		var oldStayBtn = this.btnarea.find('a.stay img');
		if( oldStayBtn.length !=0 ){
			var oldSrc = $.data(oldStayBtn.get(0), 'src');
			oldStayBtn.attr('src',oldSrc).rollover({suffix:'_o'}).parent().removeClass('stay');
			oldStayBtn.pngfix();
		}else{
			this.btnarea.not('stay').find('img').pngfix();
		}

		var currentBtn = this.btnarea.find('a[href*=#'+this.category+'] img');
		var src_o = $.data(currentBtn.get(0), 'src_o');
		currentBtn.attr('src',src_o).unbind("mouseenter").unbind("mouseleave").parent().addClass('stay');
		currentBtn.pngfix();
	}
};


var vm = {
	init:function(){
		var target = $('#mainVisual .image-area ul');
		var alllist = target.clone();
		this.vmMain = target.attr('id','vmMain').hide();
		this.loader = '<p class="loading"><img src="top/images/visual/loader_01.gif" alt="" width="32" height="32" /></p>';
		this.imgarea=$('#mainVisual .image-area');
		
		this.imgarea.append( $('<div id="imageBay" />').append(alllist).hide() ).append(this.loader);
		this.category = 'all';
		
		this.loading=this.imgarea.find('.loading');

		var imgs = target.find('img');		
		for(var j=0; j<imgs.length; j++){
			var imgObj = new Image();
			imgObj.src = imgs[j].src;
		}
		
		
		this.btnarea = $('#mainVisual .btn-area');
		this.btnarea.find('img').rollover({suffix:'_o'});
		
		this.controllarea = $('#mainVisual .controll-area');
		this.controllarea.find('img').rollover({suffix:'_o'});
		
		this.select();
		
		//btn EVENT
		this.btnarea.find('a').click(function(){
			
			var getSelectName = $(this).attr('href').replace('#','');
			
			if( vm.vmMain.filter(":animated").length != 0 ){
				//setTimeout(function(){
				//	go();
				//},1000);
			}else{
				go();
			}
			
			function go(){
				if( vm.category != getSelectName ){
					vm.stop();
					vm.category = getSelectName;
					vm.select();
				}
			}			
			return false;
		});
		
		this.controllarea.find('a').click(function(){
			var href = $(this).attr('href').replace('#','');
			var direction = href=='prev'?-1:1;
		
			if( vm.vmMain.filter(":animated").length != 0 ){
				//setTimeout(function(){
				//	go();
				//},1000);
			}else{
				go();
			}			
			
			function go(){
				vm.stop();
				var target = vm.vmMain;
				if( direction >0 ){
					if( vm.c==vm.num ){
						target.css('left',-540 );
					}
				}else{
					if( vm.c==0 ){
						target.css('left',-540-637*(vm.num) );
					}
				
				}
				var current = target.css('left').replace('px','')*1;

				target.animate({
					left:current-637*direction
				},animTime,function(){
					vm.c=vm.c+direction;
					
					if( direction >0 ){
						if( vm.c== vm.num ){
							vm.c=0;
							target.css('left',-540);
						}else if(vm.c==0){
							vm.c=vm.num;
							target.css('left',-540-637*(vm.num) );
						}else if(vm.c> vm.num){
							vm.c=1;
							target.css('left',-540-637 );
						}
					}else{
						if( vm.c< 0 ){
							vm.c=vm.num-1;
							target.css('left',-540-637*(vm.num-1) );
						}else if(vm.c==0){
							vm.c=vm.num;
							target.css('left',-540-637*(vm.num) );
						}
					}
					

					
					vm.run(true);
				});				
				
			}
			
			return false;
		});
		
	},
	numberSet:function(){
		var list = this.vmMain.find('li');
		
		list.each(function(index,elm){
			var bigNum = $( '<img class="big" src="top/images/number/big_'+plusZero(index+1)+'.png" width="34" height="31">' );
			var smallNum=$( '<img class="small" src="top/images/number/small_'+plusZero(list.length)+'.png" width="13" height="9">' );
			if( $.ie6 ){
				bigNum.pngfix();
				smallNum.pngfix();
			}
			$(this).append( $('<span class="number" />').append(bigNum).append(smallNum) )
		});
		
		function plusZero(num){ if( num <10 ){ return '0'+num; }else{ return num; } }
		
	},
	select:function(){
		var selectlist, imagebay = $('#imageBay').clone();
		if( this.category == 'all' ){
			selectlist = imagebay.find('ul');
		}else{
			selectlist = $('<ul />');
			var list = imagebay.find('li');
			for(var i=0; i<list.length; i++){
				if( $(list[i]).attr('data-category') == this.category ){
					selectlist.append( list[i] );
				}
			}
		}
		this.num = selectlist.find('li').length;
		(this.vmMain).html(selectlist.children());
		
		this.numberSet();
		this.set();
		
		//btn stay
		var oldStayBtn = this.btnarea.find('a.stay img');
		if( oldStayBtn.length !=0 ){
			var oldSrc = $.data(oldStayBtn.get(0), 'src');
			oldStayBtn.attr('src',oldSrc).rollover({suffix:'_o'}).parent().removeClass('stay');
		}
		var currentBtn = this.btnarea.find('a[href*=#'+this.category+'] img');
		var src_o = $.data(currentBtn.get(0), 'src_o');
		currentBtn.attr('src',src_o).unbind("mouseenter").unbind("mouseleave").parent().addClass('stay');

	},
	set:function(){
		this.loading.hide();
		var target = this.vmMain;
		var initLeft = target.css('left');
		var liLast = target.find('li:last-child').clone();
		var liFirst = target.find('li:first-child').clone();
		var liSecond = target.find('li:nth-child(2)').clone();
		
		if( this.num > 1 ){
			target.prepend(liLast).append(liFirst).append(liSecond).css('left',-540).show();
			this.run();
			this.controllarea.show();
		}else{
			target.css('left',207).show();
			this.controllarea.hide();
		}
		
		
		target.css('width',637*target.find('li').length  );
		
	},
	run:function(flg){
		var target = this.vmMain;
		var _self = this;
		
		if( !flg ){
			this.c=0;
		}else{
			if( _self.c== _self.num ){
				vm.c=0;
				target.css('left',-540);
			}
								
		}

		this.timerFlg = true;
		this.timer = setInterval(function(){
			var current = target.css('left').replace('px','')*1;
			
			target.animate({
				left:current-637
			},animTime,function(){
				_self.c++;

				if( _self.c== _self.num ){
					_self.c=0;
					target.css('left',-540);
				}else if(_self.c> _self.num){
					_self.c=1;
					target.css('left',-540-637);
				}
				
				if( ! _self.timerFlg ){
					target.css('left',207);
				}
				
			});
				
			
		},slideTime);
		
	},
	stop:function(){
		clearInterval(this.timer);
		this.timerFlg = false;
	}
};










})();
