//$Id: TcpReset.js,v 1.8 2006/08/31 13:35:24 karuppannan Exp $
function getTable(f,value)
{

         if(value == "refresh")
         {
            var val = "getTcpTable"
            f.actionFrom.value = value;
            var url = '/TCP_RESET.do?selectedToolID=TCP_RESET&selectedTab=DESKTOP_MGMT&methodToCall=execute&actionFrom='+value;
            window.parent.document.getElementById("errorAnchor").innerHTML = ""; 
            window.parent.document.getElementById("resultAnchor").innerHTML = "Refreshing connections . Please wait..."; 
            persistValues(url);
         }else{
            
             f.actionFrom.value = value;
             var device = document.hostForm.RouterName
            if(document.hostForm.RouterName.value.length==0)
            {
                    alert("Please enter an End IP address ")
                            document.hostForm.RouterName.focus();
                    return false;
            }
            else if(document.hostForm.writeCommunity.value.length==0)
            {
                    alert("Please enter the community .")
                            document.hostForm.writeCommunity.focus();
                    return false;
            }
            else if(!checkip(device))
            {
                    return false;
            }


            var routerName = f.RouterName.value;
            var readCommunity = f.readCommunity.value;
            var writeCommunity = f.writeCommunity.value;
            var url = '/TCP_RESET.do?selectedToolID=TCP_RESET&selectedTab=DESKTOP_MGMT&methodToCall=execute&RouterName='+routerName+'&writeCommunity='+writeCommunity+'&readCommunity='+readCommunity+'&actionFrom='+value;
            window.parent.document.getElementById("errorAnchor").innerHTML = ""; 
            window.parent.document.getElementById("resultAnchor").innerHTML = "Getting connections . Please wait..."; 
            persistValues(url);
       }
}
function searchDetail(f,value)
{
        f.actionFrom.value = value;
}
function viewAllDetails(f,value)
{
        f.actionFrom.value = value;
}

function enterKeySearch(val,value , ev)
{
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		if(window.event.keyCode == 13)
		{
			document.hostForm.actionFrom.value = value;
			document.hostForm.enterSearch.value = "yes";
		}
	}
	else if(navigator.appName == "Netscape")
	{
		if(ev.which == 13)
		{
			document.hostForm.actionFrom.value = value;
			document.hostForm.enterSearch.value = "yes";
		}
	}
	else
	{
		document.hostForm.actionFrom.value = value;
		document.hostForm.enterSearch.value = "yes";
	}
}
function buttonDetails(value)
{
	document.hostForm.actionFrom.value = value;
}


function validateTcpReset()
{


	
	var button = document.hostForm.actionFrom.value;
	if(document.hostForm.actionFrom.value == 'getTcpTable' || document.hostForm.actionFrom.value == "refresh")
	{
                return false;
        }

	if(document.hostForm.actionFrom.value == 'search')
	{
		var searchString = TrimString((document.hostForm.searchString.value))
	//	alert(searchString)
			if(searchString == 0)
			{
				window.parent.document.getElementById("errorAnchor").innerHTML = "Please enter a String for search ......";
				document.hostForm.searchString.focus();
				return false;

			}
	}
	return true;

}
function checkip(IP)
{

	key = IP.value

		var parts = key.split(".");

	if(parts[0].length == 0)
	{
		alert("Please enter a valid IP address");
		IP.focus();
		return false;
	}


	if(isNumber(parts[0]))
	{
		if(!isValidIPAddress(IP.value))
		{
			alert("Please enter a valid IP address.");
			IP.focus();
			return false;
		}
	}
	else
	{
		if(!isSpecialCharacter(IP.value))
		{
			alert("Please enter a hostname without special characters.");
			IP.focus();
			return false;
		}
	}
	return true;

}



function isValidIPAddress(ipaddr)
{
	var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;

	if (re.test(ipaddr))
	{
		var parts = ipaddr.split(".");
		if (parts.length < 4)
		{
			return false;
		}
		if (parseInt(parseFloat(parts[0])) == 0)
		{
			return false;
		}
		if (parseInt(parseFloat(parts[0])) == 0)
		{
			return false;
		}

		for (var i=0; i<parts.length; i++)
		{
			if (parseInt(parseFloat(parts[i])) > 255) { return false; }
		}
		return true;
	}

	return false;
}

