var ML;
if(ML == undefined) {
  ML = {};
  
  ML.gId = function(id) {
    return document.getElementById(id);
  };

  ML.gName = function (name) {
	return document.getElementsByName(name);
  }


  ML.hasClassName = function(element, className) {
    var elementClassName = element.className;

    return (elementClassName.length > 0 && (elementClassName == className ||
      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
  };

  ML.addClassName = function(element, className) {
    if (!ML.hasClassName(element, className))
      element.className += (element.className ? ' ' : '') + className;
    return element;
  };

  ML.removeClassName = function(element, className) {
    var newClass = ML.strip(element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' '));
    element.className = newClass;
    return element;
  };

  ML.strip = function(string) {
    return string.replace(/^\s+/, '').replace(/\s+$/, '');
  };
}

ML.feedback = function(url) {
  this.empty_url = "#";
  this.feedback_url = url;  
  
  this.overlay_html = '<div id="ml_overlay" style="display:none" onclick="ML.hide();">' +
                        '<div id="ml_container">' +
                          '<a href="#" onclick="ML.hide();return false" id="ml_close"></a>' +
                          '<iframe src="' + this.empty_url + '" id="ml_iframe" allowTransparency="true" scrolling="no" frameborder="0" class="loading"></iframe>' +
                        '</div>' +
                        '<div id="ml_screen"></div>' +
                      '</div>';
                      
  document.write(this.overlay_html);
  this.gId('ml_iframe').setAttribute("src", this.empty_url);
};

ML.set_position = function() {
  this.scroll_top = document.documentElement.scrollTop || document.body.scrollTop;
  this.scroll_height = document.body.scrollHeight > document.documentElement.scrollHeight ? document.body.scrollHeight : document.documentElement.scrollHeight;
  if (this.scroll_height < document.documentElement.clientHeight)
  {
	  this.scroll_height = document.documentElement.clientHeight;
  }
  this.client_height = window.innerHeight || document.documentElement.clientHeight;
  this.gId('ml_screen').style.height = this.scroll_height+"px";
  this.gId('ml_container').style.top = this.scroll_top+(this.client_height*0.1)+"px";
  if (this.scroll_top+(this.client_height*0.1) == 0)
  {
	this.gId('ml_container').style.position = 'absolute';
	this.gId('ml_container').style.margin = '0px';
	this.gId('ml_container').style.top = '20px';
	var screenW = 800;
	if (parseInt(navigator.appVersion)>3)
	{
		screenW = screen.width;
	}
	else if (navigator.appName == "Netscape" && parseInt(navigator.appVersion)==3 && navigator.javaEnabled()) 
	{
		var jToolkit = java.awt.Toolkit.getDefaultToolkit();
		var jScreenSize = jToolkit.getScreenSize();
		screenW = jScreenSize.width;
	}
	this.gId('ml_container').style.left = (screenW / 2 - 260) + 'px';
  }

};

ML.show = function() {
  var url = this.feedback_url;
  
  var form_groups = ML.gName('ml_groups[]');
  if (!form_groups.length)//for old code
 	  form_groups = ML.gName('groups[]');
 
  if (form_groups.length) //if request is from HTML form
  {
	  var groups = [];
	  var name = '';
	  var extra = '';

	  for (var i = 0; i < form_groups.length; i++)
		  if (form_groups[i].checked || (form_groups[i].type == "hidden"))
			groups.push(form_groups[i].value);
		  
	  if (ML.gId('ml_signup_name')){
		  name = encodeURIComponent(ML.gId('ml_signup_name').value);
		  ML.gId('ml_signup_name').value = '';
	  }

	  if (ML.gId('ml_signup_extra')){
		  extra = encodeURIComponent(ML.gId('ml_signup_extra').value);
		  ML.gId('ml_signup_extra').value = '';
	  }

	  url += '/1/' + encodeURIComponent(ML.gId('ml_signup_email').value) + '/' + groups.join(',') + '/' + name + '/' + extra;

	  ML.gId('ml_signup_email').value = '';
  }

  this.gId('ml_iframe').setAttribute("src", url);

  if (this.gId('ml_iframe').addEventListener) {
    this.gId('ml_iframe').addEventListener("load", ML.loaded, false);
  } else if (this.gId('ml_iframe').attachEvent) {
    this.gId('ml_iframe').attachEvent("onload", ML.loaded);
  }
  this.set_position();
  
  ML.addClassName(document.getElementsByTagName('html')[0], 'feedback_tab_on');
  this.gId('ml_overlay').style.display = "block";
};
  
ML.hide = function() {
  if (ML.gId('ml_iframe').addEventListener) {
    ML.gId('ml_iframe').removeEventListener("load", ML.loaded, false);
  } else if (ML.gId('ml_iframe').attachEvent) {
    ML.gId('ml_iframe').detachEvent("onload", ML.loaded);
  }
  this.gId('ml_overlay').style.display = "none";
  this.gId('ml_iframe').setAttribute("src", this.empty_url);
  ML.gId('ml_iframe').className = "loading";

  ML.removeClassName(document.getElementsByTagName('html')[0], 'feedback_tab_on');
};
  
ML.loaded = function() {
  ML.gId('ml_iframe').className = "loaded";
};

function load()
{
	if (ML.gId('ml_subscribe'))
	{
		ML.gId('ml_subscribe').onclick = function()
		{ 
			ML.show(); 
			return false; 
		}
	}
	var names = ML.gName('ml_subscribe');
	if (names.length)
	{	
		for (var i = 0; i < names.length; i++)
		{
			names[i].onclick = function()
			{
				ML.show(); 
				return false; 
			}
		}
	}

	var css = document.createElement('link');
	css.setAttribute('rel', 'stylesheet');
	css.setAttribute('href', 'http://mailerlite.com/css/mailerlite.css');
	css.setAttribute('type', 'text/css');

	document.getElementsByTagName('head').item(0).appendChild(css);

}

addLoadEvent(load);

function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			if (oldonload)
			{
				oldonload();
			}
			func();
		}
	}
}


