    //$Id: DhcpScopeMonitor.js,v 1.12 2008/03/28 13:10:20 karuppannan Exp $  
function addServer(f,value)
{
	if(f.enterSearch.value == "no")
	{
		f.actionFrom.value = value;
	}
}
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 validateDHCPScopeMonitor(f)
{
        var ipOrHost = f.ipOrHost
        
        f.actionFrom.value = "addServer";
	if(f.ipOrHost.value.length==0)
	{
		f.ipOrHost.focus();
		return false;
	}
	else if(f.readCommunity.value.length==0)
	{
		f.readCommunity.focus();
		return false;
	}
	else if(!checkip(ipOrHost))
	{
		return false;
	}
        return true;
}
function validateScopeMonitor()
{


	var ipOrHost = document.hostForm.ipOrHost
	var button = document.hostForm.actionFrom.value;
        if(document.hostForm.ipOrHost.value.length==0)
	{
		window.parent.document.getElementById("errorAnchor").innerHTML = "Please enter an IP address";
		document.hostForm.ipOrHost.focus();
		return false;
	}
	else if(document.hostForm.readCommunity.value.length==0)
	{
		window.parent.document.getElementById("errorAnchor").innerHTML ="Please enter the community ";
		document.hostForm.writeCommunity.focus();
		return false;
	}
	else if(!checkip(ipOrHost))
	{
		return false;
	}

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

			}
	}
	else if(document.hostForm.actionFrom.value == 'deleteAll')
	{
		if(!confirm("Are you sure you want to delete all the items ?"))
		{
			return false;
		}
	}
        else if(document.hostForm.actionFrom.value == 'refresh')
	{
            return false;
	}
	else if(document.hostForm.actionFrom.value == 'backToMain')
	{
                if(!checkSettingValues())
                {
                    return false;
                 }   
		
	}
        else if(document.hostForm.actionFrom.value == 'deleteRow')
	{
                return true;
	}
	return false;

}
function checkSettingValues()
{
    f=document.hostForm;
    f.pollInterval.value = trim(f.pollInterval.value);
    if(f.pollInterval.value.length == 0)
    {
        alert("Please enter the Monitoring interval.");
        f.pollInterval.focus();
        return false;
    }
    if(parseInt(f.pollInterval.value)  != f.pollInterval.value)
    {
        alert("Monitoring interval must be an integer.");
        f.pollInterval.focus();
        return false;
    }
    if(parseInt(f.pollInterval.value)  > 60)
    {
        alert("Monitoring interval must be equal or less than 60 Minutes.");
        f.pollInterval.focus();
        return false;
    }
    f.alertValue.value = trim(f.alertValue.value);
    if(f.alertValue.value.length == 0)
    {
        alert("Please enter the Alert value .");
        f.alertValue.focus();
        return false;
    }
    if(parseInt(f.alertValue.value)  != f.alertValue.value)
    {
        alert("Alert value must be an integer.");
        f.alertValue.focus();
        return false;
    }


    return true;

}
function checkip(IP)
{

	key = IP.value

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

	if(parts[0].length == 0)
	{
		window.parent.document.getElementById("errorAnchor").innerHTML ="Please enter a valid IP address";
		IP.focus();
		return false;
	}


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

}

