/*
Script logic :
  event 'load' is triggering :
  StartParsing()
        ParsePageInformation()
            GetCurrentPage()
  Report( collected info )
*/


/*
Todo : additional actions
Todo : analisys of enemy fights
Todo : admin panel

*/


/************************** System variables definition ****************************************/
var map_en         = new Array("a","b","v","g","d","e","e","z","z","i","j","k","l","m","n","o","p","r","s","t","u","f","h","c","c","w","w","x","i","x","e","u","a");
var map_ru         = new Array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я");
var map_ru_capital = new Array("А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Щ","Щ","Ъ","Ы","Ь","Э","Ю","Я");

var ScriptStatus = 'none'; 
var obk_domen = 'http://eastcity.oldcombats.info/';
var AutoLogInCharacters = false;
var RequestActionsFromBotnet = true;
var AutoPilot=false;
var VisitDungeon = true;

var AcceptHighLevelOffers = 21; // value = how much higher can be level

var report_domain = 'http://fatum.lv/test.php';
//var report_domain = 'http://localhost/test.php';
var callback_window;
var callback_param_list = new Array();
var callback_param_values = new Array();

var request_info_domain = report_domain;

var ShopParsingOn = true;
var request_info_window;
var request_info_param_list = new Array();
var request_info_param_values = new Array();
var request_info_ticks =0;

var MyIframeID='data_transport_frame';

var AjaxIframeID='ajax_transport_frame';

