/* 
Blog Preferences Form JavaScript 
Updated: 5/15/2007
Created by: Strategic Net Applications, Inc.
http://www.snapps.com
*/

if(h_isBeingEdited){
	dojo.require("dojo.widget.Editor2");
	dojo.require("dojo.widget.Editor2Plugin.FindReplace");
	dojo.require("dojo.widget.Editor2Plugin.TableOperation");
	dojo.require("dojowidgets.widget.LinkTypeOperation");
	dojo.require("dojowidgets.widget.ImageTypeOperation");
	dojo.require("dojowidgets.widget.Smiley");
	dojo.require("dojowidgets.widget.SpecialChar");
	dojo.require("dojo.dnd.*");
	dojo.require("dojowidgets.widget.ModalInput");
}

var oCustomText;
var g_LinkNum = 0;

function openPrintDocument(sURL){ 
	sURL = sURL.replace( /\&Form\=[A-Za-z_0-9]*/i, "");
	var szUrl = sURL + "&Form=h_PrintUI";
	window.open( szUrl, "Print", 'width=425,height=500,resizable=yes,scrollbars=yes,menubar=yes,toolbar=yes');
}

function displayEditor(){
	dojo.byId("editFieldsSpan").style.display = 'block';
	
	dojo.byId("CBT_HL").style.display = 'block';
	var oComments = dojo.byId("customBlogTextDiv");
	oComments.innerHTML = qp_adjustRTEText(c_CustomBlogText);
	
	if ( qp_useDojoEditor() ) {
		oComments.innerHTML = qp_adjustRTEText(c_CustomBlogText);

		oCustomText = dojo.widget.createWidget("Editor2", 
		{
			toolbarTemplatePath: dojo.uri.dojoUri("../dojowidgets/widget/templates/EditorToolbar_QWiliki.html"), 
			toolbarTemplateCssPath: dojo.uri.dojoUri("../dojowidgets/widget/templates/EditorToolbar_QWiliki.css"),
			height: "100px", 
			minHeight: "100px",
			shareToolbar: false,
			relativeImageUrls: true
	}, 
	oComments);

		qp_adjustRTESelection(oCustomText);
	} else {
		oComments.innerHTML = "<textarea style=\"width:100%\" cols=\"100\" rows=\"10\" name=\"oCustomText\" id=\"oCustomText\">" + qp_adjustRTEText(c_CustomBlogText) + "</textarea>";
	}
}

function displayLinks(){
	var oLinksField = dojo.byId("c_Links");
	var oBlogLinksTBody = dojo.byId("blogrollTBody");
	var sJSON = c_Links;
	
	var sHTML = '';
	if(sJSON != ''){
		var aJSON = eval(sJSON);
		var oRow, oDrag, oCell;
		for (var i = 0; i < aJSON.length; i++){
			oRow = oBlogLinksTBody.insertRow(-1);
			oRow.id = 'linkId-' + i;
			oRow.style.cursor = "move";
			oRow.setAttribute("url", aJSON[i].URL);
			//Make row draggable
			oDrag = new dojo.dnd.HtmlDragSource(oRow, "linkDragList");
			
			oCell = oRow.insertCell(-1);
			oCell.style.border = "1px solid #99C9E7";
			oCell.style.padding = "2px 5px 2px 5px";
			
			if((aJSON[i].URL == '') || (aJSON[i].URL == 'undefined')){
				oCell.style.fontWeight = "bold";
			}else{
				oCell.style.backgroundColor = "#f1f1f1";
			}
			oCell.innerHTML = aJSON[i].Title;
			
			oCell = oRow.insertCell(-1);
			oCell.style.textAlign = "right";
			oCell.width = "15";
			
			sHTML = '<a title="' + MSG_DELETE_LINK + '" href="javascript:deleteLink(\'linkId-' + i + '\');">';
			sHTML += '<img src="' + document.imgDelete.src + '" width="16" height="16" border="0" alt="' + MSG_DELETE_LINK + '" />';
			sHTML += '</a>';
			oCell.innerHTML = sHTML;
			g_LinkNum++;
		}
	}
	var dt = new dojo.dnd.HtmlDropTarget(oBlogLinksTBody, ["linkDragList"]);
}

