/*
 *	Focus-UI Library
 *
 *	Copyright (c) 2009 Focus Imaging Limited - http://www.focus-global.com
 */


focus_ui = {
	
	langData: null,
	init: function( current_time ){
		
		//focus_ui.clock.init( current_time );
		focus_ui.day_night.init();
		
		$('img.rollover')
			.bind('mouseover',function(event){ focus_ui.img.mouseover(this); })
			.bind('mouseout',function(event){ focus_ui.img.mouseout(this); });

		$('input.rollover')
			.bind('mouseover',function(event){ focus_ui.img.mouseover(this); })
			.bind('mouseout',function(event){ focus_ui.img.mouseout(this); });
	},

	bookmarksite: function(){
		if (window.sidebar) // firefox
		{
			window.sidebar.addPanel(document.title, location.href, "");
		}
		else if(window.opera && window.print) // opera
		{
			var elem = document.createElement('a');
			elem.setAttribute('href',location.href);
			elem.setAttribute('title',document.title);
			elem.setAttribute('rel','sidebar');
			elem.click();
		} 
		else if(document.all) // ie
		{
			window.external.AddFavorite(location.href, document.title);
		}
	},	
	
	clock: {
		current: null,
		init: function( current_time )
		{
			focus_ui.clock.current = new Date(current_time);
			setInterval("focus_ui.clock.refresh()", 1000);
		},
		padZero: function(what){
			return (what.toString().length==1) ? '0' + what : what;
		},
		refresh: function()
		{
			focus_ui.clock.current.setSeconds( focus_ui.clock.current.getSeconds()+1 );
			var s = focus_ui.clock.padZero(focus_ui.clock.current.getHours())+":"+ focus_ui.clock.padZero(focus_ui.clock.current.getMinutes())+":"+ focus_ui.clock.padZero(focus_ui.clock.current.getSeconds());
			$('#focus_ui_clock').html( s );
		}
	},	
	
	img: {
		mouseover: function( el ){
			var el = $(el);
			el.attr('src', el.attr('src').replace('rollout', 'rollover') );
		},
		mouseout: function( el ){
			var el = $(el);
			el.attr('src', el.attr('src').replace('rollover', 'rollout') );
		}
	},
	
	day_night: {
		init: function() {
			$('div.day_night_img').each(function() {
				var img = $(this).find('img.view');
				
				$(this).find('img.change_btn')
					.bind('click', function() { focus_ui.day_night.changeView( img ) });
			});				
		},
		
		changeView: function( target ) {	
			if (target.attr('src').match('day')) {
				target.attr('src', target.attr('src').replace('day', 'night') );
			}
			else {
				target.attr('src', target.attr('src').replace('night', 'day') );
			}			
		}
	},
	
	tab: {
		tab_detail : null,
		content_detail : null,
		sub_detail : null,		
		desc_detail : null,
		
		
		init : function(tab_selector, content_selector, tab_desc_selector) {
			if ( $(tab_selector+'_detail:first').hasClass('small') ) {
				$(tab_selector+'_detail:first').addClass('s_current');
			}
			else if ( $(tab_selector+'_detail:first').hasClass('medium') ) {
				$(tab_selector+'_detail:first').addClass('m_current');
			}
			else if ( $(tab_selector+'_detail:first').hasClass('large') ) {
				$(tab_selector+'_detail:first').addClass('l_current');
			}
					
			$(content_selector+' '+content_selector+'_detail:not(:first)').css('display', 'none');
			$(tab_desc_selector+' '+tab_desc_selector+'_detail:not(:first)').css('display', 'none');
		
			$(content_selector).each(function() {				
				focus_ui.tab.content_detail = $(this).find(content_selector+'_detail');				
			
				focus_ui.tab.sub_detail = $(focus_ui.tab.content_detail).find('div.sub_detail');
				
				if (focus_ui.tab.sub_detail.length > 0) {
					$(content_selector+' '+content_selector+'_detail div.sub_detail:not(:first)').css('display', 'none');
					
					sub_link = $(focus_ui.tab.content_detail).find('div.sub_row div.sub a');
										
					for (var j = 0 ; j < sub_link.length ; j++) {
						sub_link.eq(j)
							.attr('id', j)
							
							.bind('click', function() {
								focus_ui.tab.changeSubTab( content_selector, this );
							});
					}
				}
			});
			
			$(tab_desc_selector).each(function() {
				focus_ui.tab.desc_detail = $(this).find(tab_desc_selector+'_detail');
			});
				
			$(tab_selector).each(function() {
				focus_ui.tab.tab_detail = $(this).find(tab_selector+'_detail');
				
				for (var i = 0 ; i < focus_ui.tab.tab_detail.length ; i++) {							
					focus_ui.tab.tab_detail.eq(i)
						.attr('id', i)
						
						.bind('click', function() {
							if ( $(this).hasClass('small') ) {
								$('div.tab_detail.s_current').removeClass('s_current');
								$('div.tab_detail.m_current').removeClass('m_current');
								$('div.tab_detail.l_current').removeClass('l_current');
								$(this).addClass('s_current');
							}
							else if ( $(this).hasClass('medium') ) {
								$('div.tab_detail.s_current').removeClass('s_current');
								$('div.tab_detail.m_current').removeClass('m_current');
								$('div.tab_detail.l_current').removeClass('l_current');
								$(this).addClass('m_current');
							}
							else if ( $(this).hasClass('large') ) {
								$('div.tab_detail.s_current').removeClass('s_current');
								$('div.tab_detail.m_current').removeClass('m_current');
								$('div.tab_detail.l_current').removeClass('l_current');
								$(this).addClass('l_current');
							}
							
							focus_ui.tab.changeTab( tab_selector, content_selector, tab_desc_selector, this );
						});								
				}
			});
		},
		
		changeTab : function(tab_selector, content_selector, tab_desc_selector, obj) {
			$(content_selector).each(function() {				
				focus_ui.tab.content_detail = $(this).find(content_selector+'_detail');		
				
				for (var j = 0 ; j < focus_ui.tab.content_detail.length ; j++) {
					if ($(obj).attr('id') == j)
						focus_ui.tab.content_detail.eq(j).css('display', '');
					else
						focus_ui.tab.content_detail.eq(j).css('display', 'none');
				}
			});
			
			$(tab_selector).each(function() {
				focus_ui.tab.tab_detail = $(this).find(tab_selector+'_detail');
				
				/* for (var i = 0 ; i < focus_ui.tab.tab_detail.length ; i++) {
					if ($(obj).attr('id') == i)
						focus_ui.tab.tab_detail.eq(i).attr('src', focus_ui.tab.tab_detail.eq(i).attr('src').replace('normal', 'current') );
					else
						focus_ui.tab.tab_detail.eq(i).attr('src', focus_ui.tab.tab_detail.eq(i).attr('src').replace('current', 'normal') );
				} */
			});
			
			$(tab_desc_selector).each(function() {
				focus_ui.tab.desc_detail = $(this).find(tab_desc_selector+'_detail');
				
				for (var k = 0 ; k < focus_ui.tab.desc_detail.length ; k++) {
					if ($(obj).attr('id') == k)
						focus_ui.tab.desc_detail.eq(k).css('display', '');
					else
						focus_ui.tab.desc_detail.eq(k).css('display', 'none');
				}
			});
		},
		
		changeSubTab : function(content_selector, obj) {
			$(content_selector).each(function() {
				focus_ui.tab.sub_detail = $(focus_ui.tab.content_detail).find('div.sub_detail');
				
				for (var k = 0 ; k < focus_ui.tab.sub_detail.length ; k++) {
					if ($(obj).attr('id') == k)
						focus_ui.tab.sub_detail.eq(k).css('display', '');
					else
						focus_ui.tab.sub_detail.eq(k).css('display', 'none');
				}
			});
		}
	},
		
	scroller: {
		intval: null,
		init: function( selector, speed ){
			if( typeof(speed)=='underfind' )
			{
				speed = 50;
			}
			var parentBox = $(selector);
			parentBox.find('.scroller-forward')
				.bind('mouseover',function(event){ focus_ui.scroller.next( selector, speed ); })
				.bind('mouseout',function(event){ focus_ui.scroller.stop(); });
			parentBox.find('.scroller-backward')
				.bind('mouseover',function(event){ focus_ui.scroller.prev( selector, speed ); })
				.bind('mouseout',function(event){ focus_ui.scroller.stop(); })
				.css('display', 'none');
		}, 
	
		move: function( mode, selector) {		
			var parentBox = $(selector);
			var box = parentBox.find('.scroller-mainbody');
			var max = box.attr('scrollWidth') - box.width();
			
			if (mode == 'next') {
				if ( box.scrollLeft() == max ) {
					parentBox.find('.scroller-forward').css('display', 'none');
				}
				else {
					parentBox.find('.scroller-backward').css('display', '');
					box.scrollLeft(box.scrollLeft() + 1 );
				}										
			}
			else {
				if ( box.scrollLeft() == 0) {
					parentBox.find('.scroller-backward').css('display', 'none');
				}
				else {	
					parentBox.find('.scroller-forward').css('display', '');
					box.scrollLeft(box.scrollLeft() - 1 );										
				}
			}
		},
		
		next: function( selector, speed ){
			focus_ui.scroller.intval = setInterval("focus_ui.scroller.move('next', '"+ selector +"')", speed );
		},
		
		prev: function( selector, speed ){
			focus_ui.scroller.intval = setInterval("focus_ui.scroller.move('prev', '"+selector+"')", speed );
		},
		
		stop: function(){
			window.clearInterval(focus_ui.scroller.intval);
		}
	
	},
	
	vscroller: {
		intval: null,
		init: function( selector, speed ){
			if( typeof(speed)=='underfind' )
			{
				speed = 50;
			}
			var parentBox = $(selector);
			parentBox.find('.vscroller-up')
				.bind('mouseover',function(event){ focus_ui.vscroller.up( selector, speed ); })
				.bind('mouseout',function(event){ focus_ui.vscroller.stop(); })
				.css('display', 'none');
			parentBox.find('.vscroller-down')
				.bind('mouseover',function(event){ focus_ui.vscroller.down( selector, speed ); })
				.bind('mouseout',function(event){ focus_ui.vscroller.stop(); });			
		}, 
	
		move: function( mode, selector) {		
			var parentBox = $(selector);
			var box = parentBox.find('.vscroller-mainbody');
			var max = box.attr('scrollHeight') - box.height();
			
			if (mode == 'down') {
				if ( box.scrollTop() == max ) {
					parentBox.find('.vscroller-down').css('display', 'none');
				}
				else {
					parentBox.find('.vscroller-up').css('display', '');
					box.scrollTop(box.scrollTop() + 1 );
				}										
			}
			else {
				if ( box.scrollTop() == 0) {
					parentBox.find('.vscroller-up').css('display', 'none');
				}
				else {	
					parentBox.find('.vscroller-down').css('display', '');
					box.scrollTop(box.scrollTop() - 1 );										
				}
			}
		},
		
		up: function( selector, speed ){
			focus_ui.vscroller.intval = setInterval("focus_ui.vscroller.move('up', '"+ selector +"')", speed );
		},
		
		down: function( selector, speed ){
			focus_ui.vscroller.intval = setInterval("focus_ui.vscroller.move('down', '"+selector+"')", speed );
		},
		
		stop: function(){
			window.clearInterval(focus_ui.vscroller.intval);
		}
	
	},				
	
	'dummy': ''
};
