///////////////////////////////////////
//common.js 
//创建:zhaoshunlu 2013-1-29
//zhao 2013-1-31 增加 EnterToTAB（）方法
//zhao 2013-6-09 增加 GetCurrentUrlPath()和GetCurrentUrlPathName()方法
///////////////////////////////////////

//通过javascript在URL中获取参数
//zhaoshunlu 2013-1-29
//调用:
//var Request = new QueryString();
//ID = Request["ID"]
//str = Request["str"]     
function QueryString() {
    var name, value, i;
    var str = location.href;
    var num = str.indexOf("?")
    str = str.substr(num + 1);
    var arrtmp = str.split("&");
    for (i = 0; i < arrtmp.length; i++) {
        num = arrtmp[i].indexOf("=");
        if (num > 0) {
            name = arrtmp[i].substring(0, num);
            value = arrtmp[i].substr(num + 1);
            this[name] = value;
        }
    }
}
//获取当前请求文件目录
//如请求：http://localhost:5043/oa/source/Hotel/sourceHotelList.html?_t=435802
//返回 /oa/source/Hotel/
//zhaoshunlu 2013-6-09
function getCurrentUrlPath() { 
    var strPath = window.location.pathname;  
   return strPath.substring(0, strPath.lastIndexOf("/") + 1);
}
//获取当前请求文件名称
//如请求：http://localhost:5043/oa/source/Hotel/sourceHotelList.html?_t=435802
//返回 sourceHotelList.html
//zhaoshunlu 2013-6-09
function getCurrentUrlPathName() {
    var strPath = window.location.pathname;
    return strPath.slice(strPath.lastIndexOf("/") + 1);   
}
//使用回车代替Tab键
//创建:zhaoshunlu 2013-1-29
//要求自动获取焦点的控件必须写有id和name两个属性
//参数：divname 指明控件所在范围
//参数：ctrlname 当前控件名称
//m__FormInputs 全局数组变量，保存当前页面指定范围内所有输入控件。
var m__FormInputs = new Array();
//可以直接启用下面这行，但是就不能灵活指定范围   
//document.onkeydown = function (e) { EnterToTAB("form1", e); }
function EnterToTAB(divname, e) {
    e = e ? e : window.event;
    var code = e.keyCode || e.which; //   
    if (code != 13) return;
    
    var e = e.srcElement || e.target;
    var ctrlname = e.id.substring(0, e.id.indexOf("$"));

    if (m__FormInputs.length == 0) {
        //获取input所在div的对象
        var targetobj = document.getElementById(divname);
        if (!targetobj) return;
        var _inputs = targetobj.getElementsByTagName("input");
        for (var i = 0; i < _inputs.length; i++) {
            //处理逻辑 
            if (!_inputs[i].disabled) { //跳过禁用的和只读的控件
                if (_inputs[i].type != "hidden" && _inputs[i].style.display != "none") {
                    if (_inputs[i].className != "" && _inputs[i].id != "") {                  
                        m__FormInputs.add(_inputs[i]);
                        m__FormInputs[m__FormInputs.length - 1].name = _inputs[i].id.substring(0, _inputs[i].id.indexOf("$"));  
                    }
                }
            }
        }
    }
    for (var i = 0; i < m__FormInputs.length; i++) {
        if (m__FormInputs[i].name == ctrlname) {
            if (i + 1 < m__FormInputs.length) {
                m__FormInputs[i + 1].focus(); //下一个控件获取焦点    
            } else {
                m__FormInputs[0].focus(); //定位到首个输入控件                
            }
        }
    }
}

/**      
* 对Date的扩展，将 Date 转化为指定格式的String      
* 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符      
* 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)      
* eg:      
* (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423      
* (new Date()).format("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04      
* (new Date()).format("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04      
* (new Date()).format("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04      
* (new Date()).format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18      
*/
Date.prototype.format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份         
        "d+": this.getDate(), //日         
        "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时         
        "H+": this.getHours(), //小时         
        "m+": this.getMinutes(), //分         
        "s+": this.getSeconds(), //秒         
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度         
        "S": this.getMilliseconds() //毫秒         
    };
    var week = {
        "0": "日",
        "1": "一",
        "2": "二",
        "3": "三",
        "4": "四",
        "5": "五",
        "6": "六"
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    if (/(E+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "星期" : "周") : "") + week[this.getDay() + ""]);
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}


