//----------------------------------------------------
//---------------------------------------------------- DEFAULT HTML DESIGN FOR SCIM/PLOT XML/JSON: alter scimPlot.css or siteSettings.js, before/rather than these scripts ---
//----------------------------------------------------
var determineDisplay;// determins user is external or internal
//--- function that determins if user is logged into scim by seeing if any content printed out by PHP
//--- This initiates the "New Item Button" feature
function determinCall(){//This Is called after 'buildQuery' in dataCall.js
	if(!determineDisplay){
		var url= baseURL+"inc/php/determinDisplay.php";
		var dd = siteDataRequest();
		dd.open('GET', url, true);
		dd.onreadystatechange = function() {
			if (dd.readyState == 4 && dd.status == 200) {
				determineDisplay = dd.responseText;
				getItemButtons();//--- only called within this function
			}
		};
		dd.send(null);
	} else {
		getItemButtons();//--- only called within this function
	}
}
//--- function for determining if logged in users can add new content
function getItemButtons() {
	var url=createItemScriptURL+relativePath;
	if(determineDisplay == "isUser"){
		var xhrRec = siteDataRequest("html");
		xhrRec.open('GET', url, true);
		xhrRec.onreadystatechange = function() {
			if (xhrRec.readyState == 4 && xhrRec.status == 200) {
				var	buttonItems = xhrRec.responseText;
				var buttonItemsArrayBITS = buttonItems.split(";");
				var buttonItemsArr=[];
				for(var ba = 0;ba < buttonItemsArrayBITS.length-1; ba++){
					buttonItemsArr[ba] = buttonItemsArrayBITS[ba].split(":");
				}
				// function creates new Item button for logged in users
				// -- CLASSES: "newItemButton"
				function itemButton(elementID){
					Array.prototype.contains = function (elementID) {
						for (var i = 0; i < this.length; i++){
							if (this[i][0] == elementID){
								return this[i][1];
							}
						}
						return false; 
					}
					var buttonHTML="";
					for(var r=0; r<buttonItemsArr.length; r++){
						var showButton=buttonItemsArr.contains(elementID);		
						if (showButton){
							buttonHTML="<br /><a class='newItemButton' href='"+scimCreateURL+showButton+"&returnUrl="+currentPage+"'>Create New Item</a>";
							return buttonHTML;
						} else if (r == buttonItemsArr.length-1){
							return buttonHTML;
						}
					}
				}
				var cB = 0;
				do{
					var createButton = itemButton(dataModel[cB][0]);
					if(createButton){//there is createButton data
					var buttonDiv = dataModel[cB][0]+'_newItem';
						if(!document.getElementById(buttonDiv)){
							var theButton = document.createElement('SPAN');
							theButton.setAttribute('id', buttonDiv);
							//theButton.setAttribute('class', 'newItemButton');
							theButton.innerHTML = createButton;
							if(displayPaths.newItemBtnPath){// Check if there is a display path defined
								var foundPathButton = getDisplayPath(dataModel[cB][0], displayPaths.newItemBtnPath);
								var buttonNode = designLocate(foundPathButton);
									buttonNode.appendChild(theButton);
							}else{//if no display path just place it
								document.getElementById(dataModel[cB][0]).appendChild(theButton);
							}
						}
					}
					
					cB++;
				}while(cB < dataModel.length);
			}
		}
		xhrRec.send(null);
	}else if(determineDisplay == "external"){
	}
}
//--- function that builds default feed display CALLED BY dataCall.js -> parseXML----
// -- CLASSES: "internalFlag"
//------------ "metaData" 
//------------ "hiddenItem"
//------------ "member"
//------------ "PLOTleftContent"
//------------ "PLOTrightContent"
//------------ "clearIt"
// -- DIV IDs: "itemID"+DYNAMIC
//------------ "content"
function dataDisplay(elementID, dataHash) {
	var metadata = "";
	var theDiv = document.getElementById(elementID);
	var outputType = storedData[elementID][0];
	var archiveQuery = storedData[elementID][1];
	var out = "";
	//build metadata
	metadata = dataHash.dateLastModified + " | " + dataHash.author;
	if (dataHash.public == "false") {
		metadata = metadata + " | <font class='internalFlag'>INTERNAL ITEM </font>";
	}
	if (dataHash.userCanEdit == "true") {
		metadata = metadata + " | <a class='internalFlag' href='" + scimEditURL + dataHash.itemID + "?returnUrl=" + currentPage + "'>Edit</a>";
	}
			
	// determine layout by output parameter
	if (outputType == "summary") {
		out = out + "<div id='itemID"+ dataHash.itemID + "'><a href='" + viewContentURL + "?title=" + escape(dataHash.title) + "&varCSI=" + dataHash.itemID + "'>"+ dataHash.title+ "</a><br />"+ dataHash.summary+ "</div><div class='metaData'>" + metadata + "</div>";
		
	} else if (outputType == "showContent") {
		out = out + "<div id='itemID"+ dataHash.itemID + "'>"
		out = out + "<a href=\"javascript:showItem('content" + dataHash.itemID + "','" + elementID + "')\" class='showContent'>";
		out = out + dataHash.title;
		out = out + "</a>";
		out = out + "<div id='content" + dataHash.itemID + "' style='display:none;' class='hiddenItem'>";
		out = out + dataHash.content;
		out = out + "<div class='metaData'>" + metadata + "</div>";
		out = out + "</div>";
		out = out + "</div>";
		
	} else if (outputType == "enhancedSummary") {
		var enhancedSummary = buildSummary(dataHash.content);
		out = out + "<div id='itemID"+ dataHash.itemID + "'>" + enhancedSummary + "...[<a href='" + viewContentURL + "?title=" + escape(dataHash.title) + "&varCSI=" + dataHash.itemID + "'>More</a>]</div>";
		out = out + "<div class='metaData'>" + metadata + "</div>";
	
	} else if (outputType == "fullContent") {
		out = out + "<div id='itemID" + dataHash.itemID +"'>"
		out = out + dataHash.content;
		out = out + "</div>";
		out = out + "<div class='metaData'>" + metadata + "</div>";
		
	} else if (outputType == "teamDisplay") {
		if (dataHash.teamID){
			out = out + "<div id='teamID" + dataHash.teamID +"'><a>"+ dataHash.teamName +"</a></div><ul><li>"+dataHash.teamDescription+dataHash.teamEmail+"<div class='clearIt'></div></li>";
		} else if(dataHash.memberID ){//display list of memebers
			out = out + "<li class ='member' id='memberID" + dataHash.memberID +"'> <div class='PLOTleftContent'>"+ dataHash.memberName +"<br />"+ dataHash.memberRole +"</div><div class='PLOTrightContent'><a href='"+ dataHash.memberEmail +"'>"+ dataHash.memberEmail +"</a><br />"+ dataHash.memberOfficeNum +"</div><div class='clearIt'></div></li>";
			if(dataHash.flag == "last"){
				out = out +"</ul>";
			}
		}
	} else if (outputType == "teamDisplayGPL") {
		if (dataHash.teamID){
			out = out + "<div id='teamID" + dataHash.teamID +"'><a>"+ dataHash.teamName +"</a></div><ul><li>"+dataHash.teamDescription+dataHash.teamEmail+" &nbsp;<a href='"+ dataHash.teamURL +"' target='_blank'>Geospatial Partnership Liaisons</a><div class='clearIt'></div></li>";
			
		} else if(dataHash.memberID ){//display list of memebers
			out = out + "<li class ='member' id='memberID" + dataHash.memberID +"'> <div class='PLOTleftContent'>"+ dataHash.memberName +"<br />"+ dataHash.memberRole +"</div><div class='PLOTrightContent'><a href='"+ dataHash.memberEmail +"'>"+ dataHash.memberEmail +"</a><br />"+ dataHash.memberOfficeNum +"</div><div class='clearIt'></div></li>";
			if(dataHash.flag == "last"){
				out = out +"</ul>";
			}
		}
		
	} else if (outputType == "orgAddDisplay"){
		out = out + "<div id='orgID" + dataHash.orgID +"'><b>"+ dataHash.orgName +"</b><br /> "+dataHash.streetAddress.street1 +" "+ dataHash.streetAddress.street2+"<br />" + dataHash.streetAddress.city +", "+ dataHash.streetAddress.state +"  "+ dataHash.streetAddress.zip +"</div>";
	}
	
	return out;
}

