
function implode( glue, pieces ) {  // Join array elements with a string
    // 
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: _argos
 
    return ( ( pieces instanceof Array ) ? pieces.join ( glue ) : pieces );
}
function isEmpty(str) {
   for (var i = 0; i < str.length; i++)
      if (" " != str.charAt(i))
          return false;
      return true;
}

function ChForm(f) {
  
  document.getElementById('errors').innerHTML='';
   document.getElementById('errors_on').innerHTML='';
  var errMSG = new Array(); 
  var passMSG = new Array(); 
  var pas1= "";
  var pas2= "";
  var pas1=document.getElementById('password').value;
	 var  pas2=document.getElementById('repassword').value;
  if(pas1!=pas2) passMSG.push("- Введённные пароли несовпадают");
  // цикл ниже перебирает все элементы в объекте f, 
  // переданном в качестве параметра
  // функции, в данном случае - наша форма.            
  for (var i = 0; i<f.elements.length; i++) 
    // если текущий элемент имеет атрибут required
    // т.е. обязательный для заполнения
	  
		
  		if (f.elements[i].getAttribute("id")!="repassword") 
       // проверяем, заполнен ли он в форме
	   {
        if (isEmpty(f.elements[i].value)) // пустой
            errMSG.push(f.elements[i].title); // формируем сообщение
		if (!isEmpty(f.elements[i].value) && f.elements[i].id == 'email')
			{
				var p_email=f.elements[i].value.toString();
				if (p_email!='')
				{ t=p_email.indexOf('@');
				  if ((p_email.indexOf('.')==-1)||(t==-1)||(t < 1)||
				   (t > p_email.length - 5) || (p_email.charAt(t - 1)=='.') || (p_email.charAt(t + 1)=='.'))
				  {
				   passMSG.push("- Почтовый адрес введён некорректно");
				  }
				}
			}
		if (!isEmpty(f.elements[i].value) && f.elements[i].id == 'email')
			{
					$.ajax({async:false, type: 'POST', url: "ajax.php", dataType: 'json', data: 'task=checklogin&login='+f.elements[i].value,success: function(res)
						{
						if(res.out=='exists')
						 passMSG.push("- Пользователь с таким почтовым ящиком уже зарегистрирован. Пожалуйста, введите другой.");
						}
					});
			}
       }
	   
        // если сообщение об ошибке не пусто,
        // выводим его, и возвращаем false     
		if (passMSG.length>0) {
			document.getElementById('errors_on').innerHTML="Ошибка:&nbsp;";
			document.getElementById('errors').innerHTML += implode('<br>',passMSG) + "<br>";
		}
		
        if (errMSG.length>0) {
	    	document.getElementById('errors_on').innerHTML="Ошибка:&nbsp;";
			document.getElementById('errors').innerHTML+="- Не заполнены обязательные поля (<b>" + implode(', ',errMSG) + "</b>)";
        }
		
		if(passMSG.length>0 || errMSG.length>0) return false;
		
}

function ChFormRec(f) {
  
  document.getElementById('errors').innerHTML='';
   document.getElementById('errors_on').innerHTML='';
  var errMSG = new Array(); 
  var passMSG = new Array(); 
  var pas1= "";
  var pas2= "";
 
  for (var i = 0; i<f.elements.length; i++) 
    // если текущий элемент имеет атрибут required
    // т.е. обязательный для заполнения
	  
		
  		if (f.elements[i].getAttribute("id")!="repassword") 
       // проверяем, заполнен ли он в форме
	   {
        if (isEmpty(f.elements[i].value)) // пустой
            errMSG.push(f.elements[i].title); // формируем сообщение
		if (!isEmpty(f.elements[i].value) && f.elements[i].id == 'email')
			{
				var p_email=f.elements[i].value.toString();
				if (p_email!='')
				{ t=p_email.indexOf('@');
				  if ((p_email.indexOf('.')==-1)||(t==-1)||(t < 1)||
				   (t > p_email.length - 5) || (p_email.charAt(t - 1)=='.') || (p_email.charAt(t + 1)=='.'))
				  {
				   passMSG.push("Почтовый адрес введён некорректно");
				  }
				}
			}
		if (!isEmpty(f.elements[i].value) && f.elements[i].id == 'email')
			{
					$.ajax({async:false, type: 'POST', url: "ajax.php", dataType: 'json', data: 'task=recover&login='+f.elements[i].value,success: function(res)
						{
						if(res.out!='exists')
						 passMSG.push("Пользователь с таким почтовым ящиком не зарегистрирован. Пожалуйста, уточните ввод.");
						 else
						 	{
								document.getElementById('errors').innerHTML='<span style="color: green">Ваш пароль отправлен на указанный почтовый ящик.</span>';
  								document.getElementById('errors_on').innerHTML='<span style="color: green">Успех: &nbsp;</span>';
								return false;
							}
						}
					});
			}
       }
	   
        // если сообщение об ошибке не пусто,
        // выводим его, и возвращаем false     
		if (passMSG.length>0) {
			document.getElementById('errors_on').innerHTML="Ошибка:&nbsp;";
			document.getElementById('errors').innerHTML += implode('<br>',passMSG) + "<br>";
		}
		
        if (errMSG.length>0) {
	    	document.getElementById('errors_on').innerHTML="Ошибка:&nbsp;";
			document.getElementById('errors').innerHTML+="Не заполнено обязательное поле (<b>" + implode(', ',errMSG) + "</b>)";
        }
		
		if(passMSG.length>0 || errMSG.length>0) return false;
		
}

