var textdropdownClick = true;
//文本框的修改事件，验证正则表达式
$("body").on("change",".formVal",function(){
    //控件的顶层父类
    var object = $(this).parents(".questionnaireItem");
    textRegExp(object);
});

//提交按钮
// $("body").on("click",".btnOk",function(){
//     var num=0;
//     var Items = $(".previewMain").find(".questionnaireItem");
//     console.log(Items)
//     for(var i = 0 ; i < Items.length ; i ++){
//         var item = Items.eq(i);
//         console.log(item)
//         var bool = isChoice(item);//判断该控件是否需要填写
//         if(item.data("type") == "text"){
//             if(bool){
//               console.log(textRegExp(item))   ;
//             }
//         }
//         if(bool){
//             num++;
//         }
//     }
//     if(num==Items.length){
//         let  record=[]
//         $(".alert").css("display","none");
//         for(var i = 0 ; i < Items.length ; i ++){
//             var item = Items.eq(i);
//             let text={};
//             let type=item.attr("data-type"),
//             name=item.attr("data-name"),
//             choice=item.attr("data-choice");
//             text.type=type;
//             text.choice=choice;
//             console.log(item)
//             text.val=get(item)
//             if(type=="text"){
//                 var  limit=item.attr("data-limit"),
//                 limiterror=item.attr("data-limiterror")
//                 placeholder=item.attr("data-placeholder");
//                 text.name=name||"文本框";
//                text.limit=limit;
//                text.limiterror=limiterror;
//                text. placeholder= placeholder||"无";
//             }else if(type=="multiple"){
//                 var    placeholder=item.attr("data-placeholder"),
//                    height=item.attr("data-height");
//                    text.name=name||"多行文本框";
//                    text. placeholder= placeholder||"无";
//                    text.height= height;
//             }else if(type=="date"){
//                 text.name=name||"时间框";
//                 var    placeholder=item.attr("data-placeholder");
//                 text. placeholder= placeholder||"无";
//             }else if(type=="radio"){
//                 text.name=name||"单选框";
//                 let content=item.attr("data-content");
//                 text.content= content;
//             }else if(type=="checkbox"){
//                 text.name=name||"复选框";
//                 let content=item.attr("data-content");
//                 text.content= content;
//             }else if(type=="dropdown"){
//                 text.name=name||"下拉框";
//                 let content=item.attr("data-content");
//                 text.content= content;
//             }else if(type=="img"){
//                 text.name=name||"图片上传";
//                 let num=item.attr("data-num");
//                 text.num= num;
//             }else if(type=="file"){
//                 text.name=name||"文件上传";
//                 let num=item.attr("data-num");
//                 text.num= num;
//             } 
//             record.push(text);
//         }
//         console.log(record);  
//     }else{
//         $(".alert").css("display","flex");
//     }
// });

//文本下拉框的聚焦事件
$("body").on("focus",".selectInput",function(){
    var object = $(this).parents(".questionnaireItem");
    showTextdropdown(object);
});

//文本下拉框的失去焦点事件
$("body").on("blur",".selectInput",function(){
    if(textdropdownClick){
        var object = $(this).parents(".questionnaireItem");
        hideTextdropdown(object);
    }
});

//文本下拉框的鼠标悬浮事件
$("body").on("mousedown",".selectInputDivP",function(){
    textdropdownClick = false;
});

//文本下拉框的鼠标悬浮事件
$("body").on("mouseout",".selectInputDivP",function(){
    textdropdownClick = true;
});

//文本下拉框键盘抬起事件
$("body").on("keyup",".selectInput",function(){
    var object = $(this).parents(".questionnaireItem");
    showTextdropdown(object);
});

//文本下拉框内容点击事件
$("body").on("click",".selectInputDivP",function(){
    var object = $(this).parents(".questionnaireItem");
    object.find(".selectInput").val($(this).text());
    object.find(".selectInputDiv").hide();
    object.find(".errorMain").text("");
});

//图片上传事件
$("body").on("change",".imgFile",function(){
    var num = $(this).parents(".questionnaireItem").data("num");//图片数量
    var index = $(this).index(".imgFile");//获取下标
    var Extensions = $(this).val().substring($(this).val().lastIndexOf('.'), $(this).val().length);//图片后缀
    if(Extensions == ".jpg" || Extensions == ".png" || Extensions == ".jpeg" || Extensions == ".bmp"){
        var fileList = $(this)[0].files; //获取的图片文件
        var imgUrl = window.URL.createObjectURL(fileList[0]);
        console.log(fileList[0])
        $(".add-img").eq(index).attr("src",imgUrl);
        var length = $(this).parents(".questionnaireItem").find(".img-section").length;
        if(num > length){
            $(".img-section").eq($(".img-section").length -1 ).after(addImg());
        }
        $(this).parents(".questionnaireItem").find(".errorMain").text("");
    }
});

