/*
* Functions module 
* ver 1.1
*
* History:
* 	1.1	23.01.09/goshi	added $_ function and ShowLoader function 
*/


function do_nothing(){

	return void(0);

}

function $_(objid){

	return document.getElementById(objid);

}


// open new window
var myWindow;
function show(url,wi,he,title_win) {
	
	if (myWindow != null){
		myWindow.close();
		myWindow = null;
	}
	lpos = (screen.width) ? (screen.width-wi)/2 : 0;
	tpos = (screen.height) ? (screen.height-he)/2 : 0;
	myWindow = window.open(url, title_win, "top="+tpos+",left="+lpos+",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,personalbar=no,resizable=no,width=" + wi + ",height=" + he + ",outerheight=0,outerwidth=0");
                
	myWindow.focus();
                
} 
        
function show_resized(url,wi,he,title_win) {
	
	lpos = (screen.width) ? (screen.width-wi)/2 : 0;
	tpos = (screen.height) ? (screen.height-he)/2 : 0;
	myWindow = window.open(url, title_win, "top="+tpos+",left="+lpos+",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,personalbar=no,resizable=yes,width=" + wi + ",height=" + he + ",outerheight=0,outerwidth=0");
	
}

function show_resized_scroll(url,wi,he,title_win) {
	
	if (myWindow != null){
		myWindow.close();
		myWindow = null;
	}
	
	lpos = (screen.width) ? (screen.width-wi)/2 : 0;
	tpos = (screen.height) ? (screen.height-he)/2 : 0;
	myWindow = window.open(url, title_win, "top="+tpos+",left="+lpos+",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,personalbar=no,resizable=yes,width=" + wi + ",height=" + he + ",outerheight=0,outerwidth=0");
	
}
/*var myWindow;
function show(url,wi,he,title_win) {
	
	myWindow = window.open(url, title_win, "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,personalbar=no,resizable=no,width=" + wi + ",height=" + he + ",outerheight=0,outerwidth=0");
}  

function show_resized(url,wi,he,title_win) {
	
	myWindow = window.open(url, title_win, "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,personalbar=no,resizable=yes,width=" + wi + ",height=" + he + ",outerheight=0,outerwidth=0");
}  */

function sethome(o,siteurl,sitename) {
	var name = navigator.appName;
	var useragent = navigator.userAgent;
	var version = parseInt(navigator.appVersion);
	var needtoknow = 1;
	
	if ( useragent.indexOf("MSIE") != -1) {
			var index = navigator.userAgent.indexOf("MSIE ");
			if ( index != -1 ) {
				version = parseInt(navigator.userAgent.substring(index+5,index+6));
			}
			if ( version > 4) {
				o.style.behavior='url(#default#homepage)'; o.setHomePage(siteurl);
				needtoknow = 0;
			}
	}
//	if (needtoknow != 0) {
	//	alert('/help/makehomepage.html','winMakeHomepage','location=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=450');
	//}
}



var utf8_rus = {
		'é' : '%E9',
		'ö' : '%F6',
		'ó' : '%F3',
		'ê' : '%EA',
		'å' : '%E5',
		'í' : '%ED',
		'ã' : '%E3',
		'ø' : '%F8',
		'ù' : '%F9',
		'ç' : '%E7',
		'õ' : '%F5',
		'ú' : '%FA',
		'ô' : '%F4',
		'û' : '%FB',
		'â' : '%E2',
		'à' : '%E0',
		'ï' : '%EF',
		'ð' : '%F0',
		'î' : '%EE',
		'ë' : '%EB',
		'ä' : '%E4',
		'æ' : '%E6',
		'ý' : '%FD',
		'ÿ' : '%FF',
		'÷' : '%F7',
		'ñ' : '%F1',
		'ì' : '%EC',
		'è' : '%E8',
		'ò' : '%F2',
		'ü' : '%FC',
		'á' : '%E1',
		'þ' : '%FE',
		'¿' : '%BF',
		'³' : '%B3',
		'º' : '%BA',
		'É' : '%C9',
		'Ö' : '%D6',
		'Ó' : '%D3',
		'Ê' : '%CA',
		'Å' : '%C5',
		'Í' : '%CD',
		'Ã' : '%C3',
		'Ø' : '%D8',
		'Ù' : '%D9',
		'Ç' : '%C7',
		'Õ' : '%D5',
		'Ú' : '%DA',
		'Ô' : '%D4',
		'Û' : '%DB',
		'Â' : '%C2',
		'À' : '%C0',
		'Ï' : '%CF',
		'Ð' : '%D0',
		'Î' : '%CE',
		'Ë' : '%CB',
		'Ä' : '%C4',
		'Æ' : '%C6',
		'Ý' : '%DD',
		'ß' : '%DF',
		'×' : '%D7',
		'Ñ' : '%D1',
		'Ì' : '%CC',
		'È' : '%C8',
		'Ò' : '%D2',
		'Ü' : '%DC',
		'Á' : '%C1',
		'Þ' : '%DE',
		'¯' : '%AF',
		'²' : '%B2',
		'ª' : '%AA',
		'"' : '%22',
		'#' : '%23',
		'$' : '%24',
		'%' : '%25',
		'&' : '%26',
		'+' : '%2B',
		'/' : '%2F',
		':' : '%3A',
		';' : '%3B',
		'<' : '%3C',
		'=' : '%3D',
		'>' : '%3E',
		'?' : '%3F',
		'[' : '%5B',
		'\\' : '%5C',
		']' : '%5D',
		'^' : '%5E',
		'`' : '%60',
		'{' : '%7B',
		'|' : '%7C',
		'}' : '%7D',
		',' : '%2C',
		'\'' : '%27'
}; 

