// ----------------------------------------------------------------------
// Copyright (C) 2007 by GREGORY LE BRAS
// ----------------------------------------------------------------------
// LICENSE
//
// This file is part of ODCNMS - Open DataCenter Network Management System
// 
// ODCNMS is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// 
// Foobar is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with Foobar; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
// ----------------------------------------------------------------------
// Original Author of file: GREGORY LE BRAS - gregory.lebras_at_gmail.com
// ----------------------------------------------------------------------

function dosubmission(form)
{
	document.form.submit();
}

function confirmDelete()
{
	var agree=confirm("Are you sure you wish to delete? All data will be lost.");
	if (agree)
		return true ;
	else
		return false ;
}

function addotheripaddress(element)
{
	urlredirectdiv('ajax_view.php?what=ajaxnetwork',element);
}

function confirmDeleteall(message)
{
	var agree=confirm(message);
	if (agree)
		return true ;
	else
		return false ;
}

function goto(form)
{
	var index=form.select.selectedIndex
	if (form.select.options[index].value != "0")
	{
		location=form.select.options[index].value;
	}
}


function addnbinterface(nb,density)
{
	if (nb=="1")
	{
		document.getElementById('nb_interface_slot_'+nb).value = parseInt(density)+1;
	}
	else
	{
		document.getElementById('nb_interface_slot_'+nb).value = parseInt(document.getElementById('nb_interface_slot_'+(nb-1)).value) + parseInt(density);
	}
}

function selectlayer(element1,element2,layer)
{
	var layerarray = layer.split(",");

	if (layerarray[1]=="1")
	{
		document.getElementById(element1).style.display="none";
		document.getElementById(element2).style.display="block";		
		document.getElementById('checkaddvlan').value="0";		
	}
	else if (layerarray[1]=="2")
	{
		document.getElementById(element1).style.display="block";
		document.getElementById(element2).style.display="block";
		document.getElementById('checkaddvlan').value="1";
	}
	else if (layerarray[1]=="3")
	{
		document.getElementById(element1).style.display="block";
		document.getElementById(element2).style.display="none";			
		document.getElementById('checkaddvlan').value="0";			
	}	
}

function addslotsinterfaces(nb,slot,density,type,speed,nbinterface)
{
	urlredirectdiv('ajax_view.php?what=addslotsinterfaces&nb_slot='+nb+'&slot='+slot+'&density='+density+'&type='+type+'&speed='+speed+'&nb_interface='+nbinterface,'slotdivinterface_'+nb);
}

function urlredirectdiv(url,target)
{
	document.getElementById(target).innerHTML = "<img src='images/loading.gif' alt='Loading' align='top'> Requesting content...";
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = function() {urlredirectdivDone(target);};
		req.open("GET", url, true);
		req.send(null);
	}
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = function() {urlredirectdivDone(target);};
			req.open("GET", url, true);
			req.send();
		}
	}
}

function urlredirectdivDone(target)
{
	// only if req is "loaded"
	if (req.readyState == 4)
	{
		// only if "OK"
		if (req.status == 200)
		{
			results = req.responseText;
			document.getElementById(target).innerHTML = results;			
		}
		else 
		{
			document.getElementById(target).innerHTML="Error:\n" +
			req.statusText;
		}
	}
}

function keynext(keycodevalue,nextelement)
{
	if (keycodevalue==190)
	{
		var nel = document.getElementById(nextelement);
		nel.focus();
		var evt = (evt) ? evt : ((window.event) ? window.event : "")
		evt.returnValue = false; // IE
		return false; // netscape
	}
}

function changedisabled(element)
{
	if (document.getElementById(element).disabled==false)
	{
		document.getElementById(element).disabled=true;
	}
	else
	{
		document.getElementById(element).disabled=false;
	}
}

function changeimage(previous,next,element)
{
	if (document.getElementById(element).src=previous)
	{
		document.getElementById(element).src=next;
	}
	else if (document.getElementById(element).src=next)
	{
		document.getElementById(element).src=previous;
	}
}

function displayelement (element)
{
	if (document.getElementById(element).style.display=="none")
	{
		document.getElementById(element).style.display="block";
	}
	else
	{
		document.getElementById(element).style.display="none";
	}
}

function displaysubnetworkssize (subnetnum)
{
	status=document.getElementById('subnetworkssize').style.display;
	
	if(status=="none")
	{
		document.getElementById('subnetworkssize').style.display="block";
	}
}

