function jquery_ajax(url, post_data, callback_function)
{	
	if(post_data == undefined || post_data == false)
		post_data = '';
	if(callback_function == undefined || callback_function == false)
		callback_function = '';

	$.ajax ({
		url: url,
		type: 'post',
		dataType: 'json',
		data: post_data,
		success: eval(callback_function),
		error: ajax_error
	});
	return false;
}

function ajax_error(XMLHttpRequest, textStatus, errorThrown)
{
	message(XMLHttpRequest.responseText);
}

function perform_json_response(json)
{
	if(json.redirect != undefined && json.redirect != '')
	{
		var error = '';
		if(json.error != undefined && json.error != '')
			error = json.error;
		redirect_to(json.redirect, error);
		return true;
	}
	else
	{
		if(json.error != undefined && json.error != '')
		{
			message(json.error);
			return true;
		}
	}

	if(json.assign != undefined)
	{
		$.each(json.assign, function(el_id, html){ 
			$('#'+el_id).html(html);
		});
	}
	
	if(json.assign_value != undefined)
	{
		$.each(json.assign_value, function(el_id, value){ 
			$('#'+el_id).val(value);
		});
	}
	
	return false;	
}

function update_business_block(f_id, bt, b_id)
{	
	var form_id = f_id;
	if(f_id.id != undefined)
		form_id = f_id.id; 
	var formdata = $('#'+form_id).serializeArray();
	var fd = new Array();
	$.each(formdata, function(i, f){
		fd[f.name] = f.value;
	});
	var other_data = '';
	if(bt == 'company_info')
	{
		if($('#cat_ccurl').val() == 'yes')
		{
			fd['change_com_business_url'] = 'yes';
			other_data+='change_com_business_url=yes&';
		}
		$('#cat_ccurl').val('no');
		if($('#c_edit_ccurl').val() == 'yes')
		{
			fd['change_com_business_url'] = 'yes';
			other_data+='change_com_business_url=yes&';
		}
		$('#c_edit_ccurl').val('no');
		er = check_businessname($('#business').val());
		if(!check_show_error(er, 'business'))	return false;
		er = check_address($('#address').val());
		if(!check_show_error(er, 'address'))		return false;
		er = check_address2($('#address2').val());
		if(!check_show_error(er, 'address2'))	return false;
		er = check_city($('#city').val());
		if(!check_show_error(er, 'city'))		return false;
		er = check_state($('#state').val());
		if(!check_show_error(er, 'state'))		return false;
		er = check_zip($('#zip').val());
		if(!check_show_error(er, 'zip'))			return false;
		er = check_phone_part($('#phone_p1').val(), 3);
		if(!check_show_error(er, 'phone_p1'))	return false;
		er = check_phone_part($('#phone_p2').val(), 3);
		if(!check_show_error(er, 'phone_p2'))	return false;
		er = check_phone_part($('#phone_p3').val(), 4);
		if(!check_show_error(er, 'phone_p3'))	return false;
		var tf1 = $('#tollfree_p1').val();
		var tf2 = $('#tollfree_p2').val();
		var tf3 = $('#tollfree_p3').val();	
		if(tf1 == '' && tf2 == '' && tf3 == ''){}
		else
		{
			er = check_phone_part(tf1, 3);
			if(!check_show_error(er, 'tollfree_p1'))	return false;
			er = check_phone_part(tf2, 3);
			if(!check_show_error(er, 'tollfree_p2'))	return false;
			er = check_phone_part(tf3, 4);
			if(!check_show_error(er, 'tollfree_p3'))	return false;
		}		
		if(!check_email($('#email').val()))
		{
			if(!check_show_error('Please, enter valid email or check generate random email', 'email'))	return false;
		}
		else
			check_show_error(false, 'email');
		er = check_contact_name($('#contact_f_name').val(), "First");
		if(!check_show_error(er, 'contact_f_name'))		return false;
		er = check_contact_name($('#contact_l_name').val(), 'Last');
		if(!check_show_error(er, 'contact_l_name'))		return false;		
	}
	if(bt == 'mojo' || bt == 'hours' || bt == 'prices' || bt == 'paymentmethods')
	{
		var title = fd[bt+'_title'];
		if(title == '')
			er = 'Block title shoul not be empty';
		else
			er = false;			
		if(!check_show_error(er, bt+'_title'))	return false;
	}
	if(bt == 'mojo')
	{
		fck_t = FCKeditorAPI.GetInstance('mymojo').GetXHTML();
		fd['mymojo'] = fck_t;
		other_data+='mymojo='+encodeURIComponent(fck_t)+'&';
	}
	loading();
	fdata = $.param(formdata);
	var post_data = {'form_data':fdata,'other_data':other_data,'block_type':bt,'block_id':b_id};  
	jquery_ajax(site_url+'ajax/update_business_block', post_data, 'update_business_block_results');
	return false;
}

