function controlClass(elem,className,operation) {
	//operation:1-add,2-delete,3-toogle;
	if (typeof elem == 'string' ) elem = document.getElementById(elem);
	var arr=elem.className.split(/\s+/);
	if ( operation==3 ) var bool=true;
	for ( var i=0 ; i<arr.length ; i++){
		if (arr[i]==className) {				
			if (operation==2 || operation==3) arr[i]='';
			if ( operation==3 ) bool=false;
			if ( operation==1 ) return true;
		}	
	}
	if ( operation==1 || (operation==3 && bool) ) arr[arr.length]=className;
	elem.className = arr.join(' ');
	return true;
}
function addClass(elem,classAdd) {
	if (controlClass(elem,classAdd,1)) return true;        
}         
function rmClass(elem,classRm) {
	if (controlClass(elem,classRm,2)) return true;        
}
function toggleClass(elem,classCh){
	if (controlClass(elem,classCh,3)) return true;
}
function chClass(elem,classOne,classTwo) {
	if ( toggleClass(elem,classOne) && toggleClass(elem,classTwo)) return true;
}
function makeActive(linkEl,divEl) {
	if (typeof linkEl == 'string' ) linkEl = document.getElementById(linkEl);
	if (typeof divEl == 'string' ) divEl = document.getElementById(divEl);
	var arr = linkEl.parentNode.parentNode.getElementsByTagName('li');
	for ( var i=0 ; i<arr.length ; i++){
		rmClass(arr[i],'tabs-selected');
	}
	if (document.getElementsByClassName) arr = divEl.parentNode.getElementsByClassName('tab');
	else arr = getElementsByClassNameFix('tab',null,divEl.parentNode);
	for ( var i=0 ; i<arr.length ; i++){
		addClass(arr[i],'tabs-hide');
	}
	addClass(linkEl.parentNode,'tabs-selected');
	rmClass(divEl,'tabs-hide');             	
	return true;
}
//work with flash obj
function addHandler(object, event, handler, useCapture) {
	   if (object.addEventListener) {
	      object.addEventListener(event, handler, useCapture ? useCapture : false);
	   } else if (object.attachEvent) {
	      object.attachEvent('on' + event, handler);
	   } else alert("Add handler is not supported");
}
function removeHandler(object, event, handler){
  if (typeof object.removeEventListener != 'undefined')
    object.removeEventListener(event, handler, false);
  else if (typeof object.detachEvent != 'undefined')
    object.detachEvent('on' + event, handler);
  else
    throw "Incompatible browser";
}
function getFlash(obj) {
    var M$ =  navigator.appName.indexOf("Microsoft")!=-1
    return (M$ ? window : document)[obj]
}
function fullscreenOn(){
	elem=getFlash('imap');
	var rmelem = (navigator.appName.indexOf("Microsoft")!=-1)?elem:elem.parentNode;

/*
	alert(elem.style.position);
	alert(elem.style.top);
	alert(elem.style.left);
	alert(elem.style.width);
	alert(elem.style.height);
*/

	elem.style.position='absolute';
	elem.style.top=0;
	elem.style.left=0;
	elem.style.width='100%';
	elem.style.height='100%';
	document.body.appendChild(rmelem);
	addClass('content','hide');
	addClass('top_banner','hide');
//	addClass('ifr','hide');

//	addHandler(document, "keydown", fullscreenOff);
}
function fullscreenOff(key){
	if ( key.which==27 || key.keyCode==27 ){
		elem=getFlash('imap');

		var rmelem = (navigator.appName.indexOf("Microsoft")!=-1)?elem:elem.parentNode;
		elem.style.position='static';
		rmClass('content','hide');
		rmClass('top_banner','hide');
//		rmClass('ifr','hide');
		document.getElementById('minsk_map').appendChild(rmelem);
		removeHandler(document, "keydown",fullscreenOff);
	}
}

function fullscreenOff2(){
	alert("off2");


	elem=getFlash('imap');
	var rmelem = (navigator.appName.indexOf("Microsoft")!=-1)?elem:elem.parentNode;
	elem.style.position='static';
	rmClass('content','hide');
	rmClass('top_banner','hide');
//	rmClass('ifr','hide');
	document.getElementById('minsk_map').appendChild(rmelem);
	removeHandler(document, "keydown",fullscreenOff);
}

function rightCol(){
	var width=(document.documentElement.clientWidth>988)?document.documentElement.clientWidth:988;
	width = (width % 2)?width - 569:width - 570;
	document.getElementById('right_col').style.width = width+'px';
}

/*
Developed by Robert Nyman, http://www.robertnyman.com
Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassNameFix = function (className, tag, elm){
	if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};