function report_js_error(msg, url, linenumber) {
  stuff=" URL: "+url+" - "+msg+"; line: "+linenumber;
  tmp = new Image();
  tmp.src = "/write_error.php?error="+stuff;
  return true;
}
function getCookie(Name) {   
	var search = Name + "="   
	if (document.cookie.length > 0) { 
		offset = document.cookie.indexOf(search)       
		if (offset != -1) { 
			offset += search.length
			end = document.cookie.indexOf(";", offset)
			if (end == -1) end = document.cookie.length
			return unescape(document.cookie.substring(offset, end))     
		}
	}
}
function setCookie(name, value) { 
	var expire = "0, 01-01-2020 00:00:00 GMT"
	document.cookie = name + "=" + escape(value) + "; expires=" + expire + "; path=/";
}
function Win2Escape(AStr){
	var Result='';
	for(var i=0;i<AStr.length;i++)
		if(AStr.charAt(i)>='А' && AStr.charAt(i)<='я')	Result+=Letters[AStr.charCodeAt(i)-0x0410];
		else if(AStr.charAt(i)=='Ё') Result+=Letters[64];
		else if(AStr.charAt(i)=='ё') Result+=Letters[65];
		else if(AStr.charAt(i)=='=') Result+='%3D';
		else if(AStr.charAt(i)=='&') Result+='%26';
		else Result+=AStr.charAt(i);
	return Result;
}
// -------------------------------------------------------------
function URLencode(sStr) {
	return (Win2Escape(sStr)).replace(/\+/g, '%2C').replace(/\"/g,'%22').replace(/\'/g, '%27');
}
// -------------------------------------------------------------
function startFlashing(block_id) {
	layer = document.getElementById(block_id);
	if (flashing==1) {
		layer.style.borderWidth='1px';
		layer.style.borderColor='#000000';
		if (layer.style.borderStyle.indexOf('none') == -1) {
			//alert(layer.style.borderStyle);
			layer.style.borderStyle='none';
		} else {
			layer.style.borderStyle='dotted';
		}
		window.setTimeout("startFlashing('"+block_id+"');", 100);
	} else {
		layer.style.borderStyle='none';
		layer.style.borderWidth='0px';
	}
}
// -------------------------------------------------------------
function AJAXRequest(url_param, ready_function, first_param, proc_function) {
	proc_function = proc_function || '';
	first_param = first_param || '';
	var xmlhttp=create_http_handle();
	if(xmlhttp) {
		xmlhttp.open("GET", url_param, true);
		xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
		xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
		xmlhttp.setRequestHeader("Pragma", "no-cache");
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4) {
				eval(ready_function+'(\''+first_param+'\', xmlhttp.responseText);');
			}
		}
		if (proc_function) {
			eval(proc_function+'();');
		}
		xmlhttp.send(null);
		return false;
	}
}
// -------------------------------------------------------------
function create_http_handle(TYPE){
	var http_handle = false;
	if (window.XMLHttpRequest){
		http_handle = new XMLHttpRequest();
		if (http_handle.overrideMimeType){
			if (TYPE == "XML"){
				http_handle.overrideMimeType('text/xml');
			} else {
				http_handle.overrideMimeType('text/html');
			}
		}
	} else if (window.ActiveXObject){
		try {
			http_handle = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_handle = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_handle){
		alert("We are sorry but you are using an outdated browser.  To view this site you must update your browser.");
		return false;
	} else {
		return http_handle;
	}
}
// -------------------------------------------------------------
function getBrowserType()	 {
	var myUserAgent;
	var myMajor;
	myUserAgent = navigator.userAgent.toLowerCase();
	myMajor = parseInt(navigator.appVersion);
	re = /safari/i;
	if(re.exec(myUserAgent))								{	return "safari";	 }
	if( (myUserAgent.indexOf('mozilla') != -1) && (myUserAgent.indexOf('spoofer') == -1) && (myUserAgent.indexOf('compatible') == -1) && (myUserAgent.indexOf('opera') == -1) && (myUserAgent.indexOf('webtv') == -1)    )	{	return "nav";	}
	if (myUserAgent.indexOf("msie") != -1)				{	return "ie";		}
																		return "other";
}
// ------------------------------------------------------------

function teamFilter(team) {
	new Effect.Appear('liover', {duration: 0.2, from: 0.0, to: 0.6});

	var param = document.getElementById('scroller');
	if(param) param.style.visibility = 'hidden';
	var param = document.getElementById('gallery_result');
	if(param) param.style.visibility = 'hidden';
	var param = document.getElementById('gallery_pagging');
	if(param) param.style.visibility = 'hidden';
	var param = document.getElementById('fillterArea');
	if(param) param.style.visibility = 'hidden';

	var url='/index.php?ajt=messages&doit=systemmodule&param1=name="teams" ajax="on" '; 
	AJAXRequest(url, 'resultFilter', 'gallery_result');
}

function galleryFilter(paramsObj, sh, project) {
	var sh = sh || 0;
	if(typeof(paramsObj) == 'object') {
		var authors = paramsObj.authors || '';
		var from_year = paramsObj.from_year || '';
		var type = paramsObj.type || '';
		var category = paramsObj.category || '';
		var project = project || '';
		new Effect.Appear('liover', {duration: 0.2, from: 0.0, to: 0.6});
		if(!sh) {
			/*new Effect.Appear('liover', {duration: 0.5, from: 0.0, to: 0.8});
			new Effect.Appear('system_message', { duration: 0, from: 0.0, to: 1});*/
		}

		var param = document.getElementById('scroller');
		if(param) param.style.visibility = 'hidden';
		var param = document.getElementById('gallery_result');
		if(param) param.style.visibility = 'hidden';
		var param = document.getElementById('gallery_pagging');
		if(param) param.style.visibility = 'hidden';
		var param = document.getElementById('fillterArea');
		if(param) param.style.visibility = 'hidden';

		var url='/index.php?ajt=messages&doit=systemmodule&param1=name="projects" ajax="on" authors="'+authors+'" year="'+from_year+'" types="'+type+'" cats="'+category+'" project_id="'+project+'" '; 
		AJAXRequest(url, 'resultFilter', 'gallery_result');

		var url='/index.php?ajt=messages&doit=systemmodule&param1=name="projects" view_mode="pagging" ajax="on" authors="'+authors+'" year="'+from_year+'" types="'+type+'" cats="'+category+'" project_id="'+project+'" '; 
		AJAXRequest(url, 'resultFilterArea', 'gallery_pagging');

		var url='/index.php?ajt=messages&doit=systemmodule&param1=name="projects" view_mode="filterarea" ajax="on" authors="'+authors+'" year="'+from_year+'" types="'+type+'" cats="'+category+'"'; 
		AJAXRequest(url, 'resultFilterArea', 'fillterArea');
	}
}

var flag1=0;
var flag2=0;
var flag3=0;
var flag4=0;

function resultFilter(param, result) {
	var param = document.getElementById(param);
	if(param) {
		result += '<img src="/img/0.gif?'+Math.round(Math.random()*1000)+'" width="1" height="1" border="0" alt="" id="loader" style="display:none;">';
		param.innerHTML = result;
		ondocload();
		param.timerID = null;
		param.stopclock = function() {
			if(this.timerID) {
				clearInterval(this.timerID);
				this.timerID = null 
			}
		}
		param.counter = 1;
		param.stopclock()
		param.timerID = setInterval( function() {
					param.counter ++;
					var te = document.getElementById('loader');
					if(param.timerID && te) {
						te.onload = function() {
							ondocload()
							param.stopclock()
							var pr = document.getElementById('scroller');
							if(pr) pr.style.visibility = 'visible';
							var pr = document.getElementById('gallery_result');
							if(pr) pr.style.visibility = 'visible';
							var pr = document.getElementById('gallery_pagging');
							if(pr) pr.style.visibility = 'visible';
							var pr = document.getElementById('fillterArea');
							if(pr) pr.style.visibility = 'visible';
							new Effect.Fade('liover', {duration: 0.3})
						}
						ondocload()
					}
					if(param.counter > 50) {
						param.stopclock()
						var pr = document.getElementById('scroller');
						if(pr) pr.style.visibility = 'visible';
						var pr = document.getElementById('gallery_result');
						if(pr) pr.style.visibility = 'visible';
						var pr = document.getElementById('gallery_pagging');
						if(pr) pr.style.visibility = 'visible';
						var pr = document.getElementById('fillterArea');
						if(pr) pr.style.visibility = 'visible';
						new Effect.Fade('liover', {duration: 0.3})
					}
				}, 100);
	}
	/*new Effect.Fade('liover', {duration: 0.3});
	new Effect.Fade('system_message', { duration: 0.0});*/
}

function resultFilterArea(param, result) {
	var param = document.getElementById(param);
	if(param) param.innerHTML = result;
}

function mouseDown(e) {
	//if(document.layers) document.captureEvents(Event.MOUSEDOWN); document.onmousedown =  mouseDown;
	document.onmousedown =  null;
	document.getElementById('div1').style.display = 'none';
	document.getElementById('div2').style.display = 'none';
	document.getElementById('div3').style.display = 'none';
	document.getElementById('div4').style.display = 'none';
	document.getElementById('select1').className='select1';
	document.getElementById('select2').className='select2';
	document.getElementById('select3').className='select3';
	document.getElementById('select4').className='select3';
}

function clickSelect(obj) {
	var id = (/select(\d)/.exec(obj.id))[1];
	var flag = eval("flag" + id);
	if (flag==0) {
		document.getElementById('div'+id).style.display='block'; 
		obj.className='select'+id+' act'+id;
		obj.style.zIndex=102; 
		eval("flag" + id + " = 1;");
		new Effect.Appear('fover', {duration: 0.0, from: 0.0, to: 0.5});
		document.getElementById('fover').onclick = function() {
			obj.className='select'+id;
			obj.style.zIndex=100; 
			document.getElementById('div'+id).style.display='none'; 
			new Effect.Fade('fover', {duration: 0});
			this.onclick = null 
			eval("flag" + id + " = 0;");
		}
	} else {
		document.getElementById('div'+id).style.display='none'; 
		obj.className='select'+id;
		obj.style.zIndex=100; 
		eval("flag" + id + " = 0;");
		new Effect.Fade('fover', {duration: 0});
		document.getElementById('fover').onclick = null;
	} 
}

// -------------------------------------- SLIDER ----------------------------------------

if(document.layers) document.captureEvents(Event.MOUSEUP|Event.MOUSEMOVE);
document.onmouseup =  mup;
document.onmousemove =  mmove;

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('ERR');
}

