var browser=navigator.userAgent;
var isOpera=(browser.toLowerCase().indexOf('opera')>=0)?true:false;

function appendClientData(data_str, parent_node, mode)
  {
  if (typeof parent_node == 'undefined') return;

    //вставляем получившийся текст с метками
    if(mode == 'rewrite')
    {
        document.getElementById(parent_node).innerHTML = data_str;
    }
  else if (mode == 'append')
    {
        document.getElementById(parent_node).innerHTML += data_str;
    }
  else if (mode == 'insert')
    {
        var old_text = document.getElementById(parent_node).innerHTML;
    document.getElementById(parent_node).innerHTML= data_str+old_text;
      }
  }


function evaluateJs(obj)
  {
  var scriptTags=document.getElementById(obj).getElementsByTagName('SCRIPT');
  var string='';
  var jsCode='';

  for(var no=0;no<scriptTags.length;no++)
    {
    if(scriptTags[no].src)
      {
      var scriptObj=document.createElement("script");

      scriptObj.setAttribute("type", "text/javascript");
      scriptObj.setAttribute("src", scriptTags[no].src);
      }
    else
      {
      if(isOpera)
        {
        jsCode=jsCode+scriptTags[no].text+'\n';
        }
      else
        jsCode=jsCode+scriptTags[no].innerHTML;
      }
    }

  if(jsCode) installScript(jsCode);
  }

function installScript( script )
  {
  try
    {
    if (!script) return;

    if (window.execScript)
      {
      window.execScript(script)
      }
    else if(window.jQuery&&jQuery.browser.safari)
      {
      window.setTimeout(script,0);
      }
    else
      {
      window.setTimeout( script, 0 );
      }
    }
  catch(e)
    {
    }
  }


/**
*	Запросы АЯКСА
*/
function doLoad(value,path,target,method,write_type,callback)
  {



  if (method == 'undefined') method=null;

  if (write_type == 'undefined' || !write_type || write_type=='') write_type='rewrite';

  var req = new JsHttpRequest();

  req.onreadystatechange = function()
    {
      if (req.readyState == 4 && target.length > 0)
      {
      if (callback && typeof callback!='undefined')
        {
        callback(req.responseJS);
        }

          if (target.indexOf(";") == -1)
            {
        try
          {
          appendClientData(req.responseJS.content,target,write_type);
          evaluateJs(target);
          }
        catch (e)
          {
          if (req.responseText)
            alert('ResponseText: ' + req.responseText);
          }
            }
          else
          {
        target = target.split(";");
              for (i in target)
                {
          try
            {
            appendClientData(req.responseJS.content[i],target[i],write_type);
            evaluateJs(target);
            }
          catch (e)
            {
            if (req.responseText)
              alert('ResponseText: ' + req.responseText);
            }
          }
        }
          }
      }

    req.open(method, path, true);
    req.send( { 'data': value } );
  }

function discardElement(element)
  {
    var garbageBin = document.getElementById('IELeakGarbageBin');
    if (!garbageBin)
    {
        garbageBin = document.createElement('DIV');
        garbageBin.id = 'IELeakGarbageBin';
        garbageBin.style.display = 'none';
        document.body.appendChild(garbageBin);
      }

    // move the element to the garbage bin
    garbageBin.appendChild(element);
    garbageBin.innerHTML = '';
  document.body.removeChild(garbageBin);
  }

/* ########################################## */

function loadCities(id)
  {
  doLoad('','/ajax/load_cities/',id, 'post', 'rewrite', function (name) {});
  }

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

function select_city(id)
  {
  var today = new Date();
  var expires = 180 * 1000 * 60 * 60 * 24;
  var expires_date = new Date( today.getTime() + (expires) );
  var a = expires_date.toGMTString();

  //alert(a);
  setCookie('selected_city_id',id,a,'/');
  //document.cookie = a;
  location.reload();
  }

/* ########################################## */

function addTskFav(tsk_id,pod,is_link,openeed_tsk)
{
  if (is_link == undefined)
    is_link = 0;
  
  changeFavBtn(tsk_id,openeed_tsk);

  doLoad('','/ajax/add_fav_tsk/'+tsk_id+'/'+pod+'/'+is_link+'/'+openeed_tsk+'/', 'tsk'+tsk_id+';fav_tsk', 'post', 'rewrite', function (name) {
  });
}

function changeFavBtn(tsk_id,openeed_tsk)
{
var this_fav = document.getElementById('this_fav');

  if (this_fav){
    if (this_fav.className=='fav'){
      this_fav.className = 'fav2';
      this_fav.innerHTML = '<a href="javascript:addTskFav('+tsk_id+', 0, 0,'+openeed_tsk+');">Удалить из избранного</a>';
    } else {
      this_fav.className = 'fav';
      this_fav.innerHTML = '<a href="javascript:addTskFav('+tsk_id+', 0, 0,'+openeed_tsk+');">Добавить в избранные</a>';
    }
  }

}

