    //$Id: Router.js,v 1.6 2009/02/24 07:03:09 karuppannan Exp $
function ShowRouterConfigField(val)
{ 
    if(val == 'showTab'){
     showInputFeildSPM('routers');
     }
    showURLInDialog('/framework/addRouter.jsp','position=auto,modal=yes,width=460,scrollbars=no,title=Add Router')
/*
   var addSubnetLinkElem = document.getElementById("routerInputTables");
  
   var url; 
   if(addSubnetLinkElem.style.display =="none") {
        addSubnetLinkElem.style.display="block";
        url = '/Router.do?actionFrom=enbleInputField&uid='+new Date().getTime();
    }else{
   
       addSubnetLinkElem.style.display="none";
       url = '/Router.do?actionFrom=hideInputField&uid='+new Date().getTime();
   }
   updateInputFieldStaus(url);
*/
}

function cancelRouterConfig()
{
    document.routerAddForm.actionFrom.value = "cancel"
}
function validateRouterImport()
{
    var button = document.routerImportForm.actionFrom.value
    
    if(button == "close")
    {
        return false;
    }else if(button == "cancel")
    {
        
        return false;
        
    }else if(button == "importRouterCSVInput")
    {
        var path = trim(document.routerImportForm.csvPath.value)
        if(path.length == 0)
        {
               alert("Select a CSV file ");
               return false;
        }else
        {
            var splitFile = path.split(".");
            var fileType = splitFile[splitFile.length - 1];
            if( fileType == 'csv' || fileType == 'CSV')
            { 
              return true;
            }else
            {
                 alert("Please Select a \".CSV\" file ");
               return false;
             }
            
            return true;
        }
        
    }
   
    return false;
}

