function createInput(fieldName, labelTxt, type, isRequired) {
	type = type || 'text';
	var field = {};
	if (labelTxt) {
		field.label = document.createElement('label');
		field.label.setAttribute('for', fieldName);
		field.label.id = ('label_' + fieldName);
		field.label.innerHTML = labelTxt + ( (isRequired) ? '*' : '');
	}
	if (type == 'textarea') {
		field.input = document.createElement(type);
		field.input['id'] = fieldName;
		field.input['name'] = fieldName;
	}
	else {
		field.input = document.createElement('input');
		field.input['type'] = type;
		field.input['id'] = fieldName;
		field.input['name'] = fieldName;
	}	
	return field;
}
window.onload = function() {
	var formDiv = document.getElementById('feedback-form');
	formDiv.innerHTML = '<h2>Форма заявки</h2>';
	
	myForm = document.createElement('form');
	myForm['method'] = 'post';
	myForm['action'] = window.location.href + '#feedback';
	
	if (formDiv) {
		formDiv.appendChild(myForm);
		var fieldLabels = [
							//Label text, input name/id, input type, input value, required
						   ['Название сайта или блога', 'siteName', '', '', true],
						   ['URL основного сайта', 'siteUrl', '', '', true],
						   ['Контактная персона', 'FromName', '', '', true],
						   ['Контактный телефон', 'Phone', '', '', true],
						   ['Контактный e-mail', 'FromEmail', '', '', true],
						   ['Предпочтительный идентификатор', 'partnerId'],
						   [false, 'ElementName', 'hidden', 'Feedback'],
						   [false, 'Subject', 'hidden', 'Заявка на Партнерскую программу Ozon.Travel'],
						   [false, 'Body', 'hidden' ]
						   ];
	}
	for (var i=0, l=fieldLabels.length; i<l; i++) {
		var type = fieldLabels[i][2] || 'text';
		var labelTxt = fieldLabels[i][0];
		var fieldName = fieldLabels[i][1];
		var value = fieldLabels[i][3] || '';
		var isRequired = fieldLabels[i][4] || false;
		var myInput = createInput(fieldName, labelTxt, type, isRequired);
		if (myInput.label) myForm.appendChild(myInput.label);
		myInput.input.value = value;
		myForm.appendChild(myInput.input);		
	}
	var comment = createInput('comment', 'Комментарий', 'textarea');
	myForm.appendChild(comment.label);
	myForm.appendChild(comment.input);
	
	var note = document.createElement('p');
	note.innerHTML = '* Поле обязательно для заполнения';
	myForm.appendChild(note);
	
	var submit = document.getElementById('submit');
	if (!submit) {
		submit = createInput('submit', false, 'submit');
		submit.input.value = 'Подтвердить';
		myForm.appendChild(submit.input);
	}
	else {
		submit.onclick = function() {
			var result = myForm.onsubmit();
			if (result) myForm.submit();
		}
	}
	submit.setAttribute('disabled', 'disabled');
	
	var agreeChk = createInput('agree', 'Пожалуйста, прочитайте внимательно следующие утверждения и, если Вы с ними согласны, поставьте галочку', 'checkbox');
	myForm.appendChild(agreeChk.input);
	myForm.appendChild(agreeChk.label);
	
	agreeChk.input.onclick = function() {
		if(agreeChk.input.checked) {
			submit.removeAttribute('disabled');
		}
		else {
			submit.setAttribute('disabled', 'disabled');
		}
	}
	
	
	myForm.onsubmit = function() {
		var err = '';
		this.Body.value = this.comment.value;
		this.Body.value += '\n--';
					
		for (var i=0, l=this.length; i<l; i++){
			if (this.elements[i].type == 'text') {
				if(fieldLabels[i][4] && this.elements[i].value == '') {
					err = 'Пожалуйста, заполните поле: ' + fieldLabels[i][0];
				}
				else if (this.elements[i].id == 'FromEmail') {
					var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
					if( !pattern.test( this.elements[i].value ) ) {
						err = 'Неправильно указан e-mail!';                
					}
				}
				if (!!err) {
					alert(err);
					this.elements[i].focus();
					return false;
					break;
				}
				else {
					this.Body.value += '\n' + fieldLabels[i][0] + ': ' + this.elements[i].value;
				}
			}
		}
		return true;
	}
}
