// Global variable holding object
var nxVars = new Object();

// global vars declared here
nxVars.cookieVal = new Array(); // global cookie values
nxVars.openWins = new Array();  // pop-up tracker
nxVars.nxPopUpDef = new Array(); // pop-up definitions record
nxVars.localNavBase = "";


// promo variables
nxVars.promos = new Object();

nxVars.promos.promoTimer;
nxVars.promos.promoID;
nxVars.promos.currentPromo = "none";
nxVars.promos.promoHeight;
nxVars.promos.subNum = 0;
nxVars.promos.subContent;
nxVars.promos.midOpen = false;  // tracks whether a promo is opening
nxVars.promos.spids = new Array();

var nxErrLog = new Array(); // error logging records


/* Start Pop-up functions */
nxVars.nxPopUpDef["planDetails"] = new Array("/global/popups/plan_details.php","scrollbars,height=500,width=605,top=0,left=0");
nxVars.nxPopUpDef["updateCartQuantities"] = new Array("/global/popups/updatecartquantities.php","scrollbars,height=300,width=385,top=0,left=0");
nxVars.nxPopUpDef["phoneSelector"] = new Array("/en/support/phoneSelector.shtml","scrollbars,height=270,width=390,top=0,left=0");
nxVars.nxPopUpDef["phoneSelectorStore"] = new Array("/dynamic/accessories/phone_selector_store_popup.php","scrollbars,height=345,width=390,top=0,left=0");
nxVars.nxPopUpDef["tableBuilder"]  = new Array("/assets/tools/table_builder.html","scrollbars,resizeable,height=500,width=450,top=0,left=0");
nxVars.nxPopUpDef["tableBuilderFull"]  = new Array("/assets/tools/table_builder_full.html","scrollbars,resizeable,height=750,width=850,top=0,left=0");
nxVars.nxPopUpDef["printCart"] = new Array("/NASApp/onlinestore/Action/PrintCart","scrollbars,menubar,resizeable,height=750,width=850,top=0,left=0");
nxVars.nxPopUpDef["printReceipt"] = new Array("/NASApp/onlinestore/checkout/orderReceipt?isPrintableView=true","scrollbars,menubar,resizeable,height=750,width=850,top=0,left=0");
nxVars.nxPopUpDef["generic3"] = new Array("/global/popups/popups_generic.php","scrollbars,height=500,width=605,top=0,left=0");
nxVars.nxPopUpDef["generic2"] = new Array("/global/popups/popups_generic.php","scrollbars,height=500,width=410,top=0,left=0");
nxVars.nxPopUpDef["generic1"] = new Array("/global/popups/popups_generic.php","scrollbars,height=500,width=215,top=0,left=0");
nxVars.nxPopUpDef["genericShort"] = new Array("/global/popups/popups_generic.php","height=215,width=410,top=0,left=0");
nxVars.nxPopUpDef["accPhonePopUp"] = new Array("/NASApp/onlinestore/Action/OSBrowseAccessoriesPhonePopup","scrollbars,height=255,width=405,top=0,left=0");
nxVars.nxPopUpDef["findImeiPopup"] = new Array("/en/support/imei_popup.shtml","scrollbars,height=500,width=410,top=0,left=0");
nxVars.nxPopUpDef["findSimPopup"] = new Array("/en/support/sim_popup.shtml","scrollbars,height=500,width=410,top=0,left=0");
nxVars.nxPopUpDef["findImeiSimPopup"] = new Array("/en/support/mynextel/sim_popup.shtml","scrollbars,height=500,width=410,top=0,left=0");
nxVars.nxPopUpDef["fullWin"] = new Array("/global/popups/popups_generic.php","scrollbars,height=500,width=800,top=0,left=0,toolbar,resizable,menubar,location");
nxVars.nxPopUpDef["flashDemo"] = new Array("/global/popups/popups_generic.php","height=500,width=800,top=0,left=0");
nxVars.nxPopUpDef["cancelOrderPromo"] = new Array("/dynamic/cancel_order_popup.php","height=420,width=618,top=0,left=0");
nxVars.nxPopUpDef["mmsDemo"] = new Array("global/popups/popups_generic.php","height=354,width=530,top=0,left=0");
nxVars.nxPopUpDef["webDemo"] = new Array("global/popups/popups_generic.php","height=325,width=735,top=0,left=0");
nxVars.nxPopUpDef["nextmailDemo"] = new Array("global/popups/popups_generic.php","height=450,width=475,top=0,left=0");
nxVars.nxPopUpDef["walkietalkieDemo"] = new Array("global/popups/popups_generic.php","height=400,width=755,top=0,left=0");
nxVars.nxPopUpDef["cancelOrderSurvey"] = new Array("/dynamic/cancel_order_popup.php","height=600,width=500,top=0,left=0");
nxVars.nxPopUpDef["widen"] = new Array("global/popups/popups_generic.php","height=600,width=500,top=0,left=0");
nxVars.nxPopUpDef["comparePhones"] = new Array("/dynamic/phones/compare.html","height=640,width=780,top=0,left=0,menubar,resizable");
nxVars.nxPopUpDef["comparePhonesPrint"] = new Array("/dynamic/phones/compare_print.html","height=500,width=560,top=0,left=0,menubar,scrollbars,resizable");
nxVars.nxPopUpDef["zipCode"] = new Array("/global/popups/zip_code_change.php","height=250,width=300,top=0,left=0,");
nxVars.nxPopUpDef["keySurvey"] = new Array("/global/popups/popups_generic.php","scrollbars,height=500,width=800,top=0,left=0");
nxVars.nxPopUpDef["i860Demo"] = new Array("/global/popups/popups_generic.php","height=400,width=466,top=0,left=0");
nxVars.nxPopUpDef["billingDemo"] = new Array("/global/popups/popups_generic.php","height=375,width=625,top=0,left=0");
nxVars.nxPopUpDef["myNextelDemo"] = new Array("/global/popups/popups_generic.php","height=560,width=740,top=0,left=0");
nxVars.nxPopUpDef["npiPopUp"] = new Array("/global/popups/popups_generic.php","height=300,width=410,top=0,left=0");
nxVars.nxPopUpDef["mobile2mobile"] = new Array("/global/popups/popups_generic.php","height=630,width=630,top=0,left=0,scrollbars,resizable");
nxVars.nxPopUpDef["pcmilerDemo"] = new Array("/global/popups/popups_generic.php","height=403,width=703,top=0,left=0");
nxVars.nxPopUpDef["ff500"] = new Array("/en/support/faqs/subscriber_activity_summary.html","height=360,width=660,top=0,left=0,scrollbars,resizable");
nxVars.nxPopUpDef["ff7003"] = new Array("/en/support/faqs/ff_activity_summary.html","height=400,width=800,top=0,left=0,scrollbars,resizable");
nxVars.nxPopUpDef["flagged"] = new Array("/en/support/faqs/flagged_call.html","height=360,width=675,top=0,left=0,scrollbars,resizable");
nxVars.nxPopUpDef["usageGreater"] = new Array("/en/support/faqs/shared_usage_greater.html","height=275,width=700,top=0,left=0,scrollbars,resizable");
nxVars.nxPopUpDef["usageLess"] = new Array("/en/support/faqs/shared_usage_less_or_equal.html","height=275,width=700,top=0,left=0,scrollbars,resizable");
nxVars.nxPopUpDef["ringtonesDemo"] = new Array("/global/popups/popups_generic.php","height=612,width=810,top=0,left=0");
nxVars.nxPopUpDef["productDemo"] = new Array("/global/popups/popups_generic.php","height=400,width=475,top=0,left=0");
nxVars.nxPopUpDef["NascarDemo"] = new Array("/global/popups/popups_generic.php","height=531,width=781,top=0,left=0");
nxVars.nxPopUpDef["intava"] = new Array("/global/popups/popups_generic.php","height=525,width=500,menubar=no,locationbar=no,toolbar=no,resizable=no,status=no,scrollbars=auto,top=0,left=0");



