/*
	Utils Javascript
	KanWel!
	26-06-2008 i-Aspect B.V.
	door: Rutger Laurman

*/
/* meeschalende textarea - van jroller.com */
var ResizingTextArea = Class.create();

ResizingTextArea.prototype = {
   defaultRows: 1,
   initialize: function(field){
      this.defaultRows = Math.max(field.rows, 1);
      this.resizeNeeded = this.resizeNeeded.bindAsEventListener(this);
      Event.observe(field, "click", this.resizeNeeded);
      Event.observe(field, "keyup", this.resizeNeeded);
   },
   resizeNeeded: function(event) {
      var t = Event.element(event);
      var lines = t.value.split('\n');
      var newRows = lines.length + 1;
      var oldRows = t.rows;
      for (var i = 0; i < lines.length; i++){
         var line = lines[i];
         if (line.length >= t.cols) newRows += Math.floor(line.length / t.cols);
      }
      if (newRows > t.rows) t.rows = newRows;
      if (newRows < t.rows) t.rows = Math.max(this.defaultRows, newRows);
   }
   
}

function subscribeToNewsletter(){
   var email = $('emailadres').value;
   var target = $('response');
   var targetinline = $('inlineresponse');

   if(email){
      if (!validateerEmail(email)) {
         showNewsletterMsg('Het email adres is ongeldig!');
         return false;
      }
    
      var opt = { 
         method: 'post',
         parameters: 'email='+email,
         onSuccess: function(t) {
            targetinline.hide();
            target.update(t.responseText+' <br /><br /><br /><a href="' + IAF_ROOT_URI + 'nieuwsbrief">Vernieuw de pagina &raquo;</a>');
            $('newsletterform').addClassName('disableform');
         },
         on404: function(t) {
           alert('Error 404: location "' + t.statusText + '" was not found.');
         },
         onFailure: function(t) {
           alert('Error ' + t.status + ' -- ' + t.statusText);
         }
      }
      var ajax_url = IAF_ROOT_URI + 'nieuwsbrief/members/subscribe';
      new Ajax.Request(ajax_url, opt);
   } else {
      showNewsletterMsg('Er is geen emailadres ingevuld.');
      return false;
   }   
   return false;
}

var timerid;
function showNewsletterMsg(msg){
   var target = $('inlineresponse');
   target.addClassName('active');
   if(target.visible()){
     window.clearTimeout(timerid);    

   } else {
      target.show();
   }
   target.update(msg);
   timerid= Element.hide.delay(5, target);
   Element.removeClassName.delay(5, 'active');

}


function validateerEmail(email){
   if(email.length <= 0)
      return false;

   var splitted = email.match("^(.+)@(.+)$");
   if(splitted == null) return false;
   if(splitted[1] != null ){
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
   }

   if(splitted[2] != null) {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null){
         var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
         if(splitted[2].match(regexp_ip) == null) return false;
      }
      return true;
   }
   return false;
}

