﻿/*!
* 用于获取字符串的拼音码 
*
* Copyright (c) 2009 Shiqiang Feng, 133342021@qq.com, http://www.e-2c.cn/
* 
* 参数说明：
*  (1). status: A表示获取简拼,C表示获取全拼
*  (2). key: 需处理的字符串
*
* Created Date: 2009-07-02 17:42:16 
* Edit Date:  
*/

$.fn.GetPinyin = function(status) {
    return $.ajax({ url: "/Resources/Services/GetPinyin.ashx?status=" + status + "&key=" + encodeURI($(this).val()), async: false }).responseText;
}
/*!
* 用于获取Rss
*
* Copyright (c) 2009 Shiqiang Feng, 133342021@qq.com, http://www.e-2c.cn/
* 
* 参数说明：
*  (1). option.Url: Rss源(http://www.asp.net/news/rss.ashx)
*  (2). option.TotalRecords: 获取Rss条数
*
* Created Date: 2009-07-02 17:42:16 
* Edit Date:  
*/

function GetRss(option) {
    return $.ajax({ url: "/Resources/Services/GetRss.ashx?Url=" + option.Url + "&TotalRecords=" + option.TotalRecords, async: false }).responseText;
}

/*!
* select的操作.
*
* Copyright (c) 2009 Shiqiang Feng, 133342021@qq.com, http://www.e-2c.cn/
* 
* 本js文件为jquery类库的一个插件,主要实现对select的操作.
*
* Created Date: 2009-07-03 10:42:16 
* Edit Date:  
*/

//得到select项的个数
$.fn.getSelectSize = function() {
    return $(this).get(0).options.length;
}

//获得选中项的索引
$.fn.getSelectedIndex = function() {
    return $(this).get(0).selectedIndex;
}

//获得当前选中项的文本
$.fn.getSelectedText = function() {
    if (this.size() == 0) {
        alert("下拉框中无选项");
        return "-100";
    }
    else {
        var index = this.getSelectedIndex(); //
        return $(this).get(0).options[index].text;
    }
}

//获得当前选中项的值
$.fn.getSelectedValue = function() {
    if (this.size() == 0) {
        alert("下拉框中无选项");
        return "-100";
    }
    else {
        return jQuery(this).val();
    }
}

//设置select中值为value的项为选中
$.fn.setSelectedValue = function(value) {
    $(this).get(0).value = value;
}

//设置select中文本为text的第一项被选中
$.fn.setSelectedText = function(text) {
    var isExist = false;
    var count = this.size();
    for (var i = 0; i < count; i++) {
        if ($(this).get(0).options[i].text == text) {
            $(this).get(0).options[i].selected = true;
            isExist = true;
            break;
        }
    }
    if (!isExist) {
        alert("下拉框中不存在该项");
    }
}

//设置选中指定索引项
$.fn.setSelectedIndex = function(index) {
    var count = this.size();
    if (index >= count || index < 0) {
        alert("选中项索引超出范围");
    }
    else {
        $(this).get(0).selectedIndex = index;
    }
}

//判断select项中是否存在值为value的项
$.fn.isExistItem = function(value) {
    var isExist = false;
    var count = this.size();
    for (var i = 0; i < count; i++) {
        if ($(this).get(0).options[i].value == value) {
            isExist = true;
            break;
        }
    }
    return isExist;
}

//向select中添加一项，显示内容为text，值为value,如果该项值已存在，则提示
$.fn.addOptionToSelect = function(text, value) {
    if (this.isExistItem(value)) {
        alert("待添加项的值已存在");
    }
    else {
        $(this).get(0).options.add(new Option(text, value));
    }
}

//删除select中值为value的项，如果该项不存在，则提示
$.fn.removeSelectItem = function(value) {
    if (this.isExistItem(value)) {
        var count = this.size();
        for (var i = 0; i < count; i++) {
            if ($(this).get(0).options[i].value == value) {
                $(this).get(0).remove(i);
                break;
            }
        }
    }
    else {
        alert("待删除的项不存在!");
    }
}

//删除select中指定索引的项
$.fn.removeSelectIndex = function(index) {
    var count = this.size();
    if (index >= count || index < 0) {
        alert("待删除项索引超出范围");
    }
    else {
        $(this).get(0).remove(index);
    }
}

//删除select中选定的项
$.fn.removeSelectSelected = function() {
    var index = this.getSelectedIndex();
    this.removeIndex(index);
}

