//****************************************************************
//****************************************************************
// COPYRIGHT 2006, Vertex Software
//****************************************************************
//****************************************************************


//===========================================================
// LoadElement
//===========================================================
function LoadElement( elementID, contentURL, noAdd ) {
	try {
		var iframe = document.createElement("iframe");
		if (iframe) {
			var contentServerURL = document.location.hostname.replace( /^[^\.]+/, "content" );
			iframe.src = "http://" + contentServerURL + contentURL;
			iframe.name = iframe.id = elementID + "Frame";
			iframe.style.display = "none";
			if (!noAdd) document.body.appendChild( iframe );
			if (noAdd) return iframe; 
			}
		}
	catch (error) {
		window.status = ( "LoadElement: " + error.description );
		}
	}


//-----------------------------------------------------------
// GetElementsById
//-----------------------------------------------------------
function GetElementsById( elementID ) {
	var elements = new Array()
	try {
		if (document.all) {
			// IE will return all elements having a given ID - mozilla won't without iterating. How nice.
			elements = document.getElementsByName(elementID);
			}
		else {
			var divs = document.getElementsByTagName("div");
			for (var item=0; item<divs.length; item++) {
				var element = divs[item];
				if (element.id == elementID) elements.push(element);
				}
			} 
		}
	catch (error) {
		window.status = "GetElementsById: " + error.description;
		}
	return elements;
	}


//===========================================================
// GetElementsByIndexedID
//===========================================================
function GetElementsByIndexedID( elementBaseID ) {
	var elements = new Array();
	try {
		var divs = document.getElementsByTagName("div");
		var elementIDPattern = new RegExp( elementBaseID + "[0-9]+" )
		for (var item=0; item<divs.length; item++) {
			var element = divs[item];
			if (element.id.match( elementIDPattern )) elements.push(element);
			}
		}
	catch (error) {
		window.status = "GetElementsByIndexedID: " + error.description;
		}
	return elements;
	}




//===========================================================
// LoadDynamicElements
//===========================================================
function LoadDynamicElements() {
	try {
		var elementID = "DynamicContent" 
		var dynamicElements = GetElementsByIndexedID(elementID);//GetElementsById(elementID);
		var elementFrames = new Array();
		var elements = new Array();
		// Need to set doc domain to page subdomain to allow content to be retrived from differnet subdomains.
		// If framed, ssumed running within SitePress so don't change.
		// If HTMLTextfields present, also disable since GraphicalEditro wont' work due to
		// cross-domain scripting issues!
		// EDV 8-1-06 Added preliminary if statement to allow special HTML editor in clinical trials DB admin.
		if (typeof editor_generate == "function") {
			}
		else if (typeof HandleDHTMLEditorSave == "undefined") {
			// 14MAY2008 RFM - Changed SitePress detection algorithm since Iframes are being used
			// for forms within site which was causing previosu test to bypass domain swicth leading to access denied
			var isSitePress = false;
			try {
				isSitePress = window.frameElement && window.frameElement.name.match( /(content|myiframe)/ );
				}
			catch (error) {
				}
			if (!isSitePress) ChangeToSubdomain();
			}
		// Need two passes since changing element.id alters dynamicElements list			
		for (var item=0; item<dynamicElements.length; item++) {
			var element = dynamicElements[item];
			var elementID = element.id + parseInt(Math.random()*100000);
			elementFrames.push( LoadElement( elementID, element.title, true ) );
			elements.push(element);
			}
		for (var item=0; item<elementFrames.length; item++) {
			var element = elements[item];
			var elementFrame = elementFrames[item];
			element.id = elementFrame.id.replace( "Frame", "");
			element.title = "";
			document.body.appendChild( elementFrame );
			}
		}
	catch (error) {
		window.status = ( "LoadDynamicElements: " + error.description );
		}
	}



//===========================================================
// ChangeToSubdomain
// 31MAR2009 RFM - CM changes
//===========================================================
function ChangeToSubdomain( ) {
	try {
		// 15JUL2009 KBM - Added if statement to check so domain switch only gets done when NOT in Health Library - Problem spawned by new Decision Points
		//document.domain = (document.location.hostname.match( /([^\.]+\.[^\.]+)$/) ? RegExp.$1 : document.location.hostname);
		if( !document.location.href.match(/health_a_to_z\/health_library/) ) {
			document.domain = (document.location.hostname.match( /([^\.]+\.[^\.]+)$/) ? RegExp.$1 : document.location.hostname);
			}
		}
	catch (error) {
		}
	}

window.onload = LoadDynamicElements;