//图片的删除事件
$("body").on("click",".z_fileImgDel",function(){
    var length = $(this).parents(".questionnaireItem").find(".img-section").length;
    if(length > 1){
        var index = $(this).index(".z_fileImgDel");
        $(".img-section").eq(index).remove();
        $(this).parents(".questionnaireItem").find(".errorMain").text("");
    }else{
        $(this).parents(".questionnaireItem").find(".errorMain").text("不能删除全部图片");
    }
});

//文件点击按钮
$("body").on("click",".fileUploadBtn",function(){
    var index = $(this).index(".fileUploadBtn");
    $(".fileUploadReal").eq(index).click();
});

//文件上传事件
$("body").on("change",".fileUploadReal",function(){
    var num = $(this).parents(".questionnaireItem").data("num");//图片数量
    var index = $(this).index(".fileUploadReal");//获取下标
    var Extensions = $(this).val().substring($(this).val().lastIndexOf('.'), $(this).val().length);//文件后缀
    if (Extensions == ".doc" || Extensions == ".docx" || Extensions == ".ppt" || Extensions == ".pptx" || Extensions == ".xls" || Extensions == ".xlsx" || Extensions == ".vsd" || Extensions == ".pot" || Extensions == ".pps" || Extensions == ".rtf" || Extensions == ".rar" || Extensions == ".zip" || Extensions == ".tar" || Extensions == ".gz" || Extensions == ".tgz" || Extensions == ".jpg" || Extensions == ".jpeg" || Extensions == ".gif" || Extensions == ".bmp" || Extensions == ".png" || Extensions == ".wps" || Extensions == ".et" || Extensions == ".dps" || Extensions == ".pdf" || Extensions == ".txt" || Extensions == ".epub") {
        var fileList = $(this)[0].files; //获取的图片文件
        $(".fileUpload ").eq(index).val(fileList[0].name);
        var length = $(this).parents(".questionnaireItem").find(".message").length;
        if(num > length){
            $(".message").eq($(".message").length -1 ).after(addFile());
        }
        $(this).parents(".questionnaireItem").find(".errorMain").text("");
    }
});

//文件删除显示
$("body").on("mouseover",".message",function(){
    $(".messagedel").eq($(this).index(".message")).show();
});

//文件删除显示
$("body").on("mouseout",".message",function(){
    $(".messagedel").eq($(this).index(".message")).hide();
});

//文件的删除事件
$("body").on("click",".messagedel",function(){
    var length = $(this).parents(".questionnaireItem").find(".message").length;
    if(length > 1){
        var index = $(this).index(".messagedel");
        $(".message").eq(index).remove();
        $(this).parents(".questionnaireItem").find(".errorMain").text("");
    }else{
        $(this).parents(".questionnaireItem").find(".errorMain").text("不能删除全部文件");
    }
});

//文本框正则表达式
function textRegExp(object){
    var limit = object.data("limit");//正则表达式
    if(limit=="undefined"){
        object.find(".errorMain").text("");
        return true;
    }
    if(limit != null && limit != ""){
        var val = object.find(".formVal").val();//文本框的值
        var bool = new RegExp(limit).test(val);
        if(bool){
            object.find(".errorMain").text("");
            return true;
        }else{
            if(val == ""){
                object.find(".errorMain").text("");
                return true;
            }else{
                object.find(".errorMain").text("内容有误"+ object.data("limiterror"));
                return false;
            }
        }
    }
}