function numbersonly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function validmask(f)
{
	var f = document.forms[0];
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;
	
	if ((sn1 != 128) || (sn1 != 192) || (sn1 != 224) || (sn1 != 240) || (sn1 != 248) || (sn1 != 252) || (sn1 != 254) || (sn1 != 255))
	{
		alert("Illegal entry");
	}
}

function calcbroadcastaddress(f)
{
	var f = document.forms[0];
	
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;
	
	var oct1 = f.oct1.value;
	var oct2 = f.oct2.value;
	var oct3 = f.oct3.value;
	var oct4 = f.oct4.value;
	
	if ((sn1=="255") && (sn2=="255") && (sn3=="255") && (sn4 >= 0))
	{
		if (sn4 == 0)
		{
			f.broadcastaddress.value=oct1+"."+oct2+"."+oct3+"."+((256-sn4)-1);
		}
		else
		{
			f.broadcastaddress.value=oct1+"."+oct2+"."+oct3+"."+(parseInt(oct4)+((256-sn4)-1));
		}
	}
	else if ((sn1=="255") && (sn2=="255") && (sn3>=0) && (sn4 >= 0))
	{
		f.broadcastaddress.value=oct1+"."+oct2+"."+((256-sn3)-1)+"."+((256-sn4)-1);
	}
	else if ((sn1=="255") && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.broadcastaddress.value=oct1+"."+((256-sn2)-1)+"."+((256-sn3)-1)+"."+((256-sn4)-1);
	}
	else if ((sn1>=0) && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.broadcastaddress.value=((256-sn1)-1)+"."+((256-sn2)-1)+"."+((256-sn3)-1)+"."+((256-sn4)-1);
	}	
}

function calciprange(f)
{
	var f = document.forms[0];
	
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;
	
	if (document.getElementById('oct1'))
	{
		var oct1 = f.oct1.value;
	}
	
	if (document.getElementById('oct2'))
	{
		var oct2 = f.oct2.value;
	}
	
	if (document.getElementById('oct3'))
	{
		var oct3 = f.oct3.value;
	}
	
	if (document.getElementById('oct4'))
	{
		var oct4 = f.oct4.value;
	}
	
	if ((sn1=="255") && (sn2=="255") && (sn3=="255") && (sn4 >= 0))
	{
		if (sn4 == 0)
		{
			f.range_2.value=oct1+"."+oct2+"."+oct3+"."+(((256-sn4)-1)-1);
		}
		else
		{
			f.range_2.value=oct1+"."+oct2+"."+oct3+"."+((parseInt(oct4)+((256-sn4)-1))-1);
		}
	}
	else if ((sn1=="255") && (sn2=="255") && (sn3>=0) && (sn4 >= 0))
	{
		f.range_2.value=oct1+"."+oct2+"."+((256-sn3)-1)+"."+(((256-sn4)-1)-1);
	}
	else if ((sn1=="255") && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.range_2.value=oct1+"."+((256-sn2)-1)+"."+((256-sn3)-1)+"."+(((256-sn4)-1)-1);
	}
	else if ((sn1>=0) && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.range_2.value=((256-sn1)-1)+"."+((256-sn2)-1)+"."+((256-sn3)-1)+"."+(((256-sn4)-1)-1);
	}
	
	f.range_1.value=oct1+"."+oct2+"."+oct3+"."+(parseInt(oct4)+1);
}

function calccidr(f)
{	
	var sn1 = bnr(f.snm1.value);
	var sn2 = bnr(f.snm2.value);
	var sn3 = bnr(f.snm3.value);
	var sn4 = bnr(f.snm4.value);
	
	var total = sn1+sn2+sn3+sn4;
	var characterToCount = "1";
	var counter = 0;
	var mytotalArray = total.split('');

	for (i=0;i<mytotalArray.length;i++)
	{
		if (mytotalArray[i] == characterToCount)
		{
			counter++;
		}
	}
	f.snmbits.value=counter;
}

