var userAgent	= navigator.userAgent.toLowerCase();

var is_ie	= ((navigator.appName.indexOf('Microsoft') > -1) || (navigator.appName.indexOf('MSIE') > -1)) && userAgent.indexOf('opera') < 0;


function selectLangSite()
{
	document.getElementById('selectLangSite').style.display = 'block';
	setTimeout("document.getElementById('selectLangSite').style.display = 'none'", 2000);
}

function selectLangQuery()
{
	document.getElementById('selectLangQuery').style.display = 'block';
	setTimeout("document.getElementById('selectLangQuery').style.display = 'none'", 2000);
}

function showTip(Id)
{
	var topDiv = 'topInformer_';
	var rateDiv = 'rateInformer_';
	document.getElementById(topDiv + Id).style.display = 'block';
	document.getElementById(rateDiv + Id).style.display = 'none';
}

function hideTip(Id)
{
	var topDiv = 'topInformer_';
	var rateDiv = 'rateInformer_';
	document.getElementById(topDiv + Id).style.display = 'none';
	document.getElementById(rateDiv + Id).style.display = 'block';
}




function cookie_create(name, value, days) {
  if (!days) days = 10000;
  var expires = '';
  var date = new Date();
  date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  if (days)      expires = '; expires=' + date.toGMTString();
  document.cookie = name + '=' + value + expires + '; path=/';
}

function cookie_read(name) {
  var nameEQ = name + '=';
  var ca = document.cookie.split (';');
  for (i in ca)
    {
      var c = ca[i];
      while (c.charAt (0) == ' ')
	c = c.substring (1, c.length);
      if (c.indexOf (nameEQ) == 0)
	return c.substring (nameEQ.length, c.length);
    }
  return null;
}

function my_getbyid(id) {
	var obj = null;
	if (document.getElementById)	{ obj = document.getElementById(id); }
	else if (document.all)		{ obj = document.all[id]; }
	else if (document.layers)	{ obj = document.layers[id]; }
	return obj;
}


function switchvisible(obj) {
  if (!obj || !obj.style) return;
  obj.style.display = obj.style.display == 'none' ? '' : 'none';
  return false;
}


function switchvisible_id(id) {
  switchvisible(my_getbyid(id));
  return false;
}

function switchvisible_name(name) {
  for_name(name, function(i){ switchvisible(i) })
  return false;
}


function for_name(name, func) {
  var names = document.getElementsByName(name);
  for(var i = 0; i < names.length; ++i) {  
    func(names[i]);
  }
  return false;
}

var over;
var oversave = {};

function atr_hi_over(name) {
 if (over)  atr_hi_out(name);
 for_name(name, function(i){oversave[i]=i.bgColor;   i.bgColor='#c2d699'});
 over = 1;
}
function atr_hi_out(name) {
 for_name(name, function(i){i.bgColor=oversave[i]});
 over = 0;
}

function url_param_modify (urls, params) {
  var url = urls.split('?');
  url[1] = url[1].replace(/&amp;/g, '&');

  var c = url[1].indexOf('"');
  if (c > 0) {url[2] = url[1].substring(c);
    url[1] = url[1].replace(url[2], '');
  }
  if (!url[2]) url[2] = '';
  var paramsa = url[1].split('&');
  var paramsn = '';
  for (pvn in paramsa) {
    var pv = paramsa[pvn].split('=');
    if (!pv[0] || params.hasOwnProperty(pv[0])) continue;
    paramsn += pv[0];
    if (pv[1] != undefined) paramsn += '=' + pv[1];
    paramsn += '&';
  }
  for (var name in params) {
    if (params[name] !== undefined) paramsn += name;
    if (params[name] != null) paramsn += '=' + params[name];
    paramsn += '&';
  }
  paramsn = paramsn.replace(/&+$/, '');
  return url[0] + '?' + paramsn+url[2];
}

function uni_parent(obj) {
  var ret = null;
  if (obj.parentElement)	{ ret = obj.parentElement; }
  else if (obj.parentNode)	{ ret = obj.parentNode; }
  return ret;
}

function child(obj) {
  var ret = null;
  if(!obj) return ret;
  if (obj.all)	{ ret = obj.all; }
  else if (obj.childNodes)	{ ret = obj.childNodes; }
  return ret;
}


function search_by_all(obj, name, value, first) {
  if (obj=='null') return null;
  var ret = [];
  for(var i in obj) {
    if ((obj[i] && obj[i][name] == value )|| i == value) {
     ret.push(obj[i]);
    if(first) return ret;

    } else     if (obj[i] && obj[i].attributes) 
    for(var ii in obj[i].attributes) {
      if (obj[i].attributes[ii] && obj[i].attributes[ii].name && obj[i].attributes[ii].name.toLowerCase() == name.toLowerCase() && obj[i].attributes[ii].value == value) {
        ret.push(obj[i]);
        if(first) return ret;
      }
    }
  }
  return ret;
}

function search_by(obj, name, value) {
  return search_by_all(obj, name, value, 1)[0];
}
 

function graph_change(obj, params) {
  var graph = search_by(child(search_by(child(uni_parent(uni_parent(obj))),'name', 'p_graph')),'name', 'graph') ;
  if (!graph) graph = search_by(child(search_by(child(uni_parent(uni_parent(uni_parent(obj)))),'name', 'p_graph')),'name', 'graph')
  if (!graph) return;
  graph.src = url_param_modify(graph.src, params);
}

function img_update_searcher(obj, searcher) {   //todo
  var params = new Object();
  params['show_'+searcher] = (obj.checked ? 'on' : 'off');
  cookie_create(uni_parent(uni_parent(uni_parent(obj))).id +'-'+ 'show-'+searcher, (obj.checked ? '1' : '0'));
  //printlog(graph.name, graph.id, uni_parent(uni_parent(uni_parent(obj))).id +'-'+ 'show-'+searcher, (obj.checked ? '1' : '0'));
  graph_change(obj, params);
  return false;
}

function img_update_interval(obj, interval, analyzer) {
  cookie_create(uni_parent(uni_parent(obj)).id +'-'+ 'interval', interval);
  //printlog(uni_parent(uni_parent(obj)).id +'_'+ 'interval', interval);
  if (analyzer && analyzer.length) {
    location.replace(url_param_modify(location.href, {'interval': interval}));
  }
  else graph_change(obj, {'interval': interval});
 return false;
}

function inf_update_searcher(obj, analyzer, p) { 
  var params ;
  if (typeof p == 'object') {
    params = p;
  } else  {
    params = {};
    params[p] = (obj.checked ? null : undefined);
  } 
  var change = my_getbyid('inf_'+analyzer);
  if (change) change.innerHTML = url_param_modify(change.innerHTML, params );
  change = my_getbyid('informer_'+analyzer);
  if (change) change.src = url_param_modify(change.src, params );

//    change = my_getbyid('inf_link_'+analyzer);  if (change) change.innerHTML = url_param_modify(change.innerHTML, params );
    change = my_getbyid('inf_link_'+analyzer);  if (change) change.href = url_param_modify(change.href, params );

  return false;
}

function dmp(obj, nul){   // DEV
 var r='obj=' + obj +"<br>\n";
 if (obj!='null') { 
  for(i in obj){
  if ((nul && obj[i] == 'null') || !nul )
   r+=i+" - "+obj[i]+"<br>\n"; 
  }
 }
 return r;
} 

function printlog(text) {
  if (window.console)  console.log(text);
  else if (window.opera) opera.postError(arguments.join(' ')); 
////  else window.alert(text); //if(!arguments.join)arguments.join=function(){....}
}
