/** 
 * SearchTrip.js
 * 
 */

var Dom = YAHOO.util.Dom;
var Anim = YAHOO.util.Anim;
var Motion = YAHOO.util.Motion;
var Event = YAHOO.util.Event;
var DDM = YAHOO.util.DragDropMgr;

function init() {

	//** Init UI Component.
	InitUIApp.init();
	
	//** Init DD Source Object.
	TripDDSourceApp.init('m_fcs_pphoto');
	TripDDSourceApp.init('m_ts_brk_photo');
	
	//** Init TripFuncBtnApp
	TripFuncBtnApp.init();
	
	//** Init Banner App.
	BannerApp.init();

	//** Init Tag List App.
	TagListApp.init();

}

//**********************************************
// Init UI Component
//**********************************************
InitUIApp = {
	init: function() {
		
		//** Change Nav Bar Image.
		Dom.get('menu_01').src = '/wps/themes/html/iMove/img/menu_01s.gif';

		//** Main Page UI
		var btn_search = new YAHOO.widget.Button('btn_search', { value: 'btn_search' });
		var btn_clear = new YAHOO.widget.Button('btn_clear', { value: 'btn_clear' });

		var slider = YAHOO.widget.Slider.getHorizSlider('slider_bg', 'slider_thumb',0,140,39);
		slider.setValue((Dom.get('duration').value)*39, false, true);

		Event.on('btn_clear', 'click', function(){
			var v2=slider.setValue(0,false);			
			Dom.get('duration').value = '0'
		});
		
		Event.on('btn_search', 'click', this.search);

		slider.subscribe('change', function(offsetFromStart) {
			Dom.get('duration').value = offsetFromStart/39;
		});

		//** Init Tag Tooltip.
		new YAHOO.widget.Tooltip("tagToolTip", {
			context:Dom.getElementsByClassName('showTagTooltip')
		});
		
		new YAHOO.widget.Tooltip('tagTT', { context:'tag' });
		
		Event.on(Dom.getElementsByClassName('showTripDetail'), 'click', function(e) {
			var isLoginUser=Dom.get('SearchTripForm').isLoginUser.value;
			
			var target = YAHOO.util.Event.getTarget(e);
			var selectedTripId = target.id.substring(5);			
			if (isLoginUser=='F')
				window.open('/wps/portal/imove/TripDetail?TRIP='+selectedTripId,'_self', '');
			else 
				window.open('/wps/myportal/imove/TripDetail?TRIP='+selectedTripId,'_self', '');
		});

	},
	
	search: function(e) {
		Dom.get('SearchTripForm').command.value = 'search';
		Dom.get('SearchTripForm').currentPage.value = '';
		Dom.get('SearchTripForm').submit();
	},
	
	changePage: function(targetPage) {
		Dom.get('SearchTripForm').currentPage.value = targetPage;
		Dom.get('SearchTripForm').submit();
	}
};


//**********************************************
//Trip Function Button App
//**********************************************
TripFuncBtnApp = {
	init: function() {        
		//** Function Button.
		var func_btns = Dom.getElementsByClassName('func_btn');
		var isAgentExist=Dom.get('SearchTripForm').isAgentExist.value;		
		if (isAgentExist=='T') {
			for (var i = 0; i < func_btns.length; i++) {
				new YAHOO.widget.Button(func_btns[i].id, {
					type: 'menu', 
					menu: [
						{ text: '收藏行程', value: func_btns[i].name + '-1', onclick: { fn: TripFuncBtnApp.clickMenuItem } },						
						{ text: '複製車主行程', value: func_btns[i].name + '-4', onclick: { fn: TripFuncBtnApp.clickMenuItem } },
						{ text: '轉寄車主行程', value: func_btns[i].name + '-5', onclick: { fn: TripFuncBtnApp.clickMenuItem } }					
					]
				});
			}
		}else {
			for (var i = 0; i < func_btns.length; i++) {
				new YAHOO.widget.Button(func_btns[i].id, {
					type: 'menu', 
					menu: [
						{ text: '收藏行程', value: func_btns[i].name + '-1', onclick: { fn: TripFuncBtnApp.clickMenuItem } },						
						{ text: '複製行程', value: func_btns[i].name + '-2', onclick: { fn: TripFuncBtnApp.clickMenuItem } },
						{ text: '轉寄行程', value: func_btns[i].name + '-3', onclick: { fn: TripFuncBtnApp.clickMenuItem } }					
					]
				});
			}
		}
	},
	
	clickMenuItem: function(p_sType, p_aArgs, p_oItem) {
		var sIdx = p_oItem.value.indexOf('-');
		var tripId = p_oItem.value.substring(0, sIdx);
		var func = p_oItem.value.substring(sIdx+1);
		
		//** Collect.
		if (func == '1') {
			var postData = 'function=collectTrip&tripId=' + tripId;
			YAHOO.util.Connect.asyncRequest('POST', ajaxServlet, { success:TripFuncBtnApp.successHandler_Collect, failure:TripFuncBtnApp.failureHandler }, postData);
		}
		//** Copy.
		if (func == '2') {
			Dom.get('planTripId').value = tripId;
			Dom.get('PlanTripRedirectForm').submit();
		}
		//** Forward.
		if (func == '3') {
			Dom.get('PanelTripForwardTripId').value = tripId;
			Dom.get('PanelTripForwardForm').submit();
		}
		//** Agent Service Copy
		if (func == '4') {
			Dom.get('PanelTripAgentCopyTripId').value = tripId;
			Dom.get('PanelTripAgentCopyForm').submit();
		}
		//** Agent Service Forward
		if (func == '5') {
			Dom.get('PanelTripAgentForwardTripId').value = tripId;
			Dom.get('PanelTripAgentForwardForm').submit();
		}
	},
	
	successHandler_Collect: function(o){
		if(o.responseText !== undefined){
			if (o.responseText == 'OK') {
				Dom.get('mymove_msg_text').innerHTML = '本行程已放入您的「行程收藏匣」中的「行程收藏」，並已自動下載至THINK+車機。';
				AlertMsgPanel.show();
			}
			else {
				alert('Collect Faile !');
			}
		}
	},
	
	failureHandler: function(o){
		alert('AJAX Connection Failure !!');
	}
};

