
if(window.YUI) {
Y = YUI().use("anim","event","node", function(Y) {

//////////////////////////////////////////////////////
// wform
//////////////////////////////////////////////////////

wform = function(form) {
   
   // onsubmit - notice radio buttons can be preselected, so we don't check for those
   Y.on('submit',function(e){
      e.halt();
      // remove required
      form.queryAll('.required').removeClass('required');
      // mark missing input
      form.queryAll('input').each(function(n){
         if(n.get('type') != 'radio' && n.get('title') && n.get('title').indexOf('*')>-1 &&
            ((n.get('type') == 'checkbox' && !n.get('checked')) || (n.get('value') == '' || n.get('value') == n.get('title')))) {
               n.addClass('required');
         }
         if(!n.hasClass('required') && n.getAttribute('email') && !n.get('value').match(/[a-zæøå0-9\.\-\_]*@[a-zæøå0-9\.\-\_]+\.[a-zA-Z]{2,4}/i)) {
            n.addClass('required');
         }
      });
      // mark missing select
      form.queryAll('select').each(function(n){
         value = n.get('options').item(n.get('selectedIndex')).get('value');
         if(n.get('title') && n.get('title').indexOf('*')>-1 && (value == '' || value == n.get('title'))) {
            n.addClass('required');
         }
      });
      // mark missing textareas
      form.queryAll('textarea').each(function(n){
         if(n.get('title') && n.get('title').indexOf('*')>-1 && (n.get('value') == '' || n.get('value') == n.get('title'))) {
            n.addClass('required');
         }
      });
      // error message
      var req = msg = email = '';
      form.queryAll('.required').each(function(n){
         email = n.getAttribute('email') ? ' (e-mail)':'';
         msg += n.get('title').replace('*','')+email+'\n';
      });
      // alert or submit
      if(msg != '') {
         req = 'Required fields';
         if(typeof wlanguage != 'undefined' && wlanguage == 'da')
            req = 'Påkrævede felter';
         //alert(req+':\n'+msg);
      // delete inline labels and submit
      } else {
         form.queryAll('input').each(function(n){
            if(n.get('value') == n.get('title')) {
               n.set('value','');
            }
         });
         form.queryAll('textarea').each(function(n){
            if(n.get('value') == n.get('title')) {
               n.set('value','');
            }
         });
         form.queryAll('select').each(function(n){
            value = this.get('options').item(this.get('selectedIndex')).get('value');
            if(value == this.get('title')) {
               value = '';
            }
         });
         form.submit();
      }
      
   },form);
   
   _focus = function(e) {
      this.removeClass('required');
      this.replaceClass('grey','black');
      if(this.get('value') == this.get('title')) this.set('value','');
      if(this.get('tagName') == 'TEXTAREA') {
         value = this.get('innerHTML');
         if(value == this.get('title')) this.set('innerHTML','');
      }
   }
   
   _blur = function(e) {
      this.replaceClass('black','grey');
      if(this.get('tagName') == 'INPUT' || this.get('tagName') == 'TEXTAREA') {
         if(form.hasClass('inlineform') && this.get('value') == '' && this.get('title')) this.set('value',this.get('title'));
         if(this.get('value') != '' && this.get('value') != this.get('title')) this.replaceClass('grey','black');
      } else if(this.get('tagName') == 'SELECT') {
         if(form.hasClass('inlineform'))value = this.get('options').item(this.get('selectedIndex')).get('value');
         if(value != '' && value != this.get('title')) {
            this.replaceClass('grey','black');
         }
      }
   }
   
   // inline labels
   if(form.hasClass('inlineform')) {
      form.queryAll('input').each(function(n){
         if(n.get('value') == '' && n.get('title')) {
            n.set('value',n.get('title'));
         }
         if(n.get('value') == n.get('title')) {
            this.replaceClass('black','grey');
         } else {
            this.replaceClass('grey','black');
         }
         Y.on('focus',_focus,n);
         Y.on('blur',_blur,n);
      });
      form.queryAll('textarea').each(function(n){
         if(n.get('value') == '' && n.get('title')) {
            n.set('value',n.get('title'));
         }
         if(n.get('value') == n.get('title')) {
            this.replaceClass('black','grey');
         } else {
            this.replaceClass('grey','black');
         }
         Y.on('focus',_focus,n);
         Y.on('blur',_blur,n);
      });
      form.queryAll('select').each(function(n){
         this.replaceClass('black','grey');
         value = this.get('options').item(this.get('selectedIndex')).get('value');
         if(value != '' && value != this.get('title')) {
            this.replaceClass('grey','black');
         }
         Y.on('focus',_focus,n);
         Y.on('blur',_blur,n);
      });
   
   // wform labels
   } else {
      form.queryAll('input').each(function(n){
         Y.on('focus',_focus,n);
         Y.on('blur',_blur,n);
      });
      form.queryAll('textarea').each(function(n){
         Y.on('focus',_focus,n);
         Y.on('blur',_blur,n);
      });
      form.queryAll('select').each(function(n){
         this.replaceClass('black','grey');
         Y.on('focus',_focus,n);
         Y.on('blur',_blur,n);
      });
   }
}

//////////////////////////////////////////////////////
// ondomready
//////////////////////////////////////////////////////

Y.on("domready", function(){
   
   // wform
   Y.all('.wform').each(function(n){
      wform(n);
   });
});

});
}
