function pause_contact_form(paused) {
    $('send-button').disabled = paused;
	$('fullname').disabled = paused;
	$('email').disabled = paused;
	$('phone').disabled = paused;
	$('message').disabled = paused;
}
function swap_success(e, success) {
    e = $(e)
    if (success) {
        e.removeClass('error');
        e.addClass('success');
    } else {
        e.removeClass('success');
        e.addClass('error');
    }
}
function send_mail_success(responseText, responseXml) {
	pause_contact_form(false);
	
	$('alert').removeClass('hide');
	var alertSlide = new Fx.Slide('alert');
	alertSlide.hide();
	
	scroll(0,200);
	    
	data = Json.evaluate(responseText);
	if (data.status != 'OK') {
	    swap_success('alert', false);
		$('alert').innerHTML = data.error;
    	alertSlide.slideIn();
	} else {
	    swap_success('alert', true)
		$('alert').innerHTML = message_sent_message;
    	alertSlide.slideIn();
		$('fullname').value = "";
		$('email').value = "";
		$('phone').value = "";
		$('message').value = "";
	}
}

function send_mail() {
	pause_contact_form(true);
	
	json = Json.toString({
		'fullname':$('fullname').value, 
		'email':$('email').value, 
		'phone':$('phone').value, 
		'message':$('message').value
	});
	var req = new Ajax(
		url='/contact/send/',
		{
		    method: 'post',
		    data: json,
		    onComplete: send_mail_success
	    }
	);
	req.request();
}

function do_search_complete(responseText, responseXml) {
	data = Json.evaluate(responseText);
	if (data) {
	    $('search-results').innerHTML = data.message;
	    swap_success('search-results', (data.status == 'OK'));
	} 
	if (!data) {
	    $('search-results').innerHTML = search_err_message;
	    swap_success('search-results', false);
	}
}
function validate_textbox(el) {
	if (!el.value) {
		el.addClass('error');
		el.addClass('formerror');
		return false;
	} else {
	    el.removeClass('error');
	    el.removeClass('formerror');
	}
	return true;
}

function do_search() {
	var valid_phone = validate_textbox($('camp_search_phone'));
	var valid_email = validate_textbox($('camp_search_email'));	
	var valid_name = validate_textbox($('camp_search_name'));
	var valid_org = validate_textbox($('camp_search_church'));
	
	if (!(valid_phone && valid_email && valid_name && valid_org))
		return false;
	
	$('search-form').addClass('hide');
	$('search-results').removeClass('hide');
	
	var json = Json.toString({
		'camp_search_name':$('camp_search_name').value, 
		'camp_search_church':$('camp_search_church').value, 
		'camp_search_phone':$('camp_search_phone').value, 
		'camp_search_email':$('camp_search_email').value, 
		'camp_search_city':$('camp_search_city').value, 
		'select_camp_season':$('select_camp_season').value, 
		'check_camp_has_kitchen':$('check_camp_has_kitchen').checked, 
		'check_camp_has_programming':$('check_camp_has_programming').checked, 
		'check_camp_has_hiking':$('check_camp_has_hiking').checked, 
		'check_camp_has_soccer':$('check_camp_has_soccer').checked, 
		'check_camp_has_boating':$('check_camp_has_boating').checked, 
		'check_camp_has_swimming':$('check_camp_has_swimming').checked, 
		'check_camp_has_teambuilding':$('check_camp_has_teambuilding').checked
	});
	
	var req = new Ajax(url='/camps/search/',
	    {
		method: 'post',
		data: json,
		onComplete: do_search_complete
	    }
	);
	req.request();
}