  var unfocus=true;
  var str;
  var obj;

  function setCookie(name, value, expires, path, domain) {
   var exdate=new Date();exdate.setDate(exdate.getDate()+expires);
   var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + exdate.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "");
   document.cookie = curCookie;
  }
  function getCookie(name)
  {
   if (document.cookie.length>0)
   {
    start=document.cookie.indexOf(name + "=");
    if (start!=-1)
     { 
      start=start + name.length+1; 
      end=document.cookie.indexOf(";",start);
      if (end==-1) end=document.cookie.length;
      return unescape(document.cookie.substring(start,end));
     } 
    }
   return "";
  } 
  function Reload(){
   document.location='mycube-emcalc.php?';
  }
  function Calculate(){
   var v = document.getElementById('process').value;
   setCookie("autocollapse", "true", 0, "", "");
   if(v=="save"){
    var z = getCookie('input')+'()';
    var x = document.getElementById('equation').value;
	var w = "";
	if(document.getElementById('sweep')){
	 w = document.getElementById('sweep').value;
	}
    if(x==z){
	 document.getElementById('process').value='preview';
     document.getElementById('emcalcform').submit();
    }else{
     var plus = /\+/g;
	 var y = x.replace(plus, "&#43;");
	 setCookie("equation", y, 0, "", "");
	 setCookie("sweep", w, 0, "", "");
	 setCookie("module", "", 0, "", "");
	 setCookie("input", "", 0, "", "");
     setCookie("output", "command", 0, "", "");
     Reload();
	}
   }else{
    var z = getCookie('input')+'()';
    var x = document.getElementById('equation').value;
	var w = "";
	if(document.getElementById('sweep')){
	 w = document.getElementById('sweep').value;
	}
    if(x==z){
     document.getElementById('emcalcform').submit();
    }else{
	 var plus = /\+/g;
	 var y = x.replace(plus, "&#43;");
	 setCookie("equation", y, 0, "", "");
	 setCookie("sweep", w, 0, "", "");
	 setCookie("module", "", 0, "", "");
	 setCookie("input", "", 0, "", "");
	 setCookie("output_visualization", "", 0, "/", ".emagware.com");
	 setCookie("output", "command", 0, "", "");
     document.getElementById('emcalcform').submit();
    }
   } 
  }
  function Validate(x){
   var InvalidChars = "`\\~!@^&\"|%:=<>#$?'";
   var IsNumber=true;
   var Char;
   for(var i=0; i<x.value.length; i++){
    for(var j=0; j<18; j++){
	 if(x.value.charAt(i)==InvalidChars.charAt(j)){
	  x.value = x.value.substr(0, x.value.length-1)
	 }
    }
   }
  }
  function Clicked(x){
   var y = document.getElementById(x).name;
   return insertAtCursorPosition(obj, y);
  } 
  function Selected(x){
   var y = document.getElementById(x).value
   return insertAtCursorPosition(obj, y);
  } 
  
  function saveCursorPosition(obj){
   if (obj.createTextRange){
    obj.selection = document.selection.createRange().duplicate();
   }
   return true;
  }

  function insertAtCursorPosition(myTextArea, insert) {
   if (unfocus==true){
    alert('Select a text field for insertion.');
   }else{
    str = insert;
    if (myTextArea.createTextRange && myTextArea.selection){
     var objTxtRange = myTextArea.selection;
     objTxtRange2=objTxtRange.text;
     objTxtRange.text = (objTxtRange.text.charAt(objTxtRange.text.length - 1) == ' ') ? str + ' ' : str;
     myTextArea.selection = null;
    }else{
     myTextArea.value += str;
    }
    myTextArea.focus();
	saveCursorPosition(myTextArea);
    return true;
   }
  }
  
  function Clear(){
   setCookie("xmin", "", 0, "", "");
   setCookie("xmax", "", 0, "", "");
   setCookie("ymin", "", 0, "", "");
   setCookie("ymax", "", 0, "", "");
   setCookie("xsamples", "", 0, "", "");
   setCookie("ysamples", "", 0, "", "");
   setCookie("equation", "", 0, "", "");
   Reload();
  }
  function ClearAll(){
   setCookie("create", "", 0, "/", ".emagware.com");
   setCookie("module", "", 0, "", "");
   setCookie("input", "", 0, "", "");
   setCookie("output", "", 0, "", "");
   setCookie("plot", "", 0, "/", ".emagware.com");
   setCookie("equation", "", 0, "", "");
   setCookie("sweep", "", 0, "", "");
   Reload();
  }
  function Reset(){
   setCookie("xmin", "", 0, "", "");
   setCookie("xmax", "", 0, "", "");
   setCookie("ymin", "", 0, "", "");
   setCookie("ymax", "", 0, "", "");
   setCookie("xsamples", "", 0, "", "");
   setCookie("ysamples", "", 0, "", "");
   setCookie("screen", "", 0, "/", ".emagware.com");
   setCookie("create", "", 0, "/", ".emagware.com");
   setCookie("module", "", 0, "", "");
   setCookie("input", "", 0, "", "");
   setCookie("output", "", 0, "", "");
   setCookie("plot", "", 0, "/", ".emagware.com");
   setCookie("x_custom", "", 0, "", "");
   setCookie("y_custom", "", 0, "", "");
   setCookie("equation", "", 0, "", "");
   setCookie("memory_count", "", 0, "/", ".emagware.com");
   setCookie("memory_names", "", 0, "/", ".emagware.com");
   Reload();
  }
  function MaximizeGraph(){
   setCookie("graph_max", "true", 0, "", "");
   setCookie("xsize", 1024, 0, "", "");
   setCookie("ysize", 768, 0, "", "");
   window.open("emcalc_graph.php");
   setCookie("graph_max", "", 0, "", "");
   setCookie("xsize", "", 0, "", "");
   setCookie("ysize", "", 0, "", "");
  }
  function MaximizeSmith(){
   setCookie("graph_max", "true", 0, "", "");
   setCookie("xsize", 1024, 0, "", "");
   setCookie("ysize", 768, 0, "", "");
   window.open("emcalc_smith.php");
   setCookie("graph_max", "", 0, "", "");
   setCookie("xsize", "", 0, "", "");
   setCookie("ysize", "", 0, "", "");
  }
  function ColorOpen(){
   document.getElementById('colors').style.visibility = "visible";
  }
  function CloseColors(){
   document.getElementById('colors').style.visibility = "hidden";
  }
  function toHex(v){
   v=Math.round(Math.min(Math.max(0,v),255));
   return("0123456789ABCDEF".charAt((v-v%16)/16)+"0123456789ABCDEF".charAt(v%16));
  }
  function Color(r,g,b,id){
   var x = (toHex(r)+toHex(g)+toHex(b));
   document.getElementById('Color'+id).style.backgroundColor=x;
  }
  function Stop(id){
   document.getElementById('Slider'+id).style.visibility='hidden';
   document.getElementById('Display'+id).style.background='';
   document.getElementById('Edit'+id).style.visibility='visible';
  }
  function Edit(id){
   document.getElementById('Edit'+id).style.visibility='hidden';
   document.getElementById('Slider'+id).style.visibility='visible';
   document.getElementById('Display'+id).style.background='url("images/color.png")';
  }
  function ColorUpdate(id){
   var x = "";
   for(var i=1; i<=id; i++){
    x+=document.getElementById('Color'+i).style.backgroundColor+",";
   }
   setCookie("functioncolors", x, 0, "", "");
   Reload();
  }
  function SaveMemory(z){
   if(document.getElementById(z).disabled==true){
    document.getElementById(z).disabled=false;
	var x = "rename-"+z;
	document.getElementById(x).value="Save";
   }else{
    var x = document.getElementById(z).value;
    setCookie(x, getCookie(z), 0, "/", ".emagware.com");
    setCookie(z, x, 0, "/", ".emagware.com");
	var y;
    if(getCookie("memory_names")==""){
     y="0";
    }else{
     y=getCookie("memory_names");
    }
    var w = y.replace(z,x);
    setCookie("memory_names", w, 0, "/", ".emagware.com");
    Reload();
   }
  }
  function EditMemory(y,z,v){
   setCookie("module", y, 0, "", "");
   setCookie("input", z, 0, "", "");
   setCookie("output", z, 0, "", "");
   setCookie("create", v, 0, "/", ".emagware.com");
  }
  function DeleteMemory(z){
   var x = getCookie('memory_count');
   x--;
   var y;
   if(getCookie("memory_names")==""){
    y="0";
   }else{
    y=getCookie("memory_names");
   }
   var name = z+",";
   var w = y.replace(name,"");
   setCookie("memory_count", x, 0, "/", ".emagware.com");
   setCookie("memory_names", w, 0, "/", ".emagware.com");
   setCookie(z, "", 0, "/", ".emagware.com");
   parent.document.location='mycube-emcalc.php?';
  }
  function ClearMemory(){
   setCookie("memory_count", "", 0, "/", ".emagware.com");
   setCookie("memory_names", "", 0, "/", ".emagware.com");
   Reload();
  }
  function ChangeModule(){
   var y = document.getElementById('module').value;
   setCookie("module", y, 0, "", "");
   setCookie("input", "", 0, "", "");
   setCookie("output", "", 0, "", "");
   setCookie("plot", "", 0, "/", ".emagware.com");
   Reload();
  }
  function ChangeFunc(x){
   setCookie("create", "", 0, "/", ".emagware.com");
   setCookie("output_visualization", 0, 0, "/", ".emagware.com");
   setCookie("input", x, 0, "", "");
   setCookie("output", x, 0, "", "");
   setCookie("plot", "", 0, "/", ".emagware.com");
   Reload();
  }
  function ComingSoon(){
   var y = getCookie("input");
   setCookie("input", "coming_soon", 0, "", "");
   setCookie("output", "coming_soon", 0, "", "");
   document.location='mycube-emcalc.php?input='+y;
  }
  function SaveImage(){
   document.frames.graph.document.execCommand('SaveAs');
  }
  function Print(){
   document.frames.graph.document.execCommand('Print');
  }
  function PrecisionSelect(){
   var x = document.getElementById('precision').value;
   setCookie("precision", x, 0, "", "");
   window.location.reload(true);
  }
  function ToleranceSelect(){
   var x = document.getElementById('tolerance').value;
   setCookie("tolerance", x, 0, "", "");
   window.location.reload(true);
  }
  function SaveCommand(){
   var z = document.getElementById('equation').value;
   var y = document.getElementById('save_cmd').value;
   var x = document.getElementById('memory_count').value;
   x++;
   var name = getCookie('memory_names')+y+",";
   setCookie("memory_count", x, 0, "/", ".emagware.com");
   setCookie("memory_names", name, 0, "/", ".emagware.com");
   setCookie(y, "equation,"+z, 0, "/", ".emagware.com");
   Reload();
  }
  function QuickCreate(x){
   if(x=="real_number"){
    setCookie("module", "buttons_math", 0, "", "");
    setCookie("input", "math_create", 0, "", "");
    setCookie("create", "real_number", 0, "/", ".emagware.com");
   }else{
    setCookie("module", "buttons_array", 0, "", "");
    setCookie("input", "array_create", 0, "", "");
    setCookie("create", "real_array", 0, "/", ".emagware.com");
   }
   Reload();
  }
  function Operations(){
   var x = document.getElementById('operations').value;
   if(x=="exponents"){
    document.getElementById('exponents').style.display="";
    document.getElementById('trig').style.display="none";
	document.getElementById('special').style.display="none";
	document.getElementById('constants').style.display="none";
	document.getElementById('conversions').style.display="none";
   }else if(x=="trig"){
    document.getElementById('exponents').style.display="none";
    document.getElementById('trig').style.display="";
	document.getElementById('special').style.display="none";
	document.getElementById('constants').style.display="none";
	document.getElementById('conversions').style.display="none";
   }else if(x=="constants"){
    document.getElementById('exponents').style.display="none";
    document.getElementById('trig').style.display="none";
	document.getElementById('special').style.display="none";
	document.getElementById('constants').style.display="";
	document.getElementById('conversions').style.display="none";
   }else if(x=="conversions"){
    document.getElementById('exponents').style.display="none";
    document.getElementById('trig').style.display="none";
	document.getElementById('special').style.display="none";
	document.getElementById('constants').style.display="none";
	document.getElementById('conversions').style.display="";
   }else{
    document.getElementById('exponents').style.display="none";
    document.getElementById('trig').style.display="none";
	document.getElementById('special').style.display="";
	document.getElementById('constants').style.display="none";
	document.getElementById('conversions').style.display="none";
   }
  }
  function DataList(x){
   setCookie("output_visualization", x, 0, "/", ".emagware.com");
   location.reload(true);
  }
 function SweepSelect(){
  var x = document.getElementById('sweep').value;
  var y = getCookie('create');
  if(x=="none"){
   SweepVars();
   document.getElementById('start').disabled = true;
   document.getElementById('start').style.background = "#CCCCCC";
   document.getElementById('stop').disabled = true;
   document.getElementById('stop').style.background = "#CCCCCC";
   document.getElementById('dx').disabled = true;
   document.getElementById('dx').style.background = "#CCCCCC";
  }else{
   SweepVars();
   document.getElementById('start').disabled = false;
   document.getElementById('start').style.background = "#ffffff";
   document.getElementById('stop').disabled = false;
   document.getElementById('stop').style.background = "#ffffff";
   document.getElementById('dx').disabled = false;
   document.getElementById('dx').style.background = "#ffffff";
   document.getElementById(x).disabled = true;
   document.getElementById(x).style.background = "#CCCCCC";
   document.getElementById(y+'_label').disabled = true;
   document.getElementById(y+'_label').style.background = "#CCCCCC";
  }
 }
 function Collapse(){
  document.getElementById('collapse1').style.display = "none";
  document.getElementById('collapse2').style.display = "none";
  document.getElementById('collapse3').style.display = "none";
  document.getElementById('collapse4').style.display = "none";
  document.getElementById('collapse5').style.display = "";
  document.getElementById('collapse6').style.display = "";
  document.getElementById('collapse7').style.display = "none";
  document.getElementById('collapse8').style.display = "none";
 }
 function Expand(){
  document.getElementById('collapse1').style.display = "";
  document.getElementById('collapse2').style.display = "";
  document.getElementById('collapse3').style.display = "";
  document.getElementById('collapse4').style.display = "";
  document.getElementById('collapse5').style.display = "none";
  document.getElementById('collapse6').style.display = "none";
  document.getElementById('collapse7').style.display = "";
  document.getElementById('collapse8').style.display = "";
 }