addHandler(window, 'DOMMouseScroll', wheel); /* Gecko */
addHandler(window, 'mousewheel', wheel); /* Opera */
addHandler(document, 'mousewheel', wheel); /* IE */


function wheel(event) {
	var delta; // -N down, N up
	event = event || window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta / 120;
		//if (window.opera) delta = -delta;
	} else if (event.detail) delta = -event.detail / 3;
	if (event.preventDefault)  event.preventDefault();
	if(delta > 0) slider_top();
	if(delta < 0) slider_bottom();
}

var click=0;
var yb=0;
var ym=0;
var scroll_block1=null;
var scroll_max=0;
var scroll_1=null;
var old_pos=24;

function hidePreloader() {
	var preloader=document.getElementById('preloader');	
	if(preloader) {
		new Effect.Fade('preloader', {duration: 0.5});
	}
}

function ondocload() {
	hidePreloader();
	var scroller=document.getElementById('scroller');
	if(scroller) {
		scroll_block1=document.getElementById('gallery_result');
		if(scroll_block1) {
			scroll_block1.scrollTop=0;
			scroll_max=scroll_block1.scrollHeight-scroll_block1.clientHeight;
			if(scroll_max>0) scroller.style.display = 'block';
			else scroller.style.display = 'none';
			scroll_1=document.getElementById('polzunok');
			if(scroll_1) {
				old_pos = 24;
				scroll_1.style.top=old_pos+'px';
				scroll_1.onmousedown = new Function("e", "old_pos=parseInt(scroll_1.style.top); if(document.all) ym=window.event.y; else ym=e.pageY; click=1; return false;");
			}
		}
	}
	if( typeof myLightbox == 'object' ) myLightbox.updateImageList();
}

