﻿window.layoutSpecific = new function() {

	eval(estrada.namespace);
	
	this.layout = null;
	this.flash = { };
	this.contentAreas = [];
	this.toBind = [];

	attachEvent(document, "layout", function() {
		document.body.className = "l-physician-entry";
		layoutSpecific.layout = frame("physician-entry",
			frame("physician-head",
				area("physician-name")
			),
			cols(
				frame("left-center",
					cols(
						frame("leftContent", 
							area("photoArea"),
							area("relatedItems")
						),
						area("entryArea")
					)
				),
				frame("right",
					area("interestsDescription")
				)
			)
		);
		
		layoutManager.addContentArea(layoutSpecific.contentAreas, "entryArea", "extensions");
		
		var relateditems = document.getElementById("relateditems");
		if (relateditems && first(relateditems)) {
			layoutSpecific.contentAreas["relatedItems"] = [];
			layoutSpecific.contentAreas["relatedItems"].push(relateditems);
		}
		
		var extension = document.getElementById("extensions");
		if (extension) {
			var item = commonLayout.getFirstElement(extension, "div", "item");
			if (item) {
				layoutSpecific.toBind.push(["hideProperties", item]);
				layoutSpecific.toBind.push(["entryHandler", item]);
			}
		}
		
	});
	
	estrada.behavior("entryHandler").is({
		bind: function(node) {
			var extension = document.getElementById("extensions");
			if (extension) {
			
				// hide page title
				var h3 = commonLayout.getFirstElement(extension, "h3", "*");
				if (h3) {
					estrada.setClassName(h3, "l-hide");
				}
				
				// reposition the fullName property value as the title
				var property = commonLayout.getFirstElement(node, "dl", "fullName");
				if (property) {
					var fullName = commonLayout.getFirstElement(property, "dd", "*");
					if (fullName) {
						var physicianName = document.getElementById("l-physician-name");
						if (physicianName) {
							physicianName.innerHTML = fullName.innerHTML;
						}
					}
				}
				
				// Move the photo to the left column
				var property = commonLayout.getFirstElement(node, "dl", "Photo2");
				if (property) {
					var photo2 = commonLayout.getFirstElement(property, "dd", "*");
					if (photo2) {
						var img = commonLayout.getFirstElement(photo2, "img", "*");
						if (img) {
							var photoArea = document.getElementById("l-photoArea");
							if (photoArea) {
								photoArea.appendChild(img);
							}
						}
					}
				}
				
				// Move interestsDescription to right column
				var property = commonLayout.getFirstElement(node, "dl", "interestsDescription");
				if (property) {
					var area = document.getElementById("l-interestsDescription");
					if (area) {
						var item = commonLayout.getFirstElement(property, "dd", "*");
						if (item && item.firstChild) {
							area.innerHTML = item.innerHTML;
						}
						else {
							estrada.setClassName(area, "l-hide");
						}
					}
				}
				
				// Organize entry properties
				var propertyList = {
					"otherClinics": ["", false],
					"Specialty": ["Specialty:", false],
					"hospitalAffiliations": ["Hospital Affiliations:", false],
					"facultyTitle": ["Faculty Title:", true],
					"administrativeTitle": ["Administrative Title:", true],
					"medicalSchools": ["School of Medicine:", false],
					"internships": ["Internship:", false],
					"residencies": ["Residencies:", false],
					"fellowships": ["Fellowships:", false],
					"certifications": ["Certifications:", false],
					"Diseases-Treated/Clinical-Interests": ["Diseases Treated/Clinical Interests:", false],
					"languagesSpoken": ["Languages Spoken:", true]
				}
				for(var className in propertyList) {
					var el = commonLayout.getFirstElement(node, "dl", className);
					if (el) {
						var dd = commonLayout.getFirstElement(el, "dd", "*");
						if (dd) {
							if ((dd.innerHTML.length == 0) && (propertyList[className][1])) {
								estrada.setClassName(el, "l-hide");
							}
							else {
								var dt = commonLayout.getFirstElement(el, "dt", "*");
								if (dt) {
									dt.innerHTML = propertyList[className][0];
								}
							}
							node.appendChild(el);
						}
						else {
							estrada.setClassName(el, "l-hide");
						}
					}
				}

				
				// Find 'Return To Search Results' (Browse) li element
				var browseLi;
				var nav = commonLayout.getFirstElement(extension, "div", "navigation");
				if (nav) {
					var browse = commonLayout.getFirstElement(nav, "a", "Browse");
					if (browse) {
						browseLi = browse.parentNode;
					}
				}
				
				var links = document.getElementById("links");
				if (links) {
					extension.appendChild(links);
					if (browseLi) {
						var ul = commonLayout.getFirstElement(links, "ul", "*");
						if (ul) {
							// move browse li element to this list
							ul.appendChild(browseLi);
						}
					}
				}
			}
		}
	});
	
	estrada.behavior("hideProperties").is({
		bind: function(node) {
			var props = commonLayout.getElements(node, "dl", "Full-Name Photo Photo2 fullName Title Summary gender Facility Phone Interests interestsDescription address primaryHospital");
			foreach(props, function(prop) {
				estrada.setClassName(prop, "l-hide");
			});
		}
	});
	
}