var cbrowser=new Object;
cbrowser.agt=navigator.userAgent.toLowerCase();
cbrowser.is_ie=((cbrowser.agt.indexOf("msie")!=-1)&&(cbrowser.agt.indexOf("opera")==-1));
cbrowser.is_opera=(cbrowser.agt.indexOf("opera")!=-1);
cbrowser.is_mac=(cbrowser.agt.indexOf("mac")!=-1);
cbrowser.is_mac_ie=(cbrowser.is_ie&&cbrowser.is_mac);
cbrowser.is_win_ie=(cbrowser.is_ie&&!cbrowser.is_mac);
cbrowser.is_gecko=(navigator.product=="Gecko");

function showIt(m,show){
  if (show) {
      document.getElementById(m).style.display='block';
  } else
      document.getElementById(m).style.display='none';
}

var amActive=null;
var mnOver=false;
function showMenu(a,m,d){
	if (a!=amActive) p9.hidePopup();
	amActive=a;
	document.getElementById(m).innerHTML=document.getElementById(d).innerHTML;
	p9.showPopup(a);
}
function hideMenu(a) {
	setTimeout(function() {
		if (!mnOver&&a==amActive) {
			p9.hidePopup();
			amActive=null;
		}
    }, 1500);
}
function flipMenu(a,m,d){
	p9.hidePopup();
	if (a!=amActive) {
		amActive=a;
		//alert(a);
		document.getElementById(m).innerHTML=document.getElementById(d).innerHTML;
		p9.showPopup(a);
	} else {
		amActive=null;
	}
}
function overMenu(md) {
	mnOver=true;
}
function outMenu(md) {
	mnOver=false;
	setTimeout(function() {
		if (amActive==null) {
			p9.hidePopup();
		}
    }, 1500);
}
function trimText(i) {
	var a=i.replace(/^\s+/,'');
	return a.replace(/\s+$/,'');
}
function popupWinOpen(a,url,nam,wid,hei) {
  var popup_w = false;
  popup_w = window.open(url,nam,'width='+wid+',height='+hei+',scrollbars=no,resizable=yes');
  if (popup_w) popup_w.focus();
  else {
    var pf = document.getElementById(pwframe);
    if (pf.src!=url) pf.src = url;
    pw.offsetY = -40;
    pw.offsetX = -1*(wid+10);
    pw.width = wid;
    pw.height = hei+20;
    pw.showPopup(a);
  }
  return false;
}
function changeIMG(imgID,imgSRC){
  var img = document.getElementById(imgID);
  if (img==null) img = document.getElementByName(imgID);
  var dt = new Date();
  var suff = dt.getTime();
  var regImage = new Image(44,18);
  regImage.src = imgSRC+'?'+suff;
  if (img) img.src = regImage.src;
  //else alert(showProperties(img,imgID));
}
// Подсчет символов в поле textarea
function textarea_count(textarea,vid,maxvalue){
        var tdata=textarea.value;
        var cnt=tdata.length;
        var o=document.getElementById(vid);
        if (o.value) o.value=maxvalue-cnt; else o.innerHTML=maxvalue-cnt;
        if (cnt>maxvalue) {
           o.style.color='#F58A11';
           //textarea.value=revtext;
           textarea.value=tdata.substr(0,maxvalue);
        } else {
           o.style.color='#102085';
           revtext=tdata;
        }
}
function showProperties(obj,objName){
  var result = "The properties for the '" + objName + "' object:" + "\n";
  for (var i in obj) {result += i + " = " + obj[i] + "\n";}
  return result;
}
function selRubr(val){
  if (typeof(arr_rubr)=='undefined') return false;
  document.getElementById('div_sel_pod').innerHTML=arr_rubr[val];
}
function submitenter(myfield,e,ss){
  var keycode='';
  var val=myfield.value;
  if (window.event) keycode=window.event.keyCode;
  else if (e) keycode=e.which;
  else return true;
  if (keycode==13) {
    if (val==''||val.length<3||val==ss) return false;
    myfield.form.submit();
    return false;
  }
  else return true;
}
function submitIt(myform){
  myform.submit();
  return true;
}
function checkIt(val) {
  var ok=false;
  if (val.length<2) return ok;
  var regexp = new RegExp("([0-9a-z]|_|-|\\.)+","i");
  var nval=val.replace(regexp,"");
  if (nval=="") ok=true;
  return ok;
}
function checkSelForm(frm){
  var the_frm=frm;
  if (the_frm.sel_city.value=='0'&&the_frm.sel_rubr.value=='0'&&the_frm.sel_pod.value=='0') {
      alert('Выберите из списка город, раздел!');
      return false;
  } else if (the_frm.sel_rubr.value!='0') {
      return true;
  }
}
function checkVote(the_form,els){
  var elts=(typeof(document.forms[the_form].elements[els])!='undefined')?document.forms[the_form].elements[els]:new Array();
  var elts_cnt=(typeof(elts.length)!='undefined')?elts.length:0;
  if (elts_cnt) {
      for (var i=0; i<elts_cnt; i++) {
          if (elts[i].checked) return true;
      }
  } else if (elts.value&&elts.checked) return true;
  return false;
}
function regMatch(val,reg) {
    var ok=false;
    var regexp = new RegExp("("+reg+")+","i");
    var nval=val.replace(regexp,"");
    if (nval!=val) ok=true;
    return ok;
}