//清除select中的所有项
$.fn.clearSelectAll = function() {
    $(this).get(0).options.length = 0;
}

//判断select中值为value的项是否存在，并且设为选中
$.fn.CheckItemAndSetSelectedValue = function(value) {

    if ($(this).isExistItem(value)) {

        $(this).setSelectedValue(value);
    }
}

/*!
* 复选框CHECKBOX全选、反选
*
* Copyright (c) 2009 Shiqiang Feng, 133342021@qq.com, http://www.e-2c.cn/
* 
* 本js文件为jquery类库的一个插件,主要实现对CHECKBOX的操作.
*
* 参数说明:
* groupName:<input name="%groupName%" type="checkbox" />即[$('input[name=groupName]')],默认[$(":checkbox")]表示当前所有<input type="checkbox" />
* checked:默认true表示全选;false表示取消全选
*
* eg:
* onclick="$(this).MultiCheck({groupName:'GroupCheckBox',checked:false}) 
* onclick="$(this).MultiCheck({groupName:'GroupCheckBox'})
*
* Created Date: 2009-07-16 9:53:23 
* Edit Date:  
*/

$.fn.MultiCheck = function(options) {

    settings = $.extend({
        groupName: '',
        checked: true
    }, options || {});

    var groupTarget = (settings.groupName == '') ? ':checkbox' : 'input[name=' + settings.groupName + ']';

    switch (settings.checked) {
        case true:
            $(groupTarget).each(function() { this.checked = true; });
            break;
        default:
            $(groupTarget).each(function() { this.checked = false; });
            break;
    }
};

$.fn.HasCheck = function(options) {

    settings = $.extend({
        groupName: '',
        msg: '请选择需要操作的项目!'
    }, options || {});

    var hasItem = false;
    $('input[name=' + settings.groupName + ']').each(function() {

        if (this.checked) {
            hasItem = true;
            return false;
        }
    });

    if (hasItem == true) {
        if (!confirm("数据将无法恢复,您确认要继续此操作吗?")) return false;

    }
    else {
        alert(settings.msg);
        return false;
    }
    return true;
};

/*!
* 用于获取json数据填充下拉框
*
* Copyright (c) 2009 Shiqiang Feng, 133342021@qq.com, http://www.e-2c.cn/
* 
* 参数说明：
*  (1). text: 请求返回的数据中下拉列表框选项文本的字段，默认为"text” 
*  (2). value: 请求返回的数据中下拉列表框选项值的字段，默认为"value” 
*  (3). selected: 数值型，填充选项后第几项为选中状态，默认为0 
*  (4). keepold: 布尔类型，是否保留下拉列表框选项原有选项，默认为不保留 
*  (5). options: { textfield: "A", valuefiled: "B" },设置A,B参数名
*
* $.fn.cmsFillOptions
* 参数说明：
*  (1). type: 数据源类型(json)
*  (2). options: { textfield: "A", valuefiled: "B" },设置A,B参数名
* 
* cmsAddOptions(select, datas)
* 参数说明：
*  (1). select: select控件
*  (2). datas: json数据源 
*
* cmsCascadingSelect(select, datas)
* 参数说明：
*  (1). target: select控件
*  (2). url: json数据源
*  (3). options: { textfield: "A", valuefiled: "B" },设置A,B参数名
*  (4). endfn: 类型是function，完成联动后执行 
*  (5). parameter: 请求时传回值的参数名，必须 
*
* $.fn.cmsAddOption(添加选项)
* 参数说明：
*  (1). text: 文本型，列表项文本 
*  (2). value: 文本型，列表项值 
*  (3). selected: 布尔型，是否选择加入的列表项
*  (4). index: 数值型，加入位置 
*
* Created Date: 2009-07-02 17:42:16 
* Edit Date:  
*/

/*
* $.fn.cmsFillOptions(填充下拉框)
* 参数说明：
*  (1). type: 数据源类型(json)
*  (2). options: { textfield: "A", valuefiled: "B" },设置A,B参数名
*/
var text;
var value;
var type = "json";
var selected;
var keep;

