﻿/*
    Form Validate fonksiyonu calisma prensipleri
    
    Form icindeki tum kontroller taranir ve komote ile ilgili olanlar ayrilarak 
    alltaki property ler kontrol edilerek durumlarina karar verilir
    
    chk_req     : Controle değer girilmesi zorunlu
    chk_email   : Email kontrolleri için kullanılır

*/
var formobj=document.forms[0];
formobj.onsubmit=formValidator;
var lblmessage;

function formValidator()
{
   var _ret=true;
   
   if(!formobj) return false;
   lblmessage=document.getElementById('kmtmessage');
   if(lblmessage) lblmessage.innerHTML='';
   
   for(var i=0;i<formobj.elements.length;i++)
   {
      var ele=formobj.elements[i];
      var chk_req=ele.getAttribute('chk_req');
      var chk_email=ele.getAttribute('chk_email');
      var newadded=false;
      //Required Field
      if((chk_req))
      {
        if(ele.value=='')
        {
             AddElementMsg(ele,'gRequiredField');
             _ret=false;
             newadded=true;
        }
        else
            RemoveElementMsg(ele);            
      }
      
      //Check Email
      if(chk_email)
      {
        if(validateEmailv2(ele.value)==false)
        {
            AddElementMsg(ele,'gEmailIncorrect');
            _ret=false;
            newadded=true;
        }
        else if(newadded==false)
            RemoveElementMsg(ele);
      }
   }
   return _ret;   
}

function validateEmailv2(email)
{
    if(email.length <= 0)
	{
	  return true;
	}
    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;
      }// if
      return true;
    }
return false;
}

function AddElementMsg(ele,msgcode)
{
   var _parent=ele.parentNode;
   var oTempE = document.getElementById(ele.name+'msg');
   if(!oTempE)
   {
       oTempE = document.createElement( 'SPAN' );
       oTempE.id=ele.name+'msg';
       oTempE.style.fontSize='10px';
       oTempE.style.color='red';
       oTempE.innerHTML='*';
       _parent.appendChild(oTempE);
   }
   if(lblmessage)   
       lblmessage.innerHTML=lblmessage.innerHTML+ele.name.substring(6)+' '+GetMessage(msgcode)+'<br/>';
}

function RemoveElementMsg(ele)
{
   var _parent=ele.parentNode;
   var oTempE = document.getElementById(ele.name+'msg');
   if(oTempE)
        _parent.removeChild(oTempE);
}