function update_business_block_results(json)
{
	if(perform_json_response(json))
		return false;
	show_hide_edit_business_block(json.block_id, 'hide');
	message(json.message);
	if(json.block_type == 'social')
		init_pretty_tooltip();
}


function update_business_tab(f_id, t_t, t_id)
{
	var form_id = f_id;
	if(f_id.id != undefined)
		form_id = f_id.id; 
	var formdata = $('#'+form_id).serializeArray();
	var fd = new Array();
	$.each(formdata, function(i, f){
		fd[f.name] = f.value;
	});
	var other_data = '';
	if(t_t == 'overview')
	{
		var fck_c = FCKeditorAPI.GetInstance('btab_overview_text').GetXHTML();
		fd['summary'] = fck_c;
		other_data+='summary='+encodeURIComponent(fck_c)+'&';
	}
	if(t_t == 'btab')
	{
		var e = check_tab_title_name(fd['btab_title']);
		if(!check_show_error(e, 'btab_'+t_id+'_title'))	return false;
		var fck_t = FCKeditorAPI.GetInstance('btab_'+t_id+'_text').GetXHTML();
		fd['btab_text'] = fck_t;
		other_data+='btab_text='+encodeURIComponent(fck_t)+'&';
	}
	loading();
	fdata = $.param(formdata);
	var post_data = {'form_data':fdata,'other_data':other_data,'tab_type':t_t,'tab_id':t_id};  
	jquery_ajax(site_url+'ajax/update_business_tab', post_data, 'update_business_tab_results');
	return false;
}

function update_business_tab_results(json)
{
	if(perform_json_response(json))
		return false;
	show_hide_edit_business_tab(json.tab_id, 'hide');
	message(json.message);
}


function add_business_tab(new_title, new_text)
{
	var data = 'title='+encodeURIComponent(new_title)+'&text='+encodeURIComponent(new_text);
	var post_data = {'data':data};
	jquery_ajax(site_url+'ajax/add_business_tab', post_data, 'perform_json_response');
	return false;	
}


function remove_business_tab(tab_id)
{
	if(confirm('Are you sure you want to delete this tab and all of its content?'))
	{
		$('#btab_li_'+tab_id).remove();
		$('#business_tab_'+tab_id).remove();
		var $tabs = $('#block_tabs').tabs(); // first tab selected
		$tabs.tabs('select', 0); // switch to third tab
		var post_data = {'tab_id':tab_id};
		jquery_ajax(site_url+'ajax/remove_business_tab', post_data, 'perform_json_response');
		return false;
	}
}


function sort_simple_blocks()
{
	var blocks = '';
	$("div.sblocks_column div.portlet").each(
		function(i){
			blocks+=i+'='+encodeURIComponent(this.id)+'&';
		}
	);
	
	c_id = $('#business_id').val();
	
	var post_data = {'blocks':blocks,'com_id':c_id};  
	jquery_ajax(site_url+'ajax/sort_simple_blocks', post_data, 'perform_json_response');
	return false;
}

function msb_show_blocks()
{
	var blocks = '';
	$('div#manage_blocks_dialog input.sb_cb:checked').each(
		function(i){
			blocks+=i+'='+encodeURIComponent(this.name)+'&';
		}
	);

	c_id = $('#business_id').val();

	var post_data = {'blocks':blocks,'com_id':c_id};  
	jquery_ajax(site_url+'ajax/msb_show_blocks', post_data, 'perform_json_response');	
	return false;
}

function mdragb_show_blocks()
{
	var blocks = '';
	$('div#manage_blocks_dialog input.dragb_cb:checked').each(
		function(i)	{
			blocks+=i+'='+encodeURIComponent(this.name)+'&';
		}
	);
	
	c_id = $('#business_id').val();
	
	var post_data = {'blocks':blocks,'com_id':c_id};  
	jquery_ajax(site_url+'ajax/mdragb_show_blocks', post_data, 'perform_json_response');
	return false;
}

function sort_dragged_blocks()
{
	var c1bs = '';
	$("ul#column1 li.widget").each(
		function(i){
			c1bs+=i+'='+encodeURIComponent(this.id)+'&';
		}
	);
	
	var c2bs = '';
	$("ul#column2 li.widget").each(
		function(i){
			c2bs+=i+'='+encodeURIComponent(this.id)+'&';
		}
	);
	
	c_id = $('#business_id').val();
	
	var post_data = {'column_1_block':c1bs,'column_2_block':c2bs,'com_id':c_id};  
	jquery_ajax(site_url+'ajax/replace_blocks', post_data, 'perform_json_response');
	return false;
}

