
var Qs = new Array();
var temp = "";
var temp_sep = "_-_";
var q_type = "";

function loadQs(IsSwapClicked) {
    jQuery("#que_disable").hide();
    IsSwapClicked = IsSwapClicked && IsSwapClicked != "undefined" ? IsSwapClicked : "false";
    var d = jQuery("#QDiv").eq(0);
    var surveyid = jQuery(":input[name='hdnSId']", d).val();
    jQuery.postJSON(my_surveys, { action: "list", entity: "question", surveyid: surveyid, reqType: "ajax" }, function(data) {
        popO(d, { width: 750 });
        temp = IsSwapClicked == 'true' ? temp : "";
        //var hdn = jQuery(":input[name='hdnSwapToId']", d);
        if (temp == "") jQuery(":input[name='hdnSwapToId']", d).val("");
        __g = data;
        Qs = [];
        if (data && data.table && data.table.rows && data.table.rows.length > 0) {
            Qs = objectify(data).table.rows;
        }
        formatQList();
    });
}

function loadQ(id) {
    resetForm("#QForm");
    var surveyid = jQuery("#QDiv :input[name='hdnSId']").val();
    if (id && id != "undefined") {
        jQuery.postJSON(my_surveys, { action: "get", entity: "question", qid: id, surveyid: surveyid, reqType: "ajax" }, function(obj) {
            if (obj.msg) { showError(obj.msg); return; }
            if (obj) {
                var d = jQuery("#QForm");
                popO("#QForm");
                jQuery("#qid", d).val(id);
                jQuery("#q_text", d).val(obj.q_text.replace(/\"/g, "\"").replace(/\\'/g, "\'"));
                jQuery("#layout", d).val(obj.layout);

                obj.q_type = obj.q_type == "comment" ? "0" : (obj.q_type == "check" ? "1" : (obj.q_type == "radio" ? "2" : obj.q_type));
                jQuery("#q_type", d).val(obj.q_type);
                obj.a_options = obj.a_options.replace(/\\'/g, "\'");
                if (obj.q_type == "1" || obj.q_type == "2" || obj.q_type == "5") {
                    jQuery("#MultipleChoice").eq(0).val(obj.a_options);
                    if (obj.other_text_label == 'Other') jQuery("#MultipleChoice_Other").val(["MultipleChoice_Other"]);

                } else if (obj.q_type == "6") {
                    jQuery("#MultipleLabels").eq(0).val(obj.a_options);
                } else if (obj.q_type == "7" || obj.q_type == "8") {
                    jQuery("#ColumnHeaders").eq(0).val(obj.a_options.split(temp_sep)[0]);
                    jQuery("#RowHeaders").eq(0).val(obj.a_options.split(temp_sep)[1]);
                } else if (obj.q_type == "9") {
                    var vals = obj.a_options.split("\n");
                    jQuery("input:checkbox", jQuery("#divOptions_3")).val(vals);
                }
                showOptionDiv();
                obj.layout = obj.q_type == "comment" ? 1 : obj.layout;
                jQuery("#layout").get(0).selectedIndex = parseInt(obj.layout);
            }
        });
    }
    else {
        jQuery.postJSON(my_surveys, { action: "AllowNewQuestion", entity: "question", surveyid: surveyid, reqType: "ajax" }, function(d) {
            if (d && d.Result && d.Result == "True") {
                jQuery("#que_disable").hide();
                popO("#QForm");
            }
            else if (d && d.Result && d.Result == "showdiv")
                jQuery("#que_disable").show();
        });
    }
    jQuery('#questionPreview').hide();
}

function saveQ() {
    var d = jQuery("#QSection").eq(0);
    var id = jQuery("#qid", d).val();
    id = id != null && id != "undefined" && id != "" ? parseInt(id) : -1;
    var obj = {};
    var a_options = "";
    obj.qid = id;
    obj.q_text = jQuery("#q_text", d).val().replace(/'/g, "\\'");
    obj.q_type = jQuery("#q_type", d).val();
    obj.layout = jQuery("#layout", d).val();
    if (jQuery("#MultipleChoice_Other")[0].checked)
        obj.other_text_label = "Other";
    switch (obj.q_type) {
        case "1":
        case "2":
        case "5":
            a_options = jQuery("#MultipleChoice").eq(0).val();
            break;
        case "6":
            a_options = jQuery("#MultipleLabels").eq(0).val();
            break;
        case "7":
        case "8":
            a_options = jQuery("#ColumnHeaders").eq(0).val() + temp_sep + jQuery("#RowHeaders").eq(0).val();
            break;
        case "9":
            var ret = "";
            jQuery("#divOptions_3 input:checked").each(function() {
                ret += this.value + "\n";
            });
            a_options = rtrim(ret, ",");
            //a_options = ret.trim();
            break;
    }
    while (a_options.endsWith("\n")) {
        a_options = a_options.substr(0, a_options.length - 1)
        //a_options = a_options.replace(/\\n$/, "");
    }

    obj.a_options = a_options.replace(/'/g, "\\'");

    obj.action = id === -1 ? "save" : "update";
    obj.entity = "question";
    obj.surveyid = jQuery("#QDiv :input[name='hdnSId']").val();
    obj.reqType = "ajax";
    jQuery.postJSON(my_surveys, obj, function(data) {
        if (data.error) showError(data.error)
        else {
            loadQs();
            popC("#QForm");
        }
    });
}

function delQ(id) {
    if (confirm('Once deleted, the question will not be recoverable. Are you sure you want to delete this question?')) {
        var id = id != null && id != "undefined" && id != "" ? parseInt(id) : -1;
        if (id > -1) {
            var surveyid = jQuery("#QDiv :input[name='hdnSId']").val();
            jQuery.postJSON(my_surveys, { action: "delete", entity: "question", qid: id, surveyid: surveyid, reqType: "ajax" }, function(data) { loadQs(); });
        }
    }
}

function dupQ(id) {
    var id = id != null && id != "undefined" && id != "" ? parseInt(id) : -1;
    if (id > -1) {
        var surveyid = jQuery("#QDiv :input[name='hdnSId']").val();
        jQuery.postJSON(my_surveys, { action: "copy", entity: "question", qid: id, surveyid: surveyid, reqType: "ajax" }, function(data) { loadQs(); });
    }
}

function orderQ(id, dir) {
    var d = jQuery("#QDiv").eq(0);
    dir = dir === 1 ? 1 : 0; /* 1 for UP and 0 for Down*/
    var surveyid = jQuery(":input[name='hdnSId']", d).val();
    jQuery.postJSON(my_surveys, { action: "order", entity: "question", qid: id, dir: dir, surveyid: surveyid, reqType: "ajax" }, function(data) {
        loadQs();
    });
}

function setQ(id) {
    var d = jQuery("#QDiv").eq(0);
    var surveyid = jQuery(":input[name='hdnSId']", d).val();
    jQuery.postJSON(my_surveys, { action: "set", entity: "question", qid: id, surveyid: surveyid, reqType: "ajax" }, function(data) {
        loadQs();
    });
}

function resetQ() {
    var d = jQuery("#QDiv").eq(0);
    var surveyid = jQuery(":input[name='hdnSId']", d).val();
    jQuery.postJSON(my_surveys, { action: "reset", entity: "question", surveyid: surveyid, reqType: "ajax" }, function(data) {
        loadQs();
    });
}

function swapQ(id) {
    var d = jQuery("#QDiv").eq(0);
    var surveyid = jQuery(":input[name='hdnSId']", d).val();
    var d = jQuery("#QListFormat").eq(0);
    var hdnQid = jQuery(":input[name='hdnSwapToId']", d).val();
    if (hdnQid == undefined || hdnQid == "") {
        jQuery(":input[name='hdnSwapToId']", d).val(id);
        temp = id;
        loadQs('true');
    }
    else {
        temp = "";
        jQuery.postJSON(my_surveys, { action: "swap", entity: "question", qid: id, surveyid: surveyid, swapTo: hdnQid, reqType: "ajax" }, function(data) {
            jQuery(":input[name='hdnSwapToId']", d).val("");
            loadQs();
        });
    }
}

function aType(name, divNum, layouts) {
    this.name = _default(name, "");
    this.divNum = _default(divNum, -1);
    this.layouts = _default(layouts, []);
}

var aTypes = [
	new aType("Text input entry", -1, ["Single line TextBox", "Comment", "Eassay Box", "Descriptive Text"]),
	new aType("Multiple Choice - Multiple Answers", 0, ["CheckBox", "List Box"]),
	new aType("Multiple Choice - Single Answer", 0, ["Radio", "Drop down"]),
	new aType("Date", -1, []),
	new aType("Image", -1, []),
	new aType("Rating Scale", 0, []),
	new aType("Multiple TextBox with labels", 1, []),
	new aType("Matrix Of Choices - One answer per Row", 2, []),
	new aType("Matrix Of Choices - Multiple answers per Row", 2, []),
	new aType("Demographic Info", 3, [])
];

//function loadAnsTypes() {
//    var ret = "";
//    for (var i = 0, j = 0; i < aTypes.length; i++) {
//        if (j == 4) j++;
//        ret += "<option value='" + j + "'>" + aTypes[i].name + "</option>";
//        j++;
//    }
//    jQuery("#q_type").eq(0).html(ret);
//}

function loadAnsTypes() {
    var ret = "";
    for (var i = 0; i < aTypes.length; i++) {
        if (i == 4) continue;
        ret += "<option value='" + i + "'>" + aTypes[i].name + "</option>";
    }
    jQuery("#q_type").eq(0).html(ret);
}

function showHideCheck() {
    var opt = jQuery("#layout").eq(0).val();
    if (opt != "undefined") {
        if (opt == 0) jQuery("#divOptions_other").eq(0).show();
        else jQuery("#divOptions_other").eq(0).hide();
    }
}

function showOptionDiv() {
    var opt = jQuery("#q_type").eq(0).val();
    if (opt != "undefined") {
        jQuery("#divOptions div").hide();
        if (aTypes[opt].divNum != -1) {
            jQuery("#divOptions_" + aTypes[opt].divNum).eq(0).show();
            if (opt == 1 || opt == 2) jQuery("#divOptions_other").eq(0).show();
        }
        if (opt == "0" || opt == "1" || opt == "2")
            loadDisplayLayouts(opt);
        else
            jQuery("#divDisLayout").eq(0).hide();
    }
}

function loadDisplayLayouts(opt) {
    var ret = "";
    jQuery("#divDisLayout").eq(0).show();
    if (aTypes[opt]) {
        for (var i = 0; i < aTypes[opt].layouts.length; i++) {
            ret += "<option value='" + i + "'>" + aTypes[opt].layouts[i] + "</option>";
        }
    }
    jQuery("#layout").eq(0).html(ret);
}


function showPreview() {
    var txt = jQuery("#q_text").eq(0).val();
    while (txt.endsWith("\n")) {
        txt = txt.substr(0, txt.length - 1)
    }
    if (txt.length == 0) {
        showError("Question text should not be null.")
        jQuery("#questionPreview").hide();
        return;
    }
    if (txt.indexOf(">") > 0 || txt.indexOf("<") > 0) {
        //showError("Question text should not contains special characters.");
        showError("special characters like \">\" or \"<\" are not allowed in question text.");
        jQuery("#questionPreview").hide();
        return;
    }
    var ret = "";
    var selOpt = jQuery("#q_type").eq(0).val();
    var selDispOpt = parseInt(jQuery("#layout").eq(0).val());
    //ret = generateHTML(selOpt, selDispOpt);
    generateHTML(jQuery("#dAns"));
    ret = jQuery("#dAns").eq(0).html();
    if (rtrim(ret, " ") != "") {
        jQuery("#questionPreview").show();

        var que = jQuery("#q_text").eq(0).val().replace(/\\'/g, "\'");
        if (que.length > 80) {
            jQuery.postJSON(my_surveys, { action: "split", entity: "question", q_text: que, reqType: "ajax" }, function(data) {
                if (data.Result.length > 0)
                    jQuery("#sQ").eq(0).text(data.Result);
            });
        }
        else
            jQuery("#sQ").eq(0).text(que);

    }
}

function generateHTML(target) {
    var data = {};
    data.q_type = jQuery("#q_type").eq(0).val();
    data.layout = parseInt(jQuery("#layout").eq(0).val());
    data.a_options = "";
    var a_options = "";
    switch (data.q_type) {
        case "1":
        case "2":
            a_options = jQuery("#MultipleChoice").eq(0).val();
            data.other_text_label = jQuery("#MultipleChoice_Other").get(0).checked ? "Other" : "";
            break;
        case "5":
            a_options = jQuery("#MultipleChoice").eq(0).val();
            break;
        case "6":
            a_options = jQuery("#MultipleLabels").eq(0).val();
            break;
        case "7":
        case "8":
            a_options = jQuery("#ColumnHeaders").eq(0).val() + temp_sep + jQuery("#RowHeaders").eq(0).val();
            break;
        case "9":
            var c_names = "";
            jQuery("#divOptions_3 input:checked").each(function() {
                c_names += this.value + "\n";
            });
            a_options = rtrim(c_names, "\n");
            //a_options = a_options.trim();
            break;
        default:
            a_options = "";
            break;
    }
    //alert(a_options)
    while (a_options.endsWith("\n")) {
        a_options = a_options.substr(0, a_options.length - 1)
        //a_options = a_options.replace(/\\n$/, "");
    }
    //alert(a_options)
    data.a_options = a_options.replace(/\\'/g, "\'");

    generateAnswer(data, target);
}

//function formatQList1(id) {
//    var ret = "", s = null;
//    var fmt = jQuery("#QListFormat div").eq(0).html();
//    for (var i = 0; i < Qs.length; i++) {
//        s = Qs[i];
//        ret += formatString(fmt, (i % 2 == 0 ? "row" : "alt_row")
//			, s.q_text
//			, generateHTMLForAnswer(s)
//			, s.qid
//			);
//    }
//    jQuery("#QList").eq(0).html(ret);
//}

function formatQList(id) {
    var ret = "", s = null;
    var fmt = jQuery("#QListFormat div").eq(0).outerHTML();
    jQuery("#QList").empty();
    var ret1 = "", ret2 = "", count = 0;
    var srno = 1;

    /*FOR SORT ORDER NOT EQUAL TO ZERO*/
    for (var i = 0; i < Qs.length; i++) {
        s = Qs[i];
        if (s.sort_order != 0 && s.sort_order < 1000) {
            count += 1;
            ret2 = formatString(fmt
            /*{0}*/, (i % 2 == 0 ? "row" : "alt_row")
            /*{1}*/, s.q_text.replace(/\\'/g, "\'")
            /*{2}*/, ""
            /*{3}*/, s.qid
            /*{4}*/, "style='display:none'"
            /*{5}*/, 0
            /*{6}*/, temp == "" ? "Swap" : "SwapWith"
            /*{7}*/, (srno <= Qs.length ? srno++ : 0)
			);

            jQuery("#QList").append(ret2);
            var d = jQuery("#QList").children("div:last");
            generateAnswer(s, jQuery(".answer_section", d));

        }
    }

    /*FOR SORT ORDER EQUAL TO ZERO/THOUSAND*/
    for (var i = 0; i < Qs.length; i++) {
        s = Qs[i];
        if (s.sort_order == null || s.sort_order == 0 || s.sort_order == 1000) {
            ret1 = formatString(fmt
            /*{0}*/, (i % 2 == 0 ? "row" : "alt_row")
            /*{1}*/, s.q_text
            /*{2}*/, ""
            /*{3}*/, s.qid
            /*{4}*/, s.sort_order == 1000 ? "style='display:inline-block'" : "style='display:none'"
            /*{5}*/, count + 1
            /*{6}*/, temp == "" ? "Swap" : "SwapWith"
            /*{7}*/, (srno <= Qs.length ? srno++ : 0)
			);

            jQuery("#QList").append(ret1);
            var d = jQuery("#QList").children("div:last");
            generateAnswer(s, jQuery(".answer_section", d));

        }
    }
}

function generateAnswer(data, target) {
    var t = jQuery(target);
    if (_default(target, "") == "" || t.length == 0)
        return;

    if (data.a_options.indexOf(">") != -1 || data.a_options.indexOf("<") != -1) {
        jQuery("#questionPreview").hide();
        //showError("Options should not Contains special characters.");
        showError("special characters like \">\" or \"<\" are not allowed in options.");

        t.html("");
        return;
    }

    var ret = _default(generateHTMLForAnswer(data), "");
    t.html(ret);
    if (ret != "")
        postHTMLControlEvents(data, t);
}

function generateHTMLForAnswer(data) {
    var ret = "";
    if (data == undefined)
        return ret;
    var selOpt = data.q_type;
    var selDispOpt = parseInt(data.layout);
    data.a_options = data.a_options.replace(/\\'/g, "\'");

    //selOpt = selOpt =="comment"?"0":(selOpt=="radio"?"2":(selOpt=="check"?"1":selOpt));

    switch (selOpt) {
        case "comment": /* HR : 2010-03-09 For Backward compatibility for q_type */
            ret += "<textarea cols='50' rows='4' name='t" + data.qid + "'></textarea><br /><br />";
            break;
        case "0": //"Single TextBox/Comment/Eassay Box/Descriptive Text"
            if (selDispOpt === 0)
                ret += "<input type='text' name='t" + data.qid + "' /><br /><br />";
            if (selDispOpt === 1)
                ret += "<textarea cols='50' rows='4' name='t" + data.qid + "'></textarea><br /><br />";
            if (selDispOpt === 2)
                ret += "<textarea cols='70' rows='12' name='t" + data.qid + "'></textarea><br /><br />";
            if (selDispOpt === 3)
                ret += "<textarea cols='50' rows='8' name='t" + data.qid + "'></textarea><br /><br />";
            break;
        case "check": /* HR : 2010-03-09 For Backward compatibility for q_type */
            if (data.a_options.length == 0) {
                showError("Answer options should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            var selOpts = data.a_options.split("\n");
            for (var i = 0; i < selOpts.length; i++) {
                if (selOpts[i].length > 0)
                    ret += "<label><input type='checkbox' name='c" + data.qid + "' value='" + i + "' />" + selOpts[i] + "</label><br/>";
            }
            if (data.other_text_label == 'Other')
                ret += "<label><input type='checkbox' name='c" + data.qid + "' value='-1' />(Other)&nbsp;</label><input type='text' name='txtOther" + data.qid + "'/><br/>";

            ret = "<tr><td>" + ret + "</td></tr>";
            ret = "<table>" + ret + "</table>";
            break;
        case "1": //"Multiple Choice - Multiple Answers/CheckBox/List Box"
            if (data.a_options.length == 0) {
                showError("Answer options should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }

            if (data.a_options.length > 0) {
                var selOpts = data.a_options.split("\n");
                for (var i = 0; i < selOpts.length; i++) {
                    if (selOpts[i].length > 0) {
                        if (selDispOpt === 0)
                            ret += "<label><input type='checkbox' name='c" + data.qid + "' value='" + i + "' />" + selOpts[i] + "</label><br/>";
                        else
                            ret += "<option value='" + i + "'>" + selOpts[i] + "</option>";
                    }
                }
                /* HR : 2010-03-11 For let user enter their own answer */
                if (data.other_text_label == 'Other' && selDispOpt === 0) {
                    ret += "<label><input type='checkbox' name='c" + data.qid + "' value='-1' />(Other)&nbsp;</label><input type='text' name='txtOther" + data.qid + "'/><br/>";
                }
            }
            if (selDispOpt === 1)
                ret = "<select multiple='true' rows='5' name='s" + data.qid + "' >" + ret + "</select>";

            ret = "<tr><td>" + ret + "</td></tr>";
            ret = "<table>" + ret + "</table>";

            break;
        case "radio": //HR : 2010-03-09 For Backward compatibility for q_type
            if (data.a_options.length == 0) {
                showError("Answer options should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            var selOpts = data.a_options.split("\n");
            for (var i = 0; i < selOpts.length; i++) {
                if (selOpts[i].length > 0)
                    ret += "<label><input type='radio' name='r" + data.qid + "' value='" + i + "' />" + selOpts[i] + "</label><br/>";
            }
            if (data.other_text_label == 'Other')
                ret += "<label><input type='radio' name='r" + data.qid + "' value='-1' />(Other)&nbsp;</label><input type='text' name='txtOther" + data.qid + "'/><br/>"

            ret = "<tr><td>" + ret + "</td></tr>";
            ret = "<table>" + ret + "</table>";
            break;
        case "2": //"Multiple Choice - Single Answer/Radio/Drop down"
            if (data.a_options.length == 0) {
                showError("Answer options should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            if (data.a_options.length > 0) {
                var selOpts = data.a_options.split("\n");
                for (var i = 0; i < selOpts.length; i++) {
                    if (selOpts[i].length > 0) {
                        if (selDispOpt === 0)
                            ret += "<label><input type='radio' name='r" + data.qid + "' value='" + i + "' />" + selOpts[i] + "</label><br/>";
                        else
                            ret += "<option value='" + i + "'>" + selOpts[i] + "</option>";
                    }
                }
                /* HR : 2010-03-11 For let user enter their own answer */
                if (data.other_text_label == 'Other' && selDispOpt === 0)
                    ret += "<label><input type='radio' name='r" + data.qid + "' value='-1' />(Other)&nbsp;</label><input type='text' name='txtOther" + data.qid + "'/> <br/>"
            }
            if (selDispOpt === 1)
                ret = "<select name='s" + data.qid + "'>" + ret + "</select>";


            ret = "<tr><td>" + ret + "</td></tr>";
            ret = "<table>" + ret + "</table>";
            break;
        case "3": //"Date/Time"
            ret += "<input class='datepicker' type='text' readonly=true name='t" + data.qid + "'><br /><br />";
            break;
        //        case "4": //"Image"                    
        //            ret += "<input type='file' name='f" + data.qid + "'/>";                    
        //            break;                    
        case "5": //"Rating Scale"
            if (data.a_options.length == 0) {
                showError("Answer options should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            ret += "Rating: <span id='sRate'></span><br/><div id='slider'></div><br />";
            break;
        case "6": //"Multiple TextBox with labels"
            if (data.a_options.length == 0) {
                showError("Answer options should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            data.a_options = rtrim(data.a_options, " ");
            var selOpts = data.a_options.split("\n");
            for (var i = 0; i < selOpts.length; i++) {
                if (selOpts[i].length > 0)
                    ret += "<tr><td>" + selOpts[i] + "</td><td><input type='text' name='tl" + i + "'/></td></tr>";
            }
            ret = "<table>" + ret + "</table>";
            break;
        case "7": //"Matrix Of Choices - One answer per Row/Rows Of Drop Down"

            if (data.a_options.split(temp_sep)[0].length == 0) {
                showError("Answer options for Columns should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            else if (data.a_options.split(temp_sep)[1].length == 0) {
                showError("Answer options for Rows should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            var cols = data.a_options.split(temp_sep)[0].split("\n");
            var rows = data.a_options.split(temp_sep)[1].split("\n");
            var col_cnt = cols.length, row_cnt = rows.length;
            for (var i = 0; i < col_cnt; i++) {
                if (cols[i].length > 0)
                    ret += "<th class='MatrixRow' align='center' style='background-color:#EFF8FF;'>" + cols[i] + "</th>";
            }
            ret = "<tr><th> </th>" + ret + "</tr>";
            for (var i = 0; i < row_cnt; i++) {
                if (rows[i].length > 0) {
                    ret += "<tr><th align='left' class='MatrixRow' style='background-color:#EFF8FF;'>" + rows[i] + "</th>";
                    for (var j = 0; j < col_cnt; j++) {
                        if (cols[j].length > 0)
                        //HR: 2010-04-12
                        //Need to make radio button name unique for each question div.
                        //Mainly used in OnePageSurvey
                        //ret += "<td align='center'><input type='radio' id='(" + i + "," + j + ")' name='r" + i + "' value='" + j + "'/></td>";
                            ret += "<td align='center'><input type='radio' id='(" + i + "," + j + ")' name='r" + data.qid + "_" + i + "' value='" + j + "'/></td>";
                    }
                    ret += "</tr>";
                }
            }
            ret = "<table>" + ret + "</table>";
            break;
        case "8": //"Matrix Of Choices - Multiple answera per Row/Rows Of List box"
            if (data.a_options.split(temp_sep)[0].length == 0) {
                showError("Answer options for Columns should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            else if (data.a_options.split(temp_sep)[1] == 0) {
                showError("Answer options for Rows should not be null.")
                jQuery("#questionPreview").hide();
                return;
            }
            var cols = data.a_options.split(temp_sep)[0].split("\n");
            var rows = data.a_options.split(temp_sep)[1].split("\n");
            var col_cnt = cols.length, row_cnt = rows.length;
            for (var i = 0; i < col_cnt; i++) {
                if (cols[i].length > 0)
                    ret += "<th class='MatrixRow'>" + cols[i] + "</th>";
            }
            ret = "<tr><th> </th>" + ret + "</tr>";
            for (var i = 0; i < row_cnt; i++) {
                if (rows[i].length > 0) {
                    ret += "<tr><th  align='left' class='MatrixRow'>" + rows[i] + "</th>";
                    for (var j = 0; j < col_cnt; j++) {
                        if (cols[j].length > 0)
                            ret += "<td  align='center'><input type='checkbox' id='(" + i + "," + j + ")' name='r" + i + "' value='" + j + "'/></td>";
                    }
                    ret += "</tr>";
                }
            }
            ret = "<table>" + ret + "</table>";
            break;
        case "9": //Demographic info
            if (data.a_options.length == 0) {
                showError("You must select demographic fields.")
                jQuery("#questionPreview").hide();
                return;
            }
            var selOpts = data.a_options.split("\n");
            for (var i = 0; i < selOpts.length; i++) {
                ret += "<tr><td>" + selOpts[i] + "</td><td><input type='text' name='ctl" + i + "'/></td></tr>";
            }
            ret = "<table>" + ret + "</table>";
            break;
    }
    return ret;
}

function postHTMLControlEvents(q, parent) {
    //var selOpt = parseInt(q.q_type); /*HR: For Backward Compatibility for radio,comment and check type */

    var selOpt = q.q_type;
    var selDispOpt = parseInt(q.layout);
    if (selOpt == "3") {
        jQuery(".datepicker", parent).datepicker();
    }
    if (selOpt == "5") {
        var selOpts = q.a_options.split("\n");
        jQuery("#slider", parent).slider({
            value: 0,
            min: 0,
            max: selOpts.length - 1,
            step: 1,
            slide: function(event, ui) {
                jQuery("#sRate", parent).text(selOpts[ui.value]);
            }
        });
        jQuery("#sRate", parent).text(selOpts[jQuery("#slider", parent).slider("value")]);
    }
}