function DungeonMovement( l, d ) //location, direction
{
  if ( d.search('север') > -1) d=1;
  else if ( d.search('юг') > -1) d=4;
  else if ( d.search('запад') > -1) d=2;
  else if ( d.search('восток') > -1) d=3;
  
  if ( l=='F1' )
  {
      DungeonStepForward();
  }
  else if ( l == 'E1')
  {
       if ( d == 1 )
       {
          DungeonTurnRight();
       }
       else if ( d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if ( l == 'E2')
  {
       if ( d == 3 )
       {
          DungeonTurnLeft();
       }
       if ( d == 1 )
       {
          DungeonStepForward();
       }

  }
  else if ( l == 'D2')
  {
       if ( d == 1 )
       {
          DungeonStepForward();
       }

  }
  else if ( l == 'C2')
  {
       if ( d == 1 )
       {
          DungeonTurnRight();
       }
       if ( d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if ( l == 'C3')
  {
       if ( d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if ( l == 'C4')
  {
       if ( d == 3 )
       {
          DungeonTurnLeft();
       }
       if ( d == 1 )
       {
          DungeonStepForward();
       }
       if ( d == 2 )
       {
          DungeonStepLeft();
       }
  }
  else if ( l == 'B4')
  {
       if ( d == 1 )
       {
          DungeonTurnLeft();
       }
       if ( d == 2 )
       {
          DungeonStepLeft();
       }
  }
  else if (l=='E8')
  {
       if (d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='E9')
  {
       if (d == 1 )
       {
          DungeonStepForward();
       }
       if (d ==3 )
       {
          DungeonTurnLeft();
       }
       if (d ==4 )
       {
          DungeonStepLeft();
       }
  }
  else if (l=='D4')
  {
       if (d == 2 )
       {
          DungeonTurnLeft();
       }
       if (d == 4 )
       {
          DungeonTurnLeft();
       }
       if (d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='D5')
  {
       if (d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='D6')
  {
       if (d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='D7')
  {
       if (d == 3 )
       {
          DungeonTurnLeft();
       }
       if (d == 1 )
       {
          DungeonTurnLeft();
       }
       if (d == 2 )
       {
          DungeonTurnLeft();
       }
       if (d == 4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='E7')
  {
       if (d == 4 )
       {
          DungeonStepForward();
       }
       if (d ==3 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='F7')
  {
       if (d == 4 )
       {
          DungeonTurnRight();
       }
       if (d ==2 )
       {
          DungeonStepForward();
       }
       if (d ==3 )
       {
          DungeonStepLeft();
       }
  }
  else if (l=='F6')
  {
       if (d ==2 )
       {
          DungeonTurnLeft();
       }
       if (d ==3 )
       {
          DungeonStepForward();
       }
       if (d ==1 )
       {
          DungeonStepForward();
       }
       if (d ==4 )
       {
          DungeonTurnLeft();
       }
  }
  else if (l=='G6')
  {
       if (d ==4 )
       {
          //DungeonStepForward();    // k merlinu
       }
  }
  else if (l=='D9')
  {
       if (d ==1 )
       {
          DungeonStepForward();
       }
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='C9')
  {
       if (d ==1 )
       {
          DungeonTurnRight();
       }
       if (d ==3 )
       {
          DungeonStepForward();
       }
       if (d ==2 )
       {
          DungeonTurnLeft();
       }
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='C10')
  {
       if (d ==3 )
       {
          DungeonStepForward();
       }
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='C11')
  {
       if (d ==3 )
       {
          DungeonTurnLeft();
       }
       if (d ==1 )
       {
          DungeonStepForward();
       }
       if (d ==4 )
       {
          DungeonTurnRight();
       }
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='B11')
  {
       if (d ==1 )
       {
          DungeonStepForward();
       }
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='A11')
  {
       if (d ==1 )
       {
          DungeonTurnRight();
       }
       if (d ==3 )
       {
          DungeonTurnRight();
       }
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='E10')
  {
       if (d ==4 )
       {
          DungeonTurnLeft();
       }
       if (d == 3 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='E11')
  {
       if (d ==4 )
       {
          DungeonStepForward();
       }
       if (d == 3 )
       {
          DungeonTurnRight();
       }
  }
  else if (l=='F11')
  {
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='G11')
  {
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='H11')
  {
       if (d ==4 )
       {
          DungeonTurnRight();
       }
       if (d == 2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='H10')
  {
       if (d ==2 )
       {
          DungeonStepLeft();
       }
  }
  else if (l=='I10')
  {
       if (d ==2 )
       {
          DungeonTurnLeft();
       }
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='J10')
  {
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='K10')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
       if (d ==4 )
       {
          DungeonTurnRight();
       }
  }
  else if (l=='K9')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='K8')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='K7')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='K6')
  {
       if (d ==2 )
       {
          DungeonTurnRight();
       }
       if (d ==1 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='J6')
  {
       if (d ==1 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='I6')
  {
       if (d ==1 )
       {
          DungeonTurnLeft();
       }
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='I5')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='I4')
  {
       if (d ==2 )
       {
          DungeonStepRight();
       }
  }
  else if (l=='I3')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='H3')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='H2')
  {
       if (d ==2 )
       {
          DungeonTurnLeft();
       }
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='I2')
  {
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='J2')
  {
       if (d ==4 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='K2')
  {
       if (d ==4 )
       {
          DungeonTurnLeft();
       }
       if (d ==3 )
       {
          DungeonStepRight();
       }
  }
  else if (l=='H4')
  {
       if (d ==2 )
       {
          DungeonStepForward();
       }
  }
  else if (l=='L2')
  {
       if (d ==3 )
       {
          DungeonTurnLeft();
       }
       if (d ==1 )
       {
          DungeonTurnLeft();
       }
  }
}
function DungeonStepLeft()
{
   document.location.href='http://eastcity.oldcombats.info/j/dungeon?act=move&path=m7';
}

function DungeonStepRight()
{
   document.location.href='http://eastcity.oldcombats.info/j/dungeon?act=move&path=m3';
}
function DungeonTurnLeft()
{
  document.location.href='http://eastcity.oldcombats.info/j/dungeon?act=move&path=rl'
}

function DungeonTurnRight()
{
  document.location.href='http://eastcity.oldcombats.info/j/dungeon?act=move&path=rr'
}

function DungeonStepForward()
{
  document.location.href='http://eastcity.oldcombats.info/j/dungeon?act=move&path=m1';
}

function TurnOffScp( delay )
{
  top.ScriptPaused = true;   alert(top.ScriptPaused);
  setTimeout("top.ScriptPaused=false",delay * 1000);

}
function TestF()
{
    var x = new Array(0,0,0,0);
    var y = new Array(0,0,0,0);
    for (var i =0; i < 1000; i++)
    {
       var test = random_integer(1,4);          x[test-1]++;
       var bkw = Math.ceil(Math.random() * 4);  y[bkw-1]++;
    }
    UpdateDisplayedInformation("1: " + x[0] + "<br>" + "2: " + x[1] + "<br>" + "3: " + x[2] + "<br>" + "4: " + x[3] + "<br>");
    UpdateDisplayedInformation("1: " + y[0] + "<br>" + "2: " + y[1] + "<br>" + "3: " + y[2] + "<br>" + "4: " + y[3] + "<br>");

}
function ParseShopOtdel()
{
    var parsed_shop_page='';
    var cnter=1;
    var textArray;   textArray = document.getElementsByTagName('td');
    for (var i=0;i < textArray.length; i++)
    {
        var ParsedText = textArray[i].innerHTML;

        if ( ( ParsedText.search(/\<table/i) == -1 ) && ( ParsedText.search(/Долговечность/i) >= 0 ) )
        {
          //  var item_shop_id = 0;
            var item_price = 0;
            var item_name ='';
            var item_amount_left =0;

            var s = ParsedText.search(/target\=\"\_blank\"\>/i) + 16;
            var e = ParsedText.substr(s).search(/\<\/a\>/i)+s;
            item_name = ParsedText.substr(s,e-s);


            var s = ParsedText.search(/Цена\: /i) + 6;
            var e = ParsedText.substr(s).search(/ к/i)+s;
            item_price = ParsedText.substr(s,e-s);

            var s = ParsedText.search(/Осталось\: /i) + 10;
            var e = ParsedText.substr(s).search(/ ш/i)+s;
            //alert (s + '/'+ e + '/'+ ParsedText.substr(s) );
            item_amount_left = ParsedText.substr(s,e-s);

            parsed_shop_page += '&in' + cnter + '=' + item_name +  '&ip' + cnter + '=' + item_price + '&ial' + cnter + '=' + item_amount_left;
            cnter++;
         }
    }
    return parsed_shop_page + '&itemsparsed=' + (cnter-1) + '&';
}

function ParseBerezkaOtdel()
{
    var parsed_berezka_page='';
    var cnter=1;
    var textArray;   textArray = document.getElementsByTagName('td');
    for (var i=0;i < textArray.length; i++)
    {
        var ParsedText = textArray[i].innerHTML;

        if ( ( ParsedText.search(/\<table/i) == -1 ) && ( ParsedText.search(/Долговечность/i) >= 0 ) )
        {
          //  var item_shop_id = 0;
            var item_price = 0;
            var item_name ='';
            var item_amount_left =0;

            var s = ParsedText.search(/target\=\"\_blank\"\>/i) + 16;
            var e = ParsedText.substr(s).search(/\<\/a\>/i)+s;
            item_name = ParsedText.substr(s,e-s);


            var s = ParsedText.search(/Цена\: /i) + 6;
            var e = ParsedText.substr(s).search(/ ек/i)+s;
            item_price = ParsedText.substr(s,e-s);

            var s = ParsedText.search(/Осталось\: /i) + 10;
            var e = ParsedText.substr(s).search(/ ш/i)+s;

            item_amount_left = ParsedText.substr(s,e-s);

            parsed_berezka_page += '&inb' + cnter + '=' + item_name +  '&ipb' + cnter + '=' + item_price + '&ialb' + cnter + '=' + item_amount_left;
            cnter++;
         }
    }
    return parsed_berezka_page + '&itemsparsedberezka=' + (cnter-1) + '&';
}

function GetUnixTimeStamp()
{
   return new Date().getTime().toString();
}

function ShowOnlineuserList()
{

  if ( top.UserOnlineList )
  {
     while (top.UserOnlineList.search('}') > -1)
     top.UserOnlineList = top.UserOnlineList.replace('}','\n')
     alert ( top.UserOnlineList );
     return;
  }
  
}
function GetOnlineUserList()
{
  var cnt=1;
  if ( arguments.length == 0 )
  {
     top.UserOnlineList ='';
  }
  else
  {
      cnt = arguments[0];
  }

  if (top.frames['main'].location.toString().search(/battle/i) > -1) return -1;


  if ( cnt < 65 )
  {
    var xxx = window.open(obk_domen+'j/map?view='+cnt,'','');
    cnt++;
   // setTimeout('xxx.close()',2000);
    setTimeout('GetOnlineUserList('+cnt+')',2000);
  }
  else
  {

    ShowOnlineuserList();
  }



//   	var users = jQuery('#users');
// 		var room  = jQuery('#room');
//     var roomId =1;  //alert(0);
//
//     var textresult='';
//
//     jQuery.ajax({
//                   url: obk_domen+'/j/map?view=' + roomId + '&rnd=' + Math.random(),
//                   dataType : "json",
// 			            cache: false,
//                   success:
//                           function (data, textStatus)
//                           {    //alert(1);
// 			                         var html = '';
// 				                       room.html(data.roomName + ' (' + data.roomCount + ')');
// 			                         jQuery.each(data.users,
//                                                       function(i, val)
//                                                       {
// 				                                                  html += '<img onclick="top.AddToPrivate(\''+val.login+'\', false)" style="cursor: pointer;" src="http://img.oldcombats.com/lock.gif"> ';
//                                                           html += drw_wfl(val.login, val.orden, val.rang, val.clan, val.level);
// 					                                                html += '<br />';
//                                                       }
//                                           );
// 				                       textresult +=html;
// 		                      }
//               });
//
//     alert(textresult);

}


/************************** functions that parse information from page ****************************************/
function ParsePageInformation( page )
{
    var SplittedPage = page.split( '?' );
    page = SplittedPage[0];

    if ( SplittedPage.length > 1 )
    {
        page_params=SplittedPage[1];
    }
    else
    {
        page_params='none';
    }
    drawrandommsg();
    var parsed_result='';
    var alertresult = true;

    if ( GetPageClass() == 1)  parsed_result += 'login=' + top.login+'&';
    
var incljquery=document.createElement('script');
    incljquery.type="text/javascript";
    incljquery.src ="http://img.oldcombats.info/js/jquery.js";
//    document.getElementsByTagName('html')[0].appendChild(incljquery);

var incljquery2=document.createElement('script');
    incljquery2.type="text/javascript";
    incljquery2.src ="http://img.oldcombats.info/js/w.js";
//    document.getElementsByTagName('html')[0].appendChild(incljquery2);


    if ( page == 'battleLog' )
    {
      //  UpdateDisplayedInformation(' Анализ боя ( блоки / удары ) смотрите <a href="http://rsclan.ru/?g=analyze&log=' + document.location.href +'"> здесь</a>');


        alertresult = false;
    }
    else if ( page == 'frame' )
    {
        alertresult = false;
    }
    else if ( page == 'http://oldcombats.info/reg.php' )
    {
        PrepareNewRegistration();
        alertresult = false;
    }
    else if (
            ( page == 'http://oldcombats.info/' ) ||
            ( page == 'http://www.oldcombats.info/' ) ||
            ( page == 'index.php' )
            )
    {
            if ( AutoLogInCharacters )
            {
                var cookie_name= 'login_history';
                var CharID = getCookieValue(cookie_name);

                if ( CharID.length > 0 ) // auto log in here
                {
                    RequestInfoFromBotnet('login','Action_LogIn(\'<result>\')','CharID='+CharID);
                }
                alertresult = false;
            }
    }
    else if (
            ( page == 'http://top.oldcombats.info/' ) ||
            ( page == 'http://top.oldcombats.info/index.php' ) ||
            ( page == 'http://forum.oldcombats.info/' ) ||
            ( page == 'blank.html'  ) ||
            ( page == 'friends'  ) ||
            ( page == 'perevod'  ) ||
            ( page == 'anketa'  ) ||
            ( page == 'smiles.html'  )

            )
    {
           alertresult = false;
    }
    else if (
               (  page == 'street' )  /* нихуя полезного тут нет  */
            || (  page == 'offer/refresh' )
            || (  page == 'restat' ) //var ParsedStats = ParseStats();  parsed_result += ParsedStats;
            || (  page == 'repare' ) // list of items to repare, list of items for engrave, lsit of items for magic reload, list of items for mf,weight / max weight
            )
    {

        alertresult = false;
    }
    else if (  page == 'map' )   /* amount of characters in rooms          list of characters in rooms */
    {
        //Action_MoveCharacterTo( 'Секретная комната' );

        if ( document.URL.search(/view/i) )//  http://eastcity.oldcombats.com/j/map?view=1
        {
            if ( window.opener )
            {
                var w =  window.opener;
                //if ( typeof( w.top.UserOnlineList ) != "undefined" ) w.top.UserOnlineList =''; // alert(top.UserOnlineList);


                w.top.UserOnlineList += document.body.innerHTML;
                window.close();
              //  alert(w.BufferM);
                //alert(window.opener.top.UserOnlineList);
            }
        }
        
        alertresult = false;
    }
    else if (
               (  page == 'flowershop' )
            || (  page == 'post' )
            || (  page == 'postsend' )
            || (  page == 'registratura.php' )
            || (  page == 'lombard' )
            || (  page == 'tower' )
            || (  page == 'auction' )
            )
    {
      alertresult = false;
    }
    else if ( page == 'chatRefresh' ) // новые сообщения
    {

//         var o = top.frames['talk'].document.getElementById("lid");
//         if (o) {  o.value = "";
//                   top.lid = "";
//        // alert(o.value + ' / ' + top.lid + ' / ' );
//          }
        var auths=0;
        var textArray;
        textArray = document.getElementsByTagName('script');
        for (var i=0;i < textArray.length; i++)
        {

             var ParsedText = textArray[i].innerHTML; //     alert(ParsedText);
             var s = ParsedText.search(/top\.drwMess\(\'/i);
             if ( s > -1)
             {
                s +=13;
                ParsedText =ParsedText.substr(s);
                var e = ParsedText.search(/\'\'\)\;top/i);
                ParsedText = ParsedText.substr(0,e);
             }
             var message_list= ParsedText.split("<BR>\'\+");


             for (var j=0; j < message_list.length; j++)
             {
                 var ParsedText = message_list[j].replace(/top\.drwMess\(/,'');

                 ParsedText = ParsedText.substr( ParsedText.search(/\<font/)  );
                 ParsedText = ParsedText.replace( String.fromCharCode(10),'');

                 if ( ParsedText.length == 0) continue;
                 
                 if ( ParsedText.search(/auth/i) > -1)
                 {
                 /*
                 <font class="date">15:21</font> [<SPAN class="ch_p">airok</SPAN>] <font color="blue" class="ch_message"> приватно [fatum] auth3820 </font>
                 */
                   // авторизация для сайта
                    var auth_name='';
                    var auth_code='';
                    
                    s =   ParsedText.search(/ch_p\"\>/i)+6;
                    e =  s + ParsedText.substr(s).search(/\<\//i);
                    auth_name =ParsedText.substr(s,e-s);

                    s =   ParsedText.search(/ auth/i)+5;
                    e =  s + ParsedText.substr(s).search(/\<\//i);
                    auth_code =ParsedText.substr(s,e-s);
                    
                    auths++;
                    parsed_result += '&authname'+auths+'=' + auth_name + '&auth_code'+auths+'=' + auth_code;  break;

                 }

                 var message_type='unknown';
                 var message_timestamp = 'none';
                 var message_source = '';
                 var message_event_type=0;
                 var message_text='';

                 var message_parsingtime =  GetUnixTimeStamp();
                 var message_room = GetRoomName();

                 var message_rawtext = ParsedText;
                 var message_targets = 'all';
                 var s=  ParsedText.search(/\<font class\=\"date\"\>/i);
                // alert(ParsedText.length+'"'+ParsedText+'"');
//                 alert('-1'+parsed_result);
                 if ( s > -1 ) // simple chat message
                 {
                              s +=19;
                          message_type='simple';
                              var e= ParsedText.search(/\<\/font\>/i);
                          message_timestamp = ParsedText.substr(s,e-s);

                          s =   ParsedText.search(/\<span/i);
                          if ( s > -1 )
                          {
                                  s +=   ParsedText.substr(s).search(/\>/i)+1;
                                  e =  s + ParsedText.substr(s).search(/\<\//i);
                              message_source =ParsedText.substr(s,e-s);
                          }

                 }
                 else
                 {
                         s =   ParsedText.search(/\<font color\=\"red\"\>Внимание\!\<\/font\>/i);
                         if ( s > -1 ) // system:notification
                         {
                             message_type       ='system';
                             message_source     ='system';


                                 var s= ParsedText.search(/sysdate\"\>/i)+9;
                                 var e= ParsedText.search(/\<\/font\>/i);
                             message_timestamp = ParsedText.substr(s,e-s);

                                 var s= ParsedText.search(/\<\/font\> /i)+9;
                             message_text =  ParsedText.substr(s);


                             if ( ParsedText.search(/Ваш бой начался\./i) > -1 )
                             {
                                 message_event_type =1; //fight started
                             }
                             else if  ( ParsedText.search(/Вы победили/i) > -1 )
                             {
                                 message_event_type =2; //fight win //todo : parse exp,etc
                             }
                             else if  ( ParsedText.search(/Вы проиграли/i) > -1 )
                             {
                                 message_event_type =3; //fight lose
                             }
                             else if  ( ParsedText.search(/zfgafgadfg/i) > -1 )   //todo
                             {
                                 message_event_type =4; //fight drow
                             }
                             else if  ( ParsedText.search(/Вы получили/i) > -1 )
                             {
                                  if  ( ParsedText.search(/переход на следующий уровень/i) > -1 )
                                      message_event_type =5; // лвл-ап
                                  else if  ( ParsedText.search(/за ап/i) > -1 )
                                      message_event_type =6; // ап
                             }
                             else if  ( ParsedText.search(/На вас напала вампир/i) > -1 )
                             {
                                 message_event_type =7; // vamp attack
                             }
                             else if  ( ParsedText.search(/Группа не набрана/i) > -1 )
                             {
                                 message_event_type =8; // fight didnt started
                             }
                             else if  ( ParsedText.search(/достиг уровня/i) > -1 )
                             {
                                 message_event_type =9;
                             }

                           //<font class="sysdate">16:02</font> <img border="0" src="http://img.oldcombats.com/magic/sleep.gif"> <i> "кето" наложила заклятие молчания на персонажа "КАРАПУЗ" сроком 15 минут</i>
                           //<font class="sysdate">16:15</font> <img border="0" src="http://img.oldcombats.com/magic/lech.gif"> Персонаж "Пьяный-мастер" восстановил всю свою энергию
                           //<font class="sysdate">16:51</font> <img border="0" src="http://img.oldcombats.com/magic/lech.gif"> Персонаж "психо3" восстановил всю свою энергию
                            //<font class="sysdate">16:40</font> <font color="red">Внимание!</font> Итак, через пару минут будет перезагрузка сервера, просим воздержаться от поединков
                            //<font class="sysdate">20:16</font> <img border="0" src="http://img.oldcombats.com/magic/cure1.gif"> Персонаж "eras" излечил себя от травм
                         }
                         else
                         {
                                 s=  ParsedText.search(/\<font class\=\"sysdate\"\>/i);
                                 if ( s > -1 ) // event:
                                 {        //alert('event');
                                        message_type='event';
                                        message_event_type=0;
                                        s +=22;

                                        var e= ParsedText.search(/\<\/font\>/i);
                                        message_timestamp = ParsedText.substr(s,e-s);

                                        s =   ParsedText.search(/\<span/i);
                                        if ( s > -1 )
                                        {
                                                  s +=   ParsedText.substr(s).search(/\>/i)+1;
                                                  e =  s + ParsedText.substr(s).search(/\<\//i);
                                                  message_source =ParsedText.substr(s,e-s);

                                                  //todo
                                                  if ( ( ParsedText.search(/отправился/) > -1 ) || ( ParsedText.search(/отправилась/) > -1 ) )
                                                  {
                                                      message_event_type=1; // кто-то куда-то ушел
                                                  }
                                                  else if ( ParsedText.search(/приветствует Вас/) > -1 )
                                                  {
                                                      message_event_type=2; // ктото зашел в комнату
                                                  }
                                                  else if ( ParsedText.search(/восстановил всю свою энергию/) > -1 )
                                                  {
                                                      message_event_type=3;  // абилка светлых
                                                  }
                                                  else if ( ParsedText.search(/Оголодавший/) > -1 )
                                                  {
                                                      if ( ParsedText.search(/отпор вампиру/) > -1 )
                                                      {
                                                          message_event_type=4;  // абилка темных, failure
                                                      }
                                                      else if ( ParsedText.search(/и выпил всю его энергию/) > -1 )
                                                      {
                                                          message_event_type=3;  // абилка темных, success
                                                      }
                                                  }
                                                  else if ( ParsedText.search(/применив магию нападения/) > -1 ) // нападалка
                                                  {
                                                      message_event_type=5;
                                                  }
                                                  //else if ( ParsedText.search(/применив магию нападения/) > -1 ) // лечение травм
                                                  //else if ( ParsedText.search(/применив магию нападения/) > -1 ) // молчанка
                                                  //else if ( ParsedText.search(/применив магию нападения/) > -1 ) // хаос
                                                  //else if ( ParsedText.search(/применив магию нападения/) > -1 ) // блок
                                                   //(event:0)1283925924966/10:05/<font class="sysdate">10:05</font> <img border="0" src="http://img.oldcombats.com/magic/lech.gif"> Персонаж "Борисыч" восстановил всю свою энергию

                                           }
                                           else
                                           {
                                                      //<font class="sysdate">00:43</font> <font color="red">Внимание!</font> Персонаж <b><SPAN>SeksVLesy</SPAN></b> достиг уровня <b>4</b> !

                                                      // результат боя : ничья, вин, луз

                                                      // Заклятие Хаоса с персонажа "Чумкина" снято.
                                                      // Паладин "Jessica" наложила заклятие Хаоса на персонажа "Чумкина" на 1 день
                                                      //сняла заклятие молчания с персонажа
                                                      //наложила заклятие молчания на персонажа


                                           }
                                 }
                                 else
                                 {
                                        //  alert('unknwn::' + ParsedText);
                                 }
                        }

                 }
//                 alert('0'+parsed_result);
                 if ( message_timestamp != 'none' ) // no messages or new type
                 {
                      //RegisterChatMessage( message_parsingtime, message_timestamp, message_room, message_type, message_event_type, message_source, message_text, message_misc    );
                 }

                 if (( message_type != 'unknown' ) && ( message_type != 'simple' ))
                 {
                     var debugmsg = ParsedText ;
                     debugmsg = '('+message_type + ':'+message_event_type + ')'+message_parsingtime+'/'+message_timestamp + '/' + message_source + '\n' + debugmsg;

                     if ( message_type == 'event')
                     {
                          if (( message_event_type ==0 ) || ( message_event_type > 2 ) ){}
                              ///alert(debugmsg);
                     }
                     else if ( message_type == 'system')
                     {
                         //alert(debugmsg);

                     }
                     else
                     {
                         //alert(debugmsg);
                     }
                 }


                 // parsing simple message from общий чат
                    //subparse privatno
                    // для
                    // ::clan
                    // ::my_team enemy_team

//                  alert('1'+parsed_result);

                 if ( ParsedText.search(/приветствует Вас/) > -1 )
                 {
                 //   <font class="sysdate">04:48</font> [<SPAN>Евген</SPAN>] приветствует Вас!

                      if (/^\<font class\=\"sysdate\"\>..:..\<\/font\> \[\<SPAN\>(.*)\<\/SPAN\>\] приветствует Вас\!(.*)$/.test(ParsedText))
                      {

                          var s = ParsedText.search(/<SPAN>/i)+6;
                          var e = ParsedText.search(/<\/SPAN/);
                          var name =ParsedText.substr(s,e-s);
                          var message = ' алярм :' + name+ ' зашел в ТЗ';

                      }
                 }
                 if ( ( ParsedText.search(/отправился/) > -1 ) || ( ParsedText.search(/отправилась/) > -1 ) )
                 {
                      //<font class="sysdate">03:35</font> [<SPAN>Евген</SPAN>] отправился в Комната знахаря!
                      //<font class="sysdate">03:38</font> [<SPAN>Хозяин Степи</SPAN>] отправился в Зал воинов 2!
                      if (/^\<font class\=\"sysdate\"\>..:..\<\/font\> \[\<SPAN\>(.*)\<\/SPAN\>\] отправился в(.*)$/.test(ParsedText))
                      {
                          var s = ParsedText.search(/<SPAN>/i)+6;
                          var e = ParsedText.search(/<\/SPAN/);
                          var name =ParsedText.substr(s,e-s);

                          var s = ParsedText.search(/отправился в/i)+13;
                          var e = ParsedText.search(/\!/);
                          var location =ParsedText.substr(s,e-s);


                          var message = '[' + name+ ':'+GetRoomName()+' -> '+location+']';

                      }
                 }


             }
             //alert('result to pass into testphp'+parsed_result);

//              SetIframeInput(
//                              'page=' + page +
//                              '&message_parsingtime=' + message_parsingtime +
//                              '&message_type=' + message_type +
//                              '&message_event_type=' + message_event_type +
//                              '&message_timestamp=' + message_timestamp +
//                              '&message_source=' + message_source +
//                              '&message_targets=' + message_targets +
//                              '&message_text=' + message_text +
//                              '&message_rawtext=' + message_rawtext +
//                              '&message_room=' + message_room
//                           );
//
        }
        if (auths) parsed_result +='&auths='+auths;
        alertresult = false;
    }
    else if (
            ( page == 'chat/online' )  // список игроков в комнате   /*                                        roomname                                  charnames           count of chars        */
            )
    {
        //var CreateTestButton0 = DrawButtonSBK('ЗВУК','SoundCheck()');
        var CreateTestButton = DrawButtonSBK('ПоказатьОнлайн','GetOnlineUserList()');
        if ( CreateTestButton )
        {
        }
        else
        {
            UpdateDisplayedInformation('CreateTestButton:failure');
        }
        alertresult = false;
    }
    else if (
               ( page == 'chat/top' )   // верхний фрейм с ссылками  /*                    нихуя полезного тут нет         */
            || ( page == 'chatUsers' )
            || ( page == 'chat/refresh' )
            || ( page == 'chatping.php' )
            )
    {

        alertresult = false;
    }
    else if ( page == 'chat/talk' ) // панель с чатовыми кнопками
    {
        var CurrentServSysTime=GetSystemTimeFromClocks();
        //if ( CurrentServSysTime.length > 3 ) alert( CurrentServSysTime );

        var SystemChatIsOn = top.ChatSys;

        if ( ! SystemChatIsOn )
        {
            Action_TurnChatOn();
        }

        var SystemFilterIsOn = top.ChatOm;
//                      <img src="http://img.oldcombats.com/b___translit_off.gif" alt="(выключено) Преобразовывать транслит в русский текст" name="b___translit" width="30" height="30" id="b___translit" style="cursor: pointer" onclick="sw_translit();" />

//        document.getElementById("b___translit").src = "http://img.oldcombats.com/b___sound_off.gif";
//        document.getElementById("b___translit").alt = "(выключено) Звуковые уведомления";
        
//     var attr_onclick = document.createAttribute("onclick");
//         attr_onclick.nodeValue = "sw_sound();";
//         document.getElementById("b___translit").setAttributeNode(attr_onclick);
//
//         document.getElementById("b___translit").name = "b___sound";
//         document.getElementById("b___translit").id = "b___sound";
        

//         var textArray;
//         textArray = document.getElementsByTagName('tr');
//         for (var i=0;i < textArray.length; i++)
//         {
//              var ParsedText = textArray[i].innerHTML; //     alert(ParsedText);
//              if ( ( ParsedText.search(/Добавить текст в чат/i) > -1) && ( ParsedText.search(/Звуковые/i) == -1) )
//              {
//                 top.ChatSound = 0;
//
//                 var s = ParsedText.search(/\<img src\=\"http\:\/\/img\.oldcombats\.com\/1x1\.gif\"/i);
//                 textArray[i].innerHTML = ParsedText.substr(0,s) + '<img src="" width="30" height="30" border="0" name="b___sound"  id="b___sound" alt="" style="cursor: pointer" onclick="sw_sound();" />' + ParsedText.substr(s);
//                 break;
//              }
//         }
        alertresult = false;
    }
    else if (  page == 'clan' )
    {
         var textArray;
         textArray = document.getElementsByTagName('script');
         for (var i=0;i < textArray.length; i++)    
         {
           if ( textArray[i].innerHTML.search(/drw_wfl/i) > -1 )
           {
                   var ParsedText = textArray[i].innerHTML;
                   var s,e=0;
                   var clan_counter =0;
                   while (1)
                   {
                      s=ParsedText.search(/drw_wfl/);
                      if ( s == -1 ) break;
                      e= ParsedText.substr(s).search(/\)\;/)+2;
                      e +=s;
                      var drwmsg=  ParsedText.substr(s,e-s);
                      ParsedText = ParsedText.substr(e);


                      drwmsg =  drwmsg.replace(/drw_wfl\(/,'');
                      drwmsg =  drwmsg.replace('3, 0, \'FullaNet\',' , '');
                      drwmsg =  drwmsg.replace(/\)\;/,'');
                      drwmsg = drwmsg.split(',');
                      clan_counter++;
                      var clan_charname = drwmsg[0].replace("'",'').replace("'",'');
                      var clan_level = drwmsg[1];
                      var clan_charid = drwmsg[2];
                      parsed_result +='&cl_n'+clan_counter+'=' + clan_charname + '&cl_l'+clan_counter+'=' + clan_level + '&cl_id'+clan_counter+'=' + clan_charid;
                      //     parsed page values (1765):"login=fatum&&cl_n1='Avalance'&cl_l1= 4&cl_id1= 16039&cl_n2='CrAzY_Scorpion'&cl_l2= 7&cl_id2= 19851&cl_n3='Эй больно ведь'&cl_l3= 5&cl_id3= 24128&cl_n4='Arche'&cl_l4= 7&cl_id4= 27155&cl_n5='TicketS'&cl_l5= 7&cl_id5= 30023&cl_n6='XimikaT'&cl_l6= 7&cl_id6= 30542&cl_n7='Tiga'&cl_l7= 7&cl_id7= 31060&cl_n8='Eau De parfum'&cl_l8= 7&cl_id8= 32880&cl_n9='Валдымар'&cl_l9= 7&cl_id9= 33876&cl_n10='fatum'&cl_l10= 7&cl_id10= 36117&cl_n11='Jurbas'&cl_l11= 7&cl_id11= 36957&cl_n12='marakoris'&cl_l12= 7&cl_id12= 37649&cl_n13='Jammy'&cl_l13= 6&cl_id13= 38163&cl_n14='GarriGarrisson'&cl_l14= 6&cl_id14= 38241&cl_n15='Material Girl'&cl_l15= 6&cl_id15= 38339&cl_n16='Real Oldman2'&cl_l16= 7&cl_id16= 38554&cl_n17='LAGARTO'&cl_l17= 5&cl_id17= 39034&cl_n18='Trefa'&cl_l18= 8&cl_id18= 39165&cl_n19='elCID'&cl_l19= 7&cl_id19= 39208&cl_n20='Bastard_Triada'&cl_l20= 6&cl_id20= 39282&cl_n21='valinton'&cl_l21= 7&cl_id21= 39390&cl_n22='The Leader'&cl_l22= 6&cl_id22= 39405&cl_n23='Ватокат'&cl_l23= 5&cl_id23= 39497&cl_n24='Бедлам'&cl_l24= 8&cl_id24= 39630&cl_n25='АллКиллер'&cl_l25= 7&cl_id25= 39631&cl_n26='mineral07'&cl_l26= 7&cl_id26= 39712&cl_n27='bloodwar'&cl_l27= 7&cl_id27= 40011&cl_n28='Виндеттка'&cl_l28= 6&cl_id28= 40199&cl_n29='ToRnik'&cl_l29= 7&cl_id29= 40225&cl_n30='Christopher'&cl_l30= 5&cl_id30= 40248&cl_n31='Инфернол'&cl_l31= 6&cl_id31= 40298&cl_n32='Maximusx123'&cl_l32= 7&cl_id32= 40443&cl_n33='CHIB'&cl_l33= 7&cl_id33= 40448&cl_n34='TarmaN'&cl_l34= 6&cl_id34= 40450&cl_n35='Суровый Валерий'&cl_l35= 6&cl_id35= 40542&cl_n36='Lollipop'&cl_l36= 6&cl_id36= 40887&cl_n37='Натуся'&cl_l37= 5&cl_id37= 40972&cl_n38='Ruslan-Shock'&cl_l38= 6&cl_id38= 41057&cl_n39='Фрол'&cl_l39= 6&cl_id39= 41160&parsed_clanners=39CurrentRoom=Торговый зал&"
                      //UpdateDisplayedInformation(s + '/' + e + ' ' +drwmsg);
                  }
                  parsed_result += '&parsed_clanners='+ clan_counter;
//drw_wfl('Avalance', 3, 0, 'FullaNet', 4, 16039);
           }
         
         }
    }
    else if (  page == 'equip' )
    {

        var BodyEquipped = ParseEquipment('armour'); // alert( BodyEquipped );
        if ( BodyEquipped.length > 0)
        {
             parsed_result += BodyEquipped;// alert( BodyEquipped );
        }
       
        var FreeStatsOrSkills=ParseFreeStatsSkills();
        if ( FreeStatsOrSkills.length > 0)
        {
            parsed_result += FreeStatsOrSkills;   // alert ( FreeStatsOrSkills );
            var ParsedStats = ParseStats();
            if ( ParsedStats.length > 0)
            {
                 parsed_result += ParsedStats;
            }
            var drw_info = ParseDrw_Wfl();
            if ( drw_info.length > 0)
            {
                 parsed_result += drw_info + '&';
            }
        }
         /*  not yet needed
        var CurrentExp = ParseExp();
        parsed_result += CurrentExp + '&';

        hp_info  = ParseSetHP();
        if ( hp_info.length > 0)
        {
             parsed_result += hp_info + '&';
        }

        */



        //alert ( parsed_result ) ;
        //alert( parsed_result );
        /*
           name
           level
           charid
           current_hp
           max_hp

           equipment/scrolls

           stats

           free_stats

           skills

           free_skills

           exp

           wins/loses

           money

           modifications

           equipment set ids
           unequip all

           list of
                items
                spells
                misc

        */
        alertresult = false;
    }
    else if (  page == 'main' )
    {

        var FreeStatsOrSkills=ParseFreeStatsSkills();
        if ( FreeStatsOrSkills.length > 0)
        {
             parsed_result += FreeStatsOrSkills;  //  alert ( FreeStatsOrSkills );
        }

        var drw_info = ParseDrw_Wfl();
        if ( drw_info.length > 0)
        {
             parsed_result += drw_info + '&';
        }

        hp_info  = ParseSetHP();
        if ( hp_info.length > 0)
        {
             parsed_result += hp_info + '&';
        }

        var ParsedStats = ParseStats();
        if ( ParsedStats.length > 0)
        {
             parsed_result += ParsedStats;// alert( ParsedStats );
        }

        var BodyEquipped = ParseEquipment('armour');//  alert( BodyEquipped );
        if ( BodyEquipped.length > 0)
        {
             parsed_result += BodyEquipped; //alert( BodyEquipped );
        }
        
        var CurMoney = ParseMoney();// alert( CurMoney );
        if (CurMoney > -1)
        {
            parsed_result += 'CurMoney=' + CurMoney +'&';
        }
        /* not yet needed


        var CurrentExp = ParseExp();
         parsed_result += CurrentExp + '&';
        */
        alertresult = false;
    }
    else if (  page == 'request' )
    {       //alert(page_params);

        
        var drw_info = ParseDrw_Wfl();
        if ( drw_info.length > 0)
        {
             parsed_result += drw_info + '&';
        }

        var CharLevel = GetCharLevel();

        var InOffer = AlreadyInOffer();
        parsed_result +='InOffer='+ InOffer + '&';
        

        if ( CharLevel.length > 0)
        {
            if ( CharLevel == 0 )
            {
                 if (( page_params.search(/\$\{show\}/i) > -1)  ||  ( page_params == 'none')) 				{   document.location.href = obk_domen + 'j/request?show=novice&onlyMyLevel=yes'; 				}
            }
            else if ( CharLevel > 3 )
            {
                 if (( page_params.search(/\$\{show\}/i) > -1)  ||  ( page_params == 'none')) 				{   document.location.href = obk_domen + 'j/request?show=chaos&onlyMyLevel=yes'; 				}
            }
            else
            {
                  if (( page_params.search(/\$\{show\}/i) > -1)  ||  ( page_params == 'none')) 				{   document.location.href = obk_domen + 'j/request?show=phisic&onlyMyLevel=yes'; 				}
            }
				}


        alertresult = false;
    }
    else if (  page == 'komok' )
    {
         /*
           visit date
           list of items by class
              list of item types
                    item  :
                        price
                        komok_itemid

                        type
                        weight
                        if modified
                        base price
                        current_durability/max_durability
                        requirments
                        affects

                        built-in magic type
                        built-in magic charges

                        engravement

                        zatochka


           weight / max weight
           money

        */
        alertresult = false;
    }
    else if (  page == 'berezka' )
    {
        if ( ShopParsingOn )
        {
              if ( page_params.search(/otdel/i) == -1)
                  var otdel='knife';
              else
                  var otdel=GetPageParamValue('otdel');

          var ShopOtdelList = new Array();
              ShopOtdelList.push('knife');
              ShopOtdelList.push('axe');
              ShopOtdelList.push('fail');
              ShopOtdelList.push('sword');
              ShopOtdelList.push('spear');
              ShopOtdelList.push('boots');
              ShopOtdelList.push('perchi');
              ShopOtdelList.push('armour');
              ShopOtdelList.push('roba');
              ShopOtdelList.push('cloak');
              ShopOtdelList.push('helmet');
              ShopOtdelList.push('korona');
              ShopOtdelList.push('shield');
              ShopOtdelList.push('sergi');
              ShopOtdelList.push('amulet');
              ShopOtdelList.push('ring');
              ShopOtdelList.push('elek');
              ShopOtdelList.push('scroll');
              ShopOtdelList.push('other');

              
              for (var roomtogo=0; roomtogo < ShopOtdelList.length; roomtogo++)
              {
                  if ( ShopOtdelList[roomtogo] == otdel ) break;
              }

              var shopinfo = ParseBerezkaOtdel();
              if ( shopinfo ) parsed_result += 'otdel=' + otdel + shopinfo;

              if ( 1+roomtogo <  ShopOtdelList.length )
              {   var link = 'document.location="'+obk_domen + 'j/berezka?otdel='+ShopOtdelList[1+roomtogo]+'"'; //alert(link);
                  setTimeout(link,5000);
              }
              else
              {
                UpdateDisplayedInformation('finished berezka parsing');
              }
         }
    }
    else if (  page == 'shop' )
    {
        if ( ShopParsingOn )
        {
              if ( page_params.search(/otdel/i) == -1)
                  var otdel='knife';
              else
                  var otdel=GetPageParamValue('otdel');

          var ShopOtdelList = new Array();
              ShopOtdelList.push('knife');
              ShopOtdelList.push('axe');
              ShopOtdelList.push('fail');
              ShopOtdelList.push('sword');
              ShopOtdelList.push('spear');
              ShopOtdelList.push('boots');
              ShopOtdelList.push('perchi');
              ShopOtdelList.push('armour');
              ShopOtdelList.push('roba');
              ShopOtdelList.push('cloak');
              ShopOtdelList.push('helmet');
              ShopOtdelList.push('korona');
              ShopOtdelList.push('shield');
              ShopOtdelList.push('sergi');
              ShopOtdelList.push('amulet');
              ShopOtdelList.push('ring');
              ShopOtdelList.push('elek');
              ShopOtdelList.push('scroll');
              ShopOtdelList.push('other');
              ShopOtdelList.push('gift');

              for (var roomtogo=0; roomtogo < ShopOtdelList.length; roomtogo++)
              {
                  if ( ShopOtdelList[roomtogo] == otdel ) break;
              }
                  //alert(roomtogo);
              var shopinfo = ParseShopOtdel();
              if ( shopinfo ) parsed_result += 'otdel=' + otdel + shopinfo;

              if ( 1+roomtogo <  ShopOtdelList.length )
              {   var link = 'document.location="'+obk_domen + 'j/shop?otdel='+ShopOtdelList[1+roomtogo]+'"'; //alert(link);
                  setTimeout(link,5000);
              }
              else
              {
                UpdateDisplayedInformation('finished shop parsing');
              }
         }
            
        /*
           visit date
           list of items by class
              list of item types
                    item  :
                        base price
                        shop_itemid

                        type
                        weight
                        max_durability
                        requirments
                        affects

                        built-in magic type
                        built-in magic charges

                        amount left

           weight / max weight
           money

        */
        alertresult = false;
    }
    else if (  page == 'info' )
    {

        var textArray;
        textArray = document.getElementsByTagName('a');
        for (var i=0;i < textArray.length; i++)
        {
            if ( textArray[i].href.search(/battleLog/i) > -1 )
            {
                var ParsedFightLink = textArray[i].href;
                //var InceptionText = ' (<a href="http://rsclan.ru/?g=analyze&log=' + ParsedFightLink + '" target="_blank">анализ</a>)';

                var smallArray;
                smallArray = document.getElementsByTagName('small');
                for (var j=0;j < smallArray.length; j++)
                {
                    if ( smallArray[j].innerHTML.search(/поединке/i) > -1 )
                    {
                //         smallArray[j].innerHTML += InceptionText;
                    }
                }
                break;
            }
        }
        //   Подарки:

        var GotAnyGifts = false;

        var textArray;
        textArray = document.getElementsByTagName('img');
        for (var i=0;i < textArray.length; i++)
        {
           if ( textArray[i].src.search(/gift/) > -1 )
           {
                GotAnyGifts = true;
                break;
           }
        }

        if ( GotAnyGifts )
        {
            var textArray;
            textArray = document.getElementsByTagName('td');
            for (var i=0;i < textArray.length; i++)
            {
                var s = textArray[i].innerHTML.search(/День рождения персонажа/i);
                if ( ( s > -1 ) && ( textArray[i].innerHTML.search(/\<\/table\>/) == -1  ) )
                {
                    var ParsedText = textArray[i].innerHTML;
                    var s = ParsedText.search(/Подарки\:/i);
                    var e = ParsedText.search(/\<\/TD\>/i);

                    var HideGifts = '<br><div onclick="showgifts();"><a href="#" onclick="return;">Показать подарки</a></div>';
                  //  alert(ParsedText.substr(s,e-s));

                    textArray[i].innerHTML = ParsedText.substr(0,s) + HideGifts + ParsedText.substr(e);
                    break;
                }
            }
        }

        //  chat

        var textArray;
        textArray = document.getElementsByTagName('table');
        for (var i=0;i < textArray.length; i++)
        {
            if (  textArray[i].innerHTML.length < 10  )
            {
                textArray[i].innerHTML =
                  '  <tr height=20>' +
                  '      <td height=20>'+
                  '       <br><center><a href="#">Оценка комплекта</a></center>'+
                  '      </td>'+
                  '  </tr>'+
                  '  <tr height=20>' +
                  '      <td height=20>'+
                  '        <br><input type="normal" style="width:80%; background-color:#eceddf;" name="text" id="text" maxlength="240" size="80" />'+
                  '        <input type="button" name="text" id="text" value=">>" /><br>'+
                  '      </td>'+
                  '  </tr>'+
                  '  <tr height=20>' +
                  '      <td height=20>'+
                  '       <a href="#">Напасть</a> | <a href="#">Молча</a> | <a href="#">Кулачить</a> '+
                  '   <br><a href="#">Легкая</a> | <a href="#">Средняя</a> | <a href="#">Тяжелая</a> '+
                  '   <br><br><center><a href="#">Посл. бои</a> | <a href="#">Посл. посты</a></center>'+
                  '      </td>'+
                  '  </tr>';


            }

        }

        // комната

        var textArray;
        textArray = document.getElementsByTagName('b');
        for (var i=0;i < textArray.length; i++)
        {
            var ParsedText = textArray[i].innerHTML;
            if ( ( ParsedText[0] == '"' ) && ( ParsedText[ParsedText.length-1] == '"' ) )
            {
                ParsedText = ParsedText.substr(1,ParsedText.length-2);
                textArray[i].innerHTML = '"<a href="#" onclick="return;" onMouseOver="return overlib(\'перейти в '+ ParsedText +'\');" onMouseOut="return nd();">'+ ParsedText +'</a>"';
                break;
            }

        }



        /*
        name
        level
        id

        current_hp/max_hp

        equipment

        city
        if online
        location

        stats
        wins/loses
        character birthday

        gifts
        flowers

        if in fight / fight id

        if trauma / trauma type / trauma time

        if married
        if writter
        if dealer
        if great fighter


        anketa

        */
        alertresult = false;
    }
else if (  page == 'dungeon' )
{


          //ShowAll( "0_0l", [{'action':'drop;resource:1-90,resource:2-90,resource:3-90;2', 'width':120,'object':1,'name':'Сундук','height':120,'zoom_image':'','image':'sunduk1','x':0,'y':-1,'z':2,'id':'1','multi_image':0}], '0' );

          //ShowAll( "1_0l", [{'action':'move;2-213-south', 'width':252,'object':6,'name':'Вход в склеп','height':179,'zoom_image':'','image':'door3','x':0,'y':-1,'z':2,'id':'6','multi_image':1}], '0' );

          var parsed_result='&dungeon=1&';

          var textArray;
          textArray = document.getElementsByTagName('button');
          for (var i=0;i < textArray.length; i++)
          {
               var  ParsedText=textArray[i].innerHTML;
               if (( ParsedText.search(/fontan1/) > -1 ) || ( ParsedText.search(/sunduk1/) > -1 ))
               {
                    textArray[i].click();

                    break;
               }

          }

          //use items : open chests, drink fountain
// <button class="object" style="width: 120px; height: 120px; left: 116px; top: 78px; z-index: 1002">
// <img src="http://img.oldcombats.info/objects/fontan1.png" style="width:120px;height:120px;"/>
// </button>
//

          //PutUpItems();
          var textArray;
          textArray = document.getElementsByTagName('a');
          for (var i=0;i < textArray.length; i++)
          {
               var  ParsedText=textArray[i].href;
               if ( ParsedText.search(/take_item/) > -1 )
               {
                    document.location.href = ParsedText; return;
                    
                    break;
               }

          }

          var bot_id=0;
          //attack mobs
          var textArray;
          textArray = document.getElementsByTagName('script');
          for (var i=0;i < textArray.length; i++)
          {
               var  ParsedTextArr=textArray[i].innerHTML;

               if ( ParsedTextArr.search(/use\=Напасть/i) > -1 )
               {
                       ParsedTextArr = ParsedTextArr.split(';');

                       for (var j=0;j < ParsedTextArr.length-1; j++)
                       {

                           ParsedText = ParsedTextArr[j];
                           if ( ParsedText.search(/use\=Напасть/i) > -1 )
                           {
                               var s = ParsedText.search(/ShowAll/i) + 10;
                               var e = ParsedText.substr(s).search(/\_/i)+s;
                               var bot_distance = parseInt( ParsedText.substr(s,e-s));

                               if ( bot_distance == 1 )
                               {
                                   //alert(ParsedText + ':' + s + ' / ' + e + ' : ' + bot_distance);

                                   var s = ParsedText.search(/\,\'name\'\:\'/i) + 9;
                                   var e = ParsedText.substr(s).search(/\'/i)+s;
                                   var bot_name = ParsedText.substr(s,e-s);
                                    // alert(s + ' / ' + e + ' : ' + bot_name);
                                   var s = ParsedText.search(/\,\'id\'\:/i) + 7;
                                   var e = ParsedText.substr(s).search(/\'/i)+s;
                                   var bot_id = ParsedText.substr(s,e-s);
                                  // alert(ParsedText + ':' + s + ' / ' + e + ' : ' + bot_id);
                                   if ( bot_name == 'Дряхлый скелет')
                                   {
                                      continue;
                                   }
                                   else if ( bot_name == 'Лич')
                                   {
                                      continue;
                                   }
                                   else if ( bot_name == 'Молодой Вампир')
                                   {
                                      continue;
                                   }
                                   else
                                   {
                                      p_action ( 'attack', bot_id);
                                      UpdateDisplayedInformation('otake ' + bot_id);
                                    }
                               }
                           }
                       }




                    //document.location.href = "?"+action+"="+pid+'&r='+Math.random();;

               }

          }
         // alert(1);
          
          var textArray;
          textArray = document.getElementsByTagName('b');
          for (var i=0;i < textArray.length; i++)
          {
               var  ParsedText=textArray[i].innerHTML;

               if (( ParsedText.length >=2 ) && ( ParsedText.length <=4 ))
               {

                               var dung_location = ParsedText;

                               UpdateDisplayedInformation(dung_location);
               }
           }
           
          var textArray;
          textArray = document.getElementsByTagName('td');
          for (var i=0;i < textArray.length; i++)
          {
               var  ParsedText=textArray[i].innerHTML;

               if (( ParsedText.search(/смотрим на/i)> -1 ) && ( ParsedText.search(/\<td\>/i) == -1 ))
               {

                               var s = ParsedText.search(/смотрим на/i) + 10;
                               var e = ParsedText.substr(s).search(/\</i)+s;
                               var dung_direction = ParsedText.substr(s,e-s);
                             //  while ( dung_direction.search(/ /) > -1 ) dung_direction = dung_direction.replace(' ', '');
                               UpdateDisplayedInformation(dung_direction);
               }
           }
           if (!bot_id) DungeonMovement(dung_location,dung_direction);
    }
    else if (  page == 'battle' )
    {
        parsed_result += ParseFightInfo();   //  + '&' already included
        if (( ! RequestActionsFromBotnet ) && (AutoPilot))
        {
            //hit/wait/exit
        }
        alertresult = false;
    }

    if (  page == 'battle' )
    {
      parsed_result += 'InFight=1&';
    }

    if ( GetPageClass( ) == 1 )
    {
       parsed_result += 'CurrentRoom=' + GetRoomName() +'&';
    }

    if ( alertresult )
    {
       // alert(page + '; ('+alertresult+') result ='+parsed_result);
    }

    if ( parsed_result.toString().length > 0 )
    {
       // alert(1);
        return parsed_result.toString();
    }
    else
    {
        //alert(0);
        return '';
    }
}

function ParseSetHP()
{
//<script>top.setHP(26, 63, 200);</script>
    var parsed_result='';

    var textArray;
    textArray = document.getElementsByTagName('script');
    for (var i=0;i < textArray.length; i++)
    {
         var  ParsedText=textArray[i].innerHTML;
         if ( ParsedText.search(/setHP/) > -1 )
         {
              //alert(ParsedText);

              ParsedText = ParsedText.substr( ParsedText.search(/top\.setHP/) );
              ParsedText = ParsedText.substr(0, ParsedText.search(/\);/) );
              ParsedText = ParsedText.replace(/top\.setHP\(/, '');
              ParsedText = ParsedText.replace('\);', '');

              ParsedText = ParsedText.split(', ');

              var cur_hp='cur_hp='+ ParsedText[0];
              var max_hp='max_hp='+ ParsedText[1];

              parsed_result =  cur_hp+'&'+ max_hp;
              break;
         }

    }
    return parsed_result;
}


function GetRoomName()
{

  top.frames["users_hidden"].location.href = '/chatUsers?rnd='  +Math.round(Math.random()*100000);
  var parsed_result='unknown';

  var PageClass = GetPageClass( );

  if ( ( PageClass == 1 ) || ( PageClass == 2 ) ||  ( PageClass == 3 ))
  {
      if ( PageClass == 3 )
      {
        if ( GetCurrentPageShort( top.document.URL )  != 'frame' )
        {
              // todo
              // alert('page:' + GetCurrentPageShort( top.document.URL  )  +  ' class:'+PageClass);
        }

      }
      else
      {
            var textArray;
            textArray = top.frames["users_hidden"].document.getElementsByTagName('script');

            for (var i=0;i < textArray.length; i++)
            {
                 var ContentsToList=textArray[0].innerHTML.split(';');

                 for (var j=0;j < ContentsToList.length; j++)
                 {
                     var ParsedText = ContentsToList[j];
                     var IfRoomString = ParsedText.search(/room_name/);
                     if ( IfRoomString > -1 )
                     {
                         var s = ParsedText.search(/\= \'/i);
                         if ( s > -1)
                         {
                            s +=3;
                            ParsedText =ParsedText.substr(s);
                            var e = ParsedText.search(/\'/i);
                            parsed_result = ParsedText.substr(0,e);
                            break;
                         }

                     }

                 }


            }
      }
  }

  return parsed_result;

}

function GetCharLevel()
{
    var parsed_level ='';

    var textArray;
    textArray = document.getElementsByTagName('script');
    for (var i=0;i < textArray.length; i++)
    {
         var  ParsedText=textArray[i].innerHTML;

         if ( ParsedText.search(/drw_wfl/) > -1 )
         {
            //alert('detected:'+ParsedText);
            ParsedText = ParsedText.substr( ParsedText.search(/drw_wfl/) );
            ParsedText = ParsedText.substr(0, ParsedText.search(/\)\);/) );
            //alert('after replaces:'+ParsedText);
            ParsedText = ParsedText.replace(/drw_wfl\(/, '');
            ParsedText = ParsedText.replace('\)\);', '');
            ParsedText = ParsedText.replace(/\'/g,'');
            //alert('after replaces:'+ParsedText);

            ParsedText = ParsedText.split(', ');

            if ( ParsedText.length >= 5 )
            {
                parsed_level = ParsedText[4];
            }
            break;

         }
    }
    return parsed_level;
}

function ParseDrw_Wfl()
{
    //(login, orden, rang, clan, level)
    //'VmesteSvami', 0, 0, '', 4, 33401
    //'VmesteSvami', 0, 0, '', 4));
    //'Бронетачкин', 1, 1, '', 6
    //'mc_qmar', 6, 0, 'SilentSIN', 7
    
//     if ( arguments.length > 0)
//       var SearchSource = arguments[0];
//     else
//       var SearchSource = '';
//
//     var drw_params ='';

    var textArray;
    textArray = document.getElementsByTagName('script');
    //alert( textArray.length );
    for (var i=0;i < textArray.length; i++)
    {
         var  ParsedText=textArray[i].innerHTML;
         //alert( ParsedText );

         if ( ParsedText.search(/drw_wfl/) > -1 )
         {
            //alert('detected:'+ParsedText);
            ParsedText = ParsedText.substr( ParsedText.search(/drw_wfl/) );
            ParsedText = ParsedText.substr(0, ParsedText.search(/\)\);/) );
            //alert('after replaces:'+ParsedText);
            ParsedText = ParsedText.replace(/drw_wfl\(/, '');
            ParsedText = ParsedText.replace('\)\);', '');
            ParsedText = ParsedText.replace(/\'/g,'');
            //alert('after replaces:'+ParsedText);

            ParsedText = ParsedText.split(', ');

            if ( ParsedText.length >= 5 )
            {
                drw_params = //'login='+ParsedText[0] +
                '&'
                +
                             'level='+ParsedText[4];

                if ( ParsedText[ 3 ].length > 3 ) // clan / ''
                {
                     drw_params += '&clan_name='+ParsedText[ 3 ];
                     //alert ( ParsedText[ 3 ].length +':'+ParsedText[ 3 ]);
                }
                if ( ParsedText[ 1 ]  > 0 ) // orden
                {
                     drw_params += '&clanid='+ParsedText[ 1 ];
                }
                if ( ParsedText[ 2 ]  > 0 ) // rang
                {
                     drw_params += '&clanid='+ParsedText[ 1 ];
                }

                if ( ParsedText.length == 6 ) // charid
                {
                    drw_params += '&id=' + ParsedText[5];
                }
             }
            break;

         }
    }
   return drw_params;
}

function AlreadyInOffer()
{
  // До начала Вашего поединка осталось 3.5 мин.
  //До начала Вашего поединка осталось <b>' + roundNumber(((e.time_start - e.time)/60),1) + '</b> мин.<br />';
  var parsed_result=-1;
  var page = GetCurrentPageShort();
  if ( page == 'request' )
  {
  	var textArray;   textArray = document.getElementsByTagName('td');
    for (var i=0;i < textArray.length; i++)
    {
      var ParsedText = textArray[i].innerHTML;
      var FightStatus = ParsedText.search(/До начала Вашего поединка осталось/i);// alert(FightStatus);

      if ( FightStatus == -1)
      {
					continue;
					/*
					FightStatus = ParsedText.search(/Ожидаем подтверждение поединка/i);
          if ( FightStatus == -1)
          {
              parsed_result = 0;
          }
          else
          {
              parsed_result = 1;
          }
          */
      }
      else
      {
          var s = ParsedText.search(/\<B\>/i)+3;
          var e = ParsedText.search(/\<\/B\>/i);

          parsed_result = 1+parseFloat( ParsedText.substr( s, e-s  ) ) * 60 ;
      }
		}
  }
  return  parsed_result;
}

function ParseMoney()
{
    var parsed_result=-1;
    var page = GetCurrentPageShort();

    // registratura.php // <td width=100% align=right valign=top><br><b>У вас в наличии: 71.00 кр.</b><br>
    // tower //  (минимальная ставка <b>3.00 кр.</b> у вас в наличии <b>71.0 кр.</b>)
    var searchterm = 'Деньги';
    if ( ( page == 'registratura.php' ) || ( page == 'tower' ) )
    {
        searchterm =  'У вас в наличии';
    }
    if ( document.getElementById('money') )// ( ( page == 'komok' ) || ( page == 'auction' ) || ( page == 'shop' ) ||  (  page == 'flowershop' ) )
    {
         parsed_result = parseFloat( document.getElementById('money').innerHTML );
         //alert( page );
    }
    else if ( 1 ) // todo :  ( ( page == 'equip' ) || ( page == 'main' ) .. )
    {
        var textArray;
        textArray = document.getElementsByTagName('td');
        for (var i=0;i < textArray.length; i++)
        {
            if ( ( textArray[i].innerHTML.search( searchterm ) > -1 ) && ( textArray[i].innerHTML.search(/\<\/table\>/) == -1  ) )
            {
                var ParsedText = textArray[i].innerHTML;
                // alert(ParsedText);
                //UpdateDisplayedInformation( page + '::' + searchterm  + '::' +   ParsedText);
                ParsedText = ParsedText.substr( ParsedText.search( searchterm ) );
                ParsedText = ParsedText.substr(0, ParsedText.search(/кр/) );
                var s = ParsedText.search(/\<B\>/i)+3;
                var e = ParsedText.search(/\<\/B\>/i);

                parsed_result = parseFloat( ParsedText.substr( s, e-s  ) );
                break;
            }
        }
    }

    if ( page == 'berezka' )
    {
       parsed_result = '-1&CurEkr='+parsed_result+'&';
    }
    return parsed_result;
}

function ParseExp()
{
   var parsed_result='';

   var page = GetCurrentPageShort();

   if ( ( page == 'equip' ) || ( page == 'main' ) )
   {
        var textArray;
        textArray = document.getElementsByTagName('td');
        for (var i=0;i < textArray.length; i++)
        {
            if ( ( textArray[i].innerHTML.search(/Опыт/) > -1 ) && ( textArray[i].innerHTML.search(/\<\/table\>/) == -1  ) )
            {
               var ParsedInfo = textArray[i].innerHTML;
               //ParsedInfo = ParsedInfo.split( '<hr' )[1];
               ParsedInfo = ParsedInfo.substr( ParsedInfo.search(/Опыт/) );
               ParsedInfo = ParsedInfo.split( '<br>' );
               ParsedInfo = ParsedInfo[0].split(' ');
               var exp = parseInt( ParsedInfo[1] );
               var nextup = ParsedInfo[2].substr(1, ParsedInfo[2].search(/\)/)-1 );

               parsed_result = 'exp=' + exp + '&nextup=' + nextup ;
            }
        }

   }
   return parsed_result;
}

function IfAlive()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();
   if  ( page == 'battle' )
   {
      if (  ParseHP_Battle().split('&')[0].split('=')[1] > 0 )
        parsed_result = 1;
      else
        parsed_result = 0;
   }

   return parsed_result;
}

function ParseHP_Battle()
{
   var parsed_result='';

   var page = GetCurrentPageShort();
   if  ( page == 'battle' )
   {
        var textArray;
        textArray = document.getElementsByTagName('tr');

        for (var i=0;i < textArray.length; i++)
        {
            var ParsedText = textArray[i].innerHTML;

            if ( ParsedText.search(/Уровень жизни\"\>\: /) > -1 )
            {
                  ParsedText = ParsedText.substr( ParsedText.search(/Уровень жизни\"\>\: /)+17,12 );
                  ParsedText = ParsedText.split('/');
                  var cur_hp='cur_hp='+ parseInt(ParsedText[0]);
                  var max_hp='max_hp='+ parseInt(ParsedText[1]);
                  // todo : check all HP functions for parseint
                  parsed_result = cur_hp+'&'+ max_hp;
            }
        }


   }

   return parsed_result;

}

function GetFightID()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {
      if ( document.getElementById('battle_link') )
      {
        var ParsedText=document.getElementById('battle_link').href;
        ParsedText = ParsedText.substr( ParsedText.search(/\=/)+1 );
        parsed_result = ParsedText;
      }
   }
   else if  ( page == 'info' )
   {
        var textArray;
        textArray = document.getElementsByTagName('a');

        for (var i=0;i < textArray.length; i++)
        {
            var ParsedText = textArray[i].href;

            if ( ParsedText.search(/battleLog/) > -1 )
            {
                   ParsedText = ParsedText.substr( ParsedText.search(/\=/)+1 );
                   parsed_result = ParsedText;
            }
        }
   }
   else if  ( page == 'battleLog' )
   {
      parsed_result = GetPageParamValue('id');
   }

   return parsed_result;
}

function ParseHP_Offer()
{
   var parsed_result='';

   var page = GetCurrentPageShort();
   if  ( page == 'offer' )
   {
   //alert( document.getElementById('hp_value') );
        if ( document.getElementById('hp_value').innerHTML )
        {
            var ParsedText = document.getElementById('hp_value').innerHTML.split('/');
            // alert(ParsedText);
            var cur_hp='cur_hp='+ ParsedText[0];
            var max_hp='max_hp='+ ParsedText[1];

            parsed_result = cur_hp+'&'+ max_hp;
        }
   }

   return parsed_result;
}

function GetCharName()
{
   var parsed_result='';

   var page = GetCurrentPageShort(top.document.URL);
   if  ( page == 'frame' )
   {
      parsed_result = top.login;
   }

   return parsed_result;
}

function IfTrauma()
{

   var parsed_result=-1;

   var page = GetCurrentPageShort(top.document.URL);
   if  ( page == 'frame' )
   {
      if ( arguments.length > 0 )
      {
          var MyCharName = arguments[0];
      }
      else
      {
          var MyCharName = GetCharName();
      }

      var textArray;
      textArray = top.frames["users_hidden"].document.getElementsByTagName('script');

      for (var i=0;i < textArray.length; i++)
      {    // alert ( textArray[i].innerHTML ) ;
      //function addUser(id, rang, login, level, clan_name, orden, chaos_date, traum, silence, battle)
      // top.frames['user'].addUser('33401', '0', 'VmesteSvami', 5, '', '0','', '', '', 0)
           var ContentsToList=textArray[0].innerHTML.split(';');

           for (var j=0;j < ContentsToList.length; j++)
           {
               var ParsedText = ContentsToList[j];
               if ( ParsedText.search( MyCharName ) > -1 )
               {
                  var s = ParsedText.search(/\(\'/i)+2;
                  var e = ParsedText.search(/\)/i);
                  ParsedText = ParsedText.substr( s, e-s);
                  ParsedText = ParsedText.replace(/\'/g,'');
                  ParsedText = ParsedText.split(',');

                  if (ParsedText[7] == 'yes')
                  {
                      parsed_result = 1;
                  }
                  else
                  {
                     parsed_result = 0;
                  }
                  break;
               }

          }
      }
   }
   return  parsed_result;

}

function GetAmountOfSkips()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {
        var textArray;
        textArray = document.getElementsByTagName('input');
         //<input type="button" value="Сменить противника (3)"
        for (var i=0;i < textArray.length; i++)
        {
            var ParsedText = textArray[i].value;

            if ( ParsedText.search(/Сменить противника/) > -1 )
            {
                   ParsedText = ParsedText.substr( ParsedText.search(/\(/)+1 );
                   ParsedText = ParsedText.substr(0, ParsedText.length-1 );
                   parsed_result = ParsedText;
            }
        }

   }
   return  parsed_result;
}

function GetEnemyID()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {

        var textArray;
        textArray = document.getElementsByTagName('input');

        for (var i=0;i < textArray.length; i++)
        {
            if ( textArray[i].name == 'enemyId' )
            {
                parsed_result= textArray[i].value;
                break;
            }
        }
   }

   return  parsed_result;
}

function GetLastFightActionTime()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {
        var textArray;
        textArray = document.getElementsByTagName('span');

        for (var i=0;i < textArray.length; i++)
        {

            if ( ( textArray[i].className == 'hMyMessage' ) || ( textArray[i].className == 'hMessage' ) )
            {
                parsed_result = textArray[i].innerHTML;
                break;
            }
        }
   }


  return  parsed_result;

}
function GetInflictedDamageAmount()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {
        var textArray;
        textArray = document.getElementsByTagName('b');

        for (var i=0;i < textArray.length; i++)
        {
            if ( textArray[i].innerHTML.search(/HP/) > -1 )
            {
                alert ( textArray[i].innerHTML);
                parsed_result= textArray[i].innerHTML.split(' ')[0];
                break;
            }
        }
   }


  return  parsed_result;

}
function GetFightTimeout()
{
   var parsed_result=-1;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {
        var textArray;
        textArray = document.getElementsByTagName('span');

        for (var i=0;i < textArray.length; i++)
        {   //<span style="color: gray">, бой идет с таймаутом 3 мин.</span><br />
            if ( textArray[i].innerHTML.search(/бой идет с таймаутом/) > -1 )
            {
                var ParsedText = textArray[i].innerHTML;

                ParsedText = ParsedText.substr(  ParsedText.search(/бой идет с таймаутом/)+21 );
                ParsedText = ParsedText.split(' ');
                parsed_result= ParsedText[0];
                break;
            }
        }
   }


  return  parsed_result;

}

function GetFightType()
{
   var parsed_result='unknown';

   var page = GetCurrentPageShort();
   if  ( page == 'battle' )
   {  //Тип боя: <img src="http://img.oldcombats.com/battle/hand.jpg" />

      var textArray;
        textArray = document.getElementsByTagName('td');

        for (var i=0;i < textArray.length; i++)
        {
            if ( textArray[i].innerHTML.search(/Тип боя\:/) > -1 )
            {
                var ParsedText = textArray[i].innerHTML;

                ParsedText=ParsedText.substr( ParsedText.search(/Тип боя\:/));
                ParsedText=ParsedText.substr( ParsedText.search(/battle/)+7,10);
                ParsedText = ParsedText.split('.');
                parsed_result= ParsedText[0]; //todo check if works
                break;
            }
        }

   }
   else if ( page == 'battleLog' )
   {
     // todo
   }
   return parsed_result;
}

function ParseFightInfo()
{
   var parsed_result='';

   var page = GetCurrentPageShort();
   if  ( page == 'battle' )
   {

      var Buttons =  document.getElementsByTagName('input');
      if ( Buttons.length == 1 )
      {
          if (document.getElementsByTagName('input')[0].value == "Вернуться") // fight ended
          {
              return 'FightEnded=1&';
          }
      }


      parsed_result = 'FightButtons=' +Buttons.length + '&';

      if ( IfAlive() )
      {
          //parsed_result += 'SkipsLeft=' + GetAmountOfSkips() + '&'; // not yet needed
          parsed_result += 'EnemyID=' + GetEnemyID() + '&';
      }

         var textsArray;         textsArray = document.getElementsByTagName('b');
         for (var i=0;i < textsArray.length; i++){
             if ( textsArray[i].innerHTML.search(/HP/) > -1 )
             {      var CurMaxHp = ParseHP_Battle().split('&');
                    textsArray[i].innerHTML += '</b> Получено урона : <b>' + parseInt (parseInt( CurMaxHp[1].split('=')[1] )  -  parseInt( CurMaxHp[0].split('=')[1] )) ; //
             }}


      /* not yet needed
      parsed_result += ParseHP_Battle()  + '&';
      parsed_result += 'FightID=' + GetFightID() + '&';
      parsed_result += 'LastHit=' + GetLastFightActionTime() + '&';
      parsed_result += 'Timeout=' + GetFightTimeout() + '&';
      parsed_result += 'Inflicted=' + GetInflictedDamageAmount() + '&';
      parsed_result += 'FightType=' + GetFightType() + '&';
      */
      /*
      <div id="mes">
<img src="http://img.oldcombats.com/lock.gif" width="20" height="15" border="0" alt="приват" style="cursor:pointer" onclick="top.AddToPrivate('::my_team')">
<span onclick="top.AddTo('VmesteSvami')" oncontextmenu="OpenMenu(event);return false;" class="team_left">VmesteSvami</span> [36/114], <span onclick="top.AddTo('Skleppi')" oncontextmenu="OpenMenu(event);return false;" class="team_left">Skleppi</span> [72/120], <span onclick="top.AddTo('Флегмат')" oncontextmenu="OpenMenu(event);return false;" class="team_left">Флегмат</span> [42/90]
против
<img src="http://img.oldcombats.com/lock.gif" width="20" height="15" border="0" alt="приват" style="cursor:pointer" onclick="top.AddToPrivate('::enemy_team')">
<span onclick="top.AddTo('Злобный ворон')" oncontextmenu="OpenMenu(event);return false;" class="team_right">Злобный ворон</span> [54/108], <span onclick="top.AddTo('ghosted satana')" oncontextmenu="OpenMenu(event);return false;" class="team_right">ghosted satana</span> [90/90], <span onclick="top.AddTo('mancester')" oncontextmenu="OpenMenu(event);return false;" class="team_right">mancester</span> [69/126]
</div>
*/

   }

   return parsed_result;
}

function TagsToUpcase( InputText )
{
  InputText = InputText.replace(/\<br/g,'<BR');
  InputText = InputText.replace(/\<\/br/g,'</BR');

  InputText = InputText.replace(/\<hr/g,'<HR');
  InputText = InputText.replace(/\<\/hr/g,'</HR');
  return InputText;
}
function ClearNewStringSymbols ( InputText )
{
  //var symbol_space = String.fromCharCode(32);
  var symbol_newstr = String.fromCharCode(13);
  var symbol_returncaret = String.fromCharCode(10);
  var symbol_tab= String.fromCharCode(9);

  InputText =InputText.replace( symbol_newstr, '' ).replace( symbol_returncaret, '' ).replace( symbol_tab, '' );

  while ( InputText.charCodeAt(0) == 32 )
    InputText = InputText.substr(1);

  //for (var i=0;i < InputText.length; i++)  alert(InputText[i] +':'+ InputText.charCodeAt(i));

  return  InputText;
}

function ParseFreeStatsSkills()
{
   var parsed_result='';

   var page = GetCurrentPageShort();
   if  ( page == 'equip' )
   {
        var textArray;
        textArray = document.getElementsByTagName('span');
        for (var i=0;i < textArray.length; i++)
        {
            if ( textArray[i].innerHTML.search(/Возможных увеличений/i) > -1 )
            {
                 if ( textArray[i].getAttributeNode("style").value.search('0d7407') > -1 )
                 {
                      var ParsedText= textArray[i].innerHTML;
                      ParsedText = parseInt( ParsedText.split(':')[1] );
                      if ( ParsedText > 0)
                      {
                          parsed_result += 'freestats=' +  ParsedText  + '&';
                      }
                 }
                 else if ( textArray[i].getAttributeNode("style").value.search('342898') > -1 )
                 {
                      var ParsedText= textArray[i].innerHTML;
                      ParsedText = parseInt( ParsedText.split(':')[1] );
                      if ( ParsedText > 0)
                      {
                          parsed_result += 'freeskills=' +  ParsedText + '&';
                      }
                 }
            }
        }

   }
   else  if  ( page == 'main' )
   {
        textArray = document.getElementsByTagName('a');
        for (var i=0;i < textArray.length; i++)
        {    //   alert( textArray[i].innerHTML );
            if ( textArray[i].innerHTML.search(/\+ Способности/i) > -1 )
            {
              parsed_result += 'freestats=1&'; //alert(1);
            }
        }

   }
   return parsed_result;
}

function GetEmptySlotSrc( slotname )
{
  if ( slotname == 'armour' )
  {
      return "http://img.oldcombats.info/armour/w4.gif";
  }
  else if ( slotname == 'earrings' )
  {
      return "http://img.oldcombats.info/sergi/w3.gif";
  }
  else if ( slotname == 'amulet' )
  {
      return "http://img.oldcombats.info/amulet/w2.gif";
  }
  else if ( slotname == 'weapon' )
  {
      return "http://img.oldcombats.info/wp/w5.gif";
  }
  else if ( slotname == 'ring' )
  {
      return "http://img.oldcombats.info/ring/w9.gif";
  }
  else if ( slotname == 'helm' )
  {
      return "http://img.oldcombats.info/helmet/w1.gif";
  }
  else if ( slotname == 'gloves' )
  {
      return "http://img.oldcombats.info/arm/wpe.gif";
  }
  else if ( slotname == 'shield' )
  {
      return "http://img.oldcombats.info/shield/w6.gif";
  }
  else if ( slotname == 'boots' )
  {
      return "http://img.oldcombats.info/boots/w8.gif";
  }
}

function ParseEquipment()
{   // return 'armour=1&';
  var parsed_result='';

  var page = GetCurrentPageShort();

  var SlotToCheck = 0;

  if ( arguments.length > 0)
  {
      SlotToCheck = arguments[0];
    //  alert('will check slot :'+SlotToCheck);
  }



  var textArray;
  textArray = document.getElementsByTagName('a');
  for (var i=0;i < textArray.length; i++)
  {      //alert(i+' + ':'+textArray[i]);   
        if ( textArray[i].innerHTML.search(/gif/i) > -1 )  // ( textArray[i].src.search(/img\.oldcombats\.com/) > -1 )
        {
            var ParsedText=textArray[i].innerHTML;
             //alert(i + ':'+textArray[i]);   
            if ( SlotToCheck )
            {    //alert('checking slot :'+SlotToCheck + ' in text '+ParsedText);
                 if ( ParsedText.search( GetEmptySlotSrc( SlotToCheck ) ) > -1  )
                 {    // alert( textArray[i].href );
                     if ( ParsedText.search(/Пустой слот/i) > -1  )
                     {
                          return SlotToCheck + '=0&';
                     }
                 }
            }

        }
  }

  if ( SlotToCheck ) // if we are here, <<empty>> slot picture is not found
  {
      return SlotToCheck + '=1&';
  }

}

function ParseStats()
{
   var parsed_result='';

   var page = GetCurrentPageShort();

   var ListStatName = new Array();
   var ListStatVal = new Array();
   var ListIndex=0;

   if ( ( page == 'equip' ) || ( page == 'main' ) || ( page == 'battle' ) )
   {
        var textArray;
        textArray = document.getElementsByTagName('td');
        for (var i=0;i < textArray.length; i++)
        {
            if ( ( textArray[i].innerHTML.search(/Сила/) > -1 ) && ( textArray[i].innerHTML.search(/\<\/table\>/ig) == -1  ) )
            {
               var ParsedInfo = TagsToUpcase( textArray[i].innerHTML );


              // alert( 'Start:\n'+ParsedInfo );
               if ( ( page == 'equip' ) || ( page == 'main' ) ) // bit different from 'battle'
               {
                  ParsedInfo = ParsedInfo.split( '<HR' )[0];
                  //alert('Cut:\n'+ ParsedInfo );
               }

               ParsedInfo = ParsedInfo.split( '<BR>' );

               //alert('length:\n'+ ParsedInfo.length );

               for (var j=0; j <  ParsedInfo.length; j++)
               {
                 // alert( ParsedInfo[j] ) ;

                  if ( ( ParsedInfo[j].search(/\:/) > -1)  && ( ParsedInfo[j].search(/SPAN/i) == -1) )
                  {
                      ParsedInfo[j] = ClearNewStringSymbols(ParsedInfo[j]);

                 /*     if ( ParsedInfo[j].search(/SPAN/i) > -1 )
                      {
                          //alert( ParsedInfo[j] ) ;
                          ListStatName[ ListIndex ] = 'freestats';
                          ListStatVal[ ListIndex ] = parseInt ( ParsedInfo[j].split(':')[2] );
                        //   alert( j + ')'+ ParsedInfo[j] +':'+ ListStatName[ ListIndex ] +'/'+ ListStatVal[ ListIndex ]);
                          ListIndex++;
                      }
                      else
                   */
                      {
                         // alert ( ParsedInfo[j] );
                          ListStatName[ ListIndex ] = ParsedInfo[j].split(':')[0].replace(' ','');
                          ListStatVal[ ListIndex ] = parseInt ( ParsedInfo[j].split(':')[1] );
                          // alert( j + ')'+ ParsedInfo[j] +':'+ ListStatName[ ListIndex ] +'/'+ ListStatVal[ ListIndex ]);
                          ListIndex++;
                      }


                  }
               }
               break;
            }

        }
   }
   else if ( page == 'restat' )
   {
        var textArray;
        textArray = document.getElementsByTagName('span');
        for (var i=0;i < textArray.length; i++)
        {
            if ( textArray[i].id.search(/stat/) > -1)
            {
                  var stat_id = textArray[i].id.substr( textArray[i].id.length-1,1);
                  var stat_val = parseInt( textArray[i].innerHTML );
                 // StatsList[stat_id] = stat_val;
                 // alert( stat_id + ' ' + stat_val  );
                 //todo
            }
        }

   }

    for (var i=0;i < ListIndex; i++)
    {
        parsed_result += ListStatName[ i ] + '=' + ListStatVal[i] + '&';
    }

   return parsed_result;
}


function GetSystemTimeFromClocks()
{
    var parsed_result=-1;

    var textArray;

    if ( GetPageClass() == 1 )   //main frame
    {
          textArray = top.frames['talk'].document.getElementsByTagName('param');
    }
    else if ( GetCurrentPageShort() == 'chat/talk' )
    {
        textArray =  document.getElementsByTagName('param');
    }

    if ( textArray.length > 0 )
    {
        for (var i=0;i < textArray.length; i++)
        {                                // <embed  src="http://img.oldcombats.com/clock.swf?hours=11&minutes=39&sec=43" menu="false" quality="high"

             if ( textArray[i].name == 'movie' )
             {
                var ParsedText = textArray[i].value;
                ParsedText = ParsedText.split('?')[1];
                ParsedText = ParsedText.split('&');

                parsed_result = ParsedText[0].split('=')[1] +':' + ParsedText[1].split('=')[1] + ':' + ParsedText[2].split('=')[1];
             }
        }
    }

    return parsed_result;
}


function playMusic()
{
    alert(1);
}

/*******************************************************************************************/
/************************** reporting functionality ****************************************/
/*******************************************************************************************/
function StartParsing()
{
    if  (/^http:\/\/(.*)oldcombats\.info(.*)$/.test(document.URL))
    {
        var current_page = GetCurrentPage(document.URL);
        var parsed_text  = ParsePageInformation(  current_page );

        // http://eastcity.oldcombats.com/chatRefresh?sess=266c8ebaf1284d4074f59101276cb10c&inv=true
        // http://eastcity.oldcombats.com/chatRefresh?sess=266c8ebaf1284d4074f59101276cb10c&show=0.8913921745773693&lid=0
        
        //if ( parsed_text.length > 0) alert('StartParsing:'+ parsed_text ) ;
        if ( GetCurrentPageShort(top.document.URL) =='frame' )
        {
            top.ChatClearTimerID    = -1;
            top.ChatClearDelay      = 999999;
            top.ChatClearSize       = 999999999;
            top.lid = 0;


        }
        
        if ( typeof( parsed_text ) != "undefined" )
        {
            if (  parsed_text.length == 0 )
            {
                 parsed_text = '';
            }
        }
        else
        {
            parsed_text ='undefined';
        }

        ScriptStatus = 'Parsed';
       // alert(current_page+'/'+parsed_text);
        Report( current_page, parsed_text );
    }
}

function Report( page, collected_info )
{

    var SplittedPage = page.split( '?' );
    page = SplittedPage[0];

    if ( SplittedPage.length > 1 )
    {
        page_params=SplittedPage[1];
    }
    else
    {
        page_params='none';
    }

    var asda = 0;
    while ( collected_info.search('&&') > -1 )
    {
        collected_info.replace('&&', '&');
        if ( asda  > 100) break;
        asda++;
    }
    

    if ( collected_info.length > 0 )
    {
            UpdateDisplayedInformation(
                                       PrintTab()+ ' page :"'+page+'"<br>'+
                                       PrintTab()+ ' page_params :"'+page_params+'"<br>'+
                                       PrintTab()+ ' parsed page values ('+collected_info.length+'):"' +collected_info+'"'
                                      );

            EmptyCallbackResults();

            if ( RequestActionsFromBotnet )
            {
                //callback_window = window.open(report_domain,'page=' + page + '&page_params=' +page_params + '&' +collected_info,'');  setTimeout('ReportCallback()',50);
                SetIframeInput( 'page=' + page + '&page_params=' +page_params + '&' +collected_info , 'needcallback' );
                ScriptStatus = 'RequestSendIfNeeded';
            }
            else
            {
                if ( AutoPilotOn )
                {
                   ScriptStatus = 'AutoPilot';
                }

            }
    }

}

function ReportCallback()
{
  if (arguments.length > 0)
  {
    var callback_ticks = arguments[0];
  }
  else
  {
    var callback_ticks = 0;
  }
  callback_ticks++;

  if ( callback_ticks > 50 )
  {
       UpdateDisplayedInformation('<b>Callback failed by timeout<b>. Refreshing page in 10 seconds');
       ScriptStatus = 'CallbackTimeout';
       RereshCurrentPage(10);
       return;
  }

  if ( callback_window.name.length )
  {
      var result = callback_window.name;
      var callback_happenned = GetPageParamValue(result, 'callback');

      if  (  callback_happenned == 1 )
      {
          result = result.substr(12);
          UpdateDisplayedInformation('<b>callback</b>:<br>'+result+'<br>');
          callback_window.close();

          if ( result.length == 0 )
          {
              //alert('nothing to do');
              return;
          }


          callback_window = '';

          result= result.split('&');
          if ( result.length == 1)
          {
              result = result[0];
              var count_of_instructions = 1;
          }
          else
          {
               var count_of_instructions = result.length;
          }
          for (var i=0; i < count_of_instructions; i++)
          {
            callback_param_list[i]  =  result.split('=')[0];
            callback_param_values[i]=  result.split('=')[1];
          }

          ProcessCallback();
      }
      else
      {
          setTimeout('ReportCallback('+callback_ticks+')',50);
      }
  }
  else
  {// alert('callback failed');
      return;
  }
}

function PrintTab() {      return '&nbsp&nbsp&nbsp&nbsp ';}
function ProcessCallback()
{
   var count_of_instructions = callback_param_list.length;
   ScriptStatus = 'Processing ' +count_of_instructions+ ' callback instructions';
   UpdateDisplayedInformation('<br><b>'+ ScriptStatus + '</b> :');
   for (var i=0; i < count_of_instructions; i++)
   {
      UpdateDisplayedInformation( PrintTab()+'('+(i+1)+'/'+count_of_instructions+') <b>' +callback_param_list[i] + '</b> ( <i>'+callback_param_values[i]+'</i> )<br><br>' );
      var cb_action = callback_param_list[i];
      var cb_param = callback_param_values[i];

      if  (  cb_action == 'goto' )
      {
          var current_page = GetCurrentPage(document.URL);
          if ( current_page == 'main' )
          {
             if ( cb_param == 'j/request' )
             {
                  ClickButton("button","Поединки");  return;
             }
             else if (cb_param == 'j/equip' )
             {
                  ClickButton("button","Настройки / инвентарь");  return;
             }
          }
          else if ( current_page == 'equip' )
          {
             if ( cb_param == 'j/main' )
             {
                  ClickButton("button","Вернуться");  return;
             }
          }
      }
      else if ( cb_action == 'createoffer')
      {
          Action_CreateOffer(cb_param);
      }
      else if ( cb_action == 'sendmessageself' )
      {
          Action_SendMessage('private', GetCharName() , cb_param);
      }
      else if ( cb_action == 'increasestat' )
      {
          Action_IncreaseStat(cb_param);
      }
      else if ( cb_action == 'increaseskill' )
      {
          Action_IncreaseSkill(cb_param);
      }
      else if ( cb_action == 'getintothefight' )
      {
          if ( parseInt ( cb_param ) < 4 )
          {
            //document.getElementById('allLevel').checked="checked";
            //refresh();
          }
          setTimeout('Action_GetIntoFight("'+cb_param+'")',2500); //sometimes needed  to have a pause
      }
      else if ( cb_action == 'hit' )
      {
          Action_FightHit(cb_param);
      }
      else if ( cb_action == 'exitfight' )
      {
          Action_FightExit();
      }
      else if ( cb_action == 'equipset' )
      {
          Action_EquipSet(cb_param);
      }
      else if ( cb_action == 'logout' )
      {
          Action_LogOut();
      }
      else if ( cb_action == 'movechar' )
      {
          Action_MoveCharacterTo( cb_param );
      }
      else if ( cb_action == 'refreshpage' )
      {
          RereshCurrentPage( cb_param );
      }
      else if ( cb_action == 'buyitem' )
      {
          Action_BuyItemGos( cb_param );
      }
   }
}

function EmptyCallbackResults()
{
  callback_param_list = new Array();
  callback_param_values = new Array();
}

/**************************************************************************************/
/************************** ACTION functionality **************************************/
/**************************************************************************************/
function FindButton()
{
  var button_type = '';
  var button_value ='';
  var button_name ='';
  
  if ( arguments.length > 0 )
  {
     button_type =arguments[0];
  }
  if ( arguments.length > 1 )
  {
      button_value =arguments[1];
  }
  if ( arguments.length > 2 )
  {
      button_name =arguments[2];
  }

    var textArray;   textArray = document.getElementsByTagName('input');
    for (var i=0;i < textArray.length; i++)
    {
        var ParsedText = textArray[i];
        if (ParsedText.type==button_type)
        {
            if ( button_value.length > 0)
            {
               if (ParsedText.value==button_value)
               {
                   if (button_name.length > 0)
                   {
                        // alert(ParsedText.name + ' ' +button_name);
                       if (ParsedText.name==button_name)
                       {
                            return ParsedText;
                       }
                       else
                       {
                            continue;
                       }
                   }
                   else
                   {
                   
                      return ParsedText;
                   }
               }
               else
               {
                   continue;
               }
            }
            else
            {
              return ParsedText;
            }
        }

    }
    return 0;

}

function ClickHref()
{

}

function ClickButton()
{
  var button_type = '';
  var button_value ='';
  var button_name ='';

  if ( arguments.length > 0 )
  {
     button_type =arguments[0];
  }
  if ( arguments.length > 1 )
  {
      button_value =arguments[1];
  }
  if ( arguments.length > 2 )
  {
      button_name =arguments[2];
  }
      var foundbutton = FindButton(button_type,button_value,button_name);
      
      //alert( foundbutton);
         
      if ( foundbutton === 0 )
      {
          return;
      }
      else
      {
          foundbutton.click();
      }
}

function Action_FightExit()
{
      ClickButton("button","Вернуться");
}

function Action_FightHit( FightEnemyID )
{
  if ( FightEnemyID.length > 0 )
  {
    ClickButton("submit","Вперед !!!","go");
  }
}

function Action_CreateOffer( charlevel )
{
    if ( charlevel.length == 0) return;

    if ( charlevel < 4)
    {
        UpdateDisplayedInformation('just wait for bot offer');
    }
    else
    {
        UpdateDisplayedInformation('creating offer');

        var timestart   = 5; //3 //5 //7 //10 //15 //20 //30
        var timeout     = 3; //3 //5 //7 //10
        var enemylevels = 3; // 1 = any // 2 = mine // 3 = +-1
        if ( AcceptHighLevelOffers == 0) enemylevels =2;
        if ( AcceptHighLevelOffers == 21) enemylevels=1;
        

        timestart *= 60;  timeout *= 60;
        var mysrc='http://eastcity.oldcombats.info/offer/chaos?action=create&time_start='+timestart+'&time_out='+timeout+'&levels='+enemylevels+'&battle_action=hand&battle_type=normal&rnd='+Math.random();
        OpenBackgroundLink( mysrc );
        RereshCurrentPage( 5 );
    }

}

function ParseHPSpan()
{


   var MySpan = document.getElementById('hp_value');

   if ( typeof( MySpan )  == "undefined"  )
   {
      return "";
   }
   else
   {
         //  MySpan.innerHTML
              ParsedText = MySpan.split('/');

              var cur_hp='cur_hp='+ parseInt( MySpan.split('/')[0] );
              var max_hp='max_hp='+ parseInt( MySpan.split('/')[1] );

              return  cur_hp+'&'+ max_hp;
   }

}
function Action_GetIntoFight( charlevel )
{
    var FightOfferButtonID = FindBestOffer( charlevel );  // alert ( FightOfferButtonID );
    if ( FightOfferButtonID.length > 0 )
    {
       if ( Action_AcceptOffer( FightOfferButtonID,charlevel ) > 0)
       {

       }
    }
    else
    {
        Action_CreateOffer( charlevel );
    }

}

function Action_AcceptOffer( OfferButtonID , charlevel)
{

  ClickButton("radio",OfferButtonID,"accept_offer_id");
  ClickButton("submit","Принять вызов");
  return;
}

function FindBestOffer(charlevel)
{
    charlevel = parseInt( charlevel );
    if  ( charlevel < 4)
    {
        var textArray;
        textArray = document.getElementsByTagName('div');

        for (var i=0;i < textArray.length; i++)
        {
           var ParsedText = textArray[i].innerHTML; //
         //  alert(ParsedText);
                  if (ParsedText.search(/accept_offer_id/i))
                  {     if ( ParsedText.search(/bloody/i)>-1) continue;

                        var OfferText = ParsedText;  // парсим заявку.

                        var EnemyBusy = OfferText.search(/против/i) * (-1);
                       // alert(EnemyBusy);
                        if ( EnemyBusy > 0 )  // нам пойух на занятых чуваков
                        {
                                var pos_start  = 6+OfferText.search(/\<\/b\> \[/i);
                                var EnemyBusy = OfferText.substr(pos_start,1);

                                var pos_end   = pos_start -6;
                                    pos_start = OfferText.search(/\<b\>/i) +3;
                                var EnemyName = OfferText.substr(pos_start,pos_end-pos_start);

                                if (
                                    ( (charlevel == 0) && (EnemyName in { Победитель:1 } ) ) ||   //,Учитель:1
                                    ( (charlevel == 1) && (EnemyName in { АтаманшА:1, ГрозныйМаг:1 } ) ) ||
                                    ( (charlevel == 2) && (EnemyName in { Критовик:1} ) )  ||
                                    ( (charlevel == 3) && (EnemyName in { Зверь:1, James:1, Аватар:1 } ) )
                                   )
                                {


                                           pos_start = OfferText.search(/value\=\"/i) +7;
                                           pos_end   =  OfferText.substr(pos_start).search(/\"/i)+pos_start ;
                                       var FightID =   OfferText.substr(pos_start,pos_end-pos_start);
                                       //alert(pos_start + ' / '+pos_end + ' :' + FightID);


                                       return FightID;
                                }
                               // else (alert(EnemyName));
                       }
                  }
         }
    }
    else
    {
          var best_offer_id=0;
          var best_offer_amount=0;
          var textArray;
	        textArray = document.getElementsByTagName('div');
	        for (var i=0;i < textArray.length; i++)
	        {

	             var ParsedText = textArray[i].innerHTML; //     alert(ParsedText);
	             if ((ParsedText.search(/accept_offer_id/i) > -1) && (ParsedText.search(/div/i) == -1) )
	             {
									if ( ParsedText.search(/Кулачный бой/i) > -1)
									{
                        var s =  ParsedText.search(/тип боя/i)-7;
                        var t = ParsedText.substr(s,7);
                        t = t.substr(t.search(/\(/i)+1,4);
                        if (t.search(/\)/i) > -1 )
                            t = t.substr(0,t.length-1);
                            
                        var offer_level = t.split("-");
                        var offer_level_max=offer_level[1];
                        
                        var amount_of_fighters = 99;//parseInt( offer_level.substr(0, offer_level.search(/\(/i) ) );
                          
                        var pos_start  = ParsedText.search(/accept_offer_id\" value=\"/i)+24;
                        var pos_end  = ParsedText.search(/\"\>/i);
                        var offer_button_name= ParsedText.substr(pos_start,pos_end-pos_start);
                        // alert(offer_button_name);                       
                        UpdateDisplayedInformation( charlevel + ' vs ' + offer_level_max);
                        if (offer_level_max == charlevel) // best offer is always your level offer
                        {
                              best_offer_id = offer_button_name;
                              break;
                        }                         
                        
                      if (offer_level_max <= charlevel + AcceptHighLevelOffers)
                      {
                           if ( best_offer_amount < amount_of_fighters )
                           {
                               best_offer_amount = amount_of_fighters;
                               best_offer_id =offer_button_name;
                           }
                      }                        


									}
	             }
					}
        //alert(best_offer_id);
        if (best_offer_id.length > 1)
        {
              return best_offer_id;
        }
    }

  return '';
}

/*
				 var spanArray;
         spanArray = document.getElementsByTagName('span');

         var best_offer_id=0;
         var best_offer_amount=0;

         for (var i=0;i < spanArray.length; i++)
         {
               var ParsedText=spanArray[i].innerHTML;

               var FistsOffer = ParsedText.search(/http\:\/\/img.oldcombats.info\/battle\/hand\.jpg/i); // na kulakah
               if ( FistsOffer > -1)
               {

                      var pos_start= ParsedText.search(/\<img src\=\"http\:\/\/img\.oldcombats\.info\/inf\.gif\" border\=\"0\"\>\<\/a\> /i)+60;
                      var pos_end  = ParsedText.search(/\) тип боя\:/i);

                      var offer_level = ParsedText.substr(pos_start,pos_end-pos_start);
                      var amount_of_fighters = parseInt( offer_level.substr(0, offer_level.search(/\(/i) ) );

                      offer_level = offer_level.substr( offer_level.search(/\(/i)+1 );

                      var offer_level_diapazon =  offer_level.split('-');
                      var offer_level_min = parseInt( offer_level_diapazon[0] );
                      var offer_level_max = parseInt( offer_level_diapazon[1] );


                      var pos_start  = ParsedText.search(/name\=\"offer_id\" id\=\"/i)+20;
                      var pos_end  = ParsedText.search(/\"\>/i);
                      var offer_button_name= ParsedText.substr(pos_start,pos_end-pos_start);
                      UpdateDisplayedInformation( charlevel + ' vs ' + offer_level_max);
                      if (offer_level_max == charlevel) // best offer is always your level offer
                      {
                            best_offer_id = offer_button_name;
                            break;
                      }



                      if (offer_level_max <= charlevel + AcceptHighLevelOffers)
                      {
                           if ( best_offer_amount < amount_of_fighters )
                           {
                               best_offer_amount = amount_of_fighters;
                               best_offer_id =offer_button_name;
                           }
                      }
                      //alert('('+offer_button_name+')'+amount_of_fighters + ':' + offer_level_min +'/' + offer_level_max );
               }
         }
					*/
function Action_LogIn()
{
    var Char_Login ='';
    var Char_Password ='';

    if ( arguments.length > 0) // we got only login
    {
         Char_Login = arguments[0];
    }

    if ( arguments.length == 2) //got login and password
    {
        Char_Password = arguments[1];
    }
    else
    {
         RequestInfoFromBotnet('password','Action_LogIn(\''+Char_Login+'\',\'<result>\')','Char_Login='+Char_Login);
         return;
    }

    if ( ( Char_Login.length > 0 )  && ( Char_Password.length > 0 ) )
    {
        var generated_link = obk_domen + 'auth.php?login=' + Char_Login + '&password='+Char_Password;
        //alert('logging in..'+generated_link);
        if ( AutoLogInCharacters )
        {
            if ( document.URL != top.document.URL )
                top.location.href=generated_link;
            else
                location.href=generated_link;
        }
    }
    else
    {
        alert('not possible to log in');
    }
}

function Action_LogOut()
{
    top.location.href= obk_domen + '/j/exit'; // todo
}

function Action_TurnChatOff()
{
    var el = top.frames['talk'].document.getElementById("sys");
    el.value = 0;
	  top.ChatSys = false;
    document.getElementById('b___system').src = b___system_off.src;
    document.getElementById('b___system').alt = b___system_off.alt;
}

function Action_TurnChatOn()
{
      var el = top.frames['talk'].document.getElementById("sys");
      top.ChatSys = true;
      el.value = 1;
      document.getElementById('b___system').src = b___system_on.src;
      document.getElementById('b___system').alt = b___system_on.alt;
}

function Action_TurnChatFilterOn()
{
    var el = top.frames['talk'].document.getElementById("om");

	  top.ChatOm = true;
  	el.value = 1;
    document.getElementById('b___filter').src = b___filter_on.src;
  	document.getElementById('b___filter').alt = b___filter_on.alt;

}

function Action_TurnChatFilterOff()
{
    var el = top.frames['talk'].document.getElementById("om");

    top.ChatOm = false;
    el.value = 0;
    document.getElementById('b___filter').src = b___filter_off.src;
    document.getElementById('b___filter').alt = b___filter_off.alt;
}

function Action_ServiceRunner(){}
function Action_ServiceRestat(){}



function Action_FightSkipEnemy(){}
function Action_FightWait(){}
function Action_FightSetVictory(){}
function Action_FightSetDraw(){}

function Action_ModifyItem(){}
function Action_RepairItem(){}
function Action_ReloadMagic(){}

function Action_PostSendMoney(){}
function Action_PostSendMessage(){}
function Action_PostSendItem(){}

function Action_BuyItemGos( )
{
    if ( arguments.length > 0 )
        var ItemID = arguments[0];

    if ( arguments.length >= 2 )
        var CurrentActionStatus = arguments[1];
    else
        { var CurrentActionStatus = 'starting';  UpdateDisplayedInformation('going to buy : ' + ItemID ); }

    if ( arguments.length >= 3 )
        var StoredLocation = arguments[2];
    else
        var StoredLocation = GetRoomName();


    UpdateDisplayedInformation('BuyItem <b>status</b>:' + CurrentActionStatus);

    if ( CurrentActionStatus == 'starting' )
    {
          if ( StoredLocation != 'Магазин' )
          {
              Action_MoveCharacterTo('Магазин');
              CurrentActionStatus = 'movingto';
          }
          else
          {
             CurrentActionStatus = 'buying';

          }
    }
    else if ( CurrentActionStatus == 'buying' )
    {
            UpdateDisplayedInformation('buy : ' + ItemID);
              //javascript:buyItem(8,'3.0',1,'нож -Убийцы-');

            var ItemOtdel =  GetItemOtdelByID( ItemID );
            if ( ItemOtdel.length > 0 )
            {
               var generated_link =  obk_domen + 'j/shop?act=buy&otdel='+ItemOtdel+'&id='+ItemID+'&count=1';
               OpenBackgroundLink( generated_link );
            }
            else
            {
               UpdateDisplayedInformation('buylink opening failed');
            }

            if ( StoredLocation != GetRoomName() )
            {
               Action_MoveCharacterTo(StoredLocation);
               CurrentActionStatus = 'movingfrom';
            }
            else
            {
              CurrentActionStatus = 'finished';
            }
    }
    else if ( CurrentActionStatus == 'movingto' )
    {

          if ( GetRoomName() == 'Магазин' )
          {
              CurrentActionStatus = 'buying';

          }
    }
    else if ( CurrentActionStatus == 'movingfrom' )
    {
          if ( StoredLocation == GetRoomName() )
          {
              CurrentActionStatus = 'finished';
          }
    }

    if ( CurrentActionStatus == 'finished' )
    {
         //alert('done');
         RereshCurrentPage(1);
    }
    else
    {
      setTimeout('Action_BuyItemGos("'+ItemID+'","'+CurrentActionStatus+'","'+StoredLocation+'" )' ,1000 );
    }

}

function OpenBackgroundLink( link_text )
{
           var senditem = document.getElementById('toload');
           if ( !senditem ) { senditem = PutSendItem(); }
           senditem.src = link_text;
}

function GetItemOtdelByID( ItemID )
{
   UpdateDisplayedInformation(' GetItemOtdelByID :' + ItemID);
   ItemID = parseInt(ItemID);
   if ( ItemID == 8 )
   {
        return 'knife';
   }
   else
   {
        return '';
   }
}

function Action_SellItemGos(){}

function Action_PutItemKomok(){}
function Action_ReturnItemKomok(slot_name){}
function Action_BuyItemKomok(slot_name){}

function Action_UseItemMagic(slot_name){}

function Action_PutItemLombard(){}
function Action_ReturnItemLombard(){}

function Action_MoveCharacterTo(location)
{
    var CurrentLocation = GetRoomName();
    if ( CurrentLocation != location)
    {
       var CalculatedPath = CalculatePath(CurrentLocation,location);
       if ( CalculatedPath == 0)
       {
          UpdateDisplayedInformation('path cannot be found');
       }
       else
       {
           //UpdateDisplayedInformation('path : '+CalculatedPath);
           CalculatedPath = CalculatedPath.split(';');

           var senditem = document.getElementById('toload');
           if ( !senditem ) { senditem = PutSendItem(); }

           for (var i = 0; i < CalculatedPath.length -1; i++ )
           {
              var generated_link = obk_domen + 'j/map?move=' + CalculatedPath[i] + '&rnd=' + Math.random() ;
              //UpdateDisplayedInformation('<b>processing movement</b> :' + generated_link);

              //setTimeout("UpdateDisplayedInformation('::"+generated_link+"');document.getElementById('toload').src='"+generated_link+"';",(i+1)*1000);

              setTimeout("document.getElementById('toload').src='"+generated_link+"';",(i+1)*1000);

              //setTimeout("UpdateDisplayedInformation('::"+generated_link+"');window.open('"+generated_link+"','','');",(i+1)*1000);
           }

          // UpdateDisplayedInformation('<b>moving processed</b>');
           top.frames["users_hidden"].location.href = '/chatUsers?rnd='  +Math.round(Math.random()*100000);
           return 1;
       }
    }
    else
    {
       UpdateDisplayedInformation('вы уже здесь');
       return 1;
    }
    return -1;
}

function CalculatePath(StartLocation, EndLocation)
{

    var StartLocationID = GetLocationIdByName( StartLocation );
    var EndLocationID   = GetLocationIdByName( EndLocation );

    if ( EndLocation.length > 0)
    {
        UpdateDisplayedInformation('from ' +StartLocation + '('+StartLocationID+') to ' + EndLocation + '('+EndLocationID+')');

        var StartLocExit = GetExitLocation( StartLocation );

        if  ( StartLocExit < 0 )
        {
            alert('ошибка перехода');
            return 0;
        }
            var LeftPart = new Array();
            LeftPart.push( StartLocationID );

            while (GetExitLocation ( LeftPart[LeftPart.length-1] ) != 21 )
            {
                var LocExit = GetExitLocation ( LeftPart[LeftPart.length-1] );
                if (LocExit < 0)
                {    alert('ошибка перехода в цель (left)');
                    return 0;
                }
                LeftPart.push( LocExit ) ;
            }
            LeftPart.push( 21 ) ;
            var RightPart = new Array();
            RightPart.push( EndLocationID );

            do
            {
                var LocExit = GetExitLocation ( RightPart[RightPart.length-1] );
                //alert (EndLocation + '=> ' +RightPart[RightPart.length-1] + '=>' +RightPart.length + ':'+ LocExit + ' VS '+ StartLocExit );
                if (LocExit < 0)
                {    alert('ошибка перехода в цель (right)');
                    return 0;
                }
                RightPart.push( LocExit ) ;
            }
            while ( GetExitLocation ( RightPart[RightPart.length-1] ) !=  GetExitLocation ( LeftPart[LeftPart.length-1] ) )

            //alert(LeftPart.length + '<==>' + RightPart.length );

            var path ='';
            for (var i = 1; i < LeftPart.length-1; i++ )
                path += LeftPart[i] + ';';

            for (var i = RightPart.length -1; i > -1; i-- )
                path += RightPart[i] + ';';
            return path;

    }
     //top.canMove(LocationID);

    return 0;
}

function IsNumeric ( input_val )
{
   if ( input_val )
   {
       if ( ( input_val.toString().length > 0 ) && ( ! input_val.length ) )
       {
            return 1;
       }
       else
       {    //if string

           if ( input_val == parseInt(input_val) )
            return 1;
           else
            return 0;
       }
   }
   return 0;
}

function GetExitLocation( Location )
{
  var result = -1;
  if ( IsNumeric ( Location ) )
  {
        var LocationID = Location;
  }
  else
  {
        var LocationID = GetLocationIdByName( Location );
  }

  if ( LocationID > -1)
  {
      //alert( LocationID + ' => ' + result);
      if (  LocationID <= 20 ) // zdanie bk
      { result = 21; }
      else if (  LocationID == 21 ) // mi uzhe na cp
      { result = 21; }
      else if (
                ((  LocationID >= 25 ) && (  LocationID <= 34 ))
              || (  LocationID == 54 )
              ) // zdanija CP
      { result = 21; }
      else if (
                (  LocationID == 35 ) ||
                (  LocationID == 36 ) ||
                (  LocationID == 57 )
              )
      { result = 22; }  // tumannaja
      else if (
                (  LocationID == 37 ) ||
                (  LocationID == 38 ) ||
                (  LocationID == 39 ) ||
                (  LocationID == 52 ) ||
                (  LocationID == 54 ) ||
                (  LocationID == 55 ) ||
                (  LocationID == 56 )
              )
      { result = 23; } //strawilkina
      else if (  LocationID == 51 ) // sekretka
      { result = 1; }   // novichki 1
      else if (  LocationID == 42 ) // Комната знахаря
      { result = 8; }   // torgovij
      else if ( (  LocationID == 22 ) || (  LocationID == 23 ) )  // 'Башня смерти, участвует в турнире'
      { result = 21; }
      else if (  LocationID == 53 )  // 'Башня смерти, участвует в турнире'
      { result = 0; }
     // alert( LocationID + ' => ' + result);
  }
  return result;
}

function GetLocationIdByName( location )
{
    var locid=-1;
    if ( location =='Комната для новичков') locid=1;
    if ( location =='Комната для новичков 2') locid=2;
    if ( location =='Комната для новичков 3') locid=3;
    if ( location =='Комната для новичков 4') locid=4;
    if ( location =='Зал воинов') locid=5;
    if ( location =='Зал воинов 2') locid=6;
    if ( location =='Зал воинов 3') locid=7;
    if ( location =='Торговый зал') locid=8;
    if ( location =='Рыцарский зал') locid=9;
    if ( location =='Башня рыцарей-магов') locid=10;
    if ( location =='Колдовской мир') locid=11;
    if ( location =='Этажи духов') locid=12;
    if ( location =='Астральные этажи') locid=13;
    if ( location =='Огненный мир') locid=14;
    if ( location =='Зал Паладинов') locid=15;
    if ( location =='Совет Белого Братства') locid=16;
    if ( location =='Зал Тьмы') locid=17;
    if ( location =='Царство Тьмы') locid=18;
    if ( location =='Зал Стихий') locid=19;
    if ( location =='Будуар') locid=20;
    if ( location =='Центральная площадь') locid=21;
    if ( location =='Туманная улица') locid=22;
    if ( location =='Страшилкина улица') locid=23;
    if ( location =='Почта') locid=25;
    if ( location =='Храм') locid=27;
    if ( location =='Вокзал') locid=28;
    if ( location =='Магазин') locid=29;
    if ( location =='Стелла выбора') locid=30;
    if ( location =='Комиссионный магазин') locid=31;
    if ( location =='Ремонтная мастерская') locid=33;
    if ( location =='Новогодняя елка') locid=34;
    if ( location =='Замок #1') locid=35;
    if ( location =='Замок #2') locid=36;
    if ( location =='Регистратура кланов') locid=37;
    if ( location =='Магазин березка') locid=38;
    if ( location =='Банк') locid=39;
    if ( location =='Комната знахаря') locid=42;
    if ( location =='Секретная комната') locid=51;
    if ( location =='Башня смерти') locid=52;
    if ( location =='Башня смерти, участвует в турнире') locid=53;
    if ( location =='Цветочный магазин') locid=54;
    if ( location =='Ломбард') locid=55;
    if ( location =='Камера хранения') locid=56;
    if ( location =='Аукцион') locid=57;
    
//     if ( location =='Аукцион') locid=59;
//     if ( location =='Аукцион') locid=59;
//     if ( location =='Аукцион') locid=60;
//     if ( location =='Аукцион') locid=61;
//       if ( location =='Аукцион') locid=62;
//         if ( location =='Аукцион') locid=61;
    return locid;
}

function Action_GiveItem(itemid,target_name){}
function Action_GiveMoney(itemid,target_name){}

function Action_DeleteItem(itemid,itemtype){}
function Action_EquipItem(itemid,itemtype){}
function Action_UnequipItem(slot_name){}

function Action_EquipSaveNewSet(set_name)
{
    var page = GetCurrentPageShort();
    if (  page == 'equip' )
    {
        var generated_link=textArray[i].href;
        //alert ( generated_link );
        top.frames["main"].location.href = generated_link;
    }
}

function Action_EquipSet(set_name)
{
    var generated_link='';
    var page = GetCurrentPageShort();
    if (  page == 'equip' )
    {
         var textArray;
          textArray = document.getElementsByTagName('a');
          for (var i=0;i < textArray.length; i++)
          {

                
                if ( textArray[i].innerHTML.search('Надеть "'+set_name)>-1)
                {
                    generated_link=textArray[i].href;

                    top.frames["main"].location.href = generated_link;
                }
                else
                { 
                // alert(textArray[i].innerHTML + 'vs' +'Надеть "'+set_name);
                }
          }
    }
    if ( generated_link.length == 0 )
    {
        UpdateDisplayedInformation ('set not found');
    }
}

function Action_UnequipAll()
{
    var page = GetCurrentPageShort();
    if (  page == 'equip' )
    {
        var generated_link = 'http://eastcity.oldcombats.info/equip?act=uwa';
        top.frames["main"].location.href = generated_link;
    }
}

function Action_IncreaseStat(statname)
{
    var generated_link = 'http://eastcity.oldcombats.info/equip?act=stat&stat='+statname;
    top.frames["main"].location.href = generated_link;
}

function Action_IncreaseSkill(skillname)
{
    var generated_link = 'http://eastcity.oldcombats.info/equip?act=skill&skill='+skillname;
    top.frames["main"].location.href = generated_link;
}



function Action_SendMessage(msg_type,msg_target,msg_text)
{
   var generated_text='';

   if ( msg_target.length > 0)
   {
       if ( msg_type == 'private' )
       {
         generated_text += '%EF%F0%E8%E2%E0%F2%ED%EE%20['+koi2unicode(msg_target)+']%20';
         generated_text += koi2unicode( msg_text );
       }
       else if ( msg_type == 'to' )
       {
         generated_text += '%E4%EB%FF%20['+koi2unicode(msg_target)+']%20';
         generated_text += koi2unicode( msg_text );
       }
   }

   if ( msg_type == 'common' )
   {
        generated_text = koi2unicode( msg_text );
   }

   if ( generated_text.length > 0 )
   {
       var generated_link = 'http://eastcity.oldcombats.info/chatRefresh?om=&sys=0&lid='+Math.floor(Math.random() * 10000) +'&onlysend=yes&text=' + generated_text;
       var senditem = document.getElementById('toload');
       if ( !senditem )
       {
          senditem = PutSendItem();
       }
       senditem.src=generated_link;
   }
   else
   {
      return -1;
   }
}

/**************************************************************************************/
/************************** misc functionality ****************************************/
/**************************************************************************************/
function UpdateDisplayedInformation( update_text )
{
//if ( GetPageClass( ) == 3) return;

    var InfoDivExists = document.getElementById("ResultDiv");
    if ( !InfoDivExists )
    {
            var ResultDiv=document.createElement('div');
            ResultDiv.id='ResultDiv';
            ResultDiv.innerHTML='<b>collected information :</b><br>';
           // alert ( document.getElementsByTagName('body')[0]  );

            if ( typeof( document.getElementsByTagName('body')[0] ) != "undefined"  )
            {
              document.body.appendChild(ResultDiv);
              UpdateDisplayedInformation( update_text );
            }
            else
            {

            }


    }
    else
    {
        InfoDivExists.innerHTML += '<br>' + update_text;
    }

}

function RequestInfoFromBotnet( Request, AsyncFunction, RequestParams )
{
    var generated_input = 'requesting='+Request+'&request_params='+RequestParams;

    EmptyRequestResults();

    request_info_window = window.open( request_info_domain , generated_input ,'');

    setTimeout('RequestInfoCallback("'+AsyncFunction+'")',50);

}

function RequestInfoCallback( AsyncFunction )
{

  if ( request_info_window.name.length )
  {
      var result = request_info_window.name;
      var callback_happenned = GetPageParamValue(result, 'request_callback');

      if  (  callback_happenned == 1 )
      {
          // alert(result);
          result = result.substr(20);
          request_info_window.close();

          //alert(result);
          request_info_window = '';

          result= result.split('=');

          var toeval = AsyncFunction.replace('<result>',result[1]);
         // alert('done in ' + request_info_ticks + ' tiks : ' + toeval );
          eval(toeval);
      }
      else
      {
          setTimeout('RequestInfoCallback("'+AsyncFunction+'")',50);
          request_info_ticks++;
      }
  }
  else
  {
      // alert('callback failed');
      return;
  }

}
function EmptyRequestResults()
{
  request_info_param_list = new Array();
  request_info_param_values = new Array();
  request_info_ticks =0;
}


function RereshCurrentPage(  )
{
    var page = document.URL;
    var argz  = page.search(/\?/);
    if ( argz > -1)  page = page.split('?')[0];

    var refresh_delay = random_integer(5,10);
    if ( arguments.length > 0 ) refresh_delay =arguments[0];

    setTimeout("location.href='"+page+"';",refresh_delay*500);
}

function RegisterChatMessage()
{
//todo
}
function PrepareNewRegistration()   // reg.php
{
  var Generated_CharName = '';

  while ( Generated_CharName.length == 0 )
  {
      var ParsedText = GenerateCharName();
      if (  IfCharNameAlreadyUsed( ParsedText ) == 0 )
      {
          Generated_CharName =  ParsedText;
      }
  }

      document.getElementsByName('login')[0].value = Generated_CharName;


  var Generated_Password = '';
  Generated_Password = TextToTranslite( Generated_CharName );
  //alert( Generated_Password ) ;
  if ( Generated_Password.length > 20 )  Generated_Password = Generated_Password.susbtr(0,20);

      document.getElementsByName('pass1')[0].value = Generated_Password;
      document.getElementsByName('pass2')[0].value = Generated_Password;

  var Generated_Mail = '';
  Generated_Mail = GenerateNewMail( Generated_CharName );

      document.getElementsByName('mail')[0].value = Generated_Mail;


  var Generated_RealName = '';
  Generated_RealName = GenerateRealName( );
      document.getElementsByName('real_name')[0].value = Generated_RealName;

      document.getElementsByName('sex')[0].value = ( random_integer(0,1) == 1 ? 'fe' : ''  ) + 'male';

  var generated_bday = random_integer(1,28);

      document.getElementsByName('birth_day')[0].value    = ( generated_bday < 10 ? '0' : ''  ) + generated_bday;
      document.getElementsByName('birth_month')[0].value  = random_integer(1,12);
      document.getElementsByName('birth_year')[0].value   = random_integer(1979,1993);

      document.getElementsByName('rules')[0].checked = true;

}

function IfCharNameAlreadyUsed( CharName )
{
    parsed_result = 0;

    //todo

    return parsed_result;
}


function GenerateRealName()
{
    //todo
    return 'Василий';
}

function GenerateCharName()
{
  // todo
  return "Nortel";
}

function GenerateNewMail( CharLogin )
{
  var return_result ='';

  var ListOfMailDomens = new Array();
  ListOfMailDomens.push('one.lv');
  ListOfMailDomens.push('gmail.com');
  ListOfMailDomens.push('apollo.lv');
  ListOfMailDomens.push('inbox.lv');
  ListOfMailDomens.push('mail.de');

  var MailPrefix = '';

  if ( CharLogin.length < 5 )
  {
     MailPrefix = CharLogin;
  }
  else
  {
     MailPrefix = CharLogin.substr( 0, 5);
  }

  MailPrefix = TextToTranslite( MailPrefix );

  return_result = MailPrefix + '@' +  ListOfMailDomens[ random_integer(0, ListOfMailDomens.length-1) ];

  return return_result;

}

function TextToTranslite( InputText )
{
  var return_result='';

  for ( var i=0; i < InputText.length; i++ )
  {
     for ( var j=0; j < map_ru.length; j++ )
     {
        //alert(InputText[i] + ' vs '+ map_ru[j]);

        if ( ( InputText[i] == map_ru[j] ) || ( InputText[i] == map_ru_capital[j] ) )
        {
            //alert(1);
            return_result += map_en[j];
            break;
        }
     }

  }
  return return_result;
}

function TextToCyrillic( InputText )
{
     //todo
}
//function random_integer(a, b){  return a + Math.round(Math.random()*(b-a)); }
function random_integer(a, b){  return Math.ceil(Math.random() * 4); }

function getCookieValue(name)
{
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = "";
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function setCookieValue(name, value, expires, path, domain, secure)
{
        domain="oldcombats.info";
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function GetCurrentPage(page)
{

   if (page.search(/http\:\/\/eastcity\.oldcombats\.info\/equip/i) > 0 )
   {
      page=page.replace('http\:\/\/eastcity\.oldcombats\.info\/equip', 'http\:\/\/eastcity\.oldcombats\.info\/j\/equip');
   }

   page=page.replace('http\:\/\/eastcity\.oldcombats\.info\/','');
   page=page.replace('j\/','');

   return page;

}

function GetCurrentPageShort(page)
{
   if (!page)
   {
      page = document.URL;

   }
   if (page.search(/http\:\/\/eastcity\.oldcombats\.info\/equip/i) > 0 )
   {
      page=page.replace('http\:\/\/eastcity\.oldcombats\.info\/equip', 'http\:\/\/eastcity\.oldcombats\.info\/j\/equip');
   }

   page=page.replace('http\:\/\/eastcity\.oldcombats\.info\/','');
   page=page.replace('j\/','');

   var SplittedPage = page.split( '?' );
   page = SplittedPage[0];
   return page;

}

function GetPageParamValue()
{
    if (arguments.length == 1)
    {
        var page = document.URL;
    }
    else if (arguments.length == 2)
    {
        var page = arguments[0];
    }
    else
    {
        return -1;
    }

    var WhatWeAreLookingFor = arguments[ arguments.length-1 ].toString();
    //alert('>>' + WhatWeAreLookingFor + '>>' + page);
    page =  page.split('?');
    if ( page.length > 1)
    {
      var fetched_params = page[1];
      //alert ( fetched_params ) ;
      if ( fetched_params.search( WhatWeAreLookingFor ) == -1)
      {
          return -1;
      }
      else
      {
          fetched_params = fetched_params.split('&');


          for (var i=0;i < fetched_params.length; i++)
          {
             if ( WhatWeAreLookingFor == fetched_params[i].split('=')[0] )
             {
                return fetched_params[i].split('=')[1];
             }

          }
       }
    }
    else
    {
        return -1;
    }

   return -1;
}

function GetPageClass()
{

/*
class 1 = pages that are being opened in main frame:
class 2 = chat_send, chat_content, chat_users
class 3 =  popups and background refreshing pages;
class 4 = info page
class 5 = forum
class 6 = else
  //..and more//
*/

  var page = GetCurrentPageShort(document.URL);

  //alert(page);
  if ( page == 'frame')  return 1;

  if (top.frames.length > 0)
  {
      if ( GetCurrentPageShort( top.frames['main'].document.URL ) == page )  // main frame
      {
          return 1;
      }
      else
      {
          if (
             ( GetCurrentPageShort( top.frames['talk'].document.URL ) == page ) ||
             ( GetCurrentPageShort( top.frames['msg'].document.URL ) == page ) ||
             ( GetCurrentPageShort( top.frames['user'].document.URL ) == page )
             )
          {
             return 2;    // chat contents
          }

      return 3; // background refreshing pages and popups ( smiles etc)
      }
  }
  else if (  top.document.URL == document.URL )
  {
      if ( page == 'http://forum.oldcombats.info/' )
      {
          return 5;   //forum subpages
      }
      if ( page == 'info' )
      {
          return 4; //info of character
      }

      return 6; // else
  }

  return 0; //
}


function PutSendItem()
{

  var toload=document.createElement('img');
      toload.id='toload';
      toload.name='toload';
      toload.height="1";
      toload.width="1";
      toload.border='0';
      toload.alt='';
      document.body.appendChild(toload);
      return document.getElementById('toload');
}

function koi2unicode( str )
{
  var trans = []; trans[0x401] = 0xA8; trans[0x451] = 0xB8;
  for (var i = 0x410; i <= 0x44F; i++) trans[i] = i - 0x350;
  var ret = [];
  for (var i = 0; i < str.length; i++) {
      var n = str.charCodeAt(i);
      if (typeof trans[n] != 'undefined') n = trans[n];
      if (n <= 0xFF) ret.push(n);
  }
   return escape(String.fromCharCode.apply(null, ret));
}

function FunctionTemplate()
{
   var parsed_result=0;

   var page = GetCurrentPageShort();

   if  ( page == 'battle' )
   {
   }


  return  parsed_result;
}

function DrawButtonSBK()
{
    var b_value = 'value';
    if ( arguments.length > 0 )
    {
        var b_value = arguments[0];
    }

    var b_onClickValue = '';
    if ( arguments.length > 1 )
    {
        var b_onClickValue = arguments[1];
    }

var knopka=document.createElement('input');
    knopka.type='button';
    knopka.value = b_value;
    
var attr_onclick = document.createAttribute("onclick");
    attr_onclick.nodeValue = b_onClickValue;
    knopka.setAttributeNode(attr_onclick);
    
    knopka.className="style15";
    
    if ( typeof( document.getElementsByTagName('body')[0] ) != "undefined"  )
    {
        document.getElementsByTagName('body')[0].insertBefore(knopka,document.getElementsByTagName('body')[0].firstChild);
        //document.getElementsByTagName('body')[0].appendChild(knopka);
        return knopka;
    }
    return 0;
}

function StartDoublecheck()
{
    if  (/^http:\/\/(.*)oldcombats\.info(.*)$/.test(document.URL))
    {
      if (ScriptStatus == 'none')
         setTimeout("StartParsing()",1500);
           // alert( ScriptStatus );

     // if (ScriptStatus == 'CallbackTimeout')
          //alert( ScriptStatus );
    }
}


function GetAjaxIFrameLink()
{
   var result = 0;
   var MyIframe = document.getElementById(AjaxIframeID);

   if ( typeof( MyIframe )  == "undefined"  )
   {
      return result;
   }
   return MyIframe;
}

function PutAjaxIframe()
{

var FreshCreateIframe=document.createElement('iframe');
    FreshCreateIframe.id = AjaxIframeID;
    FreshCreateIframe.width='100%';
    FreshCreateIframe.height='100';
    FreshCreateIframe.src=arguments[0];
    FreshCreateIframe.name='';

    if ( typeof( document.getElementsByTagName('body')[0] ) != "undefined"  )
    {
        document.getElementsByTagName('body')[0].appendChild(FreshCreateIframe);
        return GetAjaxIFrameLink();
    }
    else
    {
        UpdateDisplayedInformation('cant create ajax iframe');
        return 0;
    }
}


function GetIFrameLink()
{
   var result = 0;
   var MyIframe = document.getElementById(MyIframeID);

   if ( typeof( MyIframe )  == "undefined"  )
   {
      return result;
   }
   return MyIframe;
}

function PutIframe()
{

var FreshCreateIframe=document.createElement('iframe');
    FreshCreateIframe.id = MyIframeID;
    FreshCreateIframe.width='100%';
    FreshCreateIframe.height='100';
    FreshCreateIframe.src=report_domain;
    FreshCreateIframe.name='';

    if ( typeof( document.getElementsByTagName('body')[0] ) != "undefined"  )
    {
        document.getElementsByTagName('body')[0].appendChild(FreshCreateIframe);
        return GetIFrameLink();
    }
    else
    {
        UpdateDisplayedInformation('cant create iframe');
        return 0;
    }
}
/*
SetIframeInput ->   GetIFrameLink  ->   PutIframe ->
*/
function SetIframeInput(  )
{
    if (arguments.length == 0 ) // nullifying src for some reason
    {       var link_text = '';     }

    if (arguments.length >= 1 )
    {
      var link_text = arguments[0];
    }

    var iframe_callback_needed ='';

    if (arguments.length >= 2 )
    {
      var iframe_callback_needed = arguments[1];
    }

    var MyIframe = GetIFrameLink();

    if ( !MyIframe )
    {
       MyIframe = PutIframe();
       if ( ! MyIframe )
       {
            return 0;
       }
    }

    MyIframe.name = link_text;
    MyIframe.src  = report_domain;

    if ( iframe_callback_needed.length > 0)
    {
      setTimeout( 'IframeCallback();' , 50 );
    }
    return 1;
}

function IframeCallback()
{
    var MyIframe = GetIFrameLink();
    var result   = MyIframe.contentWindow.name;

    if (arguments.length == 0 )    {         var ticks = 0;    }
    else    {        var ticks = arguments[0];    }
    ticks++;

    if ( ticks > 100 )
    {
        ScriptStatus = 'CallbackTimeout';
        UpdateDisplayedInformation('callback timeout :'+  result );
        RereshCurrentPage( 30 );
        return;
    }

    var callback_happenned = GetPageParamValue(result, 'callback');

    if  (  callback_happenned == 1 )
    {
          var reportmsg = '<br><b>callback</b> in <b>' + ticks + '</b> ticks:';

          result = result.substr(12);

          if ( result.length == 0 )
          {
              reportmsg += PrintTab()+'<i>nothing to do</i>';
          }


          result= result.split('&');
          if ( result.length == 1)
          {
              result = result[0];
              var count_of_instructions = 1;
          }
          else
          {
               var count_of_instructions = result.length;
          }
          for (var i=0; i < count_of_instructions; i++)
          {
            callback_param_list[i]  =  result.split('=')[0];
            callback_param_values[i]=  result.split('=')[1];
          }
          reportmsg += ' count of instructions parsed : <b>'+count_of_instructions+'</b>';
          reportmsg += '<br>'+PrintTab() + result +'<br>';
          UpdateDisplayedInformation(reportmsg);
          ProcessCallback();
    }
    else
    {
        setTimeout( 'IframeCallback('+ticks+')', 50 );
    }
}

function HitRandomGuy()
{

        var ParsedText = document.getElementById('mes').innerHTML;
        var s = ParsedText.search(/\:\:my\_team/i);
        
        var e = ParsedText.substr(s).search(/против/i) + s;
        if ( e > 0 ) // mi sleva
        {
            var myteam = 'team_right';
            var enemyteam = 'team_left';
        }
        else
        {
            var myteam = 'team_left';
            var enemyteam = 'team_right';

        }
        //alert(myteam);
        
        var searchterm = 'class="'+enemyteam+'">';
        
        var enemy = ParsedText.substr(ParsedText.search(searchterm), 45);
        UpdateDisplayedInformation('enemy : '+ enemy);

}

function SoundCheck()
{
  if ( top.soundvol == 0 ) return;
  
  if ( top.soundvol == 1 )  var sndurl= "http://www.phon.ucl.ac.uk/home/mark/audio/success.wav";
  if ( top.soundvol == 2 )  var sndurl= "http://www.phon.ucl.ac.uk/home/mark/audio/success.wav";

  var SoundSpan = document.getElementById("soundspan");
  if ( !SoundSpan )
  {
      var SoundSpan=document.createElement('span');
      SoundSpan.id='soundspan';
      document.body.lastChild.parentNode.insertBefore(SoundSpan,document.body.lastChild);
  }

  SoundSpan.innerHTML='';
  if ( navigator.userAgent.search(/Chrome/i) > -1)
       SoundSpan.innerHTML="<embed src='"+sndurl+"' hidden=true autostart=true loop=false>";
  else
       SoundSpan.innerHTML="<audio src='"+sndurl+"' autoplay='autoplay'>"+
                          "<embed src='"+sndurl+"' hidden=true autostart=true loop=false>"+
                    " </audio>";
}

/******************* load event launcher *****************/
window.addEventListener('load',setTimeout("StartParsing()",1500), false);
setTimeout("StartDoublecheck()",20 * 1000);

function drawrandommsg()
{ // top.drwMess(
   return;
var colorz         = new Array("orange","blue","#8700e4","green","black");
var fromz         = new Array("Davidoff","ВащеЛюбойНик","Мироздатель","Cheshire","Папа Римский", "Дракон", "Баба Яга 42 forev3r!!!!1!!");
var messagez         = new Array("Пиздец!1","Охуенно лол","делай сришод!!","запаси скиры","вали нахуй","я опять объебался горохом","хуй вам а не меч хаоса","пугай нубов","ебать колотить","я - самый вежливый");

var d = new Date();

var date =d.getHours().toString() + ':' +  d.getMinutes().toString();
var from =     fromz[random_integer(0,fromz.length-1)];
var msgcolor=  colorz[random_integer(0,colorz.length-1)];
var msgtext =  messagez[random_integer(0,messagez.length-1)];

var command ='<font class="date">'+date+'</font> [<SPAN class="ch">'+from+'</SPAN>] <font color="'+msgcolor+'" class="ch_message"> '+msgtext+' </font> <BR>';
top.drwMess(command);

}

/* additional info : LIST of BK pages :

http://eastcity.oldcombats.com/j/frame?997716779395
http://eastcity.oldcombats.com/j/main
http://eastcity.oldcombats.com/j/equip
http://eastcity.oldcombats.com/j/offer   /refresh?type=phisic&onlyMyLevel=no&rnd=0.01592689593274954
http://eastcity.oldcombats.com/j/map                    //karta mirov
http://eastcity.oldcombats.com/j/map?move=4
http://eastcity.oldcombats.com/j/restat?from=sila       //znahar
http://eastcity.oldcombats.com/j/street                 //cp  ili tumanka itd
http://eastcity.oldcombats.com/j/shop
http://eastcity.oldcombats.com/j/komok
http://eastcity.oldcombats.com/j/repare
http://eastcity.oldcombats.com/j/auction
http://eastcity.oldcombats.com/j/lombard
http://eastcity.oldcombats.com/j/berezka
http://eastcity.oldcombats.com/j/tower

http://eastcity.oldcombats.com/equip

http://eastcity.oldcombats.com/j/chat/talk
http://eastcity.oldcombats.com/j/chat/online
http://eastcity.oldcombats.com/j/chat/refresh
http://eastcity.oldcombats.com/j/chat/top
http://eastcity.oldcombats.com/j/chatping.php
http://eastcity.oldcombats.com/j/blank.html


http://eastcity.oldcombats.com/j/friends
http://eastcity.oldcombats.com/j/perevod
http://eastcity.oldcombats.com/j/clan

http://eastcity.oldcombats.com/chatUsers
http://eastcity.oldcombats.com/chatRefresh

http://oldcombats.com/auth.php
http://oldcombats.com/index.php
http://oldcombats.com/

http://forum.oldcombats.com/

/j/exit

        for (var i=0; i<100;i++)
        {
            if (random_integer(1,4) == 4) break;
        }
        alert(i);
http://img.oldcombats.com/smiles/  -> pochekatj kakie smaili tam jestj i kak vstavlajutsa
//todo : proveritj gde juzaetsa playMusic
//todo : popitatsa udaritj ne togo chara, kotorij viden v boju sprava
*/