function slider_top() {
	var visH = scroll_block1.clientHeight;
	var pr = scroll_block1.scrollTop*100/scroll_max - visH*100/scroll_max;
	if(pr<0) pr = 0;
	if(pr>100) pr = 100;
	//document.getElementById('test').innerHTML = pr*(354-22)/100+22;
	scroll_1.style.top=parseInt(pr*(354-24)/100+24)+'px';
	scroll_block1.scrollTop = Math.round(scroll_max*pr/100);
	old_pos=parseInt(scroll_1.style.top);
}
function slider_bottom () {
	var visH = scroll_block1.clientHeight;
	var pr = scroll_block1.scrollTop*100/scroll_max + visH*100/scroll_max;
	if(pr<0) pr = 0;
	if(pr>100) pr = 100
	//document.getElementById('test').innerHTML = pr*(354-22)/100+22;
	scroll_1.style.top=parseInt(pr*(354-24)/100+24)+'px';
	scroll_block1.scrollTop = Math.round(scroll_max*pr/100);
	old_pos=parseInt(scroll_1.style.top);
}

function mmove(e) {
	if(document.all) yb=window.event.y; 
	else yb=e.pageY;
	//document.getElementById('test').innerHTML = yb;
	if (click==1) {
        var ys=yb-ym;
		var sm = old_pos+ys;
        if (sm<24) sm=24;
        if (sm>354) sm=354;
		var pr = (sm-24)*100/(354-24);
        scroll_block1.scrollTop=Math.round(scroll_max*pr/100);
        scroll_1.style.top=sm+'px';
	}
}
function mup(e) {
	var tmp=document.getElementById('gallery_result'); 
	if(tmp) old_pos=parseInt(tmp.style.top); 
	click=0;
}
// -------------------------------------- SLIDER <END>----------------------------------------

// -------------------------------------- IMAGE PREVIEW ----------------------------------------
function previewImage(id, obj) {
	var large = document.getElementById('largeImage__');
	var largeHref = document.getElementById('largeImageHref__');
	var loop = document.getElementById('largeImage_'+id);
	var loopHref = document.getElementById('largeImageHref_'+id);
	if(large && loop) {
		large.src = loop.src;
		largeHref.href = loopHref.value;
		if(myLightbox) myLightbox.updateImageList();
	}
	if(obj) {
		for(i=0; i<document.getElementsByTagName('a').length; i++ ) {
			if(document.getElementsByTagName('a')[i].className == 'act') document.getElementsByTagName('a')[i].className = '';
		}
		obj.className = 'act';
	}
}
// -------------------------------------- IMAGE PREVIEW <END> ---------------------------------

function showPath() {
	var tmp = document.getElementById('map_big');
	if(tmp) {
		new Effect.Appear('fover', {duration: 0.0, from: 0.0, to: 0.5});
		tmp.style.display = 'block';
		tmp.onclick = document.getElementById('fover').onclick = function() {
			tmp.style.display = 'none';
			new Effect.Fade('fover', {duration: 0});
		}
	}
}
