objects = [];
objects['name'] = 'Enter your name.';
objects['surname'] = 'Enter your surname.';
objects['names'] = 'Enter your name and surname.';
objects['email'] = 'Enter your e-mail address.';
objects['currentPassword'] = 'Due to security reasons, you have to your enter password to be able to update you profile.';
objects['password'] = 'Enter password containing at least 6 characters.';
objects['password2'] = 'Retype password.';
objects['mobile'] = 'The correct phone number is composed of 9 digits,<br/>without 0 and prefixes, e.g. 789456123.';
objects['telephone'] = 'The correct phone number is composed of 9 digits,<br/>without 0 and prefixes, e.g. 123456789.';
objects['postCode'] = 'Enter postal code.';
objects['package'] = 'Enter 24-digit parcel code.';
objects['noLetter'] = 'Enter your message.';
objects['www'] = 'Enter website address.';
objects['position'] = 'Enter position you hold.';
objects['company'] = 'Enter the name of the company.';
objects['city'] = 'Enter city name.';
objects['shop'] = 'Enter shop name.';
objects['nip'] = 'Enter Tax Identification Code (NIP).';
objects['street'] = 'Enter street name.';
objects['building'] = 'Enter house number.';
objects['flat'] = 'Enter flat number.';
objects['account'] = 'Enter account number.';
objects['registeredEmail'] = 'Enter registered e-mail address.';
objects['verify'] = 'Enter the verification code that was sent to you via e-mail.';
objects['login'] = 'Enter your log-in e-mail.';
objects['promotion'] = 'Enter promotion code (if applicable).';
objects['referer'] = 'Enter the code of the recommending person.';

function switchStyleClass(objectId, typeId) {
	
	switch(typeId) {

		case -1:
			document.getElementById(objectId + 'Input').className = 'imput';
			document.getElementById(objectId + 'Div').className = '';
			break;

		case 0:
			document.getElementById(objectId + 'Input').className = 'imput_fokus';
			document.getElementById(objectId + 'Div').className = 'login';
			break;

		case 1:
			document.getElementById(objectId + 'Input').className = 'imput_fokus_error';
			document.getElementById(objectId + 'Div').className = 'login_error';
			break;

		case 2:
			document.getElementById(objectId + 'Input').className = 'imput_fokus_ok';
			document.getElementById(objectId + 'Div').className = 'login_ok';
			break;

	}

}

function setComponentProperty(objectId, typeId, message) {
	switchStyleClass(objectId, typeId);
	document.getElementById(objectId + 'Div').innerHTML = message;
}

function setComponentCommonInfo(objectId) {
	setComponentProperty(objectId, 0, objects[objectId]);
}

function setComponentInfo(objectId, messageId) {
	setComponentProperty(objectId, 0, objects[messageId]);
}

function selectOptionByValue(objname,val) {
	obj = document.getElementById(objname);
	for (i=0;i<obj.options.length;i++) {
		if (obj.options[i].value==val) obj.options.selectedIndex=i;
	}
}

function doNothing() {	
}

function getHTTPObject() {
	if (typeof XMLHttpRequest != 'undefined') {
		return new XMLHttpRequest();
	} try {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	}
	return false;
}

function limitMachinesFromCity(city) {

	http = getHTTPObject();
	var url = "includes/registrationHelper.php";
	var params = "city=" + escape(city);

	http.open("POST", url, true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			document.getElementById('machines').innerHTML=http.responseText;
		}
	};

	http.send(params);
}

function validateNotNullNames() {
	return validate('notNullNames', document.getElementById('namesInput').value, 'names');
}

function validateNotNullRegisteredEmail() {
	return validate('notNullRegisteredEmail', document.getElementById('registeredEmailInput').value, 'registeredEmail');
}

function validateNotNullEmail() {
	return validate('notNullEmail', document.getElementById('emailInput').value, 'email');
}

function validateNotNullLogin() {
	return validate('notNullEmail', document.getElementById('loginInput').value, 'login');
}

function validateNotNullCurrentPassword() {
	return validate('notNullCurrentPassword', document.getElementById('currentPasswordInput').value, 'currentPassword');
}

function validateNotNullPassword() {
	return validate('notNullPassword', document.getElementById('passwordInput').value, 'password');
}

function validateNotNullPasswords() {
	passwordValue = document.getElementById('passwordInput').value;
	password2Value = document.getElementById('password2Input').value;

	validate('notNullPassword', passwordValue, 'password');
	setTimeout("validate('notNullPassword', password2Value, 'password2')", 500);
	setTimeout("validateBasic('notNullPassword2', passwordValue, password2Value, 'password2')", 500);
}

function validatePasswordsOrNull() {
	passwordValue = document.getElementById('passwordInput').value;
	password2Value = document.getElementById('password2Input').value;
	if(passwordValue != '' || password2Value != '') {
		validate('notNullPassword', passwordValue, 'password');
		setTimeout("validate('notNullPassword', password2Value, 'password2')", 500);
		setTimeout("validateBasic('notNullPassword2', passwordValue, password2Value, 'password2')", 500);
	} else {
		resetInput('password');
		resetInput('password2');
	}
}

