var common = function() {
	var urllink = location.toString();
	var caseType = urllink.substr(urllink.lastIndexOf('\/') + 1).split('#')[0].split('.')[0];
	if(urllink.lastIndexOf('\/') == urllink.length -1) caseType = '';
	var obj = Ext.urlDecode(urllink.substring(urllink.lastIndexOf('?') + 1, urllink.lastIndexOf('#') == -1 ? urllink.length : urllink.lastIndexOf('#')));
	var word = [' is empty!!', '\'s format is wrong!!', 'SEARCH', 'Keyword is empty!!'];
	var tf = ['Keyword', 'newsKeyword'];
	var carousel;
	var vcarousel = {};
	
	function getTemplate(xtpl){
		var word = (Ext.getDom(xtpl)) ? Ext.getDom(xtpl).innerHTML : xtpl;
		word = word.replace(/\%7B/g, '{').replace(/\%7D/g, '}');
		return word.replace(/TPL/g, 'tpl').replace(/ > /g, ' &gt; ').replace(/ < /g, ' &lt; ');
	}
	
	return {
		tempNews: [], 
		indexPoint: 0, 
		initialYear:'',
		initialContainerLift:0,
		tableHeight:0,
		inxMod: 0,
		
		init: function(){
			var inputs = Ext.query('[rel]', 'inquiryForm');
			for(var i=0;i<inputs.length;i++){
				switch(inputs[i].type){
					case 'text': case 'textarea': tf.push(inputs[i].id); break;;
					default:
				}
			}
			for (x in tf) {
				if (!Ext.get(tf[x])) continue;
				var f = new Ext.form.TextField({ emptyText: Ext.getDom(tf[x]).value,
					emptyClass: '', fieldClass: '', focusClass: '', applyTo: tf[x]
				});
				f.getEl().removeClass('x-form-text').removeClass('x-form-empty-field');
				if(Ext.get(tf[x]).parent('div[class*=enterkey]')){
					var btn = Ext.get(tf[x]).parent('div[class*=enterkey]').child('input[type=image]', true);
					if (btn) Ext.get(tf[x]).addKeyListener({ key: 13 }, btn.onclick);
				}
			}
			if(Ext.get('advertisement')){
				carousel = new Ext.ux.Carousel({
					numVisible: parseInt(base), animationSpeed: 0.5, scrollInc: 1,
					//animationMethod: 'backBoth', 
					renderTo: 'advertisement'
				});
				carousel.show();
				if(Ext.get('btn_1')) Ext.get('btn_1').hide();
				var btns = Ext.query('img[name^=btn_]');
				var s = btns.length > 1 ? Ext.get(btns[0]).parent('div').next() == Ext.get(btns[1]).parent('div') : false;
				if(!s) Ext.get(btns[0]).parent('div').remove(); 
				this.initVcarousel.defer(1000);
			}else{ this.initVcarousel(); };
			if(Ext.get('display_table')) this.initProductList();
			if(Ext.get('inquiryList')) this.initInquiryList();
			switch(caseType){
				case 'index': case '': Ext.query('div[class=index_presscenter_3]')[0].onclick();
				case 'stories':
					if(Ext.get('featuresList')){
						var list = Ext.query('td[class^=products_more]', 'featuresList');
					}
			}
			
			//====== invesotr monthly revenue : get year now ======
			if (Ext.getDom('yearTitle'))
			{
				this.initialYear = Ext.getDom('yearTitle').innerHTML;
			}
			
			//====== invesotr monthly revenue : set year selector left and right button======
			if (Ext.get('yearList'))
			{
				var listWidth = Ext.get('yearList').getWidth();
				var years = Ext.query('div', 'yearContainer');
				var containerWidth = Ext.get(years[0]).getWidth() * years.length;
				Ext.get('yearContainer').setWidth(containerWidth);
				
				if (listWidth < containerWidth)
				{
					Ext.getDom('yearRightButton').style.display = '';
					this.initialContainerLift = Ext.get('yearContainer').getLeft();
				}
			}
			if(Ext.get('bannerMenu')) this.initBannerMenu();
			if(Ext.get('fadeImage')) this.initBanner();
			if(Ext.get('seminarImg')) this.initBanner_seminar();
		}, 
		
		initBanner_seminar: function(){
			this.initScroll('seminarImg');
		},
		
		initScroll: function(target){
			var cb = function(rspn, option){
				this.data_1 = Ext.util.JSON.decode(rspn.responseText);
				if(!this.data_1.length) {
					Ext.get(target).parent('div').remove();
					return;
				}
				var box = Ext.getBody().child('div[class=carousel_list]');
				var tpl = new Ext.XTemplate(getTemplate(box.dom.innerHTML).replace(/src=\"(.+)\"/g, 'src="{Image}"'));
				box.update(tpl.apply(this.data_1)).show(true);
				var num = this.data_1.length;
				if(num < 2) return;
				var tpl = new Ext.XTemplate(getTemplate('selectPoint'));
				Ext.get('selectPoint').update(tpl.apply(new Array(num))).show(true);
				task = new Ext.util.DelayedTask(this.moveImg, this, ['next']);
				this.moveImg2(0);
			}
			var cn = new Ext.data.Connection({url:"getdata.php?Type=getIndexBanner"}).request({
				scope: this, method: "POST", success: cb, params: {paramID: target}
			});
		},
		
		moveImg2: function(num){
			num = parseInt(num); var w = 0;
			if(num == this.inxScroll || this.isMove) return;
			task.cancel();
			this.isMove = true;
			if(this.inxScroll === undefined) this.inxScroll = 0;
			if(!unit_num) var unit_num = 1;
			var bar = Ext.getBody().child('div[class*=carousel_component]');
			var imgs = bar.child('div').first();
			var p = Ext.query('input', 'selectPoint');
			for(var i=0;i<p.length;i++){
				p[i].src = i == num ? 'images/index_22.jpg' : 'images/index_23.jpg';
			}
			var start = num > this.inxScroll ? this.inxScroll*unit_num : num*unit_num;
			var last = num > this.inxScroll ? num*unit_num : this.inxScroll*unit_num;
			if(last+unit_num > this.data_1.length-1) last = this.data_1.length-unit_num;
			for(i=start;i<last;i++) {
				w += imgs.getWidth();
				imgs = imgs.next();
			}
			bar.scroll(num > this.inxScroll ? 'l' : 'r', w, {callback: function(el){
				this.isMove = false;
				task.delay(this.data_1[this.inxScroll].Delay);
			}, scope: this, easing: 'easeOutStrong', duration: .6});
			this.inxScroll = num;
		}, 
		
		moveImg: function(aspect){
			var total = Ext.query('input', 'selectPoint').length;
			var inx = this.inxScroll+(aspect == 'prev' ? -1 : 1);
			if(inx < 0) inx = total-1;
			if(inx >= total) inx = 0;
			this.moveImg2(inx);
		},

		openWindows: function(btn){
			var co = {callback: function(el){
				Ext.get('selectPoint')[this.isOpenBanner ? 'show' : 'hide'](true);
			}, scope: this}
			if(this.isOpenBanner){
				task_fade.cancel();
				btn.src = 'images/applicationss_viewslideshow.jpg';
				Ext.get('movieShow').setHeight(240, co);
				this.isOpenBanner = false;
			}else{
				task_fade.delay(this.data_2[this.inxBanner].Delay);
				btn.src = 'images/applicationss_closeslideshow.jpg';
				Ext.get('movieShow').setHeight(540, co);
				this.isOpenBanner = true;
			}
		},

		initBanner: function(){
			switch(caseType){
				case 'stories': var o = {'paramID': obj.ID}; var types = 'getSuccess'; break;
				case 'applications': var o = {'paramID': 'appov'}; var types = 'getIndexBanner';
			}
			
			var cb = function(rspn, option){
				this.data_2 = Ext.util.JSON.decode(rspn.responseText);
				if(!this.data_2.length) Ext.get('movieShow').remove();
				var imgs = Ext.query('img', 'fadeImage');
				for(var i=0;i<imgs.length;i++){
					Ext.get(imgs[i]).on('load', this.bannerLoaded, this);
				}
				var arr = new Array(this.data_2.length);
				var tpl = new Ext.XTemplate(getTemplate('selectPoint'));
				Ext.get('selectPoint').update(tpl.apply(arr))[this.isOpenBanner ? 'show' : 'hide']();
				task_fade = new Ext.util.DelayedTask(this.fadeImg, this, ['next']);
				this.fadeImg2(0);
				if(this.data_2.length < 2) task_fade.cancel();
			}
			var cn = new Ext.data.Connection({url:"getdata.php?Type="+types}).request({
				scope: this, method: "POST", success: cb, params: o
			});
		},
		
		fadeImg2: function(num){
			if(this.inxBanner == num || this.isMove) return;
			var imgs = Ext.query('img', 'fadeImage');
			task_fade.cancel();
			var p = Ext.query('img', 'selectPoint');
			if(this.inxBanner !== undefined) p[this.inxBanner].src = 'images/index_23.jpg';
			p[num].src = 'images/index_22.jpg';
			var img = Ext.DomHelper.append('fadeImage', {tag: 'img', style: 'position: absolute; z-index: '+(10000-this.inxMod), src: this.data_2[num].Image}, true);
			img.on('load', this.bannerLoaded, this);
			this.isMove = true;
			this.inxBanner = num;
			this.inxMod++;
		}, 
		
		fadeImg: function(aspect){
			var total = this.data_2.length;
			var inx = (this.inxBanner ? this.inxBanner : 0)+(aspect == 'prev' ? -1 : 1);
			if(inx < 0) inx = total-1;
			if(inx >= total) inx = 0;
			this.fadeImg2(inx);
		},
		
		bannerLoaded: function(e, t, o){
			this.fadtOutBanner(t);
			if(this.isOpenBanner) task_fade.delay(this.data_2[this.inxBanner].Delay);
		},
		
		fadtOutBanner: function(t){
			if(!t.complete){
				this.fadtOutBanner.defer(500, this, [t]);
				return;
			}
//			this.changeImageSize(Ext.get(t));
//			Ext.get(t).show();
			(function(){
				var img = Ext.get(t).prev();
				img.un('load', this.bannerLoaded, this);
				img.fadeOut({callback: function(){
					this.isMove = false;
				}, scope: this, remove: true, duration: .4, useDisplay: true});
//				Ext.get('bannerTitle').update(this.data_2[this.inxBanner].Title);
//				Ext.getDom('bannerUrl').href = this.data_2[this.inxBanner].Url;
//				Ext.get('bannerContent').update(this.data_2[this.inxBanner].Brief);
//				Ext.get('bannerTitle').parent().show(true);
			}).defer(500, this);
		},
		
		initBannerMenu: function(){
			this.movestatus = {};
			var spans = Ext.query('span', 'bannerMenu');
			for(var i=0;i<spans.length;i++) Ext.get(spans[i]).child('img').setOpacity(.5);
			task = new Ext.util.DelayedTask(this.fadeBanner, this, ['next']);
			spans[0].onclick();
		},
		
		callbannerImage: function(btn, value){
			task.cancel();
			if(this.bannerTarget == value) return;
			Ext.get('bannerImage').stopFx('fadeIn');
			if(!this.macroBanner) this.macroBanner = {};
			var spans = Ext.query('img', 'bannerMenu');
			if(this.bannerBtn) Ext.get(this.bannerBtn).child('img').setOpacity(.5, true);
			Ext.get(btn).child('img').setOpacity(1, true);
			this.bannerTarget = value;
			this.bannerBtn = btn;
			if(this.macroBanner['T'+value]){
				this.changeIndexBanner(this.macroBanner['T'+value])
			}else{
				var cb = function(rspn, option){
					this.macroBanner['T'+value] = Ext.util.JSON.decode(rspn.responseText);
					this.changeIndexBanner(this.macroBanner['T'+value])
				}
				var cn = new Ext.data.Connection({url:'getdata.php?Type=getIndexBanner'}).request({params: {paramID: value}, scope: this, success: cb});
			}
		},
		
		changeIndexBanner: function(datas){
			if(this.bannerInx) delete(this.bannerInx);
			this.fadeBanner2(0);
		},
		
		fadeBanner: function(aspect){
			var total = this.macroBanner['T'+this.bannerTarget].length;
			var inx = this.bannerInx+(aspect == 'prev' ? -1 : 1);
			if(inx < 0) inx = total-1;
			if(inx >= total) inx = 0;
			this.fadeBanner2(inx);
		}, 
		
		fadeBanner2: function(num){
//			if(this.bannerInx == num) return;
			var data = this.macroBanner['T'+this.bannerTarget][num];
			Ext.get('bannerImage').fadeOut({callback: function(el){
				var img = new Image();
				img.onload = function(){ common.imageLoaded(el, img); };
				img.src = data.Image;
				el.dom.style.backgroundImage = "url('"+data.Image+"')";
				el.child('a', true).href = data.Link;
				task.delay(data.Delay);
			}, scope: this, useDisplay: true});
			this.bannerInx = num;
			task.delay.defer(1000, this, [data.Delay]);
		},
		
		imageLoaded: function(el, img){
			if(!img.complete) {
				this.imageLoaded.defer(500, this, [el, img]);
				return;
			}
			el.fadeIn({useDisplay: true, duration: .5, easing: 'easeOut'});
		},
		
		selectLanguage: function(){
			if(!Ext.get('LANGUANG_apDiv1')) Ext.DomHelper.append('MENU_apDiv1', {tag: 'div', id: 'LANGUANG_apDiv1', html: '<div style="padding: 15px;">- <a href="http://www.mblock.com.tw" class="link_main_06">ENGLISH</a><br />- <a href="http://www.mblock.com.tw/tw" class="link_main_06">繁體中文</a><br />- <a href="http://www.mblock.com.cn" class="link_main_06">简体中文</a></div>'});
			Ext.getDom('LANGUANG_apDiv1').style.padding = '0px';
			Ext.getDom('LANGUANG_apDiv1').style.width = '153px';
			Ext.getDom('LANGUANG_apDiv1').style.display = 'block';
			Ext.get('LANGUANG_apDiv1').child('div').slideIn('t');
			Ext.getDoc().on('mousedown', this.closeLanguage, this)
		},
		
		closeLanguage: function(e){
			if(e.within(Ext.get('LANGUANG_apDiv1'))) return;
			Ext.get('LANGUANG_apDiv1').child('div').slideOut('t', {callback: function(el){
				Ext.getDom('LANGUANG_apDiv1').style.display = 'none';
				Ext.getDoc().un('mousedown', this.closeLanguage, this);
			}, scope: this});
		},
		
		initInquiryList: function(){
			var pdts = [];
			var trs = Ext.query('tr', Ext.get('inquiryList').first('div', true));
			var list = Ext.query('div', Ext.get('pdtList').child('div', true));
			for(var i=0;i<list.length;i++) pdts.push(Ext.query('td[rel!=only]', list[i]));
			this.total = 0;
			for(var j=0;j<pdts[0].length;j++){
				var th = 0;
				var tds = Ext.query('td', trs[j]);
				for(var i=0;i<pdts.length;i++){
					if(Ext.get(pdts[i][j]).getHeight() > th) th = Ext.get(pdts[i][j]).getHeight();
				}
				for(var i=0;i<tds.length;i++){ 
					if(Ext.get(tds[i]).getHeight() > th) th = Ext.get(tds[i]).getHeight();
				}
				this.total += th;
				for(var i=0;i<pdts.length;i++) {
					Ext.get(pdts[i][j]).setHeight(th);
					Ext.get(pdts[i][j]).parent('tr').setHeight(th);
				}
				for(var i=0;i<tds.length;i++) {
					Ext.get(tds[i]).setHeight(th);
					Ext.get(tds[i]).parent('tr').setHeight(th);
				}
				if(Ext.get(trs[j]).hasClass('end')) {
					Ext.get('inquiryList').setHeight(this.total);
					this.minTotal = this.total;	
				}
			}
			var point = Ext.query('div[class=end]', 'pdtList').length;
			if(point > 1){
				var tpl = getTemplate('tplPoint');
				var word = '';
				for(var i=0;i<point;i++){
					word += tpl.replace(/\{num\}/g, i);
				}
				if(Ext.get('selectPoint')) Ext.get('selectPoint').update(word).show().child('img').hide();
			}
			if(Ext.get('inquiryList')) Ext.get('inquiryList').parent().fadeIn({});
		},
		
		slideOpen: function(btn){
			var bool = btn.src.indexOf('closecomparison.png') == -1;
			btn.src = bool ? 'images/closecomparison.png' : 'images/comparison.png';
			Ext.get('inquiryList').setHeight(bool ? this.total : this.minTotal, {duration: 1});
		},
		
		initProductList: function(){
			var table = Ext.get('display_table').last();
			var point = Ext.query('td[class$=end]', table.child('tr', true)).length;
			table.child('table').setWidth(table.getWidth() * point);
			var td = Ext.query('td', table.dom);
			var s = 0;
			for(var i=0;i<td.length;i++){
				if(Ext.get(td[i]).hasClass('end')){
					var dev = Math.round(table.getWidth()/(i-s+1));
					for(j=s;j<i;j++) {Ext.get(td[j]).setWidth(dev); /*Ext.getDom(td[j]).width = dev;*/}
					Ext.get(td[i]).setWidth(table.getWidth()-dev*(i-s));
					s = i+1;
				}
			}
			
			if (Ext.get('searchResultApp'))
			{
				var reCheckHeight = true;
			}else{
				var reCheckHeight = false;
			}
			
			var rtr = Ext.query('tr', table.dom);
			var ltr = Ext.query('tr', Ext.get('display_table').first().dom);
			for(var i=0;i<rtr.length;i++){
//				Ext.get(ltr[i]).setHeight(Ext.get(rtr[i]).getHeight());
				var tds = Ext.query('td', ltr[i]);
				for(var j=0;j<tds.length;j++){
					if (reCheckHeight)
					{
						var rHeight = Ext.get(rtr[i]).getHeight();
						var lHeight = Ext.get(tds[j]).getHeight();
						
						if (rHeight > lHeight)
						{
							Ext.get(tds[j]).setHeight(rHeight);
						}else{
							var tds2 = Ext.query('td', rtr[i]);
							Ext.get(tds2[i]).setHeight(lHeight);
						}
					}else{
						Ext.get(tds[j]).setHeight(Ext.get(rtr[i]).getHeight());
					}
				}
			}
			
			var tpl = getTemplate('tplPoint');
			var word = '';
			for(var i=0;i<point;i++){
				word += tpl.replace(/\{num\}/g, i);
			}
			if(Ext.get('selectPoint')) Ext.get('selectPoint').update(word).show().child('img').hide();
			if(Ext.get('pdtTable')) Ext.get('pdtTable').show(true);
			if(reCheckHeight) setResultHeight();
		},
		
		initProductSerachList: function(){
			var table = Ext.get('display_table').last();
			var point = Ext.query('td[class$=end]', table.child('tr', true)).length;
			table.child('table').setWidth(table.getWidth() * point);
			var td = Ext.query('td', table.dom);
			var s = 0;
			for(var i=0;i<td.length;i++){
				if(Ext.get(td[i]).hasClass('end')){
					var dev = Math.round(table.getWidth()/(i-s+1));
					for(j=s;j<i;j++) {Ext.get(td[j]).setWidth(dev); /*Ext.getDom(td[j]).width = dev;*/}
					Ext.get(td[i]).setWidth(table.getWidth()-dev*(i-s));
					s = i+1;
				}
			}
			
			var rtr = Ext.query('tr', table.dom);
			var ltr = Ext.query('tr', Ext.get('display_table').first().dom);
			for(var i=0;i<rtr.length;i++){
				var rHeight = Ext.get(rtr[i]).getHeight();
				var lHeight = Ext.get(ltr[i]).getHeight();
				
				if (rHeight > lHeight)
				{//alert('a:'+rHeight+'>'+lHeight);
					Ext.get(ltr[i]).setHeight(rHeight);
					if (Ext.get(ltr[i]).getHeight() != rHeight)
					{
						var reHeight = rHeight - (Ext.get(ltr[i]).getHeight() - rHeight);
						Ext.get(ltr[i]).setHeight(reHeight);
					}
				}else{
					//alert('b:'+rHeight+'<='+lHeight);
					Ext.get(rtr[i]).setHeight(lHeight);
					if (Ext.get(rtr[i]).getHeight() != lHeight)
					{
						var reHeight = lHeight - (Ext.get(rtr[i]).getHeight() - lHeight);
						Ext.get(rtr[i]).setHeight(reHeight);
					}
				}
				//alert(Ext.get(ltr[i]).getHeight()+';'+Ext.get(rtr[i]).getHeight());
			}
			
			var tpl = getTemplate('tplPoint');
			var word = '';
			for(var i=0;i<point;i++){
				word += tpl.replace(/\{num\}/g, i);
			}
			if(Ext.get('selectPoint')) Ext.get('selectPoint').update(word).show().child('img').hide();
			if(Ext.get('pdtTable')) Ext.get('pdtTable').show(true);
			setResultHeight();
		},
		
		initVcarousel: function(){
			var crv = Ext.query('div[class*=vcarousel]');
			for(var i=0;i<crv.length;i++){
				if(!Ext.get(crv[i]).child('li')) continue;
				var uid = Ext.id(crv[i]);
				vcarousel[uid] = new Ext.ux.Carousel({
					numVisible: parseInt(vbase), animationSpeed: 0.5, scrollInc: 1, orientation: 'vertical', 
					//animationMethod: 'backBoth', 
					renderTo: uid
				});
				vcarousel[uid].show();
				var box = Ext.get(uid).parent('[class$=area]');
				var btns = Ext.query('img[name^=vbtn_]', box ? box.dom : null);
				if(btns.length < 2){
					for(var j=0;j<btns.length;j++) Ext.get(btns[j]).parent('div').remove();
				}else{
					Ext.get(btns[0]).hide();
				}
			}
		},
		
		callNews: function(btn, uid){
			var tpl = new Ext.XTemplate(getTemplate('newsTab'));
			var btns = Ext.query('div[class=index_presscenter_5]');
			for(var i=0;i<btns.length;i++){
				btns[i].className = 'index_presscenter_3';
				btns[i].innerHTML = tpl.apply({Name: btns[i].innerHTML});
			}
			btn.className = 'index_presscenter_5';
			btn.innerHTML = Ext.util.Format.stripTags(btn.innerHTML);
			if(this.tempNews['n_'+uid]){ this.changeIndexNews(this.tempNews['n_'+uid]); }else{
				var cb = function(rspn, option){
					this.tempNews['n_'+uid] = Ext.util.JSON.decode(rspn.responseText);
					this.changeIndexNews(this.tempNews['n_'+uid])
				}
				var cn = new Ext.data.Connection({url:'getdata.php?Type=getNews'}).request({
					params: {paramID: uid}, scope: this, success: cb
				});
			}
		}, 
		
		changeIndexNews: function(data){
			var tpl = new Ext.XTemplate(getTemplate('newsContent'));
			Ext.get('news_content').update(data.length ? tpl.apply(data) : 'No Data').show(true);
		}, 
		
		clickSelect: function(table, aspect){
//			alert(Ext.get(table).child('a', true).innerHTML);
			this.table = table;
//			Ext.get('searchList').parent().alignTo(Ext.get('Search').first('table'), 't-t')
//			Ext.get('searchList').slideIn('l');
//			Ext.get('Search').first('table').slideOut('r', {callback: function(el){ el.hide(); }});
			Ext.get('Search').child('div').move(aspect, 171, true);
		}, 
		
		selectValue: function(word){
//			Ext.get('searchList').slideOut('l', {callback: function(el){ el.parent().dom.top = '-1000px';el.parent().hide(); }});
//			Ext.get('Search').show().first('table').slideIn('r');
			Ext.get(this.table).child('a', true).innerHTML = word.innerHTML;
			this.clickSelect(this.table, 'l');
		}, 
		
		searchData: function(){
			var keyWord = Ext.get('Keyword').getValue();
			keyWord = keyWord == '- Enter keyword' ? '' : keyWord;
			
			if (keyWord == '')
			{
				alert('Please enter a keyword');
			}else{
				this.goToSearchPage(Ext.getDom('search_item').innerHTML, keyWord);
			}
		},
		
		pageSearchData: function(pageStr){
			var keyWord = Ext.get('pageKeyword').getValue();
			keyWord = keyWord == 'enter keyword' ? '' : keyWord;
			
			if (keyWord == '')
			{
				alert('Please enter a keyword');
			}else{
				this.goToSearchPage(pageStr, keyWord);
			}
		},
		
		goToSearchPage: function(pageStr, keyWord){
			switch (pageStr)
			{
				case 'Products':
					window.open('products.php?search='+keyWord,'_self');
					break;
				case 'Focus':
					window.open('focus_market_search.php?search='+keyWord,'_self');
					break;
				case 'Applications':
					window.open('applications_search.php?search='+keyWord,'_self');
					break;
				case 'FAQ':
					window.open('support_faqs_search.php?search='+keyWord,'_self');
					break;
				case 'Download':
					window.open('support_download_search.php?search='+keyWord,'_self');
					break;
				default:
					break;
			}
		},
		
		isShowDetail: function(btn, s, h){
			var bool = btn.src.indexOf('close.png') == -1 ? true : false;
			if(bool){
				Ext.getDom(s).style.display = 'block';
				Ext.get(s).slideIn('t');
			}else{
				Ext.get(s).slideOut('t', {callback: function(el){el.dom.style.display = 'none';}});
			}
			if(Ext.get(h)) Ext.get(h)[bool ? 'hide' : 'show'](true);
			btn.src = bool ? 'images/close.png' : (Ext.get(h) ? 'images/open.png' : 'images/more_hot_news.png');
		},
		
		selectRange: function(num){
			num = parseInt(num); if(this.indexPoint == num) return;
			var points = Ext.query('img', 'selectPoint');
			for(var i=0;i<points.length;i++){
				Ext.get(points[i])[i == num ? 'hide' : 'show']();
			}
			var table = Ext.get('display_table').last();
			table.child('table').alignTo(table, 'tl-tl', [table.getWidth()*num*-1, 0], true);
			this.indexPoint = num;
		},
		
		moveRange: function(num){
			num = parseInt(num); if(this.indexPoint == num) return;
			var points = Ext.query('img', 'selectPoint');
			for(var i=0;i<points.length;i++){
				Ext.get(points[i])[i == num ? 'hide' : 'show']();
			}
			Ext.get('pdtList').child('div').alignTo('pdtList', 'tl-tl', [Ext.get('pdtList').getWidth()*num*-1, 0], true);
			this.indexPoint = num;
		},
		
		rangeSlide: function(div, p){
			if(!div) return;
			if(p == 'next'){
				div.slideOut('l', {callback: function(el){ 
					el.dom.style.display = 'none';
					if(!el.hasClass('end')) this.rangeSlide(el[p](), p) 
				}, scope: this});
			}else{
				
				if(div.hasClass('end')) return; 
				div.dom.style.display = 'block';
				div.slideIn('l', {callback: function(el){ 
					this.rangeSlide(el[p](), p);
				}, scope: this});
			}
		},
		
		moveTo: function(region){
			if(carousel.moving) return;
			var num = parseInt(region.id.replace('btn_', ''));
			var btns = Ext.query('img[name^=btn_]');
			for(var i=0;i<btns.length;i++) Ext.get(btns[i])[btns[i] == region ? 'hide' : 'show']();
			carousel.moveTo((num-1)*base+1);
		}, 
		
		moveToVir: function(region){
			var box = Ext.get(region).parent('div[class$=area]');
			var uid = box.child('div[class*=vcarousel]', true).id;
			if(vcarousel[uid].moving) return;
			var num = parseInt(region.name.replace('vbtn_', ''));
			var btns = Ext.query('img[name^=vbtn_]', box.dom);
			for(var i=0;i<btns.length;i++) Ext.get(btns[i])[btns[i] == region ? 'hide' : 'show']();
			vcarousel[uid].moveTo((num-1)*vbase+1);
		}, 
		
		slideFaq: function(qs, region){
			Ext.get(qs).parent('div[class*=slidefaq]').slideOut('t', {callback: function(el){
				el.dom.style.display = 'none';
				el[region]().dom.style.display = 'block';
				el[region]().slideIn('t');
			}, scope: this})
		}, 
		
		showMovie: function(div, height, param){
			var param = param ? param : {};
			var bool = div.id.indexOf('open') != -1 ? false : true;
			Ext.get('movieShow').setHeight(height, true);
			Ext.get(div).hide(true);
			Ext.get(div.id.replace((bool ? 'close' : 'open'), (bool ? 'open' : 'close'))).show(true);
			if(!this.backup) this.backup = Ext.getDom('movieShow').innerHTML;
			Ext.getDom('movieShow').innerHTML = bool ? this.backup : this.makeFlash(param);
		},
		
		makeFlash: function(param){
			var html = '';
			param = Ext.apply({id: 'flash', width: 950, height: 480, url: 'flash/application_overview_photos.swf', quality: 'high', wmode: 'transparent'}, param);
			if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) {
				html = ['<embed type="application/x-shockwave-flash" src="', param.url, '" width="', param.width, '" height="', param.hieght, 'id="', 
					param.id, '" wmode="', param.wmode, '" quality="', param.quality, '" />'];
			}else{
				html = ['<object id="'+param.id+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+param.width+'" height="'+param.height+'">', 
					'<param name="movie" value="'+param.url+'" />', '<param name="quality" value="'+param.quality+'" />', 
					'<param name="wmode" value="'+param.wmode+'" />', '</object>'].join('');
			}
			return html;
		},
		
		revenueMove: function(btn, target, inx){
			inx = parseInt(inx);
			var imgs = Ext.query('img', Ext.get(btn).parent('td', true));
			for(var i=0;i<imgs.length;i++){
				imgs[i].style.visibility = 'visible';
			}
			Ext.get(btn).child('img').hide();
			var box = Ext.get(target);
			var child = box.child('div');
			var distance = inx*box.getHeight()*-1;
			if(box.getHeight() > child.getHeight()) return;
			if(distance < child.getHeight()*-1+box.getHeight()) distance = child.getHeight()*-1+box.getHeight();
			box.child('div').alignTo(target, 't-t', [0, distance], true);
		},
		
		revenueYearMove: function(direction, containerID, listID){
			var listWidth = Ext.get(listID).getWidth();
			var years = Ext.query('div', containerID);
			var yearWidth = Ext.get(years[0]).getWidth();
			var containerWidth = Ext.get(containerID).getWidth();
			
			if (direction == 'right')
			{
				//var setLeft = Ext.get(containerID).getLeft() - this.initialContainerLift - yearWidth;
				var setLeft = Ext.get(containerID).getLeft() - this.initialContainerLift - listWidth;
				//var checkLeft = this.initialContainerLift - Ext.get(containerID).getLeft() + yearWidth;
				var checkLeft = containerWidth - (Math.abs(this.initialContainerLift - Ext.get(containerID).getLeft()) + listWidth);
				Ext.get(containerID).alignTo(listID, 'l-l', [setLeft, 0], true);
				Ext.getDom('yearLeftButton').style.display = '';
				//if (checkLeft == (containerWidth - listWidth))
				if (checkLeft <= listWidth)
				{
					Ext.getDom('yearRightButton').style.display = 'none';
				}
			}else{
				var nowLeft = Ext.get(containerID).getLeft();
				//var setLeft = Ext.get(containerID).getLeft() - this.initialContainerLift + yearWidth;
				var setLeft = nowLeft - this.initialContainerLift + listWidth;
				//var checkLeft = Ext.get(containerID).getLeft() + yearWidth;
				var checkLeft = nowLeft + listWidth;
				Ext.get(containerID).alignTo(listID, 'l-l', [setLeft, 0], true);
				Ext.getDom('yearRightButton').style.display = '';
				if (checkLeft >= this.initialContainerLift)
				{
					Ext.getDom('yearLeftButton').style.display = 'none';
				}
			}
		},
		
		revenueListShow: function(yearStr){
			var nowYear = this.initialYear;
			if (nowYear == yearStr)
			{
				return;
			}
			
			this.initialYear = yearStr;
			loadingMask = new Ext.LoadMask('bodyContent', {msg:"Please wait..."});
			loadingMask.show();
			
			var cb = function(rspn, option){
				var resultList = Ext.util.JSON.decode(rspn.responseText);
				var revenueData = resultList['revenue'];
				var revenueTotal = resultList['total'];
				Ext.getDom('netSalesTotal').innerHTML = '';
				Ext.getDom('yoyTotal').innerHTML = '';
				Ext.getDom('netSalesConTotal').innerHTML = '';
				Ext.getDom('yoyConTotal').innerHTML = '';
				
				Ext.getDom('setYearList'+nowYear).innerHTML = '<a href="javascript:void(0);" class="link_main_12">'+nowYear+'</a>';
				Ext.getDom('setYearList2'+nowYear).innerHTML = '';
				Ext.get('setYearList'+nowYear).removeClass('investor_fi_14');
				Ext.get('setYearList2'+nowYear).removeClass('investor_fi_15');
				
				Ext.getDom('setYearList'+yearStr).innerHTML = yearStr;
				Ext.get('setYearList'+yearStr).addClass('investor_fi_14');
				Ext.get('setYearList2'+yearStr).addClass('investor_fi_15');
				Ext.getDom('setYearList2'+yearStr).innerHTML = '<img src="images/investor_fi_mr_54.png" width="54" height="11" />';
				
				Ext.getDom('yearTitle').innerHTML = yearStr;
				
				
				for (var i=0; i<12; i++){
					var tds = Ext.query('span', Ext.getDom('revenueList'+i));
					for (var j=0; j<tds.length; j++)
					{
						Ext.get(tds[j]).fadeOut({callback: function(){}, duration: .1*(i+1)});
					}
					
					for (var k=0; k<tds.length; k++)
					{
						Ext.getDom(tds[k]).innerHTML = revenueData[i][k];
					}
				}
				
				for (var i=0; i<12; i++){
					var tds = Ext.query('span', Ext.getDom('revenueList'+i));
					for (var j=0; j<tds.length; j++)
					{
						Ext.get(tds[j]).fadeIn({callback: function(){
							
						}, duration: .1*(i+1)});
					}
				}
				
				//if (i>=11 && j>=3)
				//{
					//setTimeout(function(){
						Ext.getDom('netSalesTotal').innerHTML = revenueTotal['net_sales'];
						Ext.getDom('yoyTotal').innerHTML = revenueTotal['yoy'];
						Ext.getDom('netSalesConTotal').innerHTML = revenueTotal['net_sales_con'];
						Ext.getDom('yoyConTotal').innerHTML = revenueTotal['yoy_con'];
					//},1500);
				//}
				loadingMask.hide();
			}
			
			var cn = new Ext.data.Connection({url:'getRevenueListJson.php?year='+yearStr}).request({
				params: {Year: yearStr}, scope: this, success: cb
			});
		},
		
		addInquiry: function(){
			var cb = function(rspn, option){
				alert(Ext.getDom('productName').alt + '已加入至您的清單!!');
			}
			var cn = new Ext.data.Connection({url:'getdata.php?Type=addInquiry'}).request({
				params: {paramID: obj.ID}, scope: this, success: cb
			});									
		},
		
		delInquiry: function(btn){
			if(!confirm('您確定要刪除該筆資料？')) return;
			var cb = function(rspn, option){
				Ext.get(btn).parent('div').fadeOut({callback: function(el){
					var num = Ext.query('div[rel!=only]', Ext.get('pdtList').child('div', true)).length-1;
					Ext.getDom('inquiryTotal').innerHTML = num;
					if(!num) location.href = 'inquiry.php';
					var point = Ext.query('div', 'selectPoint').length;
					if(num/3 <= point-1){
						if(point-1 <= 1) Ext.get('selectPoint').hide(true);
						Ext.get('selectPoint').last().remove();
						if(this.indexPoint == point-1) this.moveRange(this.indexPoint-1);
					}
					el.remove();
				}, scope: this});
			}
			var url = Ext.get(btn).parent('table').child('a[href^=products]', true).href;
			var o = Ext.urlDecode(url.substring(url.lastIndexOf('?') + 1, url.length));
			var cn = new Ext.data.Connection({url:'getdata.php?Type=delInquiry'}).request({
				params: {paramID: o.ID}, scope: this, success: cb
			});	
		}, 
		
		showremove: function(btn, forms){
			Ext.get(btn).hide({callback: function(el){el.remove();}});
			Ext.getDom(forms).style.display = 'block';
			
			Ext.get(forms).slideIn('t');
		}
	}
}();

Ext.onReady(common.init, common);
