function buildFromSiteJson(response) {

    var buildMenu = function(menuContainer, pages) {
    
        for(var i = 0; i < pages.length; i++) {

            var item = new Element("li");
            item.insert(new Element("a", { href:pages[i].uri }).update(pages[i].title));
            menuContainer.insert(item);
            
        }
    
    };

    var header = $("header");
    var primaryMenu = $("primary-menu");
    var secondaryMenu = $("secondary-menu");
    var footerMenu = $("footer-menu");

    var site = response.responseData.site;
    
    if(primaryMenu && site.primaryMenu) {
        buildMenu(primaryMenu, site.primaryMenu);
    }
    if(secondaryMenu && site.secondaryMenu) {
        buildMenu(secondaryMenu, site.secondaryMenu);
    }
    if(footerMenu && site.footerMenu) {
        var homeItem = new Element("li");
        homeItem.insert(new Element("a", { href:site.homePage.uri }).update(site.homePage.title));
        footerMenu.insert(homeItem);
        buildMenu(footerMenu, site.footerMenu);
        
    }
    
}

function swapImageById(id, imageUrl)
{

	var obj = document.getElementById(id);
	
	if(obj != null && obj.src)
	{
	
		obj.setAttribute("src", imageUrl);
	
	}

}

var Luminous = {};
Luminous.Columns = Class.create();
Luminous.Columns.prototype = {

    initialize: function(container, itemTagName, isVertical, maxWidth, maxHeight) {
    
        var columns = maxWidth;
        if(isNaN(columns) || columns < 1) {
            columns = 1;
        }
        container = $(container);
        if(container && itemTagName) {
        
            var items = container.getElementsByTagName(itemTagName);
        
            if(!isNaN(maxHeight) && maxHeight >= 1) {
                
                var count = items.length;
				
				columns = Math.ceil(count / maxHeight);
				
				// figure out optimal number of items per column
				var optColItemCount = Math.ceil(count / columns);
				
				if(columns > 1) {
					this._fillEmptyItems(container, itemTagName, (optColItemCount * columns) - count);
				}
            }
            
            if(isVertical) {
                this._repositionItems(container, itemTagName, columns);
            }
            
            for(var i = 0; i < items.length; i++) {
			    items[i].style.cssFloat = "left";
			    items[i].style.styleFloat = "left";
			    if(i % columns == 0) {
				    items[i].style.clear = "left";
				}
			}
            
        }
    },
    
    _fillEmptyItems: function(container, itemTagName, fillCount) {

		if(container) {
		
			var html = [];
			for(var i = 0; i < fillCount; i++) {
			    html.push("<");
			    html.push(itemTagName);
			    html.push("></");
			    html.push(itemTagName);
			    html.push(">");
			}
			// add to end
			new Insertion.Bottom(container, html.join(""));
		}
	},
	
	_repositionItems: function(container, itemTagName, columns) {

		if(container) {

		    var items = container.getElementsByTagName(itemTagName);
		
		    var itemsPerColumn = Math.ceil(items.length / columns);
		
			var tmpItems = new Array();
			var iters = 0;
			for(var i = 1; i < itemsPerColumn; i++) {
				var item = items[i];
				
				tmpItems.push(item);

				// move colCount - 1 items
				for(var j = 1; j < columns; j++) {
				
					var nio = i + (j * itemsPerColumn);

					// remove and insert before current item
					var nextItem = items[nio];
					if(nextItem) {
						//nextItem = menu.removeChild(nextItem);
						//alert(nextItem.className);
						//menu.insertBefore(nextItem, item);
						tmpItems.push(nextItem);
					}
				
				}
				
				//alert(item.className);
				
				// jump to the start of the next column
				//i += colCount;
				//iters++;
			}
			for(var i = 0; i < tmpItems.length; i++) {
			
				var item = tmpItems[i];
				var parent = item.parentNode;
				parent.removeChild(item);
				parent.appendChild(item);
				
			}
			
		}
		
	}

}

