String.prototype.ucFirst = function () {
    return this.substr(0,1).toUpperCase() + this.substr(1,this.length);
};

$(document).ready(function() {
    //$('.validate').attr('onblur', 'validate(this);');
    $('.obligatoryLabel').append(' <span style="color:red;">*</span>');
    $(':submit').attr('onclick', 'return checkObligatory(this.form);');
});

function validate(elm) {
	var name = $(elm).attr('name');
	jQuery.ajax({
		url: 'index.php?page=validate' + name.ucFirst(),
		type: 'POST',
		dataType: 'html',
		data: $('.validate').serialize(),
		success: function(msg) {
			$('#' + name + 'Msg').html(msg);
		}
	});
}

function checkObligatory(form) {
	if (doCheckObligatory($('.obligatory'))) {
		alert('Nejsou vyplněny všechny povinné údaje');
		return false;
	}
	return true;
}

function doCheckObligatory(obl) {
	return obl.filter(':input[value=""]').size() > 0
		|| obl.filter(':input[value=0]').size() > 0
		|| obl.filter(':checkbox[checked=false]').size() > 0
		|| (obl.filter(':radio').size() > 0
			&& obl.filter(':radio[checked=true]').size() == 0
		)
	;
}

function confirmAction(confirmText) {
	if (confirm(confirmText)) {
		return true;
	}
	return false;
}

function showInfo(objectId) {
	changeObjectVisibility(objectId, 'visible');
}

function hideInfo(objectId) {
	changeObjectVisibility(objectId, 'hidden');
}

function getStyleObject(objectId) {
	return document.getElementById(objectId).style;
} 

function changeObjectVisibility(objectId, newVisibility) {
    getStyleObject(objectId).visibility = newVisibility;
}

function changeObjectDisplay(objectId, newDisplay) {
    getStyleObject(objectId).display = newDisplay;
}

function jobfavouriteAdd(jobId) {
	var alerts = {
		error : 'Nastaly technické potíže, kontaktujte IT oddělení.'
      , duplicity : 'Tuto nabídku již máte v oblíbených'
      , old : 'Tato nabídka již neexistuje.'
      , denied : 'Tato funkce je pouze pro registrované uživatele.'
	};
	jQuery.ajax({
		url: 'index.php?page=favouriteAdd&jobId=' + jobId,
		type: 'POST',
		dataType: 'html',
		data: $('.jobfavouriteAdd').serialize(),
		success: function(msg) {
			button_status = 'visible';
			if (msg in alerts) {
	            alert('Nelze přidat nabídku do oblíbených.' + alerts[msg]);
	        } else {
	        	changeObjectDisplay('job' + jobId, 'none');
	        	changeObjectDisplay('jobFavourite' + jobId, 'inline');
		        alert('Nabídka práce byla přidána do oblíbených.');
	        }
		}
	});
}

function missingServis() {
	alert('Omlouváme se ale tato služba je zatím v přípravě.');
}