// function sets up constant edit displays --- NEEDS TO INCLUDE: "edit instructions link", "internal&external toggle", "internal view warning"
// -- DIV ID's: "editingInstructions"
// -- CLASSES: "editingInstructions"
//--ID AND class needed?
function addEditDisplays(url){
	
	if(!url){
		url= baseURL + "inc/php/editDisplay.php?toggleDisplay="+isToggledExternal;
	} else {
		url= baseURL + url;
	}
	var locationRef = document.getElementById(designConfig.editFeatures);
	//alert("called");
	//var locationRefCount = 0;
	
	//waitForIt();
	
	//function waitForIt(){
		//if(designConfig.editFeatures != "false" && locationRef){
			insertEditBar()
		//} else if(locationRefCount < 5){
			//locationRefCount++;
			//waitForIt();
		//}
	//}
	
	function insertEditBar (){
		var eBar = xhrRequest("html");
		eBar.open('GET', url, true);
		eBar.onreadystatechange = function() {
			if (eBar.readyState == 4 && eBar.status == 200) {
				var editfeature = eBar.responseText;
				if(!document.getElementById("editBar") && editfeature !=""){
					var editfeatureArray = editfeature.split(";");
					var editWelcome = editfeatureArray[0];
					var editToggleArray = editfeatureArray[1].split(",");
					var editToggleFunction = editToggleArray[0];
					var editToggleText = editToggleArray[1];
					var editScim = editfeatureArray[2];
					
					//Edit Bar DOM
					var editBar = document.createElement('DIV');
					editBar.setAttribute('id', 'editBar');
					editBar.setAttribute('class', 'editBar');
					editBR = document.createElement('br');
					editBar.appendChild(editBR);
					
					//Welcome text DOM
					if(editWelcome != "none"){
						editBar.appendChild(document.createTextNode(editWelcome+" : "));
					}
					
					//Toggle link DOM
					var editBarToggle = document.createElement('a');
					editBarToggle.setAttribute('id', 'editBarToggle');
					if(editToggleFunction != "none"){
						//editBarToggle.setAttribute('onClick', editToggleFunction);
						//editBarToggle.setAttribute('href', '#');
						editBarToggle.setAttribute("href","javascript:void(0)");
						editBarToggle.onmousedown = function(){toggleView('true')};
					} else {
						editBarToggle.setAttribute('href', '');
					}
					editBarToggle.appendChild(document.createTextNode(editToggleText));
					editBar.appendChild(editBarToggle);
					
					//Scim Link DOM
					if(editScim != "none"){
						var editBarScim = document.createElement('a');
						editBarScim.setAttribute('id', 'editBarScim');
						editBarScim.setAttribute('href', 'http://www.cr.usgs.gov/scim.php');
						editBarScim.appendChild(document.createTextNode(" | "+editScim));
						editBar.appendChild(editBarScim);
					}
					
					//var editBarText = document.createTextNode("<br />" + editfeature +"<div class='clearIt'></div>");
					//editBar.appendChild(editBarText);
					
					locationRef.appendChild(editBar);
				} else if(document.getElementById("editBar") && editfeature !=""){
					var editfeatureArray = editfeature.split(";");
					var editWelcome = editfeatureArray[0];
					var editToggleArray = editfeatureArray[1].split(",");
					var editToggleFunction = editToggleArray[0];
					var editToggleText = editToggleArray[1];
					var editScim = editfeatureArray[2];
					document.getElementById("editBarToggle").innerHTML = editToggleText;
				}
				
			}
		};
	eBar.send(null);
	}
}

// function that cleans up content from SCIM
// -- CLASSES: "rightPic"
function buildSummary(content) {
	var image = extractImg(content);
	var cleanText = stripHTML(content);
	if (image == undefined) {
		var summary = cleanText.substr(0,1000);
	} else {
		var summary = "<div class='rightPic'>"+image+"</div>"+cleanText.substr(0,1000);
	}
	return summary;
}