function calcnode(f)
{
	var f = document.forms[0];
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;	
	
	if ((sn1=="255") && (sn2=="255") && (sn3=="255") && (sn4 >= 0))
	{
		f.numnode.value=(256-sn4);
	}
	else if ((sn1=="255") && (sn2=="255") && (sn3>=0) && (sn4 >= 0))
	{
		f.numnode.value=((256-sn3)*(256-sn4));
	}
	else if ((sn1=="255") && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.numnode.value=((256-sn2)*(256-sn3)*(256-sn4));
	}
	else if ((sn1>=0) && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.numnode.value=((256-sn1)*(256-sn2)*(256-sn3)*(256-sn4));
	}
}

function calcsubnet(f)
{
	var f = document.forms[0];
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;	
	
	if ((sn1=="255") && (sn2=="255") && (sn3=="255") && (sn4 >= 0))
	{
		f.numsubnet.value=Math.round(256/(256-sn4));
		return Math.round(256/(256-sn4));
	}
	else if ((sn1=="255") && (sn2=="255") && (sn3>=0) && (sn4 >= 0))
	{
		f.numsubnet.value=Math.round(65536/((256-sn3)*(256-sn4)));
		return Math.round(65536/((256-sn3)*(256-sn4)));
	}
	else if ((sn1=="255") && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.numsubnet.value=Math.round(16777216/((256-sn2)*(256-sn3)*(256-sn4)));
		return Math.round(16777216/((256-sn2)*(256-sn3)*(256-sn4)));
	}
	else if ((sn1>=0) && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.numsubnet.value=Math.round(4294967296/((256-sn1)*(256-sn2)*(256-sn3)*(256-sn4)));
		return Math.round(4294967296/((256-sn1)*(256-sn2)*(256-sn3)*(256-sn4)));
	}	
}

function networktype(f)
{
	var f = document.forms[0];
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;
	
	var oct1 = f.oct1.value;
	var oct2 = f.oct2.value;
	var oct3 = f.oct3.value;
	var oct4 = f.oct4.value;
	
	if ((oct1 > 0) && (oct1 < 127)) f.nwclass.value="Class A";
	if ((oct1 > 127) && (oct1 < 192)) f.nwclass.value="Class B";
	if ((oct1 > 191) && (oct1 < 224)) f.nwclass.value="Class C";
	
	if ((sn1=="255") && (sn2=="255") && (sn3=="255") && (sn4 >= 0))
	{
		f.subsuper.value="Subnetted as";
		f.nwclass1.value="Class C";
	}
	else if ((sn1=="255") && (sn2=="255") && (sn3>=0) && (sn4 >= 0))
	{
		if ((f.nwclass.value=="Class C"))
		{
			f.subsuper.value="Supernetted as";
		}
		else
		{
			f.subsuper.value="Subnetted as";
		}
		f.nwclass1.value="Class B";
	}
	else if ((sn1=="255") && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		if ((f.nwclass.value=="Class B") || (f.nwclass.value=="Class C"))
		{
			f.subsuper.value="Supernetted as";
		}
		else
		{
			f.subsuper.value="Subnetted as";
		}
		f.nwclass1.value="Class A";
	}
	else if ((sn1>=0) && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		if ((f.nwclass.value=="Class B") || (f.nwclass.value=="Class C"))
		{
			f.subsuper.value="Supernetted as";
		}
		else
		{
			f.subsuper.value="Subnetted as";
		}
		f.nwclass1.value="Class A";
	}		
}

function calcmask(f)
{
	var f = document.forms[0];
	var cidr = f.snmbits.value;
	var currnum = 128;
	
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;

	var cidrb = "";
	
	for (var x = 0; x < cidr; x++)
	{
		cidrb = cidrb+"1";
	}
	
	if (cidr <= 8)
	{
		cidrbits = eval(cidrb.charAt(0)) * currnum;

		for (var i=1; i<cidr; i++)
		{
			currnum = currnum / 2;
			cidrbits = cidrbits + (eval(cidrb.charAt(i)) * currnum);
		}
		
		f.snm1.value=cidrbits;
		f.snm2.value="0";
		f.snm3.value="0";
		f.snm4.value="0";
	}
	else if ((cidr > 8) && (cidr <= 16))
	{
		cidrbits = eval(cidrb.charAt(8)) * currnum;

		for (var i=1; i<(cidr-8); i++)
		{
			currnum = currnum / 2;
			cidrbits = cidrbits + (eval(cidrb.charAt(i)) * currnum);
		}
		
		f.snm1.value="255";
		f.snm2.value=cidrbits;
		f.snm3.value="0";
		f.snm4.value="0";		
	}
	else if ((cidr > 16) && (cidr <= 24))
	{
		cidrbits = eval(cidrb.charAt(16)) * currnum;

		for (var i=1; i<(cidr-16); i++)
		{
			currnum = currnum / 2;
			cidrbits = cidrbits + (eval(cidrb.charAt(i)) * currnum);
		}
		
		f.snm1.value="255";
		f.snm2.value="255";
		f.snm3.value=cidrbits;
		f.snm4.value="0";		
	}
	else if ((cidr > 24) && (cidr <= 32))
	{
		cidrbits = eval(cidrb.charAt(24)) * currnum;

		for (var i=1; i<(cidr-24); i++)
		{
			currnum = currnum / 2;
			cidrbits = cidrbits + (eval(cidrb.charAt(i)) * currnum);
		}
		
		f.snm1.value="255";
		f.snm2.value="255";
		f.snm3.value="255";
		f.snm4.value=cidrbits;	
	}
}