function nxPopup(name,url,overWrite){
	var cnt = 0;
	var exists = true;
	var loc;
	var nm = "nx"+name+cnt;
	if(typeof overWrite == "undefined"){
		while(typeof nxVars.openWins[nm] == "object"){
			cnt++;
			nm = "nx"+name+cnt;
		}
	}
	else{
		nm = "nx"+name;
		if(typeof nxVars.openWins[nm] != "undefined"){
			nxVars.openWins[nm].onunload = function(){}
		}
	}
	if((typeof url != "undefined")&&(url.length >0)){
		loc = url
	}
	else{
		loc = nxVars.nxPopUpDef[name][0]
	}
	nxVars.openWins[nm] = window.open(loc,nm,nxVars.nxPopUpDef[name][1]);
	setTimeout("nxSetPopUnload('"+nm+"')",1000);
}

function nxSetPopUnload(name){
	var popLoc = false;
	try{
		popLoc = nxVars.openWins[name].location.href
	}
	catch(e){}
	if(popLoc){
		if(nxVars.openWins[name].document.body){
			if(isIE){
				eval('nxVars.openWins["'+name+'"].document.body.onunload = function(){try{window.parent.nxRemPopup("'+name+'");}catch(e){}}');
			}
			else{
				eval('nxVars.openWins["'+name+'"].onunload = function(){try{window.parent.nxRemPopup("'+name+'");}catch(e){}}');
			}
		}
		else{
			setTimeout("nxSetPopUnload('"+name+"')",1000);
		}
	}
}