function validateNotNullPassword2() {
	return validateBasic('notNullPassword2', document.getElementById('passwordInput').value, document.getElementById('password2Input').value, 'password2');
}

function validateNotNullMobile() {
	return validate('notNullMobile', document.getElementById('mobileInput').value, 'mobile');
}

function validateNotNullTelephone() {
	return validate('notNullTelephone', document.getElementById('telephoneInput').value, 'telephone');
}

function validateTelephoneOrNull() {
	var telephoneValue = document.getElementById('telephoneInput').value;
	if(telephoneValue != '')
		return validate('telephoneOrNull', telephoneValue, 'telephone');
	else
		resetInput('telephone');
}

function validateNotNullPostCode() {
	return validate('notNullPostCode', document.getElementById('postCodeInput').value, 'postCode');
}

function validatePostCodeOrNull() {
	var postCodeValue = document.getElementById('postCodeInput').value;
	if(postCodeValue != '')
		return validate('postCodeOrNull', postCodeValue, 'postCode');
	else
		resetInput('postCode');
}

function validateRefererOrNull() {
	var refererValue = document.getElementById('refererInput').value;
	if(refererValue != '')
		return validate('refererOrNull', refererValue, 'referer');
	else
		resetInput('referer');
}

function validateNIPOrNull() {
	var nipValue = document.getElementById('nipInput').value;
	if(nipValue != '')
		return validate('nipOrNull', nipValue, 'nip');
	else
		resetInput('nip');
}

function validateAccountOrNull() {
	var accountValue = document.getElementById('accountInput').value;
	if(accountValue != '')
		return validate('accountOrNull', accountValue, 'account');
	else
		resetInput('account');
}

function validateWWWOrNull() {
	var wwwValue = document.getElementById('wwwInput').value;
	if(wwwValue != '')
		return validate('wwwOrNull', wwwValue, 'www');
	else
		resetInput('www');
}

function validatePromotionOrNull() {
	var promotionValue = document.getElementById('promotionInput').value;
	if(promotionValue != '')
		return validate('promotionOrNull', promotionValue, 'promotion');
	else
		resetInput('promotion');
}

function validateNotNullSecurityCode() {
	return validate('notNullSecurity', document.getElementById('securityInput').value, 'security');
}

function validateNotNullVerify() {
	return validate('notNullVerify', document.getElementById('verifyInput').value, 'verify');
}

function validatePackageOrNull(objectId) {
	var packageValue = document.getElementById(objectId + 'Input').value;
	if(packageValue != "")
		return validate('packageOrNull', packageValue, objectId);
	else
		resetInput(objectId);
}

function validate(type, value, target) {
	return validateBasic(type, value, '', target);
}

function validateBasic(type, value, value2, target) {

	http = getHTTPObject();
	var url = "includes/include.validatorEn.php";
	var params = "type=" + type + "&value=" + value + "&value2=" + value2;

	http.open("POST", url, true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			if(http.responseText == 'OK') {
				setComponentProperty(target, 2, '&nbsp;');
				setSubmitButtonState(1);
				return true;
			} else {
				setComponentProperty(target, 1, http.responseText);
				setSubmitButtonState(0);
				return false;
			}
		}
	};

	http.send(params);	
}

function setSubmitButtonState(state) {
	submit = document.getElementById('submitButton');
	if(submit != null) {
		if(state == 1) {
			submit.disabled = false;
		} else {
			submit.disabled = true;			
		}
	}
}

function validateNotNullShop() {
	shopElement = document.getElementById('shopInput');
	if(shopElement.value == '') {
		setComponentProperty('shop', 1, 'Nie podano nazwy sklepu.');
		setSubmitButtonState(0);
		return false;
	} else {
		setComponentProperty('shop', 2, '&nbsp;');
		setSubmitButtonState(1);
		return true;
	}
}

function validateNotNull(elementId) {
	shopElement = document.getElementById(elementId + 'Input');
	if(shopElement.value == '') {
		setComponentProperty(elementId, 1, 'Nie wpisano wartości.');
		setSubmitButtonState(0);
		return false;
	} else {
		setComponentProperty(elementId, 2, '&nbsp;');
		setSubmitButtonState(1);
		return true;
	}
}


function validateNotNullTextArea(objectId) {
	element = document.getElementById(objectId);
	if(element.value == '') {
		element.className = 'text_fokus_error';
		element.value = objects['noLetter'];
		return false;
	} else {
		element.className = 'imput_text';
		return true;
	}
}

function resetTextArea(objectId) {
	element = document.getElementById(objectId);
	element.className = 'imput_text';
	if(element.value == objects['noLetter'])
		element.value = '';
}

function resetInput(objectId) {
	setComponentProperty(objectId, -1, '');
}

function switchVisability(id) {
	if (document.getElementById(id).style.display=="none") {
		document.getElementById(id).style.display="block";
	} else {
		document.getElementById(id).style.display="none";
	}
}