    var GAME_QUERY_BASE = "";
    var GAME_QUERY_BASE_TEXT = "Все игры";
    var GAME_SORT_BASE = "order by id desc";
    var GAME_SORT_BASE_ITEM = "bylast";
    var GAME_SORT_BASE_INCHANGE = 0;
    var GAME_SEARCH_BASE = "";
    var GAME_SEARCH_BASE_TEXT = "";
    var GAME_DESIGNER_LETTER = 'A';
    var GAME_RELEASER_LETTER = 'A';
    var GamesCatalogCurPage = 1;
    var GamesCommentsCurPage = 1;
    var GamesCatalogPages = 1;
    var GamesCatalogOnPage = 1;
    var Games = new Array();
    
    var SessionGames = new Array();
    var SessionGamesPtr = -1;

    var gamesfullview = 1;

    var imgGamesCatalog = new Image();
    imgGamesCatalog.src = '/images/Catalog.jpg';
    var imgGamesGame = new Image();
    imgGamesGame.src = '/images/Games.jpg';
    var imgGamesSearch = new Image();
    imgGamesSearch.src = '/images/Search.jpg';
    var imgGamesInfo = new Image();
    imgGamesInfo.src = '/images/Info.jpg';
    var imgGamesAdmin = new Image();
    imgGamesAdmin.src = '/images/Admin.jpg';

    var imgGamesCatalog_press = new Image();
    imgGamesCatalog_press.src = '/images/Catalog_press.jpg';
    var imgGamesGame_press = new Image();
    imgGamesGame_press.src = '/images/Games_press.jpg';
    var imgGamesSearch_press = new Image();
    imgGamesSearch_press.src = '/images/Search_press.jpg';
    var imgGamesInfo_press = new Image();
    imgGamesInfo_press.src = '/images/Info_press.jpg';
    var imgGamesAdmin_press = new Image();
    imgGamesAdmin_press.src = '/images/Admin_press.jpg';

    function GamesInit() {
      GetGamesSearchBlock();
      
      ShowGamesBasePage();
      
      if (PRE_SHOW_GAME != '') {
        ShowPages(4);
        ShowGame(PRE_SHOW_GAME, 1);
      }
    }

    function DrawGamesCatalogPages() {
       // Формируем данные для панели со страницами
       $pages_text = "Страницы (всего: " + GamesCatalogPages + "):&nbsp;&nbsp;";
//       $pages_num_text = "";
       $space = 0;
       if (GamesCatalogCurPage > 1) {
         $pages_text = $pages_text + "<span onclick='GamesBackPage()'>&larr; предыдущая</span>&nbsp;&nbsp;&nbsp;[&nbsp;&nbsp;";
       } else {
         $pages_text = $pages_text + "<font style='color : #AAAAAA;'>&larr; предыдущая</font>&nbsp;&nbsp;&nbsp;[&nbsp;&nbsp;";
       }

       for (i = 1; i <= GamesCatalogPages; i++)
       {                                       
         if (i == GamesCatalogCurPage) {       
           if ($space == 1) $pages_text = $pages_text + "&nbsp;";
           $pages_text = $pages_text + "<font style='font-weight:bold; background:#7ABCE8; padding-left : 3px; padding-right : 3px;'>" + i + "</font>&nbsp;";
         } else {           
           if (Math.abs(i - GamesCatalogCurPage) <= 5) {          
             if ($space == 1) $pages_text = $pages_text + "&nbsp;";     
             $pages_text = $pages_text + "<span onclick='GoGamesPage(" + i + ")' title='Перейти на страницу " + i + "'>" + i + "</span>&nbsp;";   
           }
         }        
       }        
         
       if (GamesCatalogCurPage < GamesCatalogPages) {
         $pages_text = $pages_text + "&nbsp;&nbsp;]&nbsp;&nbsp;&nbsp;<span onclick='GamesForwardPage()'>следующая &rarr;</span>";                                 
       } else {
         $pages_text = $pages_text + "&nbsp;&nbsp;]&nbsp;&nbsp;&nbsp;<font style='color : #AAAAAA;'>следующая &rarr;</font>";                                
       }
       
       document.getElementById('GamesBaseCaption').innerHTML = "Выборка: <font style='font-family: Arial; font-weight : bold;'>" + GAME_QUERY_BASE_TEXT + "</font>";
       document.getElementById('GamesBaseSort').innerHTML = "<table border='0' width='175' cellpadding='0' cellspacing='0'><tr><td class='pages' valign='top' nowrap='1' style='padding-top : 5px;' align='right'>Сортировка по:</td><td valign='top' width='125'><select id='edtGamesSortByTop' onchange='GamesSort();' style='background-color : #c5e5ff;'><option value='bylast'>дате добавления</option><option value='byname'>названию</option><option value='bynameorig'>оригинальному названию</option><option value='byyear'>году выпуска</option><option value='byrating'>рейтингу</option></select></td></tr></table>";
       
       document.getElementById('GamesBasePagesTop').innerHTML = "<table border='0' width='100%' cellpadding='0' cellspacing='0'><tr><td class='pages'>" + $pages_text + "</td></tr></table>";
       document.getElementById('GamesBasePagesBottom').innerHTML = "<table border='0' width='100%' cellpadding='0'><tr><td class='pages'>" + $pages_text + "<br/></td></tr></table>";
       
       GAME_SORT_BASE_INCHANGE = 1;
       document.getElementById('edtGamesSortByTop').value = GAME_SORT_BASE_ITEM;
       GAME_SORT_BASE_INCHANGE = 0;
    }
    
    function DrawGamesCatalogGames() {
       var req = new JsHttpRequest();
        
       req.onreadystatechange = function() {
           if (req.readyState == 4) {
             document.getElementById('GamesBaseCatalog').innerHTML = req.responseText;
           }
       }
         
       // Расчет страниц
       $first_pos = (GamesCatalogCurPage - 1) * GamesCatalogOnPage + 1;
       $last_pos = GamesCatalogCurPage * GamesCatalogOnPage;
       
       var games = new Array();
       number = 1;
       for (i = $first_pos - 1; i < $last_pos; i++)
       {
         games[number] = Games[i];
         number = number + 1;
       }
       
       lgamesfullview = gamesfullview;
       if (gamesfullview == 1) {
         if (GamesCatalogCurPage > 1) {
           lgamesfullview = 0;
         }
       }
       
       req.open(null, '../functions/games_game_base.php', true);
       req.send( { cmd: 'getgames', idset: games, num: $first_pos, full_view: lgamesfullview } );
    }
    
    function ShowGamesBasePage() {
         var req = new JsHttpRequest();
        
         req.onreadystatechange = function() {
             if (req.readyState == 4) {
               GamesCatalogCurPage = 1;
               GamesCatalogPages = req.responseJS.pagesnum;
               GamesCatalogOnPage = req.responseJS.itemsonpage;
               Games = req.responseJS.games;
               gamesfullview = req.responseJS.fullview;
               
               if (GamesCatalogPages > 0) {
           //      
                 DrawGamesCatalogPages();
                 DrawGamesCatalogGames();
               } else {
           //      
                 document.getElementById('GamesBasePagesTop').innerHTML = '';
                 document.getElementById('GamesBasePagesBottom').innerHTML = '<table border="0" width="100%"><tr><td align="center" class="clearpage"><b>По запросу ничего не найдено. Пересмотрите критерии поиска.</b></td></tr></table>';
                 document.getElementById('GamesBaseCatalog').innerHTML = '';
               }
             }
         }
         
         req.caching = false;
         req.open(null, '../functions/games_game_base.php', true);
         req.send( { cmd: 'getbase', query: GAME_QUERY_BASE, sort: GAME_SORT_BASE } );
    }
    
    function ShowGamesPages(num) {
      switch(num) {
       case 1:
         Show('GamesBase'); Hide('GamesGame'); Hide('GamesSearch'); Hide('GamesInfo'); Hide('GamesEdit');
         document.getElementById('imgGamesCatalog').src = imgGamesCatalog_press.src;
         document.getElementById('imgGamesGame').src = imgGamesGame.src;
         document.getElementById('imgGamesSearch').src = imgGamesSearch.src;
         document.getElementById('imgGamesInfo').src = imgGamesInfo.src;
         document.getElementById('imgGamesAdmin').src = imgGamesAdmin.src;
         
         Show('divGamesTopBlock');
         if (document.getElementById('GamesBase').innerHTML == '') {
           ShowGamesBasePage();
         }
         break;
       case 2:
         Hide('GamesBase'); Show('GamesGame'); Hide('GamesSearch'); Hide('GamesInfo'); Hide('GamesEdit');
         document.getElementById('imgGamesCatalog').src = imgGamesCatalog.src;
         document.getElementById('imgGamesGame').src = imgGamesGame_press.src;
         document.getElementById('imgGamesSearch').src = imgGamesSearch.src;
         document.getElementById('imgGamesInfo').src = imgGamesInfo.src;
         document.getElementById('imgGamesAdmin').src = imgGamesAdmin.src;
         Hide('divGamesTopBlock');
         break;
       case 3:
         Hide('GamesBase'); Hide('GamesGame'); Show('GamesSearch'); Hide('GamesInfo'); Hide('GamesEdit');
         document.getElementById('imgGamesCatalog').src = imgGamesCatalog.src;
         document.getElementById('imgGamesGame').src = imgGamesGame.src;
         document.getElementById('imgGamesSearch').src = imgGamesSearch_press.src;
         document.getElementById('imgGamesInfo').src = imgGamesInfo.src;
         document.getElementById('imgGamesAdmin').src = imgGamesAdmin.src;
         Hide('divGamesTopBlock');
         break;
       case 4:
         Hide('GamesBase'); Hide('GamesGame'); Hide('GamesSearch'); Show('GamesInfo'); Hide('GamesEdit');
         document.getElementById('imgGamesCatalog').src = imgGamesCatalog.src;
         document.getElementById('imgGamesGame').src = imgGamesGame.src;
         document.getElementById('imgGamesSearch').src = imgGamesSearch.src;
         document.getElementById('imgGamesInfo').src = imgGamesInfo_press.src;
         document.getElementById('imgGamesAdmin').src = imgGamesAdmin.src;
         Hide('divGamesTopBlock');
         break;
       case 5:
         Hide('GamesBase'); Hide('GamesGame'); Hide('GamesSearch'); Hide('GamesInfo'); Show('GamesEdit');
         document.getElementById('imgGamesCatalog').src = imgGamesCatalog.src;
         document.getElementById('imgGamesGame').src = imgGamesGame.src;
         document.getElementById('imgGamesSearch').src = imgGamesSearch.src;
         document.getElementById('imgGamesInfo').src = imgGamesInfo.src;
         document.getElementById('imgGamesAdmin').src = imgGamesAdmin_press.src;
         
         Hide('divGamesTopBlock');
         if (document.getElementById('EditGamesGame').innerHTML == '') {
           ShowEditGamesPages(1);
         }
         break;
      }
    }

    function DrawSessionGames(marked) {
         Result = "<table border='0' width='100%' cellspacing='0' align='center'>\n";
            
         SGLen = SessionGames.length;
         SGNum = 1;
         if (SGLen > 0) {
           for (i in SessionGames) {
             if (SessionGames[i][0] > 0) {
               if (i == marked) {
                 cellstyle = 'list_pcell_dark';
                 cellstyle2 = 'list_pcell_dark';
               } else {
                 cellstyle = 'list_cell_dark';
                 cellstyle2 = 'list_session_cell_dark';
               }
               
               Result = Result + "<tr onMouseOver=\"Show('gsm1_" + SGNum + "');\" onMouseOut=\"Hide('gsm1_" + SGNum + "');\"><td width='1' valign='top'>" + SGNum + ":&nbsp;</td><td class='" + cellstyle2 + "'><span onclick='ShowGame(" + SessionGames[i][2] + ",0)' title='Переход к игре' class='" + cellstyle + "'>" + SessionGames[i][1] + "</span></td><td width='1%' align='right' valign='top' class='" + cellstyle + "'><div style='position: relative;'><span onclick='DeleteSessionGames(" + i + ")'><img border='0' height='16' width='16' title='Удалить' src='images/delete_18.gif' style='position:absolute;left:-12px;display:none' id='gsm1_" + SGNum + "'></span></div></TD></tr>";
               SGNum = SGNum + 1;
             }
           }
         }
         
         Result = Result + "</table>";
         document.getElementById('divSessionGames').innerHTML = Result;
         if (SGLen > 0) {
           Show('divSessionGamesButton');
         } else {
           Hide('divSessionGamesButton');
         }
    }
    
    function DeleteSessionGames(id) {
      SessionGames[id][0] = "0";
      
      if (document.getElementById('edtEdit')) {
        var req = new JsHttpRequest();
         
        req.onreadystatechange = function() {
            if (req.readyState == 4) { 
            }
        }
        
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'delsessiongame', gmid: SessionGames[id][2] } );
      }
      
      DrawSessionGames(-1);
    }
    
    function DeleteAllSessionGames() {
      SessionGames = new Array();
      SessionGamesPtr = -1;
      
      if (document.getElementById('edtEdit')) {
        var req = new JsHttpRequest();
         
        req.onreadystatechange = function() {
            if (req.readyState == 4) { 
            }
        }
        
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'delallsessiongame' } );
      }
      
      DrawSessionGames(-1);
    }
    
    function AddSessionGames(name, idx) {
      Marked = -1;
      SGExist = 0; 
      SGLen = SessionGames.length;
      if (SGLen > 0) {
        for (i in SessionGames) {
           if ((SessionGames[i][0] > 0) && (SessionGames[i][2] == idx)) {
             SGExist = 1; Marked = i;
           }
        }
      }
              
      GamesMarked = -1;
      if (SGExist == 0) {
        SessionGamesPtr = SessionGamesPtr + 1;
        SessionGames[SessionGamesPtr] = new Array("1", name, idx);
        GamesMarked = SessionGamesPtr;
              
        if (document.getElementById('edtEdit')) {
          var req = new JsHttpRequest();
           
          req.onreadystatechange = function() {
              if (req.readyState == 4) { 
              }
          }
        
          req.open(null, '../functions/games_game_base.php', true);
          req.send( { cmd: 'addsessiongame', gmid: idx } );
        }
      } 
      
      DrawSessionGames(GamesMarked);
    }
    
    function DrawGameRate() {
      var req = new JsHttpRequest();
        
      req.onreadystatechange = function() {
          if (req.readyState == 4) { 
            document.getElementById('divGameRatings').innerHTML = req.responseText;
          }
      }
        
      req.open(null, '../functions/games_game_base.php', true);
      req.send( { cmd: 'getgamerate', gmid: document.getElementById('Game_ID').value } );
    }
    
    function ShowGame(gmid, addtosessiongames) {
      var req = new JsHttpRequest();
        
      req.onreadystatechange = function() {
          if (req.readyState == 4) { 
            
            scrollTo(0,0);
            document.getElementById('GamesGame').innerHTML = req.responseText;
            $gamename = req.responseJS.gamename;
            $gameidx = req.responseJS.gameid;
              
            GamesCommentsCurPage = 1;
            LoadGamesComments(gmid);
            
            if (addtosessiongames == 1) {
              AddSessionGames($gamename, $gameidx);
            } else {
              GamesMarked = -1;
              SGLen = SessionGames.length;
              if (SGLen > 0) {
                for (i in SessionGames) {
                  if ((SessionGames[i][0] > 0) && (SessionGames[i][2] == $gameidx)) {
                    GamesMarked = i;
                  }
                }
              }
              DrawSessionGames(GamesMarked);
            }
          }
      }
        
      req.open(null, '../functions/games_game_base.php', true);
      req.send( { cmd: 'getgame', id: gmid } );
      
      ShowGamesPages(2);
    }
    
    function LoadGamesComments(gmid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) { 
              document.getElementById('divGameCommentsPages').innerHTML = req.responseJS.pages;
              document.getElementById('divGameComments').innerHTML = req.responseText;
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'getcomments', gmid: gmid, page: GamesCommentsCurPage } );
    }
    
    function DoGamesComments(gmid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              LoadGamesComments(gmid);
              document.getElementById('GamesComments').edtCommentText.value = '';
            }
        }
      
        $comment = document.getElementById('GamesComments').edtCommentText.value;
        if ($comment == '') {
          alert('Вы не ввели текст вашего комментария к игре !');
        } else {
          req.open(null, '../functions/games_game_base.php', true);
          req.send( { cmd: 'addcomments', gmid: gmid, comment: $comment } );
        }
    }
    
    function AddGamesCommentImageCode(id) {
      document.getElementById('GamesComments').edtCommentText.value =  document.getElementById('GamesComments').edtCommentText.value + "*[" + id + "]";
      document.getElementById('GamesComments').edtCommentText.focus();
    }
    
    function DeleteGamesComment(gmid, id) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              LoadGamesComments(gmid);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'delcomment', id: id } );
    }
    
    function GamesBackPage(num) {
      GamesCatalogCurPage = GamesCatalogCurPage - 1;
      
      
      DrawGamesCatalogPages();
      DrawGamesCatalogGames();
    }
    
    function GamesForwardPage(num) {
      GamesCatalogCurPage = GamesCatalogCurPage + 1;
      
      
      DrawGamesCatalogPages();
      DrawGamesCatalogGames();
    }
    
    function GoGamesPage(num) {
      GamesCatalogCurPage = num;
      
      
      DrawGamesCatalogPages();
      DrawGamesCatalogGames();
    }
    
    function GoGamesCommentPage(gmid, num) {
      GamesCommentsCurPage = num;
      
      LoadGamesComments(gmid);
    }
    
    function GamesSearchTableSimple(sort) {
         var req = new JsHttpRequest();
        
         req.onreadystatechange = function() {
             if (req.readyState == 4) {
               document.getElementById('divGamesSearchResults').innerHTML = req.responseText;
               Show('divGamesSearchResults');
             }
         }
         
         req.caching = false;
         req.open(null, '../functions/games_search.php', true);
         req.send( { cmd: 'getsimpletable', query: GAME_SEARCH_BASE, text: GAME_SEARCH_BASE_TEXT, sort: sort } );
    }
    
    function GamesSearch(search_criteria, value, text) {
      switch(search_criteria) {
       case 'genre':
         ShowGamesPages(1);
         GAME_QUERY_BASE = "select games_game.* from games_game join games_game_genre on games_game_genre.gid = '" + value + "' and games_game.id = games_game_genre.gmid";
         GAME_QUERY_BASE_TEXT = "Жанр - <i>" + text + "</i>";
         ShowGamesBasePage();
         break;
       case 'year':
         ShowGamesPages(1);
         GAME_QUERY_BASE = "select * from games_game where year = '" + value + "'";
         GAME_QUERY_BASE_TEXT = "Год выпуска - " + value;
         ShowGamesBasePage();
         break;
       case 'letter':
         ShowGamesPages(1);
         GAME_QUERY_BASE = "select * from games_game where LEFT(name, 1) = '" + value + "' OR LEFT(name_orig, 1) = '" + value + "'";
         GAME_QUERY_BASE_TEXT = "Буква названия - " + value;
         ShowGamesBasePage();
         break;
       case 'add_date':
         ShowGamesPages(1);
         GAME_QUERY_BASE = "select * from games_game where LEFT(added_by_date, 11) = '" + value + "'";
         GAME_QUERY_BASE_TEXT = "Дата добавления фильма - " + value;
         ShowGamesBasePage();
         break;
       case 'simple':
         $table = document.getElementById('rdGamesSearchViewTable').checked;
         if ($table == true) {
           OLD_GAME_QUERY_BASE = GAME_QUERY_BASE;
         } else {
           ShowGamesPages(1);
         }
         $TEXT = document.getElementById('frmGamesSimpleSearch').edtGamesSimpleString.value;
         GAME_QUERY_BASE = "select * from games_game where ";
         $ONE_EXIST = 0;
         if ((document.getElementById('frmGamesSimpleSearch').chkGamesSimpleName.checked) || (document.getElementById('frmGamesSimpleSearch').chkGamesSimpleAll.checked)) {
           GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + $TEXT + "',name) > 0 ";
           $ONE_EXIST = 1;
         }
         if ((document.getElementById('frmGamesSimpleSearch').chkGamesSimpleNameOrig.checked) || (document.getElementById('frmGamesSimpleSearch').chkGamesSimpleAll.checked)) {
           if ($ONE_EXIST == 1) { GAME_QUERY_BASE = GAME_QUERY_BASE + "OR "; }
           GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + $TEXT + "',name_orig) > 0 ";
           $ONE_EXIST = 1;
         }
         if ((document.getElementById('frmGamesSimpleSearch').chkGamesSimpleYear.checked) || (document.getElementById('frmGamesSimpleSearch').chkGamesSimpleAll.checked)) {
           if ($ONE_EXIST == 1) { GAME_QUERY_BASE = GAME_QUERY_BASE + "OR "; }
           GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + $TEXT + "',year) > 0 ";
           $ONE_EXIST = 1;
         }
         if ((document.getElementById('frmGamesSimpleSearch').chkGamesSimpleDesigner.checked) || (document.getElementById('frmGamesSimpleSearch').chkGamesSimpleAll.checked)) {
           if ($ONE_EXIST == 1) { 
             GAME_QUERY_BASE = "(" + GAME_QUERY_BASE + ") UNION (select games_game.* from games_game join games_game_designers on games_game.id = games_game_designers.gmid join games_designers on games_game_designers.did = games_designers.id and LOCATE('" + $TEXT + "',games_designers.name) > 0) ";
           } else {
             GAME_QUERY_BASE = "select games_game.* from games_game join games_game_designers on games_game.id = games_game_designers.gmid join games_designers on games_game_designers.did = games_designers.id and LOCATE('" + $TEXT + "',games_designers.name) > 0 ";
           }
           $ONE_EXIST = 1;
         }
         if ((document.getElementById('frmGamesSimpleSearch').chkGamesSimpleReleaser.checked) || (document.getElementById('frmGamesSimpleSearch').chkGamesSimpleAll.checked)) {
           if ($ONE_EXIST == 1) { 
             GAME_QUERY_BASE = "(" + GAME_QUERY_BASE + ") UNION (select games_game.* from games_game join games_game_releasers on games_game.id = games_game_releasers.gmid join games_releasers on games_game_releasers.rid = games_releasers.id and LOCATE('" + $TEXT + "',games_releasers.name) > 0) ";
           } else {
             GAME_QUERY_BASE = "select games_game.* from games_game join games_game_releasers on games_game.id = games_game_releasers.gmid join games_releasers on games_game_releasers.rid = games_releasers.id and LOCATE('" + $TEXT + "',games_releasers.name) > 0 ";
           }
           $ONE_EXIST = 1;
         }
         
         if ($table == true) {
           GAME_SEARCH_BASE = GAME_QUERY_BASE;
           GAME_SEARCH_BASE_TEXT = $TEXT;
           GamesSearchTableSimple('order by name');
           GAME_QUERY_BASE = OLD_GAME_QUERY_BASE;
         } else {
           GAME_QUERY_BASE_TEXT = "Простой поиск по строке '" + $TEXT + "'";
           
           ShowGamesBasePage();
         }
         break;
       case 'simplesimple':
         ShowGamesPages(1);
         $TEXT = document.getElementById('edtGamesSearchString').value;
         GAME_QUERY_BASE = "select * from games_game where ";
         GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + $TEXT + "',name) > 0 ";
         GAME_QUERY_BASE = GAME_QUERY_BASE + "OR ";
         GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + $TEXT + "',name_orig) > 0 ";
         GAME_QUERY_BASE = GAME_QUERY_BASE + "OR ";
         GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + $TEXT + "',year) > 0 ";
         GAME_QUERY_BASE = "(" + GAME_QUERY_BASE + ") UNION (select games_game.* from games_game join games_game_designers on games_game.id = games_game_designers.gmid join games_designers on games_game_designers.did = games_designers.id and LOCATE('" + $TEXT + "',games_designers.name) > 0) ";
         GAME_QUERY_BASE_TEXT = "Простой поиск по строке '" + $TEXT + "'";
         ShowGamesBasePage();
         break;
       case 'all':
         ShowGamesPages(1);
         GAME_QUERY_BASE = "";
         GAME_QUERY_BASE_TEXT = "Все игры";
         ShowGamesBasePage();
         break;
       case 'complex':
         $table = document.getElementById('rdGamesSearchViewTable').checked;
         if ($table == true) {
           OLD_GAME_QUERY_BASE = GAME_QUERY_BASE;
         } else {
           ShowGamesPages(1);
         }
         GAME_QUERY_BASE = "select games_game.* from games_game where ";
         $ONE_EXIST = 0;
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexGenre.value != '-1') {
           GAME_QUERY_BASE = "SELECT games_game.* FROM games_game JOIN games_game_genre on games_game.id = games_game_genre.gmid JOIN games_genres on games_game_genre.gid = games_genres.id and games_genres.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexGenre.value + "' ";
           $ONE_EXIST = 1;
         }
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexDesigner.value != '-1') {
           if ($ONE_EXIST == 1) {
             GAME_QUERY_BASE = GAME_QUERY_BASE + "JOIN games_game_designers on games_game.id = games_game_designers.gmid JOIN games_designers on games_game_designers.did = games_designers.id and games_designers.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexDesigner.value + "' ";
           } else {
             GAME_QUERY_BASE = "SELECT games_game.* FROM games_game JOIN games_game_designers on games_game.id = games_game_designers.gmid JOIN games_designers on games_game_designers.did = games_designers.id and games_designers.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexDesigner.value + "' ";
           }
           $ONE_EXIST = 1;
         }
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexReleaser.value != '-1') {
           if ($ONE_EXIST == 1) {
             GAME_QUERY_BASE = GAME_QUERY_BASE + "JOIN games_game_releasers on games_game.id = games_game_releasers.gmid JOIN games_releasers on games_game_releasers.rid = games_releasers.id and games_releasers.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexReleaser.value + "' ";
           } else {
             GAME_QUERY_BASE = "SELECT games_game.* FROM games_game JOIN games_game_releasers on games_game.id = games_game_releasers.gmid JOIN games_releasers on games_game_releasers.rid = games_releasers.id and games_releasers.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexReleaser.value + "' ";
           }
           $ONE_EXIST = 1;
         }
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexRussianReleaser.value != '-1') {
           if ($ONE_EXIST == 1) {
             GAME_QUERY_BASE = GAME_QUERY_BASE + "JOIN games_game_russian_releasers on games_game.id = games_game_russian_releasers.gmid JOIN games_releasers on games_game_russian_releasers.rid = games_releasers.id and games_releasers.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexRussianReleaser.value + "' ";
           } else {
             GAME_QUERY_BASE = "SELECT games_game.* FROM games_game JOIN games_game_russian_releasers on games_game.id = games_game_russian_releasers.gmid JOIN games_releasers on games_game_russian_releasers.rid = games_releasers.id and games_releasers.id = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexRussianReleaser.value + "' ";
           }
           $ONE_EXIST = 1;
         }
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexYear.value != '0') {
           if ($ONE_EXIST == 1) { GAME_QUERY_BASE = GAME_QUERY_BASE + "where "; }
           GAME_QUERY_BASE = GAME_QUERY_BASE + " games_game.year = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexYear.value + "' ";
           $ONE_EXIST = 2;
         }
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexLicense.value != '-1') {
           if ($ONE_EXIST == 1) { GAME_QUERY_BASE = GAME_QUERY_BASE + "where "; }
           if ($ONE_EXIST == 2) { GAME_QUERY_BASE = GAME_QUERY_BASE + "AND "; }
           GAME_QUERY_BASE = GAME_QUERY_BASE + " games_game.license = '" + document.getElementById('frmGamesComplexSearch').edtGamesComplexLicense.value + "' ";
           $ONE_EXIST = 2;
         }
         if (document.getElementById('frmGamesComplexSearch').edtGamesComplexName.value != '') {
           if ($ONE_EXIST == 1) { GAME_QUERY_BASE = GAME_QUERY_BASE + "where "; }
           if ($ONE_EXIST == 2) { GAME_QUERY_BASE = GAME_QUERY_BASE + "AND "; }
           GAME_QUERY_BASE = GAME_QUERY_BASE + " LOCATE('" + document.getElementById('frmGamesComplexSearch').edtGamesComplexName.value + "',games_game.name) > 0 OR LOCATE('" + document.getElementById('frmGamesComplexSearch').edtGamesComplexName.value + "',games_game.name_orig) > 0 OR LOCATE('" + document.getElementById('frmGamesComplexSearch').edtGamesComplexName.value + "',games_game.name_west) > 0 OR LOCATE('" + document.getElementById('frmGamesComplexSearch').edtGamesComplexName.value + "',games_game.name_alt) > 0 ";
           $ONE_EXIST = 2;
         }
         
         if ($ONE_EXIST == 0) { GAME_QUERY_BASE = GAME_QUERY_BASE + "id > 0"; }
         
         if ($table == true) {
           GAME_SEARCH_BASE = GAME_QUERY_BASE;
           GAME_SEARCH_BASE_TEXT = "Сложный поиск по заданным условиям";
           GamesSearchTableSimple('order by name');
           GAME_QUERY_BASE = OLD_GAME_QUERY_BASE;
         } else {
           GAME_QUERY_BASE_TEXT = "Сложный поиск по заданным условиям";
           
           ShowGamesBasePage();
         }
         break;
      }
    }
    
    function GamesSort() {
      if (GAME_SORT_BASE_INCHANGE == 1) { return; }
      $sort_criteria = document.getElementById('edtGamesSortByTop').value;
      GAME_SORT_BASE_ITEM = $sort_criteria;
      
      switch($sort_criteria) {
       case 'bylast':
         GAME_SORT_BASE = "order by id desc";
         ShowGamesBasePage();
         break;
       case 'byname':
         GAME_SORT_BASE = "order by name";
         ShowGamesBasePage();
         break;
       case 'bynameorig':
         GAME_SORT_BASE = "order by name_orig";
         ShowGamesBasePage();
         break;
       case 'byyear':
         GAME_SORT_BASE = "order by year desc";
         ShowGamesBasePage();
         break;
       case 'byrating':
         GAME_SORT_BASE = "order by rating desc";
         ShowGamesBasePage();
         break;
      }
    }
    
    function ShowGamesInfo(iid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'getinfo', iid: iid } );
    }

    function ShowGamesGaming(gaid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'getgaming', gaid: gaid } );
    }

    function ShowGamesCheats(chid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'getcheats', chid: chid } );
    }

    function GamePartDownload(pid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'partdownload', pid: pid } );
    }
    
    function ShowGamesPosterBig(url) {
      document.getElementById('GamesInfo').innerHTML = "<span onclick='ShowGamesPages(2);'><img border='0' src='" + url + "'></span>";
      
      ShowGamesPages(4);
    }

    function ShowGamesDesigner(did) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'searchbydesigner', did: did } );
    }

    function ShowGamesReleaser(rid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'searchbyreleaser', rid: rid } );
    }

    function ShowGamesRussianReleaser(rid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'searchbyrussianreleaser', rid: rid } );
    }

    function VoteGame(rate){
               var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              DrawGameRate();
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'votegame', gmid: document.getElementById('Game_ID').value, rating: rate } );
    }
    
    function GetGamesSearchBlock() {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesSearch').innerHTML = req.responseText;
            }
        }
        
        req.open(null, '../functions/games_search.php', true);
        req.send( { cmd: 'getsearchblock' } );
    }
    
    function DoGamesBomber() {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('frmGamesBomber').edtBomberParts.value = '0';
              document.getElementById('frmGamesBomber').edtBomberText.value = '';
              Hide('divGamesBomber');
            }
        }
      
        $part_id = document.getElementById('frmGamesBomber').edtBomberParts.value;
        $text = document.getElementById('frmGamesBomber').edtBomberText.value;
        if ($text == '') { return; }
        
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'addbroken', paid: $part_id, text: $text } );
    }
    
    function MustSeeGame() {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'mustseegame', gmid: document.getElementById('Game_ID').value } );
    }

    function UpGame(gmid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              ShowGamesBasePage();
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'upgame', gmid: gmid } );
    }
    
    function DownGame(gmid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              ShowGamesBasePage();
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'downgame', gmid: gmid } );
    }
    
    function PlayGameFlash() {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('divGameFlashPlayer').innerHTML = req.responseText;
              Show('divGameFlash');
            }
        }
        
        $flid = document.getElementById('GameFlashesList').value;
        if ($flid > 0) {
          req.open(null, '../functions/games_game_base.php', true);
          req.send( { cmd: 'playflash', flid: $flid } );
        }
    }

    function ReviewGame(gmid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'reviewgame', gmid: gmid } );
    }

    function DoReviewGame(gmid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = '';
              
              ShowGame(gmid, 0);
            }
        }
      
        $text = document.getElementById('frmUserReviewGame').edtGamesUserReviewText.value;
        if ($text == '') { return; }
        $text = $text.replace(/'/g,"&#039;");
        $text = $text.replace(/"/g,"&#034;");
        $text = $text.replace(/«/g,"&#171;");
        $text = $text.replace(/»/g,"&#187;");
        
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'doreviewgame', gmid: gmid, text: $text } );
    }

    function ShowGamesUserReview(rid) {
        var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
              
              ShowGamesPages(4);
              scrollTo(0,0);
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'getgamesuserreview', rid: rid } );
    }

    function AddYesGamesUserReview(rid){
               var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'yesgamesuserreview', rid: rid } );
    }
    
    function AddNoGamesUserReview(rid){
               var req = new JsHttpRequest();
        
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              document.getElementById('GamesInfo').innerHTML = req.responseText;
            }
        }
      
        req.open(null, '../functions/games_game_base.php', true);
        req.send( { cmd: 'nogamesuserreview', rid: rid } );
    }
