
	Event.observe(window, 'load', function(){
		if ($('company-frame')) {
			var cards = $('company-frame').childElements();
			if (cards.size() > 4) {
				var frameHeight = 0;
				cards.each(function(el, index){if (index > 4) {el.hide();}});
				new PeriodicalExecuter(function() {
					var el = $('company-frame');
					var topCompany = el.firstDescendant();
					new Effect.SlideUp(topCompany, {afterFinish: function(){
						topCompany = topCompany.remove();
						Element.insert(el,topCompany);
						var elements = el.childElements();
						new Effect.Appear(elements[4], {afterFinish: function(){
							var e = elements[4];
							e.setStyle({height: 'auto'});
						}});
					}});
				}, 4);
			}
		}
	});
	
	document.observe("dom:loaded", function() {
		if ($('form_search')) {
			Event.observe('form_search', 'submit', function() {
				$('form_search').action = $('form_search').action + '/search/' + encodeURIComponent($('q').value);
				return true;
			});
		}
	});
	
	Event.observe(window, 'load', function() {
		if ($('org-list')) {
			//google.load("maps", "2");
			$$('#org-list a.show-in-map').each(function(el, index){
				Event.observe(el, 'mouseover', function(event) {
					var e = event.element().parentNode;
					var org_id = event.element().readAttribute('id').substring(5);
					var mode = event.element().readAttribute('id').substring(0,4);
					console.log(mode);
					
					while (e.tagName != 'DIV') {
						e = e.parentNode;
					}
					var i = 1;
					while (i < 3) {
						e = e.previousSibling;
						if ((typeof(e) != undefined) && (e.tagName == 'DIV')) {
							i++;
						}
					}
					
					var pos = $(e).positionedOffset(); 
					var mapframe = new Element('div', {id: 'gmap-frame'}).setStyle({top: pos.top+'px', left:pos.left+e.getWidth()+'px'});
					Element.insert('org-list', mapframe);
					
					var url = '/directory/position/';
					url = mode == 'orgn' ? url + 'organization/' : url + 'company/';
					url = url + org_id;
					new Ajax.Request(url, {
						method: 'get',
						evalJSON: true,
						onSuccess: function(transport){
							var lat = transport.responseJSON.lat;
							var lng = transport.responseJSON.lng;
							
							if (el.readAttribute('href') == '#' && lat != 0 && lng != 0) {
								el.writeAttribute('href', 'http://maps.google.com/maps?f=q&hl=ru&geocode=&ie=UTF8&ll='+lat+','+lng+'&z=13');
							}
							
							var map = new GMap2($("gmap-frame"));
							var point = new GLatLng(lat, lng)
							map.setCenter(point, 11);
							map.addOverlay(new GMarker(point));
						}
					});
					
				})
				Event.observe(el, 'mouseout', function(event) {
					$('gmap-frame').remove();
				})
			})
		}
	});
