
// modified by TNT to use HTTPS for Support links and include HBX tags
var newwindow = '';
var lastOpened = '';
var xmlhttp;
var alltel_cookie = 'alltelDevice';
var signedIn_cookie = 'dough';
var alltel_links = [];
alltel_links[0] = ['gnl_Ringtones', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=ringtones&categoryId=4065&lid=//global//entertainment+and+apps//ringtones'];
alltel_links[1] = ['gnl_RingtonesOverview', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=ringtones&categoryId=4065&lid=//global//entertainment+and+apps//ringtones'];
alltel_links[2] = ['gnl_LaunchMediaStore', null];
alltel_links[3] = ['gnl_FeaturesDownloads', 'https://support.vzw.com/alltel/features_downloads/index.html?lid=//global//entertainment+and+apps'];
alltel_links[4] = ['gnl_RingbackTones', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=ringbacks&categoryId=4064&lid=//global//entertainment+and+apps//ringback+tones'];
alltel_links[5] = ['gnl_RingbackTonesOverview', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=ringbacks&categoryId=4064&lid=//global//entertainment+and+apps//ringback+tones'];
alltel_links[6] = ['gnl_LaunchMediaStore', null];
alltel_links[7] = ['gnl_ManageRingbackTones', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=ringbacks&categoryId=4064&lid=//global//entertainment+and+apps//ringback+tones'];
alltel_links[8] = ['gnl_Music', 'https://support.vzw.com/alltel/features_downloads/music/index.html?lid=//global//entertainment+and+apps//music'];
alltel_links[9] = ['gnl_HowtogetMusic', 'https://support.vzw.com/alltel/features_downloads/music/index.html?lid=//global//entertainment+and+apps//music//how+to+get+music'];
alltel_links[10] = ['gnl_ViewallMusic', 'https://support.vzw.com/alltel/features_downloads/music/index.html?lid=//global//entertainment+and+apps//music//view+all'];
alltel_links[11] = ['gnl_LaunchMediaStore', null];
alltel_links[12] = ['gnl_FeaturedArtists', 'https://support.vzw.com/alltel/features_downloads/music/index.html'];
alltel_links[13] = ['gnl_WhatisVCAST', 'https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//music//what+is+vcast'];
alltel_links[14] = ['gnl_Games', 'https://support.vzw.com/alltel/features_downloads/games/index.html?lid=//global//entertainment+and+apps//games'];
alltel_links[15] = ['gnl_HowtogetGames', 'https://support.vzw.com/alltel/features_downloads/games/index.html'];
alltel_links[16] = ['gnl_ViewallGames', 'https://support.vzw.com/alltel/features_downloads/games/index.html'];
alltel_links[17] = ['gnl_Wallpapers', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=wallpapers&categoryId=4066&lid=//global//entertainment+and+apps//wallpapers'];
alltel_links[18] = ['gnl_WallpapersOverview', 'http://alltel.web.mcore.com/titlesByCategoryAndModel.action?contentType=wallpapers&categoryId=4066&lid=//global//entertainment+and+apps//wallpapers'];
alltel_links[19] = ['gnl_LaunchMediaStore', null];
alltel_links[20] = ['gnl_ViewallWallpapers', 'http://www.alltel.motricity.com/Alltel/HTML/category.jsp?category=image&lid=//global//entertainment+and+apps//wallpapers'];
alltel_links[21] = ['gnl_VideoonDemand', 'https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand'];
alltel_links[22] = ['gnl_HowtogetVideoonDemand', 'https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand//how+to+get'];
alltel_links[23] = ['gnl_ViewallVideoonDemand', 'https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand//view+all'];
alltel_links[24] = ['gnl_WhatisVCAST', 'https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand//what+is+vcast'];
alltel_links[25] = ['gnl_MobileTV', 'https://support.vzw.com/alltel/features_downloads/mobile_tv_radio/index.html?lid=//global//entertainment+and+apps//mobiletv'];
alltel_links[26] = ['gnl_ProgramGuide', 'https://support.vzw.com/alltel/features_downloads/mobile_tv_radio/index.html'];
alltel_links[27] = ['gnl_HowtogetMobileTV', 'https://support.vzw.com/alltel/features_downloads/mobile_tv_radio/index.html?lid=//global//entertainment+and+apps//mobiletv//how+to+get+mobile+tv'];
alltel_links[28] = ['gnl_WhatisVCAST', 'https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//mobiletv//what+is+vcast'];
alltel_links[29] = ['gnl_MobileWebDashboard', 'https://support.vzw.com/alltel/features_downloads/mobile_web/index.html?lid=//global//entertainment+and+apps//mobile+web+and+dashboard'];
alltel_links[30] = ['gnl_MobileWeb', 'https://support.vzw.com/alltel/features_downloads/mobile_web/index.html?lid=//global//entertainment+and+apps//mobile+web+and+dashboard//mobile+web'];
alltel_links[31] = ['gnl_Dashboard', 'https://support.vzw.com/alltel/features_downloads/mobile_web/index.html?lid=//global//entertainment+and+apps//mobile+web+and+dashboard//dashboard'];
alltel_links[32] = ['gnl_MapsLocationServices', 'https://support.vzw.com/alltel/features_downloads/maps_location_services/index.html?lid=//global//entertainment+and+apps//navigator'];
alltel_links[33] = ['gnl_VZNavigatorGPS', 'https://support.vzw.com/alltel/features_downloads/maps_location_services/index.html?lid=//global//entertainment+and+apps//navigator'];
alltel_links[34] = ['gnl_ChaperoneFamilyLocator', 'https://alltelfamilyfinder.com/finder-alltel-family/signIn.htm?lid=//global//entertainment+and+apps//family+locator'];
alltel_links[35] = ['gnl_ViewallGPSApps', 'https://support.vzw.com/alltel/features_downloads/maps_location_services/index.html'];
alltel_links[36] = ['gnl_ToolsApps', 'https://support.vzw.com/alltel/features_downloads/tools_applications/index.html'];
alltel_links[37] = ['gnl_ESPNMVP', 'https://support.vzw.com/alltel/features_downloads/tools_applications/index.html'];
alltel_links[38] = ['gnl_HowtogetApps', 'https://support.vzw.com/alltel/features_downloads/tools_applications/index.html'];
alltel_links[39] = ['gnl_ViewallToolsApps', 'https://support.vzw.com/alltel/features_downloads/tools_applications/index.html'];
alltel_links[40] = ['gnl_Messaging', 'https://support.vzw.com/alltel/messaging/index.html?lid=//global//messaging'];
alltel_links[41] = ['gnl_AnimatedMessaging', 'https://support.vzw.com/alltel/messaging/avatars.html?lid=//global//messaging//animated+messaging'];
alltel_links[42] = ['gnl_InternationalMessaging', 'https://support.vzw.com/alltel/messaging/text_international.html?lid=//global//messaging//text+messaging//international+messaging'];
alltel_links[43] = ['gnl_PictureVideoMessaging', 'http://www.alltelmypics.net/?lid=//global//messaging//picture+and+video+messaging'];
alltel_links[44] = ['gnl_SendaPictureVideoMessage', 'http://www.alltelmypics.net/?lid=//global//messaging//picture+and+video+messaging//send+a+picture/video+message'];
alltel_links[45] = ['gnl_HowtoPictureVideoMessage', 'http://www.alltelmypics.net/?lid=//global//messaging//picture+and+video+messaging//picture+and+video+messaging+help'];
alltel_links[46] = ['gnl_InternationalMessaging', 'https://support.vzw.com/alltel/messaging/text_international.html?lid=//global//messaging//picture+and+video+messaging//international+messaging'];
alltel_links[47] = ['gnl_ManageyourPhotoAlbums', 'http://www.alltelmypics.net/?lid=//global//messaging//picture+and+video+messaging//manage+your+photo+albums'];
alltel_links[48] = ['gnl_MobileIM', 'https://support.vzw.com/alltel/messaging/mobile_im.html?lid=//global//messaging//mobile+im'];
alltel_links[49] = ['gnl_MobileEmail', 'https://support.vzw.com/alltel/messaging/mobile_email.html?lid=//global//messaging//mobile+email'];
alltel_links[50] = ['gnl_TextPictureAlerts', 'http://www.mcore.com/info.alltel/welcome.htm?lid=//global//messaging//text+and+picture+alerts'];
alltel_links[51] = ['gnl_HowtogetAlerts', 'http://www.mcore.com/info.alltel/welcome.htm?lid=//global//messaging//text+and+picture+alerts//get+alerts'];
alltel_links[52] = ['gnl_ViewallAlerts', 'http://www.mcore.com/info.alltel/welcome.htm?lid=//global//messaging//text+and+picture+alerts//view+all+alerts'];
alltel_links[53] = ['gnl_MyContactsTESTONLY', 'http://www.alltel-backup.com'];

var signedin_links = [];
signedin_links[0] = ['gnl_SendaTextMessage','https://text.vzw.com/customer_site/secure/jsp/messaging_li.jsp?lid=//global//messaging//text+messaging//send+message'];
signedin_links[1] = ['gnl_HowtogetAlerts','https://support.vzw.com/faqs/Features%20and%20Optional%20Services/alerts_text_and_picture.html?lid=//global//messaging//text+and+picture+alerts//get+alerts'];
signedin_links[2] = ['gnl_Support','https://myaccount.verizonwireless.com/accessmanager/secure/controller?lid=//global//support&action=loginRedirect&redirect=%2Fvzw%2Fsecure%2Fclc%2FdisplayCLCPage.action'];
signedin_links[3] = ['gnl_PhonesDevices','https://support.vzw.com/clc/index.html?newphone=1&lid=//global//support//phones+and+devices'];
signedin_links[4] = ['gnl_Services','https://myaccount.verizonwireless.com/accessmanager/secure/controller?lid=//global//support//services&action=loginRedirect&redirect=%2Fvzw%2Fsecure%2Fclc%2FCLCServicesLanding.action?CLCServiceTab=current_services '];
signedin_links[5] = ['gnl_FAQs','https://support.vzw.com/clc/faqs/index.html?lid=//global//support//faqs'];
signedin_links[6] = ['gnl_Demos','https://support.vzw.com/clc/demos/?lid=//global//support//demos'];

var signedin_alltel_links = [];
signedin_alltel_links[0] = ['gnl_EntertainmentApps','https://support.vzw.com/alltel/features_downloads/index.html?lid=//global//entertainment+and+apps'];
signedin_alltel_links[1] = ['gnl_Music','https://support.vzw.com/alltel/features_downloads/music/index.html?lid=//global//entertainment+and+apps//music'];
signedin_alltel_links[2] = ['gnl_HowtogetMusic','https://support.vzw.com/alltel/features_downloads/music/index.html?lid=//global//entertainment+and+apps//music//how+to+get+music'];
signedin_alltel_links[3] = ['gnl_ViewallMusic','https://support.vzw.com/alltel/features_downloads/music/index.html?lid=//global//entertainment+and+apps//music//view+all'];
signedin_alltel_links[4] = ['gnl_WhatisVCAST','https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//music//what+is+vcast'];
signedin_alltel_links[5] = ['gnl_Games','https://support.vzw.com/alltel/features_downloads/games/index.html?lid=//global//entertainment+and+apps//games'];
signedin_alltel_links[6] = ['gnl_Apps','https://support.vzw.com/alltel/features_downloads/tools_applications/index.html?lid=//global//entertainment+and+apps//apps'];
signedin_alltel_links[7] = ['gnl_VideoonDemand','https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand'];
signedin_alltel_links[8] = ['gnl_HowtogetVideoonDemand','https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand//how+to+get'];
signedin_alltel_links[9] = ['gnl_ViewallVideoonDemand','https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand//view+all'];
signedin_alltel_links[10] = ['gnl_WhatisVCAST','https://support.vzw.com/alltel/features_downloads/v_cast/index.html?lid=//global//entertainment+and+apps//video+on+demand//what+is+vcast'];
signedin_alltel_links[11] = ['gnl_MobileTV','https://support.vzw.com/alltel/features_downloads/mobile_tv_radio/index.html?lid=//global//entertainment+and+apps//mobiletv'];
signedin_alltel_links[12] = ['gnl_HowtogetMobileTV','https://support.vzw.com/alltel/features_downloads/mobile_tv_radio/index.html?lid=//global//entertainment+and+apps//mobiletv//how+to+get+mobile+tv'];
signedin_alltel_links[13] = ['gnl_WhatisVCAST','https://support.vzw.com/alltel/features_downloads/mobile_tv_radio/index.html?lid=//global//entertainment+and+apps//mobiletv//what+is+vcast'];
signedin_alltel_links[14] = ['gnl_MobileWebDashboard','https://support.vzw.com/alltel/features_downloads/mobile_web/index.html?lid=//global//entertainment+and+apps//mobile+web+and+dashboard'];
signedin_alltel_links[15] = ['gnl_MobileWeb','https://support.vzw.com/alltel/features_downloads/mobile_web/index.html?lid=//global//entertainment+and+apps//mobile+web+and+dashboard//mobile+web'];
signedin_alltel_links[16] = ['gnl_Dashboard','https://support.vzw.com/alltel/features_downloads/mobile_web/index.html?lid=//global//entertainment+and+apps//mobile+web+and+dashboard//dashboard'];
signedin_alltel_links[17] = ['gnl_Navigator','https://support.vzw.com/alltel/features_downloads/maps_location_services/index.html?lid=//global//entertainment+and+apps//navigator'];
signedin_alltel_links[18] = ['gnl_Messaging','https://support.vzw.com/alltel/messaging/index.html?lid=//global//messaging'];
signedin_alltel_links[19] = ['gnl_AnimatedMessaging','https://support.vzw.com/alltel/messaging/avatars.html?lid=//global//messaging//animated+messaging'];
signedin_alltel_links[20] = ['gnl_InternationalMessaging','https://support.vzw.com/alltel/messaging/text_international.html?lid=//global//messaging//text+messaging//international+messaging'];
signedin_alltel_links[21] = ['gnl_InternationalMessaging','https://support.vzw.com/alltel/messaging/text_international.html?lid=//global//messaging//picture+and+video+messaging//international+messaging'];
signedin_alltel_links[22] = ['gnl_MobileIM','https://support.vzw.com/alltel/messaging/mobile_im.html?lid=//global//messaging//mobile+im'];
signedin_alltel_links[23] = ['gnl_MobileEmail','https://support.vzw.com/alltel/messaging/mobile_email.html?lid=//global//messaging//mobile+email'];

function popUp(strURL,strType,strHeight,strWidth) {
var strOptions="";
	if (strType=="flashPopup") strOptions="resizable,height="+strHeight+",width="+strWidth;
	if (strType=="popup") strOptions="scrollbars,resizable,height="+strHeight+",width="+strWidth;
	if (strType=="fullScreen") strOptions="scrollbars,location,directories,status,menubar,toolbar,resizable";
	
	 if (!newwindow || lastOpened != strURL) {   
	    newwindow = window.open(strURL, 'newWin', strOptions); 
	    lastOpened = strURL;
	 }
	 
	if (window.focus) {newwindow.focus()}
	return false;
	
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}
function switchToAlltel() {
    var nav = $('gn'),
    hrefs = nav.getElements('a');

    for (var j = 0, len = alltel_links.length; j < len; j++) {
        for (var k = 0, len2 = hrefs.length; k < len2; k++) {
            if (hrefs[k].getProperty('name') === alltel_links[j][0] && alltel_links[j][1] != null) {
                hrefs[k].href = alltel_links[j][1];
            }
        }
    }
}
function switchToAlltelSignedIn() {
    var nav = $('gn'),
    hrefs = nav.getElements('a');

    for (var j = 0, len = signedin_alltel_links.length; j < len; j++) {
        for (var k = 0, len2 = hrefs.length; k < len2; k++) {
            if (hrefs[k].getProperty('name') === signedin_alltel_links[j][0] && signedin_alltel_links[j][1] != null) {
                hrefs[k].href = signedin_alltel_links[j][1];
            }
        }
    }
}
function checkSignedIn() {
    var nav = $('gn'),
    hrefs = nav.getElements('a');

    for (var j = 0, len = signedin_links.length; j < len; j++) {
        for (var k = 0, len2 = hrefs.length; k < len2; k++) {
            if (hrefs[k].getProperty('name') === signedin_links[j][0] && signedin_links[j][1] != null) {
                hrefs[k].href = signedin_links[j][1];
            }
        }
    }
}





function state_Change() {
    if (xmlhttp.readyState == 4) {// 4 = "loaded"
        if (xmlhttp.status == 200) {// 200 = "OK"
            var xmlDoc = xmlhttp.responseXML;
            var hrefs = xmlDoc.getElementsByTagName('link');
            for (var j = 0; j < hrefs.length; j++) {
                var id = hrefs[j].getAttribute('id');
                var url = hrefs[j].getAttribute('alltelLink');
                var objA = document.getElementById(id).href;
                if (objA != null) {
                    objA.href = url;
                }
            }
        }
        else {
            // alert("Problem retrieving XML data:" + xmlhttp.statusText);
        }
    }
}

window.addEvent('load', function() {
    gn_init();
    if (getCookie(alltel_cookie) == true || getCookie(alltel_cookie) == 'true') {
        if (getCookie(signedIn_cookie) != "") {
            switchToAlltelSignedIn();
        } else {
            switchToAlltel();
        }
    } else if (getCookie(signedIn_cookie) != "") {
        checkSignedIn();
    };
});

function navInit() {
	gn_init();
}

// prepares the regular version of the global navigation with full functionality
function gn_init() {
	
	var gonogo=true;
	var use_ishim=false;
	var active_ishim=null;
	
	if (navigator.appVersion.indexOf("MSIE")!=-1){
	try
	{
		document.execCommand("BackgroundImageCache", false, true); 
	}
	catch(err)
	{
	}
	var temp=navigator.appVersion.split("MSIE")
	var version=parseFloat(temp[1])
		if (version<=5.9)
		{
			gonogo=false;
		}
		if (version>=6 && version<7)
		{
			use_ishim=true;
			$('gn').insertAdjacentHTML('beforeEnd', '<iframe src="'+gn_iframe+'" id="gn_ishim" frameborder="0" scrolling="0" style="position:absolute;top:0;left:0;width:0;height:0;display:none;z-index:498;filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></iframe>');
			var gn = $('gn');
			var lis = $ES('li',gn);
			lis.each(function(li) {
				var lnk = li.getFirst();
				lnk.style.height='1%';
			});
		}
	}
	
	function gn_ishim(show,d_2)
	{
		var ishim = $('gn_ishim');
		if(show==true && use_ishim==true)
		{	
			ishim.style.display = 'block';
			var d_2_pos = d_2.getCoordinates();
			ishim.style.width = d_2_pos.width;
			ishim.style.height = d_2_pos.height;
			ishim.style.top = d_2_pos.top;
			ishim.style.left = d_2_pos.left;
		}
		
		if (active_ishim==d_2 && show==false && use_ishim==true)
		{
			ishim.style.display = 'none';
		}
		active_ishim=d_2;
	}
	
	var userAgent = navigator.userAgent.toLowerCase();
	if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
		gonogo=false;
	}

	if (gonogo==true)
	{
		if (typeof gnCategory!='undefined')
		{
			var t = 0;
			var g = gnCategory*1;
			var headers = $$('#gn h2');
			headers.each(function(header) {
				if (g==t)
				{
					var a = $E('a',header);
					a.addClass('gn_selected');
				}
				t++;
			});
		}
		
		// Adds Ids to each nav link based on the text content
		var anchors = $$('#gn a');
		anchors.each(function(a) {			
			var re1 = new RegExp("<(.|\n)*?>", "g");
			var re2 = new RegExp("&amp;", "g");
			var re3 = new RegExp("[^a-z,A-Z]", "g");
			a.name = "gnl_" + a.innerHTML.replace(re1,"").replace(re2,"").replace(re3,"");
		});
		

		var headers = $$('#gn h2');
		headers.each(function(header) {
			
			var a_1 = $E('a',header);
			var d_2 = header.getNext();
			var u_2 = $E('ul',d_2);
			var l_2s = u_2.getChildren();
			var u_3s = $ES('ul',u_2);
			
			l_2s.each(function(l_2) {
				if (l_2.getNext()==null)
				{
					l_2.style.paddingBottom='10px';
				}
			});

			u_3s.each(function(u_3) {
				var l_3s=u_3.getChildren();
				l_3s.each(function(l_3) {
					if (l_3.getNext()==null)
					{
						l_3.style.marginBottom='10px';
					}
				});
			});

			if (header.className=='gn_right')
			{
				var gn_right=true;
				u_2.setStyle('float', 'right');
			}
			else
			{
				var gn_right=false;
			}

			d_2.setStyle('opacity',0);

			function d_2_show(a_1,d_2) {
				var a_1_pos = a_1.getCoordinates();
				var h = a_1_pos.height;
				var w = a_1_pos.width;
				var l = a_1_pos.left;
				var t = a_1_pos.top;

				var gn = $('gn');
				var d_2_cs = $ES('div.gn_dd',gn);
				d_2_cs.each(function(d_2_c) {
					if (d_2_c.style.zIndex='500')
					{
						var h_c = d_2_c.getPrevious();
						var a_1_c = $E('a',h_c);
						d_2_hide(a_1_c,d_2_c);
					}
				});

				d_2.setStyle('top', (t+h));
				if (gn_right==true)
				{
					d_2.setStyle('left', l+w-180);
				}
				else
				{
					d_2.setStyle('left', l);
				}
				d_2.setStyle('z-index', '500');
				a_1.addClass('gn_active');
				gn_ishim(true,d_2);
			}

			function d_2_hide(a_1,d_2) {
				d_2.setStyle('margin-left', '0');
				d_2.setStyle('width', '180px');
				d_2.setStyle('height', 'auto');
				d_2.setStyle('left', '-1000em');
				d_2.setStyle('z-index', '499');
				a_1.removeClass('gn_active');
				gn_ishim(false,d_2);
			}

			a_1.addEvents({	
				'focus': function() {
					d_2_show(a_1,d_2);
					d_2.setStyle('opacity',1);
				},
				
				'blur': function() {
					d_2_hide(a_1,d_2);
				},

				'keydown': function(event) {
					event = new Event(event);
					if (event.key=='down')
					{
						u_2.getFirst().getFirst().focus();
					}
					else if (event.key=='left' && header.getPrevious())
					{
						$E('a',header.getPrevious().getPrevious()).focus();
					}
					else if (event.key=='right' && header.getNext().getNext())
					{
						$E('a',header.getNext().getNext()).focus();
					}
				}
			});

			var reveal = new Fx.Styles(d_2, {
				duration: 300,
				transition: Fx.Transitions.Quad.easeIn,
				fps: 30
			});

			reveal.addEvent('onStart', function(){
				d_2_show(a_1,d_2);
			});
			
			var repeal = new Fx.Styles(d_2, {
				duration: 300,
				transition: Fx.Transitions.Quad.easeOut,
				fps: 30
			});
			
			repeal.addEvent('onStart', function(){
				d_2.setStyle('z-index', '499');
				a_1.removeClass('gn_active');
				gn_fo(a_1);
			});

			repeal.addEvent('onComplete', function(){
				d_2_hide(a_1,d_2);
			});

			a_1.addEvent('mouseenter', function(event){
				var rt = event.relatedTarget;
				while (rt && rt != d_2 && rt.nodeName != 'BODY')
				rt = rt.parentNode
				if (rt == d_2) return;
				
				repeal.stop();
				d_2.setStyle('opacity',0);
				reveal.start({
					'opacity': [0,1]
				});
			});

			a_1.addEvent('mouseleave', function(event){
				var rt = event.relatedTarget;
				while (rt && rt != d_2 && rt.nodeName != 'BODY')
				rt = rt.parentNode
				if (rt == d_2) return;
				
				reveal.stop();
				repeal.start({
					'opacity': [1,0]
				});
			});

			d_2.addEvent('mouseleave', function(event){
				var rt = event.relatedTarget;
				while (rt && rt != a_1 && rt.nodeName != 'BODY')
				rt = rt.parentNode
				if (rt == a_1) return;
				
				reveal.stop();
				repeal.start({
					'opacity': [1,0]
				});
			});

			l_2s.each(function(l_2) {
				
				var a_2 = l_2.getFirst();

				if (gn_right==true)
				{
					if (a_2.getNext()!=null)
					{	
						a_2.addClass('left_arrow');
					}
				}
				else
				{
					if (a_2.getNext()!=null)
					{
						a_2.addClass('right_arrow');
					}
					a_2.style.paddingLeft='10px';
				}

				var rollover = new Fx.Styles(a_2, {
					duration: 300,
					transition: Fx.Transitions.Quad.easeOut,
					fps: 30,
					wait: false
				});

				var rolloff = new Fx.Styles(a_2, {
					duration: 300,
					transition: Fx.Transitions.linear,
					fps: 30,
					wait: false
				});

				var gn_foto;

				a_2.addEvents({
					'mouseenter':  function() {
					gn_foto = gn_fo.delay(300,gn_fo,a_2);
						rollover.stop();
						rollover.start({
							'background-color': '#990000'
						});
					},

					'mouseleave': function(event) {
					$clear(gn_foto);
						if (!(a_2.hasClass('gn_out')))
						{
							rollover.stop();
							rolloff.start({
								'background-color': '#000'
							});
						}
					},

					'focus': function() {
						d_2_show(a_1,d_2);
						a_2.setStyle('background-color', '#990000');
						d_2.setStyle('opacity',1);
					},

					'blur': function() {
						d_2_hide(a_1,d_2);
						a_2.setStyle('background-color', '#000');
					},

					'keydown': function(event) {
						event = new Event(event);
						if (event.key=='up' && l_2.getPrevious())
						{
							l_2.getPrevious().getFirst().focus();
						}
						else if (event.key=='up' && !(l_2.getPrevious()))
						{
							a_1.focus();
						}
						else if (event.key=='down' && l_2.getNext())
						{
							l_2.getNext().getFirst().focus();
						}
						else if (event.key=='left' && header.getPrevious())
						{
							$E('a',header.getPrevious().getPrevious()).focus();
						}
						else if (event.key=='right' && header.getNext().getNext())
						{
							$E('a',header.getNext().getNext()).focus();
						}
					}
				});
			});

			function gn_fo(a_2) { 
				
				var u_2_h = u_2.getCoordinates().height;

				u_3s.each(function(u_3) {
					
					if (u_3.style.left=='auto' && u_3!=a_2.getNext())
					{
						var flyin = new Fx.Styles(u_3, {
							duration: 300,
							transition: Fx.Transitions.linear,
							fps: 30
						});

						flyin.addEvent('onStart', function(){
							u_3.getPrevious().removeClass('gn_out');
						});

						flyin.addEvent('onComplete', function(){
							u_3.setStyle('left', '-1000em');
							u_3.setStyle('height', 'auto');
							if (!(a_2.getNext()))
							{
								d_2.setStyle('margin-left', '0');
								d_2.setStyle('width', '180px');
								d_2.setStyle('height', 'auto');
								gn_ishim(true,d_2);
							}
						});

						var u_3_h = u_3.getCoordinates().height;

						if (gn_right==true)
						{
							flyin.start({
								'width': [180,0],
								'height': [u_3_h,0],
								'opacity': [1,0],
								'margin-left': [-180,0]
							})
						}
						else
						{
							flyin.start({
								'width': [180,0],
								'height': [u_3_h,0],
								'opacity': [1,0]
							})
						}
						
						var rollover = new Fx.Styles(u_3.getPrevious(), {
							duration: 300,
							transition: Fx.Transitions.linear,
							fps: 30,
							wait: false
						});

						rollover.start({
							'background-color': '#000'
						});
					}

					if (u_3==a_2.getNext() && u_3.style.left!='auto')
					{
						var u_3_h = u_3.getCoordinates().height;

						var flyout = new Fx.Styles(u_3, {
							duration: 300,
							transition: Fx.Transitions.linear,
							fps: 30
						});

						flyout.addEvent('onStart', function(){
							a_2.addClass('gn_out');
							u_3.setStyle('left', 'auto');
							d_2.setStyle('width', '360px');
							if (gn_right==true)
							{
								d_2.setStyle('margin-left', '-180px');
							}
							if (u_3_h>u_2_h)
							{
								d_2.setStyle('height', u_3_h+30);
							}
							else 
							{
								d_2.setStyle('height', 'auto');
								var d_2_h = d_2.getCoordinates().height;
								d_2.setStyle('height', d_2_h+30);
							}
							gn_ishim(true,d_2);
						});

						if (gn_right==true)
						{
							flyout.start({
								'width': [0,180],
								'height': [0,u_3_h],
								'opacity': [0,1],
								'margin-left': [0,-180]
							})
						}
						else
						{
							flyout.start({
								'width': [0,180],
								'height': [0,u_3_h],
								'opacity': [0,1]
							})
						}
					}
				})
			}
		});
	}
	else
	{
		if (typeof gnCategory!='undefined')
		{
			var t = 0;
			var g = gnCategory*1;
			var headers = $$('#gn h2');
			headers.each(function(header) {
				if (g==t)
				{
					var a = $E('a',header);
					a.addClass('gn_selected');
				}
				t++;
			});
		}

		var headers = $$('#gn h2');
		headers.each(function(header) {
			
			var a_1 = $E('a',header);
			var d_2 = header.getNext();
			var u_2 = $E('ul',d_2);
			var l_2s = u_2.getChildren();
			var u_3s = $ES('ul',u_2);
			
			l_2s.each(function(l_2) {
				if (l_2.getNext()==null)
				{
					l_2.style.paddingBottom='10px';
				}
			});

			u_3s.each(function(u_3) {
				var l_3s=u_3.getChildren();
				l_3s.each(function(l_3) {
					if (l_3.getNext()==null)
					{
						l_3.style.marginBottom='10px';
					}
				});
			});

			if (header.className=='gn_right')
			{
				var gn_right=true;
				u_2.setStyle('float', 'right');
			}
			else
			{
				var gn_right=false;
			}

			function d_2_show(a_1,d_2) {
				var a_1_pos = a_1.getCoordinates();
				var h = a_1_pos.height;
				var w = a_1_pos.width;
				var l = a_1_pos.left;
				var t = a_1_pos.top;

				var gn = $('gn');
				var d_2_cs = $ES('div.gn_dd',gn);
				d_2_cs.each(function(d_2_c) {
					if (d_2_c.style.zIndex='500')
					{
						var h_c = d_2_c.getPrevious();
						var a_1_c = $E('a',h_c);
						d_2_hide(a_1_c,d_2_c);
					}
				});

				d_2.setStyle('top', (t+h));
				if (gn_right==true)
				{
					d_2.setStyle('left', l+w-180);
				}
				else
				{
					d_2.setStyle('left', l);
				}
				d_2.setStyle('z-index', '500');
				a_1.addClass('gn_active');
				gn_ishim(true,d_2);
			}

			function d_2_hide(a_1,d_2) {
				d_2.setStyle('margin-left', '0');
				d_2.setStyle('width', '180px');
				d_2.setStyle('height', 'auto');
				d_2.setStyle('left', '-1000em');
				d_2.setStyle('z-index', '499');
				a_1.removeClass('gn_active');
				gn_ishim(false,d_2);
			}

			a_1.addEvents({	
				'focus': function() {
					d_2_show(a_1,d_2);
				},
				
				'blur': function() {
					d_2_hide(a_1,d_2);
				},

				'keydown': function(event) {
					event = new Event(event);
					if (event.key=='down')
					{
						u_2.getFirst().getFirst().focus();
					}
					else if (event.key=='left' && header.getPrevious())
					{
						$E('a',header.getPrevious().getPrevious()).focus();
					}
					else if (event.key=='right' && header.getNext().getNext())
					{
						$E('a',header.getNext().getNext()).focus();
					}
				}
			});

			a_1.addEvent('mouseenter', function(event){
				var rt = event.relatedTarget;
				while (rt && rt != d_2 && rt.nodeName != 'BODY')
				rt = rt.parentNode
				if (rt == d_2) return;
				d_2_show(a_1,d_2);
			});

			a_1.addEvent('mouseleave', function(event){
				var rt = event.relatedTarget;
				while (rt && rt != d_2 && rt.nodeName != 'BODY')
				rt = rt.parentNode
				if (rt == d_2) return;
				
				a_1.removeClass('gn_active');
				d_2_hide(a_1,d_2);
				gn_fo(a_1);
			});

			d_2.addEvent('mouseleave', function(event){
				var rt = event.relatedTarget;
				while (rt && rt != a_1 && rt.nodeName != 'BODY')
				rt = rt.parentNode
				if (rt == a_1) return;
				
				a_1.removeClass('gn_active');
				d_2_hide(a_1,d_2);
				gn_fo(a_1);
			});

			l_2s.each(function(l_2) {
				
				var a_2 = l_2.getFirst();

				if (gn_right==true)
				{
					if (a_2.getNext()!=null)
					{	
						a_2.addClass('left_arrow');
					}
				}
				else
				{
					if (a_2.getNext()!=null)
					{
						a_2.addClass('right_arrow');
					}
					a_2.style.paddingLeft='10px';
				}

				a_2.addEvents({
					'mouseenter':  function() {
						gn_fo(a_2);
						a_2.setStyle('background-color', '#990000');
					},

					'mouseleave': function() {
						gn_fo(a_2);
						a_2.setStyle('background-color', '#000');
					},

					'focus': function() {
						d_2_show(a_1,d_2);
						a_2.setStyle('background-color', '#990000');
					},

					'blur': function() {
						d_2_hide(a_1,d_2);
						a_2.setStyle('background-color', '#000');
					},

					'keydown': function(event) {
						event = new Event(event);
						if (event.key=='up' && l_2.getPrevious())
						{
							l_2.getPrevious().getFirst().focus();
						}
						else if (event.key=='up' && !(l_2.getPrevious()))
						{
							a_1.focus();
						}
						else if (event.key=='down' && l_2.getNext())
						{
							l_2.getNext().getFirst().focus();
						}
						else if (event.key=='left' && header.getPrevious())
						{
							$E('a',header.getPrevious().getPrevious()).focus();
						}
						else if (event.key=='right' && header.getNext().getNext())
						{
							$E('a',header.getNext().getNext()).focus();
						}
					}
				});
			});

			function gn_fo(a_2) { 
				var u_2_h = u_2.getCoordinates().height;

				u_3s.each(function(u_3) {
					
					if (u_3.style.left=='auto' && u_3!=a_2.getNext())
					{
						var u_3_h = u_3.getCoordinates().height;

						if (gn_right==true)
						{
							u_3.setStyle('margin-left', '-180px');
						}
						
						u_3.getPrevious().removeClass('gn_out');
						u_3.setStyle('left', '-1000em');
						u_3.setStyle('height', 'auto');
						if (!(a_2.getNext()))
						{
							d_2.setStyle('margin-left', '0');
							d_2.setStyle('width', '180px');
							d_2.setStyle('height', 'auto');
							gn_ishim(true,d_2);
						}
					}

					if (u_3==a_2.getNext() && u_3.style.left!='auto')
					{
						var u_3_h = u_3.getCoordinates().height;
						
						if (gn_right==true)
						{
							u_3.setStyle('margin-left', '-180px');
						}

						a_2.addClass('gn_out');
						u_3.setStyle('left', 'auto');
						u_3.setStyle('height', 'auto');
						u_3.setStyle('width', '180px');
						d_2.setStyle('width', '360px');
						if (gn_right==true)
						{
							d_2.setStyle('margin-left', '-180px');
						}
						if (u_3_h>u_2_h)
						{
							d_2.setStyle('height', u_3_h+30);
						}
						else 
						{
							d_2.setStyle('height', 'auto');
							var d_2_h = d_2.getCoordinates().height;
							d_2.setStyle('height', d_2_h+30);
						}
						gn_ishim(true,d_2);
					}
				})
			}
		});
	}
}
