var other_label='- Другой -',
    change_city_label='- Выберите город -',
    change_country_label='- Выберите страну -',
    more_country_label='- Полный список -',
    choose_country_first_label='- Сначала выберите страну -', 
    change_fitness_label='- Выберите фитнес-клуб -';
    fitness_club_container_is_display=false;

function addToSelect(mass,mass_value,select_id)  //Функция добавляет в селект
{
	for(var i=0;i<mass.length;i++)
	{
		if (document.createElement){ 
            var newOption = document.createElement("OPTION");
            newOption.text = mass[i];
            newOption.value = mass_value[i];

            // тут мы используем для добавления элемента либо метод IE, либо DOM, которые, alas, не совпадают по параметрам…
            ($(select_id).options.add) ? $(select_id).options.add(newOption) : $(select_id).add(newOption, null);
	        }else{
            // для NN3.x-4.x
            $(select_id).options[i] = new Option(mass_value[i], mass[i], false, false);
        }
	}
}

function clearSelect(sel)      //Функция очищает селект
{
	while (sel.childNodes.length) {
   			if (sel.firstChild.tagName == 'OPTGROUP') {
      			while (sel.firstChild.childNodes.length) {
     		       sel.firstChild.removeChild(sel.firstChild.firstChild);
     		    }
 	 	   }
     	   sel.removeChild(sel.firstChild);
	    }
}

function getMoCitiesProcess(response,city_is_select)
{
	
	if(city_is_select=='1')
	{
		
		//Парсим ответ ajax'a	
		response=response.split('#');
		var response_id=response[1];
		response=response[0];
		response=response.split('|');
		response_id=response_id.split('|');
		
				
		if(response!='')
		{
		    //$('city_div').style.display='block';
		    animatedcollapse.show('city_div');
		    //$('other_city_label').style.display='none';
		    animatedcollapse.hide('other_city_label_div');
			//Врубаем селект
			$('uni_city').disabled=false;
			
			//Очищаем селект
			clearSelect($('uni_city'));
			
		    //Пихаем в селект строчку -Выберите город- 
			var change_city=new Array(), change_city_id=new Array();
			change_city[0]=change_city_label; 
			change_city_id[0]='change_city';
				
			addToSelect(change_city,change_city_id,'uni_city');
				
			//Пихаем в селект города
		
			addToSelect(response,response_id,'uni_city');	
	
			//Пихаем в селект строчку -Другие- 
			var other_cities=new Array(), other_cities_id=new Array();
			other_cities[0]=other_label;
			other_cities_id[0]='other_ajax';
		
			addToSelect(other_cities,other_cities_id,'uni_city');
		}
		else
		{
			//$('city_div').style.display='none';
			animatedcollapse.hide('city_div');
			//$('other_city_label').style.display='block';
			animatedcollapse.show('other_city_label_div');
		}
		
	}
}

function getCountriesProcess(response,country_is_main)
{
	
	response=response.split('#');
	var response_id=response[1];
	response=response[0];
	response=response.split('|');
	response_id=response_id.split('|');
	
	var change_country=new Array(), change_country_id=new Array();
	change_country[0]=change_country_label; 
	change_country_id[0]='change_country';
	
	clearSelect($('register_many_countries'));
	addToSelect(change_country,change_country_id,'register_many_countries');
	
	addToSelect(response,response_id,'register_many_countries');
	
	if(country_is_main=='1')
	{
		var more_country=new Array(), more_country_id=new Array();
		more_country[0]=more_country_label; 
		more_country_id[0]='more';
	
		addToSelect(more_country,more_country_id,'register_many_countries');
	}
}

function ajaxGetMoCities_func(city_is_main,city_is_mo,city_is_select,country_id)
{

  var ajaxGetMoCities = new Ajax.Request('ajax/ajaxGetMoCities.php',
  {
    method:'post',
    parameters: {is_main: city_is_main, is_mo: city_is_mo,country: country_id},
    onSuccess: function(transport){
      response = transport.responseText || "no response text";
      getMoCitiesProcess(response,city_is_select);
    },
    onFailure: function(){ alert('Ajax ajaxGetMoCities error!') }
  });
}

