
var homeFlash;
var notifyFx;
var widgetsObj;
var enableWidgetDrag = false;

new elReady('.nav1', function(){
	var nav = $$('.nav1')[0];
	var items = nav.getElements('li a.top')
	var ul = nav.getElement('ul');
	var h = ul.getStyle('height');
	var num = 1;
	
	while(ul.getStyle('height') == h){
		num += 0.1;
		items.each(function(el,i){
			el.setStyles({
				'padding-left': num+'em',
				'padding-right': num+'em'
			});
		});
	}
	num -= 0.1;
	items.each(function(el,i){
		el.setStyles({
			'padding-left': num+'em',
			'padding-right': num+'em'
		});
	});
	nav.setStyle('visibility', '');
});

var navSliders = [];

rePosPostcode = function(){
	var postcode = $('postcodePopup');
	if (postcode) {
		//get height of sortDiv to anchor postcode popup
		var sortDiv = $$('div.sortBar')[0];
		var sortHeight = sortDiv.getCoordinates().top;
		//
		xOffSet = (window.getSize().x/2) + 200;
		yOffSet = sortHeight - 130;
		postcode.setStyles({
			"left": xOffSet,
			"top": yOffSet
		});
	}
}

doFormEvents = function(){
	$('pcSubmit').addEvent('click', function(){
		var newValue = $('pckeyword').get('value');
		if(newValue != "" || newValue == null){
			//add value to core form
			$('postcode').set('value', newValue);
			//remove lightbox layer
			sortOverlay.hide();
			$('postcodePopup').destroy();
			$$('div.sortBar')[0].getElement('select').form.submit();
		}
	});
}

window.addEvent('resize', function(){
	rePosPostcode();
});

