function focus_first(form_id) {
	//var f_el = document.forms[0];
	//if(typeof form_id == typeof '') f_el = $(form_id);
	//Form.focusFirstElement(f_el);
}

addLoadEvent(focus_first);

function apply_form_callback(response_text, form, specific_id) {
	
	//alert(response_text);
	var obj = response_text.evalJSON();
	
	if(!specific_id) {
		var clear_msg = $$('.field_message');
		for(var i = 0; i < clear_msg.length; i++) {
			clear_msg[i].innerHTML = '';
		}
	}
	
	if(!obj['load'] || specific_id) {
		
		var field_messages = obj['field_messages'];
		
		if(field_messages) {
			
			for(key in field_messages) {
				try{
					var msg = field_messages[key];
					if(!specific_id)
						$(key + '_message').style.display = 'none';
					$(key + '_message').innerHTML = msg[0];
					if(!specific_id)
						$(key + '_message').appear();
				}catch(e){;}
			}
		}
		
		var errors = obj['errors'];
		if(errors.length > 0 && $('form_errors')) {
			$('form_errors').style.display = 'block';
			var list_el = $$('#form_errors ul');
			list_el = list_el[0];
			list_el.innerHTML = '';
			for(var i = 0; i < errors.length; i++) {
				//alert(list);
				list_el.insert((new Element('li')).insert(errors[i]));
			}
		}
	}
	
	if(obj['load']) {
		form.submit();
	}
	
	return false;
	//return obj['valid'] == 'true';
}

function form_field_check(url, action, id, msg) {
	var pars = "ajax_action=" + action + "&" + $(id).name + "=" + $(id).value;
	
	new Ajax.Request(url,
	{
		method: 'post',
		parameters: pars,
		onSuccess: function(request) {
			apply_form_callback(request.responseText, false, id);
		}
	});
}

function attempt_submit(form, tinymce_name, tinymce_id, sub_form_id) {
	
	var pars = $(sub_form_id).serialize();
	//var pars = sub_form.serialize(); //there is not commit variable on HTTP submit
	
	if(tinymce_name && tinymce_id) {
		var str = tinymce_name + "=" + escape(tinyMCE.get(tinymce_id).getContent());
		var find_pos = pars.indexOf(tinymce_name + "=");
		var ender = pars.indexOf("&",find_pos);
		if(ender == -1) ender = pars.length;
		
		var par_pre = pars.substr(0,find_pos);
		var par_post = pars.substr(ender, pars.length);

		pars = par_pre + str + par_post;
	}
	
	pars = pars.replace("&commit=false","");
	
	pars = pars + "&commit=true";
	
	
	var action = form.action;
	var url = action;
	//if(url.indexOf("http") == 0)
	//	url = base_req;
	
	
		
	//alert(pars);
	new Ajax.Request(url,
	{
		method: 'post',
		parameters: pars,
		onSuccess: function(request) {
			apply_form_callback(request.responseText,form);
		}
	});

	return false; //leave it to the callback to submit the form and advance iff succesful submission
}

function php_urlencode(str) {
	str = escape(str);
	return str.replace(/[*+\/@]|%20/g,
	function (s) {
	switch (s) {
	case "*": s = "%2A"; break;
	case "+": s = "%2B"; break;
	case "/": s = "%2F"; break;
	case "@": s = "%40"; break;
	case "%20": s = "+"; break;
	}
	return s;
	}
	);
}

