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 win_resize(){
 if(document.layers){
	document.location.reload();
 }
}
window.onresize = win_resize;

function add2bookmark(url,title){
	if (window.sidebar) window.sidebar.addPanel(title,url,"");
	else if (window.opera && window.print){
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();
	}
	else if(document.all) window.external.AddFavorite(url,title);
	return false;
}

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;
}

// Подсчет символов в поле textarea
function textarea_count(textarea,vid,maxvalue){
        var tdata='';
        if (typeof(textarea)!='undefined'&&typeof(textarea.value)!='undefined') tdata=textarea.value;
        if (tdata=='') return false;
        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='#C61EC4';
           //textarea.value=revtext;
           textarea.value=tdata.substr(0,maxvalue);
        } else {
           o.style.color='#000000';
           revtext=tdata;
        }
}

function is_object( mixed_var ){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Legaev Andrey
    // +   improved by: Michael White (http://getsprink.com)
    // *     example 1: is_object('23');
    // *     returns 1: false
    // *     example 2: is_object({foo: 'bar'});
    // *     returns 2: true
    // *     example 3: is_object(null);
    // *     returns 3: false 
    if(mixed_var instanceof Array) {
        return false;
    } else {
        return (mixed_var !== null) && (typeof( mixed_var ) == 'object');
    }
}

function showProperties(obj,objName){
  if (is_object(obj))
  var result = "The properties for the '" + objName + "' object:" + "\n";
  else
  var result = obj;
  for (var i in obj) {result += i + " = " + showProperties(obj[i],i) + "\n";}
  return result;
}

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 trimText(i) {
	var a=i.replace(/^\s+/,'');
	return a.replace(/\s+$/,'');
}

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 regMatch(val,reg) {
    var ok=false;
    var regexp = new RegExp("("+reg+")+","i");
    var nval=val.replace(regexp,"");
    if (nval=="") ok=true;
    return ok;
}

function checkChecked(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 roundIt(number,x) {
	number=parseFloat(number);
	x=parseInt(x);
	return Math.round(number*Math.pow(10,x))/Math.pow(10,x);
}

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]; }
 }
}

function getPageSize() {
			var xScroll, yScroll;
			if (window.innerHeight && window.scrollMaxY) {
				xScroll = window.innerWidth + window.scrollMaxX;
				yScroll = window.innerHeight + window.scrollMaxY;
			} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
				xScroll = document.body.scrollWidth;
				yScroll = document.body.scrollHeight;
			} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
				xScroll = document.body.offsetWidth;
				yScroll = document.body.offsetHeight;
			}
			var windowWidth, windowHeight;
			if (self.innerHeight) {	// all except Explorer
				if(document.documentElement.clientWidth){
					windowWidth = document.documentElement.clientWidth;
				} else {
					windowWidth = self.innerWidth;
				}
				windowHeight = self.innerHeight;
			} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
				windowWidth = document.documentElement.clientWidth;
				windowHeight = document.documentElement.clientHeight;
			} else if (document.body) { // other Explorers
				windowWidth = document.body.clientWidth;
				windowHeight = document.body.clientHeight;
			}
			// for small pages with total height less then height of the viewport
			if(yScroll < windowHeight){
				pageHeight = windowHeight;
			} else {
				pageHeight = yScroll;
			}
			// for small pages with total width less then width of the viewport
			if(xScroll < windowWidth){
				pageWidth = xScroll;
			} else {
				pageWidth = windowWidth;
			}
			arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
			return arrayPageSize;
}

function getPageScroll() {
			var xScroll, yScroll;
			if (self.pageYOffset) {
				yScroll = self.pageYOffset;
				xScroll = self.pageXOffset;
			} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
				yScroll = document.documentElement.scrollTop;
				xScroll = document.documentElement.scrollLeft;
			} else if (document.body) {// all other Explorers
				yScroll = document.body.scrollTop;
				xScroll = document.body.scrollLeft;
			}
			arrayPageScroll = new Array(xScroll,yScroll);
			return arrayPageScroll;
}


