﻿// JScript File

		function tsCallEditingFunction(inFunction, inParams, inCallback)
		{
			var x = tsNewX();
			x.open("POST","/Editing/editFuncs.aspx", true);
			tsRawCallFunction(x, inFunction, inParams, inCallback);
		}
		function tsCallTaggingFunction(inFunction, inParams, inCallback)
		{
			var x = tsNewX();
			x.open("POST","/Tagging/tagFuncs.aspx", true);
			tsRawCallFunction(x, inFunction, inParams, inCallback);
		}
		function tsRawCallFunction(inXMLObj, inFunction, inParams, inCallback)
		{
			inXMLObj.onreadystatechange = function() {
				if (inXMLObj.readyState == 4)
					tsMasterCallback(inXMLObj, inCallback);
			};
			inXMLObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		
			var allParams="<params><function>" + inFunction + "</function>"+inParams+"</params>";
			inXMLObj.send("inParams="+allParams);
		}
		function tsSetParam(inName, inValue)
		{
			return "<"+inName+"><![CDATA["+escape(inValue)+"]]></"+inName+">";
		}
		function tsMasterCallback(inXMLObj, inCallback)
		{
			if (inXMLObj.responseXML.getElementsByTagName("resultCode").item(0).childNodes[0].nodeValue == "0") {
				inCallback(inXMLObj.responseXML.getElementsByTagName("resultText").item(0).childNodes[0].nodeValue, inXMLObj);
			}
			if (inXMLObj.responseXML.getElementsByTagName("resultCode").item(0).childNodes[0].nodeValue == "-1") {
				alert(inXMLObj.responseXML.getElementsByTagName("resultText").item(0).childNodes[0].nodeValue);
			}
		}
 		function tsNewX()
		{
			try{
				if(typeof ActiveXObject!="undefined")
				{
					return new ActiveXObject("Microsoft.XMLHTTP");
				}
				else if(window.XMLHttpRequest)
				{
					return new XMLHttpRequest;
				}
			}
			catch(a)
			{
			}
			return null;
		}


		function tsAjax_ReadingFunction(inFunction, inParams, inCallback)
		{
			var x = tsNewX();
			x.open("POST","/Reading/ReadFuncs.aspx", true);
			tsRawCallFunction(x, inFunction, inParams, inCallback);
		}
		
		function tsAjax_FetchFeedArticles(inType, inGuid, inMarkRead, inSortType, inCallback)
		{
			var funcParams = "";
			
			funcParams += tsSetParam("fetchType",inType);
			funcParams += tsSetParam("fetchGuid",inGuid);
			funcParams += tsSetParam("fetchMarkRead",inMarkRead);
			funcParams += tsSetParam("fetchSortType",inSortType);
			tsAjax_ReadingFunction("FetchFeedArticles", funcParams, inCallback);
		}
		
		function tsAjax_FetchTaggedArticles(inQuery, inCallback)
		{
			var funcParams = "";
			
			funcParams += tsSetParam("fetchQuery",inQuery);
			tsAjax_ReadingFunction("FetchTaggedArticles", funcParams, inCallback);
		}
		
		function tsAjax_FetchSavedArticles(inCallback)
		{
			var funcParams = "";		
			tsAjax_ReadingFunction("FetchSavedArticles", funcParams, inCallback);
		}
		
		function tsAjax_FetchRecentList(inCallback)
		{
			var funcParams = "";		
			tsAjax_ReadingFunction("FetchRecentList", funcParams, inCallback);
		}
		
		function tsAjax_FetchSingleArticle(inType, inGuid, inID, inCallback)
		{
			var funcParams = "";
			
			funcParams += tsSetParam("fetchType",inType);
			funcParams += tsSetParam("fetchGuid",inGuid);
			funcParams += tsSetParam("fetchID",inID);
			tsAjax_ReadingFunction("FetchSingleArticle", funcParams, inCallback);
		}
		
		function tsAjax_SaveArticle(inGuid, inID, inCallback)
		{
			var funcParams = "";
			
			funcParams += tsSetParam("fetchGuid",inGuid);
			funcParams += tsSetParam("fetchID",inID);
			tsAjax_ReadingFunction("SaveArticle", funcParams, inCallback);
		}
		
		function tsAjax_TABlogArticle(inID, inCallback)
		{
			var funcParams = "";
			
			funcParams += tsSetParam("fetchID",inID);
			tsAjax_ReadingFunction("TABlogArticle", funcParams, inCallback);
		}
		


		// note, this doesn't support the "//" xpath notation yet.
		function tsx_SelectNodes(inXMLObject, inXPath)
		{
			var curElement = inXMLObject.responseXML;
			var pathArray = inXPath.split("/");
			var i;
			
			for (i = 1; i < pathArray.length; i ++) {
				if (i != 1) curElement = curElement.item(0);
				curElement = curElement.getElementsByTagName(pathArray[i]);
			}
			return curElement;
		}
		
		
		
		
		
		
		// editing functions
		function AdminAddBEComment(inBEID)
		{
			var myCmt = prompt("Enter a comment:","");
			if (myCmt == null)
				return false;

			var funcParams = "";

			funcParams += tsSetParam("pPkgID", inBEID);
			funcParams += tsSetParam("pNote", myCmt);
			tsCallEditingFunction("AddAdminNote", funcParams, null);
		}
		
		
		