var MenuColumnSizing = {

	size: function(menu, itemTagName, colItemCount) {
	
		menu = $(menu);
		if(menu && itemTagName)
		{
		
			if(!menu.isColumnSized)
			{
		
				var count = 0;
				for(var i = 0; (el = menu.childNodes[i]); i++)
					if(el.nodeName.toUpperCase() == itemTagName.toUpperCase())
						count++;
						
				var cols = Math.ceil(count / colItemCount);
				
				// figure out optimal number of items per column
				var optColItemCount = Math.ceil(count / cols);
				
				// get menu dimensions
				var menuDim = Element.getDimensions(menu);
				menu.style.width = (menuDim.width * cols) + "px";
				
				if(cols > 1) {
					//if(count % optColItemCount > 0) {
						MenuColumnSizing._fillEmptyItems(menu, (optColItemCount * cols) - count);
						//alert(menu.getElementsByTagName("li").length);
					//}
					MenuColumnSizing._repositionItems(menu, cols, optColItemCount);
				
				}
				
				menu.isColumnSized = true;
				
			}
		
		}
	
	},
	
	_fillEmptyItems: function(menu, fillCount) {
	
		menu = $(menu);
		if(menu) {
		
			var html = "";
			for(var i = 0; i < fillCount; i++) {
				html += "<li></li>";
			}
			// add to end
			new Insertion.Bottom(menu, html);
		}
	},
	
	_repositionItems: function(menu, colCount, colItemCount) {
	
		menu = $(menu);
		if(menu) {
		
			/*var i = 0;
			var tmpItems = new Array();
			for(i = 0; i < menu.childNodes.length; i++)
				tmpItems[i] = menu.childNodes[i].cloneNode(true);
			//alert(tmpItems.length);
			//var oItems = new Array();
			var newMenu = document.createElement("ul");
			//alert(menu.getElementsByTagName("li").length);
			for(i = 0; i < colItemCount; i++)
			{
			
				newMenu.appendChild(tmpItems[i]);
			
				for(var j = 1; j < colCount; j++) {
				
					var nio = (j * colItemCount) + i;
					// remove and insert before current item
					//if(li = menu.getElementsByTagName("li")[nio])
					newMenu.appendChild(tmpItems[nio]);
				
				}
			}
			
		
			// skip first item
			//var i = 0;
			//alert(colCount * colItemCount);
			//alert(menu.getElementsByTagName("li").length);
			while(item = menu.getElementsByTagName("li").item(0)) {
			
				itms.push(menu.removeChild(item));
				
				for(var j = 1; j < colCount; j++) {
				
					var nio = (j * colItemCount) - 1;
					// remove and insert before current item
					var nextItem = menu.getElementsByTagName("li").item(nio);
					if(nextItem)
						itms.push(menu.removeChild(nextItem));
				
				}
			
				//i++;
			
			}
			//alert(itms.length);
			menu.innerHTML = "";
			alert(newMenu.childNodes.length);
			for(var i = 0; i < newMenu.childNodes.length; i++)
				menu.appendChild(newMenu.childNodes[i]);
			alert(menu.childNodes.length);*/
			
			var tmpItems = new Array();
			var iters = 0;
			for(var i = 1; i < colItemCount; i++) {
				var item = menu.childNodes[i];
				
				tmpItems.push(item);

				// move colCount - 1 items
				for(var j = 1; j < colCount; j++) {
				
					var nio = i + (j * colItemCount);

					// remove and insert before current item
					var nextItem = menu.childNodes[nio];
					if(nextItem) {
						//nextItem = menu.removeChild(nextItem);
						//alert(nextItem.className);
						//menu.insertBefore(nextItem, item);
						tmpItems.push(nextItem);
					}
				
				}
				
				//alert(item.className);
				
				// jump to the start of the next column
				//i += colCount;
				//iters++;
			}
			for(var i = 0; i < tmpItems.length; i++) {
			
				var item = tmpItems[i];
				item = menu.removeChild(item);
				menu.appendChild(item);
				
			}
			
		}
		
	}
	
}

document.observe("dom:loaded", function() {

    var body = $(document.body);
    if(body.hasClassName("level2")) {

        var headerSwfs = new Hash({
            "doctors":"physicians.swf",
            "physicians":"physicians.swf",
            "locations":"locations.swf",
            "services":"services.swf",
            "specialties":"services.swf",
            "medicalspecialties":"services.swf",
            "healthinfo":"healthinfo.swf",
            "healthinformation":"healthinfo.swf",
            "about":"aboutus.swf",
            "aboutus":"aboutus.swf",
            "patientservices":"patientservices.swf",
            "careers":"careers.swf",
            "community":"community.swf",
            "ourcommunity":"community.swf"
        });
        
        // try to find the header
        
        var selectedClass = headerSwfs.keys().find(function(key) {
            return body.hasClassName(key);
        });
        if(selectedClass) {
        
            $("header").insert("<div id=\"header-banner\"></div>");
            var size = $("header-banner").getDimensions();
            swfobject.embedSWF("/site/images/headers/" + headerSwfs.get(selectedClass), "header-banner", size.width, size.height, "9.0.0", false, false, {wmode:"transparent"}, false);
          
           
        }
    
    }

});