function changeOccupation(el) {
	var schoolEl = el.form.elements['school'];
	while(schoolEl.options.length>1) schoolEl.options[1]=null;
	if (el.value=='student') {
		var j = 1;
		for(var i in schools) schoolEl.options[j++] = new Option(schools[i].name,i);
	}
	$(schoolEl).trigger('change.customStyle');
}
function resetSchool(el) {
	$(el.form.elements['school']).val('').trigger('change.customStyle');
}
function changeSchool(el) {
	if (el.value!='') {
		var school = schools[el.value];
		var provinceEl = el.form.elements['province'];
		$(provinceEl).val(school.region).trigger('change.customStyle').trigger('change.mbFormValidate');
		changeProvince(provinceEl);
		$(el.form.elements['city']).val(school.city).trigger('change.customStyle');
	}
}
function changeProvince(el) {
	var cityEl = el.form.elements['city'];
	while(cityEl.options.length>1) cityEl.options[1]=null;
	if (el.value!='') {
		var local_cities = cities[el.value];
		var j=1;
		for(var i in local_cities) cityEl.options[j++] = new Option(i);
	}
	$(cityEl).trigger('change.customStyle');
}

function fieldIndicate($el,valid) {
	var $container = $el.parent('.field-container');
	if (valid) { 
		$container.removeClass('error');
		$el.unbind('change.mbFormValidate');
	}	else {
		var $custom = $el.data('customStyleElement');
		if ($custom && $custom.length>0) $container.width($custom.outerWidth()+2).height($custom.outerHeight());
		$container.addClass('error'); 
		$el.bind('change.mbFormValidate',function(){
			var validator = $($el.attr('form')).data('validator');
			if (validator) validator($el.attr('form'));
			//if($el.val() !== '') { $container.removeClass('error'); $el.unbind('change.mbFormValidate'); }
		});
	}
}	

function formValidate(f) {
	$(f).data('validator',formValidate);
	var $school = $(f.elements['school']);
	var $province = $(f.elements['province']);
	$(f).find('.form-invalid').fadeOut('fast');
	if ($province.val().length == 0) {
		fieldIndicate($school,($school.val().length!=0));
		fieldIndicate($province,false);
		$(f).find('.form-invalid').fadeIn();
		return false;
	}	else {
		fieldIndicate($school,true);
		fieldIndicate($province,true);
		return true;
	}
}

function formDirectionsValidate(f) {
	$(f).data('validator',formDirectionsValidate);
	var errors = 0;
	for(var i=0; i<f.elements.length;i++) if (f.elements[i].type && (f.elements[i].type=='text' || f.elements[i].type=='select-one')) {
		$field = $(f.elements[i]);
		if($field.val().length == 0) {
			fieldIndicate($field,false);
			errors++;
		} else {
			fieldIndicate($field,true);
		}
	}
	if (errors > 0) {
		$(f).find('.form-invalid').fadeIn();
		return false;
	} else {
		$(f).find('.form-invalid').fadeOut('fast');
		return true;
	}
}
		