function ChFormEdit(f) {
  
  document.getElementById('errors').innerHTML='';
   document.getElementById('errors_on').innerHTML='';
  var errMSG = new Array(); 
  var passMSG = new Array(); 

  var password=document.getElementById('password').value;
  
  
	$.ajax({async:false, type: 'POST', url: "ajax.php", dataType: 'json', data: 'task=checkpass&pass='+password,success: function(res)
		{
		if(res.out!='exists')
		 passMSG.push("Вы ввели неправильный текущий пароль.");
		 else
			{
				var pas1=document.getElementById('new_password').value;
				var  pas2=document.getElementById('new_repassword').value;
 				if(!isEmpty(pas1) && pas1!=pas2) passMSG.push("- Введённные пароли несовпадают");
				for (var i = 0; i<f.elements.length; i++) 
					{
						if (f.elements[i].getAttribute("id")!="new_password" && f.elements[i].getAttribute("id")!="new_repassword") 
						   // проверяем, заполнен ли он в форме
						   {
							if (isEmpty(f.elements[i].value)) // пустой
								errMSG.push(f.elements[i].title); // формируем сообщение
							if (!isEmpty(f.elements[i].value) && f.elements[i].id == 'email')
								{
									var p_email=f.elements[i].value.toString();
									if (p_email!='')
									{ t=p_email.indexOf('@');
									  if ((p_email.indexOf('.')==-1)||(t==-1)||(t < 1)||
									   (t > p_email.length - 5) || (p_email.charAt(t - 1)=='.') || (p_email.charAt(t + 1)=='.'))
									  {
									   passMSG.push("- Почтовый адрес введён некорректно");
									  }
									}
								}
							
						   }
					}
			}
		}
	});
			
 
 
	   
        // если сообщение об ошибке не пусто,
        // выводим его, и возвращаем false     
		if (passMSG.length>0) {
			document.getElementById('errors_on').innerHTML="Ошибка:&nbsp;";
			document.getElementById('errors').innerHTML += implode('<br>',passMSG) + "<br>";
		}
		
        if (errMSG.length>0) {
	    	document.getElementById('errors_on').innerHTML="Ошибка:&nbsp;";
			document.getElementById('errors').innerHTML+="Не заполнено обязательное поле (<b>" + implode(', ',errMSG) + "</b>)";
        }
		
		if(passMSG.length>0 || errMSG.length>0) return false;
		
}

function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
                window.onload = func;
        }
        else {
                window.onload = function() {
                        oldonload();
                        func();
                }
        }
}

	function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}


    function toggle_visibility(id)
	{

	   var e = document.getElementById(id);
       if(e.style.display != 'none')
          e.style.display = 'none';
		else {e.style.display ='block';}
    }

function onKeyDownFn(object)
{
    if (window.event.ctrlKey && window.event.keyCode === 13) {

        document.getElementById(object).button.click();
        return false;
    }

    if (window.event.ctrlKey && window.event.keyCode === 69) {

		document.getElementById(object).button.click();
        return false;
    }
}

function check()
{

 if(document.forms.search_form.type.value==2)
 {document.getElementById('price_sell').style.display='block'; document.getElementById('price_rent').style.display='none';}
 else {document.getElementById('price_sell').style.display='none'; document.getElementById('price_rent').style.display='block';}

}

function metro(s,t)
{
	var f=document.getElementById('metro');
	f.value=t;
}

function show_info(d,text)
{
	var div=document.getElementById(d);
	div.innerHTML=text;
}

