var users_search_time;

function GetLoginPopup ()
{
	var popup_id = ShowPopupDialog ( 'Загрузка...<br />' + big_progress_bar );
    DoPopupPosition ( popup_id );
    
    var data = {
        popup_id: popup_id
    };
    
    request ( 'users', 'get_login_form', '', 'GET', data, 'IncludeGeneratedContent', "'" + popup_id + "'" );
}

function LoginSubmit ( popup_id )
{
    request ( 'users', 'get_login', '', 'POST', '', 'AfterLoginSubmit', "'" + popup_id + "'", 'login_form' );
}

function AfterLoginSubmit ( popup_id, data )
{
	if ( data.error )
	{
		var popup_error_id = ShowPopupDialog ( '' );
		
		document.getElementById ( 'popup_main_' + popup_error_id ).innerHTML = data.error.replace ( '{POPUP_ID}', popup_error_id );
		
    	DoPopupPosition ( popup_error_id );
	} else {
		window.open ( location.href, '_top' );
//		ClosePopupDialog ( popup_id );
//
//		document.getElementById ( 'global_container' ).innerHTML = data.cp + data.content;
//		
//		eval ( data.js );
//		AfterLoginAction ();
	}
}

/* USER SUGGEST */

var timeout;

var suggest_element;

function UserSuggest()
{
	suggest_element = document.getElementById( 'user' );

	timeout = setTimeout( 'UserSuggestSendRequest();', 1000 );
}

function UserSuggestSendRequest()
{
	if ( suggest_element.value != '' )
	{
		var data = {
			suggest : suggest_element.value
		}
	
		clearTimeout( timeout );
		
		request ( 'users', 'search_users_by_login', '', 'GET', data, 'UserSuggestFinalize' );
	} else {
		document.getElementById( 'user_suggest_area' ).innerHTML = '';
		suggest_element.focus();
	}
}

function UserSuggestFinalize( data )
{
	document.getElementById( 'user_suggest_area' ).innerHTML = '';
	
	var select = document.createElement( 'select' );
		select.id               = 'user_suggest';
		select.name             = 'user_suggest';
		select.size             = 10;
		select.className        = 'edit';
		select.style.width      = '350px';
		
		if ( select.attachEvent )
		{
			select.attachEvent( 'onkeydown', UserSuggestSetSelected );
		} else {
			select.addEventListener( 'keydown', UserSuggestSetSelected, false );
		}
	
	var option;
		
	var i = 0;
	
	for( var key in data.content )
	{
		option = document.createElement( 'option' );
		option.value     = key;
		option.innerHTML = data.content[key];
		
		if ( i == 0 )
		{
			option.selected = true;
		}
		
		select.appendChild( option );
		
		i++;
	}
	
	if ( i > 0 )
	{
		document.getElementById( 'user_suggest_area' ).appendChild( select );
	
		select.focus();
	} else {
		document.getElementById( 'userid' ).value = 0;
	}
}

function UserSuggestSetSelected( event )
{
	if ( !event ) var event = window.event;
	
	var element = document.getElementById( 'user_suggest' );
	
	if ( event.keyCode == 13 )
	{
		document.getElementById( 'user' ).value   = element.options[element.selectedIndex].innerHTML;
		document.getElementById( 'userid' ).value = element.options[element.selectedIndex].value;
		
		document.getElementById( 'user_suggest_area' ).removeChild( element );
	}
	
	if ( event.keyCode != 13 && event.keyCode != 40 && event.keyCode != 38 )
	{
		document.getElementById( 'user' ).focus();
		
		if ( event.keyCode == 8 && document.getElementById( 'user' ).value == '' )
		{
			document.getElementById( 'user_suggest_area' ).removeChild( element );
		}
	}
}

// USER SUGGEST 2

function GetUsersSearch ()
{
	var popup_id = ShowPopupDialog ( big_progress_bar );
    DoPopupPosition ( popup_id );
    
    var data = {
        popup_id: popup_id
    };
    
    request ( 'users', 'get_users_search_dialog', '', 'GET', data, 'IncludeGeneratedContent', "'" + popup_id + "'" );
}

function StartUsersSearchTimeout ( popup_id )
{
	if ( users_search_time )
	{
		clearTimeout ( users_search_time );
	}
	
	users_search_time = setTimeout ( 'SearchUsers(\'' + popup_id + '\')', 1000 );
}

function SearchUsers ( popup_id )
{
	document.getElementById ( 'users_search_wait' ).innerHTML = 'Ждите...';
	
	var val = document.getElementById ( 'users_query_input' ).value;
	
	var data = {
        val: val
    };
    
    request ( 'users', 'search_users', '', 'GET', data, 'BuildUsersSearchTable', "'" + popup_id + "'" );
}

function BuildUsersSearchTable ( popup_id, data )
{
	var cont = document.getElementById ( 'users_table' );
	
	if ( data.users.length == 0 )
	{
		cont.innerHTML = '<br />Не найдено ни одного пользователя.';
	} else {
		var table;
		var td;
		var tr;
		var th;
		var text;
		
		table = document.createElement ( 'table' );
		table.setAttribute ( 'class', 'ts_2' );
		table.setAttribute ( 'cellspacing', 0 );
		
		tr = document.createElement ( 'tr' );
		table.appendChild ( tr );
		
		th = document.createElement ( 'th' );
		tr.appendChild ( th );
		
		text = document.createTextNode ( 'Пользователи' );
	    th.appendChild ( text );

		for ( var key = 0; key < data.users.length; key++ )
	    {
			tr = document.createElement ( 'tr' );
			tr.setAttribute ( 'onmouseover', 'setColor( this );' );
			tr.setAttribute ( 'onmouseout',  'unsetColor( this );' );
	
			td = document.createElement ( 'td' );
			td.setAttribute ( 'id', 'found_user_' + data.users[key].id );
			td.setAttribute ( 'class', 'users_search_table_td' );
			td.setAttribute ( 'onclick', 'SelectFoundUser( \'' + popup_id + '\', ' + data.users[key].id + ');' );

			text = document.createTextNode ( data.users[key].name );
	    	td.appendChild ( text );
	    	
	    	tr.appendChild ( td );
			
			table.appendChild ( tr );				
	    }
	    
	    cont.innerHTML = '<br />';
	    cont.appendChild ( table );
	}
	
	document.getElementById ( 'users_search_wait' ).innerHTML = '';
	DoPopupPosition ( popup_id );
}

function SelectFoundUser ( popup_id, id )
{
	var td = document.getElementById ( 'found_user_' + id );
	
	document.getElementById ( 'suggest_user_id' ).value = id;
	document.getElementById ( 'suggest_user_name' ).innerHTML = td.innerHTML;
	
	ClosePopupDialog ( popup_id );
}