function ajaxGetCountries(country_is_main)
{
	var ajaxGetMoCities = new Ajax.Request('ajax/ajaxGetCountries.php',
  {
    method:'post',
    parameters: {is_main: country_is_main},
    onSuccess: function(transport){
      response = transport.responseText || "no response text";
      getCountriesProcess(response,country_is_main);
    },
    onFailure: function(){ alert('Ajax ajaxCountries error!') }
  });
}

function on_region_select(region)
{
	if(region.id=='region_moscow')
	{
		//$('country_div').style.display='none';
		animatedcollapse.hide('country_div');
		//$('city_div').style.display='none';	
		animatedcollapse.hide('city_div');
		animatedcollapse.hide('other_city_label_div');
	}
	if(region.id=='region_mo')
	{
	    
		//$('city_div').style.display='block';
		animatedcollapse.show('city_div');
		//$('country_div').style.display='none';
		animatedcollapse.hide('country_div');
		ajaxGetMoCities_func(1,1,1,1); //ajaxGetMoCities_func(city_is_main,city_is_mo,city_is_select,country_id)
		
		$('city_select_check').style.display='none'; 
	    $('uni_city').style.border='1px solid #333333';
	} 
	if(region.id=='region_other')
	{
		//$('city_div').style.display='block';
		animatedcollapse.show('city_div');
		//$('country_div').style.display='block';
		animatedcollapse.show('country_div');
		
		//$('other_city_label').style.display='none';
		animatedcollapse.hide('other_city_label_div');
		
		ajaxGetCountries(1);
		
		clearSelect($('uni_city'));
			
		var choose_country_first=new Array(), choose_country_first_id=new Array();
		choose_country_first[0]=choose_country_first_label; 
		choose_country_first_id[0]='choose_country_first';
				
		addToSelect(choose_country_first,choose_country_first_id,'uni_city');
		
		$('uni_city').disabled=true;
		
		$('city_select_check').style.display='none'; 
	    $('uni_city').style.border='1px solid #333333';
	    
	    
		
	}
}

function register_country_is_selected(currSelect)
{
	
	var selected_country_idx=currSelect.selectedIndex;
	if(selected_country_idx!=0)
	{
	       document.getElementById('uni_city').selectedIndex=0;
		   document.getElementById('uni_city').disabled=false;
		   ajaxGetMoCities_func(1,0,1,currSelect.options[selected_country_idx].value); //ajaxGetMoCities_func(city_is_main,city_is_mo,city_is_select,country_id)
	}
	else
	{
		   document.getElementById('uni_city').selectedIndex=0;
		   document.getElementById('uni_city').disabled=true;	
		   document.getElementById('uni_city').options[0].text='-Сначала выберите страну-';
		   //$('other_city_label').style.display='none';
		   animatedcollapse.hide('other_city_label_div');
	}
}

function register_view_all_countries(currSelect)
{
   var more_index=null;
   for (var i=0; i < currSelect.options.length; i++)
   {
      if (currSelect.options[i].value=='more') more_index=i;
   }
   if(more_index==currSelect.selectedIndex)
   {
   		ajaxGetCountries(0);
   		currSelect.selectedIndex=0;
   }
   register_country_is_selected(currSelect);
}

function register_view_other_city(currSelect)
{
	var other_index=null;
	for (var i=0; i < currSelect.options.length; i++)
    {
      if (currSelect.options[i].value=='other_ajax') other_index=i;
    }
    if(other_index==currSelect.selectedIndex)
    {
       //document.getElementById('other_city_label').style.display='block';
       animatedcollapse.show('other_city_label_div');
       
    }
    else
    {
       //document.getElementById('other_city_label').style.display='none';	
       animatedcollapse.hide('other_city_label_div');
    }
    
}

