function toggle(indexNum,element,class1, class2) {
  	request=null;
		try {
			this.request = new XMLHttpRequest();
		} catch (e) {    
			try {
				this.request = new ActiveXObject("Msxml2.XMLHTTP");   
			} catch (e) {  
				try {
					this.request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
				this.request = null;
			}
		}
	}				   
	if (this.request == null) return(alert("Error creating request object!"));  


	try
  {
   if(element.className == class1)
   {
    request.open("GET","add.php?indexNum="+indexNum+"&add=0",true); 
    element.className = class2;
   }
   else
   {                                                       
	    request.open("GET","add.php?indexNum="+indexNum+"&add=1",true); 
    element.className = class1;
   }
  }

  catch(e)
  {
     window.alert(e.description);
   }
	request.send(null);
}


function get(v) {
	var allcookies=document.cookie;
	var pos=allcookies.indexOf(v+"=");
	if (pos != -1) {
		var start = pos + 8;
		var end = allcookies.indexOf(";",start);
		if (end == -1) end=allcookies.length;
		var value = allcookies.substring(start,end);
		value=decodeURIComponent(value);
		if (value != document.lastModified)
			alert("This document has changed since you were last here.");  
		return value;
	}               
	return null;
}               
function set(v,val) {                                            
	var nextyear=new Date();
	nextyear.setFullYear(nextyear.getFullYear()+2);
	document.cookie=v+"="+encodeURIComponent(val)+";expires="+nextyear.toGMTString()+document.cookie;  //assuming the first gets returned first all the time  
	//populate();
}
function populate() {
	var allcookies=document.cookie;
	var a=allcookies.split(";");
	for (var i=0; i<a.length; i++){
		//alert("a="+a[i]);  
		var cookie=a[i].split('=');
		var name=cookie[0];
		if (name.indexOf(' ')==0) name=name.substring(1);   
		var value=decodeURIComponent(cookie[1]);
		//
		//alert("("+name+"="+value+")");
		setFieldTo(name,value);          
	} 
	setMailTo();
	//	alert("cookie:"+a[i]);
		//a[i] = a[i].split(":");
}
function id(i) { return document.getElementById(i);}    
function replaceText(el, text) {
  if (el != null) {
    clearText(el);
    var newNode = document.createTextNode(text);
    el.appendChild(newNode);
  }
}

function clearText(el) {
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        el.removeChild(childNode);
      }
    }
  }
}

function getText(el) {
  var text = "";
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        if (childNode.nodeValue != null) {
          text = text + childNode.nodeValue;
        }
      }
    }
  }
  return text;
}       
function setMailTo() {
	var p=id("mailto"); 
	var to=getText(id("toEmail")); 
	var cc=getText(id("MyEmail"));
	var text=id("mytext");
	var lit=text.textContent;
	var newstr=lit.replace(/\n/g,"%0A");	
	var subject="Peering Request from "+getText(id("CompanyName"))+"("+getText(id("myip"))+",AS"+getText(id("myASN"))+","+getText(id("myASmacro"))+") at "+getText(id("myIX"))+" in "+getText(id("myCITY"))+", "+getText(id("myCOUNTRY"));
	p.href="mailto:"+to+"?subject="+subject+"&cc="+cc+"&body="+newstr;
}   
function setField(name) {
   answer=prompt("Set "+name);
   if (answer && answer!="") {
		replaceText(id(name),answer);  
   		set(name,answer);
		if (name=="CompanyName") {setFieldTo("CompanyName2",answer);setFieldTo("MyCompanyName",answer);}
		if (name=="myASN") {setFieldTo("ASN",answer);setFieldTo("ourASN",answer);}
		if (name=="myIX") {setFieldTo("IXNAME",answer);setFieldTo("IXP",answer);setFieldTo("IXLocation",answer);}  
		//if (name=="NUMBER") {setFieldTo("yourASN",answer);setFieldTo("IXP",answer);} 
		if (name=="myASmacro") {setFieldTo("ourASMacro",answer);}		
		if (name=="myip") {setFieldTo("ourIP",answer);} 
		if (name=="YOURASN") {setFieldTo("yourASN",answer);} 
		if (name=="toEmail") {                                 
			setFieldTo("mailto","Click to send peering request to "+answer);
            setMailTo();
		}
	}
}
function setFieldTo(name,value) { 
	//alert("Setting <"+name+"> to <"+value+">");
   replaceText(id(name),value);
 	set(name,value);
}