$.fn.cmsFillOptions = function(url, options) {
    if (url.length == 0) throw "request is required";
    text = options.textfield || "text";
    value = options.valuefiled || "value";

    keep = options.keepold ? true : false;
    selected = options.selectedindex || 0;

    $.ajaxSetup({ async: false });

    var datas;
    $.getJSON(url, function(json) { datas = json; }); //通过url获取json数据源

    if (datas == undefined) {
        $(this).get(0).options.length = 0;
        return;
    }

    this.each(function() {
        if (this.tagName == "SELECT") {//判断触发事件的控件是不是select
            if (!keep) $(this).html("");
            cmsAddOptions(this, datas);
        }
    });
}
/*
* cmsAddOptions(select, datas)(填充下拉框项)
* 参数说明：
*  (1). select: select控件
*  (2). datas: json数据源 
*/
function cmsAddOptions(select, datas) {
    var options;
    var datas;

    $.each(datas, function(i, n) {
        option = new Option(eval("n." + text), eval("n." + value));
        if (i == selected) option.selected = true; //判断selected为选中项
        select.options.add(option);
    });
}
/*
* cmsCascadingSelect(select, datas)(下拉联动)
* 参数说明：
*  (1). target: select控件
*  (2). url: json数据源
*  (3). options: { textfield: "A", valuefiled: "B" },设置A,B参数名
*  (4). endfn: 类型是function，完成联动后执行 
*  (5). parameter: 请求时传回值的参数名，必须 
*/
$.fn.cmsCascadingSelect = function(target, url, options, endfn) {
    $.ajaxSetup({ async: false });
    if (target[0].tagName != "SELECT") throw "target must be SELECT";
    if (url.length == 0) throw "request is required";
    if (options.parameter == undefined) throw "parameter is required";

    this.change(function() {
        var newurl = "";
        urlstr = url.split("?");

        newurl = urlstr[0] + "?" + options.parameter + "=" + $(this).val() + "&" + urlstr[1];

        target.cmsFillOptions(newurl, options);
        if (typeof endfn == "function") endfn();
    });
}
$.fn.cmsCascadingSelect2 = function(target, url, options, endfn) {
    $.ajaxSetup({ async: false });
    if (target[0].tagName != "SELECT") throw "target must be SELECT";
    if (url.length == 0) throw "request is required";
    if (options.parameter == undefined) throw "parameter is required";

    this.change(function() {
        var newurl = "";
        urlstr = url.split("?");

        newurl = urlstr[0] + "?" + options.parameter + "=" + encodeURI($(this).getSelectedText()) + "&" + urlstr[1];
       
        target.cmsFillOptions(newurl, options);
        if (typeof endfn == "function") endfn();
    });
}
/*
* $.fn.cmsAddOption(添加选项)
* 参数说明：
*  (1). text: 文本型，列表项文本 
*  (2). value: 文本型，列表项值 
*  (3). selected: 布尔型，是否选择加入的列表项
*  (4). index: 数值型，加入位置 
*/
$.fn.cmsAddOption = function(text, value, selected, index) {
    option = new Option(text, value);
    this[0].options.add(option, index);
    this[0].options[index].selected = selected;
}

/*!
* 绑定省份,城市,地区下拉框
* 
* 参数说明：
*  (1). province: 需要绑定的省份控件 eg:$("#province")
*  (2). city: 需要绑定的城市控件 eg:$("#city")
*
* Created Date: 2009-07-03 10:52 
* Edit Date:  
*/
function BindTheProvinceCityList(province, city) {
    province.cmsFillOptions("/Resources/Services/GetArea.ashx?s=0&k=0", { textfield: "provincename", valuefiled: "provinceid" });
    province.cmsAddOption("--请选择省份--", "0", true, 0);
    city.cmsAddOption("--请选择城市--", "0", true, 0);

    province.cmsCascadingSelect2(city, "/Resources/Services/GetArea.ashx?s=2", { textfield: "cityname", valuefiled: "cityid", parameter: "k" },
    function() {
        if (province.get(0).selectedIndex == 0) {
            city.get(0).options.length = 0;
        }
        city.cmsAddOption("--请选择城市--", "0", true, 0);
    });
}
/*!
* 绑定栏目下拉框
* 
* 参数说明：
*  (1). parent: 需要绑定的行业大类控件 eg:$("#parent")
*  (2). child: 需要绑定的行业大类控件 eg:$("#child")
* .ASHX参数说明：
*  (1). valtype: 下拉框value值的类型（id：I；spell：S）,默认为S
*  (2). status: De：科室类型；Ne：新闻；Do：表示医生类型；Eq：设备类型；Ho：医院类型
*  (3). spell: 当valtype=S的时候,传入的$("#parent")的valuefiled
*  (4). id: 当valtype=I的时候,传入的$("#parent")的valuefiled
*
* Created Date: 2009-07-03 10:52 
* Edit Date:  
*/
function BindDepCategoryParentList(parent) {
    parent.cmsFillOptions("/Resources/Services/GetCategories.ashx", { textfield: "Name", valuefiled: "Spell" });
    parent.cmsAddOption("--请选择大类--", "0", true, 0);
}

