iFeature = Class.create();
iFeature.prototype = ({
	initialize: function (str_div_id, str_ajax_source)
	{		
		this.elem_id 			=	str_div_id;
		this.ajax_source		=	str_ajax_source;
		
		this.ifeatureObserver	=	this.getiFeature.bindAsEventListener(this);
		
		this.targets			= 	this.attachTriggers(this.ifeatureObserver);
		this.ifeature			=	this.createiFeature();	
		
	},
	
	attachTriggers: function(listener)
	{	
		var targets = null;
		targets = document.getElementsBySelector('.ifeature');
				
		for (var i=0; i<targets.length; i++)
		{			
			Event.observe(targets[i], 'click', listener);
		}
		
		return targets
	},
	
	createiFeature: function()
	{		
		var parent = document.getElementById('top_layers');
		
		if(parent){
			newDiv 			= document.createElement( 'div' );
			newDiv.id 		= this.elem_id;
			
			newDiv = parent.insertBefore( newDiv, parent.firstChild );
			
			Element.hide(newDiv);
			
			//div
			return newDiv;
		}
		
		//div not create return null
		return null;
	},
	
	getiFeature: function(event)
	{
		var vars = Event.findElement(event, 'a').className;
		
		if(vars)
		{
			var feature_id 	= new RegExp(/featureid_(\d*)/);
			var lesson_id	= new RegExp(/lessonid_(\d*)/);
			var back_to	= new RegExp(/backto_(\d*)/);
			var menu_id	= new RegExp(/menuid_(\w*)/);
			feature_id.test( vars );
			feature_id = (RegExp.$1 != '') ?  RegExp.$1 : false;
			lesson_id.test ( vars );
			lesson_id = (RegExp.$1 != '') ?  RegExp.$1 : false;
			back_to.test ( vars );
			back_to = (RegExp.$1 != '') ?  RegExp.$1 : false;
			menu_id.test ( vars );
			menu_id = (RegExp.$1 != '') ?  RegExp.$1 : false;
					
			//ids found
			if (feature_id && lesson_id)
			{
				var rnd = parseInt(Math.random()*99999999);
				pars = "featureid="+feature_id+"&lessonid="+lesson_id+"&backto="+back_to+"&menu="+menu_id+"&rnd="+rnd;
				
				new Ajax.Updater(
					this.ifeature, this.ajax_source,
					Object.extend({
						asynchronous: true,
						onComplete: this.showiFeature.bind(this)
					  }, {method: 'get', parameters: pars})
					);				
			}
		}
	},
	
	showiFeature: function()
	{	
		Element.show($('top_layers'));
		setTransparency();
		Element.show(this.ifeature);
	}
});