String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

String.prototype.is_email = function () {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this)) {
		return true;
	}
	else {
		return false;
	}
}

String.prototype.is_domain = function () {
	if (/^[a-zA-Z0-9_-]+$/.test (this)) {
		return true;
	}
	else {
		return false;
	}
}


function validate (form) {
	var errorList = [];
	for (var i = 0; i < form.elements.length; i++) {
		el = form.elements [i];
		if (el.name == 'name' && el.value.trim () == '') {
			alert ('Введите Ваше имя!');
			return false;
		}
		else if (el.name == 'album' && el.value.trim () == '') {
			alert ('Вы забыли ввести имя альбома!');
			return false;
		}
		else if (el.name == 'surname' && el.value.trim () == '') {
			alert ('Введите Вашу фамилию!');
			return false;
		}
		else if (el.name == 'patronic' && el.value.trim () == '') {
			alert ('Введите Ваше отчество!');
			return false;
		}
		else if (el.name == 'icq') {
			if (el.value.trim () != '') {
				if (!(/^[0-9]{5,}$/.test (el.value))) {
					alert ('Вы ввели несуществующий номер ICQ!');
					return false;
				}
			}
		}
		else if (el.name == 'nick' && el.value.trim () == '') {
			alert ('Введите Ваш ник!');
			return false;
		}
		else if (el.name == 'password' && el.value == '') {
			alert ('Вы не ввели пароль!');
			return false;
		}
		else if (el.name == 'password' && el.value != '') {
			if (el.value != document.getElementById ('repass').value) {
				alert ('Пароль и подтверждение пароля не совпадают!');
				return false;
			}
		}
		else if (el.name == 'domain' && el.value.trim () == '') {
			alert ('Введите имя личного домена!');
			return false;
		}
		else if (el.name == 'domain' && el.value.trim () != '' && !el.value.is_domain ()) {
			alert ('Имя домена должно состоять из латинских букв, цифр, символов "_" и "-"!');
			return false;
		}
		else if (el.name == 'm_phone' && el.value.trim () == '') {
			alert ('Введите Ваш мобильный телефон!');
			return false;
		}
		else if (el.name == 'address' && el.value.trim () == '' ) {
			alert ('Введите Ваш адрес!');
			return false;
		}
		else if (el.name == 'occupation' && el.value.trim () == '') {
			alert ('Введите Ваше место работы и должность!');
			return false;
		}
		else if (el.name == 'agree' && !el.checked) {
			alert ('Вы должны принять правила!');
			return false;
		}
		else if (el.name == 'photo' && el.value.trim () == '') {
			alert ('Выберите фотографию для личного дела!');
			return false;
		}
		else if (el.name == 'upload' && el.value.trim () == '') {
			alert ('Выберите файл для загрузки!');
			return false;
		}
		else if (el.name == 'email') {
			if (el.value.trim () == '') {
				alert ('Поле Email не может быть пустым!');
				return false;
			}
			else {
				if (!el.value.is_email ()) {
					alert ('Вы ввели несуществующий email!');
					return false;
				}
			}
		}
		else if (el.name == 'message' && el.value.trim () == '') {
			alert ('Введите сообщение!');
			return false;
		}
	}
	return true;
}

function view_faq (id) {
	try {
		block = document.getElementById ('faq_'+id);
		if (typeof (block) !== "undefined" && block) {
			if (block.className == "faq hidden") {
				block.className = "faq visible";
			}
			else {
				block.className = "faq hidden";
			}
			return false;
		}
	}
	catch (e) {};
	return true;
}

function findPos(obj) {
	var curleft = 0;
	var curtop = 0;
	if (obj.offsetParent) {
  		while (obj.offsetParent) {
	   		curleft += obj.offsetLeft-obj.scrollLeft;
	   		curtop += obj.offsetTop-obj.scrollTop;
	   		var position='';
	   		if (obj.style&&obj.style.position) position=obj.style.position.toLowerCase();
	   		if ((position=='absolute')||(position=='relative')) break;
	   		while (obj.parentNode!=obj.offsetParent) {
	    		obj=obj.parentNode;
	    		curleft -= obj.scrollLeft;
	    		curtop -= obj.scrollTop;
	   		}
	   		obj = obj.offsetParent;
  		}
 	}
	else {
   		if (obj.x)
      		curleft += obj.x;
  		if (obj.y)
      		curtop += obj.y;
    }
 	return {left:curleft,top:curtop};
}