window.addEvent('domready', function(){
	
	//postcode overlay for events results/sort
	var sortDiv = $$('div.sortBar')[0];
	if(sortDiv){
		//create overlay object
		sortOverlay = new overlay({
			_onClick: function(){
				//remove lightbox layer
				this.hide();
				sortDiv.getElement('select').form.reset();
				$('postcodePopup').destroy();
			}
		});
		sortDiv.getElement('select').addEvent('change', function(){
			//if 'Distance' is selected
			if(this.get('value') == 'Distance'){
				//show overlay
				sortOverlay.show();
				//inject new popup markup
				new Element('div', {id: 'postcodePopup',
				html: '<h2 class="navHeaderStyle">Please enter your postcode</h2><ol class="eventSearch"><li><input name="keyword" id="pckeyword" class="txtInput" type="text" value="" /></li><li class="frmAction"><input name="pcSubmit" id="pcSubmit" type="image" src="/_common/img/btn-searchgo.gif" alt="go" /></li></ol>'}).inject(document.body);
				doFormEvents();
				rePosPostcode();
			}
		});
		var btnEditPostcode = $('btnEditPostcode');		
		if (btnEditPostcode) {
		    btnEditPostcode.addEvent('click', function() {
		        sortOverlay.show();
				    //inject new popup markup
				    new Element('div', {id: 'postcodePopup',
				    html: '<h2 class="navHeaderStyle">Please enter your postcode</h2><ol class="eventSearch"><li><input name="keyword" id="pckeyword" class="txtInput" type="text" value="' + $('postcode').value + '" /></li><li class="frmAction"><input name="pcSubmit" id="pcSubmit" type="image" src="/_common/img/btn-searchgo.gif" alt="go" /></li></ol>'}).inject(document.body);
				    doFormEvents();
				    rePosPostcode();
		    });
	    }
		//
		//rePosPostcode();
	}
	// END postcode overlay
	
	/*
	var navOpen = false;
	navSliders.each(function(el){
		if(el.open){
			navOpen = true;
		}
	});
	if(!navOpen && navSliders.length > 0){
		navSliders[0].show();
		var item = navSliders[0].ID;
		
		navSliders[0].status = "open";
	}
	*/
	
	//add tree to browse topics
	if($$( '.filterResults' )[0]){
		//var thisTree = new tree($$( '.filterResults.').getElement(''));
		$$('.filterResults .navTree').each(function(el){
			new tree(el);
		});
	}
	
	//show nav
    //Show the nav again after JS has done it's thing
	setTimeout(function(){
		var nav = $('nav2');
		nav.setStyles({"visibility" : "visible"});
		//focus is rerquired to fix the bullets list display issue.
		nav.focus();
	}, 100);
	
	


	//widgets custom stuff
	if($$('.widget')[0] && enableWidgetDrag){
		//initWidgets();
		widgetsObj = new widgets('div.widget', 'div.container', {handle: 'h2', url: '/Pages/widgetupdatehandler.aspx'});
		//initWidgetButtons();
		$$('div.widget').each(function(el,i){
			initWidgetButtons(el);
		});
	}

	
	//var txtResize = new textResizeDetector();
	var txtResize = new uTRD();
	
	new bgResizer('.tabs li a', {resizer: txtResize});
	
	var tabs = $$('.tabs li a').addClass('proEn');
	
	if($$('.customise')[0]){
		
		if($$('.ctab .options')[0]){
			$$('.ctab .options')[0].setStyle('display', 'block')
			var mySettingsWindow = $$('.mysettingsWindow')[0];
			//console.log(mySettingsWindow);
			
			if (mySettingsWindow) {
				mySettingsWindow.setStyle('overflow', 'hidden');
				var cTab = new Fx.Slide($$('.ctab .options')[0], {duration: 500, transition: Fx.Transitions.Sine.easeOut}).hide();
				setTimeout(function(){
					var notify = new Element('div', {'class':'notify', 'html':'<p>The widget has been added.</p>'}).inject($$('.ctab .options')[0], 'top');
					notifyFx = new Fx.Tween(notify, {unit: 'em', link:'cancel'});
					notifyFx.set('height', 0);
				}, 10);
			}
		}
		
		var a = $$('.ctab .arrow a')[0]
		if(a){a.destroy();}
		$$('.ctab .arrow').addEvent('click', function(e){
			cTab.toggle().chain(function(){
				$$('.ctab .arrow').toggleClass('arrowUp');
				//console.log(mySettingsWindow.getCoordinates());
				resetSettingsWindow();			
			});
		});
		
		
		if($$('.ctab .arrowanon')[0]){
		    var mycontent = "<div class='myaccount'><div class='transBox white'><div class='top'><div class='tl'></div><div class='t'></div><div class='tr'></div></div><div class='ml'><div class='mr'><div class='content'><div class='mysettingsWindow'>";
		    mycontent = mycontent + $$('.options_anon')[0].get('html');
		    mycontent = mycontent + "</div></div></div></div><div class='bottom'><div class='bl'></div><div class='b'></div><div class='br'></div></div></div></div>";
		    
		    var mySettingsWindow = new Element('div', {html:mycontent, 'class':'myaccount options', styles:{display:'block'}}).inject($$('.ctab .arrowanon')[0], 'before');
			
			if (mySettingsWindow) {
			    mySettingsWindow.setStyle('overflow', 'hidden');
			    var cTab = new Fx.Slide($$('.ctab .myaccount')[0], {duration: 500, transition: Fx.Transitions.Sine.easeOut}).hide();
		    }
		}
		
		
		var b = $$('.ctab .arrowanon a')[0]
		if(b){b.destroy();}
		$$('.ctab .arrowanon').addEvent('click', function(e){
			cTab.toggle().chain(function(){
				$$('.ctab .arrowanon').toggleClass('arrowUp');			
			});
		});
		
		$$('.customise').setStyle('display', 'block');
	}
	
	
	if($('home')){
		tabs.addEvents({
			'mouseover': setBorder,
			'mouseout': resetBorder
		}, this);
	}
	
	//caption images
	$$('img.caption').each(function(el,i){
		var alt = el.get('alt');
		if(alt != ''){
			new Element('span', {
				'class': 'caption',
				'text': alt
			}).inject(el, 'after');
		}
	});
	
	//video
	/*var video = $('videoPlayer');
	if(video){
		new Swiff('/_common/swf/player.swf', {
			id: 'video',
			container: 'videoPlayer',
			version: 8,
			width: '100%',
			height: '100%',
			params: {
				wMode: 'opaque'
			}
		});
	}*/
	

	// custom flash text	
	new flashText('.feature h2', {font: '/_common/swf/strapline.swf', resizer: txtResize});
	new flashText('.strap', {font: '/_common/swf/title.swf', resizer: txtResize});
	new flashText('.sub-strap', {font: '/_common/swf/subtitle.swf', resizer: txtResize});
	/*
	if($$('.feature').length > 0){
		new flashText('.customise p.welcome', {font: '/_common/swf/welcome.swf', resizer: txtResize});
	}else{
		new flashText('.customise p.welcome', {font: '/_common/swf/welcome.swf', resizer: txtResize});
	}
	*/
	if($$('.feature h2')[0]){
		$$('.feature h2')[0].setStyle('visibility', '');
	}
	$$('.topNav p').setStyle('visibility', '');
	
	
	if($('select-all')){
		$('select-all').addEvent('click', function(e){
			var check = false;
			if(this.checked){check = true;}
			$$('input.chkDoc').set('checked', check);
		});
	}


    var stars = $$('.how-useful');
        if(stars){
                $$('.starDesc, .how-useful ul').setStyle('display', 'block');
                var items = $$('.how-useful ul li');
                items.each(function(el,i){
                        el.addEvent('click', function(e){
                                stars.getElement('.rating').set('value', i+1);
                                items.getElement('img').set('src', '/_common/img/icn-star-rollover-blank.gif');
                                for(var j=0; j<=i; j++){
                                        items[j].getElement('img').set('src', '/_common/img/icn-star-rollover-filled.gif');
                                }
                        });
                });
        }
        
    //doc lib
	var trees = $$('.formBlock ul.tree, .my-events ul.tree, .my-search ul.tree, .topicpicker ul.tree');
	if(trees[0]){
		trees.each(function(el){
			//var chkd = [];
			el.getElements('li').each(function(e){
				if(e.getChildren('ul')[0]){
					new Element('span',{'class':'trigger'}).inject(e, 'top');
				}
				//if(e.getElement('input').get('checked')){
				//	chkd.push(e.getParent());
				//}
			});
			
			var filterTags = new tree(el, {trigger: 'span.trigger'});
			/*chkd.each(function(e){
				filterTags.toggle(e);
			});*/
		});
	}
	

		var myTips = new Tips($$('.toolTip'), {offsets: {'x': 15, 'y': -55}});
		
		
	
	

});