function BindDepCategoryList(parent, child) {
    parent.cmsFillOptions("/Resources/Services/GetCategories.ashx", { textfield: "Name", valuefiled: "Spell" });
    parent.cmsAddOption("--请选择大类--", "0", true, 0);
    child.cmsAddOption("--请选择小类--", "0", true, 0);

    parent.cmsCascadingSelect(child, "/Resources/Services/GetCategories.ashx", { textfield: "Name", valuefiled: "Spell", parameter: "spell" },
    function() {
        if (parent.get(0).selectedIndex == 0) {
            child.get(0).options.length = 0;
        }
        child.cmsAddOption("--请选择小类--", "0", true, 0);
    });
}
/*!
* 获取验证图片
* 
* GetRandImageUrl()：获取验证图片
* $.fn.GetRandImageUrl：<img onclick="$(this).GetRandImageUrl()" />刷新img的src
* ShowRandImageCode()：显示带验证图片的<img />
*
* 参数说明：
* 
* 
* Created Date: 2009-07-31 10:34 
* Edit Date:  
*/
function GetRandImageUrl() {
    return "/Resources/Services/GetRandImageCode.ashx?RandNum=" + (new Date()).valueOf();
}

$.fn.GetRandImageUrl = function() {
//    if (typeof endfn == "function") endfn();
    $(this).attr("src", GetRandImageUrl());
}

function ShowRandImageCode() {
    return "<img id=\"imgRandCode\" src=\"" + GetRandImageUrl() + "\" onclick=\"$(this).GetRandImageUrl();\" style=\"cursor: pointer\" alt=\"看不清楚,换一张\" />";
}
/*!
* 注销咨询用户登录
* 
* 参数说明：
*  (1). url:注销后跳转页面
* 
* Created Date: 2009-07-31 10:34 
* Edit Date:  
*/
$.fn.PostQuestionSigOut = function(url) {
    if (confirm('您确认要退出吗？') == true) {
        $.post("/Resources/PutData/QuestionSigOut.aspx", { Action: "post" },
     function(data, textStatus) {
         if (data.result == "success") {
             alert("注销成功,谢谢您的使用!");
             if (url != "") location.href = url;
         }
         else {
             alert("操作失败,请速与管理员联系,谢谢合作!");
         }
     }, "json")
    }
}
/*!
* 获取咨询用户登录情况
* 
* 参数说明：
*  (1). url:注销后跳转页面
* 
* Created Date: 2009-07-31 10:34 
* Edit Date:  
*/
$.fn.GetQuestionLoginStatus = function(url) {
    var state = $.ajax({ url: "/Resources/Services/GetQuestionLoginStatus.ashx", async: false }).responseText;
    var target = "";

    if (state.split('$')[0] == "0") {
        target = "用户名：<input type=\"text\" id=\"textUserRegName\" size=\"8\" /> &nbsp;密码：<input type=\"password\" id=\"textUserRegPassword\" size=\"8\" /><br /><span style=\"color: Green\">输入用户名和密码快速注册,以便查找问题.</span>";
    }
    else if (state.split('$')[0] == "1") {
        target = "<div>用户名：" + state.split('$')[1] + " <a onclick=\"PostQuestionSigOut('" + url + "');\" style=\"cursor: pointer\">注销</a></div>";
    }
    $(this).html(target);
}

