datecontrol.min.js 2.53 KB
/*!
 * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015
 * @version 1.9.4
 *
 * Date control validation plugin
 * 
 * Author: Kartik Visweswaran
 * Copyright: 2015, Kartik Visweswaran, Krajee.com
 * For more JQuery plugins visit http://plugins.krajee.com
 * For more Yii related demos visit http://demos.krajee.com
 */!function(e){"use strict";var t=function(t,a){return null===t||void 0===t||0===t.length||a&&""===e.trim(t)},a=function(t,a){this.$element=e(t),this.init(a),this.listen()};a.prototype={constructor:a,init:function(a){var n=this,r=t(a.dateSettings)?{}:{dateSettings:a.dateSettings};if(e.each(a,function(e,t){n[e]=t}),n.$idSave=e("#"+a.idSave),n.dateFormatter=window.DateFormatter?new window.DateFormatter(r):{},t(n.dateFormatter))throw"No DateFormatter plugin found. Ensure you have 'php-date-formatter.js' loaded.";n.isChanged=!1},validate:function(){var a,n=this,r=n.$element,i=n.$idSave,o=n.url,s=n.type,d=n.dispFormat,u=n.saveFormat,l=n.dispTimezone,c=n.saveTimezone,g=n.asyncRequest,h=n.dateFormatter;if(!n.isChanged)if(n.isChanged=!0,t(r.val()))i.val("").trigger("change"),n.isChanged=!1;else if(t(o)){var m=h.parseDate(r.val(),d);m===!1&&(m=h.guessDate(r.val(),d),r.val(h.formatDate(m,d))),i.val(h.formatDate(m,u)).trigger("change"),n.isChanged=!1}else a="en"==n.language.substring(0,2)?[]:n.dateSettings,e.ajax({url:o,type:"post",dataType:"json",async:g,data:{displayDate:r.val(),type:s,dispFormat:d,saveFormat:u,dispTimezone:l,saveTimezone:c,settings:a},success:function(e){"success"===e.status&&i.val(e.output).trigger("change")},complete:function(){n.isChanged=!1},error:function(){n.isChanged=!1}})},listen:function(){{var e=this,t=e.$element;e.$idSave,e.dispFormat,e.dateFormatter}t.on("change",function(){e.validate()})}},e.fn.datecontrol=function(t){var n=Array.apply(null,arguments);return n.shift(),this.each(function(){var r=e(this),i=r.data("datecontrol"),o="object"==typeof t&&t;i||(i=new a(this,e.extend({},e.fn.datecontrol.defaults,o,e(this).data())),r.data("datecontrol",i)),"string"==typeof t&&i[t].apply(i,n)})},e.fn.datecontrol.defaults={language:"en",dateSettings:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["AM","PM"]},dispTimezone:null,saveTimezone:null,asyncRequest:!0},e.fn.datecontrol.Constructor=a}(window.jQuery);