I cant get this code to work. It's supposed to be a custom dialog box. When a certain event transpires, the div pops up with an animation like it's moving towards you from a distance. The div has a clickable link that is supposed to trigger the removal of the box when clicked.
It works fine for one iteration, but when I attempt to trigger it again the whole thing falls apart in a horrendous way. The console doesn't issue any warnings or errors, but the browser freezes then crashes.
Any help would be appreciated.
function modalBoxOpen(left, top, width, height, string, element){
var x = $('<div></div>').prependTo(element);
x.attr("id", "pop_up_div");
x.css("position", "absolute");
x.css("border-color", "black");
x.css("border-style", "solid");
x.css("background-color", "rgb(204, 204, 204)" );
x.css("padding", 0 + "%");
x.css("z-index", 10);
var y = $('<div>' + string + '</div>').prependTo(x);
y.attr("id", "inner_pop_up_div");
y.css("text-align", "center");
y.css("font-family", "arial");
y.css("position", "absolute");
y.css("margin", "1%");
y.css("width", "98%");
y.css("height", "93%"); y.css("background-color", "red");
var l = left + .5*width; 
var t = top + .5*height;
x.css("left", l + "px");
x.css("top", t + "px");
x.css("width", 2*(left + .5*width - l) + "px"); 
x.css("height", 2*(top + .5*height - t) + "px");
y.css("font-size", .0413*2*(left + .5*width - l) + "px");
$('<div style = "background-color: black; border-radius: 10px; padding                    
:   1%; margin-top: 1%; margin-left: 43%; margin-right: 43%">' +
'<a class = "link" id = "ok_button" href = "javascript:;"> OK </a>
</div>').appendTo(y);
okButtonClick = function(e){ 
  e.stopPropagation();     
  removeElement('pop_up_div');
  $(".input_cover").css("display", "none");
  bindHandlers();
  if ( $("#language_list_container").is(":visible") )
  {$("#language_clickable").click();}
  }
  $("#ok_button").bind("click", okButtonClick);
  var count = 0;
  timer = setInterval(open, 40);
  function open(){
  if ( count > 4 ) { 
     clearInterval(timer);
     bindHandlers();
     return;
   }
   l -= .1*width;
   t -= .1*height;
   x.css("left", l + "px");
   x.css("top", t + "px");
   x.css("width", 2*(left + .5*width - l) + "px"); 
   x.css("height", 2*(top + .5*height - t) + "px");
   x.css("border-radius", 2*(count+1) + "px");
   y.css("font-size", .0413*2*(left + .5*width - l) + "px");
   count++;
   }
   }
   function removeElement(id) {
   return          
   (elem=document.getElementById(id)).parentNode.removeChild(elem);
   }