function isSpecialCharacter(dnsname)
{
	for (i=0; i<dnsname.length; i++)
	{
		var ipChar = dnsname.charCodeAt(i);
		if ((ipChar < 48 && ipChar != 45 && ipChar != 46) || (ipChar > 57 && ipChar < 65) || (ipChar > 90 && ipChar != 95 && ipChar < 97 ) || (ipChar > 122 && ipChar <= 125) || ipChar == 126)
		{
			return false;
		}
	}
	return true;
}

function removeRowFromTable(localIp,localPort,remoteIp,remotePort)
{
        
	    document.hostForm.actionFrom.value="deleteRow";
            document.hostForm.localIp.value=localIp;
            document.hostForm.localPort.value=localPort;
            document.hostForm.remoteIp.value=remoteIp;
            document.hostForm.remotePort.value=remotePort;
            var status = document.getElement
            var actionFrom = document.hostForm.actionFrom.value;
                
        if(confirm("Are you sure you want to Reset the Connection? "))
        {
                var url = '/TCP_RESET.do?selectedToolID=TCP_RESET&selectedTab=DESKTOP_MGMT&methodToCall=execute&localIp='+localIp+'&localPort='+localPort+'&remoteIp='+remoteIp+'&remotePort='+remotePort+'&actionFrom='+actionFrom;
                window.parent.document.getElementById("errorAnchor").innerHTML = ""; 
	window.parent.document.getElementById("resultAnchor").innerHTML = "Resetting connection. Please wait..."; 
		persistValues(url);
        }
        //return false;

}
function persistValues(url)
{
        if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChangeVal;
		req.open("GET", url, true);

		req.send(null);
	}
	else if (window.ActiveXObject)
	{
		isIE = true;
		req = new ActiveXObject("Microsoft.XMLHTTP")
		if (req)
		{
			req.onreadystatechange = processReqChangeVal;
			req.open("GET", url, true);
			req.send(null);
		}
	}
	function processReqChangeVal()
	{
		if (req.readyState == 4)
		{
			if (req.status == 200)
			{
                                if(document.hostForm.actionFrom.value == "getTcpTable" || document.hostForm.actionFrom.value == "refresh" )
                                {
                                    var statusString = TrimString(req.responseText);
                                    
                                    if(statusString  == "true" || statusString .length == 0)
                                    {
                                        var routerName = document.hostForm.RouterName.value;
                                        var readCommunity = document.hostForm.readCommunity.value;
                                        var writeCommunity = document.hostForm.writeCommunity.value;
                                        window.parent.document.location.href="/MainLayout.do?selectedToolID=TCP_RESET&selectedTab=DESKTOP_MGMT&selectedParentID=OPTools&RouterName="+routerName+"&writeCommunity="+writeCommunity+"&readCommunity="+readCommunity
                                    }else
                                    {
                                        window.parent.document.getElementById("errorAnchor").innerHTML = statusString ; 
                                    	window.parent.document.getElementById("resultAnchor").innerHTML = ""; 

                                    }
                                }
                                else
                                {
                                    localIp = document.hostForm.localIp.value;
                                    localPort = document.hostForm.localPort.value;
                                    remoteIp = document.hostForm.remoteIp.value;
                                    remotePort = document.hostForm.remotePort.value;

                                    var statusString = TrimString(req.responseText);
                                    var statu = statusString.split(",");
                                    if(statu[0] == "Success")
                                    {
                                            var tbl = document.getElementById("tcpTable");
                                            tbl.deleteRow(document.getElementById(localIp+""+localPort+""+remoteIp+""+remotePort).rowIndex)
                                            window.parent.document.getElementById("errorAnchor").innerHTML = ""; 
                                            window.parent.document.getElementById("resultAnchor").innerHTML = "Connection successfully Reset - Local IP : < "+localIp+" > Local Port : < "+localPort+" > Remote IP : < "+remoteIp+" > Remote Port : < "+remotePort +" >"; 
                                            window.parent.document.getElementById("responseAnchor").innerHTML = statu[1]; 
                                            return;
                                    }
                                    else if(statu[0] == "Failure")
                                    {
                                            window.parent.document.getElementById("resultAnchor").innerHTML = "";
                                            window.parent.document.getElementById("errorAnchor").innerHTML = "Could not reset the connection. Check whether the write community is specified correctly.";
                                    }
                                }

			}

			else
			{
                                window.parent.document.getElementById("resultAnchor").innerHTML = "";
				window.parent.document.getElementById("errorAnchor").innerHTML ="There was a problem retrieving the XML data :\n" +req.statusText;
			}
		}


	}

}

function TrimString(sInString) 
{
	sInString = sInString.replace( /^\s+/g, "" );
	return sInString.replace( /\s+$/g, "" );
}



