var fnd_main_gui_form={
	displayErr:function(err, form){
		var text='';
		if(err.constructor==String){
			alert(err);
			if(form){
				for(i=0; i<form.elements.length; i++){
					el=form.elements[i];
					$(el).removeClass('xErr');
					$('label[for='+$(el).attr('id')+']').removeClass('xErr');
				}
			}
		}
		else
		{
			if(form){
				for(i=0; i<form.elements.length; i++)
				{
					el=form.elements[i];
					$(el).removeClass('xErr');
					$('label[for='+$(el).attr('id')+']').removeClass('xErr');
					$.each(err,
						function(name, value)
						{
							if($(el).attr('name')==name)
							{
								$(el).addClass('xErr');
								$('label[for='+$(el).attr('id')+']').addClass('xErr');
							}
						}
					)
				}
			}
			$.each(err,
				function(name, value){
					text+=this.title+': '+this.text+"\n";
				}
			)
			alert(text);
		}
	},
	
	submitForm:function(form, url, beforeSubmit, afterSubmit){
		$(form).ajaxSubmit(
			{
				url:url,
				async:false,
				beforeSubmit:function()
				{
					fnd_main_gui.showLoading();
					if(beforeSubmit)
						beforeSubmit.call();
				},
				success:function(result)
				{
					fnd_main_gui.hideLoading();
					if(result['err'])
						fnd_main_gui_form.displayErr(result['err'],form);
					else
					{
						if(result['values'])
						{
							$.each(result['values'],function(key, val)
							{	
								if(!form.elements['__files['+key+']'])
								{
									$(form.elements[key]).val(val);
								}
								else
								{
									$(form.elements['__files['+key+']']).val(val['name']);
									$(form.elements[key]).parent().children('a').attr('href',val['url']+val['name']);
									$(form.elements[key]).parent().children('a').html(val['name']);
									$(form.elements[key]).parent().children('img').attr('src',val['url']+val['prefix']+val['name']+'?rand='+Math.random());
								}
							})
							for(i=0; i<form.elements.length; i++)
							{
								el=form.elements[i];
								$(el).removeClass('xErr');
								$('label[for='+$(el).attr('id')+']').removeClass('xErr');
							}
							
						}
						if(afterSubmit)
							afterSubmit.call();
					}
				}
			}
		)
	}
}