function on_skill_select(skill)
{
	if(skill.id=='lamo')
	{
	    $('fitness_lamer_table').style.display='block';
		$('fitness_lamer_select').style.display='block';
		$('fitness_lamer_select').selectedIndex=0;
		$('profession_label').style.display='none';
		//$('fitness_club_container').style.display='none';
		fitness_club_container_is_display=false;
		animatedcollapse.hide('fitness_club_container_div');
	}
	if(skill.id=='professional')
	{
	    $('fitness_lamer_table').style.display='none';
		$('fitness_lamer_select').style.display='none';
		$('profession_label').style.display='block';
		//$('fitness_club_container').style.display='block';
		fitness_club_container_is_display=true;
		animatedcollapse.show('fitness_club_container_div');
		ajaxGetFitness(1);
	}
}



function ajaxGetFitness(fitness_is_main)
{
  var ajaxFitness = new Ajax.Request('ajax/ajaxGetFitness.php',
  {
    method:'post',
    parameters: {is_main: fitness_is_main},
    onSuccess: function(transport){
      response = transport.responseText || "no response text";
      //alert(response);
      getFitnessProcess(response,fitness_is_main)
    },
    onFailure: function(){ alert('Ajax ajaxCountries error!') }
  });
}


function on_lamer_select(lamerSelect)
{
	if(lamerSelect.options[lamerSelect.selectedIndex].value=='home')
	{
		//$('fitness_club_container').style.display='none';
		animatedcollapse.hide('fitness_club_container_div');
		fitness_club_container_is_display=false;
		
	}
	if(lamerSelect.options[lamerSelect.selectedIndex].value=='club')
	{
		//$('fitness_club_container').style.display='block';
		animatedcollapse.show('fitness_club_container_div');
		fitness_club_container_is_display=true;
		
		ajaxGetFitness(1);
	}
	if(lamerSelect.options[lamerSelect.selectedIndex].value=='lamer')
	{
		//$('fitness_club_container').style.display='none';
		animatedcollapse.hide('fitness_club_container_div');
		fitness_club_container_is_display=false;
		
	}
}

function getFitnessProcess(response,fitness_is_main)
{
	
	response=response.split('###');
	var response_id=response[1];
	response=response[0];
	//alert(response);
	response=response.split('|');
	response_id=response_id.split('|');
	
	var change_fitness=new Array(), change_fitness_id=new Array();
	change_fitness[0]=change_fitness_label; 
	change_fitness_id[0]='change_fitness';
	
	clearSelect($('fitness_club_select'));
	addToSelect(change_fitness,change_fitness_id,'fitness_club_select');
	
	addToSelect(response,response_id,'fitness_club_select');
}

function fitness_label_onkeyup(label)
{
	if(label.value=='')
	{	
		$('fitness_club_select').disabled=false;
	}
	else
	{
		$('fitness_club_select').selectedIndex=0;
		$('fitness_club_select').disabled=true;
	}

}

function names_check()
{
	if(!validName($('name').value))
	{
		$('name_check').style.display='block';
		$('name_check').src='img/no_checked2.png';
		$('name').style.border='1px solid #ff8b76';
		return false;
	}
	else
	{
		$('name_check').style.display='block';
		$('name_check').src='img/checked2.png';
		$('name').style.border='1px solid #63cb30';
		return true;
	}
  
}

function surnames_check()
{
	if(!validName($('family').value))
	{
		$('surname_check').style.display='block';
		$('surname_check').src='img/no_checked2.png';
		$('family').style.border='1px solid #ff8b76';
		return false;
	}
	else
	{
		$('surname_check').style.display='block';
		$('surname_check').src='img/checked2.png';
		$('family').style.border='1px solid #63cb30';
		return true;
	}
}

function validEmail (mail) { //Проверяем корректность адреса почты
   
  //return (new RegExp ("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+" + "\.)+[a-zA-Z]{2,4}$").test(mail) ? 1 : 0);

  //return (new RegExp ("^([a-zA-Z0-9_\-]+\.)*[a-zA-Z0-9_\-]+@([a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)+[a-zA-Z]{2,4}$").test(mail) ? 1 : 0);
  return (new RegExp ("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$").test(mail) ? 1 : 0);

}
function validName (name) { //Проверяем корректность имени/фамилии
  return (new RegExp ("^[a-zA-Zа-яА-ЯёЁ0-9]+$").test(name) ? 1 : 0);

}
var gMailIsOk=false;