function setActionValues(value)
{
     document.routerAddForm.actionFrom.value=value;
}
function showImportRouterField()
{
    var addSubnetLinkElem = document.getElementById("importRouter");
   if(addSubnetLinkElem.style.display =="none") {
        addSubnetLinkElem.style.display="block";        
    }else{   
       addSubnetLinkElem.style.display="none";      
   }
   
}
/**** FOR CLI TEST start *********************/
function changeDeviceType(val)
{
    
    if(val !="0")
    {
      
        document.getElementById('cisco').style.display="block";
      //  document.getElementById('hp').style.display="none";
       // document.getElementById('foundry').style.display="none";
       
    }else{
            document.getElementById('cisco').style.display="none";
    }
  /*  else if(val == "hp")
    {
        document.getElementById('cisco').style.display="none";
        document.getElementById('hp').style.display="block";
        document.getElementById('foundry').style.display="none";
       
    }
    else if(val == "foundry")
    {
        document.getElementById('cisco').style.display="none";
        document.getElementById('hp').style.display="none";
        document.getElementById('foundry').style.display="block";
    }
    else
    {
        document.getElementById('cisco').style.display="none";
        document.getElementById('hp').style.display="none";
        document.getElementById('foundry').style.display="none";
    } */
}
function promptConversion(prompt)
{
    if(prompt == "#")
    {  
        prompt = "hash"; 
    }
    else if(prompt == "%")
    {  prompt = "percen"; }
    else if(prompt =="&")
    { prompt = "amp"; }
    return prompt;
}
function validateDeviceFiled(deviceForm)
{
    if(deviceForm.selectedVendor.value == "0")
    {
        if(document.getElementById('community').value.length == 0)
	{
            alert("Please enter the community string or use CLI Settings");
            deviceForm.community.focus();
            return false;
        }
    }
    if(deviceForm.selectedVendor.value == "cisco" || deviceForm.selectedVendor.value == "hp" || deviceForm.selectedVendor.value == "foundry")
    {
        
          
                if(deviceForm.community.value.length == 0 && deviceForm.cisPassword.value.length == 0)
                {
                    alert("Snmp and Cli both cannot be empty!");
                    return false;
                }
                else if(deviceForm.cisPassword.value.length > 0  && deviceForm.cisPrompt.value.length == 0)
                {
                    alert("prompt cannot be empty!");
                    deviceForm.cisPrompt.focus();
                    return false;
                }
                else if(deviceForm.cisPassword.value.length == 0 && deviceForm.cisPrompt.value.length > 0)
                  {
                    alert("password cannot be empty!");
                    deviceForm.cisPassword.focus();
                    return false;
                }
         if(deviceForm.cisEnUserName.value.length > 0 && deviceForm.cisEnPassword.value.length == 0){
            alert("Enable Password and Enable Prompt cannot be empty!")
            return false;
        }
        }
    /*    if(deviceForm.community.value.length == 0 && deviceForm.cisPassword.value.length == 0)
        {
            alert("Snmp and Cli both cannot be empty!");
            return false;
        }
        else if(deviceForm.cisPassword.value.length > 0  && deviceForm.cisPrompt.value.length == 0)
        {
            alert("prompt cannot be empty!");
            deviceForm.cisPrompt.focus();
            return false;
        }
        else if(deviceForm.cisPassword.value.length == 0  && deviceForm.cisPrompt.value.length > 0)
        {
            alert("password cannot be empty!");
            deviceForm.cisPassword.focus();
            return false;
        }
        
        *
    }
 /*   else if(deviceForm.selectedVendor.value == "foundry")
    {
       if(deviceForm.community.value.length == 0 && deviceForm.founPassword.value.length == 0)
       {
            alert("Snmp and Cli both cannot be empty");
            return false;
       } 
       else if(deviceForm.founPassword.value.length > 0  && deviceForm.founPrompt.value.length == 0)
       {
            alert("prompt cannot be empty!");
            deviceForm.founPrompt.focus();
            return false;
       }
       else if(deviceForm.founPassword.value.length == 0  && deviceForm.founPrompt.value.length > 0)
       {
            alert("password cannot be empty!");
            deviceForm.founPassword.focus();
            return false;
       }
           
          
    }
    else if(deviceForm.selectedVendor.value == "hp")
    {
       if(deviceForm.community.value.length == 0 && deviceForm.hpPassword.value.length == 0)
       {
            alert("snmp and cli both cannot be empty");
            return false;
       }
       else if(deviceForm.hpPassword.value.length > 0)
       {
           if(deviceForm.hpPrompt.value.length == 0)
           {
                alert("System Prompt cannot be empty!");
                return false;
           }
       }
       else if(deviceForm.hpPrompt.value.length > 0)
       {
           if(deviceForm.hpPassword.value.length == 0)
           {
               alert("Password cannot be empty!");
                return false;
           }
       }
       
    } */
    return true;
}


/** modify router cli********/
function assignFieldValue()
{
    
    if(document.routerModifyForm.deviceType.value == "cisco" || document.routerModifyForm.deviceType.value == "hp" || document.routerModifyForm.deviceType.value == "foundry")
    {
        cliPassword = document.getElementById('clipassword').value
        cliSysPrompt = document.getElementById('cliSysPrompt').value
        document.routerModifyForm.username.value = document.getElementById('cisUserName').value
        document.routerModifyForm.password.value = cliPassword
        document.routerModifyForm.prompt.value = cliSysPrompt
        
        document.routerModifyForm.cliEnabUsername.value = document.getElementById('cisEnUserName').value
        document.routerModifyForm.cliEnabPass.value = document.getElementById('cisEnPassword').value
        document.routerModifyForm.cliEnabProm.value = document.getElementById('cisEnPrompt').value
    }
/*    else if(document.routerModifyForm.deviceType.value == "hp")
    {
        document.routerModifyForm.username.value = document.getElementById('cliUsername').value
        document.routerModifyForm.password.value = document.getElementById('cliHpPassword').value
        document.routerModifyForm.prompt.value = document.getElementById('cliHpSysPrompt').value
    }
    else if(document.routerModifyForm.deviceType.value == "foundry")
    {
        
        document.routerModifyForm.password.value = document.getElementById('cliFounPassword').value
        document.routerModifyForm.prompt.value = document.getElementById('cliFounSysPrompt').value
        document.routerModifyForm.cliEnabPass.value = document.getElementById('cliFounEnabPass').value
        document.routerModifyForm.cliEnabProm.value = document.getElementById('cliFounEnabPrompt').value
    
    } */
}










