
	function forms_setError(form, field_name, str)
	{
		var el = form.elements.namedItem(field_name);
		var div = el.parentNode;
		forms_setError2(div,str);
	}

	function forms_setError2(div, str)
	{		
		var lb_list = div.getElementsByTagName("label");
		if ( !lb_list ) return;
		
		var lb = lb_list[0];
		if ( !lb ) return;
		
		var em_list = lb.getElementsByTagName("em");
		if ( !em_list ) return;
		
		var em = em_list[0];
		if ( !em ) return;
		
		if ( str )
		{
			lb.id = "with_error";
			div.className = "form_field_error";
		}
			else
		{
			lb.id = "";
			div.className = "form_field";
		}
		 
		em.innerHTML = str;
	}
	
	function form_clearErrors( form )
	{
		for(var i=0;i<form.elements.length;i++)
		{
			var el = form.elements.item(i);
			if ( el.parentNode.tagName.toLowerCase() == 'div' ) forms_setError2( el.parentNode, "" );
		}
	}
	
	function AjaxAddFormFields(ajax, form)
	{
		for(var i=0;i<form.elements.length;i++)
		{
			var e = form.elements[i];
            switch (e.type)
            {
                case "text":
                case "password":
                case "hidden":
                case "textarea":
                    ajax.addParameter(e.name, e.value);
				break;
				
                case "select-one":
                    if (e.selectedIndex >= 0) ajax.addParameter(e.name, e.options[e.selectedIndex].value);
				break;
				
                case "select-multiple":
                    for (var nr2 = 0; nr2 < e.options.length; nr2++)
                    {
                    	if (e.options[nr2].selected) ajax.addParameter(e.name, e.options[nr2].value);
                    }
				break;
				
                case "checkbox":
                case "radio":
                	if (e.checked) ajax.addParameter(e.name, e.value);
                break;
            }
		}	
	}
	
	function doSubmit( btn, form, aUrl, validateFunc )
	{
		// funkcja wysylajaca dane formuladza pod zadany URL w celu sprawdzenia poprawnosci danych
		var prevValue = btn.value;
		var ajax = new advAJAX();		
	
		btn.disabled = true;
		btn.value = "Validating...";
		
		// przygotowanie do wysylania								
		// przepisywanie danych z formularza
		AjaxAddFormFields(ajax, form);
		ajax.method = "POST";
		ajax.url = aUrl;
		
		// ustawianie funkcji 
		ajax.onSuccess = function(obj)
		{
			btn.disabled = false;
			btn.value = prevValue;
			
			if ( validateFunc( obj ) ) form.submit();
		}
		ajax.onError = function(obj)
		{
			btn.disabled = false;
			btn.value = prevValue;
		
			alert("Connection error !");
		}
		
		// uruchamianie procesu validacji
				
		ajax.run();
	}
	
	function setSelectValue(aSelect, aVal)
	{
		for(var I in aSelect.options)
		{			
			aSelect.options[I].selected = (aSelect.options[I].value == aVal );
		}
	}
	