function right_escape(s){
	// BE Careful - encodeURI works badly!!!
	//if(self.encodeURI)  return encodeURI(s); //standart method
	//if we have not found 
	res="";
	for(i=0;i<s.length;i++){
		//try to recode
		if (utf8_rus[s.charAt(i)] != null) res+=utf8_rus[s.charAt(i)]
		else res+=s.charAt(i)
	}
	return res;
}

function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
 return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}


// function working with cookies
function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

/* fucntion for working with arrays */
function setCookieArr (name, value, expires, path, domain, secure) {

     if (typeof value == 'object'){
      	var arrstr = "";
      	for (i in value){
      		arrstr += i+","
      	}
      	setCookie (name, arrstr, expires, path, domain, secure)
      }
          
}

function getCookieArr (name) {

     var tmp = getCookie(name);
     var json = {};
     if (tmp.length > 0) {
     	var tmpb = tmp.split(',');
     	for (var i=0;i<tmpb.length;i++){
     		//alert("tmpb["+i+"]='"+tmpb[i]+"'");
     		if (tmpb[i] != '' || tmpb[i] != 0) json[tmpb[i]] = 1;
     	}
     }
     return json;    
}

/* json function */
function addToJson(json, elemname, value){
	json[elemname] = value;
}

function removeFromJson(json, elemname){
	delete json[elemname];
}



function getLikeElements(tagName, attrName, attrValue) {
    var startSet;
    var endSet = new Array( );
    if (tagName) {
        startSet = document.getElementsByTagName(tagName);    
    } else {
        startSet = (document.all && !window.opera) ? document.all : 
            document.getElementsByTagName("*");
    }
   // alert(attrName)
    if (attrName) {
        for (var i = 0; i < startSet.length; i++) {
            if (startSet[i] && startSet[i].getAttribute(attrName)) {
                if (attrValue) {
                    if (startSet[i] && startSet[i].getAttribute(attrName) == attrValue) {
                        endSet[endSet.length] = startSet[i];
                    }
                } else {
                    endSet[endSet.length] = startSet[i];
                }
            }
        }
    } else {
        endSet = startSet;
    }
    return endSet;
   
   
  
}



// date fucntion date
function timeSource(){
   x=new Date(timeNow().getUTCFullYear(),timeNow().getUTCMonth(),timeNow().getUTCDate(),timeNow().getUTCHours(),timeNow().getUTCMinutes(),timeNow().getUTCSeconds());
   x.setTime(x.getTime()+7200000);
   return x;
}
function timeNow(){
   return new Date();
}
function leadingZero(x){
   return (x>9)?x:'0'+x;
}
function displayTime(){
   document.getElementById('disp').innerHTML=eval(outputTime);
   setTimeout('displayTime()',1000);
}
var outputTime="leadingZero(timeSource().getHours())+':'+leadingZero(timeSource().getMinutes())+':'+leadingZero(timeSource().getSeconds())";

function strt()
{
	displayTime();
}
//

function bookmark(){
    var title= document.title;
    var url= location.href;

    if (window.sidebar) window.sidebar.addPanel(title, url,"");

    else if( window.opera && window.print )
    {
    var mbm = document.createElement('a');
    mbm.setAttribute('rel','sidebar');
    mbm.setAttribute('href',url);
    mbm.setAttribute('title',title);
    mbm.click();
    }
    else if( document.all ) window.external.AddFavorite( url, title);
} 

// working with tabs
function sw_tab (aobj, holder) {
	
	var j=0
//	alert (document.getElementById(holder+"_"+ j))
	var obj = document.getElementById(aobj)
	while (document.getElementById(holder+"_"+ j)&& document.getElementById(holder+"_"+ j)!="undefined"){
		if (document.getElementById(holder+"_"+ j)!=obj)
		{
		document.getElementById(holder+"_"+ j).className = 'zak_bord'
		document.getElementById(holder+"_h_"+ j).style.display = 'none'
		}
		else 
		{
			document.getElementById(holder+"_h_"+ j).style.display = 'block'
			}
		j++
		}
//	alert (obj.id)
	obj.className = 'small_zak_act';
	obj.blur();
	return false
} 

// pager key-code checker 
CheckKeyCodePgr = function(event, uid){
	if ({13:1}[event.which||event.keyCode]){
		return eval("pager_on_chg"+uid)();
	}
			
	keycode = event.which ? event.which : event.keyCode;

	if((keycode >= 48 && keycode <= 57) || (keycode >= 37 && keycode <= 40) || keycode == 8) {
		return true; 
	} else {
		return false;
	}
}


