//----------------------------------------------------
//---------------------------------------------------- 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 determinCall(){//This Is called after 'buildQuery' in dataCall.js
	var url="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();
	}
	};
	dd.send(null);
}

// function for determining if logged in users can add new content
function getItemButtons() {
	var url=createItemScriptURL+relativePath;
	if(determineDisplay == "internal"){
		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="<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 theButton = document.createElement('DIV');
							theButton.setAttribute('id', dataModel[cB][0]+'_newItem');
							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"
//------------ "hiddenItem"
//------------ "scimItem"
// -- 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 + "' class='scimItem'><a href='" + viewContentURL + "?varCSI=" + dataHash.itemID + "&vcHeadline=" + dataHash.title + "'>"+ dataHash.title+ "</a><br />"+ dataHash.summary + "<br /><br /></div>";
		out = out + "<div class='metaData'>" + metadata + "</div>";
		
	} else if (outputType == "showContent") {
		out = out + "<div id='itemID"+ dataHash.itemID + "' class='scimItem'>"
		out = out + "<a href=\"javascript:showItem('content" + dataHash.itemID + "','" + elementID + "')\">";
		out = out + dataHash.title;
		out = out + "</a>";
		out = out + "<div id='content" + dataHash.itemID + "' style='display:none;' class='hiddenItem'>";
		out = out + dataHash.content + "<br /><br />";
		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 + "' class='scimItem'>" + enhancedSummary + "...[<a href='" + viewContentURL + "?varCSI=" + dataHash.itemID + "&vcHeadline=" + dataHash.title + "'>More</a>]</div>";
	
	} else if (outputType == "fullContent") {
		out = out + "<div id='itemID" + dataHash.itemID +"'  class='scimItem'>"
		out = out + dataHash.content;
		out = out + "<div class='metaData'>" + metadata + "</div>";
		out = out + "</div>";
	}
	
	else if (outputType == "pictureShortSummary") {
		var pictureShortSummary = buildSummary(dataHash.content,false);
		out = out + "<div id='itemID" + dataHash.itemID + "' align='left'  class='scimItem'>" + pictureShortSummary
		out = out + "<a href='" + viewContentURL + "?varCSI=" + dataHash.itemID+ "&vcHeadline=" + dataHash.title + "'>";
		out = out + dataHash.title;
		out = out + "</a><br />" + dataHash.summary + "<br /><br/>";
		out = out + "<div class='metaData'>" + metadata + "</div>";
		out = out + "</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="inc/php/editDisplay.php";
	}
	var locationRef = document.getElementById(designConfig.editFeatures);
	
	if(designConfig.editFeatures != "false" && locationRef){
		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 editBar = document.createElement('DIV');
					editBar.setAttribute('id', 'editBar');
					editBar.setAttribute('class', 'editBar');
					locationRef.appendChild(editBar);
					document.getElementById("editBar").innerHTML = editfeature +"<div class='clearIt'></div>";
				} else if(document.getElementById("editBar") && editfeature !=""){
					document.getElementById("editBar").innerHTML = editfeature +"<div class='clearIt'></div>";
				}
				
			}
		};
	eBar.send(null);	
	} else{
		var locationRef = document.getElementById(designConfig.editFeatures);
	}
	
}

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