//**********************************************
// Init Banner App.
//**********************************************
BannerApp = {
	init: function() {
		BannerApp.move();
		BannerApp.autoMove();
		
		Event.on('banner_move_p', 'click', function(){
			BannerApp.move(true);
		});
		
		Event.on('banner_move_n', 'click', function(){
			BannerApp.move();
		});
	},
	
	autoMove: function() {
		BannerApp.move();
		setTimeout('BannerApp.autoMove();', 5000);
	},
	
	move: function(movePre) {
		var postData = 'function=getBanners&sectionId=' + Dom.get('sectionId').value;
		if (movePre) postData = postData + '&move=p';
		YAHOO.util.Connect.asyncRequest('POST', commonAjaxServlet, { success:BannerApp.successHandler, failure:BannerApp.failureHandler }, postData);
	},
	
	successHandler: function(o){
		if(o.responseText !== undefined){
			Dom.setStyle('banner_0', 'display', 'none');
			Dom.setStyle('banner_1', 'display', 'none');
			var banners = eval('(' + o.responseText + ')');
			if (banners.length > 0) {
				Dom.setStyle('banner_0', 'display', '');
				Dom.get('banner_img_0').src = GetFileServlet + '?ACTION=VIEWC&FILENAME=' + banners[0].filename + '&SOURCEDIR=' + banners[0].destdir;
				Dom.get('banner_img_0').alt = banners[0].description;
				Dom.get('banner_name_0').innerHTML = banners[0].name;
				Dom.get('banner_link_0').href = '/imove_util/iMoveAdStat?function=clickCount&adverId=' + banners[0].id + '&urL=' + banners[0].link;
				Dom.get('banner_img_link_0').href = '/imove_util/iMoveAdStat?function=clickCount&adverId=' + banners[0].id + '&urL=' + banners[0].link;
				if (banners.length > 1) {
					Dom.setStyle('banner_1', 'display', '');
					Dom.get('banner_img_1').src = GetFileServlet + '?ACTION=VIEWC&FILENAME=' + banners[1].filename + '&SOURCEDIR=' + banners[1].destdir;
					Dom.get('banner_img_1').alt = banners[1].description;
					Dom.get('banner_name_1').innerHTML = banners[1].name;
					Dom.get('banner_link_1').href = '/imove_util/iMoveAdStat?function=clickCount&adverId=' + banners[1].id + '&urL=' + banners[1].link;
					Dom.get('banner_img_link_1').href = '/imove_util/iMoveAdStat?function=clickCount&adverId=' + banners[1].id + '&urL=' + banners[1].link;
				}
			}
		}
	},

	failureHandler: function(o){
		//alert('AJAX Connection Failure !!');
	}
};

//**********************************************
// Init Tag List App.
//**********************************************
var tagListOverlay;

TagListApp = {
	init: function(){
		//** Init Overlay.
		tagListOverlay = new YAHOO.widget.Overlay('tagListOverlay', { 
			context:['showTagList','tl','tl'], visible:false
		});
		tagListOverlay.render();
		Dom.setStyle('tagListOverlay', 'opacity', 0.85);

		//**Event Control.
		Event.on('showTagList', 'click', function(){
			tagListOverlay.show();
		});
		Event.on(Dom.getElementsByClassName('addTag'), 'click', function(e){
			var target = YAHOO.util.Event.getTarget(e);
			if (Dom.get('tag').value == '') {
				Dom.get('tag').value = target.innerHTML;
			}
			else {
				Dom.get('tag').value = Dom.get('tag').value + ' ' + target.innerHTML;
			}
			tagListOverlay.hide();
		});
		Event.on('tagListOverlay', 'mouseleave', function(){			
			tagListOverlay.hide();
		});
	}
};


YAHOO.util.Event.onDOMReady(init);
