var nUtils={
	getScriptPath:function(scriptname){
		var scripts=$A(document.getElementsByTagName("script"));
		//alert('nUtils: searching for: '+scriptname+' scripts: '+scripts.length);
		for(var i=0; i < scripts.length; i++){
			var s=scripts[i];
			//alert(i+' nUtils: '+s+" - " +s.src);
			if(s.src && s.src.indexOf(scriptname) != -1){
			 //alert(i+" Found: "+scriptname);
				return s.src.substring(0, s.src.lastIndexOf('/'));
			}
		}
	},
	setProgressState:function(el, bool){	
		if(!$(el)) return false;
		if(bool && ! $(el).progressState){
			var path=nUtils.getScriptPath('nUtils.js');
			var progDiv=document.createElement('div');			
			var pos=el.positionedOffset();
			var dim=Element.getDimensions($(el));
			with(progDiv.style){
				position='absolute';
				background="transparent url("+path+"/img/progress.gif) center no-repeat";
				zIndex=550;
				left=pos[0]+'px';
				top=pos[1]+'px';
				width=dim['width']+'px';
				height=dim['height']+'px';
			}
			Element.setOpacity($(el), 0.5);
			if($(el).nextSibling) el.parentNode.insertBefore(progDiv, el.nextSibling);
			else el.parentNode.appendChild(progDiv);
			$(el).progressState=true;
			$(el).progressDiv=progDiv;
		}else if($(el).progressState){	
			Element.setOpacity($(el), 1);	
			$(el).parentNode.removeChild($(el).progressDiv);
			$(el).progressState=false;
		}
	},
	preloadImg:function(img, func){
		if(img.complete) {
			func();
		}
		else {
			setTimeout(function(){
					nUtils.preloadImg(img, func);
			}, 50);
		}
	}
}
