var countDate; var submitAvaliable = true; var btnColorObj = {}; $(document).ready(function(){ var fileData = []; function addFeedBack(){ var generateJSON = $(".formBuilder_example_form").formCreator("generate"); return $.ajax({ url: '/Handle/SubmitQuestionnaireHandler.ashx', type: 'POST', // async:false, data: { "DATA": "{\"FORMTOKEN\":\""+gToken+"\",\"TEMPLATE\":"+generateJSON+",\"INFO\":\"北京 朝阳区\"}" }, dataType: 'JSON' }); } function submitForm() { if ( submitAvaliable ) { var submit_button = $('.validate_submit').text("提交中").css({ 'color': '#555', 'background': '#E7E7E7', 'cursor': 'default' }); submitAvaliable = false; addFeedBack().done(function (data){ if(data.flag){ if(data.fileMap){ $.each(data.fileMap, function (index, val) { $('#'+index).find(".input_file").bind('fileuploadsubmit', function (e, data) { data.formData = {"DATA":'{"TOKEN": "'+gToken+'", "FIELD": "_FILE_", "FUID": "'+val.fileUid+'"}'}; }); }); if(fileData.length > 0){ for (var fileIndex in fileData) { fileData[fileIndex].submit(); } } } else { finishFeedbackCallback(true); } } else { finishFeedbackCallback(false); } submitAvaliable = true; }).fail(function (data){ finishFeedbackCallback(false); }); } return true; } function starController(){ function resetStart(ui){ var selectedStar = ui.attr('starSelected'); ui.find('.star').removeAttr('style'); if (selectedStar > 0) { ui.find('.star').eq(selectedStar-1).attr('style','background-position:0% 100%;').prevAll(ui).attr('style','background-position:0% 100%;'); } } $('.starGroup').each(function() { $(this).find('.star').mouseover(function(event) { $(this).prevAll().addClass('selected');//css('backgroundPosition','0 0'); $(this).addClass('selected');//.css('backgroundPosition','0 0'); $(this).nextAll().removeClass('selected').removeAttr('style');//.removeClass('selected').removeAttr('style'); // resetStart($(this).parent('.starGroup')); }).mouseout(function(event) { $(this).prevAll().removeClass('selected');//.css('backgroundPosition','0 30px'); $(this).removeClass('selected');//.css('backgroundPosition', '0 30px'); $(this).nextAll().removeClass('selected').removeAttr('style'); resetStart($(this).parent('.starGroup')); }).click(function(event) { $(this).parent('.starGroup').attr('starSelected',$(this).closest('.starGroup').find('.star').index($(this))+1); resetStart($(this).parent('.starGroup')); }); }); } function dateBind() { $('.date').each(function () { var formatType = 'Y-m-d'; if($(this).attr('datetype') === 'm'){ formatType = 'Y-m'; } $(this).Zebra_DatePicker({ lang_clear_date: '清除', months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], months_abbr: false, offset: [5, 125], pair: true, readonly_element: true, select_other_months: true, show_clear_date: 0, show_icon: false, format: formatType, show_other_months: true, show_select_today: '今天', show_week_number: false, start_date: false, view: 'days', weekend_days: [0, 6], zero_pad: true }); }); } function changeBtnColor (title) { if(mgColorManager.getColorVal(title,'V')<90 || mgColorManager.getColorVal(title,'S')>10){ mgColorManager.setColor(title); var co = mgColorManager.getColorGroup(); btnColorObj.color = co; btnColorObj.title = title; $('.submit').css({ 'backgroundColor': co.BK, // 'borderColor': co.BD, // 'box-shadow': '0 1px 0 '+co.SD+' inset', 'color': (mgColorManager.getColorVal(title,'G')>192 ? '#222': '#fff') }).hover(function(){ $(this).css('backgroundColor',co.BKH); },function(){ $(this).css('backgroundColor',co.BK); }); } } $.ajax({ url: '/Handle/QuestionnaireHandler.ashx', type: 'POST', dataType: 'JSON', data: { "DATA": "{\"FORMTOKEN\":\""+gToken+"\"}" }, beforeSend: function(){ $(".formBuilder_example_form").html("
请稍等一会儿,系统正在为您载入... 刷新
"); }, success: function(data){ $(".formBuilder_example_form").empty(); var submitFormValue = 0; var validateCount = 0; if(data.flag){ var themeColor = { instruction:"background:#"+(data.data.style.ib||'F5F5F5')+";color:#"+(data.data.style.it||'333333'), highlight:"background:#"+(data.data.style.hb||'FFF8DC')+";color:#"+(data.data.style.ht||'333333'), title: "background:#"+(data.data.style.lb||'FEFEFE')+";color:#"+(data.data.style.lt||'222222'), form: "background:#"+(data.data.style.fb||'FFFFFF')+";color:#"+(data.data.style.ft||'333333'), wallpaper: "background:#"+(data.data.style.wb||'F4F5F0')+";color:#"+(data.data.style.wt||'333333') }; var usedColor = "333", backgroundColor = (data.data.style.wb===null)?"FFFFFF":data.data.style.wb, grayLvl = parseInt(backgroundColor.charAt(0)+backgroundColor.charAt(1))* 0.299 +parseInt(backgroundColor.charAt(2)+backgroundColor.charAt(3))* 0.587+parseInt(backgroundColor.charAt(4)+backgroundColor.charAt(5))* 0.114; if(mgColorManager.getColorVal(backgroundColor,'G')<192){ usedColor = "EEE"; } $(".powerby").attr("style","color:#"+usedColor); gJson = eval("("+data.data.template+")"); $(".formBuilder_example_form").formCreator({ jsonObject: gJson, // eval("("+gJson+")"), style: themeColor, isPublic: true }); var titleColor = '#'+($.trim(data.data.style.lb)||'FEFEFE'), bkwColor = "#"+(data.data.style.wb||'F4F5F0'), usedColor = (mgColorManager.getColorVal(titleColor,'V')

真遗憾,这张表单还未开始收集,开始收集表单时间为:
'+data.data.startOn.substring(16,0)+'

'); }else if (data.data.countdown) { countDate = data.data.countdown; var second = Math.floor(countDate % 60); var minite = Math.floor((countDate / 60) % 60); var hour = Math.floor((countDate / 3600) % 24); $(".form_component").empty().append('
  • 真遗憾,这张表单还未开始收集,距离开始收集表单时间还有:
    '+datePad(hour)+' 小时 '+datePad(minite)+' 分钟 '+datePad(second)+' 秒

  • '); window.setInterval(setCountDate,1000); } } else if (data.data.status == "STOPPED" || data.data.status == "MAX") { $(".form_component").empty().append('
  • 真遗憾,这张表单已停止收集~~

  • '); } else if (data.data.status == "OK") { //必填项的验证 $(".locked").each(function(){ var rule = { required: false }; if ($(this).find("span.requireInfo").text() == "*") { rule['required'] = true; $(this).find("div input,div textarea").not('.optionValue input').mikeValidate({ rules: rule, onkeyup: false, onfocusout: true, submitHandler: function(){ submitForm(); } }); $(this).find("div input,div textarea").not('.optionValue input').each(function(index, el) { validateCount++; }); } }); $('.starGroup').each(function(){ if ($(this).parent().siblings(".title").find("span.requireInfo").text() == "*") { validateCount++; $(this).mikeValidate({ rules: { required: true }, submitHandler: function(){ submitForm(); } }); } }); $("input").each(function(){ if ($(this).attr("contactinfo") == "email"){ validateCount++; if ($(this).parent().siblings(".title").find("span.requireInfo").text() == "*") { $(this).mikeValidate({ rules: { required: true, email: true }, onkeyup: true, onfocusout: true, submitHandler: function(){ submitForm(); } }); }else{ $(this).mikeValidate({ rules: { required: false, email: true }, onkeyup: true, onfocusout: true, submitHandler: function(){ submitForm(); } }); } } }); $('input[type="checkbox"]').each(function(){ var rule = { required: false }, $self = $(this).closest('.locked'); validateCount++; if ($self.find("span.requireInfo").text() == "*") { rule.required = true; } if($self.attr('name') === 'id_checkBox') { if($self.data('__MGComponentSelect')){ if($self.data('__MGComponentSelect').enable){ if($self.data('__MGComponentSelect').type == 0){ rule['checkboxMin'] = $self.data('__MGComponentSelect').number; } else if($self.data('__MGComponentSelect').type == 1){ rule['checkboxMax'] = $self.data('__MGComponentSelect').number; } else if($self.data('__MGComponentSelect').type == 2){ rule['checkboxEqual'] = $self.data('__MGComponentSelect').number; } } } } $(this).mikeValidate({ rules: rule, onkeyup: false, onfocusout: false, submitHandler: function(){ submitForm(); } }); }); $('.other').find('.optionValue>input').keyup(function (e){ $(this).closest('.clickable').find('input[type!="text"]').attr('checked','checked'); if(window.isMobile){ $(this).closest('.clickable').find('input[type!="text"]').trigger('change'); } }).click(function (e){ if ( e && e.preventDefault ){ e.stopPropagation(); e.preventDefault(); } }).bind('input',function(event) { $(this).closest('.clickable').find('input[type!="text"]').attr('checked','checked'); if(window.isMobile){ $(this).closest('.clickable').find('input[type!="text"]').trigger('change'); } }); if ( !validateCount ){ $(".validate_submit").click(function(){ submitForm(); }); } // 把*提示换成“必填” $("span").each(function(){ if ($(this).text() == "*") { $(this).text(" (必填)"); } }); // 如果没有指定LOGO,隐藏img标签 if ($(".formLogo img").attr("src") === "") { $(".formLogo img").hide(); } if(window.isMobile){ $('select').each(function(index, el) { // $(this).siblings('.mobiField').find('.mobiSelectFieldValue').text($(this).val()); $(this).bind('change',function(){ // $(this).siblings('.mobiField').find('.mobiSelectFieldValue').text($(this).val()); // alert($(this).val()); }); $(this).hover(function(){ $(this).parent('.mobiSelectField').addClass('mobiSelectHover'); },function(){ $(this).parent('.mobiSelectField').removeClass('mobiSelectHover'); }).focus(function(event) { $(this).parent('.mobiSelectField').addClass('mobiSelectHover'); }).blur(function(event) { $(this).parent('.mobiSelectField').removeClass('mobiSelectHover'); }); }); $('.clickable').each(function(index, el) { $(this).hover(function(){ $(this).closest('.optionsLine').addClass('mobiSelectHover').closest('.optionGarden').addClass('mobiOptionHover'); },function(){ $(this).closest('.optionsLine').removeClass('mobiSelectHover').closest('.optionGarden').removeClass('mobiOptionHover'); }).focus(function(event) { $(this).closest('.optionsLine').addClass('mobiSelectHover').closest('.optionGarden').addClass('mobiOptionHover'); }).blur(function(event) { $(this).closest('.optionsLine').removeClass('mobiSelectHover').closest('.optionGarden').removeClass('mobiOptionHover'); }).on('touchend', function (event) { // event.preventDefault(); $(this).closest('.optionsLine').removeClass('mobiSelectHover').closest('.optionGarden').removeClass('mobiOptionHover'); }); var fakeCheckBox = ''; if($(this).find('input').attr('type').toLowerCase() === 'checkbox'){ fakeCheckBox = ''; } $(this).find('input[type!="text"]').bind('change',function(){ if($(this).attr('type').toLowerCase() !== 'text' || $(this).attr('type').toLowerCase() !== 'file'){ function removeHover(ui){ return function(){ if(ui.closest('.optionsLine').hasClass('mobiSelectHover')){ ui.closest('.optionsLine').removeClass('mobiSelectHover').closest('.optionGarden').removeClass('mobiOptionHover'); } }; } if($(this)[0].checked){ if($(this).attr('type').toLowerCase() === 'radio'){ // $(this).closest('.optionsLine').siblings('.optionsLine').removeClass('mobiOptionSelected'); $(this).closest('.optionsLine').siblings('.optionsLine').find('ins').removeClass('checked'); } $(this).siblings('ins').addClass('checked'); // $(this).closest('.optionsLine').addClass('mobiOptionSelected'); } else { if($(this).attr('type').toLowerCase() === 'checkbox'){ $(this).siblings('ins').removeClass('checked'); // $(this).closest('.optionsLine').removeClass('mobiOptionSelected'); } } setTimeout(removeHover($(this)),300); } }).css('display','none').after(fakeCheckBox); $(this).after(''); }); var showDropdown = function (element) { var event; event = document.createEvent('MouseEvents'); event.initMouseEvent('mousedown', true, true, window); element.dispatchEvent(event); }; /* $('.mobiField').on('click',function (event){ var dropdown = $(this).closest('.mobiSelectField').find('.insideSelect')[0]; showDropdown(dropdown); return false; }); */ } $('.upload_file').find('p').click(function(event) { $(this).siblings('.input_file').trigger('click'); }); $(".input_file").fileupload({ dataType: "json", drop: function(e){ return false; }, add: function(e, data){ var num = $(e.target).index('.input_file'); if(data.files[0].size){ if(data.files[0].size < 20000000){ $(this).attr('hasFile',true); $(this).siblings('p').text(data.files[0].name).css("color","#333333"); data.token = gToken; fileData[num] = data; $(this).attr('filePath','%%UID%%'); } else { $(this).siblings('p').css('color','#B94A48'); } } else { $(this).attr('hasFile',true); $(this).siblings('p').text(data.files[0].name).css("color","#333333"); data.token = gToken; fileData[num] = data; $(this).attr('filePath','%%UID%%'); } // data.submit(); }, start: function (e,data){ $(this).siblings('p').text('开始上传……'); }, progressall: function (e,data) { var progress = parseInt(data.loaded / data.total * 90, 10); $(this).siblings('p').css('color','#EEE').text('正在上传……'+progress+'%').siblings('.progress').css('width',progress*0.9+'%'); }, done: function(e, data){ // var uploadFlag = data.result.data.flag; var uploadFlag = data.result.flag; if(uploadFlag){ submitFormValue++; // 这里++ // $(this).attr('filePath',data.result.data.token); $(this).siblings('p').css('color','#333').text('文件上传成功!').siblings('.progress').css('width','90%'); if(submitFormValue === fileData.length && submitFormValue>0){ finishFeedbackCallback(true); } } else { $(this).siblings('p').css('color','#333').text('文件超过大小,上传失败。').siblings('.progress').css('width','90%'); $('.validate_submit').removeAttr('style').text('提交'); } $(this).siblings('.progress').fadeOut(); } }); } }else{ $("html").css({"background":"#336699","color":"#FFFFFF"}); $(".formBuilder_example_form").append('

    出错啦!

    • 真遗憾,这张表单已经被创建人删除了~~

    ').after('Powered by  天梯  Mikecrm.com'); } } }); }); function setCountDate(){ if (countDate > 0) { countDate = countDate -1; var second = Math.floor(countDate % 60); var minite = Math.floor((countDate / 60) % 60); var hour = Math.floor((countDate / 3600) % 24); $(".form_component").empty().append('
  • 真遗憾,这张表单还未开始收集,距离开始收集表单时间还有:
    '+datePad(hour)+' 小时 '+datePad(minite)+' 分钟 '+datePad(second)+' 秒

  • '); }else{ window.clearInterval; location.reload(); } } //处理月份或日期为一位的情况 function datePad(date){ var length = date.toString().length; if (length<2) { dateP = "0" + date; }else{ dateP = date; } return dateP; } function finishFeedbackCallback (flag){ if (flag) { if(gJson.finishForm.type == 0){ $(".form_component li").not(":last").remove(); var lastLi = $(".form_component li:last"); lastLi.empty().removeClass("submit_button"); lastLi.html("

    "+((gJson.finishForm.value=="")?"感谢您的填写!":gJson.finishForm.value)+"

    "); lastLi.append("
  • 返回
  • "); } else { var reg = /^(file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp):\/\//, // 判断是否是http开头 link = gJson.finishForm.value; if ($.trim(link).length > 0) { location.href = ( (!reg.test(link))?("http://"+link):link ); // 自动补上 http }else{ var lastLi = $(".form_component li:last"); lastLi.not(":last").remove(); lastLi.empty().removeClass("submit_button"); lastLi.html("

    感谢您的填写!

    "); lastLi.append("
  • 返回
  • "); } } }else{ $(".form_component li").not(":last").hide(); $(".form_component li:last").removeClass("submit_button").find('.validate_submit').hide(); $(".form_component li:last").append("

    抱歉,提交失败,请重试

    ").find('.re_submit').css({ 'padding':'3px 6px', 'margin-left': '4px', 'border-radius': '3px', 'backgroundColor': btnColorObj.color.BK, 'color': (mgColorManager.getColorVal(btnColorObj.title,'G')>192 ? '#222': '#fff') }).unbind('click').bind('click',function(){ // alert(); $(".form_component li").not(":last").fadeIn(200); $(".form_component li:last").addClass('submit_button').find('.submit_text').remove(); $(".form_component li:last").find('.validate_submit').fadeIn(210,function(){ submitAvaliable = true; }); $(".form_component li:last").find('.validate_submit').removeAttr('style').text('提交').css({ 'backgroundColor': btnColorObj.color.BK, 'color': (mgColorManager.getColorVal(btnColorObj.title,'G')>192 ? '#222': '#fff') }); }); } } var mgColorManager = (function(){ var mgColor = '#ffffff', colorInfo = {}; function getColorHSV(r,g,b){ var r = parseInt( (''+r).replace(/\s/g,''),10 ); var g = parseInt( (''+g).replace(/\s/g,''),10 ); var b = parseInt( (''+b).replace(/\s/g,''),10 ); r=r/255; g=g/255; b=b/255; var minRGB = Math.min(r, Math.min(g,b)), maxRGB = Math.max(r, Math.max(g,b)), computedH, computedS, computedV; var d = (r==minRGB) ? g-b : ((b==minRGB) ? r-g : b-r); var h = (r==minRGB) ? 3 : ((b==minRGB) ? 1 : 5); computedH = 60*(h - d/(maxRGB - minRGB)); computedS = (maxRGB - minRGB)/maxRGB; computedV = maxRGB; return [computedH,computedS,computedV]; } function HEX2RGB(hex) { // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; hex = hex.replace(shorthandRegex, function(m, r, g, b) { return r + r + g + g + b + b; }); var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; } function COLORGARYLVL(r, g, b){ return parseInt(r)* 0.299 +parseInt(g)* 0.587+parseInt(b)* 0.114; } function HSV2HEX(h, s, v){ var c = s*v, t = Math.abs((h/60)%2-1), x = c*(1-t), m = v - c, r_t = 0,g_t = 0,b_t = 0; if(h>=0 && h<60){ r_t = c; g_t = x; } else if(h>=60 && h<120){ r_t = x; g_t = c; } else if(h>=120 && h<180){ b_t = x; g_t = c; } else if(h>=180 && h<240){ g_t = x; b_t = c; } else if(h>=240 && h<300){ r_t = x; b_t = c; } else if(h>=300 && h<360){ b_t = x; r_t = c; } function _toHEX(v){ return (Math.floor(v*255)).toString(16); } return '#'+_toHEX(r_t+m)+_toHEX(g_t+m)+_toHEX(b_t+m); //[(r_t+m)*255, (g_t+m)*255, (b_t+m)*255]; } return { setColor: function(str){ mgColor = str; var rgbC = HEX2RGB(str); colorInfo.R = rgbC.r; colorInfo.G = rgbC.g; colorInfo.B = rgbC.b; var hsvC = getColorHSV(colorInfo.R, colorInfo.G, colorInfo.B); colorInfo.H = Math.floor(hsvC[0]); colorInfo.S = Math.floor(hsvC[1]*100); colorInfo.V = Math.floor(hsvC[2]*100); }, getHSV2RGB: function(arrayHSV){ return HSV2HEX(colorInfo.H,colorInfo.S/100,colorInfo.V/100); }, getColorVal:function(colorStr, valueType){ var rgbC = HEX2RGB(colorStr), t = {}; t.R = rgbC.r; t.G = rgbC.g; t.B = rgbC.b; var hsvC = getColorHSV(t.R, t.G, t.B); t.H = Math.floor(hsvC[0]); t.S = Math.floor(hsvC[1]*100); t.V = Math.floor(hsvC[2]*100); t.G = COLORGARYLVL(t.R,t.G,t.B); return t[valueType]; }, getColorGroup: function(){ var brighten = colorInfo.S/100, black = colorInfo.V/100; var bkcolor = mgColor, bk_hover_color = HSV2HEX(colorInfo.H, (brighten-0.08>0 ? brighten-0.08 : 0), ((black-0)+0.09<1 ? (black-0)+0.09 : 1)), shadowcolor = HSV2HEX(colorInfo.H, ((brighten-0.07>0) ? brighten+0.07 : 0),(black-0.06>0 ? (black-0.06): 0)), bordercolor = HSV2HEX(colorInfo.H, ((brighten+0.04<1) ? brighten+0.04 : 1),(black-0.36>0 ? black-0.36 : 0)); shadowcolor = HSV2HEX(colorInfo.H,0.52,0.59); // bordercolor = HSV2HEX(colorInfo.H,0.60,0.37); return { 'BK': bkcolor, 'BKH': bk_hover_color, 'SD': shadowcolor, 'BD': bordercolor }; } }; })();