function nxRemPopup(name){
	if(typeof nxVars.openWins[name] == "object"){
		delete nxVars.openWins[name];
	}	
}

function NewWindow(url){
	nxPopup('fullWin',url);
}

/* End Pop-up Functions */


// used for changing phone selection boxes in static pages
function phoneSelectorSwap(_obj,imgID,imageArray,changeImage){
	var sInd = _obj.selectedIndex;
	var sOpt = _obj.options[sInd].value;
	if(changeImage == true){
	   swap(imgID,imageArray[sInd].src);
	}
}



/* Start Global Promo Functions */

// functions to operate the expanding promos on pages
// Promos expand vertically to display text
// Subpromos type out the text.
// Subpromos always run after the promos are done and can be combined... open then type out
//
// DO NOT USE HTML IN SUB-PROMOS
// sub-promos should be empty <div></div> or <span></span> tags, any content within the tag will be removed




// holds content for sub-Promos
// each sub-promo has 2 parts
// 1: the id of the element it should appear in
// 2: the content of the sub-promo
// example:
// spids[0] = new Array('subPromo3','Prices Below reflect your custom aisle discounts');
//
// remember to clear/change nxVars.promos.spids on pages in which you are opening multiple promos
// or the sub-promos will type out numerous times
// "types out" the subPromo, should never have to explicitly call this function
// define nxVars.promos.spids to create sub-promos
function nxShowSubPromos(count){
		if(nxVars.promos.subNum < nxVars.promos.spids.length){
			if (count <= nxVars.promos.spids[subNum][1].length){
				setInnerHTML(nxVars.promos.spids[subNum][0],nxVars.promos.spids[subNum][1].substr(0,count));
				count +=1;
				setTimeout("nxShowSubPromos("+count+")",200);				
			}
			else{
				nxVars.promos.subNum++;
				setTimeout("nxShowSubPromos(1)",200);				
			}
		}
		else{
			nxVars.promos.midOpen=false;
			nxVars.promos.subNum = 0;
		}
	}


// expands the current promo
// called from open Promo, do not call explicitly		
function nxGrowPromo(ht){
	if(nxVars.promos.promoID != "none"){
		var htAll = getHeight(nxVars.promos.promoID+'Promo')+2;
		if (htAll <= ht){
			setHeight(nxVars.promos.promoID+'Promo',htAll);
		}
		else{
			clearInterval(nxVars.promos.promoTimer);
			nxVars.promos.currentPromo = nxVars.promos.promoID;
			if((nxVars.promos.spids)&&(nxVars.promos.spids.length >0)){
				setTimeout("nxShowSubPromos(1)",200);
			}
			else{
				nxVars.promos.midOpen = false;
			}
		}
	}
	else{
		clearInterval(nxVars.promos.promoTimer);
		nxVars.promos.currentPromo = nxVars.promos.promoID;
		midOpen = false;
	}
}
	
// hides the current promo
// called from open Promo, do not call explicitly		
function nxHidePromo(ht){
	if(nxVars.promos.currentPromo != "none"){			
		if(getHeight(nxVars.promos.currentPromo+'Promo')>1){
			setHeight(nxVars.promos.currentPromo+'Promo',getHeight(nxVars.promos.currentPromo+'Promo')-1);
		}
		else{
			clearInterval(nxVars.promos.promoTimer);
			setDisplay(nxVars.promos.currentPromo+'Promo',"none");
			nxVars.promos.promoTimer = setInterval("nxGrowPromo("+ht+")",50);	
		}
	}
	else{
		clearInterval(nxVars.promos.promoTimer);
		nxVars.promos.promoTimer = setInterval("nxGrowPromo("+ht+")",50);	
	}
}