function calcaddress(value)
{
	var f = document.forms[0];

	if (value=="null")
	{
		f.oct1.value="";
		f.oct2.value="";
		f.oct3.value="";
		f.oct4.value="";
		
		f.snm1.value="";
		f.snm2.value="";
		f.snm3.value="";
		f.snm4.value="";
		
		f.snmbits.value="";
		f.oct1.disabled=true;
		f.oct2.disabled=true;
		f.oct3.disabled=true;
		f.oct4.disabled=true;
		f.snm1.disabled=true;
		f.snm2.disabled=true;
		f.snm3.disabled=true;
		f.snm4.disabled=true;
		f.snmbits.disabled=true;
		
		f.oct1.style.color="#978e7b";
		f.oct2.style.color="#978e7b";
		f.oct3.style.color="#978e7b";
		f.oct4.style.color="#978e7b";
		f.snm1.style.color="#978e7b";
		f.snm2.style.color="#978e7b";
		f.snm3.style.color="#978e7b";
		f.snm4.style.color="#978e7b";
		
		f.network.style.backgroundColor="#ffb3b3";
		
		alert("Please select a network segment");
	}
	else
	{
		f.network.style.backgroundColor="#f6f6f6";
		f.oct1.disabled=false;
		f.oct2.disabled=false;
		f.oct3.disabled=false;
		f.oct4.disabled=false;
		f.snm1.disabled=false;
		f.snm2.disabled=false;
		f.snm3.disabled=false;
		f.snm4.disabled=false;
		f.snmbits.disabled=false;	

		f.oct1.style.color="#000000";
		f.oct2.style.color="#000000";
		f.oct3.style.color="#000000";
		f.oct4.style.color="#000000";
		f.snm1.style.color="#000000";
		f.snm2.style.color="#000000";
		f.snm3.style.color="#000000";
		f.snm4.style.color="#000000";		
	}
	
	var valuearray = value.split(";");
	var addressarray = valuearray[1].split(".");
	var maskarray = valuearray[2].split(".");
	
	if (maskarray[0]=="255")
	{
		f.oct1.readOnly=true;
		f.snm1.readOnly=true;
		f.oct1.style.color="#978e7b";
		f.snm1.style.color="#978e7b";
	}
	if (maskarray[1]=="255")
	{
		f.oct2.readOnly=true;
		f.snm2.readOnly=true;
		f.oct2.style.color="#978e7b";
		f.snm2.style.color="#978e7b";		
	}
	if (maskarray[2]=="255")
	{
		f.oct3.readOnly=true;
		f.snm3.readOnly=true;
		f.oct3.style.color="#978e7b";
		f.snm3.style.color="#978e7b";			
	}
	if (maskarray[3]=="255")
	{
		f.oct4.readOnly=true;
		f.snm4.readOnly=true;
		f.oct4.style.color="#978e7b";
		f.snm4.style.color="#978e7b";			
	}	
	
	f.oct1.value=addressarray[0];
	f.oct2.value=addressarray[1];
	f.oct3.value=addressarray[2];
	f.oct4.value=addressarray[3];
	
	f.snm1.value=maskarray[0];
	f.snm2.value=maskarray[1];
	f.snm3.value=maskarray[2];
	f.snm4.value=maskarray[3];
	
	f.snmbits.readOnly=true;
	f.snmbits.style.color="#978e7b";
	
	calccidr(f);
}

