var netedit = {
    options: {
    	colorEvidence: '#fff6de'
    },
    
    init: function(options){
    	this.options = $merge(this.options,options);
    	
		netedit.ajax.init();
		this.idLog = 'log-netedit';
		this.trSelected = null;
		this.tableBindEvents();
		this.divListBindEvents();
		this.overtext();
    },
    
    overtext: function(){
    	//var inputsOverText = new OverText($$('.netedit-overtext'));
    },
    
    log: function(txt){
    	var div = new Element('div').set('html',txt);
    	var log = $(this.idLog);
    	if(log){
    		div.inject(log, 'top');
    	}else{
    		var log = new Element('div', {
    			id: this.idLog,
	    		'styles': {
					'overflow': 'auto',
					'font-size': '10px',
					'position': 'fixed', 
					'background': '#ffffff', 
					'width': '150px',
					'height': '50px', 
					'border': '1px #666666 solid', 
					'z-index': '99',
					'line-height': '100%'
				}
    		});
    		div.inject(log);
    		var bodyElement = $(document.body);
    		log.inject(bodyElement);    		
    	}
    },
    
    toggleDisplay: function(id, objCall){
    	var element = $(id);
		var srcAsc = "libs/views/imgs/s_asc.png";
		var srcDesc = "libs/views/imgs/s_desc.png";
		if(element){
			//var display = element.style.display;
			var display = element.getStyle('display');
			
			var img = null;
	
			if(objCall!=undefined){
				var imgs = objCall.getChildren('img');
				$each(imgs, function(imgChild, index){
					if(imgChild.get('src')==srcAsc || imgChild.get('src')==srcDesc){
						img = imgChild;
					}
				});
			}
	
			if(display=="" || display=="block" || display=="inline"){
				if(img==null){
					if(objCall!=undefined) objCall.innerHTML = objCall.innerHTML+'<img src="'+srcAsc+'" border="0" align="absmiddle">';
				}else{
					img.src = srcAsc;
				}
				element.style.display = 'none';
			}else{
				if(img==null){
					if(objCall!=undefined) objCall.innerHTML = objCall.innerHTML+'<img src="'+srcDesc+'" border="0" align="absmiddle">';
				}else{
					img.src = srcDesc;
				}
				if(element.tagName=='SPAN'){
					element.style.display = 'inline';
				}else{
					element.style.display = 'block';
				}
			}
		}
		return false;
    },
    
    tableBindEvents: function(){
    	var trs = $$('table.list tr').addEvents(
    		{
    			'mouseover': function(e){
					var event = new Event(e);	
					
					var prevColor = this.getProperty('prevcolor');
					if(!prevColor){
						this.setProperty('prevcolor', this.getStyle('background-color'));
					}
					this.setStyle('background-color', netedit.options.colorEvidence);
					//this.log('mouseover');
				},
				'mouseout': function(e){
					var event = new Event(e);
					
					this.setStyle('background-color', this.getProperty('prevcolor'));
					//this.log('mouseout');
				},
				'click': function(e){
		    		var event = new Event(e);
		    		
		    		netedit.trEvidence(this);
		    	}
    		}	
    	);
    },
    
    divListBindEvents: function(){
    	var divs = $$('div.list').addEvents(
    		{
    			'mouseover':function (e){
					var event = new Event(e);	
					
					var prevColor = this.getProperty('prevcolor');
					if(!prevColor){
						this.setProperty('prevcolor', this.getStyle('background-color'));
					}
					this.setStyle('background-color', netedit.options.colorEvidence);
					var divActions = this.getElement('div.list-actions');
					if(divActions){
						divActions.setStyle('display', 'block');
					}
				},
	    		'mouseout': function(e){
					var event = new Event(e);
					
					this.setStyle('background-color', this.getProperty('prevcolor'));
					var divActions = this.getElement('div.list-actions');
					if(divActions){
						divActions.setStyle('display', 'none');
					}
				},
    			'click': function(e){
		    		var event = new Event(e);
		    		
		    		netedit.trEvidence(this);
		    	}
    		}
	    );
    },
    
    trEvidence: function(tr){
		if (this.trSelected!=null) {
			  this.trSelected.style.fontWeight = "normal";
		}
		tr.style.fontWeight = "bold";
	    this.trSelected = tr;
	},
	
	addTr: function(id_before, tdArray, id_row, className){
		var trBefore = $(id_before);
		var tbody = trBefore.parentNode;
		var row = document.createElement("TR");
		row.id = id_row;
		row.className = className;
		for(var i=0; i<tdArray.length; i++){
			var td = document.createElement("TD");
			td.innerHTML = tdArray[i];
			row.appendChild(td);
		}
	
		tbody.insertBefore(row, trBefore);
	},
	
	formatDecimal: function(argvalue, addzero, decimaln){
		var numOfDecimal = (decimaln == null) ? 2 : decimaln;
		var number = 1;
		number = Math.pow(10, numOfDecimal);
		argvalue = Math.round(parseFloat(argvalue) * number) / number;
		argvalue = "" + argvalue;
		if (argvalue.indexOf(".") == 0)
		{
		  argvalue = "0" + argvalue;
		}
		if (addzero == true)
		{
			if (argvalue.indexOf(".") == -1)
			{
				argvalue = argvalue + ".";
			}
	
			while ((argvalue.indexOf(".") + 1) > (argvalue.length - numOfDecimal))
			{
				argvalue = argvalue + "0";
			}
		}
		return argvalue;
	},
	
	editTplSelected: function(selectId, templateDir){
		if(!selectId) selectId = 'template_path';
		var select = $(selectId);
		var selValue = select.options[select.selectedIndex].value;
		if(selValue!=''){
			window.location = '?controller[pages]=templates&action[templates]=edit&file=templates/modules/'+templateDir+'/'+selValue+'/index.php';
		}else{
			alert('Questo template non e\' modificabile!');
		}
	},
	
	urlencode: function(str) {
		return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
	}
};

window.addEvent("domready", function(){
	netedit.init();
});