// Function used to control promos.  This is the only function you should call explicitly;
// The HTML structure for promos should have 2 <div>
// the outer <div> should have an ID that ends in Promo
// the inner <div> should have an ID that ends with PromoContent and starts with the same as the beginning of the outer <div>
// example:  <div id="myIDPromo"><div id="myIDPromoContent"></div></div>
// pid for the example would be myID
// to only run the defined sub-promos, call openPromo(null);
//
// only 1 promo can be opened at a time, 2 simultaneous calls to this function will result in errors
// to run 2 promos back to back, set a timeout long enough to open the first promo (3 seconds or so)
// then run the second promo
function openPromo(pid){
	if(!debugMode){setWidth('globalPromo','100%');}
	if(pid == nxVars.promos.currentPromo){
		return
	}
	if(nxVars.promos.midOpen == true){
		clearInterval(nxVars.promos.promoTimer);
		if(nxVars.promos.currentPromo != "none"){
			setDisplay(nxVars.promos.currentPromo+'Promo',"none");
		}
		nxVars.promos.currentPromo = nxVars.promos.promoID;
	}
	window.scroll(0,0);
	nxVars.promos.promoID = pid;
	if(nxVars.promos.promoID != "none"){
		setDisplay(nxVars.promos.promoID+'Promo','block');
		setHeight(nxVars.promos.promoID+'Promo',1);
		nxVars.promos.promoHeight = getHeight(nxVars.promos.promoID+'PromoContent');
	}
	else{
		nxVars.promos.promoHeight=0;
	}
	nxVars.promos.midOpen = true;
	if(pid == null){
		if((nxVars.promos.spids)&&(nxVars.promos.spids.length >0)){
			setTimeout("nxShowSubPromos(1)",200);
		}
	}
	else{	
		nxVars.promos.promoTimer = setInterval("nxHidePromo("+nxVars.promos.promoHeight+")",50);		
	}
}

/* End Global Promo Functions */


/* Start Cookie Functions */

// Sets a Nextel Cookie
// parameters:
// name: cookie name
// valStr: complete cookie string (id||value^^id||value)
// persist: optional true/false on whether the cookie should be saved (true unless parameter is present and false)
//
// function will escape the value string
// expiration date is set to current date +1 year
// path is set to "/"
// domain is set to ".nextel.com"

function setNxCookie(name,valStr,persist){
	cookieStr = escape(valStr);
	dte = new Date();
	if((typeof persist != "undefined")&&(persist == false)){
		dte.setFullYear(dte.getFullYear()-1);
	}
	else if((typeof persist != "undefined")&&(persist == 'session')){
		dte = false;
	}
	else{
		dte.setFullYear(dte.getFullYear()+1);
	}
	pth = "/";
	dmn = ".nextel.com";
	if(dte){
		cookieStr += "; expires=" + dte.toGMTString();
	}
	cookieStr += "; path=" + pth;
	if(document.location.href.indexOf(".nextel.com") != -1){
		cookieStr += "; domain=" + dmn;
	}
	document.cookie = name + "=" + cookieStr;
}


// gets the nextel cookie, stores the values in the nested associative array nxVars.cookieVal[]
function getNxCookie(){
	var validCookies = "nxcommon;nolcustomaisletoken;customaislefilecookie;globalsuppressedaisle;smsession;indpage;nxprofile;nxpartner;npi_zipcode;nxtestcookie;NXTL_SELECTED_ACCT;managebase";
	var ck = unescape(document.cookie);
	var ckies;
	var indCk;
	var nvSet;
	var nvPair;
	if(ck.length >0){
		ckies = ck.split(';');
		for(var x=0; x<ckies.length; x++){
			indCk = ckies[x].split('=');
			indCk[0] = indCk[0].toLowerCase().replace(/\s/,"")
			if(validCookies.toLowerCase().indexOf(indCk[0]) > -1){
				if(indCk[1].indexOf("||") > -1){
					nxVars.cookieVal[indCk[0]] = new Array();
					nvSet = indCk[1].split('||');
					for(y=0; y<nvSet.length; y++){
						if(nvSet[y].indexOf('^^') > -1){
							nvPair = nvSet[y].split('^^');				
							nxVars.cookieVal[indCk[0].toLowerCase().replace(/\s/,"")][nvPair[0].toLowerCase().replace(/\s/,"")] = nvPair[1];
						}
					}
				}
				else{
					nxVars.cookieVal[indCk[0].toLowerCase().replace(/\s/,"")] = indCk[1];
				}
			}
		}
	}
}



