function gallery_class(path)
{
	this.create_frame = function ()
	{
		var iHeight = window.innerHeight?window.innerHeight:document.documentElement.clientHeight;
		var iWidth = window.innerWidth?window.innerWidth:document.documentElement.clientWidth;
		
		var cont = document.createElement('DIV');
		cont.style.position='absolute';
		cont.style.top='0px';
		cont.style.left='0px';
		cont.style.width='100%';
		cont.style.height=document.body.offsetHeight+'px';
		document.body.appendChild(cont);
		cont.style.zIndex='15';
		
		
		var div = document.createElement('DIV');
		div.id = 'gallery_img_container';
		div.style.position='absolute';
		div.className = 'gallery_border';
		setAlpha(div,0,false);
		var img = new Image();
		img.id = 'gallery_img_preview';
		img.onload = function()
		{
			var obj = document.getElementById('gallery_img_preview');
			var div = document.getElementById('gallery_img_container');
			div.parentNode.childNodes[2].style.display='none';
			var rulez = document.styleSheets[0].cssRules?document.styleSheets[0].cssRules:document.styleSheets[0].rules
			for(var x=rulez.length-1;x>=0;x--)
			{
				if(rulez[x]['selectorText']=='.gallery_border')
				{
					var padding = 2*(parseInt(rulez[x].style.padding)+parseInt(rulez[x].style.borderWidth));
					break;
				}
			}
			if(obj.width>document.documentElement.offsetWidth-padding)
			{
				var w = window.innerWidth+document.documentElement.scrollLeft-padding
				obj.style.height = obj.height/obj.width*(w)+'px';
				obj.style.width = w+'px';
			}
			var iHeight = window.innerHeight?window.innerHeight:document.documentElement.clientHeight;
			var iWidth = window.innerWidth?window.innerWidth:document.documentElement.clientWidth;
			div.style.marginTop=parseInt((iHeight-padding-obj.height)/2+document.documentElement.scrollTop)+'px';
			div.style.marginLeft=parseInt((iWidth-obj.width-padding)/2+document.documentElement.scrollLeft)+'px';
			setAlpha(div,100,false);
		};
		div.appendChild(img);
		
		var next = document.createElement('A');
		next.className = 'next';
		next.onclick = this.next_item;
		div.appendChild(next);
		var prev = document.createElement('A');
		prev.className = 'previous';
		prev.onclick = this.prev_item;
		div.appendChild(prev);
		next.style.marginTop = prev.style.marginTop = (div.offsetHeight-58)/2
		var close = document.createElement('H3');
		close.appendChild(document.createTextNode('Click to close'));
		div.appendChild(close);
		cont.appendChild(div);
		
		var div2  = document.createElement('DIV');
		div.onclick = div2.onclick = this.closeImage;
		div2.style.position='absolute';
		div2.style.width=cont.style.width;
		div2.style.height=cont.style.height;
		div2.style.backgroundColor='black';
		div2.style.left=div2.style.top='0px';
		setAlpha(div2, 80);
		cont.appendChild(div2);
		var img2 = new Image();
		cont.appendChild(img2);
		img2.style.position = 'absolute';
		img2.src='/images/loading_animation.gif';
		img2.style.top=parseInt((window.innerHeight?window.innerHeight:document.documentElement.clientHeight-10)/2+document.documentElement.scrollTop)+'px';
		img2.style.left=parseInt((window.innerWidth?window.innerWidth:document.documentElement.clientWidth-70)/2+document.documentElement.scrollLeft)+'px';
		div2.style.zIndex = -1;
		return cont;
	};
	
	this.showImage = function (img_id)
	{
		this.img_id = img_id;
		var container = document.getElementById('gallery_img_container');
		if(container)
		{
			setAlpha(container,0,false);
			container = container.parentNode;
			container.style.display = 'block';
			container.childNodes[2].style.display='block';
		} else
		{
			container = this.create_frame();
		}
		container.childNodes[0].childNodes[0].src = '/'+this.path_full[1]+img_id+this.path_full[2];
		container.childNodes[0].childNodes[2].style.display=this.get_previous(img_id)===false?'none':'block';
		container.childNodes[0].childNodes[1].style.display=this.get_next(img_id)===false?'none':'block';
		this.current_id = img_id;
	};
	
	this.prev_item = function(e)
	{
		gallery.showImage(gallery.get_previous(gallery.current_id));
	}
	
	this.next_item = function(e)
	{
		gallery.showImage(gallery.get_next(gallery.current_id));
	}
	
	this.closeImage = function(e)
	{
		if(!e) { e = window.event; }
		var obj = e.srcElement?e.srcElement:e.target;
		if(obj.tagName!='IMG' && obj.tagName!='A')
		{
			
			var div = document.getElementById('gallery_img_container');
			div.childNodes[0].src='none';
			div.parentNode.style.display='none';
			if(gallery.onClose)
			{
				gallery.onClose(obj);
			}
		}
	};
	
	if(path.substr(0, 7)=='http://')
	{
		path = path.substr(7);
		var pos = path.indexOf('/')+1;
		path = 'http://'+path.substr(0, pos)+'{ID}'+path.substr(pos);
	} else
	{
		path = '{ID}'+path;
	}
	this.path_full = path.split('{ID}');
}
var domain = window.location+'';
domain = domain.substr(7);
domain = 'http://'+domain.substring(0, domain.indexOf('/')+1);
var gallery = new gallery_class(domain+'photos/gallery/{ID}.jpg');
gallery.onClose = function()
{
	document.getElementById('swf_alexandrov').style.visibility='visible';
};