function remove_checked_photos(c_id)
{
	var ids = '';
	var c = 0;
	$('.remove_photo_checkbox:checked').each(function(i)
	{
		ids+=i+'='+encodeURIComponent(this.value)+'&';
		c = c+1;
	});
	
	if(c > 0)
	{
		var m = 'Are you sure want to remove '+c;
		if(c == 1)
			m = m+' checked photo?';
		else
			m = m+' checked photos?';
		if(confirm(m))
		{
			var post_data = {'media_ids':ids,'media_type':'photo','com_id':c_id};  
			jquery_ajax(site_url+'ajax/remove_media', post_data, 'perform_json_response');
			return false;
		}
	}
	return false;
}

function update_photo_title(photo_id, photo_title)
{
	var post_data = {'photo_id':photo_id,'photo_title':encodeURIComponent(photo_title)};  
	jquery_ajax(site_url+'ajax/update_photo_title', post_data, 'update_photo_title_results');
	return false;
}

function update_photo_title_results(json)
{
	if(perform_json_response(json))
		return false;
	refresh_image_title(json.photo_id, json.new_title);
	message(json.message);
}

function remove_logo(com_id)
{
	var post_data = {'com_id':com_id};  
	jquery_ajax(site_url+'ajax/remove_logo', post_data, 'perform_json_response');
	return false;	
}

function update_twitter_settings(tw_user)
{
	var data = 'tw_user='+encodeURIComponent(tw_user);
	var post_data = {'data':data};  
	jquery_ajax(site_url+'ajax/update_twitter_settings', post_data, 'perform_json_response');
	return false;
}

function services_dialog()
{	
	$("#services_dialog").dialog('open');	
	var post_data = '';
	jquery_ajax(site_url+'ajax/get_category_services', post_data, 'services_dialog_results');
	return false;
}

function get_category_service_attributes(service_id)
{
	var data = 'service_id='+encodeURIComponent(service_id);
	var post_data = {'data':data};
	jquery_ajax(site_url+'ajax/get_category_service_attributes', post_data, 'services_dialog_results');
	return false;
}

function services_dialog_results(json)
{
	if(perform_json_response(json))
		return false;
	bind_attr_checkboxes();
}

function update_attributes(other_services_form)
{
	if(other_services_form == undefined)
		var formdata = $('#service_att').serializeArray();
	else
		var formdata = $('#'+other_services_form).serializeArray();
	fdata = $.param(formdata);
	var post_data = {'data':fdata};
	jquery_ajax(site_url+'ajax/update_service_attributes', post_data, 'perform_json_response');
	return false;
}

function refresh_business_services(com_id)
{
	var post_data = {'com_id':com_id};
	jquery_ajax(site_url+'ajax/refresh_business_services', post_data, 'perform_json_response');
	return false;
}

function open_keys_order()
{
	$("#services_dialog").dialog('close');	
	$("#meta_keys_order_dialog").dialog('open');
	
	var post_data = '';
	jquery_ajax(site_url+'ajax/get_metakeywords_for_ordering', post_data, 'get_metakeywords_for_ordering_results');
	return false;
}

function get_metakeywords_for_ordering_results(json)
{
	if(perform_json_response(json))
		return false;
	$("#sortable_keywords").sortable({ placeholder: "placeholder" });
}

function update_metakeys_order(com_id, mkeysids)
{
	var post_data = {'metakeysids':mkeysids,'com_id':com_id};  
	jquery_ajax(site_url+'ajax/update_metakeys_order', post_data, 'perform_json_response');
	return false;
}

/*****************************************
		CLIENT ACCOUNT SECTION
*****************************************/
function change_account_password(form_id)
{	
	var pass = $('#new_password').val();
	var conf_pass = $('#conf_new_password').val();
	
	if(pass == '')
	{
		check_show_error('Please, enter new password', 'new_password');
		return false;
	}
	else
	{
		var ps = pass.toString( );
		if(ps.length < 6)
		{
			check_show_error('New Password shold have 6 symbols or more', 'new_password');
			return false;
		}
		else
			check_show_error(true, 'new_password');
	}
	
	if(pass != conf_pass)
	{
		check_show_error('New Password and confirm password does not match', 'conf_new_password');
		return false;		
	}
	else
		check_show_error(true, 'conf_new_password');

	var formdata = $('#'+form_id).serializeArray();
	fdata = $.param(formdata);
	var post_data = {'form_data':fdata};
	jquery_ajax(site_url+'ajax/change_account_password', post_data, 'change_account_password_results');

	return false;
}

function change_account_password_results(json)
{
	if(perform_json_response(json))
		return false;
	
	if(json.cse != undefined)
	{
		check_show_error(json.cse.m, json.cse.f);
	}
	
	if(json.message != undefined)
	{
		message(json.message);
		show_hide_block('password_area_showed', 'password_area_hidden');		
	}
}