function bnr(decimal)
{
var hit="";
 while(decimal >= 1)
 {
   var m=(decimal*10)/4;
   while(m > 1){m=m-5;};
   if(m < 0){decimal=(decimal-1)/2;hit+="1";}else{decimal=decimal/2;hit+="0";};
   
 };

var b ="";
var bin;
bin=hit.length;
for(a=hit.length;a>=0;a--)
  {
   b += hit.substring(a-1,a);
   };
if (b.length > 15){alert("the answer is longer than the textbox -> "+b)};
return b;
}

function openwindow(f,url,name)
{
	f.submit();
	var popup = window.open(url,name,"height=500,width=1024,scrollbars=yes,resizable=yes,status=no,screenX=150,screenY=150,top=150,left=150");
}

function addnetworkinfo(f,value)
{
	if (value=="null")
	{
		f.network.style.backgroundColor="#ffb3b3";
		alert("Please select a network segment");
		f.generatesubnetbutton.disabled=true;
	}
	else
	{
		f.network.style.backgroundColor="#f6f6f6";
		var networkinfoarray = value.split(";");
		var networkid = networkinfoarray[0];
		var address = networkinfoarray[1];
		var mask = networkinfoarray[2];
		
		var addressarray = address.split(".");
		var maskarray = mask.split(".");
		
		f.snm1.value = maskarray[0];
		f.snm2.value = maskarray[1];
		f.snm3.value = maskarray[2];
		f.snm4.value = maskarray[3];
		
		f.oct1.value = addressarray[0];
		f.oct2.value = addressarray[1];
		f.oct3.value = addressarray[2];
		f.oct4.value = addressarray[3];
		
		if (maskarray[0]=="255")
		{
			f.snm1.readOnly=true;
			f.snm1.style.color="#978e7b";
		}
		if (maskarray[1]=="255")
		{
			f.snm2.readOnly=true;
			f.snm2.style.color="#978e7b";		
		}
		if (maskarray[2]=="255")
		{
			f.snm3.readOnly=true;
			f.snm3.style.color="#978e7b";			
		}
		if (maskarray[3]=="255")
		{
			f.snm4.readOnly=true;
			f.snm4.style.color="#978e7b";			
		}	
		
		calccidr(f);
		A_SLIDERS[0].f_setValue(f.snmbits.value);
		f.generatesubnetbutton.disabled=false;
	}
}

function deleteRow(r,table)
{
	var oRows = document.getElementById(table).getElementsByTagName('tr');
	var iRowCount = oRows.length;
	
	var answer = confirm("Are you sure you wish to delete ?");
	if (answer)
	{
		var i=r.parentNode.parentNode.rowIndex;
		document.getElementById(table).deleteRow(i);
	}
}

function addRow(id,idamount)
{
	var oRows = document.getElementById(id).getElementsByTagName('tr');
	var iRowCount = oRows.length+1;
	
    var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
    var row = document.createElement("TR")
    var td1 = document.createElement("TD")
	td1.setAttribute("valign","top")
    td1.appendChild(document.createTextNode(iRowCount))
    var td2 = document.createElement("TD")
	td2.setAttribute("valign","top")
	td2.innerHTML = "<div id=\"ajaxnetworkarea_"+iRowCount+"\"><a href=\"javascript:urlredirectdiv('ajax_view.php?what=ajaxnetworkdevice&irowcount="+iRowCount+"','ajaxnetworkarea_"+iRowCount+"');\">Select the network</a></div>";
	var td3 = document.createElement("TD")
	td3.setAttribute("valign","top")
	td3.setAttribute("align","right")
	td3.innerHTML = "<input type=\"button\" name=\"delete\" value=\"Delete\" onclick=\"deleteRow(this,'"+id+"');\">";	
    row.appendChild(td1);
    row.appendChild(td2);
    row.appendChild(td3);
    tbody.appendChild(row);
	document.getElementById(idamount).value = parseFloat(document.getElementById(idamount).value) + 1;
}