gallery.get_previous = function(num)
{
	var link = this.path_full[0] + this.path_full[1] + num + this.path_full[2];
	var rows = document.getElementById('gallery').tBodies[0].childNodes,cols,y,field=false,searched=false;
	for(var x=rows.length-1;x>=0;x--)
	{
		cols = rows[x].childNodes;
		for(y=cols.length-1;y>=0;y--)
		{
			if(cols[y].tagName!='TD') continue;
			fields = cols[y].childNodes;
			if(field===false)
			{
				for(z=fields.length-1;z>=0;z--)
				{
					if(fields[z].tagName=='A')
					{
						field=z;
						break;
					}
				}
			}
			if(searched)
			{
				return fields[field].href.substring(fields[field].href.lastIndexOf('/')+1,fields[field].href.lastIndexOf('.'));
			}
			if(fields[field].href==link)
			{
				searched=true;
			}
		}
	}	
	return false;
};

gallery.get_next = function(num)
{
	var link = this.path_full[0] + this.path_full[1] + num + this.path_full[2];
	var rows = document.getElementById('gallery').tBodies[0].childNodes,cols,y,field=false,searched=false;
	var l1=rows.length,l2;
	for(var x=0;x<l1;x++)
	{
		cols = rows[x].childNodes;
		l2=cols.length;
		for(y=0;y<l2;y++)
		{
			if(cols[y].tagName!='TD') continue;
			fields = cols[y].childNodes;
			if(field===false)
			{
				for(z=fields.length-1;z>=0;z--)
				{
					if(fields[z].tagName=='A')
					{
						field=z;
						break;
					}
				}
			}
			if(searched)
			{
				return fields[field].href.substring(fields[field].href.lastIndexOf('/')+1,fields[field].href.lastIndexOf('.'));
			}
			if(fields[field].href==link)
			{
				searched=true;
			}
		}
	}
	return false;
};


function preload() {
	var a=preload.arguments;
	for(i=a.length-1;i>=0;i--)
	{
		(new Image).src=a[i];
	}
}




window.onload = function()
{
	preload('/images/header_pic.jpg');
	window.onresize = function()
	{
		var h = 0;
		if( typeof( window.innerWidth ) == 'number' )
		{
			h = window.innerHeight;
		} else if(document.documentElement && document.documentElement.clientHeight)
		{
			h = document.documentElement.clientHeight;
		} else if(document.body && document.body.clientHeight)
		{
			h = document.body.clientHeight;
		}
		if (h >= 400  ) 
		{
			h = (h - 400) / 2;
			document.getElementById('container').style.paddingTop = h + 'px';
		}
	};
	window.onresize();

};

function swap(a,b) {
	//a=document.getElementById(a);
	if(b){document.c=a.src; a.src=b;}
	else { a.src=document.c; }
}


var isIE=window.ActiveXObject?true:false;

function addFlash(path,w,h,id,alt)
{
	var code;
	if(flashver<8)
	{
		code=alt;
	} else
	{
		var p,pos;
		code=isIE?'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" width="'+w+'" height="'+h+'" id="'+id+'"><param name="movie" value="'+path+'" />':'<object type="application/x-shockwave-flash" data="'+path+'" width="'+w+'" height="'+h+'" id="'+id+'">';
		for(var x=arguments.length-1;x>4;x--)
		{
			p=arguments[x];
			pos=p.indexOf('=');
			code+='<param name="'+p.substr(0,pos)+'" value="'+p.substr(pos+1)+'" />';
		}
		code+=(alt?alt:'')+'</object>';
	}
	document.write(code);
}

function getFlashVer()
{
	var ver;
	if(isIE)
	{
		try
		{
			var fl=new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
			fl.AllowScriptAccess = 'always';
			ver=fl.GetVariable('$version');
			if(ver)
			{
				return ver.split(' ')[1].split(',')[0];
			}
		} catch(e)
		{
		}
	} else
	{
		x = navigator.plugins['Shockwave Flash'];
		if (x)
		{
			y = x.description;
			if (y)
			{
				var p=y.indexOf('.')-1;
				ver = y.charAt(p);
				if(parseInt(y.charAt(p-1)))
				{
					ver+=parseInt(y.charAt(p-1))*10;
				}
				return ver;
			}
		}
	}
	return 0;
}
var flashver = getFlashVer();

