/// by TerranC (http://www.pisces24.com)

//表单验证
function checkpost(pageId, action) {
    var surveyId = json.survey[0].Id;
    var flag = true;
    pageId = parseInt(pageId);
    $.each(json.survey[0].Question, function(i, item) {
        if ($("#vote" + item.id + ":visible").length > 0 && $("#vote" + item.id).parent().attr("id") == "page" + pageId) {
            if (action == "pre") return true;
            var curTitleObj = $("#vote" + item.id).children("h4.voteTitle").children();
            switch (item.type) {
                case "RadioButton":
                    if (item.required == "True") {
                    	var element = $("input[name=radioItem" + item.id + "]:checked");
                        if (element.length == 0) {
                            alert("请选择一项 " + curTitleObj.text());
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (!item.textexp != true && $("#textItem" + item.id).attr("disabled") != true) {
                        var reg = new RegExp(item.textexp, "i");
                        if (!reg.test($("#textItem" + item.id).val())) {
                            alert(item.tip);
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (flag) curTitleObj.removeClass("warning");
                    break;
                case "DropDownList":
                    if (item.required == "True") {
                    	var element = $("select[name=radioItem" + item.id + "] option:selected");
                        if (element.length == 0 || element.val() == "") {
                            alert("请选择 " + curTitleObj.text());
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (flag) curTitleObj.removeClass("warning");
                    break;
                case "SortOption":
                    $("select[name=radioItem" + item.id + "] option").each(function() {
                        this.selected = true;
                    });
                    break;
                case "CheckBox":
                    var element = $("input[name=radioItem" + item.id + "]:checked");
                    if (item.required == "True") {
                        if (element.length == 0) {
                            alert("请选择一项 " + curTitleObj.text());
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    //最少最多选项
                    if (item.exp != "") {
                        var tmp = eval(item.exp);
                        if (element.length > tmp[1] || element.length < tmp[0]) {
                            alert(curTitleObj.text() + "，最少选择" + tmp[0] + "项，最多选择" + tmp[1] + "项！");
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (!item.textexp != true && $("#textItem" + item.id).attr("disabled") != true) {
                        var reg = new RegExp(item.textexp, "i");
                        if (!reg.test($("#textItem" + item.id).val())) {
                            alert(item.tip);
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (flag) curTitleObj.removeClass("warning");
                    break;
                case "MultiLineInput":
					flag = checkInputLength($("#textItem" + +item.id));
					if(!flag){
                        curTitleObj.addClass("warning");
                        location.href = "#vote" + item.id;
						return false;
					}
                case "Input":
                    var element = $("#textItem" + +item.id);
                    if (item.required == "True") {
                        if (element.val() == "") {
                            alert("请填写 " + curTitleObj.text());
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (!item.textexp != true && element.attr("disabled") != true) {
                        var reg = new RegExp(item.textexp, "i");
                        if (!reg.test(element.val()) && element.val() != "") {
                            alert(item.tip);
                            curTitleObj.addClass("warning");
                            location.href = "#vote" + item.id;
                            flag = false;
                            return false;
                        }
                    }
                    if (flag) curTitleObj.removeClass("warning");
                    break;
                case "SingleMatrix":
                case "MultiLineMatrix":
                    var elements = $("#vote" + item.id).find("input[name*=radioItem]");
                    var element = "";
                    $.each(elements, function(i, el) {
                        if (element != $(el).attr("name")) {
                            if (item.required == "True") {
                                var tmpEl = $("input[name=" + $(el).attr("name") + "]:checked");
                                if (tmpEl.length == 0) {
                                    alert("请填写 " + curTitleObj.text());
                                    curTitleObj.addClass("warning");
                                    location.href = "#vote" + item.id;
                                    flag = false;
                                    return false;
                                }
                            }
                        }
                        element = el.getAttribute("name");
                    });
                    if (flag) curTitleObj.removeClass("warning");
                    break;
            }
			if(fileuploadecheck() == false){
				flag = false;
			}
			if(typeof VoteValidation!='undefined'){
				if(VoteValidation() == false)
					flag = false;
			}
        }
    });
    if (flag && action != undefined && $("ol.voteList").length > 1) {
        var lastPage = parseInt($("ol.voteList:last").attr("id").replace("page", ""));
        var incPage = 1;
        $("ol.voteList:visible").hide();
        if (action == "pre") {
            $.each($.makeArray($("ol.voteList:lt(" + (pageId - 1) + ")")).reverse(), function(i, item) {
                if ($("#" + item.id).find("li.voteInner").is($(this).css("display") == "none").length > 0) {
                    incPage++;
                } else {
                    return false;
                }
            });
            pageId = pageId - incPage;
            $("#nextLabel").show();
            if (pageId != lastPage) {
                $("#submitLabel, #resetLabel, #resultLabel").hide();
            }
			$("#preLabel").toggle(pageId != 1);
        } else if (action == "next") {
            $.each($("ol.voteList:gt(" + (pageId - 1) + ")"), function(i, item) {
                if ($("#" + item.id).find("li.voteInner").is($(this).css("display") == "none").length > 0) {
                    incPage++;
                } else {
                    return false;
                }
            });
            pageId = pageId + incPage;
			$("#preLabel").show();
            if (pageId >= lastPage) {
				if(pageId > lastPage) {
					$("#preLabel").hide();
					$("#voteWrap").append("<style>#successPrompt{text-align:center;height:100px;line-height:100px;font-weight:bold;}</style><div id=\"successPrompt\">非常感谢您接受我们的访问, 并提供这么多宝贵的建议，2 秒后自动提交您的数据。</div>");
					window.timer = setTimeout(function(){$("#submitBtn").click().attr("disabled", true);},2000);
				}
                $("#nextLabel").hide();
                $("#submitLabel, #resetLabel, #resultLabel").show();
            }
        }
        window.scrollTo(0, 0);
		$("#descContent").toggle(pageId == 1);
        $("#page" + pageId).show();
    }
    if (flag) {
		if(typeof chkAccount!='undefined') {
			chkAccount.CheckAccount();
			return false
		}else {
			return true;
		}
    }
	return false;
}

//跳转事件加载
function skipAction(i) {
    var itemQ = json.survey[0].Question[i];
    if (itemQ.skip != "" && itemQ.skip != undefined) {
        $.each(itemQ.skip.split(","), function(i, item) {
            var tmp = item.indexOf("=");
            var result = item.substring(tmp + 1, item.length);
            var items = item.substring(0, tmp).split("|");
            $.each(items, function(m, itemA) {
                var flag = true;
                var flagA = new Array(true);
                var flagB = new Array(true);
                if (itemA.indexOf("!") > -1) {
                    flagA[0] = false;
                    flagB[0] = false;
                }
                itemsB = itemA.replace(/!/g, "").split("+");
                $.each(itemsB, function(n, itemB) {
                    flagA.push(true);
                    switch (itemQ.type) {
                        case "RadioButton":
                        case "CheckBox":
                            if ($("#radioItem" + itemB + ":checked").length > 0) {
                                flagB.push(true);
                            } else {
                                flagB.push(false);
                            }
                            break;
                        case "DropDownList":
                            if ($("#radioItem" + itemQ.id).children("option:selected").val().indexOf("{" + itemB + "}") > -1) {
                                flagB.push(true);
                            } else {
                                flagB.push(false);
                            }
                            break;
                        default:
                            flagB.push(false);
                            break;
                    }
                });
                var resultObj = $("#vote" + result);
                if (flagA.toString() == flagB.toString()) {
                    controlSkip(resultObj, flagA[0])
                    flag = false;
                } else {
                    controlSkip(resultObj, !flagA[0])
                }
                return flag;
            });
            $.each(json.survey[0].Question, function(l, itemC) {
                if (itemC.id.toString() == result) {
                    skipAction(l);
                    return false;
                }
            });
        });
    }
    function controlSkip(obj, action) {
        if (action) {
            obj.show();
        } else {
            obj.find("select").each(function() {
                this.selectedIndex = 0;
            });
            obj.find("input").attr("checked", false);
            obj.hide();
        }
    }
}
//页面初始化
function init() {
	$("form").attr("action","http://diaocha.sdo.com/do.ashx");
	  var domainPath = window.location.host.indexOf("diaocha.sdo.com") == -1 ? "http://diaocha.sdo.com" : "";
      $.getJSON(domainPath + "/json.ashx?jsoncallback=?", { id: $("#VoteID").val(), time: Math.round(Math.random() * 10000) }, function(data) {
		//alert(data);
        //json = eval("(" + data.replace(/\\\"/g, "\\\\\\\"").replace(/\\([^\"])/g, "\\\\$1") + ")");
		json = data;
        $.each(json.survey[0].Question, function(i, item) {
            if (item.random == "True") {
				if(item.type == "RadioButton" || item.type == "CheckBox"){
					var element = $("#vote" + item.id).find("ul.optionList>li.optionRadio");
					var Questions = new Array(element.length);
					$.each(element, function(i, me) {
						Questions[i] = me.innerHTML;
					});
					Questions.sort(function() { return Math.random() > 0.5 ? -1 : 1; });
					$.each(element, function(i, me) {
						me.innerHTML = Questions[i];
					});
				}else if(item.type == "SingleMatrix" || item.type == "MultiLineMatrix"){
					var parent = $("#vote" + item.id).find("ul.optionList .matrixList");
					var element = parent.find("tr:gt(0)");
					var Questions = new Array(element.length);
					$.each(element, function(i, me) {
						Questions[i] = $(me).clone(true);
					});
					Questions.sort(function() { return Math.random() > 0.5 ? -1 : 1; });
					element.remove();
					$.each(Questions, function(i, me) {
					   parent.append(me);
					});
				}
            }
			
            if (!item.skip == false) {
                $("#vote" + item.id).find("select[name*=radioItem]").change(function() {
                    skipAction(i);
                });
                $("#vote" + item.id).find("input[name*=radioItem]").click(function() {
                    skipAction(i);
                });
            }
        });
    });
    document.forms[0].onsubmit = null;
    if ($("ol.voteList").length > 1) {
        $("#preBtn").click(function() { checkpost($("ol.voteList:visible:first").attr("id").replace("page", ""), "pre") });
        $("#nextBtn").click(function() { checkpost($("ol.voteList:visible:first").attr("id").replace("page", ""), "next") });
    }
    $("#submitBtn").attr("disabled", false).removeAttr("onclick").click(function() { 
		if(checkpost($("ol.voteList:last").attr("id").replace("page", ""))){
			clearTimeout(window.timer);
			window.timer = null;
			this.value = "提交中...";
			return true;
		}else{
			return false;
		}
	});
}

function checkInputLength(obj) {
    var flag = true;
	if (obj.val().length > 5000) {
		alert("最多只允许 5000 个字符，请精简内容后提交！");
		obj.focus();
		flag = false;
		return false;
	}
    return flag;
}
function setStatusForChk(id) {
    $("#textItem" + id).attr("disabled", $("#_radioItem" + id + ":checked").length > 0 ? false : true);
}
function ChgOrderUp(obj) {
    obj = document.getElementById(obj);
    var OldOpt = obj.options.selectedIndex;
    if (OldOpt != -1) {
        if (OldOpt + 1 > 1) {
            OldText = obj.options[OldOpt].text;
            OldValue = obj.options[OldOpt].value;
            OldText2 = obj.options[OldOpt - 1].text;
            OldValue2 = obj.options[OldOpt - 1].value;
            obj.options[OldOpt].text = obj.options[OldOpt - 1].text;
            obj.options[OldOpt].value = obj.options[OldOpt - 1].value;
            obj.options[OldOpt - 1].text = OldText;
            obj.options[OldOpt - 1].value = OldValue;
            obj.options[OldOpt - 1].selected = true;
            obj.options[OldOpt].selected = false;
        } else {
            alert("已移至选单最上位置！");
        }
    } else {
        alert("请先选择...");
    }
}
function ChgOrderDown(obj) {
    obj = document.getElementById(obj);
    var rno = obj.options.length;
    var OldOpt = obj.options.selectedIndex;
    if (OldOpt != -1) {
        if (OldOpt + 1 < rno) {
            OldText = obj.options[OldOpt].text;
            OldValue = obj.options[OldOpt].value;
            OldText2 = obj.options[OldOpt + 1].text;
            OldValue2 = obj.options[OldOpt + 1].value;
            obj.options[OldOpt].text = obj.options[OldOpt + 1].text;
            obj.options[OldOpt].value = obj.options[OldOpt + 1].value;
            obj.options[OldOpt + 1].text = OldText;
            obj.options[OldOpt + 1].value = OldValue;
            obj.options[OldOpt + 1].selected = true;
            obj.options[OldOpt].selected = false;
        } else {
            alert("已移至选单最下位置！");
        }
    } else {
        alert("请先选择...");
    }
}
//update by dubing
function fileuploadecheck() {
    var a = document.getElementsByTagName("input");
    var post = "";
    for (var i = 0; i < a.length; i++) {
        if (a[i].type == "hidden") {
            post += a[i].name + "=" + a[i].value + "&";

        }
    }

    if (post.indexOf("filepath") == -1) {
        return true;
    }

    domainPath = window.location.host.indexOf("diaocha.sdo.com") == -1 ? "http://diaocha.sdo.com" : "";
    var webFileUrl = "../../FileCheck.ashx";
    var result = "";

    $.ajax({
        type: "POST",
        url: webFileUrl,
        data: post,
        async: false,
        success: function(msg) {
            result = msg;
            if (result == "") {
                return true;
            }
            else {
                fileflag = 2;
                alert(result);
                // alert("请检查您的附件内容或格式是否符合我们的要求，如有疑问请联系我们的管理员");
                return false;
            }
        }
    });
    if (result != "") {
        return false;
    }
}