﻿/***
Developer : jetsada.g@gmail.com
**/
(function($){
          $.fn.isLength=function(len){
            return $(this).val().length == len;         
          };
          $.fn.isRange=function(min,max){
            return ($(this).val().length>=min) && ($(this).val().length<=max);         
          };
          $.fn.isNumber=function(){
              var re = /[^0-9]/g
              if (re.test($(this).val())) return false;
              return true;
          };
          $.fn.isAlpha=function(){
              var re = /[^a-zA-Z]/g
              if (re.test($(this).val())) return false;
              return true;
          };
          $.fn.isAlphaNumber=function(){
              var re = /[^a-zA-Z0-9]/g
              if (re.test($(this).val())) return false;
              return true;
          };
          $.fn.isEmail=function(){
           if($(this).isEmpty($(this).val())) return false;
              var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
              return re.test($(this).val());
          };
          $.fn.isEmpty=function(){
           return ($(this).val() == null) || ($(this).val().length == 0);
          };
          $.fn.isMatch=function(str2){
           return $(this).val() == str2;
          };
		  
		  $.fn.isValidCreditCard=function(type){
			   
			   var ccnum=$(this).val(); 
			   if (type == "Visa") {
				  // Visa: length 16, prefix 4, dashes optional.
				  var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
			   } else if (type == "MasterCard") {
				  // Mastercard: length 16, prefix 51-55, dashes optional.
				  var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
			   } else if (type == "Disc") {
				  // Discover: length 16, prefix 6011, dashes optional.
				  var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
			   } else if (type == "AmEx") {
				  // American Express: length 15, prefix 34 or 37.
				  var re = /^3[4,7]\d{13}$/;
			   } else if (type == "Diners") {
				  // Diners: length 14, prefix 30, 36, or 38.
				  var re = /^3[0,6,8]\d{12}$/;
			   }
			   if (!re.test(ccnum)) return false;
			   // Remove all dashes for the checksum checks to eliminate negative numbers
			   ccnum = ccnum.split("-").join("");
			   // Checksum ("Mod 10")
			   // Add even digits in even length strings or odd digits in odd length strings.
			   var checksum = 0;
			   for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2) {
				  checksum += parseInt(ccnum.charAt(i-1));
			   }
			   // Analyze odd digits in even length strings or even digits in odd length strings.
			   for (var i=(ccnum.length % 2) + 1; i<ccnum.length; i+=2) {
				  var digit = parseInt(ccnum.charAt(i-1)) * 2;
				  if (digit < 10) { checksum += digit; } else { checksum += (digit-9); }
			   }
			   if ((checksum % 10) == 0) return true; else return false;
          };
		  $.fn.isValidExpired=function(year){
			    month=$(this).val();
			    var now = new Date();							
        	    var expiresIn = new Date(year,month,0,0,0);	
				expiresIn.setMonth(expiresIn.getMonth()+1);		
				if( now.getTime() < expiresIn.getTime() ) return false;
				return true;		
		  }
		  
 })(jQuery);
    
    