function calcamountsubnet(f)
{
	var f = document.forms[0];
	var sn1 = f.snm1.value;
	var sn2 = f.snm2.value;
	var sn3 = f.snm3.value;
	var sn4 = f.snm4.value;	
	
	if ((sn1=="255") && (sn2=="255") && (sn3=="255") && (sn4 >= 0))
	{
		f.amountsubnet.value=Math.round(256/(256-sn4));
	}
	else if ((sn1=="255") && (sn2=="255") && (sn3>=0) && (sn4 >= 0))
	{
		f.amountsubnet.value=Math.round(65536/((256-sn3)*(256-sn4)));
	}
	else if ((sn1=="255") && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.amountsubnet.value=Math.round(16777216/((256-sn2)*(256-sn3)*(256-sn4)));
	}
	else if ((sn1>=0) && (sn2>=0) && (sn3>=0) && (sn4 >= 0))
	{
		f.amountsubnet.value=Math.round(4294967296/((256-sn1)*(256-sn2)*(256-sn3)*(256-sn4)));
	}	
}

function bulkedit(value)
{
	var f = document.forms[0];
	
	if (value=="null")
	{
		alert("Please select a category!");
		document.getElementById('bulkedit').innerHTML = "";
	}
	else if (value=="0")
	{
		document.getElementById('bulkedit').innerHTML = "<input type=\"text\" name=\"bulkname\" id=\"bulkname\" value=\"\" size=\"30\">";
	}
	else if (value=="1")
	{
		urlredirectdiv('ajax_view.php?what=bulkcustomer','bulkedit');
	}
	else if (value=="2")
	{
		urlredirectdiv('ajax_view.php?what=bulkvlan','bulkedit');
	}
	else if (value=="3")
	{
		document.getElementById('bulkedit').innerHTML = "<select name=\"bulkstatus\" id=\"bulkstatus\" size=\"1\"><option value=\"0\">Assigned</option><option value=\"1\">Unused</option><option value=\"2\">Reserved</option></select>";
	}
	else if (value=="4")
	{
		document.getElementById('bulkedit').innerHTML = "<textarea name=\"bulkdescription\" id=\"bulkdescription\" rows=\"5\" cols=\"30\" maxlength=\"255\"></textarea>";
	}
}

function bulkapply()
{
	var selectsubnetnumberarray = new Array();

	while (document.getElementById('selectsubnetnumber').selectedIndex != -1)
	{
		if (document.getElementById('selectsubnetnumber').selectedIndex >= 0) selectsubnetnumberarray.push(document.getElementById('selectsubnetnumber').options[document.getElementById('selectsubnetnumber').selectedIndex].value);
		document.getElementById('selectsubnetnumber').options[document.getElementById('selectsubnetnumber').selectedIndex].selected = false;
	}

	if (document.getElementById('bulkcustomer'))
	{
		var bulkcustomerarray = new Array();
	
		while (document.getElementById('bulkcustomer').selectedIndex != -1)
		{
			if (document.getElementById('bulkcustomer').selectedIndex >= 0) bulkcustomerarray.push(document.getElementById('bulkcustomer').options[document.getElementById('bulkcustomer').selectedIndex].value);
			document.getElementById('bulkcustomer').options[document.getElementById('bulkcustomer').selectedIndex].selected = false;
		}
		
		for (var x=0;x<bulkcustomerarray.length;x++)
		{
			for(var i=0;i<selectsubnetnumberarray.length;i++)
			{
				var target = 'customer_'+selectsubnetnumberarray[i];
				var target2 = 'customer_array_'+selectsubnetnumberarray[i];
				document.getElementById(target).options[x] = new Option(info_customer[bulkcustomerarray[x]],bulkcustomerarray[x]);
				if (x=="0")
				{
					document.getElementById(target2).value=bulkcustomerarray[x];
				}
				else
				{
					document.getElementById(target2).value=document.getElementById(target2).value + ";" + bulkcustomerarray[x];				
				}
			}	
		}
	}
	
	if (document.getElementById('new_vlan_name'))
	{
		if (document.getElementById('new_vlan_name').value != "")
		{
			for(var i=0;i<selectsubnetnumberarray.length;i++)
			{
				var target = 'vlan_'+selectsubnetnumberarray[i];
				document.getElementById(target).options[0] = new Option(document.getElementById('new_vlan_name').value,'new_vlan;'+document.getElementById('new_vlan_name').value+';'+document.getElementById('new_vlan_number').value);
				var target2 = 'vlan_array_'+selectsubnetnumberarray[i];
				document.getElementById(target2).value=document.getElementById(target).options[0].value;			
			}
		}
		else
		{
			if (document.getElementById('bulkvlan'))
			{
				for(var i=0;i<selectsubnetnumberarray.length;i++)
				{
					var target = 'vlan_'+selectsubnetnumberarray[i];
					document.getElementById(target).options[0] = new Option(info_vlan[document.getElementById('bulkvlan').value],document.getElementById('bulkvlan').value);
					var target2 = 'vlan_array_'+selectsubnetnumberarray[i];
					document.getElementById(target2).value=document.getElementById(target).options[0].value;	
				}
			}
		}
	}
	
	if (document.getElementById('bulkstatus'))
	{
		for(var i=0;i<selectsubnetnumberarray.length;i++)
		{
			var status = document.getElementById('status_'+selectsubnetnumberarray[i]);
			var selectedvalue=document.getElementById('bulkstatus').value;
			status.options[selectedvalue].selected = selectedvalue;
		}
	}
	
	if (document.getElementById('bulkname'))
	{
		var answer = confirm("Do you want to add subnet's number after the name ?")
		if (answer)
		{
			for(var i=0;i<selectsubnetnumberarray.length;i++)
			{
				var name = document.getElementById('name_'+selectsubnetnumberarray[i]);
				name.value = document.getElementById('bulkname').value + "_" + selectsubnetnumberarray[i];
			}
		}
		else
		{
			for(var i=0;i<selectsubnetnumberarray.length;i++)
			{
				var name = document.getElementById('name_'+selectsubnetnumberarray[i]);
				name.value = document.getElementById('bulkname').value ;
			}
		}
	}
	
	if (document.getElementById('bulkdescription'))
	{
		for(var i=0;i<selectsubnetnumberarray.length;i++)
		{
			var description = document.getElementById('description_'+selectsubnetnumberarray[i]);
			description.value = document.getElementById('bulkdescription').value ;
		}
	}
	
	var selectcategory = document.getElementById('selectcategory').value;
}

