/* [nodename, id, name, navigationtext, href, isnavigation, childs[], templatename] */

if (typeof(decodeURIComponent) == 'undefined') {
  decodeURIComponent = function(s) {
    return unescape(s);
  }
}

function jdecode(s) {
    s = s.replace(/\+/g, "%20")
    return decodeURIComponent(s);
}

var POS_NODENAME=0;
var POS_ID=1;
var POS_NAME=2;
var POS_NAVIGATIONTEXT=3;
var POS_HREF=4;
var POS_ISNAVIGATION=5;
var POS_CHILDS=6;
var POS_TEMPLATENAME=7;
var POS_TARGET=8;
var theSitetree=[ 
	['PAGE','3401',jdecode('Home'),jdecode(''),'/3401.html','true',[],'',''],
	['PAGE','3722',jdecode('About+Us'),jdecode(''),'/3722.html','true',[],'',''],
	['PAGE','3701',jdecode('References'),jdecode(''),'/3701.html','true',[],'',''],
	['PAGE','32901',jdecode('Commercial+Moves'),jdecode(''),'/32901.html','true',[],'',''],
	['PAGE','14401',jdecode('Additional+Services'),jdecode(''),'/14401.html','true',[],'',''],
	['PAGE','10001',jdecode('Long+Distance+Moves'),jdecode(''),'/10001.html','true',[],'',''],
	['PAGE','5801',jdecode('Moving+Tips'),jdecode(''),'/5801.html','true',[],'',''],
	['PAGE','5822',jdecode('Photo+Gallery'),jdecode(''),'/5822.html','true',[],'',''],
	['PAGE','34501',jdecode('Links'),jdecode(''),'/34501.html','true',[],'','']];
var siteelementCount=9;
theSitetree.topTemplateName='Grace';
theSitetree.paletteFamily='A1E57B';
theSitetree.keyvisualId='-1';
theSitetree.keyvisualName='keyv.jpg';
theSitetree.fontsetId='32049';
theSitetree.graphicsetId='13870';
theSitetree.contentColor='484848';
theSitetree.contentBGColor='FFFFFF';
var localeDef={
  language: 'en',
  country: 'US'
};
var theTemplate={
				hasFlashNavigation: 'false',
				hasFlashLogo: 	'false',
				hasFlashCompanyname: 'false',
				hasFlashElements: 'false',
				hasCompanyname: 'false',
				name: 			'Grace',
				paletteFamily: 	'A1E57B',
				keyvisualId: 	'-1',
				keyvisualName: 	'keyv.jpg',
				fontsetId: 		'32049',
				graphicsetId: 	'13870',
				contentColor: 	'484848',
				contentBGColor: 'FFFFFF',
				a_color: 		'000000',
				b_color: 		'000000',
				c_color: 		'000000',
				d_color: 		'000000',
				e_color: 		'000000',
				f_color: 		'000000',
				hasCustomLogo: 	'true',
				contentFontFace:'Verdana, Arial, Helvetica, sans-serif',
				contentFontSize:'12',
				useFavicon:     'true'
			  };