// Ajax pager key-code checker 
CheckKeyCodePgrAjx = function(event, uid){
	if ({13:1}[event.which||event.keyCode]){
		updPage(document.getElementById("newppage"+uid).value);
		return false;
	}
			
	keycode = event.which ? event.which : event.keyCode;

	if((keycode >= 48 && keycode <= 57) || (keycode >= 37 && keycode <= 40) || keycode == 8) {
		return true; 
	} else {
		return false;
	}
}


/* DOM function for creating or removing elements */
function elem(name, attrs, style, text) {
    var e = document.createElement(name);
    if (attrs) {
        for (key in attrs) {
            if (key == 'class') {
                e.className = attrs[key];
            } else if (key == 'id') {
                e.id = attrs[key];
            } else {
                e.setAttribute(key, attrs[key]);
            }
        }
    }
    if (style) {
        for (key in style) {
            e.style[key] = style[key];
        }
    }
    if (text) {
        e.appendChild(document.createTextNode(text));
    }
    return e;
}

/* visual image for loading 
*  ver 2.0
* 
*  History: 
*	2.0	added new params for includoing new features - ['layerd'] feature
*/
function showLoader(objid, params){

	var obj = $_(objid);
	// generate uniq id - we need to initialize date object each time for unique id
	var tmpdt = new Date;
	var id = tmpdt.getTime();
		
	if (obj){
		if (typeof params != "undefined" && params.layered){
			var el = elem('div', {'class' : 'loader-abs', 'id' : 'loader_'+id});
			el.innerHTML = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="100" id="comm_wait" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="' +skin_img_dir + 'comm_wait.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><embed src="' +skin_img_dir + 'comm_wait.swf" wmode="transparent" quality="high" width="200" height="100" name="comm_wait" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>';
			obj.appendChild(el);
		} else
			obj.innerHTML = '<span class="loader" id="loader_'+id+'"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="100" id="comm_wait" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="' +skin_img_dir + 'comm_wait.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><embed src="' +skin_img_dir + 'comm_wait.swf" wmode="transparent" quality="high" width="200" height="100" name="comm_wait" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></span>';
	}
}


/* preloader class */
function pphpPreLoader(params){
	this._init(params);
}

pphpPreLoader.prototype = {

	_items : null,
	_mode : 'standart', /* standart mode for showing - can be 'standart' and 'float' */
	
	/* constructor */
	_init: function(params){
		
		if (typeof params != "undefined"){
			if (params.mode)
				this._mode = params.mode;
					
		}
		
		this._items = {};
				
	},
	
	create : function(objid, mode){
	
		var tmpdt = new Date;
		// generate uniq id - we need to initialize date object each time for unique id
		var ticket = tmpdt.getTime();
		
		var tmode = (typeof mode != "undefined" && mode ? mode : this._mode);
		var obj = (typeof objid != "undefined" && objid ? $_(objid) : document);
		
		this._items[ticket] = {'mode' : tmode, 'owner' : obj};
		
		switch (tmode){
		
		case 'float' :
			var el = elem('div', {'class' : 'loader-abs', 'id' : 'loader_'+ticket});
			el.innerHTML = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="100" id="comm_wait" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="' +skin_img_dir + 'comm_wait.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><embed src="' +skin_img_dir + 'comm_wait.swf" wmode="transparent" quality="high" width="200" height="100" name="comm_wait" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>';
			// hack for IE, which don't support absolute in relative normally
			if (!(/MSIE/.test(navigator.userAgent)))
				obj.style.position = 'relative';
			obj.appendChild(el);
			break;
			
		case 'standart' :
		default:
			obj.innerHTML = '<span class="loader" id="loader_'+ticket+'"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="200" height="100" id="comm_wait" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="' +skin_img_dir + 'comm_wait.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><embed src="' +skin_img_dir + 'comm_wait.swf" wmode="transparent" quality="high" width="200" height="100" name="comm_wait" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></span>';
			
			break;
		}
		
		return ticket;
	
	},
	
	destroy : function(ticket){
	
		if (this._items[ticket]){
			switch (this._items[ticket].mode){
			case 'float':
				//this._items[ticket].owner.style.position = 'static';
				this._items[ticket].owner.removeChild($_('loader_'+ticket)); break;
			case 'standart':
			default: 
				//this._items[ticket].owner.innerHTML = '';
			}
			delete this._items[ticket];
		}
	
	}	

}

// adding preloader to portal
if (typeof portal != "undefined")
	portal.loader = new pphpPreLoader({'mode' : 'float'});


/*
* function show/hide eleemnt
* ver 1.1
*
* History:
*	1.1	09.11.08/goshi	added returned value
* 	1.0	20.08.08	
*/
function showHide(oId){
	var aObj = $_(oId);
	if (aObj){
		if (aObj.style.display == 'none'){
			aObj.style.display = 'block';
		}else{
			aObj.style.display = 'none';
		}
		
		return aObj.style.display;
	}
}