function showCats(i,n,p) {
          var a='cata'+n+'_'+i;
          var d='catd'+n+'_'+i;
          if (p>0) {
              document.getElementById('rubr_result1').innerHTML=document.getElementById(d).innerHTML;
              p2.showPopup(a);
          } else {
              document.getElementById('rubr_result').innerHTML=document.getElementById(d).innerHTML;
              p1.showPopup(a);
          }
          return false;
}

function showRate(i,n,p) {
          var a='rats'+n+'_'+i;
          var d='ratd'+i;
          if (p>0) {
              document.getElementById('rate_result1').innerHTML=document.getElementById(d).innerHTML;
              p4.showPopup(a);
          } else {
              document.getElementById('rate_result').innerHTML=document.getElementById(d).innerHTML;
              p3.showPopup(a);
          }
          return false;
}

function showMess(i,a,p,c) {
          //var a='maila'+n+'_'+i;
          //alert(a);
          mess_uid=i;
          var mlfrm=document.getElementById('mail_form').innerHTML;
          var regexp = new RegExp('<div class=(")*findmess(")*(.)+?</div><br>','i');
          if (c==1)
  		  	mlfrm=mlfrm.replace(regexp,"");
  		  else
          	mlfrm=document.getElementById('mail_form').innerHTML.replace("uid=0","uid="+mess_uid);
          if (p>0) {
              mess_res='mail_result1';
              document.getElementById('mail_result1').innerHTML=mlfrm;
              p6.showPopup(a);
          } else {
              mess_res='mail_result';
              document.getElementById('mail_result').innerHTML=mlfrm.replace("ok.gif","ok_bg.gif");
              p5.showPopup(a);
          }
          return false;
}

function showSubs(i,n,p,t,s) {
          var a='subsa'+n+'_'+i;
          var rdiv='';
          if (p>0) {
              rdiv='subs_result1';
          } else {
              rdiv='subs_result';
          }
          if (rdiv!='') {
          	  document.getElementById(rdiv).innerHTML='';
          	  if (s=='%tru%') var ss=1; else var ss=0;
          	  makeSubs(user_url,user_id,i,n,t,ss,rdiv,p,a);
          }
          return false;
}

function checkSubs(i,n,s,t,p,a) {
    var sp='subssp'+n+'_'+i;
    if (subs_done) {
        if (p>0) {
              	p8.showPopup(a);
        } else {
              	p7.showPopup(a);
        }
    	if (s) {
              		document.getElementById(sp).innerHTML=document.getElementById(sp).innerHTML.replace("ico_subs_"+t+".gif","ico_unsubs_"+t+".gif");
              		document.getElementById(sp).innerHTML=document.getElementById(sp).innerHTML.replace("%tru%","%fals%");
              		document.getElementById(sp).innerHTML=document.getElementById(sp).innerHTML.replace("Получать","Не получать");
        } else {
              		document.getElementById(sp).innerHTML=document.getElementById(sp).innerHTML.replace("ico_unsubs_"+t+".gif","ico_subs_"+t+".gif");
              		document.getElementById(sp).innerHTML=document.getElementById(sp).innerHTML.replace("%fals%","%tru%");
              		document.getElementById(sp).innerHTML=document.getElementById(sp).innerHTML.replace("Не получать","Получать");
        }
    }
}