var webappMappings = {};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '3401',
internalId:  '',
customField: '20110321-130054'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '3701',
internalId:  '',
customField: '20110207-234256'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '5822',
internalId:  '',
customField: '20110306-213101'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '3722',
internalId:  '',
customField: '20101115-211442'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '5801',
internalId:  '',
customField: '20101115-210518'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '10001',
internalId:  '',
customField: '20110322-021050'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '14401',
internalId:  '',
customField: '20110322-021254'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '32901',
internalId:  '',
customField: '20110108-142515'
};
webappMappings['5000']=webappMappings['5000-']={
webappId:    '5000',
documentId:  '34501',
internalId:  '',
customField: '20110328-030242'
};
var canonHostname = 'cmworker02.yourhostingaccount.com';
var accountId     = 'AENDU0INVC86';
var companyName   = 'Lighthouse+Moving+LLC++';
var htmlTitle	  = '';
var metaKeywords  = 'movers%2C+moving%2C+metro%2C+Twin+Cities%2C+Minnesota%2CLicensed%2C+movers%2C+mover%2C+move%2C+moving%2C+hauling%2C+storage%2C+companies%2C+company.+Licensed+insured+bonded%2C%0D%0AMinneapolis%2C+St+paul%2C+Sofas%2C+Armoires%2C+Beds%2C+Dressers%2C+Stoves%2C+Refrigerators%2C+Washers+%26+Dryers.safes%2C+pianos%2C+piano%2C+printers%2Cprinter%2C+copier%2Cappliance%2Cdelivery%2Cstove+Minnesota%2C+Minneapolis%2C+St.+Paul%2C+MN%2C+Minn%2C+Apple+Valley%2C+Rosemount%2C+St.+Anthony%2C+Maple+Grove%2C+Burnsville%2C+Shakopee%2C+Farmington%2C+Lakeville%2C+Hastings%2C+Roseville%2C+White+Bear+Lake%2C+Little+Canada%2C+Downtown%2C+Frogtown%2C+Frog+town%2C+Bloomington%2C+Edina%2CYahoo%2C+Google%2C+MSN%2C+Earthlink%2C+Earth+link%2C+Savage%2C+Prior+lake%2C+garbage%2C+Eden+Prairie%2C+Cottage+Grove%2C+Eagan%2C+Inver+Grove+Heights%2C+Woodbury%2C+Oakdale%2C+Maplewood%2C+Lake+Elmo%2C+North+St.+Paul%2C+West+St.+Paul%2C+Mendota+Heights%2C+Minnetonka%2C+Plymouth%2C+St.+Louis+Park%2C+Hopkins%2C+Mahtomedi%2C+White+Bear+Lake%2C+Golden+Valley%2C+Maple+Grove%2C+New+Hope%2C+Crystal%2C+Columbia+Heights%2C+Robbinsdale%2C+Brooklyn+Park%2C+Blaine%2C+Brooklyn+Center%2C+Falcon+Heights%2C+White+Bear+Lake%2C+Fridley%2C+Mounds+View%2C+Anoka%2C+Spring+Lake+Park%2C+Arden+Hills%2C+Zimmerman%2C+Vadnais+Heights%2C+Lino+Lakes%2C+Shoreview%2C+Shorewood%2C+Excelcior%2C+Champlin%2C+Elk+River%2C+Big+Lake%2C+Monticello%2C+Minnetrista%2C+Maple+Plain%2C+Delano%2C+Buffalo%2C+bufalo%2C+River+Falls%2C+Wisconsin%2C+Wis%2C+WI%2C+Bethel%2C+St.+Francis%2C+Forest+Lake%2C+Stillwater%2C+Oak+Park+Heights%2C+North%2C+South%2C+East%2C+West%2C+Orono%2C+Ham+Lake%2C+Andover%2C+Becker%2C+St.+Michael%2C+Albertville%2C+Ramsey%2C+Somerset%2C+Faribault%2C+Randolph%2C+Hampton%2C+Victoria%2C+Montrose%2C+Medicine+Lake%2C+Corcoran%2C+Rogers%2C+Waconia%2C+Chaska%2C+Cologne%2C+Belle+Plaine%2C+Jordan%2C+New+Prague%2C+New+Market%2C+Elko%2C+Lonsdale%2C+Empire%2C+Red+Wing%2C+Vermillion%2C+St.+Paul+Park%2C+Carver%2C+Wyoming%2C+Owatonna%2C+Prior+Lake%2C+Dayton%2C+Roberts%2C+wisconsin%2C+hudson%2C+AAA+movers%2C+two+men+and+a+truck%2C+local+motion%2C+movers%2C+mover%2C+moving%2C+move%2C+moves%2C+harco%2C+backdahl%2C+back+dahl%2C+A1%2C+a+1%2C+low+cost%2C+1st+choice%2C+nystrom%2C+ballard%2C+jet+transfer%2C+sorensens%2C+paragon%2C+123%2C+first+choice%2C+uhaul%2C+budget%2C+truck%2C+rental%2C+penske%2C+quality+transfer%2C+action%2C+mohawk%2C+atlas%2C+vanlines%2C+good+stuff+moving%2C+storage%2C+lighthouse%2C+uptown%2C+mat%2C+matt%2C+matts%2C+mats%2C+Saint+Paul%2C+edina%0D%0Alicensed++insured%2C+bonded%2C+Angies+List%2C+Better+Business+Bureau%2C+Anoka%2C+Ramsey%2C+Hennepin%2C+Saint+Paul%2C+St.+Paul%2C+Minneapolis%2C+Roseville%2C+Licensed%2C+professional%2C+low+cost';
var metaContents  = 'Professional+Moving+Company%2C+fully++Licensed+Insured+and+Bonded%2C+%22A%22+rated+at+the+Better+Business+Bureau%2C+Great+Rates%21++No+day+laborers+or+temporary+workers%2C+%22A%22+Rated+on+Angie%27s+List%2C+over+6+years+moving+Minnesotans%2C+Many+ties+to+the+Twin+Cities+community%2C+Serving+all+of+Minnesota%2C+Best+rates+in+Minnesota%2C+Discount+Moving+Company%2C+Over+20+years+combined+moving+experience%2C+Highest+rated+Minnesota+Moving+Company%2C+Safe+Efficient+moving+company%2C+polite+efficient+professional+workers%2C+Experienced+professional+movers%2C+experienced+professional+moving+company%2C+full+service+moving+company%2C+packing+unpacking+services%2C+unload+your+rental+truck+Long+distance+moves%2C+delivery+service%2C+delivery+of+appliances+stoves+refrigerators%2C+furniture+delivery+of+freight+and+construction+supplies+best+moving+company+in+minnesota%21+';
theSitetree.getById = function(id, ar) {
	if (typeof(ar) == 'undefined'){
		ar = this;
	}
	for (var i=0; i < ar.length; i++) {
		if (ar[i][POS_ID] == id){
			return ar[i];
		}
		if (ar[i][POS_CHILDS].length > 0) {
			var result=this.getById(id, ar[i][POS_CHILDS]);
			if (result != null){
				return result;
			}
		}
	}
	return null;
};