function delFavTsk(tsk_id, favlist)
  {

  sfavlist='';
  if (typeof favlist=='undefined')  favlist = 0;
  else if (favlist==1)
    {
    sfavlist = ';fav_ajax_write_events';
    }

  doLoad('','/ajax/del_fav_tsk/'+tsk_id+'/'+favlist+'/', 'fav_tsk'+sfavlist, 'post', 'rewrite', function (name) {window.location.reload();});

  }



/* ########################################## */

function setOrderTopTsk(name,limit, openeed_tsk)
  {
  var o = $('#order_asc').val();
  if (o == 'DESC') o='ASC'; else o='DESC';
  $('#order_asc').val(o);

  if (document.getElementById('header_tsk')){
    var aa = document.getElementById('header_tsk').getElementsByTagName('a');
    for (i = 0; i < aa.length; i++) {
      aa[i].className = '';
      if (aa[i]==document.getElementById(name))
        if (o == "DESC")
          aa[i].className = 'act_b';
        else if (o == "ASC")
          aa[i].className = 'act';
    }
  }

  if (typeof limit=='undefined') limit = 0;
  if (typeof openeed_tsk=='undefined') openeed_tsk = 1;


  doLoad('','/ajax/order_top_tsk/'+name+'/'+o+'/'+limit+'/'+openeed_tsk+'/','ajax_write_events', 'post', 'rewrite', function (name) {
    });
  }

function setOrderTsk(name, limit, company_id, cat_id, sel_page, openeed_tsk)
  {

  var o = $('#order_asc').val();
  if (o == 'DESC') o='ASC'; else o='DESC';
  $('#order_asc').val(o);

  if (document.getElementById('header_tsk')){
    var aa = document.getElementById('header_tsk').getElementsByTagName('a');
    for (i = 0; i < aa.length; i++) {
      aa[i].className = '';
      if (aa[i]==document.getElementById(name))
        if (o == "DESC")
          aa[i].className = 'act_b';
        else if (o == "ASC")
          aa[i].className = 'act';
    }
  }

  if (typeof company_id=='undefined') company_id = 0;
  if (typeof limit=='undefined') limit = 0;
  if (typeof sel_page=='undefined') sel_page = 0;
  if (typeof cat_id=='undefined') cat_id = 0;
  if (typeof openeed_tsk=='undefined') openeed_tsk = 1;

  doLoad('','/ajax/order_tsk_mainpage/'+name+'/'+o+'/'+limit+'/'+company_id+'/'+cat_id+'/'+sel_page+'/'+openeed_tsk+'/','ajax_write_events;top_tsk', 'post', 'rewrite', function (name) {
    });
  }

function setOrderTsk2(name, limit, company_id, cat_id, sel_page, openeed_tsk)
  {

  var o = $('#order_asc').val();
  if (o == 'DESC') o='ASC'; else o='DESC';
  $('#order_asc').val(o);

  if (document.getElementById('header_tsk')){
    var aa = document.getElementById('header_tsk').getElementsByTagName('a');
    for (i = 0; i < aa.length; i++) {
      aa[i].className = '';
      if (aa[i]==document.getElementById(name))
        if (o == "DESC")
          aa[i].className = 'act_b';
        else if (o == "ASC")
          aa[i].className = 'act';
    }
  }

  if (typeof company_id=='undefined') company_id = 0;
  if (typeof limit=='undefined') limit = 0;
  if (typeof sel_page=='undefined') sel_page = 0;
  if (typeof cat_id=='undefined') cat_id = 0;
  if (typeof openeed_tsk=='undefined') openeed_tsk = 1;

  doLoad('','/ajax/order_tsk_mainpage/'+name+'/'+o+'/'+limit+'/'+company_id+'/'+cat_id+'/'+sel_page+'/'+openeed_tsk+'/1/','ajax_write_events;top_tsk', 'post', 'rewrite', function (name) {
    });
  }

function setOrderTskTrener(name, openeed_tsk, s_tids)
{
  setOrderTskTrenerLimit(name, openeed_tsk, s_tids, '0');
}

function setOrderTskTrenerLimit(name, openeed_tsk, s_tids, limit)
  {
  var o = $('#order_asc').val();
  if (o == 'DESC') o='ASC'; else o='DESC';
  $('#order_asc').val(o);

  if (typeof openeed_tsk == 'undefined') openeed_tsk = 2;

  doLoad('','/ajax/order_tsk_trener/'+name+'/'+o+'/' + limit + '/'+s_tids+'/'+openeed_tsk+'/','ajax_write_events', 'post', 'rewrite', function (name) {
    });
  }

function setOrderFav(name, openeed_tsk, s_tids)
  {
  var o = $('#order_asc').val();
  if (o == 'DESC') o='ASC'; else o='DESC';
  $('#order_asc').val(o);

  if (document.getElementById('header_tsk')){
    var aa = document.getElementById('header_tsk').getElementsByTagName('a');
    for (i = 0; i < aa.length; i++) {
      aa[i].className = '';
      if (aa[i]==document.getElementById(name))
        if (o == "DESC")
          aa[i].className = 'act_b';
        else if (o == "ASC")
          aa[i].className = 'act';
    }
  }

//	if (typeof openeed_tsk == 'undefined') openeed_tsk = 2;

  doLoad('','/ajax/order_fav/'+name+'/'+o+'/0/','fav_ajax_write_events', 'post', 'rewrite', function (name) {
    });
  }