function mails_check()
{
   if(!validEmail($('email').value))
   {   
	   $('mail_check').style.display='block';
		$('mail_check').src='img/no_checked2.png';
		$('email').style.border='1px solid #ff8b76';
		gMailIsOk=false;
   }
   else
   {
	   //return true;
	   //alert('123');
	   j.post("ajax/ajaxRegisterCheckMail.php", 
				{   
			         email: $('email').value			
				}, function(data){
					
					if(data=='dublicate_error')
					{
						$('mail_check').style.display='block';
						$('mail_check').src='img/no_checked2.png';
						$('email').style.border='1px solid #ff8b76';
						j('#mailDubError').css('display','block');
						gMailIsOk=false;
					}
					else
					{
						$('mail_check').style.display='block';
						$('mail_check').src='img/checked2.png';
						$('email').style.border='1px solid #63cb30';
						j('#mailDubError').css('display','none');
						gMailIsOk=true;
					}
				});
	   
	   
    	
   }
}

function passwords_check()
{
	if($('new_password').value=='')
	{
		$('password_check').style.display='block';
		$('password_check').src='img/no_checked2.png';
		$('new_password').style.border='1px solid #ff8b76';
		return false;
	}
	else
	{
		$('password_check').style.display='block';
		$('password_check').src='img/checked2.png';
		$('new_password').style.border='1px solid #63cb30';
		return true;
	}
}

function cities_check()
{
	if($('uni_city').options.length==0)return true;	
    if($('region_moscow').checked)return true;
    if($('uni_city').options[$('uni_city').selectedIndex].value=='other_ajax')return true;
	if($('uni_city').options[$('uni_city').selectedIndex].value=='change_city')
	{
	    $('city_select_check').style.display='block';
		$('city_select_check').src='img/no_checked2.png';
		$('uni_city').style.border='1px solid #ff8b76';
		return false;
	}
	if($('uni_city').options[$('uni_city').selectedIndex].value!='other_ajax')
	{
	    $('city_select_check').style.display='block';
		$('city_select_check').src='img/checked2.png';
		$('uni_city').style.border='1px solid #63cb30';
		return true;
	}
	else
	{
	    $('city_select_check').style.display='none'; 
	    $('uni_city').style.border='1px solid #333333';
	    return true;
	}
	return true;
}

function other_cities_check()
{
	if($('uni_city').options.length==0)return true;	
	if(($('uni_city').options[$('uni_city').selectedIndex].value!='other_ajax')||
	   ($('country_div').style.display=='none'))
	{
		return true;
	}
	else
	{
	   if($('other_city').value=='')
	   {
	      $('other_city_check').style.display='block';
		  $('other_city_check').src='img/no_checked2.png';
		  $('other_city').style.border='1px solid #ff8b76';
		  return false;
	   }
	   else
	   {
	   	  $('other_city_check').style.display='block';
		  $('other_city_check').src='img/checked2.png';
		  $('other_city').style.border='1px solid #63cb30';
		  return true;
	   }
	}
		
}

function country_select_check()
{
    if($('register_many_countries').options.length==0) return true;
    if($('register_many_countries').style.display=='none') return true;
    if($('register_many_countries').options[$('register_many_countries').selectedIndex].value=='change_country')
    {
        $('country_check').style.display='block';
		$('country_check').src='img/no_checked2.png';
		$('register_many_countries').style.border='1px solid #ff8b76';
    	return false;
    }
    if($('register_many_countries').options[$('register_many_countries').selectedIndex].value=='more')
    {
        $('country_check').style.display='block';
		$('country_check').src='img/no_checked2.png';
		$('register_many_countries').style.border='1px solid #ff8b76';
    	return false;
    }
    else
    {
    	$('country_check').style.display='block';
		$('country_check').src='img/checked2.png';
		$('register_many_countries').style.border='1px solid #63cb30';
    	return true;
    }
}

