﻿function checkdate (m, d, y) {
    return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate();
}

$(document).ready(function() {
    // validate signup form on keyup and submit
    $.validator.addMethod("ddlDate", function(value, element, param) {
		if ($(element).hasClass('errorMessage') &&
			(
			$('[rel="' + $(element).attr('rel') + '"]:eq(0)').attr('value') == "" ||
			$('[rel="' + $(element).attr('rel') + '"]:eq(1)').attr('value') == "" ||
			$('[rel="' + $(element).attr('rel') + '"]:eq(2)').attr('value') == ""
			)
		) {
			$('[rel="' + $(element).attr('rel') + '"]:eq(0)').addClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(1)').addClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(2)').addClass('error');
			return false;
		}
		else {
			$('[rel="' + $(element).attr('rel') + '"]:eq(0)').removeClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(1)').removeClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(2)').removeClass('error');

			return true;
		}

    }, 'please select date');
    //validate date f
    $.validator.addMethod("ddlOverDate", function(value, element, param) {
	var valReturn = false;
	var currentTime = new Date();
	var selectTime = new Date(parseInt($('[rel="' + $(element).attr('rel') + '"]:eq(2)').attr('value')) -543,  parseInt($('[rel="' + $(element).attr('rel') + '"]:eq(1)').attr('value')) -1 ,  parseInt($('[rel="' + $(element).attr('rel') + '"]:eq(0)').attr('value'))  );
	if(currentTime - selectTime < 0)
	{
		valReturn  = false;
	}
	else
	{
		valReturn  = true;
	}

		if(valReturn == false)
		{
			$('[rel="' + $(element).attr('rel') + '"]:eq(0)').addClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(1)').addClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(2)').addClass('error');
		}
		else
		{
			$('[rel="' + $(element).attr('rel') + '"]:eq(0)').removeClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(1)').removeClass('error');
			$('[rel="' + $(element).attr('rel') + '"]:eq(2)').removeClass('error');
		}
		 return  valReturn ;

    }, 'please select date');


    $.validator.addMethod("ddlDateMonth", function(value, element, param) {
		var y,m,d,valReturn = false;
		y=$("#ddlYear").val();
		m=$("#ddlMonth").val();
		d=$("#ddlDay").val();
		valReturn = checkdate(m, d, y);

		return valReturn;
    }, 'invalid date format');

    $.validator.addMethod("atLeastOne", function(value, element, param) {
		if ($(element).hasClass('errorMessage')) {
			if (
			($('[rel="' + $(element).attr('rel') + '"]:eq(0)').attr('value') != "" ||
			 $('[rel="' + $(element).attr('rel') + '"]:eq(1)').attr('value') != "")
			) {
			   return true;
			}
			else {
			   return false;
			}
		}
		else {
			return true;
		}
    }, 'please select');

    $.validator.addMethod("onlyOne", function(value, element, param) {
		if ($(element).hasClass('errorMessage')) {
			if (
			($('[rel="' + $(element).attr('rel') + '"]:eq(0)').attr('value') != "" &&
			 $('[rel="' + $(element).attr('rel') + '"]:eq(1)').attr('value') != "")
			) {
			   return false;
			}
			else {
			   return true;
			}
		}
		else {
			return true;
		}
    }, 'please select');

    $.validator.addMethod("ddlOrTextbox", function(value, element, param) {
		var r=true;
		if($("#ctl00_ctl00_PlaceHolderMain_PlaceHolderLeft_MemberProfile1_chkOccupationOther").attr("checked"))
		{
			r = $("#OccupationOthers").val().trim()==''?false:true;
		}
		return r;

	
	}, 'please select');


    $.validator.addMethod("chkOrTextbox", function(value, element, param) {
		if (
		($('[rel="' + $(element).attr('rel') + '"]:eq(0):last').attr('checked') == true) &&
		($('[rel="' + $(element).attr('rel') + '"]:eq(1)').attr('value') == "")
		) {
			return false;
		}
		else {
			return true;
		}

    }, 'please select');

    $.validator.addMethod("ajaxMethod", function(value, element, param) {
		var name = $(element).attr('name');
		var url = $(element).attr('rel');
		var field  = $(element).attr('field');

		var postData = {};
		postData[name] = value;
		postData[field] = value;
		returnVal = false;

		$.ajax({
			type: "GET",
			url: url,
			data: postData,
			async: false,
			success: function(data) {
			   if (data == "1") {
			      returnVal = true;
			   }
			   else {
			       returnVal = false;
			   }
			}
		});
		return returnVal;
    }, 'please select');

//CitizenIdLength   1/4/5/2/1
    $.validator.addMethod("thaiCitizenId", function(value, element, param) {
      var Sum = 0;
      var Validate = false;
      var Validate2 = true;
      var CitizenId = "";
		$.each($('#txtCitizenId input'),function(index,el)
					{
					  CitizenId += $(el).val()+"";
					}
				);

				if(CitizenId.length != 13) {
					Validate2=false;
					$.each($('#txtCitizenId input'),function(index,el){
						$(el).removeClass('valid').addClass('error').attr('style','border:#FF0000 1px solid;');
					});
					return false;
				}

		for (i = 0; i < CitizenId.length-1; i++)
		{
		  Sum += parseFloat(CitizenId.charAt(i)) * (13 - i);
		}

		if ((11 - Sum % 11) % 10 == parseFloat(CitizenId.charAt(12))&&Validate2)
			Validate = true;
		else
			Validate = false;

		$.each($('#txtCitizenId input'),function(index,el)
			{
			  if(Validate){
			  	$(el).removeClass('error').removeAttr('style');
			  } else {
			  	$(el).removeClass('valid').addClass('error').attr('style','border:#FF0000 1px solid;');
			  }

			}
		);

		return Validate;

    }, 'please enter valid citicent id');

    $.validator.addMethod("tinyMCE", function(value, element, param) {
		 return false;
    }, 'please enter valid citicent id');

    $.validator.addMethod("multipleReceiver", function(value, element, param) {
      if (this.optional(element))  return true;// return true on optional element
      var emails = value.split(',');
      var valid = true;
      for(var i in emails) {
		value = jQuery.trim(emails[i]);
		valid = valid && jQuery.validator.methods.email.call(this, value, element);
			if(!valid) break;
      }
      return valid;
    }, 'please enter valid email format');

    $.validator.addMethod("accept", function(value, element, param) {
      return value.match(new RegExp("." + param + "$"));
    }, 'Supported video types are AVI, WMV, MOV and MPG');
});
