jQuery.fn.exists = function(){return jQuery(this).length>0;} 


function smartRedirect( url ) {
	if( url != "" ) {
		setTimeout( "document.location.href='"+url+"';", 2000 );
	}
}

var zmienionoUprawnienia = false;

function uprawnieniaZmieniono() {
	if( !zmienionoUprawnienia ) {
		pokazButtony();
	}
	zmienionoUprawnienia = true;
}

function wylaczPrzekierowanie() {
	zmienionoUprawnienia = false;
}

function isNumeric(expression) {
	var nums = "0123456789";
	if (expression.length==0)
		return false;
	for (var n=0; n < expression.length; n++)
	{
		if(nums.indexOf(expression.charAt(n))==-1)
			return false;
	}
	return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
var letter = email.charAt(i).toLowerCase();
if (validchars.indexOf(letter) != -1)
  continue;
parsed = false;
break;
  }
  return parsed;
}

function isValidEmail(email, required) {
	if (required==undefined) {   // if not specified, assume it's required
		required=true;
	}
	if (email==null) {
		if (required) {
			return false;
		}
		return true;
	}
	if (email.length==0) {  
		if (required) {
			return false;
		}
		return true;
	}
	if (! allValidChars(email)) {  // check to make sure all characters are valid
		return false;
	}
	if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
		return false;
	} else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
		return false;
	} else if (email.indexOf("@") == email.length) {  // @ must not be the last character
		return false;
	} else if (email.indexOf("..") >=0) { // two periods in a row is not valid
		return false;
	} else if (email.indexOf(".") == email.length) {  // . must not be the last character
		return false;
	}
	return true;
}

/* AJAX */


var actualLink;
var actualContainer;

function loadAjaxPage( linkURL, containerID ) {
	actualLink = linkURL;
	actualContainer = containerID;
	$.ajax({
		url: linkURL,
		success: function(msg){
			$("#"+containerID).html( msg );
		}
	});
}

function loadAjaxJSPage( linkURL, containerID ) {
	actualLink = linkURL;
	actualContainer = containerID;
	$.ajax({
		url: linkURL,
		dataType: "html",
		success: function(msg){
			if( msg.length > 0 ) {
				$("#"+containerID).html( msg );
			}
		}
	});
}

function countChars( elemID, max ) {
	var text = $("#"+elemID).val();
	var len = "0";
	if (text.length > 0){
		if (text.length > max && max > 0){
			var len = '<span style="color: red">'+text.length+'</span>';
		} else {
			var len = text.length;
		}
	} 
	$("#"+elemID+"-chars").html(len);
}

function checkUnique(table, field, name, edit){
	var elem = $("#"+field).val();
	loadAjaxPage('/ajax/check_unique.html?table='+table+'&field='+field+'&name='+name+'&elem='+elem+'&edit='+edit, field+'-unique_info');
}


function doPopup(pageName) {
	newwindow=window.open( '/popup/'+pageName+'.html','popup','height=525,width=691,scrollbars=yes');
	if (window.focus) {newwindow.focus()};
}

//AJAX LOGIN
function ajaxLogin(where) {
	var luser = jQuery("#luser-"+where).val();
	var lpass = jQuery("#lpass-"+where).val();
  	jQuery.ajax({
			  	type: "POST",
				url:  '/ajax/login.html?login',
				data:  "luser="+luser+"&lpass="+lpass,
				success: function(msg){
					if (msg.substr(0,2) != "OK"){
						jQuery("#login_komunikat-top").fadeIn(300);
						jQuery("#login_komunikat-"+where).html(msg);
						jQuery("#lpass-top").val("");
						jQuery("#luser-top").focus();
						setTimeout('clearLoginKomunikat();', 5000);
						return false;
					} else {
						document.location.reload();
					}
				}
});
return;
}

function clearLoginKomunikat() {
	jQuery("#login_komunikat-top").fadeOut(300);
}

function errorHandlerExecute(){
	var errInfo = '';
	for (i=0; i<ErrorHandler.length; i++){
		errInfo = '<ul>\n';
		for (j=0; j<ErrorHandler[i][1].length; j++){
			errInfo = errInfo+'<li>'+ErrorHandler[i][1][j]+'</li>\n';
		}
		errInfo = errInfo + '</ul>\n';
		jQuery("#error-"+ErrorHandler[i][0]).show();
		jQuery("#error-"+ErrorHandler[i][0]).html(errInfo);
	}
}


var calOpen = false;

function loadCalendar( object, personId ) {
	var dims = $(object).position();
	$('.userscal').hide();
	$('.userscalnoentry').hide();
	$('.user_'+personId).show();
	if( !$('.user_'+personId).exists() ) {
		$('.userscalnoentry').show();
	}
	$('#overlay').css( 'top', (dims.top+12)+'px' );
	if ($('#overlay').is(":visible")) {
		$('#overlay').hide();
	} else {
		$('#overlay').show();
	};
	
	setTimeout( 'calOpen = true;', 200 );
}

function hideCalendar() {
	if( calOpen ) {
		$('#overlay').hide();
		calOpen = false
	}
}

function pokazMape() {
	$('#mapa_overlay').show().css("margin-top", $('#mapa_overlay').height() / 2 * (-1));
}

function schowajMape() {
	$('#mapa_overlay').hide();
	return false;
}