var fixSettingsWindowHeight = false;

function resetSettingsWindow(){
	//console.log('reset');
	var mySettingsWindow = $$('.mysettingsWindow')[0];
	//var h = mySettingsWindow.getCoordinates().height;
	var th = mySettingsWindow.getElement('table').getCoordinates().height;
	//console.log(fixSettingsWindowHeight);
	if(!fixSettingsWindowHeight){
		mySettingsWindow.setStyles({
			height: th
		});
	}else{
		fixSettingsWindowHeight = false;
	}
	if(th == 0){
		resetSettingsWindow.delay(500)
	}
}

function initWidgets(){
	new widgets('.widget', '.container', {handle: 'h2', url: '/Pages/widgetupdatehandler.aspx'});
}


var totalLoading = 0;

function SingleClick(itemid) {
	totalLoading ++;
	var status = $(itemid).getParent().getPrevious();
	new Element('img', {'src': '/_common/img/ajax-loader.gif'}).inject(status);
	$(itemid).setStyles({'opacity': 0.5, 'cursor': 'default'}).removeEvents('click');
    var widgetRequest = new Request.JSON({url: "/pages/HomepageSettingsHandler.aspx", onSuccess: function(widget){
        //var el = new Element('div').setProperty('html', widget.addWidget).inject('right', 'top');
        var el = new Element('div').setProperty('html', widget.addWidget);
        var newEl = el.getElement('div.widget').inject('right', 'top');
        el.destroy();
        
        //initWidgets();
        widgetsObj.add(newEl);
        //newEl.dispose();
        //setTimeout(function(){
        //newEl.inject('right', 'top');
        initWidgetButtons(newEl);
		//}, 500);
		reinjectWidgets($('left'));
		reinjectWidgets($('right'));
        //notifyFx.start('height', 3.5)//.chain((function(){notifyFx.start('height', 0);}).delay(2000));
        //setTimeout(function(){notifyFx.start('height', 0);}, 3000);
       // 
        status.getElement('img').set('src', '/_common/img/icn_tick.gif');
        setTimeout(function(){totalLoading --; reloadWidgetList();}, 1000);
    }}).get({'cmd':'addWidget', 'id':itemid});
}

function initWidgetButtons(widget){
	//$$('div.widget div.widgetControls li input').each(function(el,i){
	widget.getElements('div.widgetControls li input').each(function(el,i){
		//console.log(el.getParent().get('class'));
		
		//el.set('onClick', 'return false;');
		/*
		if(el.getParent().get('class') == 'editWidget'){
			el.addEvent('click', function(e){
				var itemid = $(el.get('id').replace('idEditButton', 'widgetInstanceID')).get('value');
				new Event(e).stop();
				//console.log(itemid);
				document.location = '?cmd=editWidget&id='+itemid;
			});
		}
		*/
		if(el.getParent().get('class') == 'deleteWidget'){
			el.removeEvents('click');
			el.addEvent('click', function(e){
				var itemid = $(el.get('id').replace('idDeleteButton', 'widgetInstanceID')).get('value');
				//console.log(itemid);
				new Event(e).stop();
				deleteWidget(itemid, el.getParent('div.widget'));
			});
		}
	});
}


