// Form
// ---------------------------------------------
function Form(isim){
   var mform = {

      // Cagir
      cagir : function(isim){
         mform.form = document.forms[isim];
      },

      // Alan
      alan : function(isim){
         var alan = {
            cagir : function(isim){
               alan.input = mform.form.elements[isim];
            }
         }
         if(isim) alan.cagir(isim);
         return alan;
      },

      // Filtre
      filtre : function(e){
         if(typeof(e) != 'object') return false;
         var t = (e.witch) ? e.witch : e.keyCode;
         if(t >= 8 && t <= 40 && t != 13 && t != 32) return true;
      },

      // Maske
      maske : function(){
         var maske = {
            sayi : function(){
               var alan;
               var arg = maske.sayi.arguments;
               for(i=0; i<arg.length; i++){
                  alan  = mform.alan(arg[i]);
                  if(alan.input.value == 0) alan.input.value = '';
                  else alan.input.value = sayi(alan.input.value);
                  alan.input.onkeyup = alan.input.onblur = sayi;
               }

               function sayi(e){
                  if(typeof(e) == 'undefined') e = window.event;
                  if(mform.filtre(e)) return;

                  var s = typeof(e) == 'object' ? this.value : e;
                  var a, b, c, x, i;

                  s = s.split(',');
                  c = '';
                  x = 0;
                  a = s[0].split('');

                  for(i=11; i>0;){
                     i--;
                     if(/[^0-9]/.test(a[i])) continue;
                     if(i == 0 && /^0/.test(a[i])){ c='0'; continue; }
                     if(x != 0 && (x%3) === 0) c = '.'+c;
                     x++;
                     c = a[i]+c;
                  }

                  if(typeof(s[1]) != 'undefined'){
                     c += ',';
                     b = s[1].split('');
                     for(i=0; i<maske.sayi.ondalik; i++){
                        if(/[^0-9]/.test(b[i])) continue;
                        c += b[i];
                     }
                  }

                  if(typeof(e) == 'object') this.value = c;
                  else return c;
               }
            },
            telefon : function(){
               var alan;
               var arg = maske.telefon.arguments;
               for(i=0; i<arg.length; i++){
                  alan = mform.alan(arg[i]);
                  alan.input.value = telefon(alan.input.value);
                  alan.input.onkeyup = alan.input.onblur = telefon;
               }

               function telefon(e){
                  if(typeof(e) == 'undefined') e = window.event;
                  if(mform.filtre(e)) return;

                  var s = typeof(e) == 'object' ? this.value : e;
                  var d = '';

                  s = s.replace(/[^0-9]/g,'');
                  s = s.replace(/^0*/,'');
                  s = s.split('');

                  for(var i=0; i<s.length; i++){
                     if(i > 9) break;
                     else if(i == 2) d += s[i]+' ';
                     else if(i == 5) d += s[i]+' ';
                     else d += s[i];
                  }

                  if(d.length > 0) d = '0'+d;

                  if(typeof(e) == 'object') this.value = d;
                  else return d;
               }
            },
            metin : function(){
               var alan;
               var arg = maske.metin.arguments;
               for(i=0; i<arg.length; i++){
                  alan = mform.alan(arg[i]);
                  alan.input.value = metin(alan.input.value);
                  alan.input.onkeyup = alan.input.onblur = metin;
               }

               function metin(e){
                  if(typeof(e) == 'undefined') e = window.event;
                  if(mform.filtre(e)) return;

                  var s = typeof(e) == 'object' ? this.value : e;
                  var d = '';

                  s = s.replace(/Ý/g,'i');
                  s = s.replace(/[^a-zA-Z0-9\-\_]/g,'');
                  d = s;
                  if(d.length > 0) d = d.toLowerCase();

                  if(typeof(e) == 'object') this.value = d;
                  else return d;
               }
            },
            eposta : function(){
               var alan;
               var arg = maske.eposta.arguments;
               for(i=0; i<arg.length; i++){
                  alan = mform.alan(arg[i]);
                  alan.input.value = eposta(alan.input.value);
                  alan.input.onkeyup = alan.input.onblur = eposta;
               }

               function eposta(e){
                  if(typeof(e) == 'undefined') e = window.event;
                  if(mform.filtre(e)) return;

                  var s = typeof(e) == 'object' ? this.value : e;
                  var d = '';

                  s = s.replace(/Ý/g,'i');
                  s = s.replace(/[^a-zA-Z0-9@\.\-\_]/g,'');
                  d = s;
                  if(d.length > 0) d = d.toLowerCase();

                  if(typeof(e) == 'object') this.value = d;
                  else return d;
               }
            },
            web : function(){
               var alan;
               var arg = maske.web.arguments;
               for(i=0; i<arg.length; i++){
                  alan = mform.alan(arg[i]);
                  alan.input.value = web(alan.input.value);
                  alan.input.onkeyup = alan.input.onblur = web;
               }

               function web(e){
                  if(typeof(e) == 'undefined') e = window.event;
                  if(mform.filtre(e)) return;

                  var s = typeof(e) == 'object' ? this.value : e;
                  var d = '';

                  s = s.replace(/Ý/g,'i');
                  s = s.replace(/[^a-zA-Z0-9\.\-\_:\/]/g,'');
                  s = s.replace(/^(http\:\/\/)*/,'');
                  d = s;
                  if(d.length > 0) d = 'http://'+d.toLowerCase();

                  if(typeof(e) == 'object'){
                     this.value = d;
                  }
                  else return d;
               }
            }
         }
         maske.sayi.ondalik = 2;
         return maske;
      }
   }

   if(isim) mform.cagir(isim);
   return mform;
}