var buffer = new Array();
var BOT = null;

$(document).ready(function(e){
	var url = $('input[name=index_interface]').val();
	BOT = new index_interface(url);
	
	function article_reload(_target, _id) {
		var query= new Object();
		data = new Object();
		data.id = _id;
		
		query.data = data;
		var callback = function(_return) {
			$(_target).html(_return);
		};
		
		BOT.query('article', query, callback);		
	}
	
	$('.form .form_button').live('click', function(e){
		var submit_data = new Object();
		$(this).children('input').each(function(e){
			submit_data[$(this).attr('name')]=$(this).val();
		});
		
		if(submit_data['action']=='form_submit'){
			var f_method = $('#'+submit_data['hash']+' form').attr('method');
			var f_interface = $('#'+submit_data['hash']+' form').attr('action');
			
			if(f_method=='POST') {
				$('#'+submit_data['hash']+' form').submit();
			}else if(f_method == 'AJAX') {
				
				var data = new Object();
				$('#'+submit_data['hash']+' .form_input input').each(function(e) {
					data[$(this).attr('name')] = $(this).val();
				});
				
				var f_settings = new Object();
				$('#'+submit_data['hash']+' .form_settings input').each(function(e) {
					f_settings[$(this).attr('name')] = $(this).val();
				});
				
				if(f_settings['action']=='reload') {
					if($('.item_setup_wrapper').attr('id')!=undefined) {

						var rid = $('.item_setup_wrapper').has('#'+submit_data['hash']+'').filter(':last').attr('id').replace(/\D/gi, '');
					}

					var callback = function(_return) {
						if(_return=='SUCCESS') {
							if($('.item_setup_wrapper').attr('id')==undefined) {
								window.location.reload();
							}else{
								var parent = '#'+$('div').has($('.item_setup_wrapper').has('#'+submit_data['hash']+'').filter(':last')).filter(':last').attr('id');
								article_reload(parent, rid);
							}
						}else{
							$('#'+submit_data['hash']+' .form_feedback').html(_return);
						}
					};	
					
					var query = new Object();
					query.data = data;
					
					BOT.query(f_interface, query, callback);	
					
				}else {
					var query = new Object();
					data.settings = f_settings;
					query.data = data;
					
					var callback = function(_return) {
						if(_return=='RELOAD') {
							window.location.reload();
						}else{
							$('#'+submit_data['hash']+' .form_feedback').html(_return);
						}
					};					
					
					BOT.query(f_interface, query, callback);	
				}			
			}
		}
	});
});



// GENERIC HELPER FUNCTIONS
function trim(str) {
	myStr = str.replace(/^\s+/, '').replace(/\s+$/, '');
	return myStr;
}