function sendMess(murl,frm,rdiv) {
    var the_frm=frm;
    if (typeof(script_method)=='undefined') script_method=null;
    //alert(showProperties(the_frm,the_frm.name));
    var mtext=(typeof(the_frm.text)!='undefined')?the_frm.text.value:'';
    var mname=(typeof(the_frm.name)!='undefined')?the_frm.name.value:'';
    var memail=(typeof(the_frm.email)!='undefined')?the_frm.email.value:'';
    if (mtext=='') return false;
    if (mname=='') return false;
    if (typeof(mess_uid)!='undefined') the_frm.uid.value=mess_uid;    
    //document.getElementById(rdiv).innerHTML=document.getElementById('loading').innerHTML;        
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              var res=''+(req.responseJS.result||'');
              if (res!='') {
                 document.getElementById(rdiv).innerHTML=res;
              }
              return false;
           }           
        } 
        //alert(req.readyState+': '+req.responseJS)       
    } 
    //return false;      
    req.caching=false;
    req.open('POST',murl,true);
    req.send({'form':the_frm}); // ,'mode':'subsys' ,'uid':mess_uid
    return false;
}

function makeSubs(uurl,uid,nid,ind,ntype,nsubs,rdiv,np,na) {
    if (nid=='') return false;
    if (ntype=='') return false;
    var d=false;
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              var res=''+(req.responseJS.result||'');
              if (res!='') {
                 document.getElementById(rdiv).innerHTML=res;
              }
              var rd=''+(req.responseJS.done||'');
              if (rd=='1') subs_done=true;
              if (subs_done) checkSubs(nid,ind,nsubs,ntype,np,na);
              return false;
           }
        }        
    }
    req.caching=false;
    req.open('GET',uurl,true);
    req.send({'t':ntype,'i':nid,'u':uid,'s':nsubs,'mode':'subsys'});
    return false;
}

function getComments(comurl,i,r,cdiv,rurl,c,u,cid,clid) {
    if (i==''||!i) return false;
    if (r==''||!r) return false;
    var cdhtml=document.getElementById(cdiv).innerHTML;
    var ldhtml=document.getElementById('loading').innerHTML;
    if (cdhtml=='') {
    	document.getElementById(cdiv).innerHTML=ldhtml;
    } else {
    	document.getElementById(cdiv).innerHTML=cdhtml+ldhtml;
    }
    document.getElementById(cdiv).style.display='block';
    //alert(comurl);
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              var res=''+(req.responseJS.result||'');
              if (res!='') {
                 document.getElementById(cdiv).innerHTML=res;
              }
              return false;
           }
        }
        //alert(req.readyState+'='+req.responseJS);
    }
    req.caching=true;
    req.open('GET',comurl,true);
    req.send({'i':i,'r':r,'c':c,'u':u,'cid':cid,'clid':clid,'cdiv':cdiv,'rurl':rurl,'mode':'subsys','what':'comments'});
    return false;
}

function getContext(curl,p,cdiv) {
    if (p==''||!p) return false;  
    //alert('getContext: '+curl+'='+p+'='+cdiv);  
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              var res=''+(req.responseJS.result||'');
              if (res!='') {
                 document.getElementById(cdiv).innerHTML=res;
                 document.getElementById(cdiv).style.display='block';
              }
              return false;
           }
        }
    }
    req.caching=true;
    req.open('GET',curl,true);
    req.send({'pos':p,'cdiv':cdiv,'mode':'subsys','what':'context'});
    return false;
}