getNxCookie();
var nxCookie = nxVars.cookieVal;

// deletes a cookie			
function deleteNxCookie(name){
	setNxCookie(name,"delete",false);
}
/* End Cookie Functions */	


function nxSetCANameCookie(caName){
	var caCook = document.cookie.split(';');
	for(var x=0; x<caCook.length; x++){
		if(caCook[x].indexOf('customAisleFileCookie')>-1){
			var cVal = caCook[x];
			cVal+='||aisleCorpName^^'+caName;
			pth = "/";
			dmn = ".nextel.com";
			cVal += "; path=" + pth;
			if(document.location.href.indexOf(".nextel.com") != -1){
				cVal += "; domain=" + dmn;
			}
			document.cookie = cVal;
			getNxCookie();
			return true;
		}
	}
	return false;
}

/******************************************
DEPRICATED FUNCTIONALITY DO NOT USE, WILL BE DELETED ON 
6/18/05

to access url parameters, use the function location.getParam("paramName")
*******************************************/
nxVars.urlParams = new Array();

/*  Get URL Parameters */
function nxGetParams(){
	if(location.search == ""){return}	
	var lqry = unescape(location.search.substring(1));
	var params = lqry.split("&");
	for(var x=0; x<params.length; x++){
		nxVars.urlParams[params[x].split("=")[0]] = params[x].split("=")[1];
	}
}

nxGetParams();

/******************************************
END DEPRICATED FUNCTIONALITY DO
*******************************************/



/* Start Error Messaging functions */

// displays Nextel Error Messages
//
// parameters:
// errList: an array of the errors which have been caught (associative reference used in next parameter)
// errLog: associative array of all possible error messages.
// 			values in array should be ordered as: form name, form field name, label name, error message

function displayNextelError(errList){
	setDisplay('errorMessagingBox','block');
	var errMessages = "";
	var errHolder;
	restoreNxErrorFields()
	while(errHolder = errList.shift()){
		if(nxErrLog[errHolder].fieldName.indexOf(';;') > -1){
			var fields = nxErrLog[errHolder].fieldName.split(';;');
			for(y=0; y<fields.length; y++){
				setStyleText(eval("document."+nxErrLog[errHolder].fm+"."+fields[y]),nxErrLog[errHolder].fieldStyleText[y]);
				setClass(eval("document."+nxErrLog[errHolder].fm+"."+fields[y]),nxErrLog[errHolder].fieldSClass[y]+" errorField");
			}		
		}
		else{
			setStyleText(eval("document."+nxErrLog[errHolder].fm+"."+nxErrLog[errHolder].fieldName),nxErrLog[errHolder].fieldStyleText);
			setClass(eval("document."+nxErrLog[errHolder].fm+"."+nxErrLog[errHolder].fieldName), nxErrLog[errHolder].fieldSClass+" errorField");
		}
		if(nxErrLog[errHolder].labelId.indexOf(';;') > -1){
			var labels = nxErrLog[errHolder].labelId.split(';;');
			for(y=0; y<labels.length; y++){
				setClass(labels[y],"errorLabel");
			}		
		}
		else{
			setStyleText(nxErrLog[errHolder].labelId,"");
			setClass(nxErrLog[errHolder].labelId,"errorLabel");
		}
		errMessages += "<div class=\"dotList\">"+nxErrLog[errHolder].mess+"</div>\n";
	}
	setInnerHTML("errorMessagingList",errMessages);	
	window.scroll(0,0);					
}