function openAddLinkModal(){
	var sHTML = '<table cellpadding="0" cellspacing="2" border="0" width="100%">';
	sHTML += '<tr valign="top"><td>';
	sHTML += '<table cellpadding="0" cellspacing="2" border="0" width="100%">';
	
	//Title
	sHTML += '<tr><td class="h-fieldHeaderEdit-bgtext" style="font-weight:bold;">' + MSG_PREF_LINK_TITLE + '</td></tr>';
	sHTML += '<tr><td class="h-fieldEdit-text">';
	sHTML += '<' + 'input type="text" id="c_LinkTitle" style="width:98%;" title="' + MSG_PREF_LINK_TITLE + '" />';
	sHTML += '</td></tr>';
	
	//URL
	sHTML += '<tr><td class="h-fieldHeaderEdit-bgtext" style="font-weight:bold;">' + MSG_PREF_LINK_TIP + '</td></tr>';
	sHTML += '<tr><td class="h-fieldEdit-text">';
	sHTML += '<' + 'input type="text" id="c_LinkURL" style="width:98%;" title="' + MSG_PREF_LINK_TIP + '" />';
	sHTML += '</td></tr>';
	
	//Info
	sHTML += '<tr><td class="h-fieldEdit-text">';
	sHTML += MSG_PREF_LINK_CAT_TIP;
	sHTML += '</td></tr>';
	
	sHTML += '</table></td></tr></table>';
	
	var params = {
		widgetId: "modalNewLink",
		height: "220px",
		width: "300px",
		title: MSG_NEW_LINK,
		resizable: false,
		formText: sHTML,
		submitValue: MSG_ADD,
		cancelValue: MSG_CLOSE,
		submitFunction: "addLink"
	};
	var modal = new dojowidgets.widget.ModalInput(params);
}

function deleteLink(sID){
	var oBlogLinksTBody = dojo.byId("blogrollTBody");
	var oRow = dojo.byId(sID);
	var iRow = oRow.rowIndex;
	oBlogLinksTBody.deleteRow(iRow);
}

function addLink(){
	var oLinkTitleField = dojo.byId("c_LinkTitle");
	var oLinkURLField = dojo.byId("c_LinkURL");
	var oBlogLinksTBody = dojo.byId("blogrollTBody");
	if(oLinkTitleField.value == ''){
		dojo.require("dojowidgets.widget.ModalAlert");
		var params = {
			iconSrc: dojo.uri.dojoUri("../dojowidgets/widget/templates/images/error.gif"),
			alertText: MSG_LINK_MUST_HAVE_TITLE
		};
		var modal = new dojowidgets.widget.ModalAlert(params);
	}else{
		var oRow = oBlogLinksTBody.insertRow(-1);
		
		oRow.id = 'linkId-' + g_LinkNum;
		oRow.style.cursor = "move";
		oRow.setAttribute("url", oLinkURLField.value);
		//Make row draggable
		var oDrag = new dojo.dnd.HtmlDragSource(oRow, "linkDragList");
		
		oCell = oRow.insertCell(-1);
		oCell.style.border = "1px solid #99C9E7";
		oCell.style.padding = "2px 5px 2px 5px";
		
		if(oLinkURLField.value == ''){
			oCell.style.fontWeight = "bold";
		}else{
			oCell.style.backgroundColor = "#f1f1f1";
		}
		oCell.innerHTML = oLinkTitleField.value;
		
		oCell = oRow.insertCell(-1);
		oCell.style.textAlign = "right";
		oCell.width = "15";
		
		var sHTML = '<a title="' + MSG_DELETE_LINK + '" href="javascript:deleteLink(\'linkId-' + g_LinkNum + '\');">';
		sHTML += '<img src="' + document.imgDelete.src + '" width="16" height="16" border="0" alt="' + MSG_DELETE_LINK + '" />';
		sHTML += '</a>';
		oCell.innerHTML = sHTML;
		
		//Empty the fields
		oLinkURLField.value = '';
		oLinkTitleField.value = '';
		g_LinkNum++;
	}
	return false;
}

function addLinksJSONToField(){
	var oLinksField = dojo.byId("c_Links");
	var oBlogLinksTBody = dojo.byId("blogrollTBody");
	var oRow;
	var sJSON = '[';
	for (var x = 0; x < oBlogLinksTBody.rows.length; x++){
		oRow = oBlogLinksTBody.rows[x];
		if(x!=0){
			sJSON += ',';
		}
		sJSON += '{"Title":"' + oRow.firstChild.innerHTML + '","URL":"' + oRow.getAttribute("url") + '"}';
	}
	sJSON += ']';
	
	oLinksField.value = sJSON;
}

//Had to change this funcion
function onKeyPressHandler (e) { 
	//logEnter("onKeyPressHandler");
	//logExit("onKeyPressHandler");
}