function reloadWidgetList(){
	if(totalLoading == 0){
		fixSettingsWindowHeight = true;
		settingsRequest.get({'cmd': 'getWidgets'});
	}
}


function reinjectWidgets(container){
	var ch = container.getChildren().dispose();
		ch.inject(container);
	//container.getChildren().inject(container);
}


function deleteWidget(itemid, el){
	//console.log('deleting');
	//console.log(widgetsObj.widgets);
	widgetsObj.widgets.each(function(e, i){
		if(e){
			if(e.getElement('input').get('value') == el.getElement('input').get('value')){
				widgetsObj.remove(i);
			}
		}
	});
	//console.log(widgetsObj.widgets);
	el.destroy();
	reinjectWidgets($('left'));
	reinjectWidgets($('right'));
	
	var widgetUpdateRequest = new Request.JSON({url: "/pages/HomepageSettingsHandler.aspx", onSuccess: function(widget){
        settingsRequest.get({'cmd': 'getWidgets'});
    }}).get({'cmd':'deleteWidget', 'id':itemid});
}

function equalise(){
	var left = $('left');
	var right = $('right');
	
	var lHeight = left.getCoordinates().height;
	var rHeight = right.getCoordinates().height;
	if(lHeight < rHeight){
		left.setStyle('height', rHeight);
	}else{
		right.setStyle('height', lHeight);
	}
}

function clearEqualise(){
	var left = $('left');
	var right = $('right');
	left.setStyle('height', 'auto');
	right.setStyle('height', 'auto');
}

function resetBorder(e){
	Swiff.remote(homeFlash.toElement(), 'showSlide', 0); 
}

function setBorder(e){
	if(this.hasClass('starting')){
		Swiff.remote(homeFlash.toElement(), 'showSlide', 1); 
	}
	if(this.hasClass('managing')){
		Swiff.remote(homeFlash.toElement(), 'showSlide', 2); 
	}
	if(this.hasClass('growing')){
		Swiff.remote(homeFlash.toElement(), 'showSlide', 3); 
	}
}


function clearText(e)
{
	$(e).value = '';
}

function LinkTrk(link) {
	s.events='event4';
	alert('event4');
}

// nav functions //
function createNav(id, open, treeId){
	
	var item = $(id);
	
	var thisSlider = new Fx.Slide( item.getElement('.sliderWrap'), { duration: 300, onComplete: function(){
		//alert("done");
		thisSlider.wrapper.setStyles({
			'height': 'auto',
			'float':'left'
		});
	}});
	
	if (id != 'browseTopics')
	    navSliders.push(thisSlider);
		
			if(open){
				thisSlider.show();
				//firstItem = false;
				item.getElement('.toggleMe').setStyle('background-image', 'url("/_common/img/newnav/arrowUp.gif")');
				if(item.getElement('.blue')){
					item.getElement('.blue').setStyle('background-image', 'url("/_common/img/newnav/arrowUpBlue.gif")');
				}
				thisSlider.status = "open";
			}else{
				thisSlider.hide();
				thisSlider.status = "closed";
			}
			item.getElement('.content').addEvent('click', function(){
				thisSlider.toggle();
				if(thisSlider.status == "closed"){
					this.getElement('.toggleMe').setStyle('background-image', 'url("/_common/img/newnav/arrowUp.gif")');
					if(item.getElement('.blue')){
						this.getElement('.blue').setStyle('background-image', 'url("/_common/img/newnav/arrowUpBlue.gif")');
					}
					thisSlider.status = "open";
				}else if(thisSlider.status == "open"){
					this.getElement('.toggleMe').setStyle('background-image', 'url("/_common/img/newnav/arrowDown.gif")');
					if(item.getElement('.blue')){
						this.getElement('.blue').setStyle('background-image', 'url("/_common/img/newnav/arrowDownBlue.gif")')
					}
					thisSlider.status = "closed";
				}
			});
			//add tree
			var thisTree = new tree(item.getElement('.navTree'), {open:treeId});
			thisSlider.fireEvent('complete');
		
}