/*!
* 提交预约
* 
* 参数说明：
* options,调用方法{ TextRealname: $("#Realname"),TextTelephone: $("#Telephone"),SelectCategores: $("#ddlCategores"),TextPostDate: $("#PostDate"),SelectGender: $("#Gender"),TextAge: $("#Age"),TextAddress: $("#Address"),TextEmail: $("#Email"),Textqq: $("#qq"),TextMemo: $("#Memo") }
* 
* options.TextRealname.val()     ->  $("#Realname").val()
* options.TextRealname.focus()   ->  $("#Realname").focus()
*
* Created Date: 2009-08-06 14:50 
* Edit Date:  
*/
$.fn.PutBookings = function(options) {
    $(this).click(function() {
        if (options.TextRealname.val() == "") {
            alert("请输入您预约的姓名");
            options.TextRealname.focus();
        }
        else if (options.TextTelephone.val() == "") {
            alert("请输入您预约的联系电话");
            options.TextTelephone.focus();
        }
        else if (options.SelectCategores.val() == "0") {
            alert("请选择科室");
            options.SelectCategores.focus();
        }
        else if (options.TextPostDate.val() == "") {
            alert("请输入您的预约时间");
            options.TextPostDate.focus();
        }
        else {
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "/Resources/PutData/PutBookings2.aspx",
                data: { TextRealname: options.TextRealname.val(),
                    SelectGender: options.SelectGender.val(),
                    SelectCategores: options.SelectCategores.val(),
                    TextAge: options.TextAge.val(),
                    TextAddress: options.TextAddress.val(),
                    TextTelephone: options.TextTelephone.val(),
                    TextEmail: options.TextEmail.val(),
                    Textqq: options.Textqq.val(),
                    TextPostDate: options.TextPostDate.val(),
                    TextMemo: options.TextMemo.val()
                },
                success: function(result) {
                    if (result.msg == "suc") {
                        alert("问题提交成功,我们将第一时间为您解答.");

                        options.TextRealname.attr("value", "");
                        options.TextAge.attr("value", "");
                        options.TextAddress.attr("value", "");
                        options.TextEmail.attr("value", "");
                        options.Textqq.attr("value", "");
                        options.TextPostDate.attr("value", "");
                        options.TextTelephone.attr("value", "");
                        options.TextMemo.attr("value", "");

                    } else {
                        alert(result.msg);
                    }
                },
                error: function() { alert("操作失败!请刷新后重试!"); }
            });
        }

    })
}

/*!
* 提交提问
* 
* 参数说明：
* options,调用方法{ TextRealname: $("#Realname"),TextTelephone: $("#Telephone"),SelectCategores: $("#ddlCategores"),TextPostDate: $("#PostDate"),SelectGender: $("#Gender"),TextAge: $("#Age"),TextAddress: $("#Address"),TextEmail: $("#Email"),Textqq: $("#qq"),TextMemo: $("#Memo") }
* 
* options.TextTitle.val()     ->  $("#Realname").val()
* options.TextTitle.focus()   ->  $("#Realname").focus()
*
* Created Date: 2009-08-06 14:50 
* Edit Date:  
*/
$.fn.PutQuestion = function(options) {
    $(this).click(function() {
        if (options.TextTitle.val() == "") {
            alert("请输入您提问的标题.");
            options.TextTitle.focus();
        }
        else if (options.TextBody.val() == "") {
            alert("请输入您提问的详细内容");
            options.TextBody.focus();
        }
        else if (options.SelectDepartment.val() == "0") {
            alert("请选择科室.");
            options.SelectDepartment.focus();
        }
        else if (options.SelectDiesease.val() == "0") {
            alert("请选择疾病");
            options.SelectDiesease.focus();
        }
        else if (options.TextKeyCode.val() == "") {
            alert("请输入验证码.");
            options.TextKeyCode.focus();
        }
        else {
            $.ajax({
                type: "POST",
                dataType: "json",
                url: "/Resources/PutData/PutQuestion2.aspx",
                data: { TextTitle: options.TextTitle.val(),
                    SelectDepartment: options.SelectDepartment.val(),
                    SelectDiesease: options.SelectDiesease.val(),
                    TextBody: options.TextBody.val(),
                    TextKeyCode: options.TextKeyCode.val(),
                    TextUserName: options.TextUserName.val(),
                    TextPassword: options.TextPassword.val()
                },
                success: function(result) {
                    if (result.msg == "suc") {
                        alert("问题提交成功,我们将第一时间为您解答.");

                        options.TextTitle.attr("value", "");
                        options.TextBody.attr("value", "");
                        options.TextKeyCode.attr("value", "");
                        options.TextEmail.attr("value", "");

                    } else {
                        alert(result.msg);
                    }
                },
                error: function() { alert("操作失败!请刷新后重试!"); }
            });
        }

    })
}

