
//This is the master tag name Array 
var tagListArray = new Array();

//This is the master document Array 
var docListArray = new Array();

//This is the master template Array 
var templateListArray = new Array();

var templateNameArray = new Array();
var templateDocIdArray = new Array();
var templateLastModifiedTimeArray = new Array();
var templateTagNameArray = new Array();

//templateNameArray templateDocIdArray templateLastModifiedTimeArray templateTagNameArray

var BFTagList = new Array();
var BPTagList = new Array();

//Searched Array
var searchResultArray;
var isSearchEnabled = false;

//boolean to check wether sorted assending or not
var isSorted = false;

//To count the number of documents
var index = 0;

//The TD Id count for the Side menu
var tdIdCount = 0;
var countOfaddRowinTemplateTableCalled = 0;

//		
var tmpForm;

	function getValues()
	{
		if(checkUserLogin())
		{
			message("Loading","block");
			fetchTemplates(); 	
			processResult();
		}
	}
	
	function processResult(obj)
	{
		getTagsList(obj);
		constructTagListTable();
		constructInnerDetailsView();
	}
	
	function getDocumentList(obj,tagName)
	{
		var obj = obj['document'];
		
		if(typeof obj.length == "undefined")
		{
			if(doesArrayContains(tagName,tagListArray))
			{
				var docNameObj = obj['documentName'];
				var docLastModTimeObj = obj['lastModifiedTime'];
				var docIdObj = obj['documentId'];
				var docLastModObj = obj['lastModifiedBy'];

				docListArray[index] = tagName + ","+ docNameObj + "," + docIdObj + "," + docLastModTimeObj + "," + docLastModObj;
				index ++;
			}
		}
		else
		{
			for(var i=0;i<obj.length;i++)
			{
					if(doesArrayContains(tagName,tagListArray))
					{
						var docNameObj = obj[i]['documentName'];
						var docLastModTimeObj = obj[i]['lastModifiedTime'];
						var docIdObj = obj[i]['documentId'];
						var docLastModObj = obj[i]['lastModifiedBy'];
	
						docListArray[index] = tagName + ","+ docNameObj + "," + docIdObj + "," + docLastModTimeObj + "," + docLastModObj;
						index ++;
					}
			}
		}
		showFormsWithTagClicked(tagName);
	}
	
	function getValuesForTags(tagName)
	{
		if(!handleCookies())
		{
			window.open(signinurl,"_top");
			return;
		}
		var docobj = "";
			
		var xmlhttp = new getXmlhttp();
			
		xmlhttp.open("POST", contextPath + "/getformsDoc.do" , true);
    	xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4) 
	    	{
		    	var htmlRes = (xmlhttp.responseText);
		    	htmlRes = eval("("+htmlRes+")");
		    	htmlRes = htmlRes["response"];
		    	
		    	if(htmlRes["error"] == null)
		    	{
					docobj = htmlRes["result"]["documents"];
					getDocumentList(docobj,tagName);
				}
				else
				{
					message("","none");
					alert("Unable to fetch the Templates.Logout once and login again.");
				}
	    	}
		}
    	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
   		xmlhttp.send("ticket=" + getCookieValue('EATICKET') + "&tagName=" + tagName);
	}
	
	function getTagsList()
	{
		tagListArray = new Array();
		
		var tagValues = BF["tagNames"].split(',');
		
		for(var i=0;i<tagValues.length;i++)
		{
			tagListArray[tagListArray.length] = tagValues[i];
		}
		
		tagValues = BP["tagNames"].split(',');
		
		for(var i=0;i<tagValues.length;i++)
		{
			tagListArray[tagListArray.length] = tagValues[i];
		}
		
	}
	
	function constructInnerDetailsViewHeader()
	{
		var parentNodeForTagList = document.getElementById("InnerDetailsView");
		parentNodeForTagList.appendChild(document.createTextNode(""));
		var header = "";
		header = header + "<td align='left' style='background-color:#b8d4ec;padding-top:5px; padding-left:5px; padding-bottom:5px;'>";
		header = header + "<div align='left'>Business Form Templates :</div>";
		header = header + "<td align='left' style='background-color:#b8d4ec;padding-top:5px; padding-left:5px; padding-bottom:5px;'>";
		header = header + "<div align='left'>Business Plan Templates:</div>";
		
		tmpTRObj = document.createElement("TR");
		tmpTDObj = document.createElement("TD");
		tmpTDObj.align="left";
		tmpTDObj.style.backgroundColor = "#b8d4ec";
		tmpTDObj.style.paddingTop="5px";
		tmpTDObj.style.paddingLeft="5px";
		tmpTDObj.style.paddingBottom="5px";
		var str = "<div align='left'>Business Form Templates :</div>";

		var spn = document.createElement("span");
		spn.innerHTML=str;
		tmpTDObj.appendChild(spn);

		tmpTRObj.appendChild(tmpTDObj);
		/*
		tmpTDObj = document.createElement("TD");
		tmpTDObj.align="left";
		tmpTDObj.style.backgroundColor = "#b8d4ec";
		tmpTDObj.style.paddingTop="5px";
		tmpTDObj.style.paddingLeft="5px";
		str = "<div align='left'>Business Plan Templates:</div>";
		
		var spn = document.createElement("span");
		spn.innerHTML=str;
		tmpTDObj.appendChild(spn);*/

		tmpTRObj.appendChild(tmpTDObj);
		
		parentNodeForTagList.appendChild(tmpTRObj);
	}
	
	function constructInnerDetailsView()
	{
		constructInnerDetailsViewHeader();
		var parentNodeForTagList = document.getElementById("InnerDetailsView");
		
		tagListArray.sort();
		
        for(var i=0;i<tagListArray.length;i++)
		{
			var trObjToAppend = addrowtoInnerDetailsView(tagListArray[i],BFTagList[i],BPTagList[i]);
			if(trObjToAppend != null)
			{
				parentNodeForTagList.appendChild(trObjToAppend);
			}
			
		}
		
		//REM BUSINESS FORMS comment the above for loop and uncomment this for loop to add the BP menu to BF menu
		/*for(var i=0;i<tagListArray.length;i++)
		{
			trObjToAppend = addrowtoInnerDetailsView1(tagListArray[i]);//,BFTagList[i],BPTagList[i]);
			if(trObjToAppend != null)
			{
				parentNodeForTagList.appendChild(trObjToAppend);
			}
		}*/
		//message("Loading","none");
	}
	
	function addrowtoInnerDetailsView1(tagName)// ,bftagName,bptagName)
	{
		var tmpTRObj = document.createElement("TR");
		var tmpTDObj1 = document.createElement("TD");
		var td1 = "";
		
		if(BF[tagName] != null)
		{
			td1 = insertValuestoTable(tmpTDObj1,BF[tagName].split(',')[0],tagName,"(" + BF[tagName].split(',')[1] + ")");
		}
		else
		{
			td1 = insertValuestoTable(tmpTDObj1,BP[tagName].split(',')[0],tagName,"(" + BP[tagName].split(',')[1] + ")");
		}
		if(td1 != "")// && td2 != "")
		{
			tmpTRObj.appendChild(td1); 
			//tmpTRObj.appendChild(td2);
			return tmpTRObj
		}
		return null
	}
	
	
	function addrowtoInnerDetailsView(tagName ,bftagName,bptagName)
	{
		var tmpTRObj = document.createElement("TR");
		var tmpTDObj1 = document.createElement("TD");
		var tmpTDObj2 = document.createElement("TD");
		var td1 = "";
		var td2 = "";
		
		if(typeof bptagName == "undefined" && typeof bftagName != "undefined")
		{
			td1 = insertValuestoTable(tmpTDObj1,BF[bftagName].split(',')[0],bftagName,"(" + BF[bftagName].split(',')[1] + ")");
			td2 = insertValuestoTable(tmpTDObj2,"","","");
		}
		else if(typeof bftagName == "undefined" && typeof bptagName != "undefined")
		{
			td1 = insertValuestoTable(tmpTDObj1,"","","");
			td2 = insertValuestoTable(tmpTDObj2,BP[bptagName].split(',')[0],bptagName,"(" + BP[bptagName].split(',')[1] + ")");
		}
		else if(typeof bftagName != "undefined" && typeof bptagName != "undefined")
		{
			td1 = insertValuestoTable(tmpTDObj1,BF[bftagName].split(',')[0],bftagName,"(" + BF[bftagName].split(',')[1] + ")");
			td2 = insertValuestoTable(tmpTDObj2,BP[bptagName].split(',')[0],bptagName,"(" + BP[bptagName].split(',')[1] + ")");
		}
		
		if(td1 != "" && td2 != "")
		{
			tmpTRObj.appendChild(td1); 
			//tmpTRObj.appendChild(td2);
			return tmpTRObj
		}
		return null
	}
	
	function insertValuestoTable(tdobj1,origName,tagName,numberOfDocs)
	{
		
		tdobj1.style.width = "56%";
		tdobj1.align="left";
		tdobj1.style.backgroundImage="url(images/bg_bookmark.gif)";
		tdobj1.style.borderRight="dotted 1px #CCCCCC";
		tdobj1.style.paddingTop="5px";
		tdobj1.style.paddingLeft="5px";
		tdobj1.style.paddingBottom="5px";
		
		var tmpAObj = document.createElement("A");
		tmpAObj.href = "javascript:showFormsWithTagClicked('"+ tagName +"');";
		tmpAObj.appendChild( document.createTextNode( origName ) );		
		tdobj1.appendChild(tmpAObj );
		tdobj1.appendChild(document.createTextNode(numberOfDocs));
		
		return tdobj1
	}
	
	function constructTagListTable()
	{
		tagListArray.sort();
		var parentNodeForTagList = document.getElementById("PLTVC_T_N0");
		tmpTBODYObj = document.createElement("tbody");
		
		tagNamesInBF = BF["tagNames"].split(',');
		tdIdCount = 1;
		for(var i=0;i<tagNamesInBF.length;i++)
		{
			var propValue = tagNamesInBF[i];
			if(typeof BF[propValue] != "undefined")
			{
				var trObjToAppend = getTagListObj(propValue,BF[propValue].split(',')[0]);
				if(trObjToAppend != "")
				{
					tmpTBODYObj.appendChild(trObjToAppend);
					BFTagList[i] = propValue;
				}
			}
		}
		
		parentNodeForTagList.appendChild(tmpTBODYObj);
		
		//REM BUSINESS FORMS want to comment this for adding BP menus to BF menu		
		var parentNodeForTagList = document.getElementById("PLTVC_T_N15");
		tmpTBODYObj = document.createElement("tbody");
		
		tagNamesInBP = BP["tagNames"].split(',');
		
		for(var i=0;i<tagNamesInBP.length;i++)
		{
			//TODO want to get the property values for the tag name
			 var propValue = tagNamesInBP[i]
			 if(typeof BP[propValue] != "undefined")
			 {
				 var trObjToAppend = getTagListObj(propValue,BP[propValue].split(',')[0]);
				 if(trObjToAppend != "")
				 {
					tmpTBODYObj.appendChild(trObjToAppend);
					BPTagList[i] = propValue;
				 }
			 }
		}
		
		parentNodeForTagList.appendChild(tmpTBODYObj);
	}
	
	function doesArrayContains(name,arrayName)
	{
		var hasValue = false;
		for(var j=0;j<arrayName.length;j++)
   		{
   			if(name == arrayName[j])
   			{
   				hasValue = true;
   				break;
   			}
   		}
   		return hasValue
	}
	
	function getTagListObj(hrefValue,htmlValue)
	{
		var tmpTRObj = document.createElement("tr");
        var tmpTDObj = document.createElement("td");
        
        var displayhtmlValue;
        if(htmlValue.length >= 18)
		{
			displayhtmlValue = htmlValue.substr(0, 18);
       		displayhtmlValue = displayhtmlValue + "...";
		}
		else
		{
			displayhtmlValue = htmlValue;
		}
		
		var str ="<img align='absmiddle' src='images/dropdown/space.gif' border='0' alt='' />";
		str = str + "<img id='PLTVC_IMG_N" + tdIdCount +"' align='absmiddle' src='images/dropdown/node.gif' border='0' />";
		str = str + "<a style='font-size:12px' title='" + htmlValue + "'href=\"javascript:showFormsWithTagClicked('"+ hrefValue +"');\">" + displayhtmlValue + "</a></td>";

		tmpTDObj.setAttribute("nowrap", "nowrap");
		
		var spn = document.createElement("span");
		spn.innerHTML=str;
		tmpTDObj.appendChild(spn);

		tmpTRObj.appendChild(tmpTDObj);
		
		tdIdCount++;
		
		return tmpTRObj
	}
	
	function showFormsWithTagClicked(tagClicked)
	{
		srchTxt.disabled=true;
		srchBtn.disabled=true;
		srchBtn.style.cursor="default";

		message("Loading","block");
		var isWantToFetch = true;
		
		//Count for the number of Documents for the tag Clicked
		var count = 0;
		
		for(var i=0;i<docListArray.length;i++)
		{
			if(tagClicked == docListArray[i].split(',')[0])
			{
				count++;
				isWantToFetch = false;
			}
		}
		

		//if the docArray consist this data then continue else fetch data
		if(isWantToFetch)
		{
			getValuesForTags(tagClicked);
		}
		else
		{
			var toHideTDObj = document.getElementById("formsMain");
			toHideTDObj.style.display = "none";
			document.getElementById("templateListView").style.display="none";
			var libraryViewObj = document.getElementById("libraryView");
			libraryViewObj.rowspan = "2";
			libraryViewObj.style.valign ="top";
			
			paintLibraryView(tagClicked);
			
			libraryViewObj.style.display="";
			message("Loading","none");
		}
	}
	
	function paintLibraryView(tagNameClicked)
	{
		var templateViewTableObj = document.getElementById("templateViewTable");
		
		//REM want to first clear the table and then add data
		var parentFortemplateViewTableObj = templateViewTableObj.parentNode;
		
		parentFortemplateViewTableObj.removeChild(templateViewTableObj);
		
		var tmpTBODYObj = document.createElement("TBODY");
		tmpTBODYObj.id="templateViewTable";
		
		parentFortemplateViewTableObj.appendChild(tmpTBODYObj);
		
		templateViewTableObj = tmpTBODYObj;
		
		var numberOfdocs = 0;
		
		for(var i=0;i<docListArray.length;i++)
		{
			if(docListArray[i].indexOf(tagNameClicked) != -1)
			{
				numberOfdocs++;
			}
		}
		
		if(typeof BP[tagNameClicked] != "undefined")
		{
			categoryName = BP[tagNameClicked].split(',')[0];
			if(categoryName.indexOf('business plans') == -1)
			{
				categoryName = categoryName + " Business Plans"; 
			}
		}
		else
		{
			categoryName = BF[tagNameClicked].split(',')[0];
			if(categoryName.indexOf('business forms') == -1)
			{
				categoryName = categoryName + " Business Forms"; 
			}
		}
		
		var templateDivTitleStr = "Now Browsing: " + categoryName + " (" + numberOfdocs + ")";
		
		document.getElementById("libraryViewTitle").innerHTML = templateDivTitleStr;
		
		
		//Begin of adding the rows of the templates
		var tagVsDocCount = 0;
		docListArray.sort();
		for(var i=0;i<docListArray.length;i++)
		{
			if(docListArray[i].indexOf(tagNameClicked) != -1)
			{
				
				if(i%2 == 0)
				{
					templateViewTableObj.appendChild(getRowTemplate(docListArray[i],"rowclear"));
				}
				else
				{
					templateViewTableObj.appendChild(getRowTemplate(docListArray[i],"rowgrey"));
				}
				tagVsDocCount++;
			}
		}
		//message("Loading","none");
		//end of adding the rows of the templates
	}

	function getRowTemplate(values,rowClassName)
	{
		var tmpTRObj = document.createElement("TR");
		var tmpTDObj = document.createElement("TD");
                     
		var splittedValue = values.split(",");
		var str = "<a href=\"javascript:getPreviewTemplate('" + splittedValue[1] + "','" +  splittedValue[2] +"','common')\">";
		str = str + "<img src='images/thumbs/" + splittedValue[0] + "/" + DocArray[splittedValue[1]]["image"] + "' border='0' title='" + splittedValue[0] +" Thumbnail'/></a>";
		
		
		tmpTDObj.className = rowClassName;
		tmpTDObj.style.paddingTop="10px";
		tmpTDObj.style.paddingBottom="10px";
		tmpTDObj.style.borderBottom="solid 1px #ccc";
		
		var spn = document.createElement("span");
		spn.innerHTML=str;
		tmpTDObj.appendChild(spn);
		
		tmpTRObj.appendChild(tmpTDObj);
		
		
		var tmpTDObj1 = document.createElement("TD");
		
		var categoryName = "";
		
		if(typeof BP[splittedValue[0]] != "undefined")
		{
			categoryName = BP[splittedValue[0]].split(',')[0];
		}
		else
		{
			categoryName = BF[splittedValue[0]].split(',')[0]
		}
		str = "<strong>Title: </strong>" + splittedValue[1] +"<br />";
		str = str + "<strong>Category:</strong> " + categoryName +"<br />"
		str = str + "<strong>Description:</strong>";
		str = str + DocArray[splittedValue[1]]["description"] + "<br /><p>";
		str = str + "<a href=\"javascript:getPreviewTemplate('" + splittedValue[1] + "','" + splittedValue[2] +"','common');\">";
		str = str + "<strong>Preview »</strong></a> | <a href=\"javascript:addToMyTemplate('" + splittedValue[1] + "','" + splittedValue[2] + "');\">";
		str = str + "<strong>Add to my templates »</strong></a></p>";
			
		tmpTDObj1.className = rowClassName;
		tmpTDObj1.style.paddingTop="10px";
		tmpTDObj1.style.paddingBottom="10px";
		tmpTDObj1.style.borderBottom="solid 1px #ccc";
		
		var spn = document.createElement("span");
		spn.innerHTML=str;
		tmpTDObj1.appendChild(spn);
		
		tmpTRObj.appendChild(tmpTDObj1);
		
		return tmpTRObj
	}
	
	function addToMyTemplate(docName,docId)
	{
		if(!handleCookies())
		{
			window.open(signinurl,"_top");
			return;
		}
		var xmlhttp = new getXmlhttp();
		message("Adding","block");
	   	xmlhttp.open("POST", contextPath + "/addtomytemplate.do" , true);
	    xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4) 
		    {
		    	if(xmlhttp.responseText.indexOf("Unable to add template") != -1)
		    	{
		    		alert("Unable to add template");
		    	}
		    	else
		    	{
		    		alert("Template added successfully");
			    	var htmlRes = eval('(' + xmlhttp.responseText + ')');
			    	processTemplates(htmlRes["response"]["result"]["templates"]);
		    	}
		    }
		}
		
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
    	xmlhttp.send("ticket="+ getCookieValue('EATICKET') +"&docId=" + docId);
	}
	
	function getPreviewTemplate(docName,docId,userType)
	{
		if(!handleCookies())
		{
			window.open(signinurl,"_top");
			return;
		}
		message("Loading","block");
		var xmlhttp = new getXmlhttp();

		   	xmlhttp.open("POST", contextPath + "/getFormContent.do" , true);
		   	if(userType == "common")
		   	{
			    xmlhttp.onreadystatechange = function() 
				{
					if (xmlhttp.readyState == 4) 
				    {
				    	var htmlRes = eval('(' + xmlhttp.responseText + ')');
				    	var temPreviewContent = htmlRes["response"]["result"]["document"];
				    	showPreview(temPreviewContent,docName);
				    }
				}
				
				xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		    	xmlhttp.send("action=common&docID=" + docId + "&ticket=" + getCookieValue('EATICKET'));
		    }
		    else if(userType == "user")
		    {
		    	xmlhttp.onreadystatechange = function() 
				{
					if (xmlhttp.readyState == 4) 
				    {
				    	var htmlRes = eval('(' + xmlhttp.responseText + ')');
				    	var temPreviewContent = htmlRes["response"]["result"]["template"];
				    	showPreview(temPreviewContent,docName);
				    }
				}
				
				xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		    	xmlhttp.send("action=user&docID=" + docId + "&ticket=" + getCookieValue('EATICKET'));
		    }
		    
	}
	
	function showPreview(temPreviewContent,docName)
	{
	    var windowInstance = window.open("","Preview","menubar=no,status=no,toolbar=no,scrollbars=yes,titlebar=no")
	    if(windowInstance != null)
	    {
		    var html = "<html><head><Title>"+ docName +"</Title></head><body>" + temPreviewContent + "</body></html>"
			message("Loading","none");
		    windowInstance.document.open()
		    windowInstance.document.write(html)
		    windowInstance.document.close()
	    }
	    else
	    {
	    	message("","none");
	    	alert("Unable to open preview.  Please check the popups settings of your browser");
	    }
    } 
	
	function fetchTemplates()
	{
		if(!handleCookies())
		{
			window.open(signinurl,"_top");
			return;
		}
		//TODO want to change this request to fetch templates of a user
		var xmlhttp = new getXmlhttp();
				
		xmlhttp.open("GET", contextPath + "/getTemplates.do?ticket=" + getCookieValue('EATICKET') + "&USERID=" + getCookieValue("USERID")+"&ttimems="+(new Date()).getTime(), true);
	    xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4) 
		    {
		    	var htmlRes = (xmlhttp.responseText);
		    	htmlRes = eval("("+htmlRes+")");
		    	
				if(htmlRes["response"]["error"] == null)
				{
					createCookie("FFT","false");
			    	processTemplates(htmlRes["response"]["result"]["templates"]);
				}
				else
				{
					message("","none");
					alert("Unable to fetch the Templates.Logout once and login again.");
					
					str = "Unable to fetch the Templates..";
					constructTemplateViewHeader(str);
				}
		    }
		}
    	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
    	xmlhttp.send("ticket=" + getCookieValue('EATICKET') + "&USERID=" + getCookieValue("USERID"));
	}
	
	function processTemplates(obj)
	{
		formTemplatesListArray(obj);
		constructTemplateListTable();
		constructViewMyTemplateTable();
	}
		
	function formTemplatesListArray(Responseobj)
	{
		var obj = Responseobj['template'];
		templateListArray = new Array();
		templateNameArray = new Array();
		templateDocIdArray = new Array();
		templateDocIdArray = new Array();
		////TODO want to remove this variable templateCount after getting API for fetching templates
		var templateCount = 0;
		if(typeof obj != "undefined")
		{
			if(typeof obj.length != "undefined")
			{
				for(var i=0;i<obj.length;i++)
				{
					var templateNameObj = obj[i]['templateName'];
					var templateIdObj = obj[i]['templateId'];
					var templateLastModObj = obj[i]['authorName'];
					
					//TODO wan t to remove this if condition after getting API for fetching templates
					try
					{
						templateListArray[templateCount] = templateNameObj + "," + templateIdObj + "," + templateLastModObj + "," + DocArray[templateNameObj]["tagName"];
						templateNameArray[templateCount] = templateNameObj;
						templateDocIdArray[templateCount] = templateIdObj;
						templateTagNameArray[templateCount] = DocArray[templateNameObj]["tagName"];
					}
					catch(e)
					{
						templateListArray[templateCount] = templateNameObj + "," + templateIdObj + "," + templateLastModObj + "," + "Template";
						templateNameArray[templateCount] = templateNameObj;
						templateDocIdArray[templateCount] = templateIdObj;
						templateTagNameArray[templateCount] = "Template";
					}
					templateCount++;
				}
			}
			else
			{
				var templateNameObj = obj['templateName'];
				var templateIdObj = obj['templateId'];
				var templateLastModObj = obj['authorName'];
				
				try
				{
					templateListArray[templateCount] = templateNameObj + "," + templateIdObj + "," + templateLastModObj + "," + DocArray[templateNameObj]["tagName"];
					templateNameArray[templateCount] = templateNameObj;
					templateDocIdArray[templateCount] = templateIdObj;
					templateTagNameArray[templateCount] = DocArray[templateNameObj]["tagName"];
				}
				catch(e)
				{
					templateListArray[templateCount] = templateNameObj + "," + templateIdObj + "," + templateLastModObj + "," + "Template";
					templateNameArray[templateCount] = templateNameObj;
					templateDocIdArray[templateCount] = templateIdObj;
					templateTagNameArray[templateCount] = "Template";
				}
				
				templateCount++;
			}
		}
	}
	function constructTemplateViewHeader(noresultStr)
	{
		var templateViewObj = document.getElementById("templateView");
		var parent;
		if(templateViewObj != null) 
		{
			parent = templateViewObj.parentNode;
			parent.removeChild(templateViewObj);
		}
		
		tmpTBODYObj = document.createElement('tbody');
		tmpTBODYObj.id = "templateView";
		parent.appendChild(tmpTBODYObj);
		
		templateViewObj = tmpTBODYObj;
						
		//Generating First Row
		var tmpTRObj1 = document.createElement("TR");
		var tmpTDObj = document.createElement("TD");
		tmpTDObj.setAttribute("nowrap","nowrap");
		tmpTDObj.width="31%";
		tmpTDObj.className = "rowclear";
		tmpTDObj.style.backgroundColor = "#b8d4ec";
		var tmpSTRONGObj = document.createElement("STRONG");
		tmpSTRONGObj.innerHTML = "File Name :";
		
		tmpTDObj.appendChild(tmpSTRONGObj);
		
		tmpTRObj1.appendChild(tmpTDObj);
		
		var tmpTDObj = document.createElement("TD");
		tmpTDObj.setAttribute("nowrap","nowrap");
		tmpTDObj.width="29%";
		tmpTDObj.className = "rowclear";
		tmpTDObj.style.backgroundColor = "#b8d4ec";
		var tmpSTRONGObj = document.createElement("STRONG");
		tmpSTRONGObj.innerHTML = "Category :";
		
		tmpTDObj.appendChild(tmpSTRONGObj);
		
		tmpTRObj1.appendChild(tmpTDObj);
				
		var tmpTDObj = document.createElement("TD");
		tmpTDObj.setAttribute("nowrap","nowrap");
		tmpTDObj.width="25%";
		tmpTDObj.className = "rowclear";
		tmpTDObj.style.backgroundColor = "#b8d4ec";
		var tmpSTRONGObj = document.createElement("STRONG");
		tmpSTRONGObj.innerHTML = "File Actions :";
		
		tmpTDObj.appendChild(tmpSTRONGObj);
		
		tmpTRObj1.appendChild(tmpTDObj);
		
		//Appending First Row		
		templateViewObj.appendChild(tmpTRObj1);
				
		//Generating Second Row		
		var tmpTRObj2 = document.createElement("TR");
		var tmpTDObj = document.createElement("TD");
		tmpTDObj.setAttribute("nowrap","nowrap");
		tmpTDObj.className = "formoptions";
		tmpTDObj.style.padding = "5px 0 5px 10px";
		tmpAObj1 = document.createElement("A");
		tmpAObj1.href = "javascript:selectAll();";
		tmpAObj1.innerHTML = "Select All";
		
		tmpTDObj.appendChild(tmpAObj1);
		tmpTDObj.appendChild(document.createTextNode(" | "));
		
		tmpAObj2 = document.createElement("A");
		tmpAObj2.href = "javascript:deSelectAll();";
		tmpAObj2.innerHTML = "Deselect All";
		
		tmpTDObj.appendChild(tmpAObj2);
		
		tmpTRObj2.appendChild(tmpTDObj);
		
		var tmpTDObj = document.createElement("TD");
		tmpTDObj.setAttribute("nowrap","nowrap");
		tmpTDObj.className = "formoptions";
		tmpTDObj.style.padding = "5px 0 5px 5px";
		tmpAObj = document.createElement("A");
		tmpAObj.href = "javascript:sortBy('type');";
		
		tmpTDObj.appendChild(document.createTextNode("Sort by:"));
		
		tmpAObj.innerHTML = "Type";
		
		tmpTDObj.appendChild(tmpAObj);
		
		tmpTRObj2.appendChild(tmpTDObj);
				
		var tmpTDObj = document.createElement("TD");
		tmpTDObj.setAttribute("nowrap","nowrap");
		tmpTDObj.className = "formoptions";
		tmpTDObj.style.padding = "5px 0 5px 5px";
		tmpAObj = document.createElement("A");
		tmpAObj.href = "javascript:sortBy('name');";
		
		tmpTDObj.appendChild(document.createTextNode("Sort by:"));
		
		tmpAObj.innerHTML = "Name";
		
		tmpTDObj.appendChild(tmpAObj);
		
		tmpTRObj2.appendChild(tmpTDObj);
		
		templateViewObj.appendChild(tmpTRObj2);
		
		
		if(typeof noresultStr != "undefined")
		{
			var tmpTRObj = document.createElement("TR");
			var tmpTDObj = document.createElement("TD");
			tmpTDObj.className = "nowbrowsing";
			tmpTDObj.setAttribute("nowrap","nowrap");
			var tmpSPANObj = document.createElement("SPAN");
			tmpSPANObj.innerHTML = noresultStr;//"There are no templates that match your search.";
			tmpTDObj.appendChild(tmpSPANObj);
			tmpTRObj.appendChild(tmpTDObj);
			
			templateViewObj.appendChild(tmpTRObj);
		}
	}
	
	function constructTemplateListTable()
	{

		constructTemplateViewHeader();
		
		var templateViewObj = document.getElementById("templateView");
		
		countOfaddRowinTemplateTableCalled = 0;
		
		if(templateListArray.length >0 )
		{
			for(var i=0;i<templateListArray.length;i++)
			{
				templateViewObj.appendChild(addRowinTemplateTable(templateListArray[i]));
			}
		}
		else
		{
			templateViewObj.appendChild(addRowinTemplateTable("No templates available for this user"));
		}
	}
	
	function addRowinTemplateTable(definition)
	{
		var tmpTRObj = document.createElement("TR");
		if(definition.indexOf("No templates available for this user") == -1)
		{
			var tmpTDObj1 = document.createElement("TD");
			var tmpTDObj2 = document.createElement("TD");
			var tmpTDObj3 = document.createElement("TD");
			var tmpTDObj4 = document.createElement("TD");
			
			//templateListArray ::Franchise Feasibility Test,1827000000012013,sujai
			
			if(countOfaddRowinTemplateTableCalled % 2 == 0)
			{
				rowClassName = "rowgrey";
			}
			else
			{
				rowClassName = "rowclear";
			}
			
			countOfaddRowinTemplateTableCalled++;
			
			var splittedValue = definition.split(',');
			
			//tmpTDObj1.setAttribute("nowrap","nowrap");
			tmpTDObj1.className = rowClassName;
			var str1 = "<input type='checkbox' name='checkbox2' value='checkbox' id='" + splittedValue[1] +"'/> " + splittedValue[0];
			
			var spn = document.createElement("span");
			spn.innerHTML=str1;
			tmpTDObj1.appendChild(spn);
			
			//tmpTDObj2.setAttribute("nowrap","nowrap");
			tmpTDObj2.className = rowClassName;
			
			try
			{
				str1 = "<img src='images/large_icons/icon_doc2.gif' width='21' height='22' align='absmiddle' class='docimg'/> "+ DocArray[splittedValue[0]]["tagName"] +" - Business Form";
			}
			catch(e)
			{
				str1 = "<img src='images/large_icons/icon_doc2.gif' width='21' height='22' align='absmiddle' class='docimg'/> "+ "Template" +" - Business Form";
			}
			
			spn = document.createElement("span");
			spn.innerHTML=str1;
			tmpTDObj2.appendChild(spn);
			
			
			tmpTDObj3.setAttribute("nowrap","nowrap");
			tmpTDObj3.className = rowClassName;
			str1 = "<a href=\"javascript:getPreviewTemplate('" + splittedValue[0] + "','" + splittedValue[1] +"','user');\">Preview</a> | <a href=\"" + contextPath +"/gettemplateeditor.do?ticket=" + getCookieValue('EATICKET')+ "&templateId="+ splittedValue[1] + "\">Edit</a>";// | <a href=\"javascript:;\">Export</a>";
			
			spn = document.createElement("span");
			spn.innerHTML=str1;
			tmpTDObj3.appendChild(spn);
			
			tmpTRObj.appendChild(tmpTDObj1);
			tmpTRObj.appendChild(tmpTDObj2);
			tmpTRObj.appendChild(tmpTDObj3);
		}
		else
		{
			var tmpTDObj = document.createElement("TD");
			tmpTDObj.innerHTML = definition;
			tmpTDObj.className = "nowbrowsing";
			tmpTDObj.setAttribute("nowrap","nowrap");
			tmpTRObj.appendChild(tmpTDObj);
		}
		return tmpTRObj
	}
	function constructViewMyTemplateTable()
	{
		var parrentNode = document.getElementById("PLTVC_T_N40");
		var aaa = document.getElementById("aaa");
		if(aaa != null) {
			var parent = aaa.parentNode;
			parent.removeChild(aaa);
		}
        var tbody = document.createElement('tbody');
        tbody.id = "aaa";
        var templpateViewHeader = document.getElementById("templpateViewHeader");
        templpateViewHeader.innerHTML = "View My Templates (" + templateListArray.length + ")";
        
        for(var i=0;i<templateListArray.length;i++)
		{
			//templateListArray ::Franchise Feasibility Test,1827000000012013,sujai
        	tbody.appendChild(addRowinSideBarTeplateTable(templateListArray[i]));
		}
		parrentNode.appendChild(tbody);
		message("Loading","none");
	}
	
	function addRowinSideBarTeplateTable(rowValue)
	{
		var tmpTRObj = document.createElement("TR");
		var tmpTDObj = document.createElement("TD");
		
		var splittedValue = rowValue.split(',');
		
		var html = "";
		
		var name = "";
		
		if(splittedValue[0].length >= 18)
		{
			name = splittedValue[0].substr(0, 18);
       		name = name + "...";
		}
		else
		{
			name = splittedValue[0];
		}
		
		html = "<img align='absmiddle' src='images/dropdown/space.gif' border='0' alt='' />";
       	html = html + "<img id='PLTVC_IMG_N41' align='absmiddle' src='images/dropdown/node.gif' border='0' />";
       	html = html + "<a style = 'font-size:12px' title='" + splittedValue[0] + "' href=\"" + contextPath +"/gettemplateeditor.do?ticket=" + getCookieValue('EATICKET')+ "&templateId="+ splittedValue[1] + "\">"+ name +"</a>";
       	
		tmpTDObj.setAttribute("nowrap", "nowrap");
       	tmpTDObj.innerHTML = html;
       	
       	tmpTRObj.style.width = "100%";
       	tmpTRObj.appendChild(tmpTDObj);
		
		return tmpTRObj
	}


	var srchTxt = document.getElementById("searchFieldText");
	var srchBtn = document.getElementById("btnSearch");            
	
	function showTemplates()
	{
		srchTxt.disabled=false;
		srchBtn.disabled=false;	
		document.getElementById("libraryView").style.display="none";		
		document.getElementById("formsMain").style.display = "none";		
		document.getElementById("templateListView").style.display="";
	}
	
	function showFormsMainPage()
	{
		srchTxt.disabled=true;
		srchBtn.disabled=true;	
		srchBtn.style.cursor="default";
		document.getElementById("templateListView").style.display="none";
		document.getElementById("libraryView").style.display="none";
		document.getElementById("formsMain").style.display = "";
	}	
	
	function showTemplateLibrary()
	{
		document.getElementById("templateListView").style.display="none";
		document.getElementById("formsMain").style.display = "none";
		document.getElementById("libraryView").style.display="";
	}
	
	function timeInString(timeInMillis)
	{
	    var datte = new Date();
	    datte.setTime(timeInMillis);
	    var yyear = datte.getFullYear();
	    var mmonth = datte.getMonth()+1;
	    var dday = datte.getDate();
	    var hhour = datte.getHours();
	    var mmin = datte.getMinutes();
	    var dateInString = mmonth+"-"+dday+"-"+yyear;
	    return dateInString;
	}
	
	function sortBy(definition)
	{
		if(templateListArray.length > 1)
		{
			var arrayToSort = new Array();
			
			if(definition == "type")
			{
				for(var i=0;i<templateTagNameArray.length;i++)
				{
					if(!doesArrayContains(templateTagNameArray[i],arrayToSort))
		   			{
		   				if(isSearchEnabled)
		   				{
		   					for(var k=0;k<templateTagNameArray.length;k++)
		   					{
		   						for(var t=0;t<searchResultArray.length;t++)
		   						{
			   						var param = searchResultArray[t];
			   						param = param.split(',')[3];
				   					if(templateTagNameArray[i].indexOf(param) != -1)
				   					{
				   						arrayToSort[i] = templateTagNameArray[i];
				   					}
			   					}
		   					}			
		   				}
		   				else
		   				{
		   					arrayToSort[i] = templateTagNameArray[i];		   				
		   				}
		   			}
				}
				checkType = 3;
			}
			else if(definition == "name")
			{
				for(var i=0;i<templateNameArray.length;i++)
				{
					if(isSearchEnabled)
	   				{
	   					for(var k=0;k<templateNameArray.length;k++)
	   					{
	   						for(var t=0;t<searchResultArray.length;t++)
	   						{
		   						var param = searchResultArray[t];
		   						param = param.split(',')[0];
			   					if(templateNameArray[i].indexOf(param) != -1)
			   					{
			   						arrayToSort[i] = templateNameArray[i];
			   					}
		   					}
	   					}			
	   				}
					else
					{
						arrayToSort[i] = templateNameArray[i];
					}
				}
				checkType = 0;
			}
			
			constructTemplateViewHeader();
					
			//templateNameArray templateDocIdArray templateTagNameArray
			var parrentNode = document.getElementById("templateView");
	
	
			
			if(!isSorted)
			{
				arrayToSort.sort();
				isSorted = true;
			}
			else
			{
				arrayToSort.sort();
				arrayToSort.reverse();
				isSorted = false;
			}
			
			//templateListArray ::Notice of Breach of Lease,1827000000012005,sujai,leasing
			countOfaddRowinTemplateTableCalled = 0;
			
			for(var i=0;i<arrayToSort.length;i++)
			{
				for(var j=0;j<templateListArray.length;j++)
				{
					if((arrayToSort[i]) == templateListArray[j].split(',')[checkType])
					{
				        parrentNode.appendChild(addRowinTemplateTable(templateListArray[j]));
				        if(checkType != 3)
				        {
				        	break;
				        }
				    }
			    }
	        }
        }
	}
	
	function searchTemplate(searchValue)
	{
		var templateViewObj = document.getElementById("templateView");
		var parent = templateViewObj.parentNode;
		
		var noresult = false;
		
		searchResultArray = new Array();
		
		if(searchValue == "" )
		{
			constructTemplateListTable();
			isSearchEnabled = false;
		}
		
		var count = 0;
		
		for(var i=0;i<templateListArray.length;i++)
		{
			var tmplateValue =  templateListArray[i];
			tmplateValue = tmplateValue.split(",");
			if(tmplateValue[0].indexOf(searchValue) != -1)
			{
				searchResultArray[count++] = templateListArray[i];
			}
		}
		
		if(searchResultArray.length == 0)
		{
			isSearchEnabled = false;
			if(templateViewObj != null) 
			{
				//parent = templateViewObj.parentNode;
				parent.removeChild(templateViewObj);
			}
			
			tmpTBODYObj = document.createElement('tbody');
			tmpTBODYObj.id = "templateView";
			parent.appendChild(tmpTBODYObj);
			
			templateViewObj = tmpTBODYObj;
			
			str = "Your search did not match any templates.";
			
			constructTemplateViewHeader(str);
		}
		else
		{
			isSearchEnabled = true;
			
			constructTemplateViewHeader();

			templateViewObj = document.getElementById("templateView");
			
			countOfaddRowinTemplateTableCalled = 0;
			
			for(var i=0;i<searchResultArray.length;i++)
			{
				templateViewObj.appendChild(addRowinTemplateTable(searchResultArray[i]));
			}
		}
	}
	function deletetemplate()
	{
		if(templateListArray.length > 0)
		{
			message("Deleting","block");
			var deleteValue = "";
			var checkedarray = document.getElementsByName("checkbox2");
			var count = 0;
			for(var i=0;i<checkedarray.length;i++)
			{
				if(checkedarray[i].checked)
				{
					deleteValue = deleteValue + "," + checkedarray[i].id;
					count++;
				}
			}
			
			
			if(deleteValue != "")
			{
				if(!handleCookies())
				{
					window.open(signinurl,"_top");
					return;
				}
				var xmlhttp = new getXmlhttp();
				
				xmlhttp.open("POST", contextPath + "/deletetemplate.do" , true);
		    	xmlhttp.onreadystatechange = function() 
				{
					if (xmlhttp.readyState == 4) 
			    	{
				    	var htmlRes = (xmlhttp.responseText);
				    	htmlRes = eval("("+htmlRes+")");
				    	processTemplates(htmlRes["response"]["result"]["templates"]);
				    	message("","none");
			    	}
				}
		   		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		   		xmlhttp.send("ticket=" + getCookieValue('EATICKET') + "&count=" + count + "&values=" + deleteValue);
	   		}
	   		else
	   		{
	   			message("","none");
	   		}
		}
	}
	
	
	function iframeResponse(result)
	{
		processTemplates(result["response"]["result"]["templates"]);
	}
	
	function selectAll()
	{
		var checkedarray = document.getElementsByName("checkbox2");
		var count = 0;
		for(var i=0;i<checkedarray.length;i++)
		{
			if(checkedarray[i].checked == false)
			{
				checkedarray[i].checked = true;
			}
		}
	}
	function deSelectAll()
	{
		var checkedarray = document.getElementsByName("checkbox2");
		var count = 0;
		for(var i=0;i<checkedarray.length;i++)
		{
			if(checkedarray[i].checked == true)
			{
				checkedarray[i].checked = false;
			}
		}
	}
