﻿/// <reference path="mootools.1.2.core.js" />
var Zstar = {
    currentIdNo: 0,
    maxIndex: 10,
    VehicleWidth: 120,
    AddrStyle: 'float:left',
    domain: 'http://localhost:8160/Web/',
    currObject: {
        id: 0,
        num: ''
    },
    getCurrObject: function() {
        var object = Cookie.read('currObject');
        if (object && object.indexOf('|') >= 0) {
            var objectArr = object.split('|');
            Zstar.currObject = {
                id: objectArr[0] * 1,
                num: objectArr[1]
            };
        }
        return Zstar.currObject; //{id:0,num:''}
    },
    setCurrObject: function(id, num) {
        id = id || 0;
        id *= 1;
        Zstar.currObject = { id: id, num: num };
        Cookie.write('currObject', id + '|' + num);
    },
    //只取出获取的地址信息中的第一部分
    GetAddr: function(str) {
        var index = str.indexOf(',');
        return index > 0 ? str.substring(0, index) : '';
    },
    //光标停在文本框文字的最后
    movePoint: function(el, len) {
        //仅IE下有效
        var rng = el.createTextRange();
        if (!len || len > el.value.length) len = el.value.length;
        if (len < 0) len = 0;
        //var rng = $('box').setSelectionRange();
        rng.moveStart("character", len);
        rng.collapse(true);
        rng.select();
    },
    newId: function() {
        var prefix = (arguments.length > 0) ? arguments[0] : 'Zstar';
        Zstar.currentIdNo++;
        return prefix + Zstar.currentIdNo;
    },
    //兼容ff的点击事件
    click: function(id) {
        if (document.all) {
            $(id).click();
        }
        else {
            var evt = document.createEvent("MouseEvents");
            evt.initEvent("click", true, true);
            $(id).dispatchEvent(evt);
        }
    },
    //json格式数据转化为get字符串
    jsonToQueryString: function(json) {
        var str = '';
        if (json) {
            for (var item in json) {
                if (str.length > 0) str += '&';
                str += item + '=' + json[item];
            }
        }
        return str;
    },
    getCnLength: function(text) {
        var len = 0;
        if (text == '' || text == undefined || text == null) return len;
        text += '';
        len = text.length;
        for (var i = 0; i < text.length; i++) {
            var word = text.substring(i, 1);
            if ((/[^\x00-\xff]/g).test(word)) len += 1;
        }
        return len;
    },
    //从地址栏中获取传入参数的值
    getQuery: function(key, local) {
        var url = local || window.location;
        var queryStr = url.search.substr(1);
        return Zstar.getQueryKey(key,queryStr);
    },
    //从指定的query字符串中返回key值
    getQueryKey: function(key,queryStr) {
        var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
        var r =queryStr.match(reg);
        return (r != null) ? unescape(r[2]) : null;
    }
};
var CnYu = Zstar;
//临时的消息类，用于扩展alert实现消息原型
var msgAlertBox = function(option) {
    this.option = {
        text: null,
        isShow: true
    };
    this.show = function(text) {
        text = text || this.option.text;
        if (text) alert(text);
    };
    this.hidden = function() { };
    if (!option) return;
    if (!option.text && !option.isShow) this.option.text = option;
    else {
        this.option.text = option.text || this.option.text;
        if (option.isShow != undefined) this.option.isShow = option.isShow;
    }
    if (this.option.isShow) this.show(this.option.text);
};
/*
* chkAll v0.2 01.09,09反选,全选
*/
var chkAll = function() {
    var opt = arguments;
    var selector = (opt.length > 0) ? opt[0] : '';
    var istagger = (opt.length > 1) ? opt[1] : true;
    var arr = new Array();
    if (selector != '') arr = $$(selector);
    else arr = $$('input[type=checkbox]');
    arr.each(function(el) {
        if (istagger) el.checked = (!el.checked) ? true : (!el.checked);
        else el.checked = true;
    });
}
/*
* getChked v0.2 01.09,09取值
*/
var getChked = function() {
    var opt = arguments;
    var selector = (opt.length > 0) ? opt[0] : '';
    var getid = (opt.length > 1) ? opt[1] : true;
    var valueArr = new Array();
    var arr = (selector != '') ? $$(selector) : $$('input[type=checkbox]');
    arr.each(function(el) {
        if (el.checked) valueArr.push((getid) ? el.get('id') : el.get('value'));
    });
    return valueArr;
}
var gis = {
    getPosition: function(lon, lat, fn,opt) {
        var request = new Request({
            url: Zstar.domain + 'ajaxback/getposition.ashx',
            data: { lat: lat, lon: lon },
            onComplete: function(txt, xml) {
                if (txt.length == 0) txt = '服务器错误';
                if (fn) fn(txt,opt);
                else return txt;
            }
        }).send();
    }
};
/*
* CnYuTabber v0.3 01.25,09
*/
var CnYuTabber = new Class({
    Implements: Options,
    options: {
        mousetype: 'click',
        headContainer: '.TabTitle',
        tabhead: 'li',
        bodyContainer: '.TabContent',
        tabbody: 'div'
    },
    initialize: function(id, options) {
        this.setOptions(options);
        var mousetype = this.options.mousetype;
        var headContainer = this.options.headContainer;
        var bodyContainer = this.options.bodyContainer;
        var tabhead = this.options.tabhead;
        var tabbody = this.options.tabbody;
        var titles = $$('#' + id + ' ' + headContainer + ' ' + tabhead);
        var contents = $$('#' + id + ' ' + bodyContainer + ' ' + tabbody);
        this.titles = titles;
        this.contents = contents;
        this.index = 0;
        titles.each(function(title) {
            title.addEvent(mousetype, function(event) {
                this.index = titles.indexOf(title);
                titles.each(function(content, index) {
                    if (content == title) {
                        content.className = 'active';
                        contents[index].setStyle('display', 'block');
                        this.index = index;
                    }
                    else {
                        content.className = 'normal';
                        contents[index].setStyle('display', 'none');
                    }
                });
            });
        });
    },
    select: function(index) {
        this.index = index;
        return this.titles[index].fireEvent(this.options.mousetype);
    }
});
String.prototype.toDateString = function(toFormat, fromFormat) {
    fromFormat = fromFormat || 'yyyy-MM-dd HH:mm:ss';
    if (!this||this.length==0) return '';
    var arr = [], s = '';
    switch (fromFormat) {
        default: //默认从yyyy-MM-dd HH:mm:ss字符转换
            arr = this.replace(/(\s)|(\:)/g, '-').split('-');
            break;
    }
    var year = arr[0];
    var month = arr[1];
    var day = arr[2];
    var hour = arr[3];
    var minute = arr[4];
    var second = arr[5];
    switch (toFormat) {
        case 'M-d H:m:s':
            s = month * 1 + '月' + day * 1 + '日' + hour.toInt() + '点' + minute.toInt() + '分' + second.toInt() + '秒';
            break;
        default: //yyyy年MM月dd日HH点mm分ss秒
            s = year + '年' + month + '月' + day + '日' + hour + '点' + minute + '分' + second + '秒';
            break;
    }
    return s;
};
/*属性扩展*/
String.prototype.Trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function() {
    return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function() {
    return this.replace(/(\s*$)/g, "");
}
function FliterString(inputString) {
    inputString = inputString.trim();
    inputString = inputString.replace("'", "");
    inputString = inputString.replace("--", "");
    inputString = inputString.toLowerCase().replace("drop", "");
    return inputString;
}
String.prototype.fliter = function() {
    return FliterString(this);
}
function accDiv(arg1, arg2) {
    var t1 = 0, t2 = 0, r1, r2;
    try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
    try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
    with (Math) {
        r1 = Number(arg1.toString().replace(".", ""))
        r2 = Number(arg2.toString().replace(".", ""))
        return (r1 / r2) * pow(10, t2 - t1);
    }
}
Number.prototype.div = function(arg) {
    return accDiv(this, arg);
}
function accMul(arg1, arg2) {
    if (!arg1 || !arg2) return null;
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
    var arr1 = s1.split('.');
    var arr2 = s2.split('.');
    if (arr1.length > 1) m = arr1[1].length;
    if (arr2.length > 1) m += arr2[1].length;
    arr1 = arr2 = null;
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}

Number.prototype.mul = function(arg) {
    return accMul(arg, this);
}
function accAdd(arg1, arg2) {
    var r1, r2, m, s1 = arg1.toString(), s2 = arg2.toString();
    var arr1 = s1.split('.');
    var arr2 = s2.split('.');
    r1 = (arr1.length > 1) ? arr1[1].length : 0;
    r2 = (arr2.length > 1) ? arr2[1].length : 0;
    arr1 = arr2 = null;
    m = Math.pow(10, Math.max(r1, r2))
    return (accMul(arg1, m) + accMul(arg2, m)) / m
}
Number.prototype.add = function(arg) {
    return accAdd(arg, this);
}
function accDed(arg1, arg2) {
    var r1, r2, m;
    try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
    try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
    m = Math.pow(10, Math.max(r1, r2))
    return (accMul(arg1, m) - accMul(arg2, m)) / m
}
Number.prototype.ded = function(arg) {
    return accDed(this, arg);
}
Number.prototype.toFixed = function(s) {
    return parseInt(this * Math.pow(10, s) + 0.5) / Math.pow(10, s);
}

