		
/*
***************************************************************************
			-Client Side Widget 5th Column Functionality
			-Coded by VDSI(Jaffar/Nagesh)
***************************************************************************
***************************************************************************
*/		


  var strlen="";	
  var dom  

  var headId   


  function InitializeWidget()
  {
  CreateWidget();
  return false;
  }

function LoadWidget()
{


headId=document.getElementsByTagName("head")(0).id
  if(headId.indexOf("head")>-1)
    {
	//headId=headId.substring(0,headId.length-(headId.lastIndexOf("_")))
	headId=headId.substring(0,headId.lastIndexOf("_"))

	
    }
   else
	headId = "_ctl0";



if(!document.getElementById("WidgetDiv"))
{
	var tab3;
	if (document.all.SpanWidgetXMLArea)
	     tab3=document.all.SpanWidgetXMLArea
	else
	    tab3=document.getElementById(headId+'_ContentPlaceHolder1_SpanWidgetXMLArea');
	    
	tab3.innerHTML= tab3.innerHTML + "<div id='WidgetDiv'></div>" 
}




	
dom=new ActiveXObject("msxml2.domdocument")
var domLC=new ActiveXObject("msxml2.domdocument")

dom.loadXML(document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value);
if(dom.documentElement.nodeName=="root")
{
	document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value="<Controls></Controls>";
	dom.loadXML("<Controls></Controls>");
	
	return
}

//dom.loadXML(document.getElementById("hidXML").value);
var strHtml=""


for(i=0;i<dom.documentElement.childNodes.length;i++)
{
node=dom.documentElement.childNodes(i)

domLC.loadXML(node.childNodes(0).text)
var strHeader=domLC.documentElement.selectSingleNode("Header").attributes(0).text
var strDesc=domLC.documentElement.selectSingleNode("Description").attributes(0).text
try
{
var strWidgetPriority=domLC.documentElement.selectSingleNode("WidgetPriority").attributes(0).text
}
catch(ex)
{
strWidgetPriority="0";
}

strHtml+="<table width=400 id='widgetTab" + i + "'><tr><td>Header Text</td><td><input type=text value='" + strHeader + "' name='wHead" + i +"'></td></tr>"; 
strHtml+="<tr><td>Header Description</td><td><input type=text value='" + strDesc + "' name='wHeadDesc" + i +"'></td></tr>"; 
strHtml+="<tr><td>Priority</td><td><input type=text value='" + strWidgetPriority + "' name='wHeadPriority" + i +"'></td></tr>";
strHtml+="<tr><td colspan=2><table id='linkGrid" + (parseInt(i)+1) + "' width='100%'>";
strHtml+="<tr><td>Link Text</td><td>Description</td><td>Priority</td><td>URL</td><td>&nbsp;</td><td>&nbsp;</td></tr>";
for(j=0;j<domLC.documentElement.selectNodes("Link").length;j++)
{
nodeLink=domLC.documentElement.selectNodes("Link").item(j)
strLinkUrl=nodeLink.attributes(0).text;
strLinkText=nodeLink.attributes(1).text;
strLinkDesc=nodeLink.attributes(2).text;

try
{
strLinkPriority=nodeLink.attributes(3).text;
}
catch(ex)
{
strLinkPriority="0";
}

//strHtml+="<tr><td>" + strLinkText +"</td><td>" + strLinkDesc + "</td><td>" + strLinkPriority + "</td><td>" + strLinkUrl + "</td><td><a id='aEdit" + i + j + "' href='javascript:EditLink(" + parseInt((i)+1) + ",\"aEdit" + i + j + "\")'>Edit</a></td><td><a id='aDelete" + i + j + "' href='javascript:DeleteLink(" + parseInt((i)+1) + ",\"aDelete" + i + j + "\")'>Delete</a></td></tr>";
strHtml+="<tr><td>" + strLinkText +"</td><td>" + strLinkDesc + "</td><td>" + strLinkPriority + "</td><td>" + strLinkUrl + "</td><td><a id='aEdit" + i + j + "' href='javascript:EditLink(" + parseInt((i)+1) + ",\"aEdit" + i + j + "\")'>Edit</a></td><td><a id='aCancel" + i + j + "' href='javascript:CancelLink(" + parseInt((i)+1) + ",\"aCancel" + i + j + "\")' style=display:none>Cancel</a></td><td><a id='aDelete" + i + j + "' href='javascript:DeleteLink(" + parseInt((i)+1) + ",\"aDelete" + i + j + "\")'>Delete</a></td></tr>";
}
strHtml+="</table>";

strHtml+="</td></tr>";
strHtml+="<tr><td colspan=2><input type=button value='Add New Link' name='wAddNewLink" + i +"' onclick='AddLink(" + i + ")'><input type=button value='Update Widget' name='wUpdateWidget" + i +"' onclick='UpdateWidget(" + (i+1) + ")'></td></tr>";
strHtml+="<tr><td colspan=2><input type=button value='Delete Widget' name='wDeleteWidget" + i +"' onclick='DeleteWidget(" + i + ")'></td></tr>";
strHtml+="</table>";
}
// To display the "Add New Widget" button under the widget
if(document.getElementById(headId+'_ContentPlaceHolder1_btnAddWidgetTemp') == null)
{
var tempStr = document.getElementById(headId+'_ContentPlaceHolder1_btnAddWidget').outerHTML;
document.getElementById(headId+'_ContentPlaceHolder1_btnAddWidget').outerHTML = '';
strHtml+=tempStr;
}

//document.all.WidgetDiv.innerHTML=strHtml
document.getElementById("WidgetDiv").innerHTML=strHtml

}
function DeleteLink(irow,objLink)
{
objLink=document.getElementById(objLink)
objRow=objLink.parentElement.parentElement
var olinkGrid=document.getElementById("linkGrid"+ irow)

node=dom.documentElement.childNodes(irow-1)
var domLC=new ActiveXObject("msxml2.domdocument") 
domLC.loadXML(node.childNodes(0).text)

for(i=0;i<olinkGrid.rows.length;i++)
{
if(objRow==olinkGrid.rows(i))
{
olinkGrid.deleteRow(i);
nodeLink=domLC.documentElement.selectNodes("Link").item(i-1)
domLC.documentElement.removeChild(nodeLink)
//debugger;
node.childNodes(0).text=domLC.xml;
document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value=dom.xml
break
}
}
}
function EditLink(irow,objLink)
{

var strName=objLink;
strName=strName.replace('aEdit','');

objLink=document.getElementById(objLink)
objRow=objLink.parentElement.parentElement
if(objLink.innerText=="Update")
{
objLink.innerText="Edit"

if(objRow.cells(0).getElementsByTagName("input").length>0)
{
objRow.cells(0).innerHTML=objRow.cells(0).getElementsByTagName("input").item(0).value
objRow.cells(1).innerHTML=objRow.cells(1).getElementsByTagName("input").item(0).value
objRow.cells(2).innerHTML=objRow.cells(2).getElementsByTagName("input").item(0).value
objRow.cells(3).innerHTML=objRow.cells(3).getElementsByTagName("input").item(0).value

}
UpdateWidget(irow);
document.getElementById('aCancel'+strName).style.display='none'
}
else
{
objLink.innerText="Update"
document.getElementById('aCancel'+strName).style.display='block'
objRow.cells(0).innerHTML="<input type=text value='"+ objRow.cells(0).innerText +"'><input type=hidden id='hdnLinkText' value='"+ objRow.cells(0).innerText +"'>"
objRow.cells(1).innerHTML="<input type=text value='"+ objRow.cells(1).innerText +"'><input type=hidden id='hdnDescription' value='"+ objRow.cells(1).innerText +"'>"
objRow.cells(2).innerHTML="<input type=text value='"+ objRow.cells(2).innerText +"'><input type=hidden id='hdnprioriy' value='"+ objRow.cells(2).innerText +"'>"
objRow.cells(3).innerHTML="<input type=text value='"+ objRow.cells(3).innerText +"'><input type=hidden id='hdnUrl' value='"+ objRow.cells(3).innerText +"'>"

}

}