function fitnesses_select_check()
{
	//if($('fitness_club_container').style.display=='none')
	if(!fitness_club_container_is_display)
	{
	   return true;
	}
	if($('fitness_input').value!='')
	{
		return true;
	}
	if($('fitness_club_select').disabled==true)return true;
	if($('fitness_club_select').options[$('fitness_club_select').selectedIndex].value=='change_fitness')
	{
	   $('fitness_select_check').style.display='block';
	   $('fitness_select_check').src='img/no_checked2.png';
	   $('fitness_club_select').style.border='1px solid #ff8b76';
	   return false;
	}
	else
	{
	   $('fitness_select_check').style.display='block';
	   $('fitness_select_check').src='img/checked2.png';
	   $('fitness_club_select').style.border='1px solid #63cb30';
	   
	   $('fitness_input_check').style.display='none';
	   $('fitness_input').style.border='solid 1px #999999';
	   return true;  
	}
}

function fitnesses_input_check()
{
   // if($('fitness_club_container').style.display=='none')
	if(!fitness_club_container_is_display)
	{   
	   return true;
	}
    if($('fitness_club_select').options[$('fitness_club_select').selectedIndex].value!='change_fitness')return true;
    if($('fitness_club_select').disabled==true)
	{
	   $('fitness_select_check').style.display='none';
	   $('fitness_club_select').style.border='solid 1px #999999';
	}
	if($('fitness_input').value=='')
	{
	   $('fitness_input_check').style.display='block';
	   $('fitness_input_check').src='img/no_checked2.png';
	   $('fitness_input').style.border='1px solid #ff8b76';
	   return false;
	}
	else
	{
	   $('fitness_input_check').style.display='block';
	   $('fitness_input_check').src='img/checked2.png';
	   $('fitness_input').style.border='1px solid #63cb30';
	   return true;
	}
	
}

function professions_check()
{
	if(!$('professional').checked)
    {
      return true;
    }
	
	var prof = $('profession_input').value;
	
    if((prof=='') || (prof.length > 250))
    {
       $('profession_check').style.display='block';
	   $('profession_check').src='img/no_checked2.png';
	   $('profession_input').style.border='1px solid #ff8b76';
	   return false;
    }
    else
    {
       $('profession_check').style.display='block';
	   $('profession_check').src='img/checked2.png';
	   $('profession_input').style.border='1px solid #63cb30';
	   return true;
    }
}

function check_all_fields()
{
	
	//alert(other_cities_check());
 	if(names_check()&&surnames_check()&&gMailIsOk&&passwords_check()&&country_select_check()&&cities_check()&&other_cities_check()
	&&professions_check()&&fitnesses_select_check()&&fitnesses_input_check())
	{
	    return true;
	}
	else
	{
		return false;
	}
}

function i_agree()
{
	if(jQuery('input[name=checkbox_register]').is(':checked') == true)
	{
		jQuery('.register_button_inactive').css("display","none");
		jQuery('.register_button').css("display","block");
	}
	else
	{
		jQuery('.register_button_inactive').css("display","block");
		jQuery('.register_button').css("display","none");
	}
}