function restoreNxErrorFields(){
	for(var x in nxErrLog){
		if(nxErrLog[x].fieldName.indexOf(';;') > -1){
			var fields = nxErrLog[x].fieldName.split(';;');
			for(y=0; y<fields.length; y++){
				setClass(eval("document."+nxErrLog[x].fm+"."+fields[y]),nxErrLog[x].fieldSClass[y]);
				setStyleText(eval("document."+nxErrLog[x].fm+"."+fields[y]),nxErrLog[x].fieldStyleText[y]);
			}		
		}
		else{
			setClass(eval("document."+nxErrLog[x].fm+"."+nxErrLog[x].fieldName),nxErrLog[x].fieldSClass);
			setStyleText(eval("document."+nxErrLog[x].fm+"."+nxErrLog[x].fieldName),nxErrLog[x].fieldStyleText);
		}
		if(nxErrLog[x].labelId.indexOf(';;') > -1){
			var labels = nxErrLog[x].labelId.split(';;');
			for(y=0; y<labels.length; y++){
				setClass(labels[y],nxErrLog[x].labelSClass[y]);
				setStyleText(labels[y],nxErrLog[x].labelStyleText[y]);
			}		
		}
		else{
			setClass(nxErrLog[x].labelId,nxErrLog[x].labelSClass);
			setStyleText(nxErrLog[x].labelId,nxErrLog[x].labelStyleText);
		}
	}
}

// stores the values for error messages.


function setNxErrLog(groupId,fmName,fieldName,labelId,message){
	nxErrLog[groupId] = new Object();
	nxErrLog[groupId].fm = fmName;
	nxErrLog[groupId].fieldName = fieldName;
	nxErrLog[groupId].labelId = labelId;
	nxErrLog[groupId].mess = message;
}



function saveNxFormFields(){
	for(var x in nxErrLog){	
		if(nxErrLog[x].fieldName.indexOf(';;') > -1){
			var fields = nxErrLog[x].fieldName.split(';;');
			nxErrLog[x].fieldSClass = new Array();
			nxErrLog[x].fieldStyleText = new Array();
			for(y=0; y<fields.length; y++){
				nxErrLog[x].fieldSClass[y] = getSClass(eval("document."+nxErrLog[x].fm+"."+fields[y]));
				nxErrLog[x].fieldStyleText[y] = getStyleText(eval("document."+nxErrLog[x].fm+"."+fields[y]));
			}
		}
		else{
			nxErrLog[x].fieldSClass = getSClass(eval("document."+nxErrLog[x].fm+"."+nxErrLog[x].fieldName));
			nxErrLog[x].fieldStyleText = getStyleText(eval("document."+nxErrLog[x].fm+"."+nxErrLog[x].fieldName));
		}
		if(nxErrLog[x].labelId.indexOf(';;') > -1){
			var labels = nxErrLog[x].labelId.split(';;');
			nxErrLog[x].labelSClass = new Array();
			nxErrLog[x].labelStyleText = new Array();
			for(y=0; y<labels.length; y++){
				nxErrLog[x].labelSClass[y] = getSClass(labels[y]);
				nxErrLog[x].labelStyleText[y] = getStyleText(labels[y]);
			}
		}
		else{
			nxErrLog[x].labelSClass = getSClass(nxErrLog[x].labelId);
			nxErrLog[x].labelStyleText = getStyleText(nxErrLog[x].labelId);
		}
	}
}

/* End Error Messaging functions */



/* start Local nav Functions */

function nxSortLocalNavList(a,b){
	var aLev;
	var bLev;
	var a1 = -1;
	var a2 = -1;
	var a3 = -1;
	var b1 = -1;
	var b2 = -1;
	var b3 = -1;	
	if(localNavDef[a][0].indexOf('.') > -1){
		aLev = localNavDef[a][0].split(".");
		a1 = parseInt(aLev[0]);
		a2 = parseInt(aLev[1]);
		if(aLev.length == 3){
			a3 = parseInt(aLev[2]);
		}
	}
	else{
		a1 = parseInt(localNavDef[a][0]);
	}
	if(localNavDef[b][0].indexOf('.') >  -1){
		bLev = localNavDef[b][0].split(".");
		b1 = parseInt(bLev[0]);
		b2 = parseInt(bLev[1]);
		if(bLev.length == 3){
			b3 = parseInt(bLev[2]);
		}
	}
	else{
		b1 = parseInt(localNavDef[b][0]);
	}
	if(a1 > b1){return 1;}
	if(a1 < b1){return -1;}
	if((a2 > b2)||(b2 == -1)){return 1;}
	if((a2 < b2)||(a2 == -1)){return -1;}
	if((a3 < b3)||(a3 == -1)){return -1;}
	if((a3 > b3)||(b3 == -1)){return 1;}
	return 0;
}