/**** FOR CLI TEST finish *********************/
function addRouter(f)
{
    f.actionFrom.value = "addRouterInput";
    if(!validateRouterInputs(f))
    {
       return false;
    }
    var vali = validateDeviceFiled(f);
    if(!vali)
    {
        return false;
    }
    var DeviceName = f.DeviceName.value;
    var community  = f.community.value;    
    
    if(community.length > 0)
    {
        selectedDevice = "true";
    }
    else
    {
        selectedDevice = "false";
    }
    
 if(document.getElementById('selectedVendor').value == "cisco" || document.getElementById('selectedVendor').value =="hp" || document.getElementById('selectedVendor').value == "foundry")
    {
        var username = document.getElementById('cisUserName').value;
        var password =  document.getElementById('cisPassword').value;
        var prompt = document.getElementById('cisPrompt').value;
        var deviceType = document.getElementById('selectedVendor').value;
        
        var enUserName = document.getElementById('cisEnUserName').value;
        var enPassword = document.getElementById('cisEnPassword').value;
        var enPrompt = document.getElementById('cisEnPrompt').value;

        document.getElementById('username').value = username;
        document.getElementById('password').value = password;
        document.getElementById('prompt').value = prompt;
        document.getElementById('deviceType').value = deviceType;
        document.getElementById('enUserName').value = enUserName;
        document.getElementById('enPassword').value = enPassword;
        document.getElementById('enPrompt').value = enPrompt;
      }
      else{
        document.getElementById('username').value = "";
        document.getElementById('password').value = "";
        document.getElementById('prompt').value = "";
        document.getElementById('deviceType').value = "" ;
        document.getElementById('enUserName').value = "";
        document.getElementById('enPassword').value = "";
        document.getElementById('enPrompt').value = "";
    }
    /* else if(document.getElementById('selectedVendor').value == "hp")
     {

            var username = document.getElementById('username').value;
            var password =  document.getElementById('hpPassword').value;
            var prompt = document.getElementById('hpPrompt').value;
            var deviceType = document.getElementById('selectedVendor').value;

            document.getElementById('username').value = username;
            document.getElementById('password').value = password;
            document.getElementById('prompt').value = prompt;
            document.getElementById('deviceType').value = deviceType;
            

     }
     else if(document.getElementById('selectedVendor').value == "foundry")
     {
            var password =  document.getElementById('founPassword').value;
            var prompt = document.getElementById('founPrompt').value;
            var enPassword = document.getElementById('founEnaPassword').value;
            var enPrompt = document.getElementById('founEnaPrompt').value;
            var deviceType = document.getElementById('selectedVendor').value;

            document.getElementById('password').value = password;
            document.getElementById('prompt').value = prompt;
            document.getElementById('enPassword').value = enPassword;
            document.getElementById('enPrompt').value = enPrompt;
            document.getElementById('deviceType').value = deviceType;
            
      } */
      return true;
}