function deleteOption(selectObject,optionRank)
{
    if (selectObject.options.length!=0) { selectObject.options[optionRank]=null }
}

function removeselectedoption(name,name2)
{
	var nameselect = document.getElementById(name);
	var namearrayselect = document.getElementById(name2);
	if (nameselect.selectedIndex!=-1)
	{
		var answer = confirm("Are you sure you wish to delete ?");
		if (answer)
		{
			deleteOption(nameselect,nameselect.selectedIndex);
			if (nameselect.length == 0)
			{
				namearrayselect.value="";
			}
			else
			{
				for (i=0;i < nameselect.length;i++)
				{
					if (i=="0")
					{
						namearrayselect.value=nameselect.options[i].value;
					}
					else
					{
						namearrayselect.value=namearrayselect.value + ";" + nameselect.options[i].value;		
					}
				}
			}
		}
	}
	else
	{
		alert("Please select an item to remove.");
	}
}

function selectAll(selectBox,selectAll)
{
	if (typeof selectBox == "string")
	{
		selectBox = document.getElementById(selectBox);
	}
	if (selectBox.type == "select-multiple")
	{
		for (var i = 0; i < selectBox.options.length; i++)
		{
			selectBox.options[i].selected = selectAll;
		}
	}
}

function checkAllFields(ref)
{
var chkAll = document.getElementById('checkAll');
var checks = document.getElementsByName('delAnn[]');
var removeButton = document.getElementById('removeChecked');
var boxLength = checks.length;
var allChecked = false;
var totalChecked = 0;

	if ( ref == 1 )
	{
		if ( chkAll.checked == true )
		{
			for ( i=0; i < boxLength; i++ )
			checks[i].checked = true;
		}
		else
		{
			for ( i=0; i < boxLength; i++ )
			checks[i].checked = false;
		}
	}
	else
	{
		for ( i=0; i < boxLength; i++ )
		{
			if ( checks[i].checked == true )
			{
			allChecked = true;
			continue;
			}
			else
			{
			allChecked = false;
			break;
			}
		}
		if ( allChecked == true )
		chkAll.checked = true;
		else
		chkAll.checked = false;
	}
	for ( j=0; j < boxLength; j++ )
	{
		if ( checks[j].checked == true )
		totalChecked++;
	}
	
	if (totalChecked != 0)
	{
		removeButton.disabled = false;
	}
	else
	{
		removeButton.disabled = true;
	}
	
	removeButton.value = "Delete ["+totalChecked+"] Selected";
}