function refreshRow(serverIp,subnetAddress,alertAddValue , dns)
{
        document.hostForm.actionFrom.value="refreshRow";
	document.hostForm.serverIp.value=serverIp;
	document.hostForm.subnetAddress.value=subnetAddress;
       // alert(alertAddValue);
	var actionFrom = document.hostForm.actionFrom.value;
	persist(actionFrom,serverIp,subnetAddress,alertAddValue , dns);

}
function refreshAllRows(actionFrom,alertAddValue)
{
        document.hostForm.actionFrom.value=actionFrom;
        persist(actionFrom,"","",alertAddValue);
}
function persist(actionFrom,serverIp,subnetAddress,alertAddValue , dns)
{
       
	var url;
        if(actionFrom == "refresh")
	{	
		value = "refresh";
                url ='/DHCP_SCOPE_MONITOR.do?selectedToolID=DHCP_SCOPE_MONITOR&selectedTab=ADDRESS_MGMT&methodToCall=execute&actionFrom='+actionFrom;
	}
	if(actionFrom == "refreshRow")
	{	
		value = "refreshRow";
                url ='/DHCP_SCOPE_MONITOR.do?selectedToolID=DHCP_SCOPE_MONITOR&selectedTab=ADDRESS_MGMT&methodToCall=execute&serverIp='+serverIp+'&subnetAddress='+subnetAddress+'&actionFrom='+actionFrom+'&dnsName='+dns;
	}
	window.parent.document.getElementById("errorAnchor").innerHTML = ""; 
	window.parent.document.getElementById("refreshAnchor").innerHTML = "Refreshing . Please wait ..........."; 
	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)
			{
                            window.parent.document.getElementById("refreshAnchor").innerHTML = "";
                        if(value == "refresh")
                         {   
                            complitionRefreshAll(alertAddValue)
                                
			 }
                         else{
                                
                                var statusString = trim(req.responseText);
                               // alert(statusString);
                                var statu = statusString.split(",");
                                if(statu[0] == "Success")
                                {
                                    
                                    var usedClass="redtxtbold";
                                    if(parseInt(statu[5]) > parseInt(alertAddValue))
                                    {
                                       
                                        usedClass="txt";
                                    }
                                    var availableClass = "redtxtbold";
                                    if(parseInt(statu[5]) > parseInt(alertAddValue))
                                    {
                                        availableClass="txt";
                                     }
                                    window.parent.document.getElementById(serverIp+subnetAddress+"Size").innerHTML=statu[3];
                                    window.parent.document.getElementById(serverIp+subnetAddress+"Used").innerHTML=statu[4];
                                    window.parent.document.getElementById(serverIp+subnetAddress+"Used").className = usedClass ;
                                    window.parent.document.getElementById(serverIp+subnetAddress+"Available").innerHTML=statu[5];
                                    window.parent.document.getElementById(serverIp+subnetAddress+"Available").className = availableClass ;
                                    window.parent.document.getElementById(serverIp+subnetAddress+"poll").innerHTML=statu[7];

                                  //  window.parent.document.getElementById("errorAnchor").innerHTML = "";
                                //    window.parent.document.getElementById("refreshAnchor").innerHTML = "";
                                    return;
                                }
                                else if(statu[0] == "Failure")
                                {
                                        window.parent.document.getElementById("errorAnchor").innerHTML = "Can not be "+value+":- ";
                                }
                            }	

			}

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


	}
}
function complitionRefreshAll(alertAddValue)
    {
    
    //window.parent.document.getElementById("errorAnchor").innerHTML = "";
    var x = req.responseXML.getElementsByTagName('subnet');
    
    for(var i=0 ; i< x.length ; i++)
        {
            
            var serverIp = x[i].getAttribute("ServerIp");
            //alert(x[i].getAttribute("ServerIp"));
            var subnetAddress =x[i].getAttribute("subnetAddress");
            var Size = x[i].getAttribute("size");
            var Used = x[i].getAttribute("Used");
            var Available = x[i].getAttribute("Available");
            var Poll = x[i].getAttribute("Poll");

            var usedClass="redtxtbold";
            var availableClass = "redtxtbold";
            if(parseInt(Available) > parseInt(alertAddValue))
            {
                availableClass="txt";
             }
            if(parseInt(Available) > parseInt(alertAddValue))
            {
                usedClass="txt";
            }
            
            
            window.parent.document.getElementById(serverIp+subnetAddress +"Size").innerHTML=Size;
            window.parent.document.getElementById(serverIp+subnetAddress+"Used").innerHTML=Used;
            window.parent.document.getElementById(serverIp+subnetAddress+"Used").className = usedClass ;
            window.parent.document.getElementById(serverIp+subnetAddress+"Available").innerHTML=Available;
            window.parent.document.getElementById(serverIp+subnetAddress+"Available").className = availableClass ;
            window.parent.document.getElementById(serverIp+subnetAddress+"poll").innerHTML=Poll; 
        }
 }
