function setFormValidation() {
	var forms = $('form');

	for (var i=0; i< forms.length; i++) {
		$(forms[i]).validate({
			errorElement: 'span',
			focusInvalid: true,
			showErrors: function() {
				this.defaultShowErrors();
				var imgs = $('span.error img');
				for (var i=0;i<imgs.length; i++) {
					if (imgs[i].alt != '')
						$(imgs[i]).tooltip({
							showURL: false
						});

				}
			}
	 	});
	}
}

function setTooltips() {
	var imgs = $('img.tooltip');
	for (var i=0;i<imgs.length; i++) {
		if (imgs[i].alt != '')
			$(imgs[i]).tooltip({
				showURL: false
			});

	}
}

$(document).ready(function() {
	setFormValidation();
	setTooltips();

	if (document.getElementById('systemmessages') != null && document.getElementById('systemmessages').innerHTML != '') {
		$("#systemmessages").fadeOut("fast");
		$("#systemmessages").fadeIn("fast");
		$("#systemmessages").fadeOut("fast");
		$("#systemmessages").fadeIn("fast");
		$("#systemmessages").fadeOut("fast");
		$("#systemmessages").fadeIn("slow");
	}


});

$.validator.messages.required = '<img src="/images/form_required.gif" alt="To pole jest wymagane" title="To pole jest wymagane" width="12" height="12"/>';
$.validator.messages.email = '<img src="/images/form_email.gif" alt="Proszę wprowadzić poprawny adres email" title="Proszę wprowadzić poprawny adres email" width="12" height="12"/>';
$.validator.messages.equalTo = '<img src="/images/form_email.gif" alt="Proszę wprowadzić ponownie ta sama wartość" title="Proszę wprowadzić ponownie ta sama wartość" width="12" height="12"/>';
$.validator.messages.url = '<img src="/images/form_email.gif" alt="Proszę wprowadzić poprawny adres WWW" title="Proszę wprowadzić poprawny adres WWW" width="12" height="12"/>';
$.metadata.setType("attr", "validate");


function validateForm(form) {
	if (!$(form).valid())
		return false;

	return true;
}

sentform = null;

function ajaxSendForm(url, form, operation, force) {
	sentform = form;
	if (!force) {
		if (!$(form).valid()) {
			showMessage('Formularz nie jest poprawnie wypełniony', 3);
			return;
		}
	}
	resetMessage();

	try {
		form[0].operation.value = operation;
	}
	catch (e) {

	}
	showPleaseWait();
	$.post(url, $(form).serialize(), function() {
		hidePleaseWait();
	}, 'script');
}


function resetMessage() {
	document.getElementById('systemmessages').style.display = 'none';
	var visiblewindows = $('.window:visible');
	if (visiblewindows.length == 0) {
		document.getElementById('systemmessages').style.display = 'none';
	}
	else {
		
		var windowmsg = $('.window:visible .window_msg');
		windowmsg[0].style.display = 'none';
		windowmsg[0].style.className = 'window_msg';
	}
}

function showMessage(text, type) {
	var visiblewindows = $('.window:visible');
	
	if (type == null)
		type = 1;
	if (visiblewindows.length == 0) {
		document.getElementById('systemmessages').innerHTML = text;
		document.getElementById('systemmessages').className = 'systemmessages_' + type;
//		document.getElementById('systemmessages').style.display = 'block';
		$("#systemmessages").fadeOut("fast");
		$("#systemmessages").fadeIn("fast");
		$("#systemmessages").fadeOut("fast");
		$("#systemmessages").fadeIn("fast");
		$("#systemmessages").fadeOut("fast");
		$("#systemmessages").fadeIn("slow");
	}
	else {
		var windowmsg = $('.window:visible .window_msg');
		windowmsg[0].innerHTML = text;
		windowmsg[0].className = 'window_msg systemmessages_' + type;
//		windowmsg[0].style.display = 'block';
		windowmsg.fadeOut("fast");
		windowmsg.fadeIn("fast");
		windowmsg.fadeOut("fast");
		windowmsg.fadeIn("fast");
		windowmsg.fadeOut("fast");
		windowmsg.fadeIn("slow");
	}
	window.location.href='#top';
}

function showInfoBox(elementid, title, content) {
	document.getElementById(elementid).innerHTML = '<div><div class="panel_icon"><img title="" alt="" class="image" src="/img/65093.gif"/></div><div class="panel_cnt"><div class="panel_title">' + title + '</div><div class="panel_content">' + content + '<p>&nbsp;</p></div></div></div>';
}

function newOpt(inText,inValue) {
  var myOpt = new Option(inText,inValue)
  return myOpt
}

