// JavaScript Document
// включаемый файл для регистрации / авторизации пользователя
// в макете имеется
//		функция вывода сведений об авторизированном пользователе
//		три кнопки = авторизация / регистрация / подписка, вызывающее функции данного модуля
//*****************************
//		ОСНОВНОЕ отличие от предыдущих реализаций - JS формиирование окон диалога / ввода
// 		возможно удастся уйти от инвариантности
//		для различных броузеров, или по крайней мере, решать их на уровне JS


var uatype='undef'
// Получим userAgent браузера и переведем его в нижний регистр
var ua = new String()

ua=navigator.userAgent.toLowerCase();
//alert(ua+'---'+navigator.appVersion)
// Определим Internet Explorer
if (ua.indexOf('msie') != -1 && ua.indexOf('opera') == -1){
    uatype='msie'	if (ua.indexOf('msie 7.') != -1) { uatype='msie7' }
	if(ua.indexOf('msie 6.') != -1) {  uatype='msie6' }
} else if(ua.indexOf('opera') != -1) { // Opera	uatype='opera'} else if (ua.indexOf('gecko') != -1) {    // Gecko = Mozilla + Firefox + Netscape	uatype='gecko'} else if (ua.indexOf('safari') != -1) {    // Safari, используется в MAC OS	 uatype='safari'} else if (ua.indexOf('konqueror') != -1){  // Konqueror, используется в UNIX-системах	uatype='konqueror'}




// выбор варианта регистрации

var UserName=new String()
var UserMainName=new String()
var UserSign=new String()
var UserLogin=new String()
var UserPass=new String()
var UserEmail=new String()
var Company=new String()
var CompanyPost=new String()
var UserTel = new String()
var OKPO = new String()
var CompanyWEB = new String()
var USER_RRR=new String()
var user_checked

//var user_type
//var user_id

//var sid=new String()

// var user_name=new String()

var user_edit_admin_mode=false // включаем при редактировании данных пользователя администратором

// проверка авторизации и основное меню пользователя


function reset_data(){
	UserName=''
    UserMainName=''
    UserSign=''
    UserLogin=''
    UserPass=''
    UserEmail=''
    Company=''
    CompanyPost=''
    CompanyWEB =''
    UserTel=''
    OKPO=''
    USER_RRR=''
    user_type=''
    user_id=0
    user_checked=0
   // user_name=''
}


function session_info(){
	JsHttpRequest.query(
 	'/BEX_RR/session_info.php',
 	{
 	SID:sid
 	},
 	function (result, error){
 	   RR_msg(300,300,'Session info','CALL WITH '+sid+'Back response:'+error)
 	},
 	true );
}

function user_info(){	RR_msg(300,300,'User info','UserName' +UserName+ '<br>UserMainName' + UserMainName)
}


// Основное пользовательское меню
function RR_user_menu()
{	var user_menu=new String()
	user_menu='RR_user_menu'	try{
		UM=document.getElementById(user_menu) // .style.visibility='visible'
		document.getElementById(user_menu).style.visibility='visible'	}	catch (e){
		 var UM_elt=document.createElement("DIV")
		 UM_elt.id=user_menu
		 document.body.appendChild(UM_elt)
		 UM=document.getElementById(user_menu)
		 UM.style.position='absolute'
		 UM.style.top='70px'
		 UM.style.right='187px'
		 UM.style.width='450px'
		 UM.style.heiht='60px'
		 UM.style.textAlign='right'
		//  UM.style.border='red solid 1px'	}
	try{		if (user_id !=0 ){}	} catch (e) {		 user_id=0
	}

		 UM.style.visibility='visible'
//           UM.style.zIndex='6'
//		 	 UM.style.background='#DDD'
			outp_val=''
                          //  '

			if (user_id) {
			 outp_val+=user_name +', Вы авторизированы!<form style="margin-top: 0; margin-bottom: 0; border: none;" method="POST" action="http://botexpert.com.ua/BEX_user/" target="_blank"><input type="button" value="Персональные данные" class="receptionButtom" onclick="get_user_data()">'
			 if (user_type==2 || user_type==3) outp_val+='<input type="submit" value="Данные компании" class="receptionButtom">  <input name="sid" type="hidden" value="'+sid+'">'
			 outp_val+='<input type="button" value="Выход" class="receptionButtom" onclick="upload_user()"></form>'
			} else {				outp_val+='<p>&nbsp;</p><input type="button" value="Авторизация" class="receptionButtom" onclick="reception_user_form()">&nbsp;<input type="button" value="Регистрация" class="receptionButtom" onclick="select_reg_type()"></p>'			}
            UM.innerHTML=outp_val}

// форма авторизации

function reception_user_form(){	var w=200
	var h=100	switch (uatype) {
	   case 'msie6':
          h=80
    	 break
	   case 'msie7':
           h=120
    	 break
	 }
    RR_wndw(w,h);

	document.getElementById('RR_wndw_header').innerHTML='Авторизация'
	document.getElementById('RR_wndw_body').innerHTML='<form name="reception_form">Логин:&nbsp;&nbsp;<input name="login" type="text" value=""><br>Пароль:<input name="pass" type="password" value=""><br><input type="button" value="Отправить" onclick="reception_user(); return false"></form>'}

// авторизация usera


function reception_user()
{
	if(document.reception_form.login.value.length==0 || document.reception_form.pass.value.length==0 ) {		RR_self_close_msg(100,50,'#FFFF00','Не указан логин или пароль')}

try{	if(Article_id!=0) {}} catch (e) {	Article_id=0}

debug('Front sid='+sid)

	JsHttpRequest.query(
 	'/BEX_RR/reception_user.php',
 	{
 	Login: document.reception_form.login.value,
 	Pass: document.reception_form.pass.value,
 	SID: sid,
 	Art_id: Article_id
 	},
 	function (result, error){
 	debug(error)

 	   if ( result.user_id !=0 ) { 	   	user_id=result.user_id
 	   	if (result.USER_RRR) USER_RRR=result.USER_RRR
//alert ('Авторизация OK'+ result.user_name +'('+result.user_id+')' )
// все данные закачиваем через get_user_data? поскольку эту функциональность использует и администратор
        user_name=result.user_name
        user_type=result.user_type
        user_sign=result.user_sign
     // sid=result.sid
 	   	 RR_self_close_msg(200,50,'yellow','<br>Успешная авторизация!')
 	   	 close_RR_wndw()
 	   	 RR_user_menu()
 	   	 if(Article_id!=0){
//debug('user reception detect article id') 	   	 	document.getElementById('ControlComment').innerHTML=result.CommentControl
//debug(result.CommentControl)
 	   	 	CommentOnOff() 	   	 }
 	   }
 	   else {// alert ('Авторизация ERROR ' + result.count_user +  ' / '  +  result.info)
		 if (result.count_user == 0) mm='Возможно неверно набран пароль.<br>'
		 else if (result.count_user > 1) mm='В БД обнаружено более одной записи.<br>'
		 mm+='Свяжитесь с админнистратором!'
 	   	  RR_self_close_msg(200,200,'#FFFF00','Авторизация не удалась.<br>'+mm ) 	   }
 	},
 	true );
}


// выгружаем пользователя

function upload_user(){
   try{
		if(Article_id!=0) {}
	} catch (e) {
		Article_id=0
	}

	reset_data()
	JsHttpRequest.query(
 	'/BEX_RR/upload_user.php',
 	{
 		Art_id: Article_id,
 		SID: sid
 	},
 	function (result, error){
     debug(error)
	   if(Article_id!=0) {	   	 document.getElementById('ControlComment').innerHTML=result.CommentControl
	   	 CommentOnOff()
	   }
 	},
 	true );
   RR_user_menu()
}


function subscribe(){	//alert('Извините, функциональность временно отключена.')
	use_type=4
	reg_form(4)}

  // выбор типа регистрации
function select_reg_type()
{

   var w=400
	var h=285
	switch (uatype) {
	   case 'msie6':
          h=80
    	 break
	   case 'msie7':
           h=335
    	 break
	 }
    RR_wndw(w,h);
   //RR_wndw(400,285)
   document.getElementById('RR_wndw_header').innerHTML='Выбор типа регистрации'
    choice_reg_type_form="<form class='inputFORM'>Зарегистрировавшись в качестве посетителя вы имеете возможность<ul><li>принимать участие в обсуждении всех публикуемых материалов;</li><li>комментировать всю информацию на нашем сайте.</li></ul>"
	choice_reg_type_form+="<input name='visitor' type='button' value='Регистрация посетителей' onClick=\"reg_form(\'1\')\" class='receptionButtom'>"
	choice_reg_type_form+="<hr><p>Регистрация компаний и фрилансеров (пользоватей) позволяет:</p><p>Самостоятельно размещать свою информацию в </p><ul><li>КАТАЛОГЕ компаний (для компаний)</li><li>разделе ПЕРСОНЫ (для frreelancer - о себе, для компаний о своих сотрудниках...)</li><li>КАЛЕНДАРЕ мероприятий</li><li>ПРОГРАММЫ ОБУЧЕНИЯ</li></ul>"
	choice_reg_type_form+="<input name='visitor' type='button' value='Регистрация компаний' onClick=\"reg_form(2)\" class='receptionButtom'>"
	choice_reg_type_form+="<input name='visitor' type='submit' value='Регистрация FreeLancer' onClick=\"reg_form(3)\" class='receptionButtom' ></form>"

    document.getElementById('RR_wndw_body').innerHTML=choice_reg_type_form}

// проверка дублирования logina

var res=0

function CheckDblLogin(){
 return false //для отладки//  alert('CheckDblLogin')


  login=document.reg_form.UserLogin.value
  user_id=document.reg_form.user_id.value

if (login.length < 6 )  {	alert('Логин должен содержать не менее 6 символов');
	return false;}

  JsHttpRequest.query(
  	'/BEX_RR/CheckDblLogin.php',
  	{
  	Login:login,
  	uid:user_id
  	},
  	function (result, error){
  	  debug(error)
  	  res=result.DblLogin
  	  if (res>0) {  	  	alert ('такой Login уже используется...')
  	  	form.UserLogin.focus()
  	  }

//  	  alert(' res_dbllog '+result.DblLogin+' --> '+res)
  	},
  	true );

//    alert ('обнаружено с '+login+' '+res)
	if (res) {
	// alert ('Наводим фокус')	//	form.UserLogin.focus()		 return false
	}
	else return true}

// сохраняем данные формы
function fix_data()
{
	var frm=document.getElementById('reg_form')
	for(i=0; i<(frm.elements.length); i++){
	fld_value=trim(frm.elements[i].value)
		switch(frm.elements[i].name)	 {
		    case 'UserName': UserName=fld_value; break;
		    case 'UserMainName': UserMainName=fld_value; break;
		    case 'UserSign':UserSign=fld_value; break;
		    case 'UserLogin':
		    	UserLogin=fld_value; break;

		    case 'UserPass':
		    	UserPass=fld_value; break;
		    case 'UserEmail':UserEmail=fld_value; break;
		    case 'Company': Company=fld_value; break;
		    case 'CompanyPost': CompanyPost=fld_value; break;
		    case 'UserTel': UserTel=fld_value; break;
		    case 'CompanyWEB': CompanyWEB=fld_value; break;
		    case 'OKPO': OKPO=fld_value; break;
		    case 'user_type': user_type=fld_value; break;
		    case 'user_id': user_id=fld_value;
debug('user_id='+user_id);


		    break;
		    case 'user_checked':
		    	if (frm.elements[i].checked) user_checked=1
		    	else user_checked=1
		    break

		}
	}
}


// проверяем данные формы для различных типов регистрации
function chk_data()
{
   CheckDblLogin()
  //  return false          // ДЛЯ ОЛАДКИ
	  		warning=Array()
	   		if (!chk_mail(UserEmail)) warning[warning.length]='E-mail'
		   	if (user_type!=4) {  	 	  	if (UserName.length == 0 ) warning[warning.length]='Имя'
	  		if (UserMainName.length==0) warning[warning.length]='Фамилия'
			if (UserSign.length==0) warning[warning.length]='Подпись'
			if (UserLogin.length < 6 ) warning[warning.length]='Логин (должен быть 6-12 символов)'
			if (UserPass.length < 6 ) warning[warning.length]='Пароль (должен быть 6-12 символов)'   }

   if (user_type==2){   	   if (Company.length==0) warning[warning.length]='Компания'
   	   if (CompanyPost.length==0) warning[warning.length]='Должность'   }

var retval=new String()
   retval=''

   if (warning.length) {   	   retval='При заполнении формы вы не указали или указали неверно информацию в '
   	   if(warning.length==1) retval+=' поле '
   	   else retval+=' полях:<br> '
   	   for(i=0; i<warning.length; i++){   	   	 retval+=warning[i]+'<br>'   	   }
   		retval+='<input type="button" value="Продолжить редактирование" onclick="reg_form('+user_type+')">'
   		d=0
   		if (user_id!=0) { retval+='<br><input type="button" value="Восстановить первоначальные значения" onclick="get_user_data()">'
   		 d=30
   		}

   		RR_wndw(350,((warning.length)*30)+60+d)
   		document.getElementById('RR_wndw_header').innerHTML='Ошибка!'
   		document.getElementById('RR_wndw_body').innerHTML=retval
              return false   }

   return true
}


// получение данных для редактирования

function get_user_data()
{
    JsHttpRequest.query(
    	'/BEX_RR/get_user_data.php',
    	{
    	userID:  user_id
    	},
    	function (result, error){
    		if (result.error==1) {				RR_msg(150,100,'ERROR','Не удалось получиь данные пользователя. Обратитесь к администратору.'+'<br>'+error)    		} else {
    		    user_name=result.user_name
 	   	    	user_type=result.user_type
 	   	    	UserSign=result.sign
 	   	    	UserLogin=result.login
 	   	    	UserPass=result.pass
				UserName=result.Name
				UserMainName=result.MainName
				Company=result.Company
				CompanyWEB=result.CompanyWEB
				CompanyPost=result.CompanyPost
				UserTel=result.userTel
				UserEmail=result.userMail
				OKPO=result.OKPO
				user_checked=result.checked


				reg_form(user_type)
    		}

    	},
    	true );

//	alert (user_type)
 //     reg_form(user_type)
}

// save_user_data  ***************************************************************************

function save_user_data(){// все данные формы прописываем во внутренние переменные
	fix_data()

// проверяем правильность ввода
// если ошибки - сообщаем и два варианта - прекратить - продолжить
// редактирование	- если инфа была из базы - восстановить значения

	if(!chk_data()) return
       JsHttpRequest.query(
       	'/BEX_RR/save_user_data.php',
       	{
	       	pUserName : UserName,
		    pUserMainName : UserMainName,
		    pUserSign : UserSign,
		    pUserLogin : UserLogin,
		    pUserPass : UserPass,
		    pUserEmail : UserEmail,
		    pCompany : Company,
		    pCompanyPost : CompanyPost,
		    pCompanyWEB : CompanyWEB,
		    pUserTel : UserTel,
		    pOKPO : OKPO,
		    puser_type : user_type,
		    puser_id : user_id,
		    puser_checked:	user_checked
       	},
       	function (result, error){       		debug(error)
       	   if (result.error!=0){    		error_msg=result.warning
    		error_msg+='<input type="button" value="Продолжить редактирование" onclick="reg_form()">'
	   			if (user_id)
	   				{ error_msg+='<br><input type="button" value="Восстановить первоначальные значения" onclick="get_user_data()">'
	   				}
	       	      RR_wndw(350,350)
	   				document.getElementById('RR_wndw_header').innerHTML='Ошибка!'
			   		document.getElementById('RR_wndw_body').innerHTML=error_msg       	   	} else {
       	   	var  save_msg='Регистрация компаний (фрилансеров) модерируется вручную. Код активации будет выслан на указанный Вами e-mail'
  		switch (user_type) {
       	   		case '1':
               case '2':
               case '3':
                if (user_id!=0) save_msg='Ваши данные изменены...'+user_id
                else  save_msg='Регистрация прошла успешно. Запись будет активирована после проверки модератором. '+user_id
                 break
               case '4':
                   save_msg='Вы подписаны на рассылку BOTEXPERT'
                 break
             }
                close_RR_wndw()
                 RR_wndw(300,300)
                document.getElementById('RR_wndw_header').innerHTML='Результат регистрации'
			   		document.getElementById('RR_wndw_body').innerHTML=save_msg
                // RR_self_close_msg(200,50,'#00FF00',save_msg)

       	   	}
       	},
       	true );

}



// форма регистрации
function reg_form(reg_type)
{
  luser_type=parseInt(reg_type)
  W=325
  if (!user_id) reset_data()
   var W=400
   var H
	switch (luser_type) {
   case 1:
        if (user_id!=0) header='Редактирование данных посетителя'
        else header='Регистрация посетителя'
		H=260
	switch (uatype) {
	   case 'msie6':
          H=80
    	 break
	   case 'msie7':
           H=280
    	 break
	 }



     break;
   case 2:
        if (user_id!=0) header='Редактирование данных администратора компании'
        else header='Регистрация администратора компании'
        H=320
        switch (uatype) {
	   case 'msie6':
          H=80
    	 break
	   case 'msie7':
           H=330
    	 break
	 }
     break;
   case 3:
        if (user_id!=0) header='Редактирование данных фрилансера'
        else header='Регистрация фрилансера'
        H=240
        W=295
        switch (uatype) {
	   case 'msie6':
          H=80
    	 break
	   case 'msie7':
           H=250
    	 break
	 }


     break;
     case 4:
          header='Подписка на новости'
          H=120
          W=295
          switch (uatype) {
	   case 'msie6':
          H=80
    	 break
	   case 'msie7':
           H=120
    	 break
	 }


     break;
 }

 if (user_edit_admin_mode) { 	header+=' ADMIN MODE'
 	H+=30
 }

    RR_wndw(W,H)

     document.getElementById('RR_wndw_header').innerHTML=header

    form='<form style="margin-top: 0; margin-bottom: 0; border: none;" id="reg_form" name="reg_form"  action="" method="post" class="inputFORM" enctype="multipart/form-data" >'
    form+='<input name="user_type" type="hidden" value="'+luser_type+'"><input name="user_id" type="hidden" value="'+user_id+'"><table>'
    form+='<tr><td>Имя</td><td><input name="UserName" type="text" value="'+UserName+'" ></td></tr>'
    form+='<tr><td>Фамилия</td><td><input name="UserMainName" type="text" value="'+UserMainName+'"></td></tr>'
	if (reg_type!=4)    {
	    form+='<tr><td>Подпись</td><td><input name="UserSign" type="text" value="'+UserSign+'" title="Этим именем будут подписываться Ваши комментарии"></td></tr>'
	    form+='<tr><td>Логин(Login)</td><td><input name="UserLogin" type="text" value="'+UserLogin+'" title="Латинские символы, цифры... без пробелов" onChange="CheckDblLogin()"></td></tr>'
	    form+='<tr><td>Пароль (Password)</td><td><input name="UserPass" type="text" value="'+UserPass+'" title="6-10 латинских символов и/или цифр. Без пробелов" ></td></tr>'
	 }
	    form+='<tr><td>Электронная почта </td><td><input name="UserEmail" type="text" value="'+UserEmail+'" title="Этот адрес необходим для активизации эккаунта"></td></tr>'
	 if (reg_type!=4)    {
	    if (reg_type!=3){
		   form+='<tr><td>Место работы, компания </td><td><input name="Company" type="text" value="'+Company+'" title=></td></tr>'
if (reg_type==2)form+='<tr><td>WEB-site компания </td><td><input name="CompanyWEB" type="text" value="'+CompanyWEB+'" title=></td></tr>'
		   form+='<tr><td>Должность</td><td><input name="CompanyPost" type="text" value="'+CompanyPost+'" ></td></tr>'
	   }
	   form+='<tr><td>Телефон / факс.</td><td><input name="UserTel" type="text" value="'+UserTel+'" title="Для оперативной савязи "></td></tr>'
	   if (reg_type!=1)  form+='<tr><td>ОКПО/Персон. налог №</td><td><input name="OKPO" type="text" value="'+OKPO+'" title="Необходим для однозначной идентификации компаний. Если не хотите указывать - оставьте пустым..." ></td></tr>'
	}
if (user_edit_admin_mode){	form+='<input name="Name" type="checkbox" value="ON"'
	if (UserChecked) form+=' check '
	form+=' >'}
    form+='</table><input type="button" value="Отправить" onclick="save_user_data(); return false"></form>'
  document.getElementById('RR_wndw_body').innerHTML=form
}


function check_browser() {
		var browser = 'undeterminate browser';

	if (navigator.userAgent.indexOf ('MSIE 5.5') != -1)	return 'MSIE 5.5'
	else if	(navigator.userAgent.indexOf ('MSIE 6') != -1)	return 'MSIE 6'
	else if	(navigator.userAgent.indexOf ('MSIE 7') != -1)	return 'MSIE 7'

	}