function updateDetail(f,value)
{
	f.actionFrom.value = value;
}
function restoreDefaultValues(f,value)
{
	f.pollInterval.value = "10"
		f.alertValue.value = "5"
		f.saveFrom.value = "default";
		//alert(value);
	f.actionFrom.value = value;
}
function saveSettings(f,value)
{
	f.saveFrom.value = "save";
	f.actionFrom.value = value;
        
}
function validateDHCPSettings()
{
               
        var toAddress = document.hostForm.toAdd.value;
        var mailOption = document.hostForm.emailID.checked; 
        var alertValue = document.hostForm.alertValue.value;
	document.hostForm.actionFrom.value = "saveSettings"
         document.hostForm.mailOption.value = mailOption;
         document.hostForm.toAddress.value = toAddress;
	if(alertValue.length == 0)
	{
		alert("Enter alert value ");
		document.hostForm.alertValue.focus();
		return false;
	}else if(parseInt(alertValue) != alertValue)
        {
            alert("Enter valid integer value ");
            document.hostForm.alertValue.focus();
            return false;
        }
        
         if(mailOption == true)
            {

                toAdd1 = toAddress.split(",");
                for(var i = 0 ; i< toAdd1.length ; i++)
                {
                    if(!validateEmail(toAdd1[i]))
                    {
                        return false;
                    }
                }

            }
            var f = document.hostForm;
            if(f.soundOption.checked)
            {
                f.soundOption.value = 'true';
            }else
            {
               f.soundOption.value = 'false';
                                                                            
            }
        window.parent.document.getElementById("errorMessage").innerHTML = "";
        //var url ='/DHCP_SCOPE_MONITOR.do?actionFrom=saveSettings&alertValue='+alertValue+'&toAddress='+toAddress+'&mailOption='+mailOption+'&uid='+new Date().getTime();;
        //sendRequestForAjaxDHCP(url)
        if(!validateAlertHistory(f))
        {
            return false;
        }
	return true;
}

function validateSetting()
{

	var pollLength = document.hostForm.pollInterval.value.length;

	var length = document.hostForm.alertValue.value.length;
	
	if(pollLength == 0)
	{

		alert("Enter an polling Interval ");
		document.hostForm.pollInterval.focus();
		return false;
	}
	if(length == 0)
	{
		alert("Enter alert value ");
		document.hostForm.alertValue.focus();
		return false;
	}

	return true;
}
function setSubmit()
{
	document.hostForm.actionFrom.value="refreshAll";

}
function submitForm(f)
{
	document.hostForm.submit();
}
function toggle() {
	if( document.getElementById("hidethis").style.display=='none' ){
		document.getElementById("hidethis").style.display = '';
	}else{
		document.getElementById("hidethis").style.display = 'none';
	}
}
function showhide() {
	if( document.getElementById("hidethis1").style.display=='none' ){
		document.getElementById("hidethis1").style.display = '';
	}else{
		document.getElementById("hidethis1").style.display = 'none';
	}
}

function showInputField(input)
{
	sendinput=input;
        if(input == 'monitor' )
	{
		ShowTab('DHCPInput');
		HideTab('DHCPSettings');
	}
	else if (input == 'settings')
	{
		ShowTab('DHCPSettings');
		HideTab('DHCPInput');
	}
}
function showDHCPTabField(input)
{

        if(input == 'DHCPSummary' )
	{
                renderMainViewDHCP("DHCPLayOutView.cc")
		ShowTab('DHCPSummary');
		HideTab('DHCPAlerts');
                
	}
	else 
	{
		renderMainViewDHCP("DHCPAlertView.cc")
                ShowTab('DHCPAlerts');
		HideTab('DHCPSummary');
	}
}

function ShowTab(divId)
{
        
	var id = document.getElementById(divId);
	id.style.display = "block";
        
}
function HideTab(divId){

	var id = document.getElementById(divId);
	id.style.display = "none";
        
}
function showDHCPSettings(viewName)
{
    
    renderViewDHCP(viewName)
}
function renderMainViewDHCP(viewName)
{
    var localVar = "DHCPMainID";
    renderViewDHCPCurrentView(viewName , localVar)
}
function renderViewDHCP(viewName)
{
    var localVar = "dhcpScopeMonitorID";
    renderViewDHCPCurrentView(viewName , localVar)
}
function renderViewDHCPCurrentView(viewName , localVar)
{
    
    var myAnonFunction = function(response,reqOptions)
    {
       
       document.getElementById(localVar).innerHTML = response.getOnlyHtml();
    };
    AjaxAPI.sendRequest({URL:viewName,ONSUCCESSFUNC:myAnonFunction});

}

