var searchTimer;
var searchTerm = '';
var pause = false;

document.observe('dom:loaded', function(e) {
	//$('centre').observe('change',updateResults);
	//$('type').observe('change',updateResults);
	//updateResults();
	var cp = false;
	$('loginCPSubmit').observe('click', function(e) {
		e.stop();
		$('memberLogin').action = 'http://homeportal.toneleisure.co.uk/login';
		$('edUsername').name = 'username';
		$('edPassword').name = 'password';
		$('memberLogin').submit();
	});
	$('loginSubmit').observe('click', function(e) {
		e.stop();
		$('memberLogin').action = 'http://book.toneleisure.com/login.aspx';
		$('edUsername').name = 'edUsername';
		$('edPassword').name = 'edPassword';
		$('memberLogin').submit();
	});
	if(ticker) {
	    ticker = new String(ticker).evalJSON();
	    if(ticker.length > 0) {
	        newsTicker();
	    }
	}
	var i = 0;
	$$('#homeTop li').each(function(li) {
	    li.id = 'home_'+i;
	    if(i > 0) {
	        a = new Element('a',{'id':'homeImage_'+i,'href':li.down().href}).insert(
	            new Element('img',{'src':images[i]})
	        );
	        a.addClassName('homeImage');
	        a.hide();
	        $('homeImage_0').insert({'before':a});
	    }
	    li.down().observe('mouseover', function(e) {
	        e.element().fire('my:hover');
	    });
	    li.down().observe('my:hover', function(e) {
	        $$('#homeTop li.selected').each(function(x) {
	            x.removeClassName('selected');
	            $('homeImage_'+x.identify().replace('home_','')*1).hide();
	        });
	        el = e.findElement('li');
	        el.addClassName('selected');
	        a = e.findElement('a');
	        $('homeImage_'+el.identify().replace('home_','')*1).show();
	    });
	    i++;
	});
	
	$('homeTop').observe('mouseover', function(e) {
	    pause = true;
	});
	
	$('homeTop').observe('mouseout', function(e) {
	    pause = false;
	});
	
	new PeriodicalExecuter(function(pe) {
	    if (pause) return;
	    id = $$('#homeTop li.selected')[0].identify();
	    id = id.split('_')[1]*1;
	    id++;
	    if (id == 4) id = 0;
	    $('home_'+id).down().fire('my:hover');
	}, 5);
	
	$('searchTerm').observe('keyup', handleTerm);
	$('searchTerm').observe('blur', handleTerm);
	
	$$('#searchCats li').each(function(li) {
	    li.observe('click', function(e) {
            $$('#searchCats li.selected').each(function(x) {
                x.removeClassName('selected');
            });
            e.element().addClassName('selected');
            loadSearch();
	    });
	});
	
	loadSearch();
});

var handleTerm = function(e) {
    if($('searchTerm').getValue() == searchTerm) return;
    if(searchTimer) {
        searchTimer.stop();
    }
    searchTimer = new PeriodicalExecuter(loadSearch, 0.5);
}

var loadSearch = function(pe) {
    if(pe) pe.stop();
    type = $$('#searchCats li.selected')[0].identify().replace('search_','');
    $('searchResults').update(
        new Element('div',{'class':'loading'}).update('Loading...')
    );
    searchTerm = $('searchTerm').getValue();
    new Ajax.Request(SITE_URL+'_json/Page/homeSearch',{
        'method': 'get',
        'parameters': {
            'type': type,
            'term': searchTerm
        },
        'onSuccess': function(r) {
            ul = new Element('ul');
            j = r.responseJSON;
            if(j.length == 0) {
                ul = new Element('div',{'class':'noResults'}).update('There were no results for that query');
            } else {
                for(i=0,l=j.length;i<l;i++) {
                    ul.insert(
                        new Element('li').update(
                            new Element('a',{'href': j[i].link}).update(
                                j[i].text
                            ).insert(
                                j[i].subtext == '' ? '' : new Element('span').update(j[i].subtext)
                            )
                        )
                    );
                }
            }
            $('searchResults').update(ul);
        }
    });
}

var updateResults = function(e) {
	$('results').update('');
	if($('centre').getValue()*1 > 0 && $('type').getValue() != '') {
		$('viewer').action = '/'+$('type').getValue()+'/view/';
		$('results').options[0] = new Option('Loading...','');
		var url = '/_json/ACF/get-list';
		new Ajax.Request(url,{
			method: 'get',
			parameters: {'centre': $('centre').getValue(),
					'type': $('type').getValue()},
			onSuccess: function(t) {
				res = t.responseJSON;
				for(i=0,len=res.length;i<len;i++) {
					op = new Option(res[i].title,res[i].id);
					$('results').options[i] = op;
				}
			}
		});
	} else {
		$('results').options[0] = new Option('?','');
	}
}

var ctr = 0;
var ntCtr = -1;
var ntCtrx = 0;
var ticker = null;

var newsTicker = function(pe) {
	b = $('ticker');
	if(ntCtr < 0) {
		if(ticker[ctr].link == '') {
			b.replace(new Element('div',{'id': 'ticker'}).update('&nbsp;'));
		} else {
			b.replace(new Element('a',{'id': 'ticker'}).update('&nbsp;'));
			b = $('ticker');
			b.href = ticker[ctr].link;
		}
		ntCtr++;
		if(pe) pe.stop();
		new PeriodicalExecuter(newsTicker, 0.03);
	}
    // next character of current item
    if (ntCtr < ticker[ctr].text.length) {
		if(ntCtrx == 0) {
			ntCtr++;
			ntCtrx++;
			curr = ticker[ctr].text.substring(0,ntCtr) + '-';
		} else {
			ntCtrx = 0;
			curr = ticker[ctr].text.substring(0,ntCtr) + '_';
		}
		b.update(curr);
		return;
    }
	b.update(ticker[ctr].text);
	// new item
    ntCtr = -1;
    if (ctr < ticker.length-1) {
        ctr++;
    } else {
        ctr = 0;
    }
    if(pe) pe.stop();
    if(ticker.length > 1) {
        new PeriodicalExecuter(newsTicker, 5);
    }
}