function checkFields(theForm){
	var isOk = true;
	var alertText = '';
	
	if(theForm.h_Name.value == ''){
		isOk = false;
		alertText += '<br />' + MSG_BLOG_TITLE;
	}
	if(theForm.c_NumOfEntries.value == ''){
		isOk = false;
		alertText += '<br />' + MSG_NO_ENTRIES;
	}
	if(theForm.c_NumOfArchiveMonths.value == ''){
		isOk = false;
		alertText += '<br />' + MSG_NO_ARCHIVE_MONTHS;
	}
	
	if(!isOk){
		dojo.require("dojowidgets.widget.ModalAlert");
		var params = {
			height: "180px",
			iconSrc: dojo.uri.dojoUri("../dojowidgets/widget/templates/images/error.gif"),
			alertText: '<strong>' + MSG_COMPLETE_FIELDS + '</strong>' + alertText
		};
		var modal = new dojowidgets.widget.ModalAlert(params);
	}else{
		var sCustomBlogText;
		if ( qp_useDojoEditor() ) {
			sCustomBlogText = oCustomText.getEditorContent();
		} else {
			sCustomBlogText = dojo.byId("oCustomText").value;
		}
		
		
		sCustomBlogText = sCustomBlogText.replace(/\r/g, '');
		sCustomBlogText = sCustomBlogText.split('../../../../').join('/qphtml/html/');
		theForm.c_CustomBlogText.value = sCustomBlogText;
		
		theForm.c_RSSLink.value = getAbsoluteRoomURL(self);
		
		addLinksJSONToField();
	}
	return isOk;
}

function QDK_HTMLForm_OnSubmitHandlerCallback(theForm){
	return checkFields(theForm);
}

function createCheckObj(oElement){
	var oTR, oReturn;
	var oParent = oElement.parentNode; //Div or TD
	var sNodeName = oParent.nodeName.toLowerCase();
	if(oParent.childNodes.length > 1){ //We have more objects in parent
		oReturn = oElement;
	}else{ //Only 1 object
		if(sNodeName == 'td'){ //Is a table cell
			oTR = oParent.parentNode;
			if(oTR.childNodes.length > 1){ //More than 1 cell in row
				oReturn = oParent;
			}else{
				sNodeName = "tr";
				oReturn = oTR;
			}
		}else{
			oReturn = oParent;
		}
	}
	var oObject = {
		checked: true,
		nodename: sNodeName,
		returnObj: oReturn
	};
	return oObject;
}

function initPrefRead(){
	var sURL = '../../s_BlogEntries?ReadViewEntries&CollapseView&Count=' + c_NumOfEntries;
	dojoGetXML(sURL, 'displayBlogEntries');
	
	try{
		var sHREF = "";
		var oObject, oParent;
		var aElements = document.getElementsByTagName("a");
		
		for (var i=0; i < aElements.length; i++){
			sHREF = aElements[i].getAttribute("href");
			
			if(sHREF.indexOf(":confirmEdit") > -1){ //Edit
				aElements[i].innerHTML = MSG_EDIT_PREFS;
			}else if(sHREF.indexOf(":confirmMove") > -1){ //Move
				oObject = createCheckObj(aElements[i]);
				oObject.returnObj.style.display = "none";
			}else if(sHREF.indexOf("h_PageType;h_Revision") > -1){ //New revision
				oObject = createCheckObj(aElements[i]);
				oObject.returnObj.style.display = "none";
			}else if(sHREF.indexOf("h_SetReadScene;h_StdPageStatus") > -1){ //Check out...
				oObject = createCheckObj(aElements[i]);
				oObject.returnObj.style.display = "none";
			}else if(sHREF.indexOf(":confirmDelete") > -1){ //Delete
				oObject = createCheckObj(aElements[i]);
				oObject.returnObj.style.display = "none";
			}else if(sHREF.indexOf(":confirmCopy") > -1){ //Copy
				oObject = createCheckObj(aElements[i]);
				oObject.returnObj.style.display = "none";
			}else if(sHREF.indexOf("h_SetEditScene;h_StdPageFormIndex") > -1){ //Create... or New...
				if(currentMember.m_isAnonymous){
					oObject = createCheckObj(aElements[i]);
					oParent = oObject.returnObj.parentNode;
					if(oParent && oParent.childNodes.length > 1){ //We have more objects in parent
						oObject.returnObj.style.display = "none";
					}else{
						oParent.style.display = "none";
					}
				}
			}
		}
	}catch(e){}
}

function initPrefEdit(){
	displayEditor();
	displayLinks();
	
	//Get form system name for Image
	var sURL = '../../h_FormDefinitions?ReadViewEntries&Count=1000';
	dojoGetXML(sURL, 'setImageFormSystemName');
}

dojo.addOnLoad(function(){
	if(h_isBeingEdited){
		initPrefEdit();
	}else{
		initPrefRead();
	}
});