function register_button_onclick(act)
{

  if(!check_all_fields())
  {
    //alert('Заполните правильно все поля!');
    animatedcollapse.show('registration_error');
  	return false;
  } 
  animatedcollapse.hide('registration_error');
   
  var user_name=$('name').value,
      user_surname=$('family').value,
      user_mail=$('email').value;
      user_password=$('new_password').value;
  
  var sex;
  //Пол =)
  if($('sex_man').checked)
  {
  	sex='1';
  }    
  if($('sex_woman').checked)
  {
  	sex='0';
  }
  
  var city_id,city_name='';
  
  var country_id;
  
  /*
  Определяем город. Если Москва, то id равен 0, если выбираем из селекта, то id равен id города, если город набираем в инпуте,
  то city_id='other_ajax', а в city_name - введенное название
  */
  if($('region_moscow').checked)
  {
  	city_id='0';
  }
 // else
  if($('region_mo').checked)
  {
	country_id = '1';
  	if($('uni_city').options[$('uni_city').selectedIndex].value!='other_ajax') //Если выбран город из селекта
  	{
  		city_id=$('uni_city').options[$('uni_city').selectedIndex].value;
  	}
  	else
  	{
  		//alert('ololo');
  		city_id='other_ajax';
  		city_name=$('other_city').value; //Если город введен в текстовое поле
  		
//  		if($('region_other').checked)
// 				country_id=$('register_many_countries').options[$('register_many_countries').selectedIndex].value;
				
  	}
  }
  
  if($('region_other').checked){
	country_id=$('register_many_countries').options[$('register_many_countries').selectedIndex].value;
	if ($('uni_city').options[$('uni_city').selectedIndex].value == 'other_ajax')
		city_name=$('other_city').value;
	else
		city_id=$('uni_city').options[$('uni_city').selectedIndex].value;
  }
  
 
  /*
  Определяем профессионал ли перец, или чайник
  skill=0  -  Любитель
  skill=1  -  Профессионал
  
  Определяем где занимается
  lamo_place=0 - Дома
  lamo_place=1 - В клубе
  lamo_place=2 - Просто интересуется 
  */
  var skill, lamo_place, fitness_id, fitness_name='', profession_name='';
  
  if($('lamo').checked)
  {
  	  skill='0';
  	  
  	  lamo_place=$('fitness_lamer_select').options[$('fitness_lamer_select').selectedIndex].value;
  	  if(lamo_place=='home')lamo_place='0';
  	  if(lamo_place=='club')lamo_place='1';
  	  if(lamo_place=='lamer')lamo_place='2';
  	  
  	  if(lamo_place=='1')
  	  {
  	  	  if($('fitness_input').value=='')
  	  	  {
  	  	  	fitness_id=$('fitness_club_select').options[$('fitness_club_select').selectedIndex].value;
  	  	  }
  	  	  else
  	  	  {
  	  	  	fitness_name=$('fitness_input').value;
  	  	  }
  	  }
  }
  if($('professional').checked)
  {
  	  skill='1';
  	  profession_name=$('profession_input').value;
  	  if($('fitness_input').value=='')
  	  {
  	  	 fitness_id=$('fitness_club_select').options[$('fitness_club_select').selectedIndex].value;
  	  }
  	  else
  	  {
  	  	 fitness_name=$('fitness_input').value;
  	  }
  }
  
  //alert(user_name+' '+user_surname+' '+user_mail+' '+sex+' '+city_id+' '+city_name+' skill='+skill+' '+lamo_place+' '+fitness_id+' '+fitness_name+' '+profession_name);
  
  if(!lamo_place)lamo_place=0;
  
  //alert(city_name);
  
  var ajaxAddUser = new Ajax.Request('ajax/ajaxAddUser.php',
  {
    method:'post',
    parameters: {ajax_name: user_name, 
                 ajax_surname: user_surname,
                 ajax_password:user_password,
                 ajax_user_mail:user_mail,
                 ajax_sex: sex,
                 ajax_city_id:city_id,
                 ajax_city_name:city_name,
                 ajax_skill:skill,
                 ajax_lamo_place:lamo_place,
                 ajax_fitness_id:fitness_id,
                 ajax_country_id:country_id,
                 ajax_fitness_name:fitness_name,
                 ajax_profession_name:profession_name,
				 ajax_act:act},
    onSuccess: function(transport){
      response = transport.responseText || "no response text";
      //alert(response);
      register_after();
    },
    onFailure: function(){ alert('Ajax ajaxCountries error!') }
  });
  //alert('Данные о пользователе добавлены в базу'); 	
}

function register_after()
{
	j.post("ajax/ajaxAddUserAfter.php", 
			{    o : "ajaxAddUserAfter"
		         		  	
			}, function(data){
			//alert(data);
				j('#register_container').html(data);
				
			
		});
}

function restorePassw123()
{
	
	
	if(j('#restorePassw').val()!='')
	{
			j.post("ajax/ajaxRestorePassw.php", 
				{    
			           email : j('#restorePassw').val()
			         		  	
				}, function(data){
			
					if(data=='ok')
					{
						animatedcollapse.show('restore_ok');
						animatedcollapse.hide('restore_error');
						j('#restorePassw').attr('disabled','disabled');
					}
					if(data=='fail')
					{
						animatedcollapse.show('restore_error');
						animatedcollapse.hide('restore_ok');
					}
					
				
			});
		
	}
	

}
