﻿//<div class="hbs_form" formid="15">
//<input type="text" name="name" />
//<input type="radio" name="myradio" value="myradio2" />
//<input type="password" name="mypassword" />
//<textarea name="" rows="" cols=""></textarea>
//<input type="text" name="email" />
//<input type="submit"/>
//</div>

////////////////////////////////////////////////
//2009.12.18
//this functionality for support article form submit. 
////////////////////////////////////////////////
$(function() {
    try {
        var today = new Date();
        $("div.cd_save>p>label.checkin").each(function() {
            $(this).next("input.date-pick").val(today.asString());
        });
        today.setDate(today.getDate() + 1);
        $("div.cd_save>p>label.checkout").each(function() {
            $(this).next("input.date-pick").val(today.asString());
        });
    } catch (e) { }
    function reName(str) {
        //return str.replace(/[^0-9a-zA-Z-_]+/g, "_");
        return str;
    }
    $(".hbs_form .submit,.hbs_form .Submit").each(function(i) {
        $(this).click(function() {
            var isCheckPass = true;
            var fdiv = $(this).parents("div.hbs_form");
            var sformid = fdiv.attr("formid"); var sarticleid = "";
            try { sarticleid = fdiv.attr("articleid"); } catch (e) { sarticleid = 0; }
            if (sformid == undefined || sformid == "undefined") {
                sformid = "0";
            }
            var sEmailto = fdiv.attr("emailto");
            if (sEmailto == undefined || sEmailto == "undefined")
                sEmailto = "";
            var FormInceptUrl = "/ajax/FormIncept.ashx";
            var summery_desc1 = "";
            var summery_desc2 = "";
            var sDataXML = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><content>";

            if (fdiv.find("div.divitem").length > 0) {
                fdiv.find("div.divitem").each(function(i) {
                    var labelText, thisVal;
                    switch ($(this).attr("class")) {
                        case "sl_save divitem":
                        case "ml_save divitem":
                            //labelText = $.trim($(this).find(".sl_title").text());
                            //thisVal = $.trim($(this).find(":text,:password, textarea").val());
                        case "cd_save divitem":
                            try {
                                $(this).find(".sl_title").each(function(j) {
                                    if (!isCheckPass) return false;
                                    labelText = $.trim($(this).text());
                                    thisVal = $.trim($(this).siblings(":text,:password, textarea").val());
                                    if (thisVal == "" && labelText.indexOf("*") == 0) {
                                        alert(needFillTip + " " + labelText);
                                        $(this).siblings(":text,:password, textarea").focus();
                                        isCheckPass = false;
                                        return false;
                                    }
                                    sDataXML += "<item num=\"" + i + "\">";
                                    sDataXML += "<name><![CDATA[" + reName(labelText) + "]]></name>";
                                    sDataXML += "<type>text</type>";
                                    sDataXML += "<value><![CDATA[" + thisVal + "]]></value>";
                                    sDataXML += "</item>";
                                });
                            } catch (e) { }
                            if (!isCheckPass) return false;
                            break;
                        case "dd_save divitem":
                            try {
                                labelText = $.trim($(this).find(".sl_title").text());
                                thisVal = $.trim($(this).find("select").val());
                                if (thisVal == 0 && labelText.indexOf("*") == 0) {
                                    alert(needFillTip + " " + labelText);
                                    $(this).find("select").focus();
                                    isCheckPass = false;
                                    return false;
                                }
                                sDataXML += "<item num=\"" + i + "\">";
                                sDataXML += "<name><![CDATA[" + labelText + "]]></name>";
                                sDataXML += "<type>selected</type>";
                                if (thisVal == 0)
                                    sDataXML += "<value></value>";
                                else {
                                    sDataXML += "<value><![CDATA[" + thisVal + "]]></value>";
                                }
                                sDataXML += "</item>";
                            } catch (e) { }
                            break;
                        case "rb_save divitem":
                        case "cb_save divitem":
                            try {
                                labelText = $.trim($(this).find(".sl_title").eq(0).text());
                                thisVal = "";
                                $(this).find("input:checked").each(function() {
                                    if (thisVal != "") thisVal += ", ";
                                    thisVal += $(this).val();
                                });
                                if (thisVal == undefined || thisVal == "") {
                                    if (labelText.indexOf("*") == 0) {
                                        alert(needFillTip + " " + labelText);
                                        $(this).find("input").eq(0).focus();
                                        isCheckPass = false;
                                        return false;
                                    }
                                }
                                sDataXML += "<item num=\"" + i + "\">";
                                sDataXML += "<name><![CDATA[" + reName(labelText) + "]]></name>";
                                sDataXML += "<type>checkbox</type>";
                                sDataXML += "<value><![CDATA[" + thisVal + "]]></value>";
                                sDataXML += "</item>";
                            } catch (e) { }
                            break;
                        default:
                            try {
                                labelText = $.trim($(this).find(".sl_title").text());
                                thisVal = $.trim($(this).find(":text,:password, textarea,input,select").val());
                                if (thisVal != "") {
                                    sDataXML += "<item num=\"" + i + "\">";
                                    sDataXML += "<name><![CDATA[" + reName(labelText) + "]]></name>";
                                    sDataXML += "<type>orther</type>";
                                    sDataXML += "<value><![CDATA[" + thisVal + "]]></value>";
                                    sDataXML += "</item>";
                                }
                            } catch (e) { }
                            break;
                    }
                    if (i == 0) summery_desc1 = thisVal;
                    if (i == 1) summery_desc2 = thisVal;
                });
            } else {
                fdiv.find(":text,:password, textarea").each(function(i) {//text password textarea
                    sDataXML += "<item num=\"" + i + "\">";
                    sDataXML += "<name><![CDATA[" + reName($(this).attr("name")) + "]]></name>";
                    sDataXML += "<type>" + $(this).attr("type") + "</type>";
                    sDataXML += "<value><![CDATA[" + $(this).val() + "]]></value>";
                    sDataXML += "</item>";
                    if (i == 0) summery_desc1 = $(this).val();
                    if (i == 1) summery_desc2 = $(this).val();
                });
                fdiv.find("select").each(function(i) {//select
                    sDataXML += "<item num=\"" + i + "\">";
                    sDataXML += "<name><![CDATA[" + reName($(this).attr("name")) + "]]></name>";
                    sDataXML += "<type>selected</type>";
                    if ($(this).val() == 0)
                        sDataXML += "<value></value>";
                    else {
                        sDataXML += "<value><![CDATA[" + $(this).val() + "]]></value>";
                    }
                    sDataXML += "</item>";
                });
                fdiv.find("input:checked").each(function(i) {// radio checkbox
                    sDataXML += "<item num=\"" + i + "\">";
                    sDataXML += "<name><![CDATA[" + reName($(this).attr("name")) + "]]></name>";
                    sDataXML += "<type>checkbox</type>";
                    sDataXML += "<value><![CDATA[" + $(this).val() + "]]></value>";
                    sDataXML += "</item>";
                });
            }
            sDataXML += "</content>";
            if (isCheckPass) {
                var submitText = $(this).val();
                if (submitText == "") submitText = $(this).html(); try {
                    $(this).val($(this).val() + "...").attr("disabled", "disabled").html($(this).val() + "...");
                } catch (e) { }
                var submitButton = $(this);
                $.post(FormInceptUrl, {
                    formid: sformid,
                    articleid: sarticleid,
                    emailto: sEmailto,
                    summery1: summery_desc1,
                    summery2: summery_desc2,
                    urlreferrer: document.URL,
                    dataxml: sDataXML
                }, function(responseText, textStatus, XMLHttpRequest) {
                    var result = responseText.toString();
                    //var submitButton = $(".hbs_form[formid='" + sformid + "'] .submit,.hbs_form[formid='" + sformid + "'] .Submit");
                    if ((result == "ok" || result == "Successfully") && submitButton.attr("successurl") != null)
                        location.href = submitButton.attr("successurl");
                    else {
                        if (result.substr(0, 5) != "error") {
                            fdiv.find(":text,:password, textarea").not(".date-pick").val("");
                            fdiv.find("input:checked").removeAttr("checked");
                            fdiv.find("select").val("0");
                        }
                        alert(result);

                        submitButton.removeAttr("disabled");
                        if (submitButton == "")
                            submitButton.removeAttr("value");
                        else {
                            try {
                                submitButton.val(submitText).html(submitText);
                            } catch (e) { }
                        }
                    }
                });
            }
            return false;
        });
    });
});

