

/**********
TAGS SECTION
***********/

function editTags(picId) {

	//set the current tag for later editing
	var currentPicId = getNode("currentId");
	currentPicId.value = picId;
		
	var tagValues = getNode(picId + "tagValues");

	tagValues.parentNode.removeChild(tagValues);

	var newEditDiv = createEditTagsDiv(picId);	
	var tagEditContainer = getNode(picId + "tagValuesContainer");
	//if there's an extra child here, kill it.

	tagEditContainer.appendChild(newEditDiv);	
}

function createEditTagsDiv(picId) {
	var newCell = document.createElement('Div');
	newCell.id=picId + "tagsEdit";
		
	var newInput = document.createElement("INPUT");
	newInput.type = 'text';
	newInput.size = 50;
	newInput.name = picId + 'txtTags';
	newInput.id=picId + 'txtTagsID';
	//set value of tags to that in hiddent text box
	hiddenTagsText = getNode(picId + "TagsHidden");
	newInput.value = hiddenTagsText.value;
		
		
	//var fct = function() { saveTags(id);}
	//create save button
	var newButton = document.createElement("BUTTON");
	newButton.className="saveButton";
	var buttext = document.createTextNode('SAVE');
	newButton.appendChild(buttext);
	
	newButton.onclick=function () {saveTags(); };
	//create cancel button
	var cancelButton = document.createElement("BUTTON");
	cancelButton.className="cancelButton";
	var buttextCancel = document.createTextNode('Cancel');
	cancelButton.appendChild(buttextCancel);
	cancelButton.onclick=function () {cancelButtonClick(); };	
		
	newCell.appendChild(newInput);
	newCell.appendChild(newButton);
	newCell.appendChild(cancelButton);
	return newCell;
}

//if cancel button clicked, go back to just displaying the tags
function cancelButtonClick() {
	var currentPicId = getNode("currentId");
	picId = currentPicId.value;
	var hiddenTagsText = getNode(picId + "TagsHidden");
	
	returnToTagDisplay(picId, hiddenTagsText.value);
}

function saveTags() {	
	
	var currentId = getNode("currentId");
	picId = currentId.value;
	var tags = getNode(picId + "txtTagsID");
	tagValues = tags.value;
	//alert(tagValues);
	
	//set  in hiddent text box
	hiddenTagsText = getNode(picId + "TagsHidden");
	hiddenTagsText.value = tagValues;
	
	//alert(id);
	saveTagsToDB(picId, tagValues);
	returnToTagDisplay(picId, tagValues);
}

//saves the new tags to the database
function saveTagsToDB(id, tags) {
	
	var sourceTypeNode = getNode("sourceType");
	var sourceType = sourceTypeNode.value;
	tags = replaceSubstring(tags, " ", "%20")
	var url = "/apps/tags/saveTags.asp";
	var postData = "s=" + sourceType + "&id=" + id + "&tags=" + tags;

	sendDataYahoo(url, postData);
}

//returns the display to just show the list of tags
function returnToTagDisplay(picId, tags) {

	var tagEdit = getNode(picId + "tagsEdit");
	tagEdit.parentNode.removeChild(tagEdit);

	var tagValuesContainer = getNode(picId + "tagValuesContainer");
	
	//if  there's an extra child here, kill it
	if(tagValuesContainer.firstChild) {
		tagValuesContainer.removeChild(tagValuesContainer.firstChild);
	}	
	var tagTextDiv = document.createElement("DIV");
	tagTextDiv.id = picId + "tagValues";	
	var tagTextNode = document.createTextNode(tags);

	tagTextDiv.appendChild(tagTextNode);
	tagValuesContainer.appendChild(tagTextDiv);	
}


function sendData(url) { 
var xmlDoc;
 var moz = (typeof document.implementation != 'undefined') && (typeof 
 document.implementation.createDocument != 'undefined'); 
 var ie = (typeof window.ActiveXObject != 'undefined'); 
//alert(url);

 if (moz) { 
   xmlDoc = document.implementation.createDocument("", "", null)
   //var loaded = xmlDoc.load(fixXmlMimeType(url));
   var loaded = xmlDoc.load(url);  
	if (loaded) { 
		repopulateHidden(xmlDoc); 
	}  
   xmlDoc.onload = createPopUp; 
 } else if (ie) { 
   xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
   xmlDoc.async = false;  
   xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4 ) {
				repopulateHidden(xmlDoc);			
				/*if (xmlDoc.status==200)	{
		 			alert("status = 200");
  					//createTable(xmlhttp)
					repopulateHidden(xmlDoc);
  				}
  				else{
  					alert("Problem retrieving XML data:" + xmlDoc.statusText);
  				}
				*/
			}
		};	
	//alert("about to load");
	xmlDoc.load(url);	
 } 
 
 //xmlDoc.load(url); 
}

/****
data handling section
***/

function sendDataYahoo(url, postData) {
	var handleSuccess = function(o){	
	//alert("success");
	}
	var handleFailure = function(o){
	
 	var div = getNode("errorMsg");
//o.getResponseHeader[ ]  
//o.getAllResponseHeaders  
//o.responseText  
//o.responseXML  
//o.argument 
div.innerHTML = "Transaction id: " + o.tId;   
div.innerHTML += "HTTP status: " + o.status;   
div.innerHTML += "Status code message: " + o.statusText;   
div.innerHTML += "<li>HTTP headers: <ul>" + o.getAllResponseHeaders + "</ul></li>";   
div.innerHTML += "PHP response: " + o.responseText;   
div.innerHTML += "Argument object: " + o.argument;  

		//alert("data was not saved. status = " + o.status + "; text=" + o.statusText + "; o.responseText=" + o.responseText);	
	}
	var callback =
	{
	  success:handleSuccess,
	  failure: handleFailure,
	  argument: ['foo','bar']
	}	
	     
var request = YAHOO.util.Connect.asyncRequest('POST', url + "?" + postData, callback, postData);
}