function nxGetLocalNavLink(tId,selId){
	var txt;
	var lnkHrefOut;
	var clsID = (tId == selId) ? ' class="on"':'';
	if(localNavDef[tId][2] != "##"){
		if((localNavDef[tId][2].indexOf('javascript:')>-1)||(localNavDef[tId][2].indexOf('http')>-1)){
			lnkHrefOut = localNavDef[tId][2];
		}
		else{
			lnkHrefOut = nxVars.localNavBase+localNavDef[tId][2];
		}
		txt = '<a href="'+lnkHrefOut+'"'+clsID+'>'+localNavDef[tId][1]+'</a>';
	}
	else{		
		txt = localNavDef[tId][1];
	}
	return txt;
}

function renderLocalNav(localNavID){
	if(localNavDef[localNavID] == null){
		document.writeln("There was an error in processing your request.  Navigation ID not found.");
		return;
	}
	var navID = localNavID + "";
	var idArray = new Array();
	var navLevels = navID;
	var baseNum = parseInt(localNavDef[navID][0]);
	var baseID = "";
	var clsID = "";
	var secNum = "";
	if(localNavDef[navID][0].indexOf('.') > -1){
		navLevels = localNavDef[navID][0].split(".");
		secNum = navLevels[0]+"."+navLevels[1];
	}
		
	for(var x in localNavDef){
		if(localNavDef[x][0].indexOf(baseNum+".") == 0){
			if(localNavDef[x][2].indexOf('disable') != 0){
				idArray.push(x);
			}
		}
		if(localNavDef[x][0] == baseNum+""){
			baseID +=x;
		}
	}
	idArray.sort(nxSortLocalNavList);
	if(!nxVars.is3rdParty){
		nxVars.localNavBase = ((nxVars.hVars.secureServer)?"https://"+location.host:"");
	}
	else{
		nxVars.localNavBase = "http://www.nextel.com";
	}
	var lnkHrefOut = "";
	document.writeln('<div id="localNavBox" class="moduleSpacer mod1Wid">\n');
	document.writeln('<ul class="outer">\n');
	document.writeln('<li class="first">'+nxGetLocalNavLink(baseID,navID)+'</li>\n');
	
	for(var x=0; x<idArray.length;){
		navLevels = localNavDef[idArray[x]][0].split(".");
		document.writeln('<li>'+nxGetLocalNavLink(idArray[x],navID));
		var cnt = x+1;
		var isTertiary = false;		
		while((idArray[cnt]!=null) && (localNavDef[idArray[cnt]][0].split(".")[1] == localNavDef[idArray[x]][0].split(".")[1])){
			var t2ID = localNavDef[idArray[cnt]][0].split(".")[0]+"."+localNavDef[idArray[cnt]][0].split(".")[1];
			if(t2ID == secNum){
				if(cnt == x+1){
					document.writeln('<ul class="inner">\n');
					isTertiary = true;
				}
				document.writeln('<li>'+nxGetLocalNavLink(idArray[cnt],navID))+'</li>\n';
			}
			cnt++;
		}	
		if(isTertiary){
			document.writeln('</ul>\n');
		}
		document.writeln('</li>\n');
		x = cnt;	
	}
	document.writeln('</ul></div>\n');
	localNavDef = new String();
}

