
var LEGAL_INTEGER_CHARS = "1234567890";
var LEGAL_IPv4_CHARS = "1234567890.";
var TICKS_PER_SECOND = 100;
var rawValue;
var alertExist=false;
var BufferSize=25000;
var maxNumOfFieldsToStore=2000;
history.forward();
var fieldsEntrySize=0;
var notIE = (navigator.appName.indexOf("Microsoft") == -1);
var docObj;
if (opener)
if (opener.opener)
if (opener.opener.opener)
docObj=opener.opener.opener.top;
else
docObj=opener.opener.top;
else
docObj=opener.top;
else
docObj=top;
docObj.fldToCheck="";
window.onfocus="checkForErrors()";
var keyPressed="";
if (document.addEventListener)
document.addEventListener("keydown",getKeyPressed,false);
else
window.document.onkeydown=getKeyPressed;
function Hex2Ascii(input) {
origin=16;
dest=10;
base="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c=0; Result="";
for (t=1; t<=input.length; t++)
{
if ( (input.substring(t-1,t)>='a') && (input.substring(t-1,t)<='z') )
b=base.indexOf(input.substring(t-1,t).toUpperCase());
else b=base.indexOf(input.substring(t-1,t));
n=b*(Math.pow (origin, input.length-t));
c+=n;
}
a=100;
while (a>0 && c < Math.pow (dest, a)) { a--; }
while (a>-1) {
e=Math.pow (dest, a);
a--;
d=((c-(c%e))/e)+1;
c=c%e; Ciffer=base.substring(d-1, d); Result = Result + Ciffer;
}
return Result;
}
function decToHex(input)
{
var num = new Number(input);
if (isNaN(num))
{
alert("wrong input");
return "";
}
var hex_value = num.toString(16);
return hex_value.toUpperCase();
}
function splitOctetString(octetString)
{
var octetArray=new Array(Math.floor(octetString.length/2))
var splitedString = sliceString(octetString,"");
for(k=0; k<splitedString.length; k++)
if(k%2!=0)
{
octetArray[(k-1)/2] = splitedString[k-1]+splitedString[k];
}
return octetArray;
}
function Octet2Str(OctetName,StringName,FormNumber)
{
var temp;
var i=0;
var str="";
Octet = document.forms[FormNumber].elements[OctetName].value;
Octet=Octet.toUpperCase();
while(i<Octet.length)
{
temp=Octet.slice(i,i+2);
temp=Hex2Ascii(temp);
temp=String.fromCharCode(temp);
str=str.concat(temp);
i+=2;
}
document.forms[FormNumber].elements[StringName].value = str ;
}
function Octet2StrReturn(Octet)
{
var temp;
var i=0;
var str="";
Octet=Octet.toUpperCase();
while(i<Octet.length)
{
temp=Octet.slice(i,i+2);
temp=Hex2Ascii(temp);
temp=String.fromCharCode(temp);
str=str.concat(temp);
i+=2;
}
return str ;
}
function Str2Hex(str)
{
origin=10;
dest=16;
input=""+str;
base="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c=0; Result="";
for (t=1; t<=input.length; t++)
{
b=base.indexOf(input.substring(t-1,t));
n=b*(Math.pow (origin, input.length-t));
c+=n;
}
a=100;
while (c < Math.pow (dest, a)) { a--; }
while (a>-1)
{
e=Math.pow (dest, a);
a--;
d=((c-(c%e))/e)+1;
c=c%e; Ciffer=base.substring(d-1, d);
Result = Result + Ciffer;
}
return Result;
}
function Str2Octet(StringName,OctetName,FormNumber)
{
var str = document.forms[FormNumber].elements[StringName].value
var temp,i=0,result="";
var s=check(str);
if(s==0)
{
alert("Illegal Octet");
str="ffffff";
}
while(i<(str.length*1))
{
temp=(str.charCodeAt(i)*1);
temp=Str2Hex(temp);
result=result.concat(temp);
i++;
}
document.forms[FormNumber].elements[OctetName].value = result ;
}
function Str2OctetReturn(inputStr)
{
var asciiVal;
var hexaVal;
var hexStr = "";
for(i=0; i<inputStr.length; i++) {
asciiVal = inputStr.charCodeAt(i);
asciiVal = ""+asciiVal+"";
hexaVal = decToHex(asciiVal);
hexaVal = ""+hexaVal+"";
hexStr = hexStr.concat(hexaVal);
}
return hexStr;
}
function hexToDec(val)
{
for (i=0;i<val.length;i++)
{
if (!(((val.charCodeAt(i)>47)&&(val.charCodeAt(i)<58))||((val.charCodeAt(i)>64)&&(val.charCodeAt(i)<74))||((val.charCodeAt(i)>96)&&(val.charCodeAt(i)<103))))
{
return '';
}
}
return decfromhex(val);
}
function decfromhex(num)
{
var res = 0;
var ctr = 0;
while (num.length < 4) {num = "0" + num;}
for(var i = num.length; i > 0; i--)
{
res += (getnum(num.substring(i-1,i)) * (Math.pow(16,ctr)))
ctr++;
}
return res;
}
function getnum(letter) {
if (letter <= "9") {
return letter;
} else {
if ((letter == "a") || (letter == "A")) { return 10 }
if ((letter == "b") || (letter == "B")) { return 11 }
if ((letter == "c") || (letter == "C")) { return 12 }
if ((letter == "d") || (letter == "D")) { return 13 }
if ((letter == "e") || (letter == "E")) { return 14 }
if ((letter == "f") || (letter == "F")) { return 15 }
return 0;
}
}
function BuildLagList(comboLags)
{
var trunkFirstIndex = top.trunkFirstIndex;
var numberOfTrunks = top.NumberOfTrunks;
var optionText = null;
var optionValue = null;
var option = null;
var lastTrunkIndex = parseInt(trunkFirstIndex) + parseInt(numberOfTrunks);
for(var i = trunkFirstIndex,j = 0 ; i < lastTrunkIndex ; j++,i++)
{
optionValue = i;
optionText= i - parseInt(trunkFirstIndex)+1;
option = new Option(optionText,optionValue)
formele[comboLags].options[j] = option;
}
}
function drawTable(curUnit)
{
var maxPort=_top.trunkFirstIndex + _top.NumberOfTrunks;
var strtPort,lastPorts,curUnit; var hdnNode=document.getElementById("toCloning");
var selCntrl=formele["rlPhdModuleIndex$select1"];
if(!curUnit)
{ if(selCntrl)selCntrl.disabled=true;
strtPort=_top.trunkFirstIndex
lastPorts=maxPort;
}
else
{ strtPort=_top.StartingPortPerModuleArr[curUnit];
lastPorts=_top.NumberOfPortPerModuleArr[curUnit];
}
var prnt=document.getElementById('dnamicTBODY');
while(prnt.firstChild){ delObj=prnt.removeChild(prnt.firstChild);delete delObj;}
if(typeof(vlanPortState)!="undefined")loopBuildProcessWithState(prnt,hdnNode,strtPort,lastPorts,maxPort,curUnit)
else loopBuildProcess(prnt,hdnNode,strtPort,lastPorts,maxPort,curUnit)
}
function loopBuildProcessWithState(prnt,hdnNode,strtPort,lastPorts,maxPort,curUnit)
{
var nme;var newNode;
for(var j=1,i=strtPort;(j<=lastPorts && i<maxPort) ;i++,j++)
{ nme=_top.portsNamesArr[i];
if (curUnit && nme==""){j--;continue;}
newNode=hdnNode.cloneNode(true);
newNode.childNodes[0].innerHTML = "radio"
newNode.childNodes[1].innerHTML = "index"
newNode.childNodes[2].innerHTML=!curUnit?"LAG "+j:nme;
newNode.childNodes[3].innerHTML=setVal(i-1);
newNode.childNodes[3].id="status_" + i;
newNode.childNodes[4].id="mode_" + i;
newNode.childNodes[5].innerHTML=setValState(i-1);
prnt.insertBefore(newNode,null);
}
}
function loopBuildProcess(prnt,hdnNode,strtPort,lastPorts,maxPort,curUnit)
{
var nme;var newNode;
var currInd=0;
for(var j=1,i=strtPort;(j<=lastPorts && i<maxPort) ;i++,j++)
{
nme=_top.portsNamesArr[i];
if (curUnit && nme==""){j--;continue;}
currInd ++;
newNode=hdnNode.cloneNode(true);
newNode.childNodes[1].id = "lblIntIndexGlob" + currInd;
newNode.childNodes[1].innerHTML = i;
newNode.childNodes[2].id = "lblInterfaceInd" + currInd;
newNode.childNodes[2].className = colorClass().substring(1,colorClass().length-1);
newNode.childNodes[2].innerHTML = "<b>"+currInd+"</b>";
newNode.childNodes[3].id = "lblInterface"+currInd;
newNode.childNodes[3].innerHTML = getInterfaceNameAccordingToValue(i);
newNode.childNodes[3].className = colorClass().substring(1,colorClass().length-1);
newNode.childNodes[4].id="status_" + currInd;
newNode.childNodes[4].innerHTML = setVal(i-1);
newNode.childNodes[4].className = colorClass().substring(1,colorClass().length-1);
newNode.childNodes[5].innerHTML="<input type=checkbox name='CopyToCbox_"+ currInd +"' ID='CopyToCbox_"+ currInd +"'>";
newNode.childNodes[5].className= lastTdColorClass().substring(1,lastTdColorClass().length-1);
prnt.insertBefore(newNode,null);
ChangeRowColor();
}
}
function checkAndCompleteBitString(nmbrOfPorts,nameOfCntr,strArray)
{ var cntrlValue=formele[nameOfCntr].value
strArray=octetToBitsAsChars(removeSpacesFromHeadAndTail(cntrlValue));
if (strArray.length < nmbrOfPorts)for (i=strArray.length;i<nmbrOfPorts;i++)strArray+="0";
return strArray;
}
function octetToBitsAsChars(octetString)
{
var splitedOctetString = sliceString(octetString,"");
var bitsAsCharsArray=new Array((splitedOctetString.length)*4);
var bitsString="";
var bitNo=0;
for (var ind=0; ind<(splitedOctetString.length); ind++)
{
num=hexToDec(splitedOctetString[ind]);
offset=3;
for (var j=0; j<4; j++)
{
if ((num!=0)||(num/2 != 0))
{
bitsAsCharsArray[bitNo+offset]=num%2;
num=Math.floor(num/2);
}
else
{
bitsAsCharsArray[bitNo+offset]=0;
}
offset--;
}
bitNo+=4;
}
for (j=0; j<bitsAsCharsArray.length; j++)
bitsString+=bitsAsCharsArray[j];
return bitsString;
}
function bitsAsCharsToOctet(bitsString)
{
var octetString="";
var bitNo=0;
var num;
while (((bitsString.length)%4) != 0)
bitsString+="0";
for (bitNo=0; bitNo<bitsString.length;)
{
num=0;
for (var j=0; (j<4 && (bitNo+j)<bitsString.length); j++)
{
num=num*2+parseInt(bitsString.charAt(bitNo+j));
}
num+="";
bitNo+=4;
octetString+=decToHex(num);
}
if (!checkOctetString(octetString))
octetString+="0";
return octetString;
}
function getBitValFromBitmask(bitmask, bitInd)
{
var octetInd = Math.floor(bitInd/4);
var targetOctet = parseInt (bitmask.charAt (octetInd), 16);
targetOctet = targetOctet.toString(2); while (targetOctet.length < 4) targetOctet = "0" + targetOctet;
var bit = targetOctet.charAt(bitInd % 4);
return bit;
}
function alterBitInBitmask(bitmask, bitInd, val)
{
var octetInd = Math.floor(bitInd/4);
var targetOctet = parseInt (bitmask.charAt (octetInd), 16);
targetOctet = targetOctet.toString(2); while (targetOctet.length < 4) targetOctet = "0" + targetOctet;
targetOctet = targetOctet.substring(0,(bitInd % 4)) + val + targetOctet.substring((bitInd % 4) + 1);
var newHex = binStr2Hex(targetOctet);
bitmask = bitmask.substring(0,octetInd) + val + bitmask.substring(octetInd + 1);
return bitmask;
}
function binStr2Hex( binStr )
{
var str = "";
while (((binStr.length)%4) != 0)
binStr = "0" + binStr;
var len = binStr.length;
var hex = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
for(var i = 0; i < len; i += 4)
{
str += hex[parseInt(binStr.slice(i,i+4),2)];
}
return str ;
}
function signedHexToDec(pHexaNumber)
{
signedHexToDec(pHexaNumber, 16);
}
function signedHexToDec(pHexaNumber, nBits)
{
var max_int = Math.pow(2, nBits) - 1;
var max_signed_int = Math.pow(2, (nBits - 1)) - 1;
var num_dec = parseInt(pHexaNumber, 16);
if (num_dec > max_signed_int)
num_dec = num_dec - max_int - 1;
return num_dec;
}
function fromStringToMacAddress(stringVal){
var macAddressVal="";
var splitedString = sliceString(stringVal,"");
for(k=0; k<splitedString.length; k++){
if(((k+1)%2!=0)||(k==splitedString.length-1))
macAddressVal = macAddressVal+splitedString[k];
else
macAddressVal = macAddressVal+splitedString[k]+":";
}
return macAddressVal;
}
function fromMacAddressToString(macAddVal)
{
var sVal="";
var token=":";
if (macAddVal.indexOf("-")!=-1)
token="-";
var splitedMacVal = sliceString(macAddVal,token);
if(macAddVal.indexOf(token)!=-1 && splitedMacVal.length!=6){
alert("Wrong string for Mac Address !");
return 0;
}
else
{
if (macAddVal.indexOf(token)==-1)
{
splitedMacVal=splitOctetString(macAddVal);
}
for(n=0; n<splitedMacVal.length; n++)
{
if(checkhexa(splitedMacVal[n])==false)
{
alert("Wrong string for Mac Address !");
return 0;
}
}
}
for(m=0; m<splitedMacVal.length; m++)
sVal = sVal+splitedMacVal[m];
return sVal;
}
function maskIpToInt(fldName,val)
{
var isValid;
var IPtype;
var obj;
var formObj=document.forms[0].elements;
if (fldName && document.forms[0])
{
obj=formObj[fldName];
IPtype=formObj[fldName].value;
if ((docObj && docObj.fldToCheck=="")||((notIE)&&(document.forms[0])&&(!(formObj[docObj.fldToCheck]))))
{
docObj.fldToCheck=fldName;
}
}
else IPtype=val;
isValid = (checkIpAddress(IPtype))
if (isValid)
{
var ipArr=new Array(4);
ipArr=sliceString(IPtype,".");
result=0;
for (i=0;((i<4)&&(isValid));i++)
{
var curr_octet = parseInt(ipArr[i]);
if ((curr_octet==0)||(curr_octet==128)||(curr_octet==192)||(curr_octet==224)||(curr_octet==240)||
(curr_octet==248)||(curr_octet==252)||(curr_octet==254)||(curr_octet==255))
{
base=128;
while (curr_octet!=0)
{
if (curr_octet>=base)
{
curr_octet-=base;
result++
}
base=base/2;
}
}
else isValid=0;
}
}
if (!(isValid))
{
if (fldName && document.forms[0] && obj && docObj)
{
docObj.fldToCheck=fldName;
if (!(alertExist))
{
alertExist=true;
alert ("The Mask should be in an IP address format.");
alertExist=false;
}
if (obj.type!="hidden")
setTimeout('checkFocus()',5);
}
return 0;
}
else
{
docObj.fldToCheck="";
return ("/"+result);
}
}
function calculateLocalizedStrLength(str)
{
var length=0;
var charCode;
for(var i=0;i<str.length;i++)
{
charCode=str.charCodeAt(i);
if((charCode<=127)||(charCode<=160))
length++;
else if(charCode>=128 && charCode<=2047)
length+=2;
else if(charCode>=2048 && charCode<=65535)
length+=3;
else if(charCode>=65636 && charCode<=1114111)
length+=4;
}
return length;
}
function checkValidationMaskWithRanges(cntrl, canBeEmpty, minPrefix, maxPrefix)
{
if(minPrefix == null)
minPrefix = 0;
if(maxPrefix == null)
maxPrefix = 32;
var val=cntrl.value=removeSpacesFromHeadAndTail(cntrl.value);
if(cntrl.disabled)
return true;
if(val == "" && canBeEmpty)
{
return true;
}
else if(val == "")
{
callAlert(cntrl,"Blank value in highlighted field is illegal.");
cntrl.focus();
return false;
}
if(!/(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)/.test(val))
{
callAlert(cntrl,"Value is not in IP address format.");
cntrl.focus();
return false;
}
var octetArr = val.split(".");
for(var i=0;i<octetArr.length;i++)
{
if(octetArr[i].length > 1 && octetArr[i].charAt(0) == "0")
{
callAlert(cntrl,"Value is an illegal network mask.");
cntrl.focus();
return false;
}
}
var bitString = "";
var currBits;
for(var i = 0; i < octetArr.length; i++)
{
currBits = parseInt(octetArr[i],10).toString(2);
if(currBits.length > 8)
{
callAlert(cntrl,"Value is an illegal network mask.");
cntrl.focus();
return false;
}
while(currBits.length < 8)
currBits = "0" + currBits;
bitString += currBits;
}
var onesEnded = false;
var prefix = 0;
for(var i = 0; i < bitString.length; i++)
{
if(bitString.charAt(i) == "0")
{
if(!onesEnded)
{
onesEnded = true;
prefix = i;
}
}
else
{
if(onesEnded)
{
callAlert(cntrl,"Value is an illegal network mask.");
cntrl.focus();
return false;
}
}
}
if(prefix < minPrefix || prefix > maxPrefix)
{
var minMask = maskIntValToIp(minPrefix);
var maxMask = maskIntValToIp(maxPrefix);
callAlert(cntrl,"Network mask is out of range. Legal range is "+minMask+" - "+maxMask+".")
cntrl.focus();
return false;
}
return true;
}
function maskIntToIp(fldName,val)
{
var maskASInt;
var obj;
var formObj=document.forms[0].elements;
if (fldName)
{
obj=document.forms[0].elements[fldName];
maskASInt=obj.value;
if ((docObj.fldToCheck=="")||((notIE)&&(!(formObj[docObj.fldToCheck]))))
{
docObj.fldToCheck=fldName;
}
}
else maskASInt=val;
while ((maskASInt.charAt(0)==" ")||(maskASInt.charAt(0)=="/")||(maskASInt.charAt(0)=="\\"))
maskASInt=maskASInt.substr(1);
var ipArr=new Array(0,0,0,0);
if ((!checkUInteger32(maskASInt)) || (maskASInt>32)||(maskASInt<0))
{
if (fldName)
{
docObj.fldToCheck=fldName;
if (!(alertExist))
{
alertExist=true;
alert("The mask must be integer range 0..32.");
alertExist=false;
}
if (obj.type!="hidden")
setTimeout('checkFocus()',5);
}
}
else
{
if (obj && (obj.type!="hidden"))
{
docObj.fldToCheck="";
}
fullMasks=Math.floor(maskASInt/8);
for (i=0;i<4;i++)
{
if (i<fullMasks)
{
ipArr[i]=255;
maskASInt-=8;
}
else
{
base=128;
while (maskASInt>0)
{
ipArr[i]+=base;
base=base/2;
maskASInt--;
}
}
}
}
return (ipArr[0]+"."+ipArr[1]+"."+ipArr[2]+"."+ipArr[3]);
}
function getPrefixFromMask(cntrl, showNoMsg)
{
var val = cntrl.value;
if(!checkValidationIP(cntrl,false,true,true))
return -1;
var onesOverFlag = false;
var res = 0;
var bitString = IP2Bin(val);
if(bitString.length != 32)return false;
for(var i = 0; i < bitString.length; i++)
{
if(bitString.charAt(i) == "1")
{
if(onesOverFlag && !showNoMsg)
{
alert("Please enter a legal Network Mask value");
return -1;
}
else
res++;
}
else
onesOverFlag = true;
}
return res;
}
function IP2Bin(IPAddr)
{ var tmp="";
var octetArr = IPAddr.split(".");
if (octetArr.length != 4)
return "";
var fullBinStr = "";
var octetInt;
for (var i = 0; i < octetArr.length; i ++)
{
octetInt = parseInt(octetArr[i], 10);
if (isNaN(octetInt) || octetInt < 0 || octetInt > 255)
return "";
tmp= pad(octetInt.toString(2),"0", 8);
fullBinStr += tmp;
}
return fullBinStr;
}
function Bin2IP(binStr)
{
if (binStr.length != 32)
return "";
var octetArr = new Array();
var octetInt;
for (var i = 0; i < 4; i ++)
{
octetInt = parseInt(binStr.substr(i * 8, 8), 2);
if (isNaN(octetInt) || octetInt < 0 || octetInt > 255)
return "";
octetArr.push(octetInt);
}
return octetArr.join(".");
}
function numbersOnlyNoSigns(myfield, e)
{
var key;
var keychar;
if(window.event)
{
key = window.event.keyCode;
}
else if(e)
{
key = e.which;
}
else
{
return true;
}
if((key==null) || (key==0) || (key==8) || (key==9) || (key==27))
{
return true;
}
if(isNumber(String.fromCharCode(key)))
{
return true;
}
else
{
return false;
}
}
function isNumber(val)
{
if(("0123456789".indexOf(val) > -1))
{
return true;
}
else
{
return false;
}
}
function ipSegToOctet(input)
{
base="0123456789ABCDEF"
Result="";
counter=0;
while (input>=16)
{
input-=16;
counter++;
}
Result=length2((base.charAt(counter)).toString() + (base.charAt(input)).toString());
return(Result);
}
function ipToOctet(ipType)
{
if (ipType=="")
return "";
var ipArr=new Array(4);
ipArr=sliceString(ipType,'.');
octet4="";
for (i=0;i<4;i++)
{
octet4+=ipSegToOctet(parseInt(ipArr[i]))
}
return octet4;
}
function octetToIp(octetStr)
{
var octetArr=splitOctetString(octetStr);
result=Hex2Ascii(octetArr[0]);
for (i=1;i<4;i++)
{
result+="."+Hex2Ascii(octetArr[i]);
}
return result;
}
function fromMulticastMacToIP(macAddr)
{
var ipStr="224-239.";
var byte3OfMacOption1;
if (macAddr.slice(6,7)=="0")
byte3OfMacOption1=(Hex2Ascii(macAddr.slice(7,8))&127).toString();
else byte3OfMacOption1=(Hex2Ascii(macAddr.slice(6,8))&127).toString();
byte3OfMacOption2=parseInt(byte3OfMacOption1)+128;
ipStr+=byte3OfMacOption2+"|"+byte3OfMacOption1+".";
if (macAddr.slice(8,9)=="0")
ipStr+=Hex2Ascii(macAddr.slice(9,10));
else ipStr+=Hex2Ascii(macAddr.slice(8,10));
ipStr+=".";
if (macAddr.slice(10,11)=="0")
ipStr+=Hex2Ascii(macAddr.slice(11,12));
else ipStr+=Hex2Ascii(macAddr.slice(10,12));
return ipStr;
}
function fromIPToMulticastMac(ipAddr,isEdit)
{
var macStr="01005e";
ipArr=sliceString(ipAddr,".");
var isCont=true;
if (isEdit==true)
{
ipArr[1]=(sliceString(ipArr[1],"|"))[1];
}
else
{
if ((parseInt(ipArr[0])<224) || (parseInt(ipArr[0])>239))
{
isCont=false;
alert("Multicat Mac address must be between 224.0.0.0-239.255.255.255");
}
}
if (isCont)
{
ipArr[1]=(ipArr[1]&127).toString();
for (var i=1; i<4; i++)
{
ipArr[i]=Str2Hex(ipArr[i]);
if (ipArr[i]==0 || ipArr[i]=="0")
ipArr[i]="00";
if (ipArr[i].length==1)
ipArr[i]="0"+ipArr[i];
macStr+=ipArr[i];
}
return macStr;
}
else return -1;
}
function compareIP(IP1, IP2)
{
if(IP1 == IP2)
return "0";
var IPArr1 = IP1.split(".");
var IPArr2 = IP2.split(".");
for(var i = 0; i < 4; i++)
{
if(parseInt(IPArr1[i],10) > parseInt(IPArr2[i],10))
return "1";
else if(parseInt(IPArr1[i],10) < parseInt(IPArr2[i],10))
return "2";
}
return "-1";
}
function ticksToSecondsField(tickField, secField){
var ticks = document.forms[0].elements[tickField].value;
document.forms[0].elements[secField].value = ticks / TICKS_PER_SECOND;
}
function secondsToTicksField(secField, tickField){
var secs = document.forms[0].elements[secField].value;
document.forms[0].elements[tickField].value = secs * TICKS_PER_SECOND;
}
function sysUpTimeConvFunc(ticks)
{
var time = Math.round(ticks/TICKS_PER_SECOND);
var days = Math.floor(time/(24*3600));
time = time%(24*3600);
var hours = Math.floor(time/3600);
time = time%3600;
var min = Math.floor(time/60);
var sec = time%60;
var timeStr= days + " d "+hours+" h "+min+" m "+sec+" s";
document.write(timeStr);
}
function ticksToDateAndTime(systemUpTimeVal, ticks, dateVal, timeVal){
var hours = "";
var hours = hours+timeVal.substr(0,2);
var minutes = "";
var minutes = minutes+timeVal.substr(2,2);
var seconds = "";
var seconds = seconds+timeVal.substr(4,2);
var day = "";
day=day+(dateVal.charAt(0));
day=day+(dateVal.charAt(1));
var month = "";
month=month+(dateVal.charAt(2));
month=month+(dateVal.charAt(3));
var year = "";
year=year+(dateVal.charAt(4));
year=year+(dateVal.charAt(5));
if(year>=70 && year<=99){
year = "19"+year;
}
else{
year = "20"+year;
}
date = new Date(year, month, day, hours, minutes, seconds);
var currentMilliTime = date.getTime();
var differenceInMilli = currentMilliTime - (systemUpTimeVal*10);
var neededDate = differenceInMilli + ticks*10;
date.setTime(neededDate);
day = date.getDate();
month = date.getMonth();
year = date.getFullYear();
hour = date.getHours();
minutes = date.getMinutes();
seconds = date.getSeconds();
if(hour<10)hour = "0" + hour;
if(minutes<10)minutes = "0" + minutes;
if(seconds<10)seconds = "0" + seconds;
timeStr = day+"/"+month+"/"+year+" "+hour+":"+minutes+":"+seconds;
document.write(timeStr);
}
function calculateTimeFromOctet(theOctet)
{
var timeArray=new Array(7);
var upperOctet=theOctet.toUpperCase();
var octetArray=new Array;
octetArray=splitOctetString(upperOctet);
timeArray[0]=(Hex2Ascii(octetArray[0]+octetArray[1])).toString();
for (i=1;i<timeArray.length;i++)
timeArray[i]=(Hex2Ascii(octetArray[i+1]));
return timeArray;
}
function calculateOctetFromTime(TimeArray)
{
octetString="";
var tempArray=new Array(2);
tempArray=splitOctetString(length4(Str2Hex(TimeArray[0])));
octetString+=length2((tempArray[0]));
octetString+=length2((tempArray[1]));
for (i=1;i<TimeArray.length;i++)
octetString+=length2(Str2Hex(TimeArray[i]));
return octetString;
}
function secondsToTimeString(totalSeconds)
{
var seconds = totalSeconds % 60;
var minutes = Math.floor(totalSeconds / 60, 10) % 60;
var hours = Math.floor(totalSeconds / 3600);
seconds = pad(seconds.toString(),"0",2);
minutes = pad(minutes.toString(),"0",2);
hours = pad(hours.toString(),"0",2);
var res = hours + ":" + minutes + ":" + seconds;
return res;
}
function checkDate(expression)
{
anum=/(^\d{1,2}\/\S{3}\/\d{4},\d{2}:\d{2}:\d{2}$)/
if (anum.test(expression))
{
testresult=1;
ExpArr=new Array(6);
ExpArr=sliceString(expression,",");
DateArr=new Array(3);
TimeArr=new Array(3);
DateArr=sliceString(ExpArr[0],"/");
TimeArr=sliceString(ExpArr[1],":");
if ((parseInt(DateArr[2])>2097)||(parseInt(DateArr[2])<2000))
testresult=-1;
switch ((DateArr[1]).toUpperCase())
{
case "JAN":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
case "FEB":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>28))
if (!((parseInt(DateArr[2])%4 == 0)&&((parseInt(DateArr[0]))==29)))
return (-2);
break;
case "MAR":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
case "APR":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>30))
return (-2);
break;
case "MAY":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
case "JUN":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>30))
return (-2);
break;
case "JUL":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
case "AUG":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
case "SEP":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>30))
return (-2);
break;
case "OCT":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
case "NOV":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>30))
return (-2);
break;
case "DEC":
if (((parseInt(DateArr[0]))<1) || ((parseInt(DateArr[0]))>31))
return (-2);
break;
}
if ((parseInt(TimeArr[0])>23)||(parseInt(TimeArr[0])<0))
testresult=-3;
if ((parseInt(TimeArr[1])>59)||(parseInt(TimeArr[1])<0))
testresult=-4;
if ((parseInt(TimeArr[2])>59)||(parseInt(TimeArr[2])<0))
testresult=-5;
monthStr=DateArr[1].toUpperCase();
if ((monthStr!="JAN")&&(monthStr!="FEB")&&(monthStr!="MAR")&&(monthStr!="APR")&&
(monthStr!="MAY")&&(monthStr!="JUN")&&(monthStr!="JUL")&&(monthStr!="AUG")&&
(monthStr!="SEP")&&(monthStr!="OCT")&&(monthStr!="NOV")&&(monthStr!="DEC"))
testresult=-6;
}
else
{
testresult=0;
}
return testresult;
}
function checkhexa(stringTocheck)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
for(i=0;i<stringTocheck.length;i++)
{
if(!((stringTocheck.charCodeAt(i)>=97&& stringTocheck.charCodeAt(i)<=102)||(stringTocheck.charCodeAt(i)>=65 && stringTocheck.charCodeAt(i)<=70)||(stringTocheck.charCodeAt(i)>=48 && stringTocheck.charCodeAt(i)<=57)))
{
return false;
}
}
return true;
}
function check(str)
{
var tmp;
var result=1;
str=removeSpacesFromHeadAndTail(str);
for(i=0;i<str.length;i++)
{
tmp=str.charCodeAt(i);
if(!((tmp==95)||(tmp>47&&tmp<58)||(tmp>64&&tmp<91)||(tmp>96&&tmp<123)))
result=0;
}
return (result);
}
function checknumber(stringTocheck)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var anum=/(^\d+$)|(^\d+\.\d+$)/
if (anum.test(stringTocheck))
testresult=true
else{
testresult=false
}
return testresult;
}
function checkInteger(stringTocheck)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var anum=/(^\d+$)|(^\+\d+$)|(^\-\d+$)/
return (anum.test(stringTocheck));
}
function checkUInteger32(stringTocheck)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var anum=/(^\d+$)/
return (anum.test(stringTocheck));
}
function checkIPZero(ipString)
{
var addrreg = /^(22[0-3]|2[0-1][0-9]|1\d{2}|[1-9]\d{0,1})\.(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d{0,1}|0)\.(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d{0,1}|0)\.(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d{0,1})$/;
var matches = ipString.match (addrreg);
if (matches != null)
return true;
return false;
}
function checkIpAddress(stringTocheck,isMulticast)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var ipType=/(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)/
var multicastIpType=/(^\d{1,3}-\d{1,3}\.\d{1,3}\|\d{1,3}\.\d{1,3}\.\d{1,3}$)/
if (ipType.test(stringTocheck)||(isMulticast!="" && isMulticast!=null && isMulticast==true && multicastIpType.test(stringTocheck)))
{
var IPArr=sliceString(stringTocheck,".");
if (4==IPArr.length)
{
for (var i=0; i<IPArr.length; i++)
{
if (IPArr[i].charAt(0)=="0" && IPArr[i].length > 1)
return false;
if ((i==0 || i==1) && isMulticast!="" && isMulticast!=null && isMulticast==true)
{
var tmp;
if (i==0)
tmp=sliceString(IPArr[i],"-");
else if (i==1)
tmp=sliceString(IPArr[i],"|");
if (2==tmp.length)
{
for (var j=0; j<tmp.length; j++)
{
tmp[j]=parseInt(tmp[j]);
if ( (tmp[j]<0) || (tmp[j]>255) )
return false;
}
}
else return false;
}
else
{
var tmp=parseInt(IPArr[i]);
if ( (tmp<0) || (tmp>255) )
return false;
}
}
}
else return false;
}
else return false;
return true;
}
function checkIP(ipString)
{
if (ipString=="127.0.0.1")
return false;
var addrreg = /^(22[0-3]|2[0-1][0-9]|1\d{2}|[1-9]\d{0,1}|0)\.(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d{0,1}|0)\.(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d{0,1}|0)\.(25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d{0,1}|0)$/;
var matches = ipString.match (addrreg);
if (matches != null)
return true;
return false;
}
function checkOID(stringTocheck)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var anum=/(^\d+$)/;
var OIDArr=sliceString(stringTocheck,".");
for (var i=0; i<OIDArr.length; i++)
{
if (!anum.test(OIDArr[i]))
{
return false;
}
}
return true;
}
function checkPortList(stringTocheck)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var anum=/(^[0-1]+$)/;
if (!anum.test(stringTocheck))
{
return false;
}
return true;
}
function checkOctetString(stringTocheck,typeParam)
{
stringTocheck=removeSpacesFromHeadAndTail(stringTocheck);
var tokensArr=[":","-"];
var token="";
var octetString="";
var octetArr;
var legal;
if (typeParam!="MAC" && isNaN(typeParam))
typeParam="";
for (i=0; i<tokensArr.length; i++)
if ((stringTocheck).indexOf(tokensArr[i])!=-1)
{
token=tokensArr[i];
break;
}
if (!(typeParam=="MAC" && token==""))
{
octetArr=sliceString(stringTocheck,token);
legal=true;
if (token!="")
{
for (i=0;i<octetArr.length;i++)
{
if (octetArr[i].length!=2)
{
legal=false;
break;
}
}
}
if (legal)
{
for (i=0;i<octetArr.length;i++)
octetString+=octetArr[i];
var x=0;
for (i=0;i<octetString.length;i++)
{
x=octetString.charCodeAt(i);
if ( (x<48) || ((x>57)&&(x<65)) || ((x>70)&&(x<97)) || (x>102))
{
legal=false;
break;
}
}
}
if (((octetString.length)%2!=0)||(!legal))
{
return false;
}
return true;
}
return false;
}
function checkValidation(fldHeader,isShowMsg,fieldName,isSpaceAllowed,typeParam,minRange,maxRange,octetValMinRange,octetValMaxRange)
{
var e=null;
var fldName=null;
var errMsg="";
var formObj=document.forms[0].elements;
var isConCheck=true;
var obj=null;
var nonVtField=false;
var orgFieldName="";
var i;
docObj.fldToCheck = "";
if (!isSpaceAllowed)
isSpaceAllowed=false;
if (!isShowMsg)
{
if (isNaN(isShowMsg))
isShowMsg=true;
else
{
if (isShowMsg.length==0)
isShowMsg=true;
else isShowMsg=false;
}
}
if (fieldName)
{
orgFieldName=fldName=fieldName;
}
else if (window.event && window.event.srcElement && window.event.srcElement.name)
{
e=window.event;
orgFieldName=fldName=e.srcElement.name;
}
else if (!window.event)
{
e=arguments.callee.caller.arguments[0];
orgFieldName=fldName=e.target.name ;
}
else isConCheck=false;
if ((docObj.fldToCheck=="")||((!(formObj[docObj.fldToCheck]))))
{
docObj.fldToCheck=fldName;
}
if (docObj.fldToCheck==fldName)
{
if ((isSpace(formObj[fldName].value))&&(!isSpaceAllowed) )
{
formObj[fldName].value= formObj[fldName].defaultValue;
alert("Blank is not a legal value");
setTimeout('checkFocus()',5);
return false;
}
else if (!((isSpace(formObj[fldName].value))&&(isSpaceAllowed) ) )
{
if (isConCheck)
{
obj=formObj[fldName];
var vtFldArr;
if (((obj.type=="text") || (obj.type=="textarea") || (obj.type=="hidden") || (obj.type=="password"))&&(obj.value.indexOf('"')!=-1))
{
isShowMsg=true;
errMsg="The use of \" character is illegal in the specified field";
}
else if ((obj.type=="text") || (obj.type=="textarea") || (obj.type=="hidden") || (obj.type=="password"))
{
vtFldArr=sliceString(fldName,"$");
if (vtFldArr)
{
if ((formObj[vtFldArr[0]+"$VT"]!=null)&&(!typeParam))
{
vtFldVal=formObj[vtFldArr[0]+"$VT"].value;
}
else if ((formObj[vtFldArr[0]+"$bnd"]!=null)&&(!typeParam))
{
vtFldVal=formObj[vtFldArr[0]+"$bnd"].value;
}
else if (typeParam)
{
nonVtField=true;
}
else isConCheck=false;
if ((isConCheck)|| (nonVtField))
{
if (!nonVtField)
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (i=0; i<vtFldValArr.length; i++)
{
if (vtFldValArr[i].indexOf("Type")!=-1)
break;
}
if (vtFldValArr[i].indexOf("Type")!=-1)
{
var tmpValArr=sliceString(vtFldValArr[i],"=");
}
}
}
if (typeParam)
typeParam=typeParam.toUpperCase();
switch(typeParam)
{
case "INT": type="0";
break;
case "INTEGER": type="0";
break;
case "UINT32": type="12";
break;
case "OID": type="3";
break;
case "IP": type="5";
break;
case "OCTET":
case "MAC":
type="2";
break;
case "PORTLIST": type="101";
break;
case "STRING": type="100";
break;
case "MULTICASTIP": type=typeParam;
break;
default:
if (tmpValArr && 2==tmpValArr.length)
{
type=tmpValArr[1];
}
else type=null;
break;
}
if (type != null)
{
if (nonVtField)
errMsg=checkType(orgFieldName,type,isShowMsg,fldHeader,typeParam);
else errMsg=checkType(fldName,type,isShowMsg,fldHeader,typeParam);
if (""==errMsg)
{
switch(type)
{
case "0":
case "6":
case "7":
case "11":
case "12":
if ((minRange && minRange!="") || (maxRange && maxRange!=""))
errMsg=checkIntegerLegalValue(obj.value, minRange, maxRange,isShowMsg,fldHeader,true);
else if (!nonVtField) errMsg=checkRange(fldName,isShowMsg,fldHeader);
break;
case "2":
if (typeParam=="MAC")
{
errMsg=checkOctetSize(fldName,isShowMsg,fldHeader,6, 6,typeParam);
}
else
{
errMsg=checkOctetSize(fldName,isShowMsg,fldHeader,minRange, maxRange);
if (errMsg=="" && (octetValMinRange && octetValMinRange!="")&&(octetValMaxRange && octetValMaxRange!=""))
errMsg=validateOctetValRange(fldName,octetValMinRange,octetValMaxRange,fldHeader);
}
break;
case "100":
errMsg=checkStrSize(fldName,isShowMsg,fldHeader,minRange, maxRange);
break;
default: break;
}
}
}
}
}
}
}
else docObj.fldToCheck="";
if (false==isShowMsg && errMsg!="" )
{
return errMsg;
}
else if (errMsg!="" && errMsg!=true)
{
if (!(alertExist))
{
alertExist=true;
alert(errMsg);
alertExist=false;
}
if (obj.type!="hidden")
setTimeout('checkFocus()',5);
return false;
}
docObj.fldToCheck="";
return true;
}
else
{
docObj.fldToCheck="";
return true;
}
}
return;
}
function checkValidationIP(cntrl, notZeros, canBeEmpty)
{
var currEdgeOctet = "";
var isNetworkEdge = true;
var retVal = true;
if(cntrl.disabled)
{
return retVal;
}
var val=cntrl.value=removeSpacesFromHeadAndTail(cntrl.value);
if(val == "" && canBeEmpty)
{
return retVal;
}
else if(val == "")
{
return callAlert(cntrl,"IP address should not be blank.");
}
if(!/(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)/.test(val))
{
return callAlert(cntrl,"Please enter a legal IP address");
}
else if(!notZeros && val == "0.0.0.0")
{
retVal = true;
}
else
{
val = val.split(".")
if(val[0]>=224 || val[0]<=0 || (val[0].length>1 && val[0].charAt(0) == "0") || val[0] == 127 )
{
retVal = false;
}
for(var i=1;i<4;i++)
{
if(val[i]>255 || val[i]<0 || (val[i].length>1 && val[i].charAt(0) == "0"))
{
retVal = false;
break;
}
else if(isNetworkEdge)
{
if(currEdgeOctet == "")
currEdgeOctet = val[i];
if((val[i] != 255 && val[i] != 0) || val[i] != currEdgeOctet )
{
isNetworkEdge = false;
}
}
}
if(isNetworkEdge)
{
retVal = false;
}
}
if(!retVal)
{
return callAlert(cntrl,"Please enter a legal unicast IP address");
}
return retVal;
}
function checkValidationNetworkIP(cntrl, canBeEmpty)
{
var retVal = true;
if(cntrl.disabled)
{
return retVal;
}
var val=cntrl.value=cntrl.value;
if(val == "" && canBeEmpty)
{
return retVal;
}
else if(val == "")
{
return callAlert(cntrl,"IP address should not be blank.");
}
if(!/(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)/.test(val))
{
return callAlert(cntrl,"Please enter a legal IP address");
}
else if(val == "0.0.0.0")
{
retVal = false;
}
else
{
val = val.split(".")
if(val[0]>=224 || val[0]<=0 || (val[0].length>1 && val[0].charAt(0) == "0") || val[0] == 127 )
{
retVal = false;
}
for(var i=1;i<4;i++)
{
if(val[i]>255 || val[i]<0 || (val[i].length>1 && val[i].charAt(0) == "0"))
{
retVal = false;
break;
}
}
}
if(!retVal)
{
return callAlert(cntrl,"Please enter a legal network IP address");
}
return retVal;
}
function checkMulticastIP(cntrl, ipFormat, canBeEmpty)
{
var retVal = true;
if(cntrl.disabled)
{
return retVal;
}
var val = cntrl.value;
if(val == "" && canBeEmpty)
{
return retVal;
}
else if(val == "")
{
return callAlert(cntrl,"IP address should not be blank.");
}
else if(ipFormat=="1")
{
if(checkValidationIPFormatOnly(cntrl,canBeEmpty))
{
var IPArr=cntrl.value.split(".");
if ((parseInt(IPArr[0])<224) || (parseInt(IPArr[0])>239))
{
retVal = false;
}
}
else
{
return false;
}
}
else
{
if(checkIPv6General(cntrl, false))
{
var valArr=cntrl.value.split(":");
if(valArr[0].toLowerCase()<"ff00")
{
retVal = false;
}
}
else
retVal = false;
}
if(retVal == false)
{
var msg = "";
if(ipFormat=="1")
msg = "Please enter a legal multicast IP address. The value of the first octet must be 224-239";
else
msg = 'Please enter a legal multicast IPv6 address. The value of the first group must be "ff00" or higher.';
callAlert(cntrl, msg);
}
return retVal;
}
function checkValidationIPFormatOnly(cntrl, canBeEmpty)
{
var result = true;
var val=removeSpacesFromHeadAndTail(cntrl.value);
if(cntrl.disabled)
return true;
if(val == "" && canBeEmpty)
return true;
else if(val == "")
{
callAlert(cntrl,"Blank value in highlighted field is illegal.");
cntrl.focus();
return false;
}
if(!/(^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$)/.test(val))
result = false;
val = val.split(".");
for(var i = 0; i < val.length; i++)
{
if(val[i]>255 || val[i]<0 || (val[i].length > 1 && val[i].charAt(0) == "0"))
{
result = false;
}
}
if(result == false)
{
callAlert(cntrl,"Please enter a legal IP address.");
cntrl.focus();
return false;
}
return true;
}
function checkType(fldName,type,isShowMsg,fldHeader,typeParam)
{
var errMsg="";
var type;
var formObj=document.forms[0].elements;
var obj=formObj[fldName];
var verifyType;
var val=removeSpacesFromHeadAndTail(obj.value);
obj.value=val;
if (!isShowMsg)
{
if (isNaN(isShowMsg))
isShowMsg=true;
else
{
if (isShowMsg.length==0)
isShowMsg=true;
else isShowMsg=false;
}
}
if (typeParam!="MAC" && isNaN(typeParam))
typeParam="";
type=type.toUpperCase();
switch(type)
{
case "INT": type="0";
break;
case "INTEGER": type="0";
break;
case "UINT32": type="12";
break;
case "OID": type="3";
break;
case "IP": type="5";
break;
case "OCTET":
case "MAC":
if (type=="MAC")
{
typeParam="MAC"
}
type="2";
break;
case "PORTLIST": type="101";
break;
case "STRING": type="100" ;
break;
default: break;
}
switch (type)
{
case "0":
verifyType=checkInteger(val);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is illegal. "+fldHeader+" must be an Integer.";
else errMsg=val+" is not an Integer.";
}
break;
case "2":
verifyType=checkOctetString(val,typeParam);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
{
if (typeParam=="MAC")
errMsg=errMsg=val+" is not a MAC address. "+fldHeader+" must be 6 pairs of Hexa digits(0..9,a..f) separated by ':'.";
else errMsg=errMsg=val+" is not an octet string. "+fldHeader+" must be an even number of pairs of Hexa digits(0..9,a..f).";
}
else
{
if (typeParam=="MAC")
errMsg=val+" is not a MAC address. It must be 6 pairs of Hexa digits(0..9,a..f) separated by ':'.";
else errMsg=val+" is not an octet string. It must be an even number of pairs of Hexa digits(0..9,a..f).";
}
}
break;
case "3":
verifyType=checkOID(val);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is illegal. "+fldHeader+" must be an OID.";
else errMsg=val+" is not an OID.";
}
break;
case "5":
verifyType=checkIpAddress(val);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is illegal. "+fldHeader+" must be an IP Address.";
else errMsg=val+" is not a legal IP Address.";
}
break;
case "MULTICASTIP":
if ((val.indexOf("-")!=-1) && (val.indexOf("|")!=-1))
verifyType=checkIpAddress(val,true);
else verifyType=checkIpAddress(val);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is illegal. "+fldHeader+" must be a Multicast IP Address.";
else errMsg=val+" is not a Multicast IP Address.";
}
else
{
var ipArr=sliceString(val,".");
if ((parseInt(ipArr[0])<224) || (parseInt(ipArr[0])>239))
{
errMsg="IP Multicat address must be between 224.0.0.0-239.255.255.255";
}
}
break;
case "12":
case "7":
verifyType=checkUInteger32(val);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is illegal. "+fldHeader+" must be an Unsigned Integer.";
else errMsg=val+" is not an Unsigned Integer.";
}
break;
case "100":
if (val=="" || val==" " || val==null)
{
if (fldHeader)
errMsg=fldHeader+" must be a String.";
else errMsg="You must enter a String.";
}
break;
case "101":
verifyType=checkPortList(val);
if (!verifyType)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is illegal. "+fldHeader+" must be a Port List.";
else errMsg=val+" is not a Port List.";
}
break;
default: break;
}
if (false==isShowMsg && errMsg!="")
return "type";
return errMsg;
}
function checkRange(fldName,isShowMsg,fldHeader)
{
var errMsg="";
var minVal=null;
var maxVal=null;
var formObj=document.forms[0].elements;
var obj=formObj[fldName];
var minMaxStr;
var minMaxlimit;
var isConCheck=true;
var val=(removeSpacesFromHeadAndTail(obj.value))*1;
if (!isShowMsg)
{
if (isNaN(isShowMsg))
isShowMsg=true;
else
{
if (isShowMsg.length==0)
isShowMsg=true;
else isShowMsg=false;
}
}
var vtFldArr=sliceString(fldName,"$");
if (vtFldArr)
{
if (formObj[vtFldArr[0]+"$VT"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$VT"].value;
}
else if (formObj[vtFldArr[0]+"$bnd"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$bnd"].value;
}
}
else isConCheck=false;
if (isConCheck)
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (var i=0; i<vtFldValArr.length; i++)
{
minMaxStr=null;
minMaxlimit=null;
if (vtFldValArr[i].indexOf("Range")!=-1)
{
var tmpValArr=sliceString(vtFldValArr[i],"[");
if (tmpValArr && tmpValArr[1])
{
var tmp=tmpValArr[1];
tmpValArr=sliceString(tmp,"]");
if (tmpValArr)
{
tmp=tmpValArr[0];
tmpValArr=sliceString(tmp,",");
if (tmpValArr && 2==tmpValArr.length)
{
minVal=parseInt(tmpValArr[0]);
maxVal=parseInt(tmpValArr[1]);
if ( ( minVal !=null) && (parseInt(val) < minVal) )
{
minMaxStr="minimum" ;
minMaxlimit=minVal;
}
if ( ( maxVal !=null) && (parseInt(val) > maxVal) )
{
minMaxStr="maximum" ;
minMaxlimit=maxVal;
}
if (minMaxlimit!=null)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is out of range. The "+minMaxStr+" value for "+fldHeader+" is "+minMaxlimit+".\n";
else errMsg=val+" is out of range. The "+minMaxStr+" value is "+minMaxlimit+".\n";
}
}
}
}
}
}
}
}
if (false==isShowMsg && errMsg!="")
return ("range;" + minVal + ";" + maxVal);
return errMsg;
}
function checkStrSize(fldName,isShowMsg,fldHeader,minRange, maxRange)
{
var errMsg="";
var minVal=null;
var maxVal=null;
var formObj=document.forms[0].elements;
var obj=formObj[fldName];
var minMaxStr;
var minMaxlimit;
var isConCheck=true;
var val=removeSpacesFromHeadAndTail(obj.value);
if (!isShowMsg)
{
if (isNaN(isShowMsg))
isShowMsg=true;
else
{
if (isShowMsg.length==0)
isShowMsg=true;
else isShowMsg=false;
}
}
var vtFldArr=sliceString(fldName,"$");
if ((minRange && minRange!="") || (maxRange && maxRange!=""))
isConCheck=true;
else if (vtFldArr)
{
if (formObj[vtFldArr[0]+"$VT"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$VT"].value;
}
else if (formObj[vtFldArr[0]+"$bnd"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$bnd"].value;
}
else if (formObj[vtFldArr[0]]!=null)
{
vtFldVal=formObj[vtFldArr[0]].value;
}
}
else isConCheck=false;
if (isConCheck)
{
if ((minRange && minRange!="") || (maxRange && maxRange!=""))
{
errMsg=validateStrSize(val,minRange,maxRange,fldHeader);
}
else
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (var i=0; i<vtFldValArr.length; i++)
{
minMaxStr=null;
minMaxlimit=null;
if (vtFldValArr[i].indexOf("Range")!=-1)
{
var tmpValArr=sliceString(vtFldValArr[i],"[");
if (tmpValArr && tmpValArr[1])
{
var tmp=tmpValArr[1];
tmpValArr=sliceString(tmp,"]");
if (tmpValArr)
{
tmp=tmpValArr[0];
tmpValArr=sliceString(tmp,",");
if (tmpValArr && 2==tmpValArr.length)
{
minVal=parseInt(tmpValArr[0]);
maxVal=parseInt(tmpValArr[1]);
errMsg=validateStrSize(val,minVal,maxVal,fldHeader)
}
}
}
}
}
}
}
}
if (false==isShowMsg && errMsg!="")
return "StrRange";
return errMsg;
}
function validateStrSize(val,minVal,maxVal,fldHeader)
{
var minMaxStr;
var minMaxlimit;
var errMsg="";
if ( ( minVal !=null) && ((val).length < minVal) )
{
minMaxStr="minimum" ;
minMaxlimit=minVal;
}
if ( ( maxVal !=null) && ((val).length > maxVal) )
{
minMaxStr="maximum" ;
minMaxlimit=maxVal;
}
if (minMaxlimit!=null)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is out of range. The "+minMaxStr+" length for "+fldHeader+" is "+minMaxlimit+".\n";
else errMsg=val+" is out of range. The "+minMaxStr+" length is "+minMaxlimit+".\n";
}
return errMsg;
}
function checkOctetSize(fldName,isShowMsg,fldHeader,minRange, maxRange,typeParam)
{
var errMsg="";
var minVal=null;
var maxVal=null;
var formObj=document.forms[0].elements;
var obj=formObj[fldName];
var minMaxStr;
var minMaxlimit;
var isConCheck=true;
var tokensArr=[":","-",""];
var token="";
var valLen=0;
if (!isShowMsg)
{
if (isNaN(isShowMsg))
isShowMsg=true;
else
{
if (isShowMsg.length==0)
isShowMsg=true;
else isShowMsg=false;
}
}
var val=removeSpacesFromHeadAndTail(obj.value);
var vtFldArr=sliceString(fldName,"$");
if ((minRange && minRange!="") || (maxRange && maxRange!=""))
isConCheck=true;
else if (vtFldArr)
{
if (formObj[vtFldArr[0]+"$VT"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$VT"].value;
}
else if (formObj[vtFldArr[0]+"$bnd"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$bnd"].value;
}
}
else isConCheck=false;
if (isConCheck)
{
if ((minRange && minRange!="") || (maxRange && maxRange!=""))
{
errMsg=validateOctetSize(val,minRange,maxRange,fldHeader,typeParam);
}
else
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (var i=0; i<vtFldValArr.length; i++)
{
minMaxStr=null;
minMaxlimit=null;
if (vtFldValArr[i].indexOf("Range")!=-1)
{
var tmpValArr=sliceString(vtFldValArr[i],"[");
if (tmpValArr && tmpValArr[1])
{
var tmp=tmpValArr[1];
tmpValArr=sliceString(tmp,"]");
if (tmpValArr)
{
tmp=tmpValArr[0];
tmpValArr=sliceString(tmp,",");
if (tmpValArr && 2==tmpValArr.length)
{
minVal=parseInt(tmpValArr[0]);
maxVal=parseInt(tmpValArr[1]);
errMsg=validateOctetSize(val,minVal,maxVal,fldHeader,typeParam)
}
}
}
}
}
}
}
}
if (false==isShowMsg && errMsg!="")
return "OctetRange";
return errMsg;
}
function validateOctetSize(val,minVal,maxVal,fldHeader,typeParam)
{
var minMaxStr;
var minMaxlimit;
var tokensArr=[":","-",""];
var token="";
var valLen=0;
var errMsg="";
for (var j=0; j<tokensArr.length; j++)
{
if ((val).indexOf(tokensArr[j])!=-1)
{
token=tokensArr[j];
break;
}
}
if (typeParam!="MAC" && isNaN(typeParam))
typeParam="";
if (!(typeParam=="MAC" && token==tokensArr[2]))
{
var octetArr=sliceString(val,token);
if (token==tokensArr[2])
valLen=(octetArr.length)/2;
else valLen=octetArr.length;
if ( ( minVal !=null) && (valLen < minVal) )
{
minMaxStr="minimum" ;
minMaxlimit=minVal;
}
if ( ( maxVal !=null) && (valLen > maxVal) )
{
minMaxStr="maximum" ;
minMaxlimit=maxVal;
}
if (minMaxlimit!=null)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is out of range. The "+minMaxStr+" length for "+fldHeader+" is "+minMaxlimit+" octets.\n";
else errMsg=val+" is out of range. The "+minMaxStr+" length is "+minMaxlimit+" octets.\n";
}
return errMsg;
}
}
function validateOctetValRange(fldName,valMinRange,valMaxRange,fldHeader)
{
var formObj=document.forms[0].elements;
var val=removeSpacesFromHeadAndTail(formObj[fldName].value);
var minMaxStr;
var minMaxlimit;
var errMsg="";
if ( valMinRange!=null)
{
if (hexToDec(val)<hexToDec(valMinRange))
{
minMaxStr="minimum" ;
minMaxlimit=valMinRange;
}
}
if ( valMaxRange!=null )
{
if (hexToDec(val)>hexToDec(valMaxRange))
{
minMaxStr="maximum" ;
minMaxlimit=valMaxRange;
}
}
if (minMaxlimit!=null)
{
if ((val!=0)&&(val=="" || val==" " || val==null)) val="blank";
if (fldHeader)
errMsg=val+" is out of range. The "+minMaxStr+" value for "+fldHeader+" is "+minMaxlimit+".\n";
else errMsg=val+" is out of range. The "+minMaxStr+" value is "+minMaxlimit+".\n";
}
return errMsg;
}
function getDefaultValue(fldName)
{
var formele=document.forms[0].elements;
var typeIndex=null;
var defValIndex=null;
var defVal=null;
var type=null;
var retVal="";
var isConCheck=true;
if (formele[fldName])
{
var vtFldArr=sliceString(fldName,"$");
if ( (vtFldArr) && (formele[vtFldArr[0]+"$VT"]!=null) )
{
vtFldVal=formele[vtFldArr[0]+"$VT"].value;
}
else isConCheck=false;
if (isConCheck)
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (i=0; i<vtFldValArr.length; i++)
{
if (vtFldValArr[i].indexOf("Type")!=-1)
typeIndex=i;
if (vtFldValArr[i].indexOf("Default value")!=-1)
{
defValIndex=i;
break;
}
}
if ( (defValIndex!=null) && (vtFldValArr[defValIndex].indexOf("Default value")!=-1) )
{
var tmpValArr=sliceString(vtFldValArr[defValIndex],"=");
if (tmpValArr && 2==tmpValArr.length)
{
defVal=tmpValArr[1];
if (defVal != null)
return defVal;
}
}
if ( (typeIndex!=null) && (vtFldValArr[typeIndex].indexOf("Type")!=-1) )
{
var tmpValArr=sliceString(vtFldValArr[typeIndex],"=");
if (tmpValArr && 2==tmpValArr.length)
{
type=tmpValArr[1];
if (type != null)
{
switch(type)
{
case "0":
case "6":
case "7":
case "8":
case "11":
case "12":
retVal=0;
break;
case "1":
case "2":
case "3":
retVal="";
break;
case "5":
retVal="0.0.0.0";
break;
default:
retVal="";
break;
}
return retVal;
}
}
}
}
}
}
return retVal;
}
function checkIntegerLegalValue(checkedValue, minRange, maxRange, isShowMsg, fldHeader, isMsgRes, isDec)
{
var checkedValue=removeSpacesFromHeadAndTail(checkedValue);
var minMaxStr,minMaxlimit;
var isValuOk;
if(isDec==true){
isValuOk=checknumber(checkedValue);
}
else{
isValuOk=checkInteger(checkedValue);
}
if(isValuOk)
{
checkedValue = checkedValue*1;
if ( ( minRange !=null) && (checkedValue < minRange) )
{
minMaxStr="minimum" ;
minMaxlimit=minRange;
}
if ( ( maxRange !=null) && (checkedValue > maxRange) )
{
minMaxStr="maximum" ;
minMaxlimit=maxRange;
}
if (minMaxlimit!=null)
{
if (true==isMsgRes && ""!=isMsgRes && null!=isMsgRes && (true==isShowMsg || isShowMsg=="" || isShowMsg==null))
{
if ((checkedValue!=0) && (checkedValue=="" || checkedValue==" " || checkedValue==null)) checkedValue="blank";
if (fldHeader)
errMsg=checkedValue+" is out of range. The "+minMaxStr+" value for "+fldHeader+" is "+minMaxlimit+".\n";
else errMsg=checkedValue+" is out of range. The "+minMaxStr+" value is "+minMaxlimit+".\n";
return errMsg;
}
else return false;
}
else return true;
}
else{
return false;
}
}
function returnIntRange(fldName,isDisplayForm)
{
var minVal=null;
var maxVal=null;
var formObj=document.forms[0].elements;
var rangeStr="";
var rangeNum=0;
var isConCheck=true;
var vtFldArr=sliceString(fldName,"$");
if (vtFldArr)
{
if (formObj[vtFldArr[0]+"$VT"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$VT"].value;
}
else if (formObj[vtFldArr[0]+"$bnd"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$bnd"].value;
}
}
else isConCheck=false;
if (isConCheck)
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (var i=0; i<vtFldValArr.length; i++)
{
if (vtFldValArr[i].indexOf("Range")!=-1)
{
var tmpValArr=sliceString(vtFldValArr[i],"[");
if (tmpValArr && tmpValArr[1])
{
var tmp=tmpValArr[1];
tmpValArr=sliceString(tmp,"]");
if (tmpValArr)
{
tmp=tmpValArr[0];
tmpValArr=sliceString(tmp,",");
if (tmpValArr && 2==tmpValArr.length)
{
minVal=parseInt(tmpValArr[0]);
maxVal=parseInt(tmpValArr[1]);
if ( minVal !=null || maxVal !=null)
{
rangeNum++;
if ( (minVal !=null ) )
{
if (false==isDisplayForm && isDisplayForm!="" && isDisplayForm!=null)
rangeStr+=minVal+"-";
else rangeStr+="("+minVal+"-";
}
if ( ( maxVal !=null) )
{
if (false==isDisplayForm && isDisplayForm!="" && isDisplayForm!=null)
rangeStr+=maxVal+",";
else rangeStr+=maxVal+") ";
}
}
}
}
}
}
}
}
}
return rangeStr;
}
function displayIntRange(fldName)
{
var rangeStr="";
var formele=document.forms[0].elements;
var typeIndex=null;
var type=null;
var isConCheck=true;
var minVal;
var maxVal;
rangeStr = returnIntRange(fldName,false);
rangeArr=sliceString(rangeStr,",");
if (rangeArr && rangeArr[0])
{
rangeArr=sliceString(rangeArr[0],"-");
if (rangeArr && rangeArr.length==2)
{
minVal=parseInt(rangeArr[0]);
maxVal=parseInt(rangeArr[1]);
if (minVal==-2147483647 && maxVal==2147483647)
rangeStr="";
}
else rangeStr="";
}
else rangeStr="";
if (rangeStr!="") document.write(rangeStr);
}
function displayStringRange(fldName)
{
var minVal=null;
var maxVal=null;
var formObj=document.forms[0].elements;
var rangeStr="";
var rangeNum=0;
var isConCheck=true;
var vtFldArr=sliceString(fldName,"$");
if (vtFldArr)
{
if (formObj[vtFldArr[0]+"$VT"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$VT"].value;
}
else if (formObj[vtFldArr[0]+"$bnd"]!=null)
{
vtFldVal=formObj[vtFldArr[0]+"$bnd"].value;
}
}
else isConCheck=false;
if (isConCheck)
{
vtFldValArr=sliceString(vtFldVal,";");
if (vtFldValArr)
{
for (var i=0; i<vtFldValArr.length; i++)
{
if (vtFldValArr[i].indexOf("Range")!=-1)
{
var tmpValArr=sliceString(vtFldValArr[i],"[");
if (tmpValArr && tmpValArr[1])
{
var tmp=tmpValArr[1];
tmpValArr=sliceString(tmp,"]");
if (tmpValArr)
{
tmp=tmpValArr[0];
tmpValArr=sliceString(tmp,",");
if (tmpValArr && 2==tmpValArr.length)
{
minVal=parseInt(tmpValArr[0]);
maxVal=parseInt(tmpValArr[1]);
if ( minVal !=null || maxVal !=null)
{
rangeNum++;
if ( (minVal !=null ) )
{
rangeStr+="("+minVal+"-";
}
if ( ( maxVal !=null) )
{
rangeStr+=maxVal+" characters) ";
}
}
}
}
}
break;
}
}
}
}
if (rangeStr!="") document.write(rangeStr);
}
function turnBitOn(theOctet,bitNumber)
{
var bitValue;
var upperOctet=theOctet.toUpperCase();
if ((bitNumber*1)<4)
{
bitValue=Math.pow(2,3-(bitNumber*1));
bitValue+="0";
bitValue=parseInt(Hex2Ascii(bitValue))
}
else
{
bitValue=Math.pow(2,7-(bitNumber*1));
}
var myResult=parseInt(Hex2Ascii(upperOctet))+parseInt(bitValue);
return Str2Hex(myResult);
}
function turnBitOff(theOctet,bitNumber)
{
var bitValue;
var upperOctet=theOctet.toUpperCase();
if ((bitNumber*1)<4)
{
bitValue=Math.pow(2,3-(bitNumber*1));
bitValue+="0";
bitValue=parseInt(Hex2Ascii(bitValue))
}
else
{
bitValue=Math.pow(2,7-(bitNumber*1));
}
var myResult=parseInt(Hex2Ascii(upperOctet))-parseInt(bitValue);
return Str2Hex(length2(myResult));
}
function length4(theString)
{
while (theString.length<4)
theString="0"+theString;
return theString;
}
function length3(theString)
{
while (theString.length<3)
theString="0"+theString;
return theString;
}
function length2(theString)
{
while (theString.length<2)
theString="0"+theString;
return theString;
}
function addSelectionList(formObj,selectName,optionField,whatToAdd,selectedVal)
{
var optionNo=1;
formObj=document.forms[0];
formObj.elements[selectName].remove(0);
formObj.elements[selectName][0]=null;
while (formObj.elements[optionField+"?"+optionNo]!=null)
{
if ((formObj.elements[optionField+"?"+optionNo].value!="")&&
(formObj.elements[optionField+"?"+optionNo].value!=top.queryNA)){
text=formObj.elements[optionField+"?"+optionNo].value;
newOption = new Option(text);
formObj.elements[selectName].options[optionNo-1]=newOption;
if (selectedVal != "")
{
if ( parseInt(newOption.text) == selectedVal )
{
newOption.selected = true ;
}
}
optionNo++;
}
}
if (whatToAdd!="")
{
newOption = new Option("Add a new "+whatToAdd);
formObj.elements[selectName].options[optionNo-1]=newOption;
}
}
function addRangeSelectionList(formObj,selectName,BeginOption,EndOption,whatToAdd,selectedVal)
{
formObj=document.forms[0];
var optionNo=0;
formObj.elements[selectName].remove(0);
formObj.elements[selectName][0]=null;
while ((BeginOption+optionNo)<(EndOption+1))
{
text=BeginOption+optionNo;
newOption = new Option(text);
formObj.elements[selectName].options[optionNo]=newOption;
if(opener){
firstIndex = parseInt(opener.top.trunkFirstIndex);
}
else{
firstIndex = parseInt(top.trunkFirstIndex);
}
if(selectName=="trunk"){
formObj.elements[selectName].options[optionNo].value=firstIndex+parseInt(text)-1;
}
else
formObj.elements[selectName].options[optionNo].value=(optionNo+1);
if (selectedVal != "")
{
if ( newOption.text == selectedVal )
{
newOption.selected = true ;
}
}
optionNo++;
}
if (whatToAdd!="")
{
newOption = new Option("Add a new "+whatToAdd);
formObj.elements[selectName].options[optionNo-1]=newOption;
}
}
function addSelectionListFromArray(formObj,selectName,optionsArr,whatToAdd,selectedValFld)
{
var selectedVal="";
formObj=document.forms[0];
if (selectedValFld!="")
selectedVal=formObj.elements[selectedValFld].value;
formObj.elements[selectName].remove(0);
formObj.elements[selectName][0]=null;
for (var i=0; i<optionsArr.length; i++)
{
newOption = new Option(optionsArr[i]);
formObj.elements[selectName].options[formObj.elements[selectName].options.length]=newOption;
if (selectedVal != "")
{
if ( newOption.text == selectedVal )
{
newOption.selected = true ;
}
}
}
if (whatToAdd!="")
{
newOption = new Option("Add a new "+whatToAdd);
formObj.elements[selectName].options[(formObj.elements[selectName].options.length)]=newOption;
}
if (selectedVal == "")
{
formObj.elements[selectName].selectedIndex=-1;
}
}
function filterSelectObject(fieldName)
{
selObject=(document.forms.length>0)?document.forms[0].elements[fieldName]:document.getElementById(fieldName);
for (i=selObject.options.length-1;i>=0;i--)
{
exist=false;
for (j=i-1;j>=0;j--)
if (selObject.options[i].text==selObject.options[j].text)
{
exist=true;
break;
}
if (exist)
selObject.options[i]=null;
}
}
function selectOptionByText(selectObj,selectedText)
{
for (var i=0; i<selectObj.options.length; i++)
if (selectObj.options[i].text==selectedText)
{
selectObj.options[i].selected=true;
break;
}
}
function changeTrunkListText(fieldName){
var trunkSelObject=document.forms[0].elements[fieldName];
var realIndex, text;
var firstTrunkVal = parseInt(trunkSelObject.options[0].text);
for(i=0;trunkSelObject.options[i]!=null;i++){
realIndex = trunkSelObject.options[i].text;
text = parseInt(trunkSelObject.options[i].text)-firstTrunkVal+1
var newOption = new Option(text,realIndex);
trunkSelObject.options[i]=newOption;
}
trunkSelObject.selectedIndex=0;
}
function changeVlanListValue(fieldName){
var vlanSelObject=document.forms[0].elements[fieldName];
var value, text;
for(i=0;vlanSelObject.options[i]!=null;i++){
text = vlanSelObject.options[i].text;
value = parseInt(vlanSelObject.options[i].text)+100000-1;
vlanSelObject.options[i].value=value;
}
vlanSelObject.selectedIndex=0;
}
function selectQuery1Index(queryVTTbl)
{
if (window.event && window.event.srcElement && window.event.srcElement.name)
{
callingEvent=window.event;
fieldName=callingEvent.srcElement.name;
}
else if (!window.event)
{
callingEvent=arguments.callee.caller.arguments[0];
fieldName=callingEvent.target.name ;
}
var formObj=document.forms[0].elements;
var objSelect=null;
var queryString="";
var queryTblStr="";
var i=22;
var j=0;
objSelect=formObj[fieldName];
while ((j<fieldName.length)&&(fieldName.charAt(j)!="$"))
j++;
if (queryVTTbl)
queryTblStr="["+queryVTTbl+"]";
queryString="?"+queryTblStr+"Query:"+fieldName.substr(0,j)+'='+objSelect.options[objSelect.selectedIndex].text;
indexOfEndPageName=((document.location.href).indexOf(".htm"))+3;
queryString=(document.location.href).slice(0,(indexOfEndPageName+1))+queryString;
document.location.href=queryString;
}
function indexSign(selectObject){
var i=0;
formele=document.forms[0].elements;
selectName=formele[selectObject];
queryObject=getBaseName(selectObject)+"$query"
while (selectName.options[i]!=null)
{
if ((selectName.options[i].text == formele[queryObject].value)||
(notIE && selectName.options[i].text=="\n" && formele[queryObject].value==""))
{
selectName.selectedIndex=i;
break;
}
i++;
}
if(formele[queryObject].value==docObj.queryNA)
selectName.selectedIndex=-1;
}
function selectPort1Index(queryVTTbl)
{
if (window.event && window.event.srcElement && window.event.srcElement.name)
{
callingEvent=window.event;
fieldName=callingEvent.srcElement.name;
}
else if (!window.event)
{
callingEvent=arguments.callee.caller.arguments[0];
fieldName=callingEvent.target.name ;
}
var formObj=document.forms[0].elements;
var objSelect=null;
var queryString="";
var queryTblStr="";
var i=28;
var j=0;
objSelect=formObj[fieldName];
while ((j<fieldName.length)&&(fieldName.charAt(j)!="$"))
j++;
if (queryVTTbl)
queryTblStr="["+queryVTTbl+"]";
queryString="?"+queryTblStr+"Query:"+fieldName.substr(0,j)+'='+objSelect.options[objSelect.selectedIndex].value;
indexOfEndPageName=((document.location.href).indexOf(".htm"))+3;
queryString=(document.location.href).slice(0,(indexOfEndPageName+1))+queryString;
document.location.href=queryString;
}
function portSign(selectObject){
var i=0;
formele=document.forms[0].elements;
selectName=formele[selectObject];
queryObject=getBaseName(selectObject)+"$query"
while (selectName.options[i]!=null)
{
if (selectName.options[i].value == parseInt(formele[queryObject].value))
{
selectName.selectedIndex=i;
break;
}
i++;
}
if(formele[queryObject].value==docObj.queryNA)
selectName.selectedIndex=-1;
}
function clickRadio()
{
var fieldName=null;
var formObj=document.forms[0].elements;
var objRadio;
var i=0;
var callingEvent;
var fieldName;
var callingEventElement;
if (window.event)
{
callingEvent=window.event;
fieldName=callingEvent.srcElement.name;
callingEventElement=callingEvent.srcElement;
}
else if (!window.event)
{
callingEvent=arguments.callee.caller.arguments[0];
fieldName=callingEvent.target.name ;
callingEventElement=callingEvent.target;
}
if (callingEventElement && callingEventElement.name)
{
objRadio=formObj[fieldName];
if(callingEventElement.value==1)
{
formObj["port"].disabled=false
}
else
{
formObj["port"].disabled=true;
formObj["port"].selectedIndex=0;
}
if(callingEventElement.value==2)
{
formObj["trunk"].disabled=false;
}
else
{
formObj["trunk"].disabled=true;
formObj["trunk"].selectedIndex=0;
}
if (objRadio.length==3)
{
if(callingEventElement.value==3)
{
formObj["dot1qVlanIndex$select"].disabled=false;
}
else
{
formObj["dot1qVlanIndex$select"].disabled=true;
formObj["dot1qVlanIndex$select"].selectedIndex=0;
}
}
}
}
function enableAllFields()
{
formIdx=0;
while (document.forms[formIdx])
{
fldIdx=0;
while (document.forms[formIdx].elements[fldIdx])
{
document.forms[formIdx].elements[fldIdx].disabled=false;
fldIdx++;
}
formIdx++;
}
}
function DisableUnchanged(formObj,entryStartStr,FieldsToCheck)
{
var i = 1;
formObj=document.forms[0];
var wasChangedCounter=0;
fieldsEntrySize=0;
rawValue=2500;
while (formObj.elements[entryStartStr+"?"+i]!=null)
{
if (EntryDidnotChanged(i,formObj,FieldsToCheck))
{
DisableEntry(i,formObj,FieldsToCheck);
}
else
{
countEntrySize(i,formObj,FieldsToCheck)
wasChangedCounter++;
}
i++;
}
rawValue+=(calculateRawValue(FieldsToCheck)*wasChangedCounter)+fieldsEntrySize;
if ((rawValue)>BufferSize)
{
msg="You have changed too many objects. The browser cannot send all data\n";
msg+="simultaneously. Please send your request at "+(Math.round((rawValue)/BufferSize)+1);
msg+=" different requests.";
alert (msg);
return 0;
}
return 1;
}
function calculateRawValue(FieldsToCheck)
{
var fieldsNameSize=0;
for (i=0;i<FieldsToCheck.length;i++)
fieldsNameSize+=FieldsToCheck[i].length+18;
return (fieldsNameSize);
}
function EntryDidnotChanged(index,formObj,FieldsToCheck)
{
var i;
var changed=true;
var result=true;
formObj=document.forms[0];
for (i=0;i<FieldsToCheck.length;i++)
{
changed=isChanged(formObj.elements[FieldsToCheck[i]+"?"+index]);
if (changed)
result=false;
}
return result;
}
function DisableEntry(index,formObj,FieldsToCheck)
{
var i;
for (i=0;i<FieldsToCheck.length;i++)
{
formObj.elements[FieldsToCheck[i]+"?"+index].disabled=true;
}
}
function countEntrySize(index,formObj,FieldsToCheck)
{
var i;
for (i=0;i<FieldsToCheck.length;i++)
{
fieldsEntrySize+=formObj.elements[FieldsToCheck[i]+"?"+index].value.length;
}
}
function isChanged(obj) {
if ((typeof obj.type != "string") && (obj.length > 0) && (obj[0] != null) && (obj[0].type=="radio")) {
for (var i=0; i<obj.length; i++) {
if (obj[i].checked != obj[i].defaultChecked) { return true; }
}
return false;
}
if ((obj.type=="text") || (obj.type=="textarea"))
{ return (obj.value != obj.defaultValue); }
if (obj.type=="hidden")
{
var isIE = (navigator.appName.indexOf("Microsoft") != -1);
if (isIE)
{
if (document.forms[0].elements[getBaseName(obj.name)+"$default"+getSuffix(obj.name)])
document.forms[0].elements[getBaseName(obj.name)+"$default"+getSuffix(obj.name)].disabled=true;
return (obj.value != obj.defaultValue);
}
else
if (document.forms[0].elements[getBaseName(obj.name)+"$default"+getSuffix(obj.name)])
{
document.forms[0].elements[getBaseName(obj.name)+"$default"+getSuffix(obj.name)].disabled=true;
return (obj.value != document.forms[0].elements[getBaseName(obj.name)+"$default"+getSuffix(obj.name)].value);
}
else
return true;
}
if (obj.type=="checkbox") {
return (obj.checked != obj.defaultChecked);
}
if (obj.type=="select-one") {
if (obj.options.length > 0) {
var x=0;
for (var i=0; i<obj.options.length; i++) {
if (obj.options[i].defaultSelected) { x++; }
}
if (x==0 && obj.selectedIndex==0) { return false; }
for (var i=0; i<obj.options.length; i++) {
if (obj.options[i].selected != obj.options[i].defaultSelected) {
return true;
}
}
}
return false;
}
if (obj.type=="select-multiple") {
if (obj.options.length > 0) {
for (var i=0; i<obj.options.length; i++) {
if (obj.options[i].selected != obj.options[i].defaultSelected) {
return true;
}
}
}
return false;
}
return false;
}
function DisableTrunkIncludingThePort(formObj,fieldsToDisable,portsArray,numberOfPortsInDevice)
{
var port = 1;
for (port=1;port<=numberOfPortsInDevice;port++)
{
var TrunkIndex= portsArray[port-1];
if(TrunkIndex>0)
{
DisableEntry(port,formObj,fieldsToDisable);
}
}
}
function disableUnchangeFields(formele,FieldsToCheck,suffix)
{
formele=document.forms[0].elements;
formObj=document.forms[0];
var wasChangedCounter=0;
fieldsEntrySize=0;
rawValue=2000;
var isChange;
switch (suffix)
{
case "query":
{
isChange=false;
for (i=0; i<FieldsToCheck[0].length; i++)
{
if (!isChanged(formele[FieldsToCheck[0][i]]))
{
formele[FieldsToCheck[0][i]].disabled=true;
}
else isChange=true;
}
if (!isChange)
{
for (var j=0; j<FieldsToCheck[1].length; j++)
formele[FieldsToCheck[1][j]].disabled=true;
}
break;
}
case "repeat":
{
var i = 1;
while (formele[FieldsToCheck[0][0]+"?"+i]!=null)
{
isChange=false;
for (j=0; j<FieldsToCheck[0].length; j++)
{
if (!isChanged(formele[FieldsToCheck[0][j]+"?"+i]))
{
formele[FieldsToCheck[0][j]+"?"+i].disabled=true;
}
else
{
fieldsEntrySize+=formele[FieldsToCheck[0][j]+"?"+i].value.length;
isChange=true;
}
}
if (!isChange)
{
for (var j=0; j<FieldsToCheck[1].length; j++)
formele[FieldsToCheck[1][j]+"?"+i].disabled=true;
}
else
{
countEntrySize(i,formObj,FieldsToCheck[1])
wasChangedCounter++;
}
i++;
}
rawValue+=((calculateRawValue(FieldsToCheck[1])+calculateRawValue(FieldsToCheck[0]))*wasChangedCounter)+fieldsEntrySize;
if ((rawValue)>BufferSize)
{
msg="You have changed too many objects. The browser cannot send all data\n";
msg+="simultaneously. Please send your request at "+(Math.round((rawValue)/BufferSize)+1);
msg+=" different requests.";
alert (msg);
return 0;
}
return 1;
break;
}
default: break;
}
}
function keyPressHandler(e)
{
var isNav = (navigator.appName.indexOf("Netscape") != -1);
var isIE = (navigator.appName.indexOf("Microsoft") != -1);
if (isIE)
{
e=window.event;
if (e && e.keyCode==13)
{
e.returnValue=false;
e.cancelBubble=true;
}
}
if (e.stopPropagation) e.stopPropagation();
if (isNav)
{
if (e && e.which == 13)
{
return false;
}
}
return true;
}
function preventSubmitHandler(e)
{
if (keyPressed==13)
{
keyPressed="";
return false;
}
}
function getKeyPressed(e)
{
var isNav = (navigator.appName.indexOf("Netscape") != -1);
var isIE = (navigator.appName.indexOf("Microsoft") != -1);
if (isIE)
{
var e=window.event;
if (e && e.keyCode==13)
{
keyPressed=13;
}
}
else if (isNav)
{
if (e && e.which == 13)
{
keyPressed=13;
}
}
if (keyPressed==13)
{
if (document.addEventListener)
{
document.addEventListener("submit",preventSubmitHandler,false);
}
else window.document.forms[0].onsubmit=preventSubmitHandler;
}
}
function colorClass()
{
if (docObj.FirstTd==0)
{
return "'data-area-canvas-odd borderright'";
}
else
{
return "'data-area-canvas borderright'";
}
}
function lastTdColorClass()
{
if (docObj.FirstTd==0)
{
return "'data-area-canvas-odd '";
}
else
{
return "'data-area-canvas '";
}
}
function ChangeRowColor()
{
if (docObj.FirstTd==0)
docObj.FirstTd=1;
else docObj.FirstTd=0;
}
function showtip(current,e,text){
if (document.all||document.getElementById){
thetitle=text.split('<br>')
if (thetitle.length>1){
thetitles=''
for (i=0;i<thetitle.length;i++)
thetitles+=thetitle[i]
current.title=thetitles
}
else
current.title=text
}
else if (document.layers){
document.tooltip.document.write('<layer bgColor="white" style="border:1px solid black;font-size:12px;">'+text+'</layer>')
document.tooltip.document.close()
document.tooltip.left=e.pageX+5
document.tooltip.top=e.pageY+5
document.tooltip.visibility="show"
}
}
function hidetip(){
if (document.layers)
document.tooltip.visibility="hidden"
}
function displaySeparator(colSpanNum,needReturn)
{
if(needReturn)
{
var str="";
str+="<tr>";
str+="<td style='height: 1px; width: 10px'></td>";
str+="<td colspan='"+colSpanNum+"' style='height: 1px' class='data-area-separator'><img style='width: 1px; height: 1px' src='../Images/EMPTY.GIF'></td>";
str+="<td style='height: 1px' ></td>";
str+="<td style='height: 1px; width: 15px'></td>";
str+="</tr>";
str+='<tr><td colspan="'+colSpanNum+'">&nbsp;</td></tr>'
return str;
}
document.write("<tr>");
document.write("<td style='height: 1px; width: 10px'></td>");
document.write("<td colspan='"+colSpanNum+"' style='height: 1px' class='data-area-separator'><img style='width: 1px; height: 1px' src='../Images/EMPTY.GIF'></td>");
document.write("<td style='height: 1px' ></td>");
document.write("<td style='height: 1px; width: 15px'></td>");
document.write("</tr>");
document.writeln('<tr><td colspan="', colSpanNum, '">&nbsp;</td></tr>')
}
function computeBase10Log(x)
{
return (Math.LOG10E*Math.log(x));
}
function sliceString(stringValue,token){
var arr=new Array();
arr=stringValue.split(token);
return arr;
}
function findIndex(selectFieldName){
var formObj=document.forms[0];
var i=0;
var IndexNotFound=true;
selectName=formObj.elements[selectFieldName];
while ((selectName.options[i]!=null) && (IndexNotFound)){
if (newIndex==(selectName.options[i].text))
{
newIndex++;
i++
}
else
IndexNotFound=false;
}
return newIndex;
}
function getBaseName(selectObject)
{
j=0;
var queryObject;
while ((j<selectObject.length)&&(selectObject.charAt(j)!="$"))
j++;
queryObject=selectObject.substr(0,j);
return queryObject;
}
function getSuffix(objectName)
{
j=0;
while ((j<objectName.length)&&(objectName.charAt(j)!="?"))
j++;
if (j==objectName.length)
return "";
else
return objectName.substr(j);
}
function removeSpacesFromHeadAndTail(val)
{
val = val + "";
while (val.length > 0)
{
if (val.charAt(0) == ' ' || val.charAt(0) == '\t')
val = val.substr(1);
else
break;
}
while (val.length > 0)
{
if (val.charAt(val.length - 1) == ' ' || val.charAt(val.length - 1) == '\t')
val = val.substr(0, val.length - 1);
else
break;
}
return val;
}
function pad(s,str, len, pad_right)
{
while (s.length < len)
{
if (pad_right)
s += str;
else
s = str + s;
}
return s;
}
function isSpace(str)
{
for (var i=0; i<str.length; i++)
{
if (str.charAt(i)!=' ' && str.charAt(i)!='' && str.charAt(i)!='\t' && str.charAt(i)!='\n')
return false;
}
return true;
}
function editCoockie()
{
var coockieString=document.cookie;
URLtoDelete=document.location.pathname;
var newCoockie="C0=";
var coockieArray=new Array;
coockieArray=sliceString(coockieString,PgToken);
for (i=1;(i<coockieArray.length);i++)
if ((coockieArray[i]).indexOf(URLtoDelete)==-1)
newCoockie+=PgToken+coockieArray[i];
document.coockie=newCoockie;
}
function refresh()
{
var filter="";
if (document.forms[0].restoreUrl)
filter+=adjustStringToRefresh(document.forms[0].restoreUrl.value);
document.location.href=(document.location.pathname+"?"+filter);
}
function adjustStringToFilter(theString)
{
var result="";
for (i=0;(i<theString.length);i++)
{
if ((theString.charAt(i)!='^')&&(theString.charAt(i)!='[')&&(theString.charAt(i)!='"')&&(theString.charAt(i)!='\'')&&(theString.charAt(i)!='\\'))
{
if (theString.charAt(i)=='#')
result+="%23";
else
if (theString.charAt(i)=='%')
result+="%25";
else
if (theString.charAt(i)=='?')
result+="%3F";
else
if (theString.charAt(i)==';')
result+="%3B";
else
if (theString.charAt(i)=='&')
result+="%26";
else
if (theString.charAt(i)=='+')
result+="%2B";
else
result+=theString.charAt(i);
}
else
result+='\\'+theString.charAt(i);
}
return result;
}
function adjustStringToQuery(theString)
{
var result="";
for (i=0;(i<theString.length);i++)
{
if ((theString.charAt(i)!='^')&&(theString.charAt(i)!='[')&&(theString.charAt(i)!='"')&&(theString.charAt(i)!='\'')&&(theString.charAt(i)!='\\')&&(theString.charAt(i)!='@'))
{
if (theString.charAt(i)=='#')
result+="%23";
else
if (theString.charAt(i)=='%')
result+="%25";
else
if (theString.charAt(i)=='?')
result+="%3F";
else
if (theString.charAt(i)==';')
result+="%3B";
else
if (theString.charAt(i)=='&')
result+="%26";
else
if (theString.charAt(i)=='+')
result+="%2B";
else
result+=theString.charAt(i);
}
else
result+='\\'+theString.charAt(i);
}
return result;
}
function adjustStringToRefresh(theString)
{
var result="";
for (i=0;(i<theString.length);i++)
{
if (theString.charAt(i)=='#')
result+="%23";
else
if (theString.charAt(i)=='%')
result+="%25";
else
if (theString.charAt(i)=='?')
result+="%3F";
else
if (theString.charAt(i)==';')
result+="%3B";
else
if (theString.charAt(i)=='&')
result+="%26";
else
if (theString.charAt(i)=='+')
result+="%2B";
else
result+=theString.charAt(i);
}
return result;
}
function adjustStringToUTF8(theString)
{
var result="";
for (i=0;(i<theString.length);i++)
{
if ((theString.charAt(i)!='^')&&(theString.charAt(i)!='[')&&(theString.charAt(i)!='"')&&(theString.charAt(i)!='\'')&&(theString.charAt(i)!='\\')&&(theString.charAt(i)!='@'))
{
result+=encodeURIComponent(theString.charAt(i));
}
else
{
result+='\\'+theString.charAt(i);
}
}
return result;
}
function isHexaSigned(pHexaNumber)
{
var msd = pHexaNumber.substr(0, 1);
var num_dec = parseInt(msd, 16);
var num_bin = num_dec.toString(2);
if (num_bin.length != 4)
return false;
else
return true;
}
function selectAllInterfaces()
{
var formele = document.forms[0].elements;
var checkAllPressed = true;
for(i = 1; formele["CopyToCbox_" + i];i++)
{
if(formele["CopyToCbox_"+i].disabled == false && formele["CopyToCbox_"+i].checked==false)
{
checkAllPressed = false;
break;
}
}
for(i = 1; formele["CopyToCbox_" + i];i++)
{
formele["CopyToCbox_"+i].checked=!checkAllPressed;
if (formele["CopyToCbox_"+i].disabled == true)
formele["CopyToCbox_"+i].checked = false;
}
}
function extract_left(total_chars) {return this.substring(0, total_chars);}
function extract_right(total_chars) {return this.substring(this.length - total_chars);}
String.prototype.right = extract_right
String.prototype.left = extract_left
String.prototype.trim = function trim_spaces(from_where)
{
var temp_string = this;
if (arguments.length == 0)from_where = "BOTH";
if (from_where.toUpperCase() == "LEFT" || from_where == "BOTH")while (temp_string.left(1) == " ") temp_string = temp_string.substring(1);
if (from_where.toUpperCase() == "RIGHT" || from_where == "BOTH")while (temp_string.right(1) == " ")temp_string = temp_string.substring(0, temp_string.length - 1);
return temp_string;
}
function getPortNumberFromName(portName)
{
var portNumber=0;
var nameFound=false;
for (var i=1; i<=docObj.NumberOfPorts; i++)
{
if (portName==docObj.portsNamesArr[i])
{
portNumber=i;
nameFound=true;
break;
}
}
if (!nameFound)
{
for (var j=0; (!nameFound)&&(j<docObj.oobPortsNamesArr.length || j<docObj.lbpPortsNamesArr.length); j++)
{
if (portName==docObj.oobPortsNamesArr[j])
{
portNumber=docObj.oobPortsIndexArray[j];
nameFound=true;
break;
}
else if (portName==docObj.lbpPortsNamesArr[j])
{
portNumber=docObj.lbpPortsIndexArray[j];
nameFound=true;
break;
}
}
}
if (portNumber>0)
return portNumber;
else return parseInt(portName);
}
function getPortNameFromNumber(portNumber)
{
var portName=0;
if (docObj && portNumber<=docObj.NumberOfPorts && docObj.portsNamesArr[portNumber])
return docObj.portsNamesArr[portNumber];
else if (docObj && docObj.oobNumOfPorts>0 && portNumber>=docObj.oobFirstIndex && docObj.oobPortsNamesArr[portNumber-docObj.oobFirstIndex])
return docObj.oobPortsNamesArr[portNumber-docObj.oobFirstIndex];
else if (docObj && docObj.lbpNumOfPorts>0 && portNumber>=docObj.lbpFirstIndex && docObj.lbpPortsNamesArr[portNumber-docObj.lbpFirstIndex])
return docObj.lbpPortsNamesArr[portNumber-docObj.lbpFirstIndex];
else return portNumber;
}
function isPresentPort(port)
{
var portNumber=0;
if (checkUInteger32(port+"") && parseInt(port)>0 && parseInt(port)<=docObj.NumberOfPorts)
portNumber=parseInt(port);
else portNumber=getPortNumberFromName(port);
if (portNumber<=docObj.existedPortsArr.length)
return (docObj.existedPortsArr[portNumber]);
else if (docObj.oobNumOfPorts && docObj.oobNumOfPorts>0 && portNumber<(docObj.oobFirstIndex+docObj.oobNumOfPorts))
{
return (docObj.oobExistedPortsArr[portNumber-docObj.oobFirstIndex]);
}
else if (docObj.lbpNumOfPorts && docObj.lbpNumOfPorts>0 && portNumber<(docObj.lbpFirstIndex+docObj.lbpNumOfPorts))
{
return (docObj.lbpExistedPortsArr[portNumber-docObj.lbpFirstIndex]);
}
}
function filterNonPresentEntitiesFromSelectList(selectName,howToFilter,filterByModuleFlag,filterByModuleNum)
{
var selObject=document.forms[0].elements[selectName];
var port;
for (i=selObject.options.length-1;i>=0;i--)
{
if ("v"==howToFilter)
port=selObject.options[i].value;
else port=selObject.options[i].text;
if ((!isPresentPort(port)) || (filterByModuleFlag && (docObj.moduleNumPerPortArr[i]!=filterByModuleNum)))
selObject.options[i]=null;
}
}
function addPresentPortsSelectionList(formObj,selectName,selectedVal,indexesOrNames,filterByModuleFlag, filterByModuleNum, isOOB, isLBP)
{
var formObj=document.forms[0];
var optionNo=1;
var val;
var text="";
formObj.elements[selectName].remove(0);
formObj.elements[selectName][0]=null;
if (indexesOrNames!="i" && indexesOrNames!="n")
indexesOrNames="i" ;
if (!filterByModuleFlag) filterByModuleFlag=false;
for (var i=1; i<=docObj.NumberOfPorts; i++)
{
if ( (docObj.existedPortsArr[i]) && (!(filterByModuleFlag) || (filterByModuleFlag && (docObj.moduleNumPerPortArr[i-1]==filterByModuleNum))) )
{
val=i;
if (indexesOrNames=="n")
text=docObj.portsNamesArr[i];
else text=(i)+"";
newOption = new Option(text,val);
formObj.elements[selectName].options[optionNo-1]=newOption;
if (selectedVal != "")
{
if ( parseInt(newOption.value)==selectedVal || newOption.text==selectedVal)
{
newOption.selected = true ;
}
}
optionNo++;
}
}
if (isOOB!=null && isOOB!="" && isOOB==true && docObj.oobNumOfPorts && docObj.oobNumOfPorts>0)
{
for (var j=0; j<docObj.oobPortsIndexArray.length; j++)
{
if (docObj.oobExistedPortsArr[j]==true)
{
if (indexesOrNames=="n")
text=docObj.oobPortsNamesArr[j];
else text=docObj.oobPortsIndexArray[j];+"";
val=docObj.oobPortsIndexArray[j];
newOption = new Option(text,val);
formObj.elements[selectName].options[optionNo-1]=newOption;
if (selectedVal != "")
{
if ( parseInt(newOption.value)==selectedVal || newOption.text==selectedVal)
{
newOption.selected = true ;
}
}
optionNo++;
}
}
}
if (isLBP!=null && isLBP!="" && isLBP==true && docObj.lbpNumOfPorts && docObj.lbpNumOfPorts>0)
{
for (var j=0; j<docObj.lbpPortsIndexArray.length; j++)
{
if (docObj.lbpExistedPortsArr[j]==true)
{
if (indexesOrNames=="n")
text=docObj.lbpPortsNamesArr[j];
else text=docObj.lbpPortsIndexArray[j];+"";
val=docObj.lbpPortsIndexArray[j];
newOption = new Option(text,val);
formObj.elements[selectName].options[optionNo-1]=newOption;
if (selectedVal != "")
{
if ( parseInt(newOption.value)==selectedVal || newOption.text==selectedVal)
{
newOption.selected = true ;
}
}
optionNo++;
}
}
}
}
function relatedTrunk(port)
{
if (opener)
if (opener.opener)
if (opener.opener.opener)
return opener.opener.opener.top.relatedTrunksArr[port-1];
else
return opener.opener.top.relatedTrunksArr[port-1];
else
return opener.top.relatedTrunksArr[port-1];
else
return top.relatedTrunksArr[port-1];
}
function displayInterface(indexField,portNameField,rowNum){
var formelem = document.forms[0];
var interfaceValue,interfaceText;
interfaceValue = parseInt(formelem[indexField+"?"+rowNum].value);
var numOfTrunks,numOfPorts;
numOfPorts = parseInt(docObj.NumberOfPorts);
numOfTrunks = parseInt(docObj.NumberOfTrunks);
if(interfaceValue>(parseInt(docObj.trunkFirstIndex)+numOfTrunks-1))
{
if(docObj.oobNumOfPorts && docObj.oobNumOfPorts>0 && interfaceValue>=docObj.oobFirstIndex && interfaceValue<(docObj.oobFirstIndex+docObj.oobNumOfPorts))
{
if (docObj.oobNumOfPorts>1)
interfaceText="OOB "+(interfaceValue-docObj.oobFirstIndex+1);
else interfaceText="OOB";
}
else if(docObj.lbpNumOfPorts && docObj.lbpNumOfPorts>0 && interfaceValue>=docObj.lbpFirstIndex && interfaceValue<(docObj.lbpFirstIndex+docObj.lbpNumOfPorts))
{
if (docObj.lbpNumOfPorts>1)
interfaceText="LBP "+(interfaceValue-docObj.lbpFirstIndex+1);
else interfaceText="LBP";
}
else if (interfaceValue>=200000)
{
interfaceText="DVLAN "+(interfaceValue-200000+1);
}
else if (interfaceValue>=100000)
{
interfaceText="VLAN "+(interfaceValue-100000+1);
}
}
else{
if(interfaceValue>numOfPorts){
interfaceText="LAG "+ (interfaceValue-parseInt(docObj.trunkFirstIndex)+1);
}
else{
interfaceText = formelem[portNameField+"?"+rowNum].value;
}
}
document.write(interfaceText);
}
function displayTrunk(indexField, rowNum){
var formelem = document.forms[0];
var trunkVal,trunkText;
var numOfPorts;
trunkVal = formelem[indexField+"?"+rowNum].value;
if(opener){
trunkText = parseInt(trunkVal)-parseInt(opener.top.trunkFirstIndex)+1;
}
else{
trunkText = parseInt(trunkVal)-parseInt(top.trunkFirstIndex)+1;
}
document.write(trunkText);
}
function getInterfaceName(fieldName)
{
var formelem = document.forms[0];
var interfaceValue,interfaceText;
var numOfPorts,numOfTrunks;
if (formelem && formelem.elements[fieldName])
interfaceValue = parseInt(formelem.elements[fieldName].value);
var numOfTrunks,numOfPorts;
if (docObj)
{
numOfPorts = parseInt(docObj.NumberOfPorts);
numOfTrunks = parseInt(docObj.NumberOfTrunks);
}
if(interfaceValue>(parseInt(docObj.trunkFirstIndex)+numOfTrunks-1))
{
if(docObj && docObj.oobNumOfPorts && docObj.oobNumOfPorts>0 && interfaceValue>=docObj.oobFirstIndex && interfaceValue<(docObj.oobFirstIndex+docObj.oobNumOfPorts))
{
if (docObj && docObj.oobNumOfPorts>1)
interfaceText="OOB "+(interfaceValue-docObj.oobFirstIndex+1);
else interfaceText="OOB";
}
else if(docObj && docObj.lbpNumOfPorts && docObj.lbpNumOfPorts>0 && interfaceValue>=docObj.lbpFirstIndex && interfaceValue<(docObj.lbpFirstIndex+docObj.lbpNumOfPorts))
{
if (docObj && docObj.lbpNumOfPorts>1)
interfaceText="LBP "+(interfaceValue-docObj.lbpFirstIndex+1);
else interfaceText="LBP";
}
else if (interfaceValue>=200000)
{
interfaceText="DVLAN "+(interfaceValue-200000+1);
}
else if (interfaceValue>=100000)
{
interfaceText="VLAN "+(interfaceValue-100000+1);
}
}
else{
if(interfaceValue>=docObj.trunkFirstIndex){
interfaceText="LAG "+ (interfaceValue-parseInt(docObj.trunkFirstIndex)+1);
}
else{
interfaceText = getPortNameFromNumber(interfaceValue)
}
}
return (interfaceText);
}
function getInterfaceNameAccordingToValue(fieldValue)
{
var interfaceValue,interfaceText;
interfaceValue = parseInt(fieldValue);
var numOfTrunks,numOfPorts;
numOfPorts = parseInt(docObj.NumberOfPorts);
numOfTrunks = parseInt(docObj.NumberOfTrunks);
if(interfaceValue>(parseInt(docObj.trunkFirstIndex)+numOfTrunks-1))
{
if(docObj.oobNumOfPorts && docObj.oobNumOfPorts>0 && interfaceValue>=docObj.oobFirstIndex && interfaceValue<(docObj.oobFirstIndex+docObj.oobNumOfPorts))
{
if (docObj.oobNumOfPorts>1)
interfaceText="OOB "+(interfaceValue-docObj.oobFirstIndex+1);
else interfaceText="OOB";
}
else if(docObj.lbpNumOfPorts && docObj.lbpNumOfPorts>0 && interfaceValue>=docObj.lbpFirstIndex && interfaceValue<(docObj.lbpFirstIndex+docObj.lbpNumOfPorts))
{
if (docObj.lbpNumOfPorts>1)
interfaceText="LBP "+(interfaceValue-docObj.lbpFirstIndex+1);
else interfaceText="LBP";
}
else if (interfaceValue>=200000)
{
interfaceText="DVLAN "+(interfaceValue-200000+1);
}
else if (interfaceValue>=100000)
{
interfaceText="VLAN "+(interfaceValue-100000+1);
}
}
else{
if(interfaceValue>=docObj.trunkFirstIndex){
interfaceText="LAG "+ (interfaceValue-parseInt(docObj.trunkFirstIndex)+1);
}
else{
interfaceText = getPortNameFromNumber(interfaceValue)
}
}
return (interfaceText);
}
function preSubmit()
{
setTimeout('callSubmit()',30);
}
function callSubmit()
{
docObj.fldToCheck="";
if (docObj.fldToCheck=="")
{
if (opener)
{
docObj.popHndl=window.self;
}
else
{
docObj.popHndl=top.main;
}
docObj.locationHndl=(document.location.pathname+"?")
if (document.forms[0].restoreUrl)
docObj.locationHndl+=(document.forms[0].restoreUrl.value);
formSubmit();
}
}
function disableHtml(value) {}
function serviceFunction() {}
function checkFocus()
{
if (docObj.fldToCheck!="")
{
if (document.forms[0].elements[docObj.fldToCheck])
if (!document.forms[0].elements[docObj.fldToCheck].disabled)
document.forms[0].elements[docObj.fldToCheck].focus();
}
}
function checkForErrors()
{
if (docObj.fldToCheck!="")
{
if (!(document.forms[0].elements[docObj.fldToCheck]))
{
docObj.fldToCheck="";
}
}
}
function storeData()
{
ArrIdx=1;
elementsCounter=0;
formIdx=0;
docObj.dataArr[0]=document.title;
docObj.dataArr[1]="END";
while (document.forms[formIdx])
{
elementsCounter+=document.forms[formIdx].length;
formIdx++;
}
formIdx=0;
if (elementsCounter<maxNumOfFieldsToStore)
{
while (document.forms[formIdx])
{
fldIdx=0;
while (document.forms[formIdx].elements[fldIdx])
{
if ((document.forms[formIdx][fldIdx].type=="text")||(document.forms[formIdx][fldIdx].type=="textarea")||(document.forms[formIdx][fldIdx].type=="hidden"))
docObj.dataArr[ArrIdx]=document.forms[formIdx][fldIdx].value;
else if ((document.forms[formIdx][fldIdx].type=="radio")||(document.forms[formIdx][fldIdx].type=="checkbox"))
docObj.dataArr[ArrIdx]=document.forms[formIdx][fldIdx].checked;
else if ((document.forms[formIdx][fldIdx].type=="select-one")||(document.forms[formIdx][fldIdx].type=="select-multiple"))
if (document.forms[formIdx][fldIdx].options.length > 0)
docObj.dataArr[ArrIdx]=document.forms[formIdx][fldIdx].selectedIndex;
fldIdx++;
ArrIdx++;
}
formIdx++;
}
docObj.dataArr[ArrIdx]="END";
}
}
function showData()
{
ArrIdx=1;
formIdx=0;
flag=0;
if (docObj.dataArr[0]==document.title)
{
while ((document.forms[formIdx])&&(docObj.dataArr[ArrIdx]!="END"))
{
fldIdx=0;
while ((document.forms[formIdx].elements[fldIdx])&&(docObj.dataArr[ArrIdx]!="END"))
{
if ((document.forms[formIdx][fldIdx].type=="text")||(document.forms[formIdx][fldIdx].type=="textarea")||(document.forms[formIdx][fldIdx].type=="hidden"))
{
document.forms[formIdx][fldIdx].value=docObj.dataArr[ArrIdx];
flag=0;
}
else if ((document.forms[formIdx][fldIdx].type=="radio")||(document.forms[formIdx][fldIdx].type=="checkbox"))
{
document.forms[formIdx][fldIdx].checked=docObj.dataArr[ArrIdx];
if (docObj.dataArr[ArrIdx])
flag=1;
else
flag=2;
}
else if ((document.forms[formIdx][fldIdx].type=="select-one")||(document.forms[formIdx][fldIdx].type=="select-multiple"))
if (document.forms[formIdx][fldIdx].options.length > 0)
{
document.forms[formIdx][fldIdx].selectedIndex=docObj.dataArr[ArrIdx];
if (flag==1) document.forms[formIdx][fldIdx].disabled=false;
if (flag==2) document.forms[formIdx][fldIdx].disabled=true;
flag=0;
}
fldIdx++;
ArrIdx++;
}
formIdx++;
}
docObj.dataArr[0]="END";
}
serviceFunction();
}
function drawApplyChanges(){
myTable=document.getElementById("apply_tbl");
htmlStr="<a href='javascript:preSubmit();'>Apply Changes</a>";
myTable.tBodies[0].rows[0].cells[1].innerHTML=htmlStr;
document.body.style.cursor="default";
}
function disableApplyChanges(){
myTable=document.getElementById("apply_tbl");
htmlStr="Apply Changes";
myTable.tBodies[0].rows[0].cells[1].innerHTML=htmlStr;
document.body.style.cursor="wait";
}
var typeString = 100;
var typeInt = 0;
var typeNone = Number.NaN;
function getMIBDescription(ctrlMIB)
{
var fieldDesc = ctrlMIB.value;
var result = new Array();
result.Type = typeNone;
result.minValue = Number.NaN;
result.maxValue = Number.NaN;
result.defaultValue = "";
var arrParams = fieldDesc.split(";");
for (var i = 0; i < arrParams.length; i++)
{
var ind;
if ((ind = arrParams[i].indexOf("Type=")) != -1)
{
result.Type = parseInt(arrParams[i].substr(ind + 5), 10);
continue;
}
if ((ind = arrParams[i].indexOf("Range")) != -1)
{
var rangePattern = "Range\\d{0,1}=\\S(-{0,1}\\d{1,10}),(-{0,1}\\d{1,10})\\S";
var regExp = new RegExp(rangePattern, "i");
var parsedRange = arrParams[i].match(regExp);
if (parsedRange != null)
{
result.minValue = parseInt(parsedRange[1], 10);
result.maxValue = parseInt(parsedRange[2], 10);
continue;
}
}
if ((ind = arrParams[i].indexOf("Default value=")) != -1)
{
result.defaultValue = arrParams[i].substr(ind + 14);
continue;
}
}
return result;
}
function checkMIBValue(ctrlIntf, ctrlMIB, isRequired)
{
if ((ctrlIntf == null) || (ctrlMIB == null))
return false;
var checkedValue = ctrlIntf.value;
if (checkedValue == "")
if (isRequired)
{
alert("You may not enter a blank value into the required field.");
ctrlIntf.focus();
return false;
}
var arrDesc = getMIBDescription(ctrlMIB);
switch (arrDesc.Type)
{
case typeInt:
return checkIntegerValue(ctrlIntf, arrDesc.minValue, maxValue);
case typeString:
return checkStringValue(ctrlIntf, arrDesc.minValue, maxValue);
case typeNone:
return true;
default:
return false;
}
}
function checkIntegerValue(ctrlIntf, minValue, maxValue)
{
var intValue = parseInt(ctrlIntf.value, 10);
if (isNaN(intValue) || (ctrlIntf.value.indexOf("-0") != -1))
{
alert('"' + ctrlIntf.value + '" is not a valid integer value.');
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue) && !isNaN(maxValue))
if ((intValue >= minValue) && (intValue <= maxValue))
return true;
else
{
alert('"' + intValue.toString() + '" is out of range. The valid range is [' + minValue.toString() + ', ' + maxValue.toString() + '].');
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue))
if (intValue >= minValue)
return true;
else
{
alert('"' + intValue.toString() + '" is out of range. The minimum value is ' + minValue.toString() + '.');
ctrlIntf.focus();
return false;
}
if (!isNaN(maxValue))
if (intValue <= maxValue)
return true;
else
{
alert('"' + intValue.toString() + '" is out of range. The maximum value is ' + maxValue.toString() + '.');
ctrlIntf.focus();
return false;
}
return true;
}
function checkStringValue(ctrlIntf, minValue, maxValue)
{
if (!isNaN(minValue) && !isNaN(maxValue))
if ((ctrlIntf.value.length >= minValue) && (ctrlIntf.value.length <= maxValue))
return true;
else
{
alert('"' + ctrlIntf.value + '" is not a valid value. The string length must be at least ' + minValue.toString() + ' characters and at most ' + maxValue.toString() + ' characters.');
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue))
if (ctrlIntf.value.length >= minValue)
return true;
else
{
alert('"' + ctrlIntf.value + '" is not a valid value. The string length must be at least ' + minValue.toString() + ' characters.');
ctrlIntf.focus();
return false;
}
if (!isNaN(maxValue))
if (ctrlIntf.value.length <= maxValue)
return true;
else
{
alert('"' + ctrlIntf.value + '" is not a valid value. The string length must be at most ' + maxValue.toString() + ' characters.');
ctrlIntf.focus();
return false;
}
return true;
}
function getMIBHint(ctrlMIB)
{
var arrDesc = getMIBDescription(ctrlMIB);
if (!isNaN(arrDesc.minValue) && !isNaN(arrDesc.maxValue))
return "Enter value in range [" + arrDesc.minValue.toString() + ", " + arrDesc.maxValue.toString() + "]";
return "";
}
function getMIBDefaultValue(ctrlMIB)
{
var arrDesc = getMIBDescription(ctrlMIB);
return arrDesc.defaultValue;
}
function getBitFromOctet(strOctet, iBitNum)
{
if ((strOctet.length > 512*2) || (iBitNum < 0) || (iBitNum > 4095)) return false;
var nOctet = Math.floor(iBitNum / 8);
var mask = parseInt(strOctet.substr(2*nOctet, 2), 16);
if (isNaN(mask)) return false;
var flag = Math.pow(2, 7 - (iBitNum - nOctet*8));
return ((mask & flag) != 0);
}
function getLldpDeviceCaps(strOctet)
{
var arrResult = new Array();
if (strOctet.charAt(2)==1 )
arrResult.push("Bridge" );
if (strOctet.charAt(4)==1 )
arrResult.push("Router");
if (strOctet.charAt(3)==1 )
arrResult.push("WLAN Access Point");
if (strOctet.charAt(5)==1 )
arrResult.push("Telephone");
if (strOctet.charAt(6)==1 )
arrResult.push("DOCSIS Cable Device");
if (strOctet.charAt(7)==1 )
arrResult.push("Host");
if (strOctet.charAt(1)==1 )
arrResult.push("Repeater");
if (strOctet.charAt(0)==1 )
arrResult.push("Other");
if (arrResult.length == 0)
return "Unknown";
return arrResult.join(", ");
}
function addPortNames(ctrlSelect, selectedVal)
{
var portName = "";
for (var i = 1; i <= docObj.NumberOfPorts; i++)
{
if (!docObj.existedPortsArr[i]) continue;
portName = docObj.portsNamesArr[i];
newOption = new Option(portName, i);
ctrlSelect.options.add(newOption);
if (selectedVal != "")
{
if (newOption.value == selectedVal)
newOption.selected = true ;
}
}
}
function selectValue(ctrlSelect, strValue)
{
for (var i = 0; i < ctrlSelect.length; i++)
{
if (ctrlSelect.options[i].value == strValue)
{
ctrlSelect.selectedIndex = i;
return true;
}
}
return false;
}
var typeString = 100;
var typeInt = 0;
var typeNone = Number.NaN;
function getMIBDescription(ctrlMIB)
{
var fieldDesc = ctrlMIB.value;
var result = new Array();
result.Type = typeNone;
result.minValue = Number.NaN;
result.maxValue = Number.NaN;
result.defaultValue = "";
var arrParams = fieldDesc.split(";");
for (var i = 0; i < arrParams.length; i++)
{
var ind;
if ((ind = arrParams[i].indexOf("Type=")) != -1)
{
result.Type = parseInt(arrParams[i].substr(ind + 5), 10);
continue;
}
if ((ind = arrParams[i].indexOf("Range")) != -1)
{
var rangePattern = "Range\\d{0,1}=\\S(-{0,1}\\d{1,10}),(-{0,1}\\d{1,10})\\S";
var regExp = new RegExp(rangePattern, "i");
var parsedRange = arrParams[i].match(regExp);
if (parsedRange != null)
{
result.minValue = parseInt(parsedRange[1], 10);
result.maxValue = parseInt(parsedRange[2], 10);
continue;
}
}
if ((ind = arrParams[i].indexOf("Default value=")) != -1)
{
result.defaultValue = arrParams[i].substr(ind + 14);
continue;
}
}
return result;
}
function checkMIBValue(ctrlIntf, ctrlMIB, isRequired)
{
if ((ctrlIntf == null) || (ctrlMIB == null))
return false;
var arrDesc = getMIBDescription(ctrlMIB);
switch (arrDesc.Type)
{
case typeInt:
return checkIntegerValue(ctrlIntf, isRequired, arrDesc.minValue, maxValue);
case typeString:
return checkStringValue(ctrlIntf, isRequired, arrDesc.minValue, maxValue);
case typeNone:
return true;
default:
return false;
}
}
function checkIntegerValue(ctrlIntf, isRequired, minValue, maxValue)
{
var checkedValue = ctrlIntf.value;
if (checkedValue == "")
if (isRequired)
{
alert("You may not enter a blank value into the required field.");
ctrlIntf.focus();
return false;
}
var intValue = parseInt(ctrlIntf.value, 10);
if (isNaN(intValue) || (ctrlIntf.value.indexOf("-0") != -1) || (intValue.toString().length != ctrlIntf.value.length))
{
alert('"' + ctrlIntf.value + '" is not a valid integer value.');
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue) && !isNaN(maxValue))
if ((intValue >= minValue) && (intValue <= maxValue))
return true;
else
{
alert('"' + intValue.toString() + '" is out of range. The valid range is [' + minValue.toString() + ', ' + maxValue.toString() + '].');
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue))
if (intValue >= minValue)
return true;
else
{
alert('"' + intValue.toString() + '" is out of range. The minimum value is ' + minValue.toString() + '.');
ctrlIntf.focus();
return false;
}
if (!isNaN(maxValue))
if (intValue <= maxValue)
return true;
else
{
alert('"' + intValue.toString() + '" is out of range. The maximum value is ' + maxValue.toString() + '.');
ctrlIntf.focus();
return false;
}
return true;
}
function checkStringValue(ctrlIntf, isRequired, minValue, maxValue)
{
var checkedValue = ctrlIntf.value;
if (checkedValue == "")
if (isRequired)
{
alert("You may not enter a blank value into the required field.");
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue) && !isNaN(maxValue))
if ((ctrlIntf.value.length >= minValue) && (ctrlIntf.value.length <= maxValue))
return true;
else
{
alert('"' + ctrlIntf.value + '" is not a valid value. The string length must be at least ' + minValue.toString() + ' characters and at most ' + maxValue.toString() + ' characters.');
ctrlIntf.focus();
return false;
}
if (!isNaN(minValue))
if (ctrlIntf.value.length >= minValue)
return true;
else
{
alert('"' + ctrlIntf.value + '" is not a valid value. The string length must be at least ' + minValue.toString() + ' characters.');
ctrlIntf.focus();
return false;
}
if (!isNaN(maxValue))
if (ctrlIntf.value.length <= maxValue)
return true;
else
{
alert('"' + ctrlIntf.value + '" is not a valid value. The string length must be at most ' + maxValue.toString() + ' characters.');
ctrlIntf.focus();
return false;
}
return true;
}
function getMIBHint(ctrlMIB)
{
var arrDesc = getMIBDescription(ctrlMIB);
if (!isNaN(arrDesc.minValue) && !isNaN(arrDesc.maxValue))
return "Enter value in range [" + arrDesc.minValue.toString() + ", " + arrDesc.maxValue.toString() + "]";
return "";
}
function getMIBDefaultValue(ctrlMIB)
{
var arrDesc = getMIBDescription(ctrlMIB);
return arrDesc.defaultValue;
}
function getBitFromOctet(strOctet, iBitNum)
{
if ((strOctet.length > 512*2) || (iBitNum < 0) || (iBitNum > 4095)) return false;
var nOctet = Math.floor(iBitNum / 8);
var mask = parseInt(strOctet.substr(2*nOctet, 2), 16);
if (isNaN(mask)) return false;
var flag = Math.pow(2, 7 - (iBitNum - nOctet*8));
return ((mask & flag) != 0);
}
function checkMask(mask)
{
var arr = mask.split('.');
if (arr.length != 4) return false;
var hexmask = "";
for (var i = 0; i < arr.length; i++)
{
var octet = parseInt(arr[i], 10);
if (isNaN(octet)) return false;
if (octet.toString().length != arr[i].length) return false;
hexmask += octet.toString(16);
}
var masklen = hexmask.length*8;
var hostpart = false;
for (var i = 0; i < masklen; i++)
{
var bit = getBitFromOctet(hexmask, i);
if (hostpart && bit) return false;
if (!bit)
hostpart = true;
}
return true;
}
function setBitInOctet(strOctet, bitIndex, bitValue)
{
if ((Str2Octet.length > 512*2) || (bitIndex < 0) || (bitIndex > 4095))
return strOctet;
var nOctet = Math.floor(bitIndex / 8);
var mask = parseInt(strOctet.substr(2*nOctet, 2), 16);
if (isNaN(mask)) return strOctet;
var flag = Math.pow(2, 7 - (bitIndex - 8*nOctet));
var octetVal;
if (bitValue == true)
octetVal = mask | flag;
else
octetVal = mask & ~flag;
octetVal = octetVal.toString(16);
if (octetVal.length == 1)
octetVal = "0" + octetVal;
return strOctet.substr(0, 2*nOctet) + octetVal + strOctet.substr(2*(nOctet + 1));
}
function listWindow (ot, wc)
{
if (ot) {
if (ot.winlist); else {
ot.winlist = [];
}
if (ot.winlist[wc]); else {
ot.winlist[wc] = [];
}
ot.winlist[wc][ot.winlist[wc].length] = self;
}
}
function onReloadRequest ()
{
self.onDataChange = function () {};
self.location.reload (true);
}
function onDataChange (ot, wc)
{
var i, j = 1
if (ot)
for (i in ot.winlist[wc])
if (ot.winlist[wc][i] != self) {
try {
if (ot.winlist[wc][i].onReloadRequest) {
ot.winlist[wc][i].setTimeout(ot.winlist[wc][i].onReloadRequest, 200 * j);
j++;
}
} catch (err) {}
}
}
function setContainerDisableStatus (name, status) {
var container = document.getElementById(name);
var bgcolor = status ? "#CCC" : "#FFF";
var fieldTypes = ["input", "select", "textarea", "button"];
if (container != null) {
var fields;
var i;
for (var j = 0; j < fieldTypes.length; ++j) {
fields = container.getElementsByTagName(fieldTypes[j]);
i = fields.length;
while (i-- > 0) {
switch (fields[i].type) {
case "text":
case "file":
fields[i].style.backgroundColor = bgcolor;
break;
}
fields[i].disabled = status;
}
}
}
}
function setControlDisableStatus (name, status)
{
var control = document.getElementsByName(name)[0];
if ( control )
{
switch (control.type) {
case "text":
case "file":
control.style.backgroundColor = status ? "#CCC" : "#FFF";
break;
}
control.disabled = status;
}
}
function checkMAC( mac, multy )
{
if (typeof(multy) == "undefined")
multy = false;
var pattern = "^([0-9a-f][0-9a-f])$";
var regExp = new RegExp(pattern, "i");
var mac_arr = mac.value.split( mac.value.split("")[2] );
if ( mac_arr.length == 6 )
{
var isError = false;
for (var i = 0; i < 6; i++)
{
if ( !regExp.test(mac_arr[i]) )
{
isError = true;
break;
}
}
if ( mac_arr.join("") == "000000000000" )
isError = true;
var tmp = hexStr2Bin(mac_arr[0]).split("");
if ( tmp[tmp.length-1] == "1" && !multy)
{
alert("Multicast MAC address is not allowed.");
mac.focus();
return false;
}
else
if ( tmp[tmp.length-1] == "0" && multy )
{
alert("You should enter Multicast MAC address.");
mac.focus();
return false;
}
if ( !isError )
return true;
}
alert("'" + mac.value + "' is not a valid value.");
mac.focus();
return false;
}
function hexStr2Bin( binStr )
{
var str = "";
var len = binStr.length;
var bin = new Array("0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111");
for(var i = 0; i < len; i++)
{
str += bin[parseInt(binStr.slice(i,i+1),16)];
}
return str ;
}
function checkOctetStringValue(ctrl, min, max, isRequired)
{
if ((typeof(ctrl) == "undefined") || (typeof(min) == "undefined") || (typeof(max) == "undefined"))
return false;
if(ctrl.disabled)
return true;
if(ctrl.value == "" && !isRequired)
return true;
var pattern = "^([0-9a-f][0-9a-f]){" + min + "," + max + "}$";
var regExp = new RegExp(pattern, "i");
var result = regExp.test(ctrl.value);
if (result)
return true;
if (min == max)
alert("Please enter a valid octet string consisting of " + min + " octets.");
else
alert("Please enter a valid octet string consisting of at least " + min + " and at most " + max + " octets.");
ctrl.focus();
return false;
}
function NavigateTreeViaPanel(i_PanelItem)
{
var nameOfPageOnPanel
if(typeof(i_PanelItem)=="string")
nameOfPageOnPanel=i_PanelItem;
else
nameOfPageOnPanel = i_PanelItem.innerHTML.toLowerCase();
var currentPanelItemID = -1;
var root = window.tree.trees[0];
if( !root.a_index[lastSelectedTreeItemID].b_opened)
{
root.toggle(lastSelectedTreeItemID);
}
var tree = root.a_index[lastSelectedTreeItemID];
currentPanelItemID=findCurrentPanelItemID(tree,nameOfPageOnPanel);
while(currentPanelItemID == -1 && tree.o_parent)
{
lastSelectedTreeItemID=tree.o_parent.n_id;
tree=root.a_index[lastSelectedTreeItemID];
currentPanelItemID=findCurrentPanelItemID(tree,nameOfPageOnPanel);
}
if(currentPanelItemID != -1)
{
root.select(currentPanelItemID);
if(root.a_index[currentPanelItemID].a_children.length > 0 )
{
lastSelectedTreeItemID = currentPanelItemID;
}
}
}
function findCurrentPanelItemID(tree,nameOfPageOnPanel)
{
for(var i = 0 ; i < tree.a_children.length ; i++)
{
nameOfPageOnTree = tree.a_children[i].a_config[0].toLowerCase() ;
if ( nameOfPageOnTree == nameOfPageOnPanel )
{
return tree.a_children[i].n_id;
}
}
return -1;
}
function AlignTableContent(i_Table,i_Direction)
{
for(var i = 0 ; i_Table.rows[i]; i++)
{
for(var j = 0; i_Table.rows[i].cells[j];j++)
{
i_Table.rows[i].cells[j].style.textAlign = i_Direction;
}
}
}
function selectTextInCmbo(i_Combo, i_Text)
{
for(var i = 0 ; i_Combo.options[i] ; i++)
{
if(i_Combo.options[i].text == i_Text)
{
i_Combo.selectedIndex = i ;
break;
}
}
}
function HideLastTR(i_Table)
{
i = i_Table.rows.length-2;
i_Table.rows[i].style.display= "none";
}
function FillSelectObject(i_SelectName, i_ValueField, i_TextField)
{
var value = null;
var text = null;
var repeat = "repeat";
for(var i = 0 , j = 1; formele[i_ValueField+"$"+repeat+"?"+j] != null ; j++,i++)
{
text = formele[i_TextField+"$"+repeat+"?"+j].value;
value = formele[i_ValueField+"$"+repeat+"?"+j].value;
formele[i_SelectName].options[i] = new Option(text, value);
}
}
function checkIPv6Local(cntrl,withAlert)
{
if(!checkIPv6General(cntrl,withAlert))
return false;
val=getValueFromControl(cntrl);
val=removeInterfaceFromIPAddress(val);
val = changeIPv4ToHex(val);
val = addZeroGroups(val);
var valArr=val.split(":");
if(valArr[0].toLowerCase()!="fe80")
{
if(withAlert) callAlert(cntrl,'Value in Group 1 in highlighted field should be "fe80"');
return false;
}
if(valArr[1]!=0 || valArr[2]!=0 || valArr[3]!=0)
{
if(withAlert) callAlert(cntrl,'Value in Groups 2-4 in highlighted field should be "0"');
return false;
}
return true;
}
function checkIPv6Global(cntrl,withAlert,isAnyDisallowed)
{
var val=getValueFromControl(cntrl);
val=removeInterfaceFromIPAddress(val);
if(val=="")
{
if(withAlert) callAlert(cntrl,'IP address should not be blank');
return false;
}
if(isAnyDisallowed)
{
if(isIPv6AddrZeros(val))
{
callAlert(cntrl,'Parameter in highlighted field must not be "::"');
return false;
}
}
if(!checkIPv6General(cntrl,withAlert))
return false;
if(checkIPv6Local(cntrl,false))
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field should not contain a link-local address');
return false;
}
if(checkIPv6Multicast(cntrl,false))
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field should contain a unicast address');
return false;
}
return true;
}
function checkIPv6Multicast(cntrl,withAlert)
{
if(!checkIPv6General(cntrl,withAlert))
return false;
var val=getValueFromControl(cntrl);
val=removeInterfaceFromIPAddress(val)
var valArr=val.split(":");
if(valArr[0].toLowerCase()<"ff00")
{
if(withAlert) callAlert(cntrl,'Value in Group 1 in highlighted field should be "ff00" or higher');
return false;
}
return true;
}
function checkAnyIPAddress(cntrl, blankLegal)
{
if(cntrl.value == "")
{
if(blankLegal)return true;
else
{
alert('Blank is not a legal value');
cntrl.focus();
return false;
}
}
if(checkIPv6General(cntrl,false) || checkValidation('',false,cntrl.name,true,'IP'))
return true;
else
{
alert('Value in control is not a legal IP address value');
cntrl.focus();
return false;
}
}
function getValueFromControl(cntrl)
{
switch(cntrl.tagName)
{
case "INPUT":
return cntrl.value;
case "SELECT":
return cntrl.options[cntrl.selectedIndex].text;
default:
return cntrl.value;
}
}
function changeIPv4ToHex(val)
{
var i=val.lastIndexOf(":")+1;
if(checkIP(val.substring(i)) && val.substring(i)!="")
val = val.substring(0,i) + "0:0";
return val;
}
function checkIPv6General(cntrl,withAlert)
{
if(cntrl.disabled)return true;
var val=getValueFromControl(cntrl);
val=removeInterfaceFromIPAddress(val);
val = changeIPv4ToHex(val);
if(val=="")
{
if(withAlert) callAlert(cntrl,'IP address should not be blank');
return false;
}
for(var i=0;i<val.length;i++)
{
var x=val.charCodeAt(i);
if ( (x < 48) || ((x > 58) && (x < 65)) || ((x > 70) && (x < 97)) || (x > 102))
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field should contain only groups of up to 4 hexadecimal characters separated by ":" (IPv4 tunneling is also allowed)');
return false;
}
}
var consecColonsChar=0;
for(i=0;i<val.length-1;i++)
{
if(val.charAt(i)==":")
{
if(val.charAt(i+1)==":")
consecColonsChar++;
}
}
if(consecColonsChar>1)
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field should not contain more than one appearance of "::"');
return false;
}
val = addZeroGroups(val);
var valArr = val.split(":");
if(valArr.length!=8)
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field contains an invalid number of groups');
return false;
}
for(i=0;i<valArr.length;i++)
{
if(valArr[i].length==0)
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field should not contain groups with empty value');
return false;
}
if(valArr[i].length>4)
{
if(withAlert) callAlert(cntrl,'Entered value in highlighted field should contain only groups of up to 4 hexadecimal characters separated by ":" (IPv4 tunneling is also allowed)');
return false;
}
}
return true;
}
function isIPv6AddrZeros(str)
{
for(var i=0;i<str.length;i++)
{
if(str.charAt(i)!="0" && str.charAt(i)!=":")
return false;
}
return true;
}
function strToIPv6(str)
{
var res="";
var imp="";
for(var i=0;i<str.length;i=i+4)
imp=imp+str.substring(i,i+4)+":";
imp=imp.substring(0,imp.length-1);
var res_arr=imp.split(":");
var zero_flag=false;
var num_flag=false;
for(var i=0;i<8;i++)
{
if(res_arr[i]=="0000")
{
if(!zero_flag && i == 0)
{
res=res+"::"
zero_flag=true;
}
if(!zero_flag) res=res+":";
zero_flag=true;
if(num_flag) res=res+res_arr[i]+":";
}
else
{
while(res_arr[i].charAt(0)=="0")
res_arr[i] = res_arr[i].substr(1);
res=res+res_arr[i]+":";
if(zero_flag) num_flag=true;
}
}
if(res.charAt(res.length-2)!=":")
res=res.substring(0,res.length-1);
if(res.length==0)
return imp;
return res;
}
function addZeroGroups(val)
{
var i=val.indexOf("::"),j=0;
if(i==-1) return val;
var colonsNum=0;
for(;j<val.length;j++)
{
if(val.charAt(j)==":")
colonsNum++;
}
if(colonsNum>=9) return val;
if(colonsNum==8 && i!=val.length-2 && i!=0) return val;
var tempString="";
while(8-colonsNum++!=0)
tempString+=":0"
val = val.substring(0,i) + tempString + val.substring(i+1);
if(i==0)
val = "0:" + val.substring(1);
if(i==j-2)
val = val + "0";
return val;
}
function checkValidationSpecificValues(cntrl, legalVals, messageDictId)
{
if(cntrl.disabled)return true;
legVal = false;
var val = cntrl.value;
for (var i=0;i < legalVals.length;i++)
{
if (val == legalVals[i])
{
legVal = true;
break;
}
}
if(val == "" && !legVal)
{
callAlert(cntrl,"Blank value in highlighted field is illegal.");
cntrl.focus();
return false;
}
if (legVal == false)
{
callAlert(cntrl, messageDictId);
cntrl.focus();
return false;
}
return true;
}
function callAlert(cntrl,msg)
{
cntrl.className = 'highlightElement';
document.all ? cntrl.ownerDocument.parentWindow.alert(msg) : cntrl.ownerDocument.defaultView.alert(msg)
cntrl.className='enableElement';
cntrl.focus();
return false;
}
function zoneIndexToInvertedHexa(inputStr)
{
var str = inputStr.toLowerCase();
var ifIndex;
var res = "";
if(str.indexOf("vlan") != -1)
ifIndex = parseInt(str.substr(4),10) + 99999;
else if(str.indexOf("ch") != -1)
ifIndex = parseInt(str.substr(2),10) + parseInt(_top.trunkFirstIndex,10) - 1;
else if(str.indexOf("tun") != -1)
ifIndex = parseInt(_top.tunnelFirstIndex,10);
else
ifIndex = getPortNumberFromName(str);
var ifHex = decToHex(ifIndex).toLowerCase();
if(ifHex.length % 2 == 1)
ifHex = "0" + ifHex;
for(var i = ifHex.length; i > 0; i-=2)
{
res += ifHex.substring(i-2,i);
}
while(res.length < 8)
res += "0";
return res;
}
function addZeroGroup(str)
{
var strSplit = "";
if (str.substr(0,2) == "::" || str.substr(str.length-2,2) == "::")
strSplit = str.replace("::",":");
else
strSplit = str;
val_arr=strSplit.split(":");
if(val_arr.length==8)
{
for(var i=0;i<8;i++)
if(val_arr[i].length<4)
for(;val_arr[i].length<4;val_arr[i]="0"+val_arr[i]);
}
if(str.indexOf(".")!=-1)
{
ipv4=val_arr[val_arr.length-1].split(".");
val_arr[val_arr.length-1]=decToHex(ipv4[0])+decToHex(ipv4[1]);
val_arr.splice(val_arr.length,0,decToHex(ipv4[2])+decToHex(ipv4[3]));
}
if(str.indexOf("::")!=-1)
{
for(var i=0;val_arr.length<8;i++)
if(val_arr[i].length==0)
{
for(var j=i+1;val_arr.length<8;j++)
val_arr.splice(j,0,"0000");
}
}
for(var i=0;i<8;i++)
if(val_arr[i].length<4)
for(;val_arr[i].length<4;val_arr[i]="0"+val_arr[i]);
str=val_arr.join(":");
return str;
}
function checkValidationMAC(cntrl, canBeEmpty, isMulticastLegal)
{
var retVal = true;
if(cntrl.disabled)
{
return retVal;
}
var curVal = cntrl.value = removeSpacesFromHeadAndTail(cntrl.value);
if(curVal=="" && canBeEmpty)
{
return true;
}
else if(curVal == "")
{
callAlert(cntrl,"Blank value in highlighted field is illegal.");
cntrl.focus();
return false;
}
else if(!/(^[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}$)/.test(curVal) &&
!/(^[A-Fa-f0-9]{2}[A-Fa-f0-9]{2}[A-Fa-f0-9]{2}[A-Fa-f0-9]{2}[A-Fa-f0-9]{2}[A-Fa-f0-9]{2}$)/.test(curVal))
{
callAlert(cntrl, "Value is an illegal MAC address.");
cntrl.focus();
return false;
}
else if(isHexValOdd(curVal.substring(0,2)) && !isMulticastLegal)
{
callAlert(cntrl, "Value is an illegal Unicast MAC address.");
cntrl.focus();
return false;
}
return true;
}
function isHexValOdd(str)
{
if(parseInt(str,16) % 2 == 1)
return true;
else
return false;
}
function checkValidationRange(cntrl,lower,upper,canBeEmpty,noMsg)
{
var retVal=true;
if(cntrl.disabled)
return retVal;
var curVal = removeSpacesFromHeadAndTail(cntrl.value);
if(curVal=="" && canBeEmpty)
return retVal;
else if(curVal=="")
{
if(!noMsg)
{
callAlert(cntrl,"Blank value in highlighted field is illegal.");
cntrl.focus();
}
return false;
}
if(!/(^\d+$)/.test(curVal))
retVal=false;
else if(curVal>upper || curVal<lower )
retVal=false;
if(!retVal)
{
if(!noMsg)
{
callAlert(cntrl,"Entered value in highlighted field must be an Integer. Range "+lower+"..."+upper+" .");
cntrl.focus();
}
}
return retVal;
}
function removeInterfaceFromIPAddress(string)
{
var i=string.indexOf('%');
if(i>0)
string = string.substring(0,i);
return string;
}
function invertedHexaToZoneIndex(input)
{
var ifIndex = "";
var myTop;
if(opener)
myTop=opener.top;
else
myTop=top;
for(var i = input.length; i > 0; i-=2)
{
ifIndex += input.substring(i-2,i);
}
while(ifIndex.charAt(0)=="0")
ifIndex = ifIndex.substr(1);
ifIndex = hexToDec(ifIndex);
if(ifIndex == myTop.tunnelFirstIndex)
return "tunnel1";
else if(ifIndex >= 100000)
return "vlan" + (ifIndex - 99999);
else if(ifIndex >= myTop.trunkFirstIndex)
return "ch" + (ifIndex - myTop.trunkFirstIndex + 1);
else
return getPortNameFromNumber(ifIndex);
}
var applyCallFunction;
function createClarityButtonApply(preConditionFunction)
{
if(IsUndefOrNull(preConditionFunction))
{
CreateButtonEmph('Apply','if(formSubmit()){SetLastPostUrl();document.forms[0].submit();}');
applyCallFunction = function() {return top.frames.da.main.formSubmit()};
}
else
{
CreateButtonEmph('Apply','if('+preConditionFunction+'()){if(formSubmit()){SetLastPostUrl();document.forms[0].submit();}}');
applyCallFunction = function() {return eval('top.frames.da.main.'+ preConditionFunction+'()? top.frames.da.main.formSubmit() : false')};
}
}
function createClarityButtonCancel()
{
CreateButton("Cancel","javascript:document.location.reload(true);","btnCancel");
}
function CreateClarityPageMessage(id, parentId, hideSuccess)
{
if (IsUndefOrNull(parentId))
var parentId=null;
if (IsUndefOrNull(id))
var id=null;
document.write("<div class='pageMsg'>");
var msgStatus='';
if (top.frames.da.saveSettings.isSavePressed())
{
msgStatus = CreatePageMessage(id, parentId, true);
top.frames.da.saveSettings.handleSave(msgStatus);
}
else
msgStatus = CreatePageMessage(id, parentId, hideSuccess);
document.write("</div>");
return msgStatus;
}
function alert(msg)
{
AlterPageMessage(msg,4);
}
function selectOptionByValue(selectObj,selectedValue)
{
for(var i=0; i<selectObj.options.length; i++)
{
if(selectObj.options[i].value==selectedValue)
{
selectObj.options[i].selected = true;
return true;
}
}
return false;
}
function firstEntryBetween(initStr,strtStr,endStr)
{ var intStrtStr=initStr.indexOf(strtStr);
var strtFORendStr=intStrtStr+ strtStr.length;
var intEndStr=endStr?initStr.indexOf(endStr,strtFORendStr):-2;
if (intStrtStr==-1 || intEndStr==-1)return "-1";
return intEndStr==-2?initStr.substring(strtFORendStr):initStr.substring(strtFORendStr,intEndStr);
}
var textFieldTypes = {"integer":"1", "string":"2", "ip":"3", "ipv6":"4","mac":"5","mask":"6","ipVariable":"7", "oidElement":"8","float":"9","octetstring":"10"}
function textfieldHandler(i_cntrl, i_type, i_params)
{
if(typeof(i_cntrl) == "string")
this.cntrl = document.getElementById(i_cntrl);
else
this.cntrl = i_cntrl;
this.type = parseInt(i_type, 10);
this.params = i_params;
this.cntrlName = "";
this.cntrl.keyPressValidateFunction = "";
this.validate = function()
{
var res = true;
switch(this.type)
{
case 1:
if(!checkValidationRange(this.cntrl, this.params[0], this.params[1], !this.params[2], false))
res = false;
break;
case 2:
if(!checkValidationString(this.cntrl, this.params[0], this.params[1]))
res = false;
break;
case 3:
var ipType = parseInt(this.params[0], 10);
switch(ipType)
{
case 1:
if(!checkValidationIP(this.cntrl, false, !this.params[1]))
res = false;
break;
case 2:
if(!checkValidationIP(this.cntrl, true, !this.params[1]))
res = false;
break;
case 3:
if(!checkValidationNetworkIP(this.cntrl, !this.params[1]))
res = false;
break;
case 4:
if(!checkMulticastIP(this.cntrl, "1", !this.params[1]))
res = false;
break;
case 5:
if(!checkValidationIPFormatOnly(this.cntrl, !this.params[1]))
res = false;
break;
}
break;
case 4:
isRequired = (this.params[0]) ? true : false;
var ipType = parseInt(this.params[1], 10);
if(this.params[1] == 2)
{ if(!checkIPv6Global(this.cntrl, true, true, !isRequired))
res=false;
}
else if(this.params[1] == 1)
{
if(!checkIPv6Local(this.cntrl, true, !isRequired))
res=false;
}
else if(this.params[1] == 4)
{
if(!checkIPv6Unicast(this.cntrl, true, false, !isRequired))
res=false;
}
else
{
if(!checkIPv6General(this.cntrl, true, !isRequired))
res=false;
}
break;
case 5:
isRequired = (this.params[0]) ? true : false;
var isMulticastLegal = (this.params[1]) ? true : false;
if(!checkValidationMAC(this.cntrl, !isRequired, isMulticastLegal))
res=false;
break;
case 6:
isRequired = (this.params[0]) ? true : false;
minPrefix = this.params[1];
maxPrefix = this.params[2];
if(!checkValidationMaskWithRanges(this.cntrl, !isRequired , minPrefix, maxPrefix))
res=false;
break;
case 7:
var isMulticastLegal = (this.params[0]) ? true : false;
if(!checkValidIPFormat(isMulticastLegal))
res=false;
break;
case 8:
isRequired = (this.params[0]) ? true : false;
if(!isMibOidTextValid(!isRequired, this.params[1], this.params[2]))
res=false;
break;
case 9:
isRequired = (this.params[2]) ? true : false;
if(!checkValidationFloatRange(this.cntrl, this.params[0], this.params[1],!isRequired,false,false))
res=false;
break;
case 10:
isRequired = (this.params[2]) ? true : false;
if(!checkOctetStringValue(this.cntrl, this.params[0], this.params[1], isRequired))
res = false;
break;
}
return res;
}
switch(this.type)
{
case 1,2,3,4,5,6,7,8:
break;
case 9:
this.cntrl.keyPressValidateFunction = function(myControl, e){return floatCharacterOnly(myControl, e , false)};
break;
default:
break;
}
this.focus = function()
{
this.cntrl.focus();
}
this.setDisable = function(i_state)
{
this.cntrl.disabled = i_state;
}
this.setValue = function(i_val)
{
this.cntrl.value = i_val;
}
if(this.cntrl.keyPressValidateFunction != "")
{
this.cntrl.onkeypress = function(e)
{
if (window.event)
e = window.event;
else if (!e)
return true;
return this.keyPressValidateFunction(this,e);
}
}
}
function checkIPv6Unicast(cntrl,withMsg,isAnyDisallowed,blankLegal)
{
if(cntrl.disabled)
return true;
var val=getValueFromControl(cntrl);
val=removeInterfaceFromIPAddress(val);
if(removeSpacesFromHeadAndTail(val)=="" && blankLegal)
return true;
else if(removeSpacesFromHeadAndTail(val)=="")
{
if(withMsg)
{
callAlert(cntrl,"Blank is not a legal value");
cntrl.focus();
}
return false;
}
if(isAnyDisallowed)
{
if(isIPv6AddrZeros(val))
{
if(withMsg)
{
callAlert(cntrl,'Value should not be "::".')
cntrl.focus();
}
return false;
}
}
if(!checkIPv6General(cntrl,withMsg,blankLegal))
return false;
if(checkIPv6Multicast(cntrl,false))
{
if(withMsg)
{
callAlert(cntrl,"Value should be a Unicast address.");
cntrl.focus();
}
return false;
}
return true;
}
function checkValidationString(i_cntrl, i_canBeEmpty, i_maxLength)
{
var retVal=true;
if(typeof(i_maxLength) == "undefined")
i_maxLength = -1;
if(typeof(i_canBeEmpty) == "undefined")
i_canBeEmpty = false;
if(typeof(i_cntrl) == "string")
var cntrl = document.getElementById(i_cntrl);
else
var cntrl = i_cntrl;
if(cntrl.disabled)
{
return retVal;
}
var curVal = cntrl.value;
for(var j=0;j<curVal.length;j++)
{
if ((curVal.charCodeAt(j)<32 || curVal.charCodeAt(j)>127) && curVal.charCodeAt(j) != 160)
{
alert("String Contain Illegal Characters.");
cntrl.focus();
retVal = false;
}
}
if(curVal == "" && !i_canBeEmpty)
{
alert("Blank is not a legal value.");
cntrl.focus();
retVal = false;
}
return retVal;
}
function floatCharacterOnly(myfield, e, allowOccurence)
{
var key;
var keychar;
var ctrl;
if((typeof(allowOccurence) == "undefined")||(allowOccurence == null))
allowOccurence = true;
if(typeof(myfield) == "string")
ctrl = document.getElementById(myfield);
else
ctrl = myfield;
var doubleDotRegExp = new RegExp("[0-9]*[\.]+[0-9]*[\.]+","g");
if(window.event)
{
key = window.event.keyCode;
}
else if(e)
{
key = e.which;
}
else
{
return true;
}
if((key==null) || (key==0) || (key==8) || (key==9) || (key==27))
{
return true;
}
if(isValidString(String.fromCharCode(key),LEGAL_IPv4_CHARS))
{
if(!allowOccurence)
{
var value = ctrl.value+String.fromCharCode(key);
if(doubleDotRegExp.test(value))
return false;
}
return true;
}
else
{
return false;
}
}
function isValidString(value,validString)
{
var occurrence = validString.indexOf(value);
if(occurrence > -1)
{
return true;
}
else
{
return false;
}
}
function checkValidationFloatRange(i_cntrl, i_minValue, i_maxValue, i_canBeEmpty, i_noMsg)
{
var retVal=true;
if(typeof(noMsg) == "undefined")
i_noMsg = false;
if(typeof(i_canBeEmpty) == "undefined")
i_canBeEmpty = false;
if(typeof(i_cntrl) == "string")
var cntrl = document.getElementById(i_cntrl);
else
var cntrl = i_cntrl;
var doubleDotRegExp = new RegExp("[0-9]*[\.]+[0-9]*[\.]+","g");
if(cntrl.disabled)
{
return retVal;
}
var curVal = removeSpacesFromHeadAndTail(cntrl.value);
if(curVal=="" && i_canBeEmpty)
return retVal;
else if(curVal=="")
{
if(!i_noMsg)
{
alert("Blank value in highlighted field is illegal.");
cntrl.focus();
}
return false;
}
var invalidPattern = new RegExp("[^0-9.]","g");
if(invalidPattern.test(curVal))
{
if(!i_noMsg)
alert("Entered value in highlighted field must be a Float type. Range "+i_minValue+"-"+i_maxValue+" .")
return false;
}
if(doubleDotRegExp.test(curVal))
{
if(!i_noMsg)
alert("Entered value in highlighted field must be a Float type. Range "+i_minValue+"-"+i_maxValue+" .")
return false;
}
if(curVal == ".")
{
if(!i_noMsg)
alert("Entered value in highlighted field must be a Float type. Range "+i_minValue+"-"+i_maxValue+" .")
return false;
}
if((curVal < i_minValue)||(curVal > i_maxValue))
{
if(!i_noMsg)
alert("Entered value in highlighted field must be a Float type. Range "+i_minValue+"-"+i_maxValue+" .")
return false;
}
return retVal;
}
function buildPortList(unitNumer,comboBoxName){
if(top.Units==true){
var unitNum = formele[unitNumer+1].value;
addPresentPortsSelectionList(document.forms[0],comboBoxName,'','n',true, unitNum);
}
else{
addPresentPortsSelectionList(document.forms[0],comboBoxName,'','n');
}
}
function fillLagSelect(comboBoxName){
var trunkFirstIndex = top.trunkFirstIndex;
var numberOfTrunks = top.NumberOfTrunks;
var optionText = null;
var optionValue = null;
var option = null;
var lastTrunkIndex = parseInt(trunkFirstIndex) + parseInt(numberOfTrunks);
for(var i = trunkFirstIndex,j = 0 ; i < lastTrunkIndex ; j++,i++)
{
optionValue = i;
optionText= i - parseInt(trunkFirstIndex)+1;
option = new Option(optionText,optionValue)
formele[comboBoxName].options[j] = option;
}
}
function applyInterfacOrUnitFilter(comboBoxName,fieldModuleName,fieldPortName,firstPart)
{
var selectList;
var newUrl;
var selectedUnit = top.firstPresentModule;
if(!firstPart)
firstPart = "";
var strHref = location.pathname;
strHref=strHref.substr(strHref.lastIndexOf("/")+1);
if ((typeof(fieldPortName)=="undefined")||(fieldPortName=="")){
if (top.Units==true){
selectList=formele[comboBoxName];
selectedUnit = selectList[selectList.selectedIndex].text;
}
newUrl = strHref+"?" + firstPart + "Filter:(("+fieldModuleName+"="+ selectedUnit +")&&(ifOperStatus!=6))";
}
else{
var selectedRadio;
if (formele[comboBoxName].type=="radio"){
selectList=formele[comboBoxName];
selectedRadio = selectList.value;
}
else{
if (top.Units==true){
selectList=formele[comboBoxName];
selectedUnit = selectList[selectList.selectedIndex].text;
}
selectedRadio = "ports";
}
if(selectedRadio.toLowerCase() != "lag")
newUrl = strHref+"?" + firstPart + "Filter:(("+fieldModuleName+"="+ selectedUnit +")&&(ifOperStatus!=6))";
else
newUrl = strHref+"?"+firstPart +"Filter:(("+fieldPortName+">=" + (top.trunkFirstIndex) + ")&&(" + fieldPortName + "<" + (top.trunkFirstIndex+top.NumberOfTrunks) + "))";
}
document.location.replace(newUrl);
}
function removeSpacesFromSlct(comboId)
{
var ctrl;
if(document.getElementById(comboId))
ctrl=document.getElementById(comboId);
else
ctrl=formele[comboId];
for(var i=0;i<ctrl.options.length;)
if(ctrl.options[i].text.trim()=="")
ctrl.options[i]=null;
else
i++;
}
function UserInput()
{
this.framesToDisable = ["logo", "globalnav", "snb", "lsnb", "tree", "da" , "titleFrm"];
var me = this;
UserInput.prototype.enable = function ()
{
var i = this.framesToDisable.length;
while (i-- > 0)
{
window.top[this.framesToDisable[i]].page.enableUserInput();
}
}
UserInput.prototype.disable = function ()
{
var i = this.framesToDisable.length;
while (i-- > 0)
{
window.top[this.framesToDisable[i]].page.disableUserInput();
}
}
UserInput.prototype.pageUnloadListener = function ()
{
me.enable();
}
if ("addEventListener" in document)
{
window.addEventListener("unload", this.pageUnloadListener, false);
}
else
{
window.attachEvent("onunload", this.pageUnloadListener);
}
}
AddEvent(window, "load", StylingInit);
var isStylingFinished = false;
function StylingInit()
{
HandleControls();
FinalizeStyling();
}
function FinalizeStyling()
{
document.body.style.cursor = "auto";
for (var i = 0, iMax = document.forms.length; i < iMax; i ++)
document.forms[i].style.cursor = "auto";
isStylingFinished = true;
}
function HasWord(str,word) {return (str.search(new RegExp("\\b"+word+"\\b")) != -1);}
function AddLblEventsHandler(obj)
{
var eventArr = ["blur", "change", "click", "dblclick", "focus", "keydown", "keypress", "keyup",
"mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "select"];
for (var i = 0; i < eventArr.length; i ++)
if (obj["on"+eventArr[i]] != undefined)
AddEvent(obj, eventArr[i], DsblEnblCtrlsLbls);
}
function IsUndefOrNull(arg) {return (typeof(arg) == "undefined" || arg == null);}
function AddEvent(object, event, handler, capturing)
{
if (IsUndefOrNull(object))
return false;
if (IsUndefOrNull(capturing))
capturing = false;
if (object.attachEvent)
return object.attachEvent("on" + event, handler);
else if (object.addEventListener)
return object.addEventListener(event, handler, capturing);
else
return false;
}
function HasWord(str,word) {return (str.search(new RegExp("\\b"+word+"\\b")) != -1);}
function DsblEnblCtrlsLbls()
{
var ctrlArrLen = ctrlArray.length;
for (var i = 0; i < ctrlArrLen; i++)
{
ctrlArray[i].className = ctrlArray[i].className.replace(/\s*\bdisabled\b/g, "");
if (ctrlArray[i].disabled && (ctrlArray[i].type!="checkbox" && ctrlArray[i].type!="radio"))
ctrlArray[i].className += " disabled";
}
}
function HandleControls()
{
isSomeControlChanged = false;
ctrlArray = [];
var ctrlArr = document.getElementsByTagName("input");
var ctrlNameArr = new Array();
var ctrlName, ctrlOnclick, isMultiselect;
var isMSIE = HasWord(navigator.userAgent, "MSIE");
for (var i = 0; i < ctrlArr.length; i ++)
{
if (ctrlArr[i].type == "hidden")
continue;
AddEvent(ctrlArr[i], "change", RegisterCtrlChange);
{
ctrlArray.push(ctrlArr[i]);
AddLblEventsHandler(ctrlArr[i]);
}
switch (ctrlArr[i].type)
{
case "checkbox":
ctrlArr[i].className += " checkbox";
break;
case "radio":
ctrlArr[i].className += " radio";
break;
case "file":
case "password":
case "text":
ctrlArr[i].className += " text";
break;
}
}
var tagNameArr = ["select", "textarea"];
var corrTextarea;
for (var i = 0; i < tagNameArr.length; i ++)
{
corrTextarea = (isMSIE && tagNameArr[i] == "textarea");
ctrlArr = document.getElementsByTagName(tagNameArr[i]);
for (var j = 0; j < ctrlArr.length; j ++)
{
AddEvent(ctrlArr[j], "change", RegisterCtrlChange);
{
ctrlArray.push(ctrlArr[j]);
AddLblEventsHandler(ctrlArr[j]);
}
if (corrTextarea)
ctrlArr[j].style.margin = "-1px 0px";
}
}
DsblEnblCtrlsLbls();
return;
function RegisterCtrlChange() {window.isSomeControlChanged = true;}
}