function setOrderTenders(name, cat_id, page, limit, path_id)
  {
  if (typeof path_id == 'undefined') path_id = 0;

  var o = $('#order_asc').val();
  if (o == 'DESC') o='ASC'; else o='DESC';
  $('#order_asc').val(o);

  var aa = document.getElementById('header_tsk').getElementsByTagName('a');
  for (i = 0; i < aa.length; i++) {
    aa[i].className = '';
    if (aa[i]==document.getElementById(name))
      if (o == "DESC")
        aa[i].className = 'act_b';
      else if (o == "ASC")
        aa[i].className = 'act';
  }

  doLoad('','/ajax/order_tenders/'+name+'/'+cat_id+'/'+page+'/'+limit+'/'+o+'/'+path_id+'/','ajax_write_events', 'post', 'rewrite', function (name) {
    });
  }

function showDialog()
{
var t = $('#forgot_text').val();
$('#forgot_info').html(t);
$('#login_info').text('');
$('#dialog1').show();
$('#email_login').val('');
$('#password_login').val('');
$('#email_forgot').val('');
}

function mainPageMenuColorize()
{
  $("table.menu_main td.top_menu_item").mouseover(
      function()
        {
        $("table.menu_main td.top_menu_item").removeClass('selected_menu');
        $(this).addClass('selected_menu');
        }
    ).mouseout(
      function()
        {
        $(this).removeClass('selected_menu');
        }
    );

}

// User block inits

$(document).ready(
    function ()
      {
      //
      var wbody = $(document.body).width();
      var wdialog = $("#dialog1").width();

      var x = (wbody/2) - (wdialog/2);

      $("#dialog1").css('left', x).css('top',268);
      $("#dialog1 .button").click(
        function()
          {
          $("#dialog1 .button").removeClass('sel');
          $(this).addClass('sel');

          var id = $(this).attr('id');

          $('#dialog1 .body .container').removeClass('sel').css('display','none');
          $('#'+id+'_cont').addClass('sel').css('display','block');
          }
        );
      $("#dialog1 #close").click(
        function()
          {
          $("#dialog1").hide();
          }
        );
      }
    );

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}


function winOpen(url, params)
{
  var winParams = params || {},
      height = winParams.height || getClientHeight() + 10,
      width = winParams.width || 826,
      left =  winParams.left || getClientWidth() - width;
  winOpenXY(url, width, height, left, 0);
}

function winOpenXY(url, width, height, left, top)
{
  window.open(url, '_blank', 'left=' + left + ',top=' + top + ',width=' + width +',height=' + height + ',status=yes,resizable=yes,scrollbars=yes');
}

function openInMain(url)
{
  if (null != window.opener)
  {
    window.opener.location = url;
    window.opener.focus();
  }
  else
  {
    window.location=url;
  }
}

function strpos( haystack, needle, offset )
{
  var i = haystack.indexOf( needle, offset );
  return i >= 0 ? i : false;
}

function htmlspecialchars_decode (string, quote_style)
{
  // Convert special HTML entities back to characters
  //
  // version: 1102.614
  // discuss at: http://phpjs.org/functions/htmlspecialchars_decode
  // +   original by: Mirek Slugen
  // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   bugfixed by: Mateusz "loonquawl" Zalega
  // +      input by: ReverseSyntax
  // +      input by: Slawomir Kaniecki
  // +      input by: Scott Cariss
  // +      input by: Francois
  // +   bugfixed by: Onno Marsman
  // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
  // +      input by: Ratheous
  // +      input by: Mailfaker (http://www.weedem.fr/)
  // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
  // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
  // *     example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
  // *     returns 1: '<p>this -> &quot;</p>'
  // *     example 2: htmlspecialchars_decode("&amp;quot;");
  // *     returns 2: '&quot;'
  var optTemp = 0,
      i = 0,
      noquotes = false;
  if (typeof quote_style === 'undefined') {
      quote_style = 2;
  }
  string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/g, '>');
  var OPTS = {
      'ENT_NOQUOTES': 0,
      'ENT_HTML_QUOTE_SINGLE': 1,
      'ENT_HTML_QUOTE_DOUBLE': 2,
      'ENT_COMPAT': 2,
      'ENT_QUOTES': 3,
      'ENT_IGNORE': 4
  };
  if (quote_style === 0) {
      noquotes = true;
  }
  if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
      quote_style = [].concat(quote_style);
      for (i = 0; i < quote_style.length; i++) {
          // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
          if (OPTS[quote_style[i]] === 0) {
              noquotes = true;
          } else if (OPTS[quote_style[i]]) {
              optTemp = optTemp | OPTS[quote_style[i]];
          }
      }
      quote_style = optTemp;
  }
  if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
      string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
      // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
  }
  if (!noquotes) {
      string = string.replace(/&quot;/g, '"');
  }
  // Put this in last place to avoid escape being double-decoded
  string = string.replace(/&amp;/g, '&');

  return string;
}

