(function(){
	window.marqueeInit = function(a,b,c){
		var m = new marquee(a,b,c);
		$(window).load(function(){m.init()});
	};

	function marquee(wrapper,imgs,lang){
		this.wrapper = wrapper;
		this.imgs = imgs;
		this.lang = lang || 'en';
		this.container = null;
		this.descBar = null;

		this.imgLoaded = false;
		this.imgItems = null;
		this.imgBlk = null;

		this.scrollPos = 0;
		this.marqueeWidth = 0;
		this.intervalID = null;
		this.pauseScroll = false;
	}
	marquee.prototype = {
		init:function(){
			var THIS = this;
			this.wrapper = $(this.wrapper).addClass('marquee').append(this.container);
			this.container = $('<div class="container"></div>').appendTo(this.wrapper);

			var ourProjLabel = (this.lang=='tc')? '曾參與的項目' :
						(this.lang=='sc')? '曾参与的项目' :
						'Our Projects';

			this.descBar = $('<dl class="descBar"><dt>'+ourProjLabel+':</dt><dd></dd></dl>').appendTo(this.wrapper)

			var loading = $('<div class="loading">Loading...</div>').appendTo(this.container);

			var imgBlk = this.imgBlk = $('<div class="imgBlk"></div>')
				.appendTo(this.container)
				.mousedown(function(ev){
					THIS.pauseScroll = true;

					var t = $(this).addClass('moving');
					var initPos = ev.pageX;
					var finalPos = 0;

					var moveFn = function(ev){
						finalPos = -(ev.pageX-initPos);
						THIS.scroll(finalPos,true);
					};

					$(document).mousemove(moveFn)
					.mouseup(function(){
						THIS.scroll(finalPos);

						$(document)
							.unbind('mousemove',moveFn)
							.unbind('mouseup',arguments.callee);

						THIS.pauseScroll = false;
					});
				});

			this.imgItems = $.map(this.imgs,function(n){
				var alt = (THIS.lang=='tc')? n[2] :
						(THIS.lang=='sc')? n[3] :
						n[1];

				var img = $('<img src="/img/proj_marquee/'+n[0]+'" alt="'+alt+'" />')
					.load(_imgOnLoad)
					.mousedown(function(ev){ev.preventDefault();})
					.mouseover(function(){
						$(this).siblings().removeClass('active');
						$(this).addClass('active');
						THIS.descBar.find('dd').text(this.alt);
					})
					.mouseout(function(){
						$(this).removeClass('active');
						THIS.descBar.find('dd').text('');						
					})
					.appendTo(imgBlk);

				_unselectable(img[0]);

				return img;
			});

			var loaded = 0;
			function _imgOnLoad(){
				loaded++;
				if(loaded==THIS.imgs.length){
					_loadFinish();
				}
			}

			function _loadFinish(){
				THIS.marqueeWidth = imgBlk.width();

				var preItemsLeft = 0;
				$.each(THIS.imgItems.reverse(),function(i,n){
					n = $(n);
					preItemsLeft -= n.width()+1;
					n.clone(true).prependTo(imgBlk).css({
						position:'absolute',
						left:preItemsLeft+'px'
					});
				});

				loading.remove();
				imgBlk.css('visibility','visible');
				
				THIS.startAutoScroll();
			}
		},

		scroll:function(offset,lock){
			if(!this.marqueeWidth) return;

			var containerWidth = this.container.innerWidth();
			var newPos = this.scrollPos+offset;

			if(newPos > this.marqueeWidth-containerWidth){
				newPos = -containerWidth
			}
			else if(newPos < -this.marqueeWidth){
				newPos = 0;
			}

			this.imgBlk.css('left',-newPos+'px');
			
			if(!lock) this.scrollPos = newPos;
		},

		startAutoScroll:function(){
			if(this.intervalID) return;

			var THIS = this;
			this.intervalID = setInterval(function(){
				if(THIS.pauseScroll) return;
				THIS.scroll(2);
			},80);	
		},
		stopAutoScroll:function(){
			clearInterval(this.intervalID);
			this.intervalID = null;
		}
	};

	function _unselectable(elm){
		var prevent = function(){return false};
		if($.browser.msie){
			elm.unselectable = 'on';
			elm.ondrag = prevent;
		}
		else{
			elm.style.setProperty('-moz-user-select','none',null);
			elm.style.setProperty('-khtml-user-select','none',null);
			elm.style.setProperty('user-select','none',null);
		}
		elm.onselectstart = prevent;
	}
})();

(function(){
	var path = window.location.pathname || '';
	var tmp = path.match(/\/(?:(tc|sc)\/)?(.*)/);

	var lang = 'en';
	if(tmp[1]){
		lang = tmp[1].toLowerCase();
	}

	marqueeInit('#proj_marquee',[
		['airport_passenger_terminal.jpg','Hong Kong International Airport - Airport Passenger Terminal','香港機場客運大樓','香港机场客运大楼'],
		['four_seasons_hotel.jpg','Four Seasons Hotel',' 四季酒店','四季酒店'],
		['i_square.jpg','i Square',' 國際廣場','国际广场'],
		['ifc1.jpg','One International Finance Centre',' 國際金融中心一期','国际金融中心一期'],
		['ifc2.jpg','Two International Finance Centre',' 國際金融中心二期','国际金融中心二期'],
		['jardine_house.jpg','Jardine House',' 怡和大廈','怡和大厦'],
		['kap_shui_mun_bridge.jpg','Kap Shui Mun Bridge',' 汲水門大橋','汲水门大桥'],
		['lok_ma_chau_terminal.jpg','Lok Ma Chau Terminal',' 港鐵落馬洲站','港铁落马洲站'],
		['nina_tower.jpg','Nina Tower',' 如心廣場','如心广场'],
		['the_one.jpg','The ONE','The ONE','The ONE'],
		['the_venetian.jpg','The Venetian Macau',' 澳門威尼斯人酒店','澳门威尼斯人酒店'],
		['tsing_ma_bridge.jpg','Tsing Ma Bridge',' 青馬大橋','青马大桥'],
		['wanchai_police_quarters.jpg','Police Headquarters',' 灣仔警察總部','湾仔警察总部'],
		['wynn.jpg','Wynn Macau',' 澳門永利','澳门永利']
	],lang);
})();


