var loading_mask;

function ajaxGetPage(url,elem_id,get_elem,custom_animation) {
	
	$.ajax({
  		url: url,
  		beforeSend: function(){
     		ajaxLoading(elem_id);
   		},
  		success: function(html){
  		
  			if (custom_animation)
  				ajaxAnimate(elem_id,html,custom_animation);
  			else
     			$("#"+elem_id).html(html);
     		
     		if ($("#"+elem_id).is(':hidden')) {
     			$("#"+elem_id).fadeIn('slow');
     			$("#"+elem_id+' form').submit(
     				function() {
     					$("#"+elem_id).fadeOut('slow');
     				}
     			);
     		}
   		},
   		data: ((get_elem) ? {bypass:1,field_name:$("#"+get_elem).attr('name'),field_value:$("#"+get_elem).attr('value')} : {bypass:1})
		
	});
	return false;
}

function ajaxLoading(elem_id) {

	if (!loading_mask) {
		var loading_animation = 'images/loading.gif';
	
		loading_mask = document.createElement("div");
		loading_mask.id = 'loading_mask';
		loading_mask.innerHTML = '<img src="' + loading_animation + '" />';
	}
	
	$('#'+elem_id).prepend(loading_mask);
	
	if ($('#pm_editor').is(':visible') && (elem_id == 'pm_editor' || elem_id == 'content')) {
		ajaxPmUpdate();
	}
}

function ajaxSave(query,url) {
	url = (url) ? url : 'ajax.save.php';
	
	$.ajax({
  		url: url + '?' + query,
  		success: function(html){
  			messagePop(html);
   		},
   		error: function(status,error) {
   			errorPop(false,'Save failed');
   		}
	});
}

function ajaxDeleteArray(items,delete_controls) {
	var query = 'action=delete';
	if (delete_controls) query += '&delete_controls=true';
	for (table in items) {
		for (id in items[table]) {
			query += '&rows['+table+']['+id+']='+id;
		}
	}
	ajaxSave(query);
}

function ajaxDelete(table,id,subtable,f_id_field,filename,dir) {
	subtable = (subtable == undefined) ? '' : subtable;
	f_id_field = (f_id_field == undefined) ? '' : f_id_field;
	filename = (filename == undefined) ? '' : filename;
	dir = (dir == undefined) ? '' : dir;
	
	ajaxSave('action=delete&table='+table+'&id='+id+'&subtable='+subtable+'&f_id_field='+f_id_field+'&filename='+filename+'&dir='+dir);
}

function ajaxDeleteFile(filename) {
	ajaxSave('action=delete_file&filename='+filename);
}

function ajaxPmUpdate() {
	var query = '';
	
	if ($('.pm_class_container #form_table').length > 0) {
		var table = $('.pm_class_container #form_table').attr('value');
		
		query += 'action=check_table&table='+table;
		$('.pm_class_container .form_db_field').each(function () {
			query += '&'+$(this).attr('name')+'='+$(this).attr('value');
		});
		$('.pm_class_container .form_radio_inputs').each(function () {
			query += '&'+$(this).attr('name')+'='+$(this).attr('value');
		});
	}
	$('.pm_class_container .pm_method').each(function (i) {
		query += '&l_order[admin_controls_methods]['+i+']='+$(this).children('#id').attr('value');
	});
	$('.pm_class_container').each(function (i) {
		query += '&l_order[admin_controls]['+i+']='+$(this).attr('id').replace('control_','');
	});
	
	if (query.length > 0) 
		ajaxSave(query);
}