/*
	resumeFormClass
	работает по принципу статического класса:
	для работы требует создания одного объекта
*/
var resumeFormClass = function(){
	resumeFormClass.superClass.apply(this, arguments);

	this.ajaxUrls = {
		save: (window.baseURL || '') + "/ajax/users/resume/"
	};
	
	this.xmlResponse = {
		message: {
			node: 'message',
			handler: null
		},

		error: {
			node: 'error',
			handler: 'xmlResponseHandler_error'
		},

		redirect: {
			node: 'redirect',
			handler: 'xmlResponseHandler_redirect'
		}
	};
}

resumeFormClass.inheritsFrom(ajaxFormClass);




Object.extendObject(
	resumeFormClass.prototype, {
	
	sendResume: function(form, submitType) {
		var holders = $(form).getElements('.' + this.classNames.fieldHolder);
		for(var i =0, length = holders.length; i<length; i++) {
			$(holders[i]).removeClass(this.classNames.fieldMarkedError);
		}
		var errors = $(form).getElements('.' + this.classNames.fieldErrorMsgBox);
		for(var k =0, length = errors.length; k<length; k++) {
			errors[k].innerHTML = '';
		}
		this.sendData(form, submitType);
	},
	
	close: function(id) {
		$('job-item-form-' + id).parentNode.removeChild($('job-item-form-' + id));
		return false;
	},
	
	closeEdu: function(id) {
		$('edu-item-form-' + id).parentNode.removeChild($('edu-item-form-' + id));
		// send data
		return false;
	},
	
	add: function() {
		var forms = $('wrapper').getElements('.job-item-form');
		if(forms.length>1) {
			var id = parseInt(forms[forms.length-2].id.replace('job-item-form-', ''));
		}
		else {
			var id = 0;
		}
		id++;
		var form = $('job-item-form-form_id').cloneNode(true);
		$('job-items-holder').appendChild(form);
		$(form).removeClass('hidden');
		form.id =  form.id.replace(/form_id/,id);
		form.innerHTML = form.innerHTML.replace(/form_id/g,id);
		if(document.all) {
			resumeForm.insertDate($('period-month-second-' + (id-1)), id-1, 'month');
			resumeForm.insertDate($('period-year-second-' + (id-1)), id-1, 'year');
		}
		return false;
	},
	
	
	addEdu: function() {
		var forms = $('wrapper').getElements('.edu-item-form');
		if(forms.length>1) {
			var id = forms[forms.length-2].id.match(/\d+/g)[0];
			id = parseInt(id);
		}
		else {
			var id = 0;
		}
		
		id++;
		tm.log(id);
		var form = $('edu-item-form-form_id').cloneNode(true);
		$('edu-items-form-holder').appendChild(form);
		$(form).removeClass('hidden');
		form.id =  form.id.replace(/form_id/,id);
		form.innerHTML = form.innerHTML.replace(/form_id/g,id);
/*		var pyf = $('period-year-first-' + id);
		var pys = $('period-year-second-' + id);
		for (var i=(new Date()).getFullYear();i>=1946;i--) {
			pyf.adopt(new Element('option', {'value':i, 'html':i}));
			pys.adopt(new Element('option', {'value':i, 'html':i}));
		}*/
		return false;
	},

	toggleSecondDateEdu: function(id) {
		if ($('edu-period-present-' + id).checked == true) {
			$('edu-second-date-' + id).addClass('hidden');
		}
		else {
			$('edu-second-date-' + id).removeClass('hidden');
		}
	},
	
	setJobPreferences: function(obj) {
		if (obj.checked == true) {
			$('want-job-preferences-private').addClass('hidden');
			$('want-job-preferences-public').removeClass('hidden');
		}
		else {
			$('want-job-preferences-private').removeClass('hidden');
			$('want-job-preferences-public').addClass('hidden');
		}
	},
	toggleForm: function() {
		if($('job-item-form-1') && !$('job-item-form-1').hasClass('hidden')) {
			$('job-item-form-1').parentNode.removeChild($('job-item-form-1'));
		}
		else {
			resumeForm.add();
		}
	},
	toggleSecondDate: function(id) {
		if ($('period-present-' + id).checked == true) {
			$('second-date-' + id).addClass('hidden');
		}
		else {
			$('second-date-' + id).removeClass('hidden');
		}
	},
	insertDate: function(obj, id, mode) {
		id = parseInt(id);
		id++;
		if($('job-item-form-' + id)) {
			if (mode == 'month') {
				$('period-month-first-' + id).options[obj.selectedIndex].selected = true;
			}
			else if (mode == 'year') {
				$('period-year-first-' + id).options[obj.selectedIndex].selected = true;
			}
		}
		else {
			if (mode == 'month') {
				$('period-month-first-form_id').options[obj.selectedIndex].selected = true;
				$('period-month-first-form_id').options[obj.selectedIndex].defaultSelected = true;
			}
			else if (mode == 'year') {
				$('period-year-first-form_id').options[obj.selectedIndex].selected = true;
				$('period-year-first-form_id').options[obj.selectedIndex].defaultSelected = true;
			}
		}
	},
	// обработчик ответа сервера при ошибке
	xmlResponseHandler_error: function(xmlNodes, params){
		if(xmlNodes.error && xmlNodes.error.length) {
			$(params.form).removeClass(params.loadingClassName);
			$(params.form).removeClass(params.loadingClassName);

			for (var i=0; i<xmlNodes.error.length; i++){
				var fieldMarkedError = params.form[xmlNodes.error[i].getAttribute('code')];
				var errorMessage = xmlNodes.error[i].firstChild ? xmlNodes.error[i].firstChild.data : this.errorMessages.unknownError;

				if(!fieldMarkedError) {
					fieldMarkedError = $(params.form).getElement('.' + this.classNames.unknownErrorMsg);
					fieldMarkedError.innerHTML = errorMessage;
				}
				else {
					var fieldHolder = $(fieldMarkedError).getParent('.' + this.classNames.fieldHolder);
					var error = $(fieldHolder).getElement('.' + this.classNames.fieldErrorMsgBox);
					error.innerHTML = errorMessage;
					window.scrollTo(0,$(error).getPosition().y);
				}
			}
			//this.showError(errorMessage);
		}
	},
	
	showError: function(errorMsg){
		if (!errorMsg) {
			errorMsg = FAT.votings_unknown_error;
		}
		futu_alert(FAT.resume_header, errorMsg, true, 'error');
	}
});


var resumeForm = new resumeFormClass();
