
/**
Requires:{

	1. Client:{
		1. JQuery
		2. var _init_ = new Array(); + array of scripts, that is evaluated onload
		3. Some Options usualy printed in HTML {
			1. mf_url_ 					- Ajax URL
			2. mf_error_handle_ 		- Where To Put Error Msg
			3. mf_errors_ 				- Error Array {
				sent: Message if email sent succsessfull
				cantSend: Message if failed
				empty: Empty Field Error
				number: Error if field contains not-just-numbers
				length: Minimum length Error
				select: If choosen wrong select value
			}
			4. mf_fields_ 				- All Form Fields (this will be ignored when sending form){
				[field_id]['error']: Must Have Default 0
				[field_id]['number']: Is it number or not(1/0)
				[field_id]['len']: min length(ignored, if 0)
				[field_id]['select']: select value that can't be choosen
			}
			5. mf_on_error_				- function( field_id ) to handle error
			6. mf_on_correct_			- function( field_id, type:1=correct,2=just_focus ) to handle error
			7. mf_on_done_				- function( done ) to handle sent/can't send
			8. mf_fToSend_				- jquery pattern for searching fields

		}
	}
	2. Server:{
		1. Some Ajax stuff
	}
}
*/


// variables
//-------------------------------------------------------------------------------------------------
var _mf_error_handle = null;
var _mf_loader_handle = null;



// Functions
//-------------------------------------------------------------------------------------------------

var mf_init_variables = function( ){
	if( typeof mf_error_handle_ != "undefined" ) _mf_error_handle = $('#'+mf_error_handle_);
	if( typeof mf_loader_ != "undefined" ) _mf_loader_handle = $('#'+mf_loader_);
}
_init_.push('mf_init_variables();');


var mf_check_field = function( id ){
	if( typeof mf_fields_ != "undefined" ){

		var FIELD = document.getElementById( mf_fields_[id]['id'] );
		if( FIELD ) {
			if( FIELD.type == 'select-one' ){
				if( mf_fields_[id]['select'] && FIELD.value == mf_fields_[id]['select'] ){
					mf_fields_[id]['error'] = 'select';
				} else {
					mf_fields_[id]['error'] = -1;
				}
			} else{
				if( FIELD.value == "" || FIELD.value == null ){
					mf_fields_[id]['error'] = 'empty';
				}else if ( mf_fields_[id]['number'] && mf_fields_[id]['number'] == 1 && isNaN(FIELD.value) ){
					mf_fields_[id]['error'] = 'number';
				}else if( mf_fields_[id]['len'] && mf_fields_[id]['len'] != 0 && FIELD.value.length < mf_fields_[id]['len'] ) {
					mf_fields_[id]['error'] = 'len';
				}else{
					mf_fields_[id]['error'] = -1;
				}
			}
			if ( mf_fields_[id]['error'] == -1 ){
				mf_on_correct_( id, 1 );
				return true;
			} else {
				mf_on_error_( id );
				return false;
			}
		}
	}
}

var mf_send_form = function( ){
	if ( typeof mf_url_ != "undefined" ) {

		_mf_loader_handle.fadeIn("fast");
		if ( typeof mf_fields_ != "undefined" ) {
			for( i in mf_fields_ ){
				if( mf_check_field(i) == false ){
					_mf_loader_handle.fadeOut("slow");
					//$('#'+mf_fields_[i]['id']).focus();
					return false;
				}
			}
		}

		var post_data = '';
		$(this).find("input[@checked],input[@type='text'],input[@type='hidden'],input[@type='password'],input[@type='submit'],textarea,select").each(
			function(){
				if(this.name != null && this.name != '' ){
					post_data += this.name + '=' + this.value + '&';
				}
		});
		post_data = post_data.substr(0, post_data.length-1);

		if( post_data != '' ){
			$.ajax({
				url: mf_url_,
				type: "POST",
				data: post_data,
				success: function( data ){
					_mf_loader_handle.fadeOut("slow");
					mf_on_done_( (data.indexOf('+OK') != -1) );
				}
			});
		}
	}
}