//选项是否必填
function isChoice(object){
    var choice = object.data("choice");
    if(choice){
        if(object.data("type") == "text"){
            var val = getTextMultipleDateVal(object);//获取值，可用于文本框、多行文本框、时间框
            var bool = TextMultipleDateValIsNull(val);//判断string是否为空，不为空为真
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "multiple"){
            var val = getTextMultipleDateVal(object);//获取值，可用于文本框、多行文本框、时间框
            var bool = TextMultipleDateValIsNull(val);//判断string是否为空，不为空为真
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "date"){
            var val = getTextMultipleDateVal(object);//获取值，可用于文本框、多行文本框、时间框
            var bool = TextMultipleDateValIsNull(val);//判断string是否为空，不为空为真
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "radio"){
            var val = getRadioCheckboxVal(object);//获取单选按钮、多选按钮的值
            var bool = TextMultipleDateValIsNull(val);//判断string是否为空，不为空为真
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "checkbox"){
            var val = getRadioCheckboxVal(object);//获取单选按钮、多选按钮的值
            var bool = TextMultipleDateValIsNull(val);//判断string是否为空，不为空为真
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "dropdown"){
            //下拉框有默认值
            return true;
        }
        else if(object.data("type") == "textdropdown"){
            var val = getTextdropdownVal(object);//获取单选按钮、多选按钮的值
            var bool = TextMultipleDateValIsNull(val);//判断string是否为空，不为空为真
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "img"){
            var bool = isImgFileValNull(object);
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
        else if(object.data("type") == "file"){
            var bool = isImgFileValNull(object);
            showChoiceErrorInfo(object,bool);//显示必填的错误信息
            return bool;
        }
    }else{
        return true;
    }
}

//获取相对应的值
function get(object){
        if(object.data("type") == "text"){
            var val = getTextMultipleDateVal(object);//获取值，可用于文本框、多行文本框、时间框
        }
        else if(object.data("type") == "multiple"){
            var val = getTextMultipleDateVal(object);//获取值，可用于文本框、多行文本框、时间框
        }
        else if(object.data("type") == "date"){
            var val = getTextMultipleDateVal(object);//获取值，可用于文本框、多行文本框、时间框
        }
        else if(object.data("type") == "radio"){
            var val = getRadioCheckboxVal(object);//获取单选按钮、多选按钮的值
        }
        else if(object.data("type") == "checkbox"){
            var val = getRadioCheckboxVal(object);//获取单选按钮、多选按钮的值
        }
        else if(object.data("type") == "dropdown"){
            var val = getTextdropdownVal(object);
        }
        else if(object.data("type") == "textdropdown"){
            var val = getTextdropdownVal(object);//获取单选按钮、多选按钮的值
        }
        else if(object.data("type") == "img"){
            var val = ImgFileVal(object);
        }
        else if(object.data("type") == "file"){
            var val = ImgFileVal(object);
        }
    return val
}

//显示必填的错误信息
// function showChoiceErrorInfo(object,bool){
//     if(bool){
//         object.find(".errorMain").text("");
//     }else{
//         object.find(".errorMain").text("此题为必填题，请填写！");
//     }
// }

//获取文本框、多行文本框、时间框的值
function getTextMultipleDateVal(object){
    return object.find(".formVal").val();
}

//判断文本框、多行文本框、时间框的值是否为空，可用于判断字符串的值
function TextMultipleDateValIsNull(val){
    if(val != null && val != ""){
        return true;
    }else{
        return false;
    }
}

//获取单选按钮、多选按钮的值
function getRadioCheckboxVal(object){
    var val = "";
    var inputs = object.find(".checkMargin");
    for(var i = 0 ; i < inputs.length ; i ++){
        var checked = inputs.eq(i).prop("checked");
        if(checked){
            val += inputs.eq(i).val() + "," ;
        }
    }
    val=val.substr(0, val.length - 1);  ;
    // if(val.indexOf("\n") > -1){
    //     val = val.substring(0,val.length-2);
    // }
    return val;
}

//获取下拉框选中的值
function getDropdownVal(object){
    var select = object.find("select");
    var val = select.val();
    return val;
}

//获取文本下拉框的值
function getTextdropdownVal(object){
    var val = object.find(".select").val();
    return val;
}

//判断文本下拉框的值是否正确
function isTextdropdownValTrue(object,val){
    var bool = false;
    var ps = object.find(".selectInputDiv").find("p");
    for(var i = 0 ; i < ps.length ; i ++){
        var pval = ps.eq(i).text();
        if(val == pval){
            bool = true;
            break;
        }
    }
    return bool;
}

//显示文本下拉框的下拉值
function showTextdropdown(object){
    var ps = object.find(".selectInputDiv").find("p");
    var val = object.find(".selectInput").val();
    for(var i = 0 ; i < ps.length ; i ++){
        var pval = ps.eq(i).text();
        if(pval.indexOf(val) > -1){
            ps.eq(i).show();
        }else{
            ps.eq(i).hide();
        }
    }
    object.find(".selectInputDiv").show();
}

//隐藏文本下拉框的值并判断是否值正确
function hideTextdropdown(object){
    object.find(".selectInputDiv").hide();
    var val = getTextdropdownVal(object);
    var bool = isTextdropdownValTrue(object,val);
    if(bool){
        object.find(".errorMain").text("");
    }else{
        if(val == ""){
            object.find(".errorMain").text("");
        }else{
            object.find(".errorMain").text("请输入下拉框中的值");
        }
    }
}


//判断图片和文件是否填报
function isImgFileValNull(object){
    var files = object.find("input[type='file']");
    var value=files[0]
    return value;
}

function ImgFileVal(object){
    var files = object.find("input[type='file']");
    console.log(files)
    var value=files[0]
    return value;
}


//新增图片
function addImg(){
    var str = '';
    str += '<section class="img-section">';
    str += '<div class="z_photo upimg-div clear">';
    str += '<section class="z_file fl">';
    str += '<div class="z_fileImgDel"><img src="../images/del.png" alt=""></div>';
    str += '<img src="../images/a11.png" class="add-img" />';
    str += '<input type="file" name="file" class="file imgFile" value="" accept="image/jpg,image/jpeg,image/png,image/bmp" leipiplugins="imgupload" title="图片上传" />';
    str += '</section></div></section>';
    return str;
}

//新增文件
function addFile(){
    var str = '';
    str += '<div class="message">';
    str += '<div class="messagedel">删除</div>';
    str += '<input type="text" name="txt" class="input fileUpload form-control" value="" disabled="disabled" />';
    str += '<input type="button" value="上传文件" size="30" class="liulan fileUploadBtn">';
    str += '<input type="file" name="f" style="height:26px;" class="files leipiplugins fileUploadReal" size="1" leipiplugins="uploadfile" title="文件上传" hidefocus></div>';
    return str;
}