/*! jQuery Ctrl - v0.1.0-1 - 2014-08-01 * https://github.com/zengohm/jquery-ctrl * Copyright (c) 2014 Zeng Ohm; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function($){var NODE_STATUS_NORMAL=0,NODE_STATUS_COVER=1,NODE_STATUS_LAST=2,bindingTypes={},createCtrl=function(a,b){return{model:new ModelObject(a),ctrl:b}};$.ctrl=function(a,b){var c=$('[jq-ctrl="'+a+'"]');if(0===c.length)return!1;var d={},e={__refresh_binding__:function(){if(d&&d.onChangeTasks)for(var a=0;a"),j=Object.keys(d[e])[0];i.attr("label",j);var k=d[e][j];if(null===f)for(var l in k)i.append("");else for(var m in k)i.append('");$(a).append(i)}else if(null===f)for(var n in d)$(a).append("");else for(var o in d)$(a).append('");$(a).val(b.get(c))}),c[c.length-1](null),$(a).removeAttr("jq-options"),NODE_STATUS_COVER},bindingTypes.jqIf=function(a,b,c){var d;if("function"!=typeof a.getAttribute||!(d=a.getAttribute("jq-if")))return NODE_STATUS_NORMAL;var e=document.createComment("jq-if "+d+" start"),f=document.createComment("jq-if "+d+" end"),g=$(a).parent()[0];g.insertBefore(e,a),a.nextElementSibling?g.insertBefore(f,a.nextElementSibling):g.appendChild(f);var h=new Function("model","with(model){return "+d+";}");return c.push(function(){$(a).remove(null,!0),h(b.getData())&&$(a).insertAfter(e)}),c[c.length-1](null),NODE_STATUS_NORMAL},bindingTypes.jqEvent=function(element,model,onChangeTasks){var types=["click","keypress","keyup","keydown","dbclick","mousedown","mouseup","mouseover","mousemove","mouseout","change","submit"],query,action=function(a,b,c){return function(){var d=model.get(b).apply(a,c);for(var e in onChangeTasks)onChangeTasks[e](a);return d}};for(var i in types){var type=types[i];if(element.getAttribute&&(query=element.getAttribute("jq-"+type))){var match=query.match(/^([\w\.]+)\((.*?)\)$/),funName=match[1],params=eval("["+match[2]+"]");$(element).bind(type,action(this,funName,params))}}return NODE_STATUS_NORMAL};var ModelObject=function(a){"undefined"!=typeof a&&a||(a={});var b=a;this.set=function(a,c){var d=a.split("."),e=d.pop(),f=b;for(var g in d)"undefined"==typeof f[d[g]]&&(f[d[g]]={}),f=f[d[g]];return f[e]=c,c},this.get=function(a){var c=a.split("."),d=b;for(var e in c)if(d=d[c[e]],"undefined"==typeof d)return null;return d},this.subModel=function(a){return new ModelObject(this.get(a))},this.getData=function(){return b},this.clone=function(){return new ModelObject($.extend(!0,{},b))}}});