/*
 *	Copyright (c) 2009-2011 Focus Imaging Limited - http://www.focus-global.com
 */

FFJS['CMS'] =  {
	url_root : null,
	page_section : null,
	last_load : '',
	div_id :'',
	error:false,
	loading_html : '<div style="padding: 5px;"><img src="images/loading.gif" style="display: block; margin-left: auto; margin-right: auto;"></div>'+
					'<div style="font-size:14px; text-align: center;">Loading.....</div>',
	
	refresh: function() {		
		var url_root = FFJS.CMS.url_root;
		
		window.location.href = url_root;
	},
	logout: function(){
		if (confirm('Are you sure to logout ?')) {	
			FFJS.CMS.showLoading();
			var data = {};
			$.post( FFJS.CMS.url_root + 'session/logout', data, function(xml){ FFJS.CMS.refresh(xml) }, 'xml' );
		}
	},
	showLoading: function() {			
		$('#dialog').html(FFJS.CMS.loading_html);
		
		FFJS.Dialog.init(300, 180, 'Login');
		FFJS.Dialog.modal_val = true;
		FFJS.Dialog.open('#dialog');				
	},
	closeLoading: function() {
		$('#dialog').html('');			
		FFJS.Dialog.close();
	},
	load_page : function(target, post_section, pass_method,callback) {
		var method = '';
		if (pass_method != undefined) {
			method = pass_method;
		}
		
		var callback11 = function(response, status, xhr){
			if( callback!= undefined )
			{
				callback(response, status, xhr);				
			}else{
				setTimeout("FFJS.Dialog.close();", 200);
			}				
		};
		
		$('#dialog').html(FFJS.CMS.loading_html);
		FFJS.Dialog.modal_val = false;
		FFJS.Dialog.init(32, 32);
		FFJS.Dialog.blank_dialog('#dialog');

		var post_to = FFJS.CMS.url_root+post_section+'/'+method;
		FFJS.CMS.last_load = post_to;		
		
		$(target).load(post_to, callback11);
	},
	
	refresh_page : function(target) {		
		$('#dialog').html(FFJS.CMS.loading_html);
		FFJS.Dialog.modal_val = true;
		FFJS.Dialog.init(32, 32);
		FFJS.Dialog.blank_dialog('#dialog');
		
		$(target).load(FFJS.CMS.last_load, function() {setTimeout("FFJS.Dialog.close();", 200);} );
	},
	
	load_url : function(target, url) {
		var post_to = FFJS.CMS.url_root+url;
		$(target).load(post_to);
	},
	
	load_content : function(target, url) {
		var post_to = FFJS.CMS.url_root+url;		
		$(target).load(post_to, function() {setTimeout("FFJS.Dialog.close();", 200);} );
	}
};	

FFJS['Lookup'] = {
	xml: {},
	init: function( urlList, callback ){
		for( var x in urlList ){ 
			FFJS.Lookup.xml[x] = null;
		}
		$.each( urlList, function( name, url ){
			$.get( url, {}, function(data){ 
				FFJS.Lookup.xml[ name ] = $(data); 
				for( var x in FFJS.Lookup.xml ){ 
					if( FFJS.Lookup.xml[x]==null ){ 
						return;
					}
				}
				if( callback!=undefined )
				{
					callback();
				}
			}, 'xml' );
		});
		
		
	},
	ready: function( name, func, timeout )
	{
		timeout = (timeout==undefined)? 100 : 0;
		if( FFJS.Lookup.xml[name]!=null )
		{
			func();
		}
		else
		{
			var delayFunc = function(){
				FFJS.Lookup.ready( name, func, timeout );
			};
			setTimeout( delayFunc, timeout );
		}
	},
	getValue: function( name, id ){
		return FFJS.Lookup.xml[name].find('[id='+id+']').text();
	},
	match: function( selector, name ){
		$( selector ).each(function(){
			if(isNaN($(this).text()) ){
				return;
			}
			var result = FFJS.Lookup.xml[name].find('[id='+$(this).text()+']');
			if( result.length > 0 )
			{
				$(this).html( result.text() );
			}
		});
	},
	appendOptions: function( selector, name, filter, emptyStr ){
		filter = (filter==undefined)? 'data' : 'data'+filter;
		emptyStr = (emptyStr==undefined)? '-----' : emptyStr;
		var opt = '<option value="">'+emptyStr+'</option>';
		var fData = FFJS.Lookup.xml[name].find(filter);
		for( var i=0; i<fData.length; i++ )
		{
			var data = fData.eq(i);
			opt += '<option value="'+data.attr('id')+'">'+data.text()+'</option>';
		}
		$( selector ).append( opt );
	}
};


FFJS.CMS['Lookup'] = FFJS.Lookup;

FFJS['Div'] = {
	setting: {	
	},

	init: function( module_param ){
	},
	
	toggle_div : function(selector,target) {
		var ad='';
		if(target == undefined){
			ad = $(FFJS.SearchUI.setting[selector].div_target);
		}else{
			ad = $(target);
		}
		ad.toggle();

		ad = null;
	},
	
	switch_div : function(selector,div1,div2){
		if(div2 == undefined){
			$(div1).focus();
			var pos = $(div1).offset().top;
			$("html,body").animate({ scrollTop: pos }, 1000);
		}else{	
			if($(div1).is(':visible')){
				FFJS.Div.toggle_div(selector,div1);
				FFJS.Div.toggle_div(selector,div2);
			}
		}
	},
			
	show_div : function(selector,target) {
		var ad='';
		if(target == undefined){
			ad = $(FFJS.SearchUI.setting[selector].div_target);
		}else{
			ad = $(target);
		}
		//ad.toggle();
		if (!ad.hasClass('show')) {
			ad.slideDown('medium');
			ad.addClass('show');			
		}
		ad = null;
	},
	
	hide_div : function(selector,target) {	
		var ad='';
		if(target == undefined){
			ad = $(FFJS.SearchUI.setting[selector].div_target);
		}else{
			ad = $(target);
		}
		if (ad.hasClass('show')) {
			ad.slideUp('medium');
			ad.removeClass('show');
			
		}
		ad = null;
	}
};