theSitetree.getParentById = function(id, ar) {
	if (typeof(ar) == 'undefined'){
		ar = this;
	}
	for (var i=0; i < ar.length; i++) {
		for (var j = 0; j < ar[i][POS_CHILDS].length; j++) {
			if (ar[i][POS_CHILDS][j][POS_ID] == id) {
				// child found
				return ar[i];
			}
			var result=this.getParentById(id, ar[i][POS_CHILDS]);
			if (result != null){
				return result;
			}
		}
	}
	return null;
};

theSitetree.getName = function(id) {
	var elem = this.getById(id);
	if (elem != null){
		return elem[POS_NAME];
	}
	return null;
};

theSitetree.getNavigationText = function(id) {
	var elem = this.getById(id);
	if (elem != null){
		return elem[POS_NAVIGATIONTEXT];
	}
	return null;
};

theSitetree.getHREF = function(id) {
	var elem = this.getById(id);
	if (elem != null){
		return elem[POS_HREF];
	}
	return null;
};

theSitetree.getIsNavigation = function(id) {
	var elem = this.getById(id);
	if (elem != null){
		return elem[POS_ISNAVIGATION];
	}
	return null;
};

theSitetree.getTemplateName = function(id, lastTemplateName, ar) {
	if (typeof(lastTemplateName) == 'undefined'){
		lastTemplateName = this.topTemplateName;
	}
	if (typeof(ar) == 'undefined'){
		ar = this;
	}
	for (var i=0; i < ar.length; i++) {
		var actTemplateName = ar[i][POS_TEMPLATENAME];
		if (actTemplateName == ''){
			actTemplateName = lastTemplateName;
		}
		if (ar[i][POS_ID] == id) {
			return actTemplateName;
		}
		if (ar[i][POS_CHILDS].length > 0) {
			var result=this.getTemplateName(id, actTemplateName, ar[i][POS_CHILDS]);
			if (result != null){
				return result;
			}
		}
	}
	return null;
};

theSitetree.getByXx = function(lookup, xx, ar) {
    if (typeof(ar) == 'undefined'){
    	ar = this;
    }
    for (var i=0; i < ar.length; i++) {
        if (ar[i][xx] == lookup){
        	return ar[i];
        }
        if (ar[i][POS_CHILDS].length > 0) {
        	var result=this.getByXx(lookup, xx, ar[i][POS_CHILDS]);
            if (result != null){
                return result;
               }
        }
    }
    return null;
};

function gotoPage(lookup) {
	if(__path_prefix__ == "/servlet/CMServeRES" && typeof (changePage) == 'function'){
		changePage(lookup);
		return;
	}
	var page = theSitetree.getHREF(lookup);
	if (!page) {
		var testFor = [ POS_NAME, POS_NAVIGATIONTEXT ];
		for (var i=0 ; i < testFor.length ; i++) {
			var p = theSitetree.getByXx(lookup, testFor[i]);
			if (p != null) {
				page = p[POS_HREF];
				break;
			}
		}
	}
	document.location.href = (new URL(__path_prefix__ + page, true, true)).toString();
};

