//łłąśłśó
Util={};

Util.path = (function(){
	var loc=window.location+"";
	var path=loc.match( /http:\/\/([^\/\\]*)\/([^\/\\]*)\/([^\/\\]*)\// )?"../../../":"";
	return path;
	//if(loc.match( /meteor24\.pl/ )){	document.domain = "meteor24.pl"; }
})();


Util.loadjscssfile = function(filename, filetype){
	if (filetype=="js"){ //if filename is a external JavaScript file
		var fileref=document.createElement('script');
		fileref.setAttribute("type","text/javascript");
		fileref.setAttribute("src", filename);
	}
	else if (filetype=="css"){ //if filename is an external CSS file
		var fileref=document.createElement("link");
		fileref.setAttribute("rel", "stylesheet");
		fileref.setAttribute("type", "text/css");
		fileref.setAttribute("href", filename);
	}
	if (typeof fileref!="undefined"){
		document.getElementsByTagName("head")[0].appendChild(fileref);
	}
};






Util.alert=function(param){
	var icons = {
		warning : "gfx/icons/warning.png",
		info : "gfx/icons/info.png"
	}

	if(typeof(param.title) == 'undefined'){
		param.title = 'UWAGA';
	}
	
	if(1){	
		Util.overlay.display(true);
		
		var iconHtml = typeof(param.icon) === 'undefined' ? '<img class="alertContentIcon" src="'+icons.warning+'"/>' : (param.icon ? '<img class="alertContentIcon" src="'+icons[param.icon]+'"/>' : '' );
		var html = '<div class="alertWrapper roundedCorners" ><div class="alertTitleWrapper roundedCornersTop"><span class="alertCloseB">X</span><div class="alertTitle"></div> </div><div class="alertContentWrapper">'+iconHtml+'<div class="alertContent"></div></div></div>';
		$(document.body).append(html);	
		var alertWrapper = $('.alertWrapper');
		alertWrapper.find('.alertContent').html(param.text);
		alertWrapper.find('.alertTitle').html(param.title);
		alertWrapper.fadeIn();
				
		//pozycjonowanie alertu
		var bodyWidth = $('body').width();
		var bodyHeight = $('body').height();		
		var panelWidth = alertWrapper.width();
		var panelHeight = alertWrapper.height();	
		var scrollOffset = Util.getScrollOffset();		
		var topOffset = scrollOffset.y+200;
		var leftOffset = bodyWidth/2 - panelWidth/2;
		alertWrapper.css({ left : leftOffset, top: topOffset});	
			
		alertWrapper.find('.alertCloseB').click(function(){ 
			alertWrapper.fadeOut(function(){ alertWrapper.remove(); Util.overlay.display(false); }); 			
			if ($.isFunction(param.callback)) {
				callback.apply();
			}			
		});		
	} else {
		alert(param.text);
		if ($.isFunction(param.callback)) {
			callback.apply();
		}
		
	}								 
};

	/* ustawia overlay */
Util.overlay = (function(){
	var opt={
		overlayID : 'custom-background-overlay',
		zIndex : 199,
		color : 'white',
		opacity : 0.5
	};
	

	var overlay = null;
	
	var setSize = function(){
		var width = $('body').width();
		var height = $('body').height();
		$('#'+opt.overlayID).css({'width': width, 'height' : height});
	};
	
	
	return {
		display : function(b){
			if(!document.getElementById(opt.overlayID)){
				var html = '<div id="'+opt.overlayID+'" style="background:'+opt.color+'; z-index:'+opt.zIndex+'; display:none; position: absolute; top:0; left:0;  _filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5;"></div>';
				$('body').append(html);
				$(window).resize(setSize);
			}
			setSize();
			overlay = $('#'+opt.overlayID);
			if (b){
				overlay.show();
			} else {
				overlay.hide();
			}
		}
	};
})();


Util.getScrollOffset = function(parent) {
	var offset = {x:0, y:0};		
	var doc = parent ? parent.document : document;
	var win = parent ? parent.window : window;

	if (doc.documentElement && doc.documentElement.scrollTop) {
		offset.y = doc.documentElement.scrollTop;
		offset.x = doc.documentElement.scrollLeft;
	} else if (doc.body) {
		offset.y = doc.body.scrollTop;
		offset.x = doc.body.scrollLeft;
	} else if (win.innerHeight) {
		offset.y = win.pageYOffset;
		offset.x = win.pageYOffset;
	}
	return offset;
};

Util.hasProperty = function(o, notEmpty){
	var has = false;
	for (var prop in o) {
		has = (typeof(notEmpty)!='undefined' && notEmpty) ?  !!o[prop] : true;
	}
	return has;
};


Util.isFloat = function(l){
	return l.match(/^\d+(\.\d+)?$/);
};

Util.isInt = function(l){
	return l.match(/^\d+$/);
};

Util.cenaOK = function(l){
	return l.match(/^\d+(\.\d+)?$/) && l>0;
};

Util.dataMySQLOK = function(l){
	return l.match(/^\d{4}-\d{2}-\d{2}$/);
};

Util.trim = function(str, chars) {
	return Util.ltrim(Util.rtrim(str, chars), chars);
}
 
Util.ltrim = function(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
Util.rtrim = function(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


		// sprawdza ilość cyfr w
Util.iloscCyfr = function(s){
	var licznik=0;
	for (var i=0; i<s.length; i++)
	{
		if (!isNaN(s[i])) licznik++;
	}
	return licznik;
};



Util.AIM = {
 
	frame : function(c) {
 
		var n = 'f' + Math.floor(Math.random() * 99999);
		var d = document.createElement('DIV');
		d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="Util.AIM.loaded(\''+n+'\')"></iframe>';
		document.body.appendChild(d);
 
		var i = document.getElementById(n);
		if (c && typeof(c.onComplete) == 'function') {
			i.onComplete = c.onComplete;
		}
 
		return n;
	},
 
	form : function(f, name) {
		f.setAttribute('target', name);
	},
 
	submit : function(f, c) {
		Util.AIM.form(f, Util.AIM.frame(c));
		if (c && typeof(c.onStart) == 'function') {
			return c.onStart();
		} else {
			return true;
		}
	},
 
	loaded : function(id) {
		var i = document.getElementById(id);
		if (i.contentDocument) {
			var d = i.contentDocument;
		} else if (i.contentWindow) {
			var d = i.contentWindow.document;
		} else {
			var d = window.frames[id].document;
		}
		if (d.location.href == "about:blank") {
			return;
		}
 
		if (typeof(i.onComplete) == 'function') {
			i.onComplete(d.body.innerHTML);
		}
	} 
};

Util.findPosition=function ( oElement ) {
	if( typeof( oElement.offsetParent ) != 'undefined' ) {
		for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
			posX += oElement.offsetLeft;
			posY += oElement.offsetTop;
		}
		return {x:posX, y :posY };
	} else {
		return {x: oElement.x, y: oElement.y};
	}
};


Util.limitString = function(string, limit, dots){
	return string.length<limit ? string : string.substr(0,limit)+(typeof(dots)!='undefined' && dots ? '...' : '');
};

Util.czyIE = function(){
	return document.all&&!window.opera?true:false;
};


Util.czyIE6 = function(){
	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var f = false;
	if(b_version.indexOf('MSIE 6.0') >1){
		f=true;
	}
	var version=parseFloat(b_version);	
	return browser == "Microsoft Internet Explorer" && version<5 && f;	
};


Util.getData = function(key){
	var dataInput = $('#JSdataContener .'+key);
	return dataInput.length>0 ? dataInput.val() : false;
};

Util.setData = function(key, value){
	$('#JSdataContener .'+key).val(value);
};


Util.ping = function(url){
	$('body').append('<img src="' + url + '" />');
};
