 /* Author | Developer  : Christopher M. Natan */
 /* Validator                                  */ 
 
var error_img   = "/img/all/error.gif";
var error_msg   = '';
var type_target = "";
var val_error   = 0;
var formIdOrClass = '';

function initForm(formElem)
{  error     = 0;
   formIdOrClass = formElem;
   cl   = $('.validate_blank')
   for(i = 0; i < cl.length; i++) 
   {  $(cl[i]).bind('blur', function() { validate_(this,1); })
	  $(cl[i]).bind('keypress', function() { validate_(this,1); })
	  rnd = Math.round(Math.random() * 9999999999);
	  $(cl[i]).attr("id","validate_"+rnd);
   }
   cl  = $('.validate_email')
   for(i = 0; i < cl.length; i++) 
   {  $(cl[i]).bind('blur', function() { validate_(this,2); }) 
	  $(cl[i]).bind('keypress', function() { validate_(this,2); })
	  rnd = Math.round(Math.random() * 9999999999);
	   $(cl[i]).attr("id","validate_"+rnd);
   }
   cl  = $('.validate_username')
   for(i = 0; i < cl.length; i++) 
   {  $(cl[i]).bind('blur', function() { validate_(this,3); })
	  $(cl[i]).bind('keypress', function() { validate_(this,3); })
	  rnd = Math.round(Math.random() * 9999999999);
	   $(cl[i]).attr("id","validate_"+rnd);
   }
   this._password='';
   rnd = Math.round(Math.random() * 9999999999);
   cl  = '.validate_password';
   $(cl).blur( function() { validate_(this,4); } );
   $(cl).attr("id","validate_"+rnd);
    rnd = Math.round(Math.random() * 9999999999);
   cl  = '.validate_password_confirm';
   $(cl).blur( function() { validate_(this,5); } );
   $(cl).attr("id","validate_"+rnd);
}		  
function validate()
{  iserr     = validate_error();
   val_error = iserr;
   if (iserr){ return false; }
   return true;
}			
function validate_error()
{     
  cl   = $('.validate_blank');cl.blur();
  cl   = $('.validate_email');cl.blur();
  cl   = $('.validate_username');cl.blur();
  cl   = $('.validate_password');cl.blur();
  cl   = $('.validate_password_confirm');cl.blur();
  x    = $(formIdOrClass).find(".validate-error-message");
  if (x.length>=1)
  {  return 1; }
  else {return 0;}
}

function validate_(elm,option)
{  
   value   = elm.value;
   message = "&nbsp;"+elm.title+"";
   id      = elm.id;
   if(option==1)i1=validate_blank(value,message,id); 
   if(option==2)i2=validate_email(value,message,id);
   if(option==3)i3=validate_username(value,message,id);
   if(option==4)i4=validate_password(value,message,id);
   if(option==5)i5=validate_password_confirm(value,message,id);
 }
function validate_blank(value,message,id)
{  if(value.length==0)
   { return set_message(id,message);}
   else
   { return unset_message(id,message);}		   
}
function validate_email(value,message,id)
{     
   var emailfmt= /^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,8}$/;
   if(!emailfmt.test(value) || value.length==0)
	{ return set_message(id,message)}
   else
   { return unset_message(id,message) }	
	   
}
function validate_username(value,message,id)
{ min = 6;
  var len = value.length;
  if(len < min || value.length==0)
  { return set_message(id,message)}
  else
  { return unset_message(id,message) }	
  
}
function validate_password(value,message,id)
{ this._password=value;
  min = 6;
  var len = value.length;
  if(len < min || value.length==0)
  { return set_message(id,message);}
  else
  {  return unset_message(id,message) }	
  
}
function validate_password_confirm(value,message,id)
{ if(this._password != value || value.length==0)
  { return set_message(id,message)}
  else
  { return unset_message(id,message) }	
  
}
function set_message(id,message)
{  elementID  = "err" + id;
   $("#" + elementID).remove();
   $("#" + id).after("<span id="+ elementID + 
   " class='validate-error-message'>"+message+"</span>");   
   $("#" + elementID).fadeIn("slow");
   return 1;
}
function unset_message(id,message)
{    elementID  = "err" + id;
	 $("#" + elementID).fadeOut("slow",function(){
		   $("#err" + id).remove();
	 });
	return 0;
}

            
           