/** 
* 格式化日期为字符串表示 
* @param datetime:Date 要格式化的日期对象 
* @param format:String 日期格式 
* 使用方式:
* var date = new Date();
* var str = formatDate(date, 'yyyy年MMM月dd日');
* 则str的值为2012年七月29日
*/
function formatDate(datetime, strformat) {
    var cfg = {
        MMM: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
        MMMM: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二']
    },
    values = {
        y: datetime.getFullYear(),
        M: datetime.getMonth(),
        d: datetime.getDate(),
        H: datetime.getHours(),
        m: datetime.getMinutes(),
        s: datetime.getSeconds(),
        S: datetime.getMilliseconds()
    };
    /*用正则表达式拆分日期格式各个元素*/
    var elems = strformat.match(/y+|M+|d+|H+|m+|s+|S+|[^yMdHmsS]/g);
    //将日期元素替换为实际的值 
    for (var i = 0; i < elems.length; i++) {
        if (cfg[elems[i]]) {
            elems[i] = cfg[elems[i]][values[elems[i].charAt(0)]];
        } else if (values[elems[i].charAt(0)]) {
            elems[i] = formatNumber(values[elems[i].charAt(0)], elems[i].replace(/./g, '0'));
        }
    }

    return elems.join('');
}

/** 
* 格式化整数 
* @param number:number 要格式化的整数 
* @param fmt:string 整数格式 
*/
function formatNumber(number, fmt) {
    number = number + '';
    if (fmt.length > number.length) {
        return fmt.substring(number.length) + number;
    }
    return number;
}


////操作选择消息框
////仅仅在表单保存成功时调用
////被调用的页面必须实现这两个方法onNew()和CloseWindow();
////调用举例：OpSelMsgBox("icon-info", "保存成功");
//function OpSelMsgBox(iconCls, message) {
//    //弹出后续操作选择对话框
//    mini.open({
//        url: "../CommonLibs/SelOpDlg.html",
//        title: "选择操作",
//        width: 300,
//        height: 160,
//        showMaxButton: false,
//        showToolbar: false,
//        showFooter: false,
//        showModal: true,
//        allowResize: false,
//        allowDrag: true,
//        onload: function () {
//            var iframe = this.getIFrameEl();
//            iframe.contentWindow.SetData(iconCls, message); //填充表单数据
//        },
//        ondestroy: function (action) {
//            if (action == "new") {
//                onNew();
//            } else if (action == "edit") {

//            } else if (action == "close") {
//                CloseWindow("close");
//            }
//        }
//    });
//}
/*
 * ZoomPhoto缩放图片
 * 参数：Id 对象id
 * zhao 2014-09-15
 */
function ZoomPhoto(Id) {
    var x = 10;
    var y = 20;
    $("#"+Id).mouseover(function (e) {
        this.myTitle = this.title;
        var imgTitle = this.myTitle ? "<br>" + this.myTitle : "";
        var tooltip = "<div id='tooltip'><img src='" + this.src + "' alt='头像预览图' />" + imgTitle + "</div>";
        $("body").append(tooltip);
        $('#tooltip').css({
            "position": "absolute",
            "top": (e.pageY + y) + "px",
            "left": (e.pageX + x) + "px",
            "border": "solid 1px #cdcdcd"
        }).show("fast");
        //
        //$('#tooltip img').css({
        //    "width": "200px",
        //    "height": "180px"
        //});
    }).mouseout(function () {
        $("#tooltip").remove();
    }).mousemove(function (e) {
        $('#tooltip').css({
            "position": "absolute",
            "top": (e.pageY + y) + "px",
            "left": (e.pageX + x) + "px",
            "border": "solid 1px #cdcdcd"
        }).show("fast");
        //
        //$('#tooltip img').css({
        //    "width": "200px",
        //    "height": "180px"
        //});
    });
}