﻿/*Netcen.ThienVC: file nay gom 3plug-in, la file nen cua jqModal.js cung thu muc */
(function ($) { $.fn.jqm = function (o) { var p = { overlay: 50, overlayClass: 'jqmOverlay', closeClass: 'jqmClose', trigger: '.jqModal', ajax: F, ajaxText: '', target: F, modal: F, toTop: F, onShow: F, onHide: F, onLoad: F }; return this.each(function () { if (this._jqm) return H[this._jqm].c = $.extend({}, H[this._jqm].c, o); s++; this._jqm = s; H[s] = { c: $.extend(p, $.jqm.params, o), a: F, w: $(this).addClass('jqmID' + s), s: s }; if (p.trigger) $(this).jqmAddTrigger(p.trigger) }) }; $.fn.jqmAddClose = function (e) { return hs(this, e, 'jqmHide') }; $.fn.jqmAddTrigger = function (e) { return hs(this, e, 'jqmShow') }; $.fn.jqmShow = function (t) { return this.each(function () { t = t || window.event; $.jqm.open(this._jqm, t) }) }; $.fn.jqmHide = function (t) { return this.each(function () { t = t || window.event; $.jqm.close(this._jqm, t) }) }; $.jqm = { hash: {}, open: function (s, t) { var h = H[s], c = h.c, cc = '.' + c.closeClass, z = (parseInt(h.w.css('z-index'))), z = (z > 0) ? z : 3000, o = $('<div></div>').css({ height: '100%', width: '100%', position: 'fixed', left: 0, top: 0, 'z-index': z - 1, opacity: c.overlay / 100 }); if (h.a) return F; h.t = t; h.a = true; h.w.css('z-index', z); if (c.modal) { if (!A[0]) L('bind'); A.push(s) } else if (c.overlay > 0) h.w.jqmAddClose(o); else o = F; h.o = (o) ? o.addClass(c.overlayClass).prependTo('body') : F; if (ie6) { $('html,body').css({ height: '100%', width: '100%' }); if (o) { o = o.css({ position: 'absolute' })[0]; for (var y in { Top: 1, Left: 1 }) o.style.setExpression(y.toLowerCase(), "(_=(document.documentElement.scroll" + y + " || document.body.scroll" + y + "))+'px'") } } if (c.ajax) { var r = c.target || h.w, u = c.ajax, r = (typeof r == 'string') ? $(r, h.w) : $(r), u = (u.substr(0, 1) == '@') ? $(t).attr(u.substring(1)) : u; r.html(c.ajaxText).load(u, function () { if (c.onLoad) c.onLoad.call(this, h); if (cc) h.w.jqmAddClose($(cc, h.w)); e(h) }) } else if (cc) h.w.jqmAddClose($(cc, h.w)); if (c.toTop && h.o) h.w.before('<span id="jqmP' + h.w[0]._jqm + '"></span>').insertAfter(h.o); (c.onShow) ? c.onShow(h) : h.w.show(); e(h); return F }, close: function (s) { var h = H[s]; if (!h.a) return F; h.a = F; if (A[0]) { A.pop(); if (!A[0]) L('unbind') } if (h.c.toTop && h.o) $('#jqmP' + h.w[0]._jqm).after(h.w).remove(); if (h.c.onHide) h.c.onHide(h); else { h.w.hide(); if (h.o) h.o.remove() } return F }, params: {} }; var s = 0, H = $.jqm.hash, A = [], ie6 = $.browser.msie && ($.browser.version == "6.0"), F = false, i = $('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({ opacity: 0 }), e = function (h) { if (ie6) if (h.o) h.o.html('<p style="width:100%;height:100%"/>').prepend(i); else if (!$('iframe.jqm', h.w)[0]) h.w.prepend(i); f(h) }, f = function (h) { try { $(':input:visible', h.w)[0].focus() } catch (_) { } }, L = function (t) { $()[t]("keypress", m)[t]("keydown", m)[t]("mousedown", m) }, m = function (e) { var h = H[A[A.length - 1]], r = (!$(e.target).parents('.jqmID' + h.s)[0]); if (r) f(h); return !r }, hs = function (w, t, c) { return w.each(function () { var s = this._jqm; $(t).each(function () { if (!this[c]) { this[c] = []; $(this).click(function () { for (var i in { jqmShow: 1, jqmHide: 1 }) for (var s in this[i]) if (H[this[i][s]]) H[this[i][s]].w[i](this); return F }) } this[c].push(s) }) }) } })(jQuery); (function ($) { var DOWN = 'mousedown touchstart', MOVE = 'mousemove touchmove', STOP = 'mouseup touchend', E, M = {}; function xy(v) { var y = v.pageY, x = v.pageX, t = v.originalEvent.targetTouches; if (t) { x = t[0]['pageX']; y = t[0]['pageY'] } return { x: x, y: y} } function toTop($e) { var z = 1; $e.siblings().each(function () { z = Math.max(parseInt($(this).css("z-index"), 10) || 1, z) }); return $e.css('z-index', z + 1) } function init(e, h, k) { return e.each(function () { var $box = $(this), $handle = (h) ? $(h, this).css('cursor', k) : $box; $handle.bind(DOWN, { e: $box, k: k }, onGripStart); if (k == 'move') { $box.bind(DOWN, {}, function () { toTop($box).trigger('jqDnRtop') }) } }) }; function onGripStart(v) { var p = xy(v), f = function (k) { return parseInt(E.css(k)) || false }; E = toTop(v.data.e); M = { X: f('left') || 0, Y: f('top') || 0, W: f('width') || E[0].scrollWidth || 0, H: f('height') || E[0].scrollHeight || 0, pX: p.x, pY: p.y, k: v.data.k, o: E.css('opacity') }; E.css({ opacity: 0.7 }).trigger('jqDnRstart'); $(document).bind(MOVE, onGripDrag).bind(STOP, onGripEnd); return false }; function onGripDrag(v) { var p = xy(v); if (M.k == 'move') { if (!E.css('position').match(/absolute|fixed/)) { E.css({ position: 'relative' }) } E.css({ left: M.X + p.x - M.pX, top: M.Y + p.y - M.pY }) } else { E.css({ width: Math.max(p.x - M.pX + M.W, 0), height: Math.max(p.y - M.pY + M.H, 0) }) } return false }; function onGripEnd() { $(document).unbind(MOVE, onGripDrag).unbind(STOP, onGripEnd); E.css({ opacity: M.o }).trigger('jqDnRend') }; $.fn.jqDrag = function (h) { return init(this, h, 'move') }; $.fn.jqResize = function (h) { return init(this, h, 'se-resize') } })(jQuery); (function ($) { $.fn.extend({ center: function (options) { var options = $.extend({ inside: window, transition: 0, minX: 0, minY: 0, withScrolling: true, vertical: true, horizontal: true }, options); return this.each(function () { var props = { position: 'fixed' }; if (options.vertical) { var top = ($(options.inside).height() - $(this).outerHeight()) / 2; if (options.withScrolling) top += $(options.inside).scrollTop() || 0; top = (top > options.minY ? top : options.minY); $.extend(props, { top: top + 'px' }) } if (options.horizontal) { var left = ($(options.inside).width() - $(this).outerWidth()) / 2; if (options.withScrolling) left += $(options.inside).scrollLeft() || 0; left = (left > options.minX ? left : options.minX); $.extend(props, { left: left + 'px' }) } if (options.transition > 0) $(this).animate(props, options.transition); else $(this).css(props); return $(this) }) } }) })(jQuery); function createCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString() } else var expires = ""; document.cookie = name + "=" + value + expires + "; path=/" } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length) } return null } function eraseCookie(name) { createCookie(name, "", -1) }
