var Netblast = new Class({
	Implements: [Options, Events, Chain],
    options: {
		elements : {
			error : $('netblast-error')		
		},
		global_timer : null,
		timer : null,
		host : 'http://netblast.no/',		
		module : null,
		parameters : {
			source : '',
			search : {}	
		}
	},
	
	initialize : function(options) {
	},
	
	inject : function(module, parameters) {		
		//TYPE OF MODULE E.G "Activity"
		this.options.module = module;	
		
		if($chk(parameters)){
			//SEARCH PARAMETERS
			this.options.parameters = parameters;		

			// NO DUPLICATE
			if(!$chk($('netblast-module-'+this.options.module))) {
				new Element('script',{'src':this.options.host+'javascript/'+this.options.module+'.js', 'id':'netblast-module-'+this.options.module}).inject(document.body);		
				this.retrieveModule();
			}				
		} else {			
			this.error('Initialization error - missing arguments');	
		}	
	},
		
	retrieveModule : function() {
		try {			
			switch(this.options.module) {				
				case 'activity' : {
					var activity = new Activity(this.options.parameters);
					break;
				}
				case 'document' : {					
					var document = new Document(this.options.parameters);
					break;					
				}
				case 'pfa' : {
					var pfa = new PFA(this.options.parameters);
					break;
				}
			}
		} catch(exception) {			
			this.options.timer = this.retrieveModule.delay(1000,this);			
		}
	},
	
	help : function(module) {
		help = new Element('div', {'styles':{
						'position':'absolute',
						'text-align':'left',
						'z-index':'999',
						'top':'0px',
						'padding':'10px',
						'background':'#ffffff',
						'margin':'100px auto'
					}}).inject(document.body);
		
		if($chk(module)) {
			help.set('html','<h2>Activity</h2><p><strong>Usage:</strong><br />Lorem ipsum dolor..</p>');
				
		} else {
			help.set('html','<h2>Help</h2><p><strong>Usage:</strong><br />Lorem ipsum dolor..</p>');
		}
		
	},
	
	error : function(message) {
		this.options.elements.error = $chk($(this.options.elements.error)) ? $(this.options.elements.error) : new Element('div', {'id':'netblast-error', styles : {'display':'none'}}).inject(document.body); 
		
		$(this.options.elements.error).set('text',message);
		$(this.options.elements.error).setStyle('display','block');
//		$clear(this.options.global_timer);
//		$clear(this.options.timer);
	
		
		//alert("Data connection could not be established - Data connection timeout");
	}
});

var netblast = new Netblast();