function ajaxGetListItems(div, page, cmp, params, pagenumber) {
	var parameters = new Object();
	parameters['divid'] = div;
	parameters['page'] = page;
	parameters['cmp'] = cmp;
	parameters['pagenumber'] = pagenumber;
	
	for (var e in params)
		if (typeof(params[e]) != 'function')
			parameters[e] = params[e];
/*
	$(div).update('<div style="text-align: center;"><img src="/images/ajaxload.gif"/></div>');
	new Ajax.Updater(div, '/ajax/list', {
		method: 'post',
		parameters: parameters,
		evalScripts: true
	});	
*/
	$('#' + div).html('<div style="text-align: center;"><img src="/images/ajaxload.gif"/></div>');
	$('#' + div).load('/ajax/list', parameters, function() {
		setTooltips();
		if (typeof(ajaxGetListItemsOnLoad) == 'function') {
			ajaxGetListItemsOnLoad(this.id);
		}
	});
	
}

function defaultAjaxGetItemCallback() {
	setFormValidation();
	setTooltips();
}


function ajaxGetItem(div, page, id, params, callback) {
	var parameters = new Object();
	parameters['page'] = page;
	parameters['id'] = id;

	for (var e in params)
		if (typeof(params[e]) != 'function')
			parameters[e] = params[e];

	var t = window.location.href.split('?');
	if (t.length == 2) {
		t[1] = t[1].replace('#', '');
		var t2 = t[1].split('&');
		for (var i=0;i<t2.length;i++) {
			var t3 = t2[i].split('=');
			parameters[t3[0]] = t3[1];
		}
		
	}
//	$(div).update('<div style="text-align: center;"><img src="/images/ajaxload.gif"/></div>');
//document.getElementById(div).innerHTML = 'qqqq';
	$('#' + div).html('<div style="text-align: center;"><img src="/images/ajaxload.gif"/></div>');
/*	new Ajax.Updater(div, '/ajax/item', {
		method: 'post',
		parameters: parameters,
		evalScripts: true
	});	
*/
	if (callback == null)
		callback = defaultAjaxGetItemCallback;
	$('#' + div).load('/ajax/item', parameters, callback);
}

function ajaxCall(cmp, func, params, form, callback) {
	var parameters = new Object();
	if (form != null)
		parameters = form.serialize(true);

	parameters['cmp'] = cmp;
	parameters['func'] = func;
	
	for (var e in params)
		if (typeof(params[e]) != 'function')
			parameters[e] = params[e];
/*
	new Ajax.Request('/ajax/call', {
		method: 'post',
		parameters: parameters
	});	
*/

	$.post('/ajax/call', parameters, callback, 'script');
}

function getFormValues(form) {
	var result = new Array();
	if (form.indexOf('#') != 0)
		var tform = $('#' + form)[0];
	else
		var tform = $(form)[0];
	for (var i=0; i<tform.elements.length; i++)
		if (tform.elements[i].type == 'checkbox')
			result[tform.elements[i].name] = tform.elements[i].checked;
		else
			result[tform.elements[i].name] = tform.elements[i].value;
//		result[tform.elements[i].name] = tform.elements[i].value;
	return result;
	
}

function setFormValues(form, values) {
	if (values == null)
		return;
	if (form.indexOf('#') != 0)
		var tform = $('#' + form)[0];
	else
		var tform = $(form)[0];

	for (var i=0; i<tform.elements.length; i++) {
		if (tform.elements[i].type == 'checkbox')
			tform.elements[i].checked = (values[tform.elements[i].name] ? true : false);
		else
			tform.elements[i].value = (values[tform.elements[i].name] != null ? values[tform.elements[i].name] : '');
	}

	return true;	
}


function newOpt(inText,inValue) {
	var myOpt = new Option(inText,inValue);
	return myOpt;
}


function showPleaseWait() {	
	var maskHeight = $(document).height();
	var maskWidth = $(window).width();
	
	window.location.href='#top';

	//Set heigth and width to mask to fill up the whole screen
	$('#waitmask').css({'width':maskWidth,'height':maskHeight});			
	$('#waitmask').show();

	var winH = $(window).height();
	var winW = $(window).width();


	var x = winW/2-$('#waitwindow').width()/2
	var y = winH/2-$('#waitwindow').height()/2

	$('#waitwindow').css('top',  y);
	$('#waitwindow').css('left', x);
	
	$('#waitwindow').show(); 
}

function hidePleaseWait() {
	$('#waitmask').hide();
	$('#waitwindow').hide(); 
}

function selectOption(select, value) {
	for (var i=0; i<select.options.length; i++)
		if (select.options[i].value == value)
			select.options[i].selected = true;
}