window.addEvent('domready',function(){
function modal(h){/*{{{*/
	var window = $(document.html).getSize();
	var modalbg = new Element('div',{
		'id': 'modalbg',
		'styles': {
			'width': window.x,
			'height': window.y
		}
	}).inject(document.body);
	var width = (window.x-200>300)?(window.x-200<600?window.x-200:600):300;
	var left = (window.x-width)/2>10?(window.x-width)/2:10;
	var frame = new Element('div',{
		'id': 'modal',	
		'styles': {
			'width':  width,
			'left': left,
			'max-height': window.y - 200
		}
	}).inject(document.body);
	var mclose = new Element('div',{
		'id': 'modalclose',
		'events': {
			'click': function(){
				frame.dispose();
				modal.dispose();
			}
		}
	}).inject(frame);
	var content = new Element('div',{ 'html': h }).inject(frame);
}/*}}}*/
	function Opt(id,val,name) {
		this.id = id||'';
		this.val = val||'';
		this.name = name||'';
	}
	var search = $('searchForm');
	var ddTimer = new Array();
	var ddTween = new Array();
function addListEl(p) {/*{{{*/
	var s = new Element('div',{
		'id': p.el.id+(p.el2||'')+'Item_'+p.id,
		'class': 'search_suggest',
		'title': p.name,
		'html': p.val,
		'events': {
			'mouseenter': function() {
				this.addClass('over');
			},
			'mouseleave': function() {
				this.removeClass('over');
			},
			'click': function() {
				p.el.value = this.get('html');
				dd.removeClass('over');
				window.location.href = '/'+p.el.value;
			}
		}
	}).inject(p.list);
	return s;
}/*}}}*/
function addDropDown(item,el,clist){/*{{{*/
	clist.empty();
	var els = new Array();
	item.each(function(l){/*{{{*/
		var name = l.name||'';
		var id = l.id||'';
		var val = l.val||'';
		els[els.length] = new Opt(id,val,name);
		addListEl({'el':el,'id':id,'val':val,'name':name,'list':clist});
	});/*}}}*/
	return els;
}/*}}}*/
/*{{{ create searchable dropdown list*/
function createDropDown(el) {
	/* create dropdown list */
	el.setProperty('autocomplete','off');
	var wrap = new Element('div',{'style':'position:relative;'}).inject(el,'before').adopt(el);

	var clist = new Element('div', {
		'id': el.id+'List',
		'class': 'selectList'
	}).inject(el,'after');
	clist.setStyle('width',el.getSize().x-2);
	return clist;
}/*}}}*/
	if ($chk(search)){/*{{{*/
		var ts = $('townSearch');
		var dd = createDropDown(ts); 
		var els = new Array();
		search.getChildren('select').each(function(el){
			el.removeEvents();
			el.addEvent('change',function(){
				window.location.href=el.value;
			});
		});
		search.removeEvents();
		search.addEvent('submit',function(e){
			e = new Event(e).stop();
			window.location.href='/'+$('townSearch').value;
		});
		dd.addEvents({
			'mouseenter': function() {
				ts.removeEvents('blur');
			},
			'mouseleave': function() {
				ts.addEvent('blur',function(){tsblur();});
			}
		});
		var tsblur = function(){

			dd.removeClass('over');
			if (ts.value === '') { ts.value = ts.defaultValue; }
		};
		var filterList = function(){
			var test = ts.value.toLowerCase();
			var count = 0;
			els.each(function(item){
				if (item.name.toLowerCase().indexOf(test)===0||item.val.toLowerCase().indexOf(test)===0) {
					count++;
					$(ts.id+'Item_'+item.id).removeClass('hide');
				} else {
					$(ts.id+'Item_'+item.id).addClass('hide');
				}
			});
			if (count === 0) { dd.removeClass('over'); }
			else { dd.addClass('over'); }
		};
		ts.addEvents({
			'focus': function() {
				if (this.value == this.defaultValue) { this.value = ''; }
				if (dd.getChildren('div').length>0) { dd.addClass('over'); }
			},
			'blur': function() { tsblur(); },
			'keyup': function() {
				if (els.length>0 && ts.value.length>3) {
					filterList();
				} else if (ts.value.length==4) {	
					var json = new Request.JSON({
						'url': '/aj/'+ts.id+'/',
						'method': 'post',
						'data': {'townSearch':ts.value},
						'link':'ignore',
						'onSuccess': function(t){
							if ($defined(t.dropdown)) {
								dd.addClass('over');
								els = addDropDown(t.dropdown,ts,dd);
								filterList();
							}
							else {
								els = '';
								dd.removeClass('over');
								dd.empty();
							}
						},
						'onFailure': function(){

						}
					}).send();
				} else {
					els = '';
					dd.removeClass('over');
					dd.empty();
				}
			}
		});
	}/*}}}*/
/*{{{ i18n popup - deprecated */
	if ($defined($('i18n'))) {
	var i18n = $('i18n').getElement('a');
	i18n.removeEvents();
	i18n.addEvent('click',function(e){/*{{{*/
		e = new Event(e).stop();
		var request = new Request({
			'url': '/settings/?aj=y',
			'onSuccess': function(txt){
				modal(txt);
			},
			'onFailure': function(){
				document.href='/settings/';
			}
		}).send();
	});/*}}}*/
	}/*}}}*/
	$$('#sideMenu dt').each(function(dt){/*{{{*/
		dt.removeEvents();
		dt.addEvents({
			'click': function() {
				var dtparent = dt.getParent('ul');
				if (!$chk(dtparent)) { dtparent = dt.getParent('div'); }
				ddNext = dt.getNext('dd');
				dtparent.getElements('dd').each(function(dd){
					if (dd != ddNext) { dd.removeClass('open'); }
				});
				ddNext.toggleClass('open');
			}
		});
	});/*}}}*/
	$$('#topMenu dt.topMenu').each(function(dt){/*{{{*/
		var dd = dt.getNext('dd');
		var menu = dt.id.split('-')[0];
		ddTween[dd.id] = new Fx.Morph(dd,{'link':'cancel'});
		dt.removeEvents();
		dd.removeEvents();
		dt.addEvents({
			'mouseenter': function() {
				if ($defined(ddTimer[dd.id])) {
					$clear(ddTimer[dd.id]);
				}
				ddTween[dd.id].start('.topMenuOpen');
				var sc = new Fx.Scroll(dd).toTop();
			},
			'mouseleave': function() {
				ddTimer[dd.id] = function(){
					ddTween[dd.id].start('.topMenuHide');
				}.delay(100);
			}
		});
		dd.addEvents({
			'mouseenter': function() {
				$clear(ddTimer[dd.id]);
			},
			'mouseleave': function() {
				ddTimer[dd.id] = function() {
					ddTween[dd.id].start('.topMenuHide');
				}.delay(100);
			}
		});
	});/*}}}*/

	/**
		* force external links open in popup
		*/
	$$('a[href^=http://]').each(function(el){/*{{{*/
		el.removeEvents();
		el.addEvent('click', function(e){
			e = new Event(e).stop();
			window.open(el.get('href'));
		});
	});/*}}}*/
	$$('a[href$=weather/]').each(function(el){/*{{{*/
		el.removeEvents();
		el.addEvent('click', function(e){
			e = new Event(e).stop();
			window.open(el.get('href'));
		});
	});/*}}}*/
	$$('a[href$=website/]').each(function(el){/*{{{*/
		el.removeEvents();
		el.addEvent('click', function(e){
			e = new Event(e).stop();
			window.open(el.get('href'));
		});
	});/*}}}*/
	$$('a[href$=open/]').each(function(el){/*{{{*/
		el.removeEvents();
		el.addEvent('click', function(e){
			e = new Event(e).stop();
			window.open(el.get('href'));
		});
	});/*}}}*/
	$$('a[href$=.pdf]').each(function(el){/*{{{*/
		el.removeEvents();
		el.addEvent('click', function(e){
			e = new Event(e).stop();
			window.open(el.get('href'));
		});
	});/*}}}*/
});
