
function fromClass(domObj, param) {
	var re = new RegExp(param+"([^\\s]+)"); 
	var match = domObj.className.match(re);
	if(match)
		return match[1];
	else
		return false;
}

function postObject(oFields, url, confirmText) {
	if(confirmText && !confirm(confirmText))
		return false;
	
	var form = document.createElement("form");
	form.method = "post";
	if(url)
		form.action = base_url+url;
	for(field in oFields) {
		var input = document.createElement("input");
		input.type = "hidden";
		input.name = field;
		input.value = oFields[field];
		form.appendChild(input);
	}
	document.body.appendChild(form);
	form.submit();
	return false;
}

function postAjax(url, data, callback, advData) {
	if(advData != null) {
		var t = data;
		data = {};
		$.extend(data, t);
		$.extend(data, advData);
	}
	$.post(base_url+"/ajax/"+url, data, callback, "json");
}

function printPage() {
	if (window.print) {
		setTimeout('window.print();',200);
	} else {
		alert("Нажмите Ctrl+P или выберите в меню Файл->Печать");
	}
	return false;
}

function getAbsPos(obj) {
	var width = obj.offsetWidth;
	var height = obj.offsetHeight;
	var ret = {
		left: obj.offsetLeft,
		top: obj.offsetTop
	};
	while(obj = obj.offsetParent) {
		ret.left += obj.offsetLeft;
		ret.top += obj.offsetTop;
	}
	ret.right = ret.left + width;
	ret.bottom = ret.top + height;
	return ret;
}

function inRect(e, rect) {
	return e.pageX >= rect.left && 
		e.pageX <= rect.right &&
		e.pageY >= rect.top &&
		e.pageY <= rect.bottom;
}

$(document).ready(function(){
	var jNext = $(".j_news_next");
	var jBack = $(".j_news_back");
	var content;
	
	//postAjax('text/rnd', {}, onLoadRnd);
	setTimeout(function(){postAjax('text/rnd', {}, onLoadRnd);}, 100);
	
	function onLoadRnd(data) {
		$("#rnd_text_block").replaceWith(data.content);
		//беспонтовый текст слева
		var h1 = document.getElementById("content_heither").offsetHeight-770;
		var h2 = $(".content-left")[0].offsetHeight;
		
		$("#rnd_text_block").css('height', h1 > h2 ? h2 : h1);	
	}
	
	function onHide() {
		$(".j_news_cont").html(content).animate({opacity:1},200);
	}
	
	function onLoad(res) {
		content = res.content;
		$(".j_news_cont").animate({opacity:0},200,onHide);
		jBack[res.is_back?"show":"hide"]();
		jNext.css('cursor',res.is_next?'pointer':'auto');
	}
	
	jNext.click(function(){
		if(this.style.cursor == 'pointer')
			postAjax('news/page',{dir:1},onLoad);
		return false;
	});
	
	jBack.click(function(){
		postAjax('news/page',{dir:0},onLoad);
		return false;
	});
	//всплывающее меню
	var current = null;
	var curContRect = null;
	var curSubRect = null;
	
	$(".j_menu").bind("mouseenter", function(){
		//скроем текущий
		if(current !== null)
			hideCurrent.call(current);
		
		var isSub = $(".sub-menu",this).length > 0;
		$(this).addClass("hover-"+(isSub?"2":"1"));
		
		if($(this).hasClass('active-')) {
			this.objActive = true;
			$(this).removeClass('active-')
		}
		
		$(".j_hover_show",this).show();
		$(".j_hover_hide",this).hide();
		//если предыдущая активна
		var next = nextActiveTd(this);
		if(next) 
			$(".active-l",next).hide();
		//если следующая активна
		var prev = previousActiveTd(this);
		if(prev)
			$(".active-r",prev).hide();
			
		var left = previousLetfTd(this);
		if(left) 
			$(left).addClass('na');
		//сохраняем координаты
		current = this;
		curContRect = getAbsPos(this);
		if(isSub) {
			curSubRect = getAbsPos($(".sub-menu",this)[0]);
		} else 
			curSubRect = null;
	});
	
	$(document).mousemove(function(e) {
		if(current !== null) {
			if(!inRect(e,curContRect) && (curSubRect === null || !inRect(e,curSubRect))) 
				hideCurrent.call(current);
		}
	}); 
	
	function hideCurrent() {
		$(this).removeClass("hover-1");
		$(this).removeClass("hover-2");
		$(".j_hover_show",this).hide();
		$(".j_hover_hide",this).show();
		
		if(this.objActive ) {
			$(this).addClass('active-')
		}
		//если предыдущая активна
		var next = nextActiveTd(this);
		if(next) 
			$(".active-l",next).show();
		//если следующая активна
		var prev = previousActiveTd(this);
		if(prev) 
			$(".active-r",prev).show();
			
		var left = previousLetfTd(this);
		if(left) 
			$(left).removeClass('na');
			
		current = null;
	}
	
	function nextActiveTd(domTd) {
		do{
			domTd = domTd.nextSibling;
		}while(domTd && (domTd.nodeType!=1 || domTd.tagName.toLowerCase() != 'td'));	
		if(domTd && $(domTd).hasClass('active-'))
			return domTd;
	}
	
	function previousActiveTd(domTd) {
		do{
			domTd = domTd.previousSibling;
		}while(domTd && (domTd.nodeType!=1 || domTd.tagName.toLowerCase() != 'td'));	
		if(domTd && $(domTd).hasClass('active-'))
			return domTd;
	}
	
	function previousLetfTd(domTd) {
		do{
			domTd = domTd.previousSibling;
		}while(domTd && (domTd.nodeType!=1 || domTd.tagName.toLowerCase() != 'td'));	
		if(domTd && $(domTd).hasClass('menu-l'))
			return domTd;
	}
	
	//летающая хрень
	/*var flyedRect = getAbsPos(document.getElementById("flyed_block"));
	var flyMarginTop = 20;
	var isFly = false;
	
	setInterval(function(){
		//положение скролла
		var scrollTop = 0;
       	if( typeof( window.pageYOffset ) == 'number' ) {
			scrollTop = window.pageYOffset;
        } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
			scrollTop = document.body.scrollTop;
        } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
			scrollTop = document.documentElement.scrollTop;
        }
		//летаем?
		var newIsFly = scrollTop > (flyedRect.top-flyMarginTop);
		if(newIsFly != isFly) {
			//alert(1);
			$("#flyed_block")[newIsFly?'addClass':'removeClass']("block-fly");
			isFly = newIsFly;
		}
	},50);*/
});

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}
	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}
	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  document.write(str);
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}