function getClientInfo(curl,i,cdiv) {
    if (curl==''||i=='') return false;
    var old=document.getElementById(cdiv).innerHTML;
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              var res=''+(req.responseJS.result||'');
              if (res!='') {
                 document.getElementById(cdiv).innerHTML=old+''+res;
                 document.getElementById(cdiv).style.visibility='visible';
              }
              return false;
           }
        }
    }
    req.caching=true;
    req.open('GET',curl,true);
    req.send({'i':i,'cdiv':cdiv,'mode':'subsys','what':'client'});
    return false;
}


function savePage(url,id,form) {
    var the_frm=form;
    //if (html=='') return false;
    if (id=='') return false;
    if (typeof(script_method)=='undefined') script_method='POST';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              return false;
           }
        }
    }
    req.caching=false;
    req.open(script_method,url,true);
    req.send({'form':the_frm,'action':'save','pid':id,'mode':'subsys'}); // ,'page':html
    return false;
}

function getPage(url,id,d1,d2) {
    if (typeof(script_method)=='undefined') script_method='GET';
    if (!id) return false;
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState>0) {
           if (req.responseJS) {
              if (res!='') {
                 document.getElementById(d1).value=document.getElementById(d2).innerHTML=res;
              }
              return false;
           }
        }
    }
    req.caching=false;
    req.open(script_method,url,true);
    req.send({'action':'get','pid':id,'mode':'subsys'});
    return false;
}

function clearHTML(i){
	var D='';
	if (i!='') {
		D=i;
		// make one line
		D = D.replace(/\r\n/g, ' ').
			replace(/\n/g, ' ').
			replace(/\r/g, ' ').
			replace(/\&nbsp\;/g,' ');

		// keep tags, strip attributes
		D = D.replace(/ class=[^\s|>]*/gi,'').
			//replace(/<p [^>]*TEXT-ALIGN: justify[^>]*>/gi,'<p align="justify">').
			replace(/ style=\"[^>]*\"/gi,'').
			replace(/ align=[^\s|>]*/gi,'');

		//clean up tags
		D = D.replace(/<b [^>]*>/gi,'<b>').
			replace(/<i [^>]*>/gi,'<i>').
			replace(/<li [^>]*>/gi,'<li>').
			replace(/<ul [^>]*>/gi,'<ul>');

		// replace outdated tags
		D = D.replace(/<b>/gi,'<strong>').
			replace(/<\/b>/gi,'</strong>');

		// mozilla doesn't like <em> tags
		D = D.replace(/<em>/gi,'<i>').
			replace(/<\/em>/gi,'</i>');

		// kill unwanted tags
		D = D.replace(/<\?xml:[^>]*>/g, '').       // Word xml
			replace(/<\/?st1:[^>]*>/g,'').     // Word SmartTags
			replace(/<\/?[a-z]\:[^>]*>/g,'').  // All other funny Word non-HTML stuff
			replace(/<\/?font[^>]*>/gi,'').    // Disable if you want to keep font formatting
			replace(/<\/?span[^>]*>/gi,' ').
			replace(/<\/?div[^>]*>/gi,' ').
			replace(/<\/?pre[^>]*>/gi,' ').
			replace(/<\/?h[1-6][^>]*>/gi,' ');

		//remove empty tags
		//D = D.replace(/<strong><\/strong>/gi,'').
		//replace(/<i><\/i>/gi,'').
		//replace(/<P[^>]*><\/P>/gi,'');

		// nuke double tags
		oldlen = D.length + 1;
		while(oldlen > D.length) {
			oldlen = D.length;
			// join us now and free the tags, we'll be free hackers, we'll be free... ;-)
			D = D.replace(/<([a-z][a-z]*)> *<\/\1>/gi,' ').
				replace(/<([a-z][a-z]*)> *<([a-z][^>]*)> *<\/\1>/gi,'<$2>');
		}
		D = D.replace(/<([a-z][a-z]*)><\1>/gi,'<$1>').
			replace(/<\/([a-z][a-z]*)><\/\1>/gi,'<\/$1>');

		// nuke double spaces
		D = D.replace(/  */gi,' ');
	}
	return D;
}


function MM_preloadImages() { //v3.0
 var d=document;
 if (d.images) {
    if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
    for(i=0;i<a.length;i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i]; }
 }
}
