/**
 * Отладочная функция, выводит структуру заданного объекта
 * @param object obj
 */
function dump(obj){
	var d = "";
	for (x in obj){
		d += x+"="+obj[x]+"<br>";
	}
	if ( arguments[1] ){
		alert(d);
	} else {
		document.write(d);
	}
}

/**
 * Проверка правильности заполнения формы.
 * Контролирует заполнение обязательных полей, правильность e-mail адресов
 * @param HTMLFormObject frm ссылка на объект HTML формы
 */
function parseForm(frm){

	var mes='';
	
	for(elemName in frm.childNodes){
		
		if ( frm.childNodes[elemName].childNodes ) parseForm( frm.childNodes[elemName].childNodes );
		
		if ( !frm.childNodes[elemName].alt ) continue; 
		
		var alt=frm.childNodes[elemName].alt;
		var params = alt.split(';');
		obj = frm.childNodes[elemName];
		obj.alias = obj.name;
		
		for(i in params){
			
			switch (params[i]){
				case 'notNull':
					if ( !obj.value ){
						mes += 'заполните поле `'+obj.alias+'`,\n';
					}
				break;
				case 'email':
					re=/\w+@(\w+\.)+\w{2,4}$/;
					x = obj.value.match(re);
					if ( obj.value && !x ){
						mes += '`'+obj.alias+'` не являеся правильным адресом зл. почты,\n';
					}
				break;
				default:
					obj.alias = params[i];
				break;
			}
		}
	}
	
	if ( mes ){
		mes = mes.substr(0,mes.length-2)
		if ( arguments[1] ){
			obj=arguments[1];
			if ( obj.toString()!='[object]' ){ obj=document.getElementById(obj); }
			if ( obj ){ obj.innerHTML = mes; }
		}else{
			alert(mes);
		}
		return false;
	}
	
	return true;
}

/**
 * Управление отображением HTML элемента.
 * Скрывает/показывает элемент, при повторном вызове показывает/скрывает элемент
 * @param HTMLElement obj ссылка на HTML элемент
 */
function sh(obj){
	var o = document.getElementById(obj);	
	if ( arguments[1] ){
		mode1 = 'none';
		mode2 = 'block';
	} else {
		mode1 = 'block';
		mode2 = 'none';
	}
	
	if ( o.style.display==mode1 ){
		o.style.display = mode2;
	} else {
		o.style.display = mode1;
	}
	
}

function sss(){
	alert('123');
}