function nxLocalNavRepSpecChars(str){
	var out;
	out = str.replace(/&ntilde;/g,String.fromCharCode(241));
	out = out.replace(/&Ntilde;/g,String.fromCharCode(209));
	out = out.replace(/&Aacute;/g,String.fromCharCode(193));
	out = out.replace(/&aacute;/g,String.fromCharCode(225));
	out = out.replace(/&Eacute;/g,String.fromCharCode(201));
	out = out.replace(/&eacute;/g,String.fromCharCode(233));
	out = out.replace(/&Iacute;/g,String.fromCharCode(205));
	out = out.replace(/&iacute;/g,String.fromCharCode(237));
	out = out.replace(/&Oacute;/g,String.fromCharCode(211));
	out = out.replace(/&oacute;/g,String.fromCharCode(243));
	out = out.replace(/&Uacute;/g,String.fromCharCode(218));
	out = out.replace(/&uacute;/g,String.fromCharCode(250));
	out = out.replace(/&amp;/g,String.fromCharCode(38));
	out = out.replace(/&reg;/g,String.fromCharCode(174));
	out = out.replace(/&trade;/g,String.fromCharCode(8482));
	out = out.replace(/&iquest;/g,String.fromCharCode(191));
	
	return out;
}
function createLocalNavList(){
	var idArray = new Array();
	var optArray = new Array();
	for(var x in localNavDef){
		var baseNum = parseInt(localNavDef[x][0]);
		if(arguments.length >0){
			for(y=0; y<arguments.length; y++){
				if(arguments[y].toString() == baseNum.toString()){
					if(localNavDef[x][2].indexOf('disable') != 0){
						idArray.push(x);
					}
				}
			}
		}
		else{
			if(localNavDef[x][2].indexOf('disable') != 0){
				idArray.push(x);
			}
		}		
	}
	idArray.sort(nxSortLocalNavList);
	for(var x=0; x<idArray.length; x++){
		
		
		if(localNavDef[idArray[x]][0].indexOf(".") == -1){
			optArray.push(new Option(localNavDef[idArray[x]][0]+': '+nxLocalNavRepSpecChars(localNavDef[idArray[x]][1]),idArray[x],false,false));			
		}
		else{
			var lev = localNavDef[idArray[x]][0].split(".");
			if(lev.length == 2){
				optArray.push(new Option(localNavDef[idArray[x]][0]+':  -- '+nxLocalNavRepSpecChars(localNavDef[idArray[x]][1]),idArray[x],false,false));
			}
			else{
				optArray.push(new Option(localNavDef[idArray[x]][0]+':  -- -- '+nxLocalNavRepSpecChars(localNavDef[idArray[x]][1]),idArray[x],false,false));
			}
		}
	}	
	return optArray;
}


/* End local Nav Functions */




/**
       * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
       * http://javascript.internet.com
       */
      function checkEmail(emailStr) {
         if (emailStr.length == 0) {
             return false;
         }
         var emailPat=/^(.+)@(.+)$/;
         var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
         var validChars="\[^\\s" + specialChars + "\]";
         var quotedUser="(\"[^\"]*\")";
         var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
         var atom=validChars + '+';
         var word="(" + atom + "|" + quotedUser + ")";
         var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
         var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
         var matchArray=emailStr.match(emailPat);
         if (matchArray == null) {
             return false;
         }
         var user=matchArray[1];
         var domain=matchArray[2];
         if (user.match(userPat) == null) {
             return false;
         }
         var IPArray = domain.match(ipDomainPat);
         if (IPArray != null) {
             for (var i = 1; i <= 4; i++) {
                if (IPArray[i] > 255) {
                   return false;
                }
             }
             return true;
         }
         var domainArray=domain.match(domainPat);
         if (domainArray == null) {
             return false;
         }
         var atomPat=new RegExp(atom,"g");
         var domArr=domain.match(atomPat);
         var len=domArr.length;
         if ((domArr[domArr.length-1].length < 2) ||
             (domArr[domArr.length-1].length > 3)) {
             return false;
         }
         if (len < 2) {
             return false;
         }
         return true;
      }
	  


// Opens a GET form into a 650x440 window	  
function loadloadEePopFromForm(fm){
	var url = fm.action+'?';
	var ct = 0;
	var msg='';
	for(var x=0; x<fm.elements.length;x++){
		if(fm.elements[x].type != 'image'){
			if(ct>0){
				url+='&';
			}
			url+=fm.elements[x].name+'='+fm.elements[x].value;
			ct++;
		}
	}
	var x = window.open(url,fm.target,'width=650, height=440, top=0, left=0,toolbar=no,menubar=no,scrollbars=yes, resizable=yes');
	return false;

}


// Opens a link into a 650x440 window
function loadEePopFromLink(lnk){
	var x = window.open(lnk.href,lnk.target,'width=650, height=440, top=0, left=0,toolbar=no,menubar=no,scrollbars=yes, resizable=yes');
	return false;

}

function nxPdfToNewWin(){
	var lnks = document.getElementsByTagName('a');
	var ptrn = /\.pdf$/i;
	for(var x=0; x<lnks.length; x++){
		if((ptrn.test(lnks[x].href))&&(lnks[x].onclick == null)&&(!nxVars.is3rdParty)&&(!nxVars.isAmdocs)){
			var hrf = lnks[x].href;
			lnks[x].href="javascript:nxPopup(\'fullWin\',\'"+hrf+"\');";
		}			
	}	
}

setOnLoadScript('nxPdfToNewWin()');
