/*
* iframe之间函数调用
*
* main frame中每个frame需要name和id,以便兼容多浏览器
* 如果需要提供给其他frame调用,则需要在body中加入
*
* 调用例子:Frame.doFunction('main','goUrl','"'+url+'"');该frame调用id为main的兄弟frame的goUrl方法,参数为后面的
* 参数为字符串时需要加引号,否则传过去会被理解成一个未定义变量
*/
var FrameCall = (function () {
var idName = "FrameCall"
var idNameAll = "#" + idName
var ie = !-[1] //是否ie
return {
apiOpen: function () {
var html = ''
$(html).prependTo("body")
},
//其他窗口调用该窗口函数,调用另一个frame的方法
api: function () {
var action = $(idNameAll).attr("action")
var value = $(idNameAll).attr("value")
if (action == "get") {
//获取变量
share.data("create_app_path", eval(value))
return
}
var fun = action + "(" + value + ");" //拼装执行语句,字符串转换到代码
try {
$(idNameAll).attr("result", JSON.stringify(eval(fun)))
} catch (e) {}
},
//该窗口调用顶层窗口的子窗口api,调用iframe框架的js函数.封装控制器。
top: function (iframe, action, value) {
if (!window.parent.frames[iframe]) return
//var obj = window.top.frames[iframe].document;
var obj = window.top.frames[iframe].document
// alert(obj + "," + iframe);
if (!obj) return
obj = obj.getElementById(idName)
$(obj).attr("action", action)
$(obj).attr("value", value)
$(obj).click()
return eval("(" + $(obj).attr("result") + ")")
},
//该窗口调用父窗口的api
child: function (iframe, action, value) {
if (!window.frames[iframe]) return
var obj = window.frames[iframe].document
if (!obj) return
obj = obj.getElementById(idName)
$(obj).attr("action", action)
$(obj).attr("value", value)
$(obj).click()
return eval("(" + $(obj).attr("result") + ")")
},
//该窗口调用父窗口的api
father: function (action, value) {
var obj = window.parent.document
obj = obj.getElementById(idName)
$(obj).attr("action", action)
$(obj).attr("value", value)
$(obj).click()
return eval("(" + $(obj).attr("result") + ")")
},
//___自定义通用方法,可在页面定义更多提供给接口使用的api。
goUrl: function (url) {
window.location.href = url
},
goRefresh: function () {
window.location.reload()
},
}
})()
$(document).ready(function () {
// if($("#domain_sc").length == 0){
// $('').appendTo("head");
// }
FrameCall.apiOpen()
})
var time = function () {
var time = new Date().valueOf()
return time
}
var urlEncode = encodeURIComponent
var urlDecode = decodeURIComponent
var urlEncode2 = function (str) {
return urlEncode(urlEncode(str))
}
var UUID = function () {
return "uuid_" + time() + "_" + Math.ceil(Math.random() * 10000)
}
var round = function (val, point) {
if (!point) point = 2
point = Math.pow(10, parseInt(point))
return Math.round(parseFloat(val) * point) / point
}
//跨框架数据共享
var share = {
data: function (name, value) {
var top = window.top,
cache = top["_CACHE"] || {}
top["_CACHE"] = cache
return value !== undefined ? (cache[name] = value) : cache[name]
},
removeData: function (name) {
var cache = window.top["_CACHE"]
if (cache && cache[name]) delete cache[name]
},
}
jQuery.easing.def = "easeInOutCubic" //easeOutExpo,easeInOutExpo,easeInOutSine
//cookie操作
var Cookie = (function () {
var cookie = {}
var _init = function () {
cookie = {} //初始化cookie
var cookieArray = document.cookie.split("; ")
for (var i = 0; i < cookieArray.length; i++) {
var arr = cookieArray[i].split("=")
cookie[arr[0]] = unescape(arr[1])
}
return cookie
}
var get = function (key) {
//没有key代表获取所有
_init()
if (key == undefined) return cookie
return cookie[key]
}
var set = function (key, value, timeout) {
var str = escape(key) + "=" + escape(value) //不设置时间代表跟随页面生命周期
if (timeout == undefined) {
//时间以小时计
timeout = 365
}
var expDate = new Date()
expDate.setTime(expDate.getTime() + timeout * 3600 * 24 * 1000)
str += ";path=/"
str += "; expires=" + expDate.toGMTString()
document.cookie = str
}
var del = function (key) {
document.cookie = key + "=;expires=" + new Date(0).toGMTString()
}
var clear = function () {
_init()
for (var key in cookie) {
del(key)
}
}
return {
get: get,
set: set,
del: del,
clear: clear,
}
})()
//是否在数组中。
var inArray = function (arr, value) {
for (var i = 0, l = arr.length; i < l; i++) {
if (arr[i] === value) {
return true
}
}
return false
}
var stopPP = function (e) {
//防止事件冒泡
e = e || window.event
if (!e) return
if (e.stopPropagation) {
e.stopPropagation()
}
if (e.preventDefault) {
e.preventDefault()
}
e.cancelBubble = true
e.keyCode = 0
e.returnValue = false
}
//通用提示信息框
var tips = function (msg, code) {
Tips.tips(msg, code)
}
var Tips = (function () {
var in_time = 600
var delay = 800
var opacity = 0.7
var _init = function (msg, code) {
var tipsIDname = "messageTips"
var tipsID = "#" + tipsIDname
if ($(tipsID).length == 0) {
var html = '
'
$("body").append(html)
$(tipsID)
.show()
.css({ left: ($(window).width() - $(tipsID).innerWidth()) / 2 })
$(window).bind("resize", function () {
if ($(tipsID).css("display") == "none") return
self.stop(true, true)
$(tipsID).css({ left: ($(window).width() - $(tipsID).width()) / 2 })
})
$(tipsID)
.find(".tips_close")
.click(function () {
$(tipsID).animate({ opacity: 0 }, in_time, 0, function () {
$(this).hide()
})
})
}
var self = $(tipsID),
icon,
color
switch (code) {
case 100:
delay = 3000 //加长时间 5s
case true:
case undefined:
case "success":
color = "#5cb85c"
icon = "icon-ok"
break
case "info":
color = "#519AF6"
icon = "icon-info"
break
case "warning":
color = "#ed9c28"
icon = "icon-exclamation"
break
case false:
case "error":
delay = 1000
color = "#d9534f"
icon = "icon-remove"
break
default:
color = ""
icon = ""
break
}
if (color != "") {
self.css({ background: color, color: "#fff" })
self.find("i").removeClass().addClass(icon)
}
if (msg != undefined) self.find("span").html(msg)
$(tipsID)
.show()
.css({ left: ($(window).width() - $(tipsID).innerWidth()) / 2 })
return self
}
var tips = function (msg, code, offset_top) {
if (typeof msg == "object") {
code = msg.code
msg = msg.data
}
var self = _init(msg, code)
if (offset_top == undefined || offset_top == 0) offset_top = ($(window).height() - self.innerHeight()) / 2 - 100
self
.stop(true, true)
.css({ opacity: "0", top: offset_top - self.height() })
.show()
.animate({ opacity: opacity, top: offset_top }, in_time, 0)
setTimeout(function () {
self.animate({ opacity: 0, top: "-=" + (offset_top + self.height()) }, in_time, 0, function () {
$(this).hide()
})
}, delay)
}
var loading = function (msg, code, offset_top) {
if (typeof msg == "object") {
code = msg.code
msg = msg.data
}
if (msg == undefined) msg = "加载中..."
msg += "
"
var self = _init(msg, code)
if (offset_top == undefined || offset_top == 0) offset_top = ($(window).height() - self.innerHeight()) / 2 - 100
self
.stop(true, true)
.css({ opacity: "0", top: offset_top - self.height() })
.animate({ opacity: opacity, top: offset_top }, in_time, 0)
}
var close = function (msg, code, offset_top) {
if (typeof msg == "object") {
try {
code = msg.code
msg = msg.data
} catch (e) {
code = 0
msg = ""
}
}
var self = _init(msg, code)
if (offset_top == undefined || offset_top == 0) offset_top = ($(window).height() - self.innerHeight()) / 2 - 100
setTimeout(function () {
self.animate({ opacity: 0, top: "-=" + (offset_top + self.height()) }, in_time, 0, function () {
$(this).hide()
})
}, delay)
}
return {
tips: tips,
loading: loading,
close: close,
}
})()
//获取keys
var objectKeys = function (obj) {
var keys = []
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
keys.push(p)
}
}
return keys
}
//获取values
var objectValues = function (obj) {
var values = []
for (var p in obj) {
keys.push(obj[p])
}
return values
}
var $sizeInt = function ($obj) {
var str = $obj + ""
var theSize = parseInt(str.replace("px", ""))
if (isNaN(theSize)) {
return 0
} else {
return theSize
}
}
//通用遮罩层
var MaskView = (function () {
var opacity = 0.6
var animatetime = 250
var color = "#000"
var maskId = "#windowMaskView"
var maskContent = "#maskViewContent"
var add = function (content, t_opacity, t_color, time) {
if (t_opacity != undefined) opacity == t_opacity
if (t_color != undefined) color == t_color
if (time != undefined) animatetime == time
if ($(maskId).length == 0) {
var html = ''
$("body").append(html)
$(maskId).bind("click", close)
$(maskContent).bind("click", function (e) {
e.stopPropagation()
})
$(window).unbind("resize").bind("resize", _resize)
}
$(maskContent).html(content).fadeIn(animatetime)
_resize()
$(maskId).hide().fadeIn(animatetime)
}
var _resize = function () {
var $content = $(maskContent)
$content.css({ width: "auto", height: "auto" }).css({
top: ($(window).height() - $content.height()) / 2,
left: ($(window).width() - $content.width()) / 2,
})
imageSize()
}
var tips = function (msg) {
add("" + msg + "
")
}
var image = function (url) {
add("
")
var $content = $(maskContent)
var $dom = $content.find(".image")
var dragFlag = false,
E
var old_left, old_top
$(document).bind({
mousedown: function (e) {
if (!$(e.target).hasClass("image")) return
dragFlag = true
$dom.css("cursor", "move")
stopPP(e)
E = e
old_top = parseInt($content.css("top").replace("px", ""))
old_left = parseInt($content.css("left").replace("px", ""))
},
mousemove: function (e) {
if (!dragFlag) return
$content.css({
left: old_left + (e.clientX - E.clientX),
top: old_top + (e.clientY - E.clientY),
})
},
mouseup: function () {
dragFlag = false
$dom.css("cursor", "default")
},
keydown: function (e) {
if ($(maskId).length > 0 && e.keyCode == 27) {
MaskView.close()
stopPP(e)
}
},
})
$("#windowMaskView,#maskViewContent img").mousewheel(function (event, delta, deltaX, deltaY) {
var offset = delta > 0 ? 1 : -1
offset = offset * Math.abs(delta / 10)
var o_w = parseInt($dom.width()),
o_h = parseInt($dom.height()),
w = o_w * (1 + offset / 6),
h = o_h * (1 + offset / 6)
if (w <= 5 || h <= 5) return
if (w >= 10000 || h >= 10000) return
// var top = ($(window).height() - h)/2;
// var left = ($(window).width() - w)/2;
var top = parseInt($content.css("top")) - (h - o_h) / 2
var left = parseInt($content.css("left")) - (w - o_w) / 2
$(maskContent + "," + maskContent + " .image")
.stop(true)
.animate({ width: w, height: h, top: top, left: left }, 400)
})
}
var imageSize = function () {
var $dom = $(maskContent).find(".image")
if ($dom.length == 0) return
var image = new Image()
image.src = $dom.attr("src")
var percent = 0.7,
w_width = $(window).width(),
w_height = $(window).height(),
m_width = image.width,
m_height = image.height,
width,
height
if (m_width >= w_width * percent) {
width = w_width * percent
height = (m_height / m_width) * width
} else {
width = m_width
height = m_height
}
$dom.css({ width: width, height: height })
var $content = $(maskContent)
$content.css({ width: "auto", height: "auto" }).css({
top: ($(window).height() - $content.height()) / 2,
left: ($(window).width() - $content.width()) / 2,
})
}
var close = function () {
$(maskId).fadeOut(animatetime)
if ($(maskContent).find(".image").length != 0) {
$(maskContent + "," + maskContent + " .image").animate(
{
width: 0,
height: 0,
top: $(window).height() / 2,
left: $(window).width() / 2,
},
animatetime * 1.3,
0,
function () {
$(maskContent).hide()
_resize()
}
)
} else {
$(maskContent).fadeOut(animatetime)
}
}
return {
image: image,
resize: _resize,
tips: tips,
add: add,
close: close,
}
})()
//textarea自适应高度
;(function ($) {
$.fn.autoTextarea = function (options) {
var defaults = {
minHeight: 20,
padding: 0,
}
var opts = $.extend({}, defaults, options)
var ie = !!window.attachEvent && !window.opera
$(this)
.die("paste cut keydown keyup focus blur")
.live("paste cut keydown keyup focus blur", function () {
if (!ie) this.style.height = options.minHeight + "px"
var height = this.scrollHeight - options.padding
if (height <= options.minHeight) {
this.style.height = options.minHeight + "px"
} else {
this.style.height = height + "px"
}
})
}
})(jQuery)
;(function ($) {
$.fn.extend({
//dom绑定enter事件 用于input
keyEnter: function (callback) {
$(this)
.die("keydown")
.live("keydown", function (e) {
if (e.keyCode == 13 && callback) {
callback()
}
})
},
//dom绑定鼠标滚轮事件
mousewheel: function (fn) {
var mousewheel = jQuery.browser.mozilla ? "DOMMouseScroll" : "mousewheel"
$(this).bind(mousewheel, function (e) {
e = window.event || e
var delta = e.wheelDelta ? e.wheelDelta / 120 : -e.detail / 3
fn.call(this, delta)
return false
})
},
//晃动 $('.wrap').shake(4,4,100);
shake: function (times, offset, delay) {
this.stop().each(function () {
var Obj = $(this)
var marginLeft = parseInt(Obj.css("margin-left"))
var delay = delay > 50 ? delay : 50
Obj.animate({ "margin-left": marginLeft + offset }, delay, function () {
Obj.animate({ "margin-left": marginLeft }, delay, function () {
times = times - 1
if (times > 0) Obj.shake(times, offset, delay)
})
})
})
return this
},
})
})(jQuery)
;(function ($) {
$.tooltipsy = function (el, options) {
this.options = options
this.$el = $(el)
this.title = this.$el.attr("title") || ""
this.$el.attr("title", "")
this.random = parseInt(Math.random() * 10000)
this.ready = false
this.shown = false
this.width = 0
this.height = 0
this.delaytimer = null
this.$el.data("tooltipsy", this)
this.init()
}
$.tooltipsy.prototype = {
init: function () {
var base = this,
settings,
$el = base.$el,
el = $el[0]
base.settings = settings = $.extend({}, base.defaults, base.options)
settings.delay = +settings.delay
if (typeof settings.content === "function") {
base.readify()
}
if (settings.showEvent === settings.hideEvent && settings.showEvent === "click") {
$el.toggle(
function (e) {
if (settings.showEvent === "click" && el.tagName == "A") {
e.preventDefault()
}
if (settings.delay > 0) {
base.delaytimer = window.setTimeout(function () {
base.show(e)
}, settings.delay)
} else {
base.show(e)
}
},
function (e) {
if (settings.showEvent === "click" && el.tagName == "A") {
e.preventDefault()
}
window.clearTimeout(base.delaytimer)
base.delaytimer = null
base.hide(e)
}
)
} else {
$el
.bind(settings.showEvent, function (e) {
if (settings.showEvent === "click" && el.tagName == "A") {
e.preventDefault()
}
base.delaytimer = window.setTimeout(function () {
base.show(e)
}, settings.delay || 0)
})
.bind(settings.hideEvent, function (e) {
if (settings.showEvent === "click" && el.tagName == "A") {
e.preventDefault()
}
window.clearTimeout(base.delaytimer)
base.delaytimer = null
base.hide(e)
})
}
},
show: function (e) {
if (this.ready === false) {
this.readify()
}
var base = this,
settings = base.settings,
$tipsy = base.$tipsy,
$el = base.$el,
el = $el[0],
offset = base.offset(el)
if (base.shown === false) {
if (
(function (o) {
var s = 0,
k
for (k in o) {
if (o.hasOwnProperty(k)) {
s++
}
}
return s
})(settings.css) > 0
) {
base.$tip.css(settings.css)
}
base.width = $tipsy.outerWidth()
base.height = $tipsy.outerHeight()
}
if (settings.alignTo === "cursor" && e) {
var tip_position = [e.clientX + settings.offset[0], e.clientY + settings.offset[1]]
if (tip_position[0] + base.width > $(window).width()) {
var tip_css = { top: tip_position[1] + "px", right: tip_position[0] + "px", left: "auto" }
} else {
var tip_css = { top: tip_position[1] + "px", left: tip_position[0] + "px", right: "auto" }
}
} else {
var tip_position = [
(function () {
if (settings.offset[0] < 0) {
return offset.left - Math.abs(settings.offset[0]) - base.width
} else if (settings.offset[0] === 0) {
return offset.left - (base.width - $el.outerWidth()) / 2
} else {
return offset.left + $el.outerWidth() + settings.offset[0]
}
})(),
(function () {
if (settings.offset[1] < 0) {
return offset.top - Math.abs(settings.offset[1]) - base.height
} else if (settings.offset[1] === 0) {
return offset.top - (base.height - base.$el.outerHeight()) / 2
} else {
return offset.top + base.$el.outerHeight() + settings.offset[1]
}
})(),
]
}
$tipsy.css({ top: tip_position[1] + "px", left: tip_position[0] + "px" })
base.settings.show(e, $tipsy.stop(true, true))
},
hide: function (e) {
var base = this
if (base.ready === false) {
return
}
if (e && e.relatedTarget === base.$tip[0]) {
base.$tip.bind("mouseleave", function (e) {
if (e.relatedTarget === base.$el[0]) {
return
}
base.settings.hide(e, base.$tipsy.stop(true, true))
})
return
}
base.settings.hide(e, base.$tipsy.stop(true, true))
},
readify: function () {
this.ready = true
this.$tipsy = $('').appendTo("body")
this.$tip = $('
').appendTo(this.$tipsy)
this.$tip.data("rootel", this.$el)
var e = this.$el
var t = this.$tip
this.$tip.html(this.settings.content != "" ? (typeof this.settings.content == "string" ? this.settings.content : this.settings.content(e, t)) : this.title)
},
offset: function (el) {
return this.$el[0].getBoundingClientRect()
},
destroy: function () {
if (this.$tipsy) {
this.$tipsy.remove()
$.removeData(this.$el, "tooltipsy")
}
},
defaults: {
alignTo: "element",
offset: [0, -1],
content: "",
show: function (e, $el) {
$el.fadeIn(100)
},
hide: function (e, $el) {
$el.fadeOut(100)
},
css: {},
className: "tooltipsy",
delay: 200,
showEvent: "mouseenter",
hideEvent: "mouseleave",
},
}
$.fn.tooltipsy = function (options) {
return this.each(function () {
new $.tooltipsy(this, options)
})
}
})(jQuery)
var date = function (format, timestamp) {
timestamp = parseInt(timestamp)
var a,
jsdate = timestamp ? new Date(timestamp * 1000) : new Date()
var pad = function (n, c) {
if ((n = n + "").length < c) {
return new Array(++c - n.length).join("0") + n
} else {
return n
}
}
var txt_weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
var txt_ordin = { 1: "st", 2: "nd", 3: "rd", 21: "st", 22: "nd", 23: "rd", 31: "st" }
var txt_months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
var f = {
// Day
d: function () {
return pad(f.j(), 2)
},
D: function () {
return f.l().substr(0, 3)
},
j: function () {
return jsdate.getDate()
},
l: function () {
return txt_weekdays[f.w()]
},
N: function () {
return f.w() + 1
},
S: function () {
return txt_ordin[f.j()] ? txt_ordin[f.j()] : "th"
},
w: function () {
return jsdate.getDay()
},
z: function () {
return ((jsdate - new Date(jsdate.getFullYear() + "/1/1")) / 864e5) >> 0
},
// Week
W: function () {
var a = f.z(),
b = 364 + f.L() - a
var nd2,
nd = (new Date(jsdate.getFullYear() + "/1/1").getDay() || 7) - 1
if (b <= 2 && (jsdate.getDay() || 7) - 1 <= 2 - b) {
return 1
} else {
if (a <= 2 && nd >= 4 && a >= 6 - nd) {
nd2 = new Date(jsdate.getFullYear() - 1 + "/12/31")
return date("W", Math.round(nd2.getTime() / 1000))
} else {
return (1 + (nd <= 3 ? (a + nd) / 7 : (a - (7 - nd)) / 7)) >> 0
}
}
},
// Month
F: function () {
return txt_months[f.n()]
},
m: function () {
return pad(f.n(), 2)
},
M: function () {
return f.F().substr(0, 3)
},
n: function () {
return jsdate.getMonth() + 1
},
t: function () {
var n
if ((n = jsdate.getMonth() + 1) == 2) {
return 28 + f.L()
} else {
if ((n & 1 && n < 8) || (!(n & 1) && n > 7)) {
return 31
} else {
return 30
}
}
},
// Year
L: function () {
var y = f.Y()
return !(y & 3) && (y % 1e2 || !(y % 4e2)) ? 1 : 0
},
Y: function () {
return jsdate.getFullYear()
},
y: function () {
return (jsdate.getFullYear() + "").slice(2)
},
// Time
a: function () {
return jsdate.getHours() > 11 ? "pm" : "am"
},
A: function () {
return f.a().toUpperCase()
},
B: function () {
var off = (jsdate.getTimezoneOffset() + 60) * 60
var theSeconds = jsdate.getHours() * 3600 + jsdate.getMinutes() * 60 + jsdate.getSeconds() + off
var beat = Math.floor(theSeconds / 86.4)
if (beat > 1000) beat -= 1000
if (beat < 0) beat += 1000
if (String(beat).length == 1) beat = "00" + beat
if (String(beat).length == 2) beat = "0" + beat
return beat
},
g: function () {
return jsdate.getHours() % 12 || 12
},
G: function () {
return jsdate.getHours()
},
h: function () {
return pad(f.g(), 2)
},
H: function () {
return pad(jsdate.getHours(), 2)
},
i: function () {
return pad(jsdate.getMinutes(), 2)
},
s: function () {
return pad(jsdate.getSeconds(), 2)
},
O: function () {
var t = pad(Math.abs((jsdate.getTimezoneOffset() / 60) * 100), 4)
if (jsdate.getTimezoneOffset() > 0) t = "-" + t
else t = "+" + t
return t
},
P: function () {
var O = f.O()
return O.substr(0, 3) + ":" + O.substr(3, 2)
},
c: function () {
return f.Y() + "-" + f.m() + "-" + f.d() + "T" + f.h() + ":" + f.i() + ":" + f.s() + f.P()
},
U: function () {
return Math.round(jsdate.getTime() / 1000)
},
}
return format.replace(/[\\]?([a-zA-Z])/g, function (t, s) {
if (t != s) {
ret = s
} else if (f[s]) {
ret = f[s]()
} else {
ret = s
}
return ret
})
}
var Base64 = (function () {
var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
var encode = function (input) {
var output = ""
var chr1, chr2, chr3, enc1, enc2, enc3, enc4
var i = 0
input = _utf8_encode(input)
while (i < input.length) {
chr1 = input.charCodeAt(i++)
chr2 = input.charCodeAt(i++)
chr3 = input.charCodeAt(i++)
enc1 = chr1 >> 2
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)
enc4 = chr3 & 63
if (isNaN(chr2)) {
enc3 = enc4 = 64
} else if (isNaN(chr3)) {
enc4 = 64
}
output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4)
}
return output
}
// public method for decoding
var decode = function (input) {
var output = ""
var chr1, chr2, chr3
var enc1, enc2, enc3, enc4
var i = 0
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "")
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++))
enc2 = _keyStr.indexOf(input.charAt(i++))
enc3 = _keyStr.indexOf(input.charAt(i++))
enc4 = _keyStr.indexOf(input.charAt(i++))
chr1 = (enc1 << 2) | (enc2 >> 4)
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2)
chr3 = ((enc3 & 3) << 6) | enc4
output = output + String.fromCharCode(chr1)
if (enc3 != 64) {
output = output + String.fromCharCode(chr2)
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3)
}
}
output = _utf8_decode(output)
return output
}
// private method for UTF-8 encoding
_utf8_encode = function (string) {
string = string.replace(/\r\n/g, "\n")
var utftext = ""
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n)
if (c < 128) {
utftext += String.fromCharCode(c)
} else if (c > 127 && c < 2048) {
utftext += String.fromCharCode((c >> 6) | 192)
utftext += String.fromCharCode((c & 63) | 128)
} else {
utftext += String.fromCharCode((c >> 12) | 224)
utftext += String.fromCharCode(((c >> 6) & 63) | 128)
utftext += String.fromCharCode((c & 63) | 128)
}
}
return utftext
}
// private method for UTF-8 decoding
_utf8_decode = function (utftext) {
var string = ""
var i = 0
var c = (c1 = c2 = 0)
while (i < utftext.length) {
c = utftext.charCodeAt(i)
if (c < 128) {
string += String.fromCharCode(c)
i++
} else if (c > 191 && c < 224) {
c2 = utftext.charCodeAt(i + 1)
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63))
i += 2
} else {
c2 = utftext.charCodeAt(i + 1)
c3 = utftext.charCodeAt(i + 2)
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63))
i += 3
}
}
return string
}
return {
encode: encode,
decode: decode,
}
})()
var base64_encode = Base64.encode
var base64_decode = Base64.decode
var getParam = function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i")
var r = window.location.search.substr(1).match(reg)
if (r != null) return unescape(r[2])
return null
}
var getFormJson = function (frm) {
var o = {}
var a = $(frm).serializeArray()
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]]
}
o[this.name].push(this.value || "")
} else {
o[this.name] = this.value || ""
}
})
return o
}
/**
* 检查ajax的返回结果
*/
var checkAjaxResult = function (data) {
if (data.status == 99) {
if (!window.alerted) {
alert("您尚未登录或者登录已超时!")
window.alerted = true
}
window.top.location.href = data.data.loginHost
return false
} else if (data.status == 98) {
alert(data.msg)
return false
}
return true
}
/**
* demo:
* ajax({beforSend:function(){
* ajaxCheck('remove');
* }});
*
*/
var ajaxCheck = function (method) {
if (AUTH && AUTH.options) {
var auth_aid = getParam("auth_aid"),
auth_mid = getParam("auth_mid")
return AUTH.options["" + auth_aid]["" + auth_mid] == 1
}
return true
}
/**
* 发送ajax请求
*/
var ajax = function (options) {
var opts = $.extend(true, {}, options)
var d = $.extend(
true,
{
auth_aid: getParam("auth_aid"),
auth_mid: getParam("auth_mid"),
auth_cid: getParam("auth_cid"),
},
opts.data
)
opts.data = d
opts.success = function (data) {
if (checkAjaxResult(data)) {
if (options.success) {
options.success(data)
}
}
}
$.ajax(opts)
}