//Cancelbutton
function CancelLink(irow,objLink)
{
var strName=objLink;
strName=strName.replace('aCancel','');
strEditName='aEdit'+strName

objLink=document.getElementById(objLink)
objRow=objLink.parentElement.parentElement
if(objRow.cells(0).getElementsByTagName("input").length>0)
{
objRow.cells(0).innerHTML=document.getElementById('hdnLinkText').value
objRow.cells(1).innerHTML=document.getElementById('hdnDescription').value
objRow.cells(2).innerHTML=document.getElementById('hdnprioriy').value
objRow.cells(3).innerHTML=document.getElementById('hdnUrl').value
}
document.getElementById(objLink.id).style.display='none'
document.getElementById(strEditName).innerText = 'Edit';
}

function AddLink(objId)
{
node=dom.documentElement.childNodes(objId)
var domLC=new ActiveXObject("msxml2.domdocument")
var oWidgetTab=document.getElementById("widgetTab"+(objId))
var olinkGrid=document.getElementById("linkGrid"+ (objId+1))
domLC.loadXML(node.childNodes(0).text)

var nodeLink=domLC.createElement("Link");
nodeLink.setAttribute("Url","");
nodeLink.setAttribute("LinkText","");
nodeLink.setAttribute("Desc","");
nodeLink.setAttribute("Priority","0");

domLC.documentElement.appendChild(nodeLink);

iRow=0;
olinkGrid.insertRow();
iRow=olinkGrid.rows.length

olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(0).innerText="";

olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(1).innerText="";

olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(2).innerText="0";

olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(3).innerText="";

olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(4).innerHTML="<a id='aEdit" + objId + (iRow-1) + "' href='javascript:EditLink(" + parseInt((objId)+1) + ",\"aEdit" + objId + (iRow-1) + "\")'>Edit</a>";

//Cancelbutton
olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(5).innerHTML="<a id='aCancel" + objId + (iRow-1) + "' href='javascript:CancelLink(" + parseInt((objId)+1) + ",\"aCancel" + objId + (iRow-1) + "\")' style=display:none>Cancel</a>";

olinkGrid.rows(iRow-1).insertCell()
olinkGrid.rows(iRow-1).cells(6).innerHTML="<a id='aDelete" + objId + (iRow-1) + "' href='javascript:DeleteLink(" + parseInt((objId)+1) + ",\"aDelete" + objId + (iRow-1) + "\")'>Delete</a>";

node.childNodes(0).text=domLC.xml;
document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value=dom.xml
}
function UpdateWidget(objId)
{
//debugger
node=dom.documentElement.childNodes(objId-1)
var domLC=new ActiveXObject("msxml2.domdocument")
var oWidgetTab=document.getElementById("widgetTab"+(objId-1))
var olinkGrid=document.getElementById("linkGrid"+ objId)
domLC.loadXML(node.childNodes(0).text)

var strHeader=oWidgetTab.rows(0).cells(1).getElementsByTagName("input").item(0).value;
domLC.documentElement.selectSingleNode("Header").attributes(0).text=strHeader;
var strDesc=oWidgetTab.rows(1).cells(1).getElementsByTagName("input").item(0).value;
domLC.documentElement.selectSingleNode("Description").attributes(0).text=strDesc;
var strWidgetPriority=oWidgetTab.rows(2).cells(1).getElementsByTagName("input").item(0).value;
if(strWidgetPriority=='')
{
strWidgetPriority="0";
}
try
{
//To check the existed XML File
if(domLC.documentElement.selectSingleNode("WidgetPriority") == null)
{
	txtWidPriority = domLC.createElement('WidgetPriority');
	domLC.documentElement.appendChild(txtWidPriority);
}
domLC.documentElement.selectSingleNode("WidgetPriority").setAttribute('WidPriority',strWidgetPriority);
//domLC.documentElement.selectSingleNode("WidgetPriority").attributes(0).text=strWidgetPriority;
}catch(ex){}

for(j=1;j<olinkGrid.rows.length;j++)
{
nodeLink=domLC.documentElement.selectNodes("Link").item(j-1)
var strLinkUrl; 
var strLinkText;
var strLinkDesc;
var strLinkPriority;

if(olinkGrid.rows(j).cells(0).getElementsByTagName("input").length==0)
{
strLinkUrl=olinkGrid.rows(j).cells(3).innerText;
nodeLink.attributes(0).text=strLinkUrl;
strLinkText=olinkGrid.rows(j).cells(0).innerText;
nodeLink.attributes(1).text=strLinkText;
strLinkDesc=olinkGrid.rows(j).cells(1).innerText;
nodeLink.attributes(2).text=strLinkDesc;
strLinkPriority=olinkGrid.rows(j).cells(2).innerText;
if(strLinkPriority=='')
{
strLinkPriority="0";
}
	try
	{
	//To check the LinkPriority (Nulls) existed XML File
	      
	if(!nodeLink.attributes(3) || nodeLink.attributes(3)==null)
          {      
		nodeLink.setAttribute("Priority",strLinkPriority)
		
          } 
         else
           {
		nodeLink.attributes(3).text=strLinkPriority;
           }   
	}catch(ex){var exp=ex;}
}
else
{
strLinkUrl=olinkGrid.rows(j).cells(3).getElementsByTagName("input").item(1).value;
nodeLink.attributes(0).text=strLinkUrl;
strLinkText=olinkGrid.rows(j).cells(0).getElementsByTagName("input").item(1).value;
nodeLink.attributes(1).text=strLinkText;
strLinkDesc=olinkGrid.rows(j).cells(1).getElementsByTagName("input").item(1).value;
nodeLink.attributes(2).text=strLinkDesc;
strLinkPriority=olinkGrid.rows(j).cells(2).getElementsByTagName("input").item(1).value;
	try
	{
		nodeLink.attributes(3).text=strLinkPriority;
	}catch(ex){}
}
}
node.childNodes(0).text=domLC.xml
document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value=dom.xml 

}
function DeleteWidget(objId)
{
node=dom.documentElement.childNodes(objId)
dom.documentElement.removeChild(node)
document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value=dom.xml
LoadWidget()
}
function CreateWidget()
{

var oControl=dom.createElement("Control")
var oConfig=dom.createElement("Config")
oControl.appendChild(oConfig);

oControl.setAttribute("Src","Widgets");
dom.documentElement.appendChild(oControl);

strXml='<LC>'
strXml+=' <Header Text = "" />'
strXml+=' <Description DescText = "" />'
strXml+=' <WidgetPriority WidPriority ="0"/>' 
strXml+=' <Link Url ="" LinkText ="" Desc ="" Priority="0"/>'
strXml+='</LC>'

var oConfigCdata=dom.createCDATASection(strXml)
oConfig.appendChild(oConfigCdata)
document.getElementById(headId+"_ContentPlaceHolder1_WidgetXMLArea").value=dom.xml
LoadWidget()


}
