/*-----------------------------------------------------------------------
modules JavaScript File

version: 	4.1
author:		sebastian kupke
email:		sebastian.kupke@baral-geohaus.de
website:	http://www.baral.de
-----------------------------------------------------------------------*/

/* =namespace modules
-----------------------------------------------------------------------*/
ws.m = {
	
	// showOnStartup
	showOnStartUp: false,
	
	// floating
	floating: false,
		
	// width
	width: 280,
		
	// multiOpen
	multiOpen: false,
	
	// position (depending on floating), default: no floating
	top: '',
	left: '',
		
	/* =initialize the modules
	-----------------------------------------------------------------------*/
	init: function() {
	
		//-----------------------------------
		// set width
		//-----------------------------------
		$('#m_window').css('width', ws.m.width + 'px');
		
		//-----------------------------------
		// set drag/drop
		//-----------------------------------
		$('#m_window').draggable({
			handle: $('#m_navigator_dragdrop'),
			opacity: 0.6,
			stop: function() {
				$('#m_above').css('height', '10px');
				
				// IE Bug
				$('.m_m_content').css({
					opacity: '1.0',
					backgroundColor: 'white'
				});
			}
		});
		
		//-----------------------------------
		// set position
		//-----------------------------------
		if (ws.m.floating) {
			ws.m.top = '90px';
			ws.m.left = '30px';
			
			$('#m_above').css('height', '0px');
			
		} else {
			ws.m.top = '0px';
			ws.m.left = '-11px';
			
			$('#m_above').css('height', '66px');
		}
		
		//-----------------------------------
		// fly in
		//-----------------------------------
		if (ws.m.showOnStartup) {
			$('#m_window').animate({
				top: ws.m.top,
				left: ws.m.left
			},{duration: 1000});
		} else {
			$('#m_navigator').fadeIn(500);
		}
		
		//-----------------------------------
		// show/hide one module
		//-----------------------------------
		$('.m_m_header[hinged=true]').click(function(e) {
			
			var id = $(this).parent().attr('module_id');
			
			if (ws.m.multiOpen) {
				if ($.browser.msie) {
					$('#m_m_content_' + id).toggle();
				} else {
					$('#m_m_content_' + id).toggle(250);
				}
			} else {
				$('.m_m_content:not(#m_m_content_' + id + ')').each(function() {
					if ($(this).prev().attr('hinged') == 'true') {
						if ($(this).css('display') == 'block') {
							if ($.browser.msie) {
								$(this).hide();
							} else {
								$(this).hide(250);
							}
						}
					}
				});
				
				if ($.browser.msie) {
					$('#m_m_content_' + id + ':hidden').show();
				} else {
					$('#m_m_content_' + id + ':hidden').show(250);
				}
			}
			
			if ($('#m_m_overview').size()) {
				window.setTimeout(function() {
					ws.m.overview.setRect();
				}, 500);
			}
		});
		
		//-----------------------------------
		// open modules window
		//-----------------------------------
		$('#m_navigator').click(function() {
			$(this).fadeOut('fast',function() {
				
				if (ws.m.floating) {
					$('#m_above').css('height', '10px');
				} else {
					$('#m_above').css('height', '66px');
				}
				
				$('#m_window').animate({
					top: ws.m.top,
					left: ws.m.left
				},1000);
			});
		});
		
		//-----------------------------------
		// close modules window
		//-----------------------------------
		$('#m_navigator_toggle').click(function() {
			$('#m_window').animate({
				top: '0px',
				left: '-1000px'
			},1000,function() {
				$('#m_navigator').fadeIn(300);
			});
		});
	},
	
	/* =loads a module
	 * @param id
	 * @param file
	 * @param params
	-----------------------------------------------------------------------*/
	load: function(id, file, open, params) {
		$.ajax({
	        url: 'scripts/modules/' + id + '/' + file + ws.c.ur,
	        data: params,
	        dataType: 'html',
	        success: function(data){
	        	$('#m_m_content_' + id).html(data);
	        	if (open == 'true') {
	        		$('#m_m_content_' + id).show();
	        	}
	        }
	    });
	},
	
	/* =shows the info of a modules
	 * @param id of the module
	 * @param type success, warning, failure, load
	 * @param text to display
	-----------------------------------------------------------------------*/
	info: function(id, type, text) {
		
		type = type || '';
		text = text || '';
		
		switch (type) {
			case 'success':
				$('#m_info_' + id + ' img').attr('src','style/' + ws.c.style + '/img/modules/success.gif');
				$('#m_info_' + id + ' p').html(text).css('color', 'green');
				$('#m_info_' + id).css('visibility', 'visible');
				break;
			case 'warning':
				$('#m_info_' + id + ' img').attr('src','style/' + ws.c.style + '/img/modules/warning.gif');
				$('#m_info_' + id + ' p').html(text).css('color', 'orange');
				$('#m_info_' + id).css('visibility', 'visible');
				break;
			case 'failure':
				$('#m_info_' + id + ' img').attr('src','style/' + ws.c.style + '/img/modules/failure.gif');
				$('#m_info_' + id + ' p').html(text).css('color', 'red');
				$('#m_info_' + id).css('visibility', 'visible');
				break;
			case 'load':
				$('#m_info_' + id + ' img').attr('src','style/' + ws.c.style + '/img/modules/load.gif');
				$('#m_info_' + id + ' p').html(text).css('color', 'gray');
				$('#m_info_' + id).css('visibility', 'visible');
				break;
			default:
				$('#m_info_' + id + ' p').html('');
				$('#m_info_' + id).css('visibility', 'hidden');
				break;
		}
	}
};