var ajaxRouterRequest;
function sendRequestForAddRouter(url)
{
       
        if (window.XMLHttpRequest)
        {
                ajaxRouterRequest = new XMLHttpRequest();
                ajaxRouterRequest.onreadystatechange = ajaxResponseRouterChane;
                ajaxRouterRequest.open("GET", url, true);
                ajaxRouterRequest.send(null);
        }
        else if (window.ActiveXObject)
        {
                isIE = true;
                ajaxRouterRequest = new ActiveXObject("Microsoft.XMLHTTP");
                if (ajaxRouterRequest)
                {
                        ajaxRouterRequest.onreadystatechange = ajaxResponseRouterChane;
                        ajaxRouterRequest.open("GET", url, true);
                        ajaxRouterRequest.send(null);
                }
        }
}
function ajaxResponseRouterChane()
{
    if (ajaxRouterRequest.readyState == 4) 
	{
	
		if (ajaxRouterRequest.status == 200) 
                {
                    
                    window.parent.document.getElementById("RouterStatusImage").src = "/images/spacer.gif";
                    var responseTxt = ajaxRouterRequest.responseText
                    
                    if(document.routerAddForm.selectedToolID.value == "SWITCH_PORT_MAPPER")
                    {
                        
                      if(document.getElementById("routers").style.display == "none")
                      {
                        showInputFeildSPM('routers');
                      } 
  
                    }
		                  
                    refreshStatusView("RouterLayoutView");
		    window.document.getElementById("RouterErrorAnchor").innerHTML="<span class=redtxtbold> "+responseTxt+"</span>"; 
		
                      
                    
                }       
		else
                {  
			alert("There was a problem retrieving the XML data:\n" +ajaxRouterRequest.statusText);
		}
	}
}
function showRouterConfigDiv(id)
{
       // window.document.getElementById("RouterErrorAnchor").innerHTML="";
        var hideId = document.getElementById('importRouter');
        var hideId1 = document.getElementById('addNewRouter');

	if(id == "importRouter" )
        {
            hideId1.style.display = 'none';
            hideId.style.display = 'block';		
            document.getElementById('addRouterTxt').className='txt';
            document.getElementById('importRouterTxt').className='txtbold';	
        }else
        {
            hideId.style.display = 'none';		
            hideId1.style.display = 'block';
            document.getElementById('addRouterTxt').className='txtbold';
            document.getElementById('importRouterTxt').className='txt';
        }	
}

function ShowRouterInputField()
{  
   var addSubnetLinkElem = document.getElementById("routerInputTable");
   var url; 
   if(addSubnetLinkElem.style.display =="none") {
        addSubnetLinkElem.style.display="block";
        url = '/Router.do?actionFrom=enbleInputField&uid='+new Date().getTime();
    }else{
   
       addSubnetLinkElem.style.display="none";
       url = '/Router.do?actionFrom=hideInputField&uid='+new Date().getTime();
   }
   updateInputFieldStaus(url);
}
function showInputTxt()
{
    document.getElementById('addRouterTxt').className='txtbold';
    document.getElementById('importRouterTxt').className='txt';    
}
function updateInputFieldStaus(url){
    
        if (window.XMLHttpRequest)
        {
                resObject = new XMLHttpRequest();
                resObject.onreadystatechange = responseMethod;
                resObject.open("GET", url, true);
                resObject.send(null);
        }
        else if (window.ActiveXObject)
        {
                isIE = true;
                resObject = new ActiveXObject("Microsoft.XMLHTTP");
                if (resObject)
                {
                        resObject.onreadystatechange = responseMethod;
                        resObject.open("GET", url, true);
                        resObject.send(null);
                }
        }
}
var resObject;
function responseMethod() 
{
	if (resObject.readyState == 4) 
	{
		if (resObject.status == 200) 
                {
                    var stat = trim(resObject.responseText);                   
                }
	}


}