var WARN_CLASS = ['warn','none'];
var c1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
var c2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");

String.prototype.trim = function()
{
	return this.replace(/^\s+/,'').replace(/\s+$/,'');
};

function checkValue(obj,warn)
{
	var v=obj.value.trim();
	if( obj.id == 'mail')
	{
		chk=!c1.test(v) && c2.test(v) && v.length>6;
	} else
	{
		chk=v.length>0;
	}
	obj.className=WARN_CLASS[chk+0];
	if( warn && chk )
	{
		obj.onkeyup='';
		obj.onchange='checkValue(this)';
	} else if( !warn && !chk )
	{
		obj.onkeyup='checkValue(this,1)';
		obj.onchange='';
	}
	return chk;
}

function FormCheck(forma)
{
	if(!forma) { forma=0; }
	var f=document.forms[forma];
	var items=f.elements;
	var test=true,cnt=items.length,params='',AnD=false,i,t;
	for( var x=0; x<cnt; x++ )
	{
		t=(i=items[x]).type;
		if( i.id=='name' || i.id=='telephone' ||  i.id=='message'  )
		{
			if(!checkValue(i) && test)
			{
				i.focus();
				test=false;
			} else if(test)
			{
				params=params+(AnD?'&':'')+i.id+'='+i.value;
				AnD=true;
			}
		}
		else if (t=='hidden')
		{
			params=params+(AnD?'&':'')+i.id+'='+i.value;
			AnD=true;
		}
	}
	if(!test)
	{
		return false;
	}
	
}

function setAlpha(obj,val,vis)
{
	obj.style.opacity= val/100;
	obj.style.filter = 'alpha(opacity: '+val+')';
	if(vis===undefined || vis)
	{
		if(val===0)
		{
			obj.style.visibility='hidden';
		} else
		{
			obj.style.visibility='visible';
		}
	}
}

function setPos(e, obj)
{
	if(!e) { e = window.event; }
	if(!obj) { obj = e.srcElement?e.srcElement:e.target; }
	var _x=0,_y=0;
	if (e.pageX || e.pageY)
	{
		_y = e.pageY;
		_x = e.pageX;
	} else if (e.clientX || e.clientY)
	{
		_y = e.clientY + document.documentElement.scrollTop;
		_x = e.clientX + document.documentElement.scrollLeft;
	}
	obj.style.left=_x+'px';
	obj.style.top=(_y+20)+'px';
}

function fade(objId,step)
{
	var isIn=step>0;
	obj=document.getElementById(objId);
	if(!obj.style.marginTop) obj.style.marginTop = 0;
	if(isIn && (!obj.style.marginTop || parseInt(obj.style.marginTop)<0))
	{
		obj.style.marginTop='8px';
	}
	obj.style.marginTop = (parseInt(obj.style.marginTop)-2)+'px';
	if(obj.Timer)
	{
		clearTimeout(obj.Timer);
	}
	var val=(obj.style.opacity?obj.style.opacity*100:0)+step;
	if(val>80) { val=80; } else if(val<0) { val=0; }
	setAlpha(obj,val);
	if((isIn && val<80) || (!isIn && val>0))
	{
		obj.Timer = window.setTimeout('fade(\''+objId+'\','+step+')',50);
	}
}

function tooltip(e)
{
	if(!e) { e = window.event; }
	var ET=e.type,obj = e.srcElement?e.srcElement:e.target,src = obj,tagName=ET=='click'?'A':'DIV';
	while(obj.tagName!='TD')
	{
		obj=obj.parentNode;
	}
	for(var x=obj.childNodes.length-1;x>=0;x--)
	{
		if(obj.childNodes[x].tagName==tagName)
		{
			obj = obj.childNodes[x];
			break;
		}
	}
	if(ET=='click')
	{
		if(obj.href)
		{
			document.getElementById('swf_alexandrov').style.visibility='hidden';
			var imgID=obj.href.substring(obj.href.lastIndexOf('/')+1,obj.href.lastIndexOf('.'));
			gallery.showImage(imgID);
		}
	} else if(ET==='mouseover')
	{
		var doit = obj.innerText?true:false;
		if(!obj.id)
		{
			obj.id = 'T1p4e_'+(document.IDsTo=document.IDsTo?document.IDsTo+1:1);
			src.onclick = tooltip;
			if(doit)
			{
				src.onmouseout = src.onmousemove = tooltip;
			}
		}
		if(doit)
		{
			obj.Timer = window.setTimeout('fade(\''+obj.id+'\',30)',500);
		}
	} else if(ET==='mousemove')
	{
		setPos(e, obj);
	} else
	{
		if(obj.Timer)
		{
			clearTimeout(obj.Timer);
		}
		fade(obj.id,-40);
	}

	e.returnValue = false;
	if(e.preventDefault) e.preventDefault();
}

