var NationHomepage = {
	Panels: {
	},
	
	Reload: function(){
		window.location.reload();
	},
	
	EnhancePage: function(servicearea) {
		NationHomepage.service = servicearea;
		NationHomepage.Add.EditYourHomePage();
		NationHomepage.Add.FeedRollover();
		NationHomepage.TVRadio.SetEvents();
		NationHomepage.Localise.SetEvents();

		NationHomepage.Userfeedback.LoadPanels();
	},

	EnhanceCymruPage: function() {
		NationHomepage.service = 'cymru';
		NationHomepage.Add.EditYourHomePage(); 
		NationHomepage.Add.FeedRollover();
		NationHomepage.Localise.SetEvents();
		NationHomepage.Userfeedback.LoadPanels();
	},
		
	Add: {
		EditYourHomePage: function(){
			glow.dom.get('#blq-content').prepend(glow.dom.get('#hpEditYourHomePage').remove().addClass('nodisplay'));
			glow.dom.get('#setloc').removeAttr('href');
			glow.dom.get('#setloc').attr({ href: 'http://www.bbc.co.uk/whereilive/yourarea/' });/*Re-determin href here otherwise hover style is removed and doesn't show on IE6.*/

			glow.dom.get('#blq-content').prepend(glow.dom.get('#hpSethome').remove().addClass('nodisplay'));


			if(glow.env.gecko){
				glow.dom.get("#hpSethomeFF").show();
				glow.dom.get("#hpSethomeOther").hide();
			}


			glow.events.addListener( '#setloc', 'click', function(){
					glow.dom.get("#hpSethome").addClass("nodisplay");
					glow.dom.get("#hpEditYourHomePage").toggleClass("nodisplay");
					return false;
				}
			);
			
			glow.events.addListener( '#sethomepage', 'click', function(e){
					glow.dom.get("#hpEditYourHomePage").addClass("nodisplay");
					if(glow.env.ie){
						this.style.behavior="url(#default#homepage)";
						this.setHomePage(document.location);
					}
					else{
						glow.dom.get("#hpSethome").toggleClass("nodisplay");
					}
					
					return false;
				}
			);

			glow.events.addListener('#cancel', 'click', function(){
					glow.dom.get('#hpEditYourHomePage').addClass('nodisplay');
				}
			);

			glow.events.addListener('#editLink', 'click', function(){
					NationHomepage.Userfeedback.ShowPanel('resetlocation');
					return false;
				}
			);			
			

		},
		
		Panel: function(id, oPanel){
			if (NationHomepage.service == '/cymru'){
				oPanel.header[0].previousSibling.title = 'cau';
			}
			NationHomepage.Panels[id] = oPanel;
		},
		
		FeedRollover: function(){
			glow.dom.get('.switcher li.one').addClass('focus');
			glow.dom.get('.switcher .csshover').removeClass('csshover'); /*remove CSS rollover as JS will control*/
			var feedLinks = glow.dom.get('.switcher li a');
			feedLinks.each(
				function(i){
					glow.events.addListener(
						feedLinks[i],
						'mouseover',
						function(e){
							glow.dom.get(this).parent().parent().get('.focus').removeClass('focus');
							glow.dom.get(this).parent().addClass('focus');
						}
					);
				}
			);

			/*Stop rollover of image changing to last image.  If rolling over imagContainer div then do not bubble event up to <a> */
			var imgLinks = glow.dom.get('.switcher li a div');
			imgLinks.each(
				function(i){
					glow.events.addListener(
						imgLinks[i],
						'mouseover',
						function(e){
							e.stopPropagation();
						}
					);
				}
			);
		}
	},
	
	TVRadio: {
		SetEvents: function(){
			var channelLink = glow.dom.get('.radioPanel li h3 a');
			channelLink.each(
				function(i){glow.events.addListener(
						channelLink[i],
						'click',
						function(e){
							glow.dom.get(this).parent().parent().parent().get('.focus').removeClass('focus');
							glow.dom.get(this).parent().parent().addClass('focus'); 
							return false;
						}
					);
				}
								
			);
		}
	},
	
	Localise: {
		SetEvents: function(){
			glow.events.addListener(
				'#saveChanges',
				'click',
				function(){NationHomepage.Localise.MakeRequest(glow.dom.get('#postcode').val());}
			);							
		},
		
		MakeRequest: function(loc){
			//glow.net.get("testdata/postcoder/newport2.xml", {
			glow.net.get("/cgi-perl/whereilive/query/place.pl?loc="+ loc +"&customer=postcoder", {
				onLoad: function(response){
					var numResults = {length:0};
					
					if (response.text().match(/<result>/g)){
						numResults = response.text().match(/<result>/g);
					}

					NationHomepage.Localise.Response = response.xml();

					switch(numResults.length){
						case 0: //No results
							if (!glow.dom.get('#multiplelocation').hasClass('nodisplay')){
								glow.dom.get('#multiplelocation').addClass('nodisplay');
							}
							glow.dom.get('#nolocation').removeClass('nodisplay');
							break;

						case 1: //1 result found.  Insert result text into panel
							glow.dom.get('#selectedlocation').text(response.xml().getElementsByTagName('result')[0].getElementsByTagName('name')[0].firstChild.data +', ' + response.xml().getElementsByTagName('result')[0].getElementsByTagName('hint')[0].firstChild.data);
							NationHomepage.Userfeedback.ShowPanel('confirmlocation');
							break;

						default: //more than 1 found
							glow.dom.get('#multireslist').children().remove();								
							for (var i=0; i<response.xml().getElementsByTagName('result').length; i++){					
								var multilink = glow.dom.create('<li id="'+ response.xml().getElementsByTagName('result')[i].getElementsByTagName('id')[0].firstChild.data +'"><a href="/">' + response.xml().getElementsByTagName('result')[i].getElementsByTagName('name')[0].firstChild.data + ', ' + response.xml().getElementsByTagName('result')[i].getElementsByTagName('hint')[0].firstChild.data +'</a></li>');
								glow.events.addListener(
									multilink,
									'click',
									function(){
										NationHomepage.Localise.MakeRequest(this.id);
										return false;
									}
								);
								glow.dom.get('#multireslist').append(multilink);
							}

							if (!glow.dom.get('#nolocation').hasClass('nodisplay')){
								glow.dom.get('#nolocation').addClass('nodisplay');
							}

							glow.dom.get('#multiplelocation').removeClass('nodisplay');
					}
										

				},
				onError: function(response){

				}
			});
			
		}
									
	},
	
	Userfeedback: {
		LoadPanels:	function(){

			/*glow.net.get(NationHomepage.service + '/ssi/panels.sssi',*/
			glow.net.get('ssi/panels.sssi', 
			{
				onLoad: function(response){

					NationHomepage.Panels.status = response.statusText();
					glow.dom.get('#blq-container').append(glow.dom.create(response.text()));

					glow.events.addListener (
						'#confirmlocationyes',
						'click',
						function(){
							NationHomepage.Cookie.Build(NationHomepage.Localise.Response);
							NationHomepage.Userfeedback.HidePanel('confirmlocation');
							window.location.reload();
						}
					);

					glow.events.addListener (
						'#confirmlocationno',
						'click',
						function(){
							NationHomepage.Userfeedback.HidePanel('confirmlocation');
							return false;
						}
					);

					glow.events.addListener (
						'#resetlocationyes',
						'click',
						function(){
							document.cookie = 'BBCpostcoder=;expires=Thu, 01-Jan-1970 00:00:01 GMT;path="/";domain="bbc.co.uk"';
							NationHomepage.Userfeedback.HidePanel('resetlocation');
							window.location.reload();
							return false;
						}
					);

					glow.events.addListener (
						'#resetlocationno',
						'click',
						function(){
							NationHomepage.Userfeedback.HidePanel('resetlocation');
							return false;
						}
					);										

					var opts={
						width: 350,
						autoPosition: true,
						theme: "light",
						x: (glow.dom.get("#header").offset().left - 36) + "px",
						y: (glow.dom.get("#header").offset().top + 20) + "px"		
					}

					NationHomepage.Add.Panel('confirmlocation', new glow.widgets.Panel('#confirmlocation',opts));
					NationHomepage.Add.Panel('resetlocation', new glow.widgets.Panel('#resetlocation',opts));

				},
				onError: function(response){

					NationHomepage.Panels.status = response.statusText();
				}
			});
		},
		
		ShowPanel: function(panelId){
			if (NationHomepage.Panels[panelId]){
				NationHomepage.Panels[panelId].show();

			}
		},
		
		HidePanel: function(panelId){
			if (NationHomepage.Panels[panelId]){
				NationHomepage.Panels[panelId].hide();
			}
		}
	},
	
	Cookie: {
	
		PCLookup: [
						{ CookieVal: 'PST', Lookup:['result', 'postcode'] },
						{ CookieVal: 'QRY', Lookup:['result','name']},
						{ CookieVal: 'LEA', Lookup:['lea','id'] },
						{ CookieVal: 'TVR', Lookup:['bbctv','id'] },
						{ CookieVal: 'WEA', Lookup:['weather','id'] },
						{ CookieVal: 'CCI', Lookup:['county_council','id'] },
						{ CookieVal: 'CON', Lookup:['constituency','id'] },
						{ CookieVal: 'CTY', Lookup:['county','id'] },
						{ CookieVal: 'DST', Lookup:['result','district'] },
						{ CookieVal: 'EUR', Lookup:['euro_region','id'] },
						{ CookieVal: 'LAU', Lookup:['local_authority','id'] },
						{ CookieVal: 'LST', Lookup:['listings','id'] },
						{ CookieVal: 'NHS', Lookup:['health_authority','id'] },
						{ CookieVal: 'TWN', Lookup:['post_town','id'] },
						{ CookieVal: 'RAD', Lookup:['radio','id'] },
						{ CookieVal: 'WRD', Lookup:['ward','id'] },
					/*	{ CookieVal: 'TIM', Lookup:' id' },*/
						{ CookieVal: 'WIL', Lookup:['wil','id'] },
						{ CookieVal: 'MAT', Lookup:['result','match_type'] }
					],
		
		Build: function(oXml){
				var myCookie = 'BBCpostcoder=';				
				var date = new Date();
				date.setTime(date.getTime()+(100*24*60*60*1000));
				var properties = "; expires="+date.toGMTString();
				properties += '; domain=bbc.co.uk; path=/';
				
				for (i in NationHomepage.Cookie.PCLookup){
					myCookie += NationHomepage.Cookie.PCLookup[i].CookieVal +oXml.getElementsByTagName(NationHomepage.Cookie.PCLookup[i].Lookup[0])[0].getElementsByTagName(NationHomepage.Cookie.PCLookup[i].Lookup[1])[0].firstChild.data +':';
						}
				document.cookie = myCookie + properties;
		}
	}
	


};	
	
function aodpopup(URL){
window.open(URL,'aod','width=693,height=525,toolbar=no,personalbar=no,location=no,directories=no,statusbar=no,menubar=no,status=no,resizable=yes,left=60,screenX=60,top=100,screenY=100');
}


function m(_msg){
	if(glow.env.opera)opera.postError("---------------->>>" + _msg);
}