//Here enable router code added
function showEnableRouter()
{
    
    var enbleResolveDNSIDElem = document.getElementById('enbleResolveDNSID');
    if(enbleResolveDNSIDElem.style.display =="none") {
       enbleResolveDNSIDElem.style.display ="block";
       document.EnableRouterForm.actionFrom.value="getResolveDNS";
      var url = '/SwitchPortMapper.do?actionFrom=getResolveDNS&uid='+new Date().getTime();
      persistResolveDNS(url);
   } else {
       enbleResolveDNSIDElem.style.display="none";
   }
   
}
function persistResolveDNS(url)
{
    
        if (window.XMLHttpRequest)
        {
                resolveDNSReq = new XMLHttpRequest();
                resolveDNSReq.onreadystatechange = processReqResolveDNS;
                resolveDNSReq.open("GET", url, true);
                resolveDNSReq.send(null);
        }

        else if (window.ActiveXObject)
        {
                isIE = true;
                resolveDNSReq = new ActiveXObject("Microsoft.XMLHTTP");
                if (resolveDNSReq)
                {
                        resolveDNSReq.onreadystatechange = processReqResolveDNS;
                        resolveDNSReq.open("GET", url, true);
                        resolveDNSReq.send();
                }
        }
}
var resolveDNSReq;
function processReqResolveDNS()
{
    
       
        if (resolveDNSReq.readyState == 4) 
	{
            
		if (resolveDNSReq.status == 200) 
                {
                    
                   if(document.EnableRouterForm.actionFrom.value == "getResolveDNS")
                   {
                        var result = trim(resolveDNSReq.responseText);
                        if(result == "true")
                        {
                            document.EnableRouterForm.resolveDNS.checked = true;
                        }else
                        {
                            document.EnableRouterForm.resolveDNS.checked = false;
                        }

                   }else
                   {
                        var isResolveDNS = document.EnableRouterForm.resolveDNS.checked;
                        if(isResolveDNS)
                        {
                            document.getElementById("resolveDNSStatus").innerHTML = "Enabled";
                        }else
                        {
                            document.getElementById("resolveDNSStatus").innerHTML = "Disabled";
                        }
                        showEnableRouter();
                   }
                   
                }       
		else
                {  
			alert("There was a problem retrieving the XML data:\n" +req.statusText);
		}
	}
}
function saveSetResolveDNS()
{
    var isResolveDNS = document.EnableRouterForm.resolveDNS.checked;
    document.EnableRouterForm.actionFrom.value="setResolveDNS";
    var url = '/SwitchPortMapper.do?actionFrom=setResolveDNS&isResolveDNS='+isResolveDNS+'&uid='+new Date().getTime();
    persistResolveDNS(url); 
}
function trim(value) {
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = /  /g;
   while (temp.match(obj)) { temp = temp.replace(obj, ""); }
   return temp;
}

var routerRefreshIntervalID;
function checkRefreshRouterStatus(isScanningStatus)
{
        window.clearInterval(routerRefreshIntervalID);
	 if(isScanningStatus == 'true'){
            routerRefreshIntervalID = window.setInterval("refreshStatusView('RouterListView')",5000);
	}else{         
            window.clearInterval(routerRefreshIntervalID);
	}
           return;
}
var timeToRefresh;
function onSuccessResponse(resOptions, reqOptions) {
    var error = trim(resOptions.responseText);
    if(error.length > 0) {
        document.getElementById("loadingImgID").style.display='none';
        document.getElementById("InImgID").innerHTML = '';
        var resFlag = error.split(",");
        error = resFlag[0];
        if(resFlag.length > 0) {
            resFlag = resFlag[1];
        }
        var divID = document.getElementById("errorDiv")
        if(resFlag == 'true') {
            document.getElementById("errorDiv").className = "successMsg" 
            document.routerAddForm.DeviceName.value = "";
            document.routerAddForm.DeviceName.focus();
            //AjaxAPI.refreshView;
            //clearField();
            //timeToHide = window.setInterval('refreshSPM()',2000);
            timeToRefresh = window.setInterval('refreshRouter()',2000);
        } else if(resFlag == 'false'){
        document.getElementById("errorDiv").className = "failureMsg"
        }
        if(resFlag == 'true' || resFlag == 'false') {
            document.getElementById("errorDiv").style.display='block';
            document.getElementById("errorTD").innerHTML = error;
        } else {
            document.getElementById("errorDiv").style.display='none';
            closeDialog();
        }
    } 
}
function refreshRouter() {
    window.clearInterval(timeToHide);
    refreshSubView("RouterDetails",true,new AjaxOptions({USEXMLHTTPFORREFRESH:true,NAVIGABLE:false}))
}