function dhcpScopeMonitorAjaxResponse()
{
    
    if (addGroupReq.readyState == 4) 
	{
   
		if (addGroupReq.status == 200) 
                {
                    
                     window.parent.document.getElementById("errorMessage").innerHTML = ""; 
                    
                    if(document.hostForm.actionFrom.value == "deleteDHCPServer" || document.hostForm.actionFrom.value == "refreshDHCPServer")
                    {
                        if(document.hostForm.actionFrom.value == "deleteDHCPServer" )
                        {
                            updateState("DHCPScopeView","dhcpServerID","0",true);
                        }
                        renderViewDHCP("DHCPMainView.cc")
                        //refreshSubView("DHCPScopeView");
   
                    }else if(document.hostForm.actionFrom.value == "saveSettings")
                    {
                        var responseTxt = trim(addGroupReq.responseText);
                        if(responseTxt == "true")
                        {
                            window.parent.document.getElementById("errorMessage").innerHTML = "Sucessfully modified";
                        }else
                        {
                             window.parent.document.getElementById("errorMessage").innerHTML = responseTxt;
                        }
                    }else
                    {
                        renderViewDHCP("DHCPMainView.cc")
                        //renderMainViewDHCP("DHCPLayOutView.cc");
                    }
                    
                }       
	} 
}
function sendRequestForAjaxDHCP(url)
{
        isBlockedAction = true;

        if (window.XMLHttpRequest)
        {
                addGroupReq = new XMLHttpRequest();
                addGroupReq.onreadystatechange = dhcpScopeMonitorAjaxResponse;
                addGroupReq.open("GET", url, true);
                addGroupReq.send(null);
        }

        else if (window.ActiveXObject)
        {
                isIE = true;
                addGroupReq = new ActiveXObject("Microsoft.XMLHTTP");
                if (addGroupReq)
                {
                        addGroupReq.onreadystatechange = dhcpScopeMonitorAjaxResponse;
                        addGroupReq.open("GET", url, true);
                        addGroupReq.send();
                }
        }
}
function deleteSevers()
{
     var serverID = document.DHCPScopeView_dummy.select.value;
    if(confirm("Are sure want to delete the selected DHCP Server ?"))
    {
        document.hostForm.actionFrom.value="deleteDHCPServer";
        window.parent.document.getElementById("errorMessage").innerHTML = "Deleting. Please wait ...........";
        var url ='/DHCP_SCOPE_MONITOR.do?actionFrom=deleteDHCPServer&serverID='+serverID+'&uid='+new Date().getTime();
        sendRequestForAjaxDHCP(url)
    }
}
/*
function deleteSevers(menuItemName,refId,additionalParams,index)
{
       deleteSevers();
        return false;
}
*/
function refreshSevers()
{
   var serverID = document.DHCPScopeView_dummy.select.value;
   window.parent.document.getElementById("errorMessage").innerHTML = "Refreshing. Please wait ...........";
    document.hostForm.actionFrom.value="refreshDHCPServer";
   var url ='/DHCP_SCOPE_MONITOR.do?actionFrom=refreshDHCPServer&serverID='+serverID+'&uid='+new Date().getTime();
   sendRequestForAjaxDHCP(url)
   
}
/*function refreshSevers(menuItemName,refId,additionalParams,index)
{
    refreshSevers();
    return false;
}
*/
function ShowDHCPNewInputField()
{
  renderMainViewDHCP("DHCPLayOutView.cc")
  ShowTab('DHCPSummary');
  HideTab('DHCPAlerts');  
  ShowDHCPInputField();
  
}
function ShowDHCPInputField()
{
   var addSubnetLinkElem = document.getElementById("dhcpInputField");   
   var url; 
   if(addSubnetLinkElem.style.display =="none") {
        addSubnetLinkElem.style.display="block";
        url = '/DHCP_SCOPE_MONITOR.do?actionFrom=enbleInputField&uid='+new Date().getTime();
    }else{
   
       addSubnetLinkElem.style.display="none";
       url = '/DHCP_SCOPE_MONITOR.do?actionFrom=hideInputField&uid='+new Date().getTime();
   }
   sendRequestForAjaxDHCP(url);
}
