(function($){ $.emailFrame2 = function(t,p){ p = $.extend({ submitBtn:'.submit', form :null, errMsg :'.err_msg', cancel :'.btn-reset', captcha :false, onSuccess:null, onError:null, submitShowLoading:false, submitOverlay:false, submitMsgClass:false, basicMsgDom:'', overlayDom:"", errorDiv:"" }, p); /*DOM ids/classes*/ var v={ initmarker : function(){ var mapObj= new Object; switch (p.type) { default: mapObj=({ draggable:true }); } return mapObj; } }; /*event*/ var e = { initAllEvent : function(){ this.initForm(); this.initErrorDiv(); this.initButton(); f.ClearForm(); if (p.submitShowLoading){ if (p.submitOverlay){ $('body').append(p.overlayDom); } if (p.submitMsgClass){ switch(typeof p.submitMsgClass){ case 'string': $(p.submitMsgClass).detach().appendTo('body').hide(); p.submitMsgClass=$(p.submitMsgClass); console.log() break; case 'object': p.submitMsgClass.detach().appendTo('body').hide(); break; } p.submitMsgClass.css({ 'z-index':1000 }); } else { p.submitMsgClass=$(p.basicMsgDom); $('body').append(p.submitMsgClass); } } }, initErrorDiv: function(){ if (!(p.form.find(p.errMsg).length)) { p.form.prepend(p.errorDiv); } }, initForm : function(){ if (!p.form) p.form=$(t); else p.form=$(p.form); }, initButton :function(){ p.form.find(p.submitBtn).click(function(){ if (p.submitShowLoading){$('.emailOverlay').show();p.submitMsgClass.show();} p.form.find(p.errMsg).hide(); var formcontent= f.getForm(); formcontent=formcontent.concat(f.getCheckitem()); f.sendmail(formcontent); return false; }) p.form.find(p.cancel).click(function(){ f.ClearForm(); }) } } /*frame funciton*/ var f = { getForm : function(){ var data=p.form.serializeArray(); if (p.captcha){ data=$.map(data,function(e,i){ switch(e.name){ case 'captcha_code': if (e.value==''){ e.value='......'; } return e; break; default: return e; } }) } //console.log(data); return data; }, getCheckitem : function(){ var concatObj=new Array(); p.form.find("input[check]").each(function(i,e){ var check=new Object(); check.name='check['+i+'][check]'; check.value=$(e).attr('check'); concatObj=concatObj.concat(check); var field=new Object(); field.name='check['+i+'][field]'; field.value=$(e).attr('name'); concatObj=concatObj.concat(field); var err_msg=new Object(); err_msg.name='check['+i+'][err_msg]'; err_msg.value=$(e).attr('err_msg'); concatObj=concatObj.concat(err_msg); var group=new Object(); group.name='check['+i+'][group]'; group.value=$(e).attr('group'); concatObj=concatObj.concat(group); var checkalone=new Object(); checkalone.name='check['+i+'][checkalone]'; checkalone.value=$(e).attr('checkalone'); concatObj=concatObj.concat(checkalone); }); // p.form.find("input[err_msg]").each(function(i,e){ // var check=new Object(); // check.name='err_msg['+$(e).attr('name')+']'; // check.value=$(e).attr('err_msg'); // concatObj=concatObj.concat(check); // }); return concatObj; }, ClearForm : function (){ p.form.find('input[type=text]').val(''); p.form.find('textarea').val(''); p.form.find('input[clear=true]').val(''); p.form.find('.upload_name').html(''); }, sendmail : function(obj){ p.form.ajaxSubmit({ data:obj, url:"./ajax/getSendEmail2.php", type : "post", dataType : "json", error : function(){ if (p.submitOverlay){$('.emailOverlay').hide();p.submitMsgClass.hide();}}, success:function(data){ // if (p.submitOverlay){$('.emailOverlay').hide();p.submitMsgClass.hide();} if (data.error){ p.form.find(p.errMsg).html(data.error).show(); if (p.onError){p.onError();} } else { f.ClearForm(); if (p.onSuccess){p.onSuccess();} } if (p.submitOverlay){$('.emailOverlay').hide();p.submitMsgClass.hide();} } }) } }; e.initAllEvent(); t.p = p; t.frame = f; t.event = e; return t; } var docloaded = false; $(document).ready(function () {docloaded = true} ); $.fn.emailFrame2 = function(p) { return this.each( function() {$.emailFrame2(this,p);}); }; $.fn.emailFrame2GetOptions = function(){ var o = new Object; this.each(function(i,e){ o = e.p; }); return o }; $.fn.emailFrame2Options = function(p) { //function to update general options return this.each( function() { if (this.frame) $.extend(this.p,p); }); }; //end flexOptions $.fn.emailFrame2Reload = function(p) { // function to reload grid this.each(function(){ if (this.frame) this.frame.reloadmapList(); }); }; })(jQuery)