diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..e17e611
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,20 @@
+
+
+【1.8.5】
+* 新增对title样式的自定义控制
+* 修复layer.prompt多行文本,设置默认值无效的bug
+
+【1.8.4】
+* 新增浏览器窗口尺寸改变时的自适应定位
+* 新增属性shift,用于配置动画弹出(需要注意的是,之前的layer.shift()方法将在layer1.9遗弃,用shift属性取代)
+* 新增方法layer.title(name, index); 用于动态改变层的标题。
+* 修改弹出层默认初始坐标为垂直左右居中。
+* 开放多个tips,可通过配置tips: {more: true}开启。
+* 进一步完善tips的智能定位。
+* 放弃layer.ready方法,用jQuery的ready取代。
+* 进一步优化内部代码
+
+== 拓展模块 ==
+* layer.prompt支持给表单传入默认值,如layer.prompt({val:'默认'}); 新增yes回调函数第二个参数为索引、第三个参数为表单元素。
+* 相册层新增tab回调函数,用于切换图片时进行相关操作
+* 相册层内部代码优化。
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..28af29d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+
+## 简要
+layer是一款口碑非常不错的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富而友好的操作体验。
+
+在与同类弹出层插件的比较中,layer总是能轻易获胜。她尽可能地在以更少的代码展现更强健的功能,且格外注重性能的提升、易用和实用性,正因如此,越来越多的开发者将媚眼投上了layer。layer兼容了包括IE6在内的所有主流浏览器。 她数量可观的接口,使得您可以自定义太多您需要的风格,每一种弹层模式各具特色,皆广受欢迎。当然,这种“王婆卖瓜”的陈述听起来总是有点难受,因此你需要进一步了解她是否真的如你所愿。
+
+[文档与演示](http://sentsin.com/jquery/layer/)
+
+## 愿景
+致力于打造国内最盛行的弹层组件,为web开发提供强劲动力。
+
+## 现状
+从两年前初出茅庐,到后来成为小众组件,再发展到今天,已为数以万计的人所熟知。
+据不完全统计,截至到2014年5月13号,layer已服务于15万多家web平台。
+其中包括:
+* [中国联通](http://app.10010.com/)
+* [蚂蚁短租](http://www.mayi.com/)
+* [phpyun](http://www.phpyun.com/)
+* [卡牌网](http://www.kapai.com/)
+* [八圆包](http://www.bayuanbao.com/)
+
+
+事实上我们无法获取到更多案例,所以如果您有大型项目也在使用layer,您可以联系作者,以便在layer官网展现,也为您的品牌推广尽一些绵薄之力。
+
+
+## 备注
+[官网](http://sentsin.com/jquery/layer/)、[更新日志](https://github.com/sentsin/layer/blob/master/Update%20Notes.txt)、[Say交流](http://say.sentsin.com/home-48.html)
\ No newline at end of file
diff --git a/extend/layer.ext.dev.js b/extend/layer.ext.dev.js
new file mode 100644
index 0000000..351ebab
--- /dev/null
+++ b/extend/layer.ext.dev.js
@@ -0,0 +1,365 @@
+/**
+
+ @Name: layer拓展类,依赖于layer
+ @Date: 2014.08.13
+ @Author: 贤心
+ @Versions:1.8.5-ext
+ @Api:http://sentsin.com/jquery/layer
+ @Desc: 本拓展会持续更新
+
+ */
+
+layer.use('skin/layer.ext.css', function(){
+ layer.ext && layer.ext();
+});
+
+
+/**
+
+ 系统prompt
+
+*/
+
+layer.prompt = function(parme, yes, no){
+ var log = {}, parme = parme || {}, conf = {
+ area: ['auto', 'auto'],
+ offset: [parme.top || '', ''],
+ title: parme.title || '信息',
+ dialog: {
+ btns: 2,
+ type: -1,
+ msg: '',
+ yes: function(index){
+ var val = log.prompt.val();
+ if(val === ''){
+ log.prompt.focus();
+ } else if(val.replace(/\s/g, '').length > (parme.length || 1000)) {
+ layer.tips('最多输入'+ (parme.length || 1000) +'个字数', '#xubox_prompt', 2);
+ } else {
+ yes && yes(val, index, log.prompt);
+ }
+
+ }, no: no
+ }, success: function(){
+ log.prompt = $('#xubox_prompt');
+ log.prompt.focus();
+ }
+ };
+ if(parme.type === 3){
+ conf.dialog.msg = ''
+ }
+ return $.layer(conf);
+};
+
+
+/**
+
+ tab层
+
+*/
+
+layer.tab = function(parme){
+ var log = {}, parme = parme || {}, data = parme.data || [], conf = {
+ type: 1,
+ border: [0],
+ area: ['auto', 'auto'],
+ bgcolor: '',
+ title: false,
+ shade : parme.shade,
+ offset: parme.offset,
+ move: '.xubox_tabmove',
+ closeBtn: false,
+ page: {html: '
';
+ }()
+ +'
'
+ +'
'
+ +function(){
+ var len = data.length, ii = 1, str = '';
+ if(len > 0){
+ str = ''+ data[0].title +'';
+ for(; ii < len; ii++){
+ str += ''+ data[ii].title +'';
+ }
+ }
+ return str;
+ }() +'
'
+ +'
'+ function(){
+ var len = data.length, ii = 1, str = '';
+ if(len > 0){
+ str = '- '+ (data[0].content || 'no content') +'
';
+ for(; ii < len; ii++){
+ str += '- '+ (data[ii].content || 'no content') +'
';
+ }
+ }
+ return str;
+ }() +'
'
+ +'
X'
+ +'
'
+ }, success: function(layerE){
+ //切换事件
+ var btn = $('.xubox_tabtit').children(), main = $('.xubox_tab_main').children(), close = $('.xubox_tabclose');
+ btn.on('click', function(){
+ var othis = $(this), index = othis.index();
+ othis.addClass('xubox_tabnow').siblings().removeClass('xubox_tabnow');
+ main.eq(index).show().siblings().hide();
+ });
+ //关闭层
+ close.on('click', function(){
+ layer.close(layerE.attr('times'));
+ });
+ }
+ };
+ return $.layer(conf);
+};
+
+
+
+/**
+
+ 相册层
+
+*/
+
+
+layer.photos = function(options){
+ options = options || {};
+ var log = {
+ imgIndex: 1,
+ end: null,
+ html: $('html')
+ }, win = $(window), json = options.json, page = options.page;
+
+ if(json){
+ var data = json.data;
+ if(json.status === 1){
+ log.imgLen = data.length;
+ if(data.length > 0){
+ log.thissrc = data[json.start].src;
+ log.pid = data[json.start].pid;
+ log.imgsname = (json.title || '');
+ log.name = data[json.start].name;
+ log.imgIndex = json.start + 1;
+ } else {
+ layer.msg('没有任何图片', 2, 8);
+ return;
+ }
+
+ } else {
+ layer.msg('未请求到数据', 2, 8);
+ return;
+ }
+ } else {
+ var imgs = $(page.parent).find('img'), nowimg = imgs.eq(page.start);
+ log.thissrc = (nowimg.attr('layer-img') || nowimg.attr('src'));
+ log.pid = nowimg.attr('pid');
+ log.imgLen = imgs.length;
+ log.imgsname = (page.title || '');
+ log.name = nowimg.attr('alt');
+ log.imgIndex = page.start + 1;
+ }
+
+ var conf = {
+ type: 1,
+ border: [0],
+ area: [(options.html ? 915 : 600) + 'px', 'auto'],
+ title: false,
+ shade: [0.9, '#000', true],
+ shadeClose: true,
+ offset: ['25px', ''],
+ bgcolor: '',
+ page: {
+ html: '
'+ function(){
+ if(log.imgLen > 1){
+ return '
'
+ } else {
+ return '';
+ }
+ }() +'
'+ function(){
+ if(options.html){
+ return ''+ options.html +'
';
+ } else {
+ return '';
+ }
+ }()
+ }, success: function(layero){
+ log.bigimg = layero.find('.xubox_bigimg');
+ log.imgsee = log.bigimg.find('.xubox_imgsee');
+ log.imgbar = log.imgsee.find('.xubox_imgbar');
+ log.imgtit = log.imgbar.find('.xubox_imgtit');
+ log.layero = layero;
+
+ var img = log.imgs = log.bigimg.find('img');
+
+ clearTimeout(log.timerr);
+ log.timerr = setTimeout(function(){
+ $('html').css('overflow', 'hidden').attr('layer-full', log.index);
+ }, 10);
+
+ img.load(function(){
+ log.imgarea = [img.outerWidth(), img.outerHeight()];
+ log.resize(layero);
+ });
+
+ log.event();
+
+ }, end: function(){
+ layer.closeAll();
+ log.end = true;
+ }
+ };
+
+ //一些动作
+ log.event = function(){
+ log.bigimg.hover(function(){
+ log.imgsee.show();
+ }, function(){
+ log.imgsee.hide();
+ });
+
+ //上一张
+ conf.imgprev = function(){
+ log.imgIndex--;
+ if(log.imgIndex < 1){
+ log.imgIndex = log.imgLen;
+ }
+ log.tabimg();
+ };
+ log.bigimg.find('.xubox_prev').on('click', function(event){
+ event.preventDefault();
+ conf.imgprev();
+ });
+
+ //下一张
+ conf.imgnext = function(){
+ log.imgIndex++;
+ if(log.imgIndex > log.imgLen){
+ log.imgIndex = 1;
+ }
+ log.tabimg()
+ };
+ log.bigimg.find('.xubox_next').on('click', function(event){
+ event.preventDefault();
+ conf.imgnext();
+ });
+
+ //方向键
+ $(document).keyup(function(event){
+ if(!log.end){
+ var code = event.keyCode;
+ event.preventDefault();
+ if(code === 37){
+ conf.imgprev();
+ } else if(code === 39) {
+ conf.imgnext();
+ } else if(code === 27) {
+ layer.close(log.index);
+ }
+ }
+ });
+
+
+ log.tabimg = function(){
+ var timer, src, pid, name;
+ log.imgs.removeAttr('style');
+ if(json){
+ var nowdata = data[log.imgIndex - 1];
+ src = nowdata.src;
+ pid = nowdata.pid;
+ name = nowdata.name;
+ } else {
+ var thisimg = imgs.eq(log.imgIndex - 1);
+ src = thisimg.attr('layer-img') || thisimg.attr('src');
+ pid = thisimg.attr('layer-pid') || '';
+ name = thisimg.attr('alt') || '';
+ }
+ log.imgs.attr({
+ src: src,
+ 'layer-pid': pid,
+ alt: name
+ });
+ log.imgtit.find('em').text(log.imgIndex + '/' + log.imgLen);
+ log.imgsee.show();
+ options.tab && options.tab({pid: pid, name: name});
+ }
+ };
+
+ //相册响应式
+ log.resize = function(layero){
+ var relog = {}, wa = [win.width(), win.height()];
+ relog.limit = wa[0] - wa[0]/wa[1]*(60*wa[0]/wa[1]);
+ if(relog.limit < 600){
+ relog.limit = 600;
+ }
+ var area = [relog.limit, wa[1] > 400 ? wa[1] - 50 : 400];
+ area[0] = options.html ? area[0] : (area[0] - 300);
+ layer.area(log.index, {
+ width: area[0] + (options.html ? 15 : 0),
+ height: area[1]
+ });
+ relog.flwidth = area[0] - (options.html ? 300 : 0);
+ if(log.imgarea[0] > relog.flwidth){
+ log.imgs.css({width: relog.flwidth});
+ } else {
+ log.imgs.css({width: log.imgarea[0]});
+ }
+ if(log.imgs.outerHeight() < area[1]){
+ log.imgs.css({top: (area[1] - log.imgs.outerHeight())/2});
+ }
+ log.imgs.css({visibility: 'visible'});
+ log.bigimg.css({width: relog.flwidth, height: area[1], 'background-color': options.bgcolor});
+ if(options.html){
+ layero.find('.xubox_intro').css({height: area[1]});
+ }
+ relog = null;
+ wa = null;
+ area = null;
+ };
+
+ win.on('resize', function(){
+ if(log.end){
+ return;
+ }
+ if(log.timer){
+ clearTimeout(log.timer);
+ }
+ log.timer = setTimeout(function(){
+ log.resize(log.layero);
+ }, 200);
+ });
+
+ log.index = $.layer(conf);
+ return log.index;
+};
+
+//获取页面元素包含的所有图片,快捷调用
+layer.photosPage = function(options){
+ var log = {};
+ log.run = function(index){
+ layer.photos({
+ html: options.html,
+ success: options.success,
+ page: {
+ title: options.title,
+ id: options.id,
+ start: index,
+ parent: options.parent
+ }
+ });
+ };
+ options = options || {};
+ $(options.parent).find('img').each(function(index){
+ $(this).on('click', function(){
+ log.run(index);
+ });
+ });
+};
diff --git a/extend/layer.ext.js b/extend/layer.ext.js
new file mode 100644
index 0000000..c27bf85
--- /dev/null
+++ b/extend/layer.ext.js
@@ -0,0 +1,2 @@
+/*! layer弹层拓展类 */
+;layer.use("skin/layer.ext.css",function(){layer.ext&&layer.ext()}),layer.prompt=function(a,b,c){var d={},a=a||{},e={area:["auto","auto"],offset:[a.top||"",""],title:a.title||"信息",dialog:{btns:2,type:-1,msg:'',yes:function(c){var e=d.prompt.val();""===e?d.prompt.focus():e.replace(/\s/g,"").length>(a.length||1e3)?layer.tips("最多输入"+(a.length||1e3)+"个字数","#xubox_prompt",2):b&&b(e,c,d.prompt)},no:c},success:function(){d.prompt=$("#xubox_prompt"),d.prompt.focus()}};return 3===a.type&&(e.dialog.msg='"),$.layer(e)},layer.tab=function(a){var a=a||{},b=a.data||[],c={type:1,border:[0],area:["auto","auto"],bgcolor:"",title:!1,shade:a.shade,offset:a.offset,move:".xubox_tabmove",closeBtn:!1,page:{html:''}()+'
'+function(){var a=b.length,c=1,d="";if(a>0)for(d=''+b[0].title+"";a>c;c++)d+=""+b[c].title+"";return d}()+'
'+function(){var a=b.length,c=1,d="";if(a>0)for(d='- '+(b[0].content||"no content")+"
";a>c;c++)d+='- '+(b[c].content||"no content")+"
";return d}()+'
X '},success:function(a){var b=$(".xubox_tabtit").children(),c=$(".xubox_tab_main").children(),d=$(".xubox_tabclose");b.on("click",function(){var a=$(this),b=a.index();a.addClass("xubox_tabnow").siblings().removeClass("xubox_tabnow"),c.eq(b).show().siblings().hide()}),d.on("click",function(){layer.close(a.attr("times"))})}};return $.layer(c)},layer.photos=function(a){a=a||{};var b={imgIndex:1,end:null,html:$("html")},c=$(window),d=a.json,e=a.page;if(d){var f=d.data;if(1!==d.status)return void layer.msg("未请求到数据",2,8);if(b.imgLen=f.length,!(f.length>0))return void layer.msg("没有任何图片",2,8);b.thissrc=f[d.start].src,b.pid=f[d.start].pid,b.imgsname=d.title||"",b.name=f[d.start].name,b.imgIndex=d.start+1}else{var g=$(e.parent).find("img"),h=g.eq(e.start);b.thissrc=h.attr("layer-img")||h.attr("src"),b.pid=h.attr("pid"),b.imgLen=g.length,b.imgsname=e.title||"",b.name=h.attr("alt"),b.imgIndex=e.start+1}var i={type:1,border:[0],area:[(a.html?915:600)+"px","auto"],title:!1,shade:[.9,"#000",!0],shadeClose:!0,offset:["25px",""],bgcolor:"",page:{html:'
'+function(){return b.imgLen>1?'
':""}()+'
"+function(){return a.html?''+a.html+"
":""}()},success:function(a){b.bigimg=a.find(".xubox_bigimg"),b.imgsee=b.bigimg.find(".xubox_imgsee"),b.imgbar=b.imgsee.find(".xubox_imgbar"),b.imgtit=b.imgbar.find(".xubox_imgtit"),b.layero=a;var c=b.imgs=b.bigimg.find("img");clearTimeout(b.timerr),b.timerr=setTimeout(function(){$("html").css("overflow","hidden").attr("layer-full",b.index)},10),c.load(function(){b.imgarea=[c.outerWidth(),c.outerHeight()],b.resize(a)}),b.event()},end:function(){layer.closeAll(),b.end=!0}};return b.event=function(){b.bigimg.hover(function(){b.imgsee.show()},function(){b.imgsee.hide()}),i.imgprev=function(){b.imgIndex--,b.imgIndex<1&&(b.imgIndex=b.imgLen),b.tabimg()},b.bigimg.find(".xubox_prev").on("click",function(a){a.preventDefault(),i.imgprev()}),i.imgnext=function(){b.imgIndex++,b.imgIndex>b.imgLen&&(b.imgIndex=1),b.tabimg()},b.bigimg.find(".xubox_next").on("click",function(a){a.preventDefault(),i.imgnext()}),$(document).keyup(function(a){if(!b.end){var c=a.keyCode;a.preventDefault(),37===c?i.imgprev():39===c?i.imgnext():27===c&&layer.close(b.index)}}),b.tabimg=function(){var c,e,h;if(b.imgs.removeAttr("style"),d){var i=f[b.imgIndex-1];c=i.src,e=i.pid,h=i.name}else{var j=g.eq(b.imgIndex-1);c=j.attr("layer-img")||j.attr("src"),e=j.attr("layer-pid")||"",h=j.attr("alt")||""}b.imgs.attr({src:c,"layer-pid":e,alt:h}),b.imgtit.find("em").text(b.imgIndex+"/"+b.imgLen),b.imgsee.show(),a.tab&&a.tab({pid:e,name:h})}},b.resize=function(d){var e={},f=[c.width(),c.height()];e.limit=f[0]-f[0]/f[1]*(60*f[0]/f[1]),e.limit<600&&(e.limit=600);var g=[e.limit,f[1]>400?f[1]-50:400];g[0]=a.html?g[0]:g[0]-300,layer.area(b.index,{width:g[0]+(a.html?15:0),height:g[1]}),e.flwidth=g[0]-(a.html?300:0),b.imgs.css(b.imgarea[0]>e.flwidth?{width:e.flwidth}:{width:b.imgarea[0]}),b.imgs.outerHeight()',
+ frame = [
+ ''+ ico +'' + dialog.msg + '
',
+ ''+ html +'
',
+ '',
+ '',
+ ''
+ ],
+ shade = '' , border = '', zIndex = config.zIndex + times,
+ shadeStyle = 'z-index:'+ zIndex +'; background-color:'+ config.shade[1] +'; opacity:'+ config.shade[0] +'; filter:alpha(opacity='+ config.shade[0]*100 +');';
+ config.shade[0] && (shade = '');
+
+ config.zIndex = zIndex;
+ var title = '', closebtn = '', borderStyle = "z-index:"+ (zIndex-1) +"; background-color: "+ config.border[2] +"; opacity:"+ config.border[1] +"; filter:alpha(opacity="+ config.border[1]*100 +"); top:-"+ config.border[0] +"px; left:-"+ config.border[0] +"px;";
+ config.border[0] && (border = '');
+
+ if(config.maxmin && (config.type === 1 || config.type === 2) && (!/^\d+%$/.test(config.area[0]) || !/^\d+%$/.test(config.area[1]))){
+ closebtn = '';
+ }
+ config.closeBtn[1] && (closebtn += '');
+ var titype = typeof config.title === 'object';
+ config.title && (title = '' + (titype ? config.title[0] : config.title) + '
');
+ return [shade,
+ ''
+ + '
'
+ + frame[config.type]
+ + title
+ + ''+ closebtn + ''
+ + ''
+ + '
'+ border + '
'
+ ];
+};
+
+//创建骨架
+Class.pt.creat = function(){
+ var that = this , space = '', config = that.config, dialog = config.dialog, times = that.index;
+ var page = config.page, body = $("body"), setSpace = function(html){
+ var html = html || '';
+ space = that.space(html);
+ body.append($(space[0]));
+ };
+
+ switch(config.type){
+ case 0:
+ config.title || (config.area = ['auto','auto']);
+ $('.xubox_dialog')[0] && layer.close($('.xubox_dialog').parents('.'+ doms[0]).attr('times'));
+ break;
+
+ case 1:
+ if(page.html !== ''){
+ setSpace(''+ page.html +'
');
+ body.append($(space[1]));
+ } else if (page.url !== ''){
+ setSpace(''+ page.html +'
');
+ body.append($(space[1]));
+ $.get(page.url, function(datas){
+ $('#xuboxPageHtml'+ times).html(datas.toString());
+ page.ok && page.ok(datas);
+ });
+ } else {
+ if($(page.dom).parents(doms[4]).length == 0){
+ setSpace();
+ $(page.dom).show().wrap($(space[1]));
+ } else {
+ return;
+ }
+ }
+ break;
+
+ case 3:
+ config.title = false;
+ config.area = ['auto', 'auto'];
+ config.closeBtn = ['', false];
+ $('.xubox_loading')[0] && layer.closeLoad();
+ break;
+
+ case 4:
+ config.title = false;
+ config.area = ['auto', 'auto'];
+ config.fix = false;
+ config.border = [0];
+ config.tips.more || layer.closeTips();
+ break;
+ };
+ if(config.type !== 1){
+ setSpace();
+ body.append($(space[1]));
+ }
+
+ var layerE = that.layerE = $('#'+ doms[0] + times);
+
+ layerE.css({width: config.area[0], height: config.area[1]});
+ config.fix || layerE.css({position: 'absolute'});
+
+ //配置按钮
+ if(config.title && (config.type !== 3 || config.type !== 4)){
+ var confbtn = config.type === 0 ? dialog : config, layerBtn = layerE.find('.xubox_botton');
+ confbtn.btn = config.btn || dialog.btn;
+ switch(confbtn.btns){
+ case 0:
+ layerBtn.html('').hide();
+ break;
+ case 1:
+ layerBtn.html(''+ confbtn.btn[0] +'');
+ break;
+ case 2:
+ layerBtn.html(''+ confbtn.btn[0] +'' + ''+ confbtn.btn[1] + '');
+ break;
+ }
+ }
+
+ if(layerE.css('left') === 'auto'){
+ layerE.hide();
+ setTimeout(function(){
+ layerE.show();
+ that.set(times);
+ }, 500);
+ }else{
+ that.set(times);
+ }
+ config.time <= 0 || that.autoclose();
+ that.callback();
+};
+
+ready.fade = function(obj, time, opa){
+ obj.css({opacity: 0}).animate({opacity: opa}, time);
+};
+
+//计算坐标
+Class.pt.offset = function(){
+ var that = this, config = that.config, layerE = that.layerE, laywid = layerE.outerHeight();
+ if(config.offset[0] === '' && laywid < win.height()){
+ that.offsetTop = (win.height() - laywid - 2*config.border[0])/2;
+ }else if(config.offset[0].indexOf("px") != -1){
+ that.offsetTop = parseFloat(config.offset[0]);
+ } else {
+ that.offsetTop = parseFloat(config.offset[0]||0)/100 * win.height();
+ }
+ that.offsetTop = that.offsetTop + config.border[0] + (config.fix ? 0 : win.scrollTop());
+ if(config.offset[1].indexOf("px") != -1){
+ that.offsetLeft = parseFloat(config.offset[1]) + config.border[0];
+ } else {
+ config.offset[1] = config.offset[1] === '' ? '50%' : config.offset[1];
+ if(config.offset[1] === '50%'){
+ that.offsetLeft = config.offset[1];
+ }else{
+ that.offsetLeft = parseFloat(config.offset[1])/100 * win.width() + config.border[0];
+ }
+ };
+};
+
+//初始化骨架
+Class.pt.set = function(times){
+ var that = this;
+ var config = that.config;
+ var dialog = config.dialog;
+ var page = config.page;
+ var loading = config.loading;
+ var layerE = that.layerE;
+ var layerTitle = layerE.find(doms[2]);
+
+ that.autoArea(times);
+
+ if(config.title){
+ if(config.type === 0){
+ layer.ie6 && layerTitle.css({width : layerE.outerWidth()});
+ }
+ }else{
+ config.type !== 4 && layerE.find('.xubox_close').addClass('xubox_close1');
+ };
+
+ layerE.attr({'type' : ready.type[config.type]});
+ that.offset();
+
+ //判断是否动画弹出
+ if(config.type !== 4){
+ if(config.shift && !layer.ie6){
+ if(typeof config.shift === 'object'){
+ that.shift(config.shift[0], config.shift[1]||500, config.shift[2]);
+ } else {
+ that.shift(config.shift, 500);
+ }
+ } else {
+ layerE.css({top: that.offsetTop, left: that.offsetLeft});
+ }
+ }
+
+ switch(config.type){
+ case 0:
+ layerE.find(doms[5]).css({'background-color': '#fff'});
+ if(config.title){
+ layerE.find(doms[3]).css({paddingTop: 18 + layerTitle.outerHeight()});
+ }else{
+ layerE.find('.xubox_msgico').css({top: 8});
+ layerE.find(doms[3]).css({marginTop : 11});
+ }
+ break;
+
+ case 1:
+ layerE.find(page.dom).addClass('layer_pageContent');
+ config.shade[0] && layerE.css({zIndex: config.zIndex + 1});
+ config.title && layerE.find(doms[4]).css({top: layerTitle.outerHeight()});
+ break;
+
+ case 2:
+ var iframe = layerE.find('.'+ doms[1]), heg = layerE.height();
+ iframe.addClass('xubox_load').css({width: layerE.width()});
+ config.title ? iframe.css({top: layerTitle.height(), height: heg - layerTitle.height()}) : iframe.css({top: 0, height : heg});
+ layer.ie6 && iframe.attr('src', config.iframe.src);
+ break;
+
+ case 4:
+ var layArea = [0, layerE.outerHeight()], fow = $(config.tips.follow), fowo = {
+ width: fow.outerWidth(),
+ height: fow.outerHeight(),
+ top: fow.offset().top,
+ left: fow.offset().left
+ }, tipsG = layerE.find('.layerTipsG');
+
+ config.tips.isGuide || tipsG.remove();
+ layerE.outerWidth() > config.maxWidth && layerE.width(config.maxWidth);
+
+ fowo.tipColor = config.tips.style[1];
+ layArea[0] = layerE.outerWidth();
+
+ fowo.autoLeft = function(){
+ if(fowo.left + layArea[0] - win.width() > 0){
+ fowo.tipLeft = fowo.left + fowo.width - layArea[0];
+ tipsG.css({right: 12, left: 'auto'});
+ } else {
+ fowo.tipLeft = fowo.left;
+ };
+ };
+
+ //辨别tips的方位
+ fowo.where = [function(){ //上
+ fowo.autoLeft();
+ fowo.tipTop = fowo.top - layArea[1] - 10;
+ tipsG.removeClass('layerTipsB').addClass('layerTipsT').css({'border-right-color': fowo.tipColor});
+ }, function(){ //右
+ fowo.tipLeft = fowo.left + fowo.width + 10;
+ fowo.tipTop = fowo.top;
+ tipsG.removeClass('layerTipsL').addClass('layerTipsR').css({'border-bottom-color': fowo.tipColor});
+ }, function(){ //下
+ fowo.autoLeft();
+ fowo.tipTop = fowo.top + fowo.height + 10;
+ tipsG.removeClass('layerTipsT').addClass('layerTipsB').css({'border-right-color': fowo.tipColor});
+ }, function(){ //左
+ fowo.tipLeft = fowo.left - layArea[0] + 10;
+ fowo.tipTop = fowo.top;
+ tipsG.removeClass('layerTipsR').addClass('layerTipsL').css({'border-bottom-color': fowo.tipColor});
+ }];
+ fowo.where[config.tips.guide]();
+
+ /* 8*2为小三角形占据的空间 */
+ if(config.tips.guide === 0){
+ fowo.top - (win.scrollTop() + layArea[1] + 8*2) < 0 && fowo.where[2]();
+ } else if(config.tips.guide === 1){
+ win.width() - (fowo.left + fowo.width + layArea[0] + 8*2) > 0 || fowo.where[3]()
+ } else if(config.tips.guide === 2){
+ (fowo.top - win.scrollTop() + fowo.height + layArea[1] + 8*2) - win.height() > 0 && fowo.where[0]();
+ } else if(config.tips.guide === 3){
+ layArea[0] + 8*2 - fowo.left > 0 && fowo.where[1]()
+ } else if(config.tips.guide === 4){
+
+ }
+ layerE.css({left: fowo.tipLeft, top: fowo.tipTop});
+ break;
+ };
+
+ if(config.fadeIn){
+ ready.fade(layerE, config.fadeIn, 1);
+ ready.fade($('#xubox_shade'+ times), config.fadeIn, config.shade[0]);
+ }
+
+ //坐标自适应浏览器窗口尺寸
+ if(config.fix && config.offset[0] === '' && !config.shift){
+ win.on('resize', function(){
+ layerE.css({top: (win.height() - layerE.outerHeight())/2});
+ });
+ }
+
+ that.move();
+};
+
+//动画进入
+Class.pt.shift = function(type, rate, stop){
+ var that = this, config = that.config;
+ var layerE = that.layerE;
+ var cutWth = 0, ww = win.width();
+ var wh = win.height() + (config.fix ? 0 : win.scrollTop());
+
+ if(config.offset[1] == '50%' || config.offset[1] == ''){
+ cutWth = layerE.outerWidth()/2;
+ } else {
+ cutWth = layerE.outerWidth();
+ }
+
+ var anim = {
+ t: {top: that.offsetTop},
+ b: {top : wh - layerE.outerHeight() - config.border[0]},
+ cl: cutWth + config.border[0],
+ ct: -layerE.outerHeight(),
+ cr: ww - cutWth - config.border[0]
+ };
+
+ switch(type){
+ case 'left-top':
+ layerE.css({left: anim.cl, top: anim.ct}).animate(anim.t, rate);
+ break;
+ case 'top':
+ layerE.css({top: anim.ct}).animate(anim.t, rate);
+ break;
+ case 'right-top':
+ layerE.css({left: anim.cr, top: anim.ct}).animate(anim.t, rate);
+ break;
+ case 'right-bottom':
+ layerE.css({left: anim.cr, top: wh}).animate(stop ? anim.t : anim.b, rate);
+ break;
+ case 'bottom':
+ layerE.css({top: wh}).animate(stop ? anim.t : anim.b, rate);
+ break;
+ case 'left-bottom':
+ layerE.css({left: anim.cl, top: wh}).animate(stop ? anim.t : anim.b, rate);
+ break;
+ case 'left':
+ layerE.css({left: -layerE.outerWidth()}).animate({left: that.offsetLeft}, rate);
+ break;
+ }
+};
+
+//自适应宽高
+Class.pt.autoArea = function(times){
+ var that = this, times = times || that.index, config = that.config, page = config.page;
+ var layerE = $('#'+ doms[0] + times), layerTitle = layerE.find(doms[2]), layerMian = layerE.find(doms[5]);
+ var titHeight = config.title ? layerTitle.innerHeight() : 0, outHeight, btnHeight = 0;
+ if(config.area[0] === 'auto' && layerMian.outerWidth() >= config.maxWidth){
+ layerE.css({width : config.maxWidth});
+ }
+ switch(config.type){
+ case 0:
+ var aBtn = layerE.find('.xubox_botton>a');
+ outHeight = layerE.find(doms[3]).outerHeight() + 20;
+ if(aBtn.length > 0){
+ btnHeight = aBtn.outerHeight() + 20;
+ }
+ break;
+ case 1:
+ var layerPage = layerE.find(doms[4]);
+ outHeight = $(page.dom).outerHeight();
+ config.area[0] === 'auto' && layerE.css({width : layerPage.outerWidth()});
+ if(page.html !== '' || page.url !== ''){
+ outHeight = layerPage.outerHeight();
+ }
+ break;
+ case 2:
+ layerE.find('iframe').css({width: layerE.outerWidth(), height: layerE.outerHeight() - (config.title ? layerTitle.innerHeight() : 0)});
+ break;
+ case 3:
+ var load = layerE.find(".xubox_loading");
+ outHeight = load.outerHeight();
+ layerMian.css({width: load.width()});
+ break;
+ };
+ (config.area[1] === 'auto') && layerMian.css({height: titHeight + outHeight + btnHeight});
+ $('#xubox_border' + times).css({width: layerE.outerWidth() + 2*config.border[0] , height: layerE.outerHeight() + 2*config.border[0]});
+ (layer.ie6 && config.area[0] !== 'auto') && layerMian.css({width : layerE.outerWidth()});
+ (config.offset[1] === '50%' || config.offset[1] == '') && (config.type !== 4) ? layerE.css({marginLeft : -layerE.outerWidth()/2}) : layerE.css({marginLeft : 0});
+};
+
+//拖拽层
+Class.pt.move = function(){
+ var that = this, config = that.config, conf = {
+ setY: 0,
+ moveLayer: function(){
+ if(parseInt(conf.layerE.css('margin-left')) == 0){
+ var lefts = parseInt(conf.move.css('left'));
+ }else{
+ var lefts = parseInt(conf.move.css('left')) + (-parseInt(conf.layerE.css('margin-left')))
+ }
+ if(conf.layerE.css('position') !== 'fixed'){
+ lefts = lefts - conf.layerE.parent().offset().left;
+ conf.setY = 0
+ }
+ conf.layerE.css({left: lefts, top: parseInt(conf.move.css('top')) - conf.setY});
+ }
+ };
+
+ var movedom = that.layerE.find(config.move);
+ config.move && movedom.attr('move','ok');
+ config.move ? movedom.css({cursor: 'move'}) : movedom.css({cursor: 'auto'});
+
+ $(config.move).on('mousedown', function(M){
+ M.preventDefault();
+ if($(this).attr('move') === 'ok'){
+ conf.ismove = true;
+ conf.layerE = $(this).parents('.'+ doms[0]);
+ var xx = conf.layerE.offset().left, yy = conf.layerE.offset().top, ww = conf.layerE.width() - 6, hh = conf.layerE.height() - 6;
+ if(!$('#xubox_moves')[0]){
+ $('body').append('');
+ }
+ conf.move = $('#xubox_moves');
+ config.moveType && conf.move.css({opacity: 0});
+
+ conf.moveX = M.pageX - conf.move.position().left;
+ conf.moveY = M.pageY - conf.move.position().top;
+ conf.layerE.css('position') !== 'fixed' || (conf.setY = win.scrollTop());
+ }
+ });
+
+ $(document).mousemove(function(M){
+ if(conf.ismove){
+ var offsetX = M.pageX - conf.moveX, offsetY = M.pageY - conf.moveY;
+ M.preventDefault();
+
+ //控制元素不被拖出窗口外
+ if(!config.moveOut){
+ conf.setY = win.scrollTop();
+ var setRig = win.width() - conf.move.outerWidth() - config.border[0], setTop = config.border[0] + conf.setY;
+ offsetX < config.border[0] && (offsetX = config.border[0]);
+ offsetX > setRig && (offsetX = setRig);
+ offsetY < setTop && (offsetY = setTop);
+ offsetY > win.height() - conf.move.outerHeight() - config.border[0] + conf.setY && (offsetY = win.height() - conf.move.outerHeight() - config.border[0] + conf.setY);
+ }
+
+ conf.move.css({left: offsetX, top: offsetY});
+ config.moveType && conf.moveLayer();
+
+ offsetX = null;
+ offsetY = null;
+ setRig = null;
+ setTop = null
+ }
+ }).mouseup(function(){
+ try{
+ if(conf.ismove){
+ conf.moveLayer();
+ conf.move.remove();
+ }
+ conf.ismove = false;
+ }catch(e){
+ conf.ismove = false;
+ }
+ config.moveEnd && config.moveEnd();
+ });
+};
+
+//自动关闭layer
+Class.pt.autoclose = function(){
+ var that = this, time = that.config.time, maxLoad = function(){
+ time--;
+ if(time === 0){
+ layer.close(that.index);
+ clearInterval(that.autotime);
+ }
+ };
+ that.autotime = setInterval(maxLoad , 1000);
+};
+
+ready.config = {
+ end: {}
+};
+
+Class.pt.callback = function(){
+ var that = this, layerE = that.layerE, config = that.config, dialog = config.dialog;
+ that.openLayer();
+ that.config.success(layerE);
+ layer.ie6 && that.IE6(layerE);
+
+ layerE.find('.xubox_close').on('click', function(){
+ config.close(that.index);
+ layer.close(that.index);
+ });
+
+ layerE.find('.xubox_yes').on('click',function(){
+ config.yes ? config.yes(that.index) : dialog.yes(that.index);
+ });
+
+ layerE.find('.xubox_no').on('click',function(){
+ config.no ? config.no(that.index) : dialog.no(that.index);
+ layer.close(that.index);
+ });
+
+ if(that.config.shadeClose){
+ $('#xubox_shade'+ that.index).on('click', function(){
+ layer.close(that.index);
+ });
+ }
+
+ //最小化
+ layerE.find('.xubox_min').on('click', function(){
+ layer.min(that.index, config);
+ config.min && config.min(layerE);
+ });
+
+ //全屏/还原
+ layerE.find('.xubox_max').on('click', function(){
+ if($(this).hasClass('xubox_maxmin')){
+ layer.restore(that.index);
+ config.restore && config.restore(layerE);
+ } else {
+ layer.full(that.index, config);
+ config.full && config.full(layerE);
+ }
+ });
+
+ ready.config.end[that.index] = config.end;
+};
+
+//恢复select
+ready.reselect = function(){
+ $.each($('select'), function(index , value){
+ var sthis = $(this);
+ if(!sthis.parents('.'+doms[0])[0]){
+ (sthis.attr('layer') == 1 && $('.'+doms[0]).length < 1) && sthis.removeAttr('layer').show();
+ }
+ sthis = null;
+ });
+};
+
+Class.pt.IE6 = function(layerE){
+ var that = this;
+ var _ieTop = layerE.offset().top;
+ //ie6的固定与相对定位
+ if(that.config.fix){
+ var ie6Fix = function(){
+ layerE.css({top : win.scrollTop() + _ieTop});
+ };
+ }else{
+ var ie6Fix = function(){
+ layerE.css({top : _ieTop});
+ };
+ }
+ ie6Fix();
+ win.scroll(ie6Fix);
+
+ //隐藏select
+ $.each($('select'), function(index , value){
+ var sthis = $(this);
+ if(!sthis.parents('.'+doms[0])[0]){
+ sthis.css('display') == 'none' || sthis.attr({'layer' : '1'}).hide();
+ }
+ sthis = null;
+ });
+};
+
+//给layer对象拓展方法
+Class.pt.openLayer = function(){
+ var that = this, layerE = that.layerE;
+
+ //自适应宽高
+ layer.autoArea = function(index){
+ return that.autoArea(index);
+ };
+
+ //兼容旧版出场动画
+ layer.shift = function(type, rate, stop){
+ that.shift(type, rate, stop);
+ };
+
+ //初始化拖拽元素
+ layer.setMove = function(){
+ return that.move();
+ };
+
+ //置顶当前窗口
+ layer.zIndex = that.config.zIndex;
+ layer.setTop = function(layerNow){
+ var setZindex = function(){
+ layer.zIndex++;
+ layerNow.css('z-index', layer.zIndex + 1);
+ };
+ layer.zIndex = parseInt(layerNow[0].style.zIndex);
+ layerNow.on('mousedown', setZindex);
+ return layer.zIndex;
+ };
+
+};
+
+ready.isauto = function(layero, options, offset){
+ options.area[0] === 'auto' && (options.area[0] = layero.outerWidth());
+ options.area[1] === 'auto' && (options.area[1] = layero.outerHeight());
+ layero.attr({area: options.area + ',' + offset});
+ layero.find('.xubox_max').addClass('xubox_maxmin');
+};
+
+ready.rescollbar = function(index){
+ if(doms.html.attr('layer-full') == index){
+ if(doms.html[0].style.removeProperty){
+ doms.html[0].style.removeProperty('overflow');
+ } else {
+ doms.html[0].style.removeAttribute('overflow');
+ }
+ doms.html.removeAttr('layer-full');
+ }
+};
+
+
+/**
+ * 集成属性/方法
+ **/
+
+
+//获取page层所在索引
+layer.getIndex = function(selector){
+ return $(selector).parents('.'+doms[0]).attr('times');
+};
+
+//获取子iframe的DOM
+layer.getChildFrame = function(selector, index){
+ index = index || $('.'+ doms[1]).parents('.'+doms[0]).attr('times');
+ return $('#'+ doms[0] + index).find('.'+ doms[1]).contents().find(selector);
+};
+
+//得到当前iframe层的索引,子iframe时使用
+layer.getFrameIndex = function(name){
+ return $(name ? '#'+ name : '.'+ doms[1]).parents('.'+doms[0]).attr('times');
+};
+
+//iframe层自适应宽高
+layer.iframeAuto = function(index){
+ index = index || $('.'+ doms[1]).parents('.'+doms[0]).attr('times');
+ var heg = layer.getChildFrame('body', index).outerHeight(),
+ layero = $('#'+ doms[0] + index), tit = layero.find(doms[2]), titHt = 0;
+ tit && (titHt = tit.height());
+ layero.css({height: heg + titHt});
+ var bs = -parseInt($('#xubox_border'+ index).css('top'));
+ $('#xubox_border'+ index).css({height: heg + 2*bs + titHt});
+ $('#'+ doms[1] + index).css({height: heg});
+};
+
+//重置iframe url
+layer.iframeSrc = function(index, url){
+ $('#'+ doms[0] + index).find('iframe').attr('src', url);
+};
+
+//重置层
+layer.area = function(index, options){
+ var layero = [$('#'+ doms[0] + index), $('#xubox_border'+ index)],
+ type = layero[0].attr('type'), main = layero[0].find(doms[5]),
+ title = layero[0].find(doms[2]);
+
+ if(type === ready.type[1] || type === ready.type[2]){
+ layero[0].css(options);
+ main.css({width: options.width, height: options.height});
+ if(type === ready.type[2]){
+ var iframe = layero[0].find('iframe');
+ iframe.css({width: options.width, height: title ? options.height - title.innerHeight() : options.height});
+ }
+ if(layero[0].css('margin-left') !== '0px') {
+ options.hasOwnProperty('top') && layero[0].css({top: options.top - (layero[1][0] ? parseFloat(layero[1].css('top')) : 0)});
+ options.hasOwnProperty('left') && layero[0].css({left: options.left + layero[0].outerWidth()/2 - (layero[1][0] ? parseFloat(layero[1].css('left')) : 0)});
+ layero[0].css({marginLeft : -layero[0].outerWidth()/2});
+ }
+ if(layero[1][0]){
+ layero[1].css({
+ width: parseFloat(options.width) - 2*parseFloat(layero[1].css('left')),
+ height: parseFloat(options.height) - 2*parseFloat(layero[1].css('top'))
+ });
+ }
+ }
+};
+
+//最小化
+layer.min = function(index, options){
+ var layero = $('#'+ doms[0] + index), offset = [layero.position().top, layero.position().left + parseFloat(layero.css('margin-left'))];
+ ready.isauto(layero, options, offset);
+ layer.area(index, {width: 180, height: 35});
+ layero.find('.xubox_min').hide();
+ layero.attr('type') === 'page' && layero.find(doms[4]).hide();
+ ready.rescollbar(index);
+};
+
+//还原
+layer.restore = function(index){
+ var layero = $('#'+ doms[0] + index), area = layero.attr('area').split(',');
+ var type = layero.attr('type');
+ layer.area(index, {
+ width: parseFloat(area[0]),
+ height: parseFloat(area[1]),
+ top: parseFloat(area[2]),
+ left: parseFloat(area[3])
+ });
+ layero.find('.xubox_max').removeClass('xubox_maxmin');
+ layero.find('.xubox_min').show();
+ layero.attr('type') === 'page' && layero.find(doms[4]).show();
+ ready.rescollbar(index);
+};
+
+//全屏
+layer.full = function(index, options){
+ var layero = $('#'+ doms[0] + index), borders = options.border[0]*2 || 6, timer;
+ var offset = [layero.position().top, layero.position().left + parseFloat(layero.css('margin-left'))];
+ ready.isauto(layero, options, offset);
+ if(!doms.html.attr('layer-full')){
+ doms.html.css('overflow','hidden').attr('layer-full', index);
+ }
+ clearTimeout(timer);
+ timer = setTimeout(function(){
+ layer.area(index, {
+ top: layero.css('position') === 'fixed' ? 0 : win.scrollTop(),
+ left: layero.css('position') === 'fixed' ? 0 : win.scrollLeft(),
+ width: win.width() - borders,
+ height: win.height() - borders
+ });
+ }, 100);
+};
+
+//改变title
+layer.title = function(name, index){
+ var title = $('#'+ doms[0] + (index||layer.index)).find('.xubox_title>em');
+ title.html(name);
+};
+
+//关闭layer总方法
+layer.close = function(index){
+ var layero = $('#'+ doms[0] + index), type = layero.attr('type'), shadeNow = $('#xubox_moves, #xubox_shade' + index);
+ if(!layero[0]){
+ return;
+ }
+ if(type == ready.type[1]){
+ if(layero.find('.xuboxPageHtml')[0]){
+ layero[0].innerHTML = '';
+ layero.remove();
+ }else{
+ layero.find('.xubox_setwin,.xubox_close,.xubox_botton,.xubox_title,.xubox_border').remove();
+ for(var i = 0 ; i < 3 ; i++){
+ layero.find('.layer_pageContent').unwrap().hide();
+ }
+ }
+ }else{
+ layero[0].innerHTML = '';
+ layero.remove();
+ }
+ shadeNow.remove();
+ layer.ie6 && ready.reselect();
+ ready.rescollbar(index);
+ typeof ready.config.end[index] === 'function' && ready.config.end[index]();
+ delete ready.config.end[index];
+};
+
+//关闭loading层
+layer.closeLoad = function(){
+ layer.close($('.xubox_loading').parents('.'+doms[0]).attr('times'));
+};
+
+//关闭tips层
+layer.closeTips = function(){
+ layer.closeAll('tips');
+};
+
+//关闭所有层
+layer.closeAll = function(type){
+ $.each($('.'+doms[0]), function(){
+ var othis = $(this);
+ var is = type ? (othis.attr('type') === type) : 1;
+ if(is){
+ layer.close(othis.attr('times'));
+ }
+ is = null;
+ });
+};
+
+//主入口
+ready.run = function(){
+ $ = jQuery;
+ win = $(window);
+ doms.html = $('html');
+ layer.use('skin/layer.css');
+ $.layer = function(deliver){
+ var o = new Class(deliver);
+ return o.index;
+ };
+ (new Image()).src = layer.path + 'skin/default/xubox_ico0.png';
+};
+
+if("function" === typeof define){
+ define(function(){
+ ready.run();
+ return layer;
+ });
+}else{
+ ready.run();
+}
+
+}(window);
\ No newline at end of file
diff --git a/layer.min.js b/layer.min.js
new file mode 100644
index 0000000..2bf1682
--- /dev/null
+++ b/layer.min.js
@@ -0,0 +1,2 @@
+/*! layer-v1.8.5 弹层组件 2014-09-10 License LGPL http://sentsin.com/jquery/layer/ By 贤心 */
+;!function(a,b){"use strict";var c,d,e="",f={getPath:function(){var a=document.scripts,b=a[a.length-1].src;return e?e:b.substring(0,b.lastIndexOf("/")+1)},type:["dialog","page","iframe","loading","tips"]};a.layer={v:"1.8.5",ie6:!!a.ActiveXObject&&!a.XMLHttpRequest,index:0,path:f.getPath(),use:function(a,b){var d=c("head")[0],a=a.replace(/\s/g,""),e=/\.css$/.test(a),f=document.createElement(e?"link":"script"),g=a.replace(/\.|\//g,"");e&&(f.type="text/css",f.rel="stylesheet"),f[e?"href":"src"]=/^http:\/\//.test(a)?a:layer.path+a,f.id=g,c("#"+g)[0]||d.appendChild(f),b&&(document.all?c(f).ready(b):c(f).load(b))},alert:function(a,b,d,e){var f="function"==typeof d,g={dialog:{msg:a,type:b,yes:f?d:e},area:["auto","auto"]};return f||(g.title=d),c.layer(g)},confirm:function(a,b,d,e){var f="function"==typeof d,g={dialog:{msg:a,type:4,btns:2,yes:b,no:f?d:e}};return f||(g.title=d),c.layer(g)},msg:function(a,d,e,f){var g={title:!1,closeBtn:!1,time:d===b?2:d,dialog:{msg:""===a||a===b?" ":a},end:f};return"object"==typeof e?(g.dialog.type=e.type,g.shade=e.shade,g.shift=e.rate):"function"==typeof e?g.end=e:g.dialog.type=e,c.layer(g)},load:function(a,b){return"string"==typeof a?layer.msg(a,b||0,16):c.layer({time:a,loading:{type:b},bgcolor:b?"#fff":"",shade:b?[.1,"#000"]:[0],border:3!==b&&b?[6,.3,"#000"]:[0],type:3,title:["",!1],closeBtn:[0,!1]})},tips:function(a,b,d,e,f,g){var h={type:4,shade:!1,success:function(a){this.closeBtn||a.find(".xubox_tips").css({"padding-right":10})},bgcolor:"",tips:{msg:a,follow:b}};return h.time="object"==typeof d?d.time:0|d,d=d||{},h.closeBtn=d.closeBtn||!1,h.maxWidth=d.maxWidth||e,h.tips.guide=d.guide||f,h.tips.style=d.style||g,h.tips.more=d.more,c.layer(h)}};var g=["xubox_layer","xubox_iframe",".xubox_title",".xubox_text",".xubox_page",".xubox_main"],h=function(a){var b=this,d=b.config;layer.index++,b.index=layer.index,b.config=c.extend({},d,a),b.config.dialog=c.extend({},d.dialog,a.dialog),b.config.page=c.extend({},d.page,a.page),b.config.iframe=c.extend({},d.iframe,a.iframe),b.config.loading=c.extend({},d.loading,a.loading),b.config.tips=c.extend({},d.tips,a.tips),b.creat()};h.pt=h.prototype,h.pt.config={type:0,shade:[.3,"#000"],fix:!0,move:".xubox_title",title:"信息",offset:["","50%"],area:["310px","auto"],closeBtn:[0,!0],time:0,bgcolor:"#fff",border:[6,.3,"#000"],zIndex:19891014,maxWidth:400,dialog:{btns:1,btn:["确定","取消"],type:8,msg:"",yes:function(a){layer.close(a)},no:function(a){layer.close(a)}},page:{dom:"#xulayer",html:"",url:""},iframe:{src:"http://sentsin.com",scrolling:"auto"},loading:{type:0},tips:{msg:"",follow:"",guide:0,isGuide:!0,style:["background-color:#FF9900; color:#fff;","#FF9900"]},success:function(){},close:function(a){layer.close(a)},end:function(){}},h.pt.space=function(a){var b=this,a=a||"",c=b.index,d=b.config,e=d.dialog,f=-1===e.type?"":'',h=[''+f+''+e.msg+"
",''+a+"
",'','',''],i="",j="",k=d.zIndex+c,l="z-index:"+k+"; background-color:"+d.shade[1]+"; opacity:"+d.shade[0]+"; filter:alpha(opacity="+100*d.shade[0]+");";d.shade[0]&&(i=''),d.zIndex=k;var m="",n="",o="z-index:"+(k-1)+"; background-color: "+d.border[2]+"; opacity:"+d.border[1]+"; filter:alpha(opacity="+100*d.border[1]+"); top:-"+d.border[0]+"px; left:-"+d.border[0]+"px;";d.border[0]&&(j=''),!d.maxmin||1!==d.type&&2!==d.type||/^\d+%$/.test(d.area[0])&&/^\d+%$/.test(d.area[1])||(n=''),d.closeBtn[1]&&(n+='');var p="object"==typeof d.title;return d.title&&(m=''+(p?d.title[0]:d.title)+"
"),[i,''+h[d.type]+m+''+n+'
'+j+"
"]},h.pt.creat=function(){var a=this,b="",d=a.config,e=d.dialog,f=a.index,h=d.page,i=c("body"),j=function(d){var d=d||"";b=a.space(d),i.append(c(b[0]))};switch(d.type){case 0:d.title||(d.area=["auto","auto"]),c(".xubox_dialog")[0]&&layer.close(c(".xubox_dialog").parents("."+g[0]).attr("times"));break;case 1:if(""!==h.html)j(''+h.html+"
"),i.append(c(b[1]));else if(""!==h.url)j(''+h.html+"
"),i.append(c(b[1])),c.get(h.url,function(a){c("#xuboxPageHtml"+f).html(a.toString()),h.ok&&h.ok(a)});else{if(0!=c(h.dom).parents(g[4]).length)return;j(),c(h.dom).show().wrap(c(b[1]))}break;case 3:d.title=!1,d.area=["auto","auto"],d.closeBtn=["",!1],c(".xubox_loading")[0]&&layer.closeLoad();break;case 4:d.title=!1,d.area=["auto","auto"],d.fix=!1,d.border=[0],d.tips.more||layer.closeTips()}1!==d.type&&(j(),i.append(c(b[1])));var k=a.layerE=c("#"+g[0]+f);if(k.css({width:d.area[0],height:d.area[1]}),d.fix||k.css({position:"absolute"}),d.title&&(3!==d.type||4!==d.type)){var l=0===d.type?e:d,m=k.find(".xubox_botton");switch(l.btn=d.btn||e.btn,l.btns){case 0:m.html("").hide();break;case 1:m.html(''+l.btn[0]+"");break;case 2:m.html(''+l.btn[0]+''+l.btn[1]+"")}}"auto"===k.css("left")?(k.hide(),setTimeout(function(){k.show(),a.set(f)},500)):a.set(f),d.time<=0||a.autoclose(),a.callback()},f.fade=function(a,b,c){a.css({opacity:0}).animate({opacity:c},b)},h.pt.offset=function(){var a=this,b=a.config,c=a.layerE,e=c.outerHeight();a.offsetTop=""===b.offset[0]&&ee.maxWidth&&i.width(e.maxWidth),o.tipColor=e.tips.style[1],m[0]=i.outerWidth(),o.autoLeft=function(){o.left+m[0]-d.width()>0?(o.tipLeft=o.left+o.width-m[0],p.css({right:12,left:"auto"})):o.tipLeft=o.left},o.where=[function(){o.autoLeft(),o.tipTop=o.top-m[1]-10,p.removeClass("layerTipsB").addClass("layerTipsT").css({"border-right-color":o.tipColor})},function(){o.tipLeft=o.left+o.width+10,o.tipTop=o.top,p.removeClass("layerTipsL").addClass("layerTipsR").css({"border-bottom-color":o.tipColor})},function(){o.autoLeft(),o.tipTop=o.top+o.height+10,p.removeClass("layerTipsT").addClass("layerTipsB").css({"border-right-color":o.tipColor})},function(){o.tipLeft=o.left-m[0]+10,o.tipTop=o.top,p.removeClass("layerTipsR").addClass("layerTipsL").css({"border-bottom-color":o.tipColor})}],o.where[e.tips.guide](),0===e.tips.guide?o.top-(d.scrollTop()+m[1]+16)<0&&o.where[2]():1===e.tips.guide?d.width()-(o.left+o.width+m[0]+16)>0||o.where[3]():2===e.tips.guide?o.top-d.scrollTop()+o.height+m[1]+16-d.height()>0&&o.where[0]():3===e.tips.guide?m[0]+16-o.left>0&&o.where[1]():4===e.tips.guide,i.css({left:o.tipLeft,top:o.tipTop})}e.fadeIn&&(f.fade(i,e.fadeIn,1),f.fade(c("#xubox_shade"+a),e.fadeIn,e.shade[0])),e.fix&&""===e.offset[0]&&!e.shift&&d.on("resize",function(){i.css({top:(d.height()-i.outerHeight())/2})}),b.move()},h.pt.shift=function(a,b,c){var e=this,f=e.config,g=e.layerE,h=0,i=d.width(),j=d.height()+(f.fix?0:d.scrollTop());h="50%"==f.offset[1]||""==f.offset[1]?g.outerWidth()/2:g.outerWidth();var k={t:{top:e.offsetTop},b:{top:j-g.outerHeight()-f.border[0]},cl:h+f.border[0],ct:-g.outerHeight(),cr:i-h-f.border[0]};switch(a){case"left-top":g.css({left:k.cl,top:k.ct}).animate(k.t,b);break;case"top":g.css({top:k.ct}).animate(k.t,b);break;case"right-top":g.css({left:k.cr,top:k.ct}).animate(k.t,b);break;case"right-bottom":g.css({left:k.cr,top:j}).animate(c?k.t:k.b,b);break;case"bottom":g.css({top:j}).animate(c?k.t:k.b,b);break;case"left-bottom":g.css({left:k.cl,top:j}).animate(c?k.t:k.b,b);break;case"left":g.css({left:-g.outerWidth()}).animate({left:e.offsetLeft},b)}},h.pt.autoArea=function(a){var b,d=this,a=a||d.index,e=d.config,f=e.page,h=c("#"+g[0]+a),i=h.find(g[2]),j=h.find(g[5]),k=e.title?i.innerHeight():0,l=0;switch("auto"===e.area[0]&&j.outerWidth()>=e.maxWidth&&h.css({width:e.maxWidth}),e.type){case 0:var m=h.find(".xubox_botton>a");b=h.find(g[3]).outerHeight()+20,m.length>0&&(l=m.outerHeight()+20);break;case 1:var n=h.find(g[4]);b=c(f.dom).outerHeight(),"auto"===e.area[0]&&h.css({width:n.outerWidth()}),(""!==f.html||""!==f.url)&&(b=n.outerHeight());break;case 2:h.find("iframe").css({width:h.outerWidth(),height:h.outerHeight()-(e.title?i.innerHeight():0)});break;case 3:var o=h.find(".xubox_loading");b=o.outerHeight(),j.css({width:o.width()})}"auto"===e.area[1]&&j.css({height:k+b+l}),c("#xubox_border"+a).css({width:h.outerWidth()+2*e.border[0],height:h.outerHeight()+2*e.border[0]}),layer.ie6&&"auto"!==e.area[0]&&j.css({width:h.outerWidth()}),h.css("50%"!==e.offset[1]&&""!=e.offset[1]||4===e.type?{marginLeft:0}:{marginLeft:-h.outerWidth()/2})},h.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){if(0==parseInt(e.layerE.css("margin-left")))var a=parseInt(e.move.css("left"));else var a=parseInt(e.move.css("left"))+-parseInt(e.layerE.css("margin-left"));"fixed"!==e.layerE.css("position")&&(a-=e.layerE.parent().offset().left,e.setY=0),e.layerE.css({left:a,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layerE.find(b.move);b.move&&f.attr("move","ok"),f.css(b.move?{cursor:"move"}:{cursor:"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layerE=c(this).parents("."+g[0]);var f=e.layerE.offset().left,h=e.layerE.offset().top,i=e.layerE.width()-6,j=e.layerE.height()-6;c("#xubox_moves")[0]||c("body").append(''),e.move=c("#xubox_moves"),b.moveType&&e.move.css({opacity:0}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layerE.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth()-b.border[0],h=b.border[0]+e.setY;cg&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()-b.border[0]+e.setY&&(f=d.height()-e.move.outerHeight()-b.border[0]+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=null,f=null,g=null,h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove()),e.ismove=!1}catch(a){e.ismove=!1}b.moveEnd&&b.moveEnd()})},h.pt.autoclose=function(){var a=this,b=a.config.time,c=function(){b--,0===b&&(layer.close(a.index),clearInterval(a.autotime))};a.autotime=setInterval(c,1e3)},f.config={end:{}},h.pt.callback=function(){var a=this,b=a.layerE,d=a.config,e=d.dialog;a.openLayer(),a.config.success(b),layer.ie6&&a.IE6(b),b.find(".xubox_close").on("click",function(){d.close(a.index),layer.close(a.index)}),b.find(".xubox_yes").on("click",function(){d.yes?d.yes(a.index):e.yes(a.index)}),b.find(".xubox_no").on("click",function(){d.no?d.no(a.index):e.no(a.index),layer.close(a.index)}),a.config.shadeClose&&c("#xubox_shade"+a.index).on("click",function(){layer.close(a.index)}),b.find(".xubox_min").on("click",function(){layer.min(a.index,d),d.min&&d.min(b)}),b.find(".xubox_max").on("click",function(){c(this).hasClass("xubox_maxmin")?(layer.restore(a.index),d.restore&&d.restore(b)):(layer.full(a.index,d),d.full&&d.full(b))}),f.config.end[a.index]=d.end},f.reselect=function(){c.each(c("select"),function(){var a=c(this);a.parents("."+g[0])[0]||1==a.attr("layer")&&c("."+g[0]).length<1&&a.removeAttr("layer").show(),a=null})},h.pt.IE6=function(a){var b=this,e=a.offset().top;if(b.config.fix)var f=function(){a.css({top:d.scrollTop()+e})};else var f=function(){a.css({top:e})};f(),d.scroll(f),c.each(c("select"),function(){var a=c(this);a.parents("."+g[0])[0]||"none"==a.css("display")||a.attr({layer:"1"}).hide(),a=null})},h.pt.openLayer=function(){{var a=this;a.layerE}layer.autoArea=function(b){return a.autoArea(b)},layer.shift=function(b,c,d){a.shift(b,c,d)},layer.setMove=function(){return a.move()},layer.zIndex=a.config.zIndex,layer.setTop=function(a){var b=function(){layer.zIndex++,a.css("z-index",layer.zIndex+1)};return layer.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),layer.zIndex}},f.isauto=function(a,b,c){"auto"===b.area[0]&&(b.area[0]=a.outerWidth()),"auto"===b.area[1]&&(b.area[1]=a.outerHeight()),a.attr({area:b.area+","+c}),a.find(".xubox_max").addClass("xubox_maxmin")},f.rescollbar=function(a){g.html.attr("layer-full")==a&&(g.html[0].style.removeProperty?g.html[0].style.removeProperty("overflow"):g.html[0].style.removeAttribute("overflow"),g.html.removeAttr("layer-full"))},layer.getIndex=function(a){return c(a).parents("."+g[0]).attr("times")},layer.getChildFrame=function(a,b){return b=b||c("."+g[1]).parents("."+g[0]).attr("times"),c("#"+g[0]+b).find("."+g[1]).contents().find(a)},layer.getFrameIndex=function(a){return c(a?"#"+a:"."+g[1]).parents("."+g[0]).attr("times")},layer.iframeAuto=function(a){a=a||c("."+g[1]).parents("."+g[0]).attr("times");var b=layer.getChildFrame("body",a).outerHeight(),d=c("#"+g[0]+a),e=d.find(g[2]),f=0;e&&(f=e.height()),d.css({height:b+f});var h=-parseInt(c("#xubox_border"+a).css("top"));c("#xubox_border"+a).css({height:b+2*h+f}),c("#"+g[1]+a).css({height:b})},layer.iframeSrc=function(a,b){c("#"+g[0]+a).find("iframe").attr("src",b)},layer.area=function(a,b){var d=[c("#"+g[0]+a),c("#xubox_border"+a)],e=d[0].attr("type"),h=d[0].find(g[5]),i=d[0].find(g[2]);if(e===f.type[1]||e===f.type[2]){if(d[0].css(b),h.css({width:b.width,height:b.height}),e===f.type[2]){var j=d[0].find("iframe");j.css({width:b.width,height:i?b.height-i.innerHeight():b.height})}"0px"!==d[0].css("margin-left")&&(b.hasOwnProperty("top")&&d[0].css({top:b.top-(d[1][0]?parseFloat(d[1].css("top")):0)}),b.hasOwnProperty("left")&&d[0].css({left:b.left+d[0].outerWidth()/2-(d[1][0]?parseFloat(d[1].css("left")):0)}),d[0].css({marginLeft:-d[0].outerWidth()/2})),d[1][0]&&d[1].css({width:parseFloat(b.width)-2*parseFloat(d[1].css("left")),height:parseFloat(b.height)-2*parseFloat(d[1].css("top"))})}},layer.min=function(a,b){var d=c("#"+g[0]+a),e=[d.position().top,d.position().left+parseFloat(d.css("margin-left"))];f.isauto(d,b,e),layer.area(a,{width:180,height:35}),d.find(".xubox_min").hide(),"page"===d.attr("type")&&d.find(g[4]).hide(),f.rescollbar(a)},layer.restore=function(a){{var b=c("#"+g[0]+a),d=b.attr("area").split(",");b.attr("type")}layer.area(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3])}),b.find(".xubox_max").removeClass("xubox_maxmin"),b.find(".xubox_min").show(),"page"===b.attr("type")&&b.find(g[4]).show(),f.rescollbar(a)},layer.full=function(a,b){var e,h=c("#"+g[0]+a),i=2*b.border[0]||6,j=[h.position().top,h.position().left+parseFloat(h.css("margin-left"))];f.isauto(h,b,j),g.html.attr("layer-full")||g.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(e),e=setTimeout(function(){layer.area(a,{top:"fixed"===h.css("position")?0:d.scrollTop(),left:"fixed"===h.css("position")?0:d.scrollLeft(),width:d.width()-i,height:d.height()-i})},100)},layer.title=function(a,b){var d=c("#"+g[0]+(b||layer.index)).find(".xubox_title>em");d.html(a)},layer.close=function(a){var b=c("#"+g[0]+a),d=b.attr("type"),e=c("#xubox_moves, #xubox_shade"+a);if(b[0]){if(d==f.type[1])if(b.find(".xuboxPageHtml")[0])b[0].innerHTML="",b.remove();else{b.find(".xubox_setwin,.xubox_close,.xubox_botton,.xubox_title,.xubox_border").remove();for(var h=0;3>h;h++)b.find(".layer_pageContent").unwrap().hide()}else b[0].innerHTML="",b.remove();e.remove(),layer.ie6&&f.reselect(),f.rescollbar(a),"function"==typeof f.config.end[a]&&f.config.end[a](),delete f.config.end[a]}},layer.closeLoad=function(){layer.close(c(".xubox_loading").parents("."+g[0]).attr("times"))},layer.closeTips=function(){layer.closeAll("tips")},layer.closeAll=function(a){c.each(c("."+g[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&layer.close(b.attr("times")),d=null})},f.run=function(){c=jQuery,d=c(a),g.html=c("html"),layer.use("skin/layer.css"),c.layer=function(a){var b=new h(a);return b.index},(new Image).src=layer.path+"skin/default/xubox_ico0.png"},"function"==typeof define?define(function(){return f.run(),layer}):f.run()}(window);
\ No newline at end of file
diff --git a/skin/default/icon_ext.png b/skin/default/icon_ext.png
new file mode 100644
index 0000000..8baee59
Binary files /dev/null and b/skin/default/icon_ext.png differ
diff --git a/skin/default/textbg.png b/skin/default/textbg.png
new file mode 100644
index 0000000..ad1040c
Binary files /dev/null and b/skin/default/textbg.png differ
diff --git a/skin/default/xubox_ico0.png b/skin/default/xubox_ico0.png
new file mode 100644
index 0000000..7754a47
Binary files /dev/null and b/skin/default/xubox_ico0.png differ
diff --git a/skin/default/xubox_loading0.gif b/skin/default/xubox_loading0.gif
new file mode 100644
index 0000000..6f3c953
Binary files /dev/null and b/skin/default/xubox_loading0.gif differ
diff --git a/skin/default/xubox_loading1.gif b/skin/default/xubox_loading1.gif
new file mode 100644
index 0000000..db3a483
Binary files /dev/null and b/skin/default/xubox_loading1.gif differ
diff --git a/skin/default/xubox_loading2.gif b/skin/default/xubox_loading2.gif
new file mode 100644
index 0000000..5bb90fd
Binary files /dev/null and b/skin/default/xubox_loading2.gif differ
diff --git a/skin/default/xubox_loading3.gif b/skin/default/xubox_loading3.gif
new file mode 100644
index 0000000..fbe57be
Binary files /dev/null and b/skin/default/xubox_loading3.gif differ
diff --git a/skin/default/xubox_title0.png b/skin/default/xubox_title0.png
new file mode 100644
index 0000000..4ffbe31
Binary files /dev/null and b/skin/default/xubox_title0.png differ
diff --git a/skin/layer.css b/skin/layer.css
new file mode 100644
index 0000000..4d04643
--- /dev/null
+++ b/skin/layer.css
@@ -0,0 +1,83 @@
+/**
+
+ @Name: layer's style
+ @Date: 2012.09.15
+ @Author: 贤心
+ @blog: sentsin.com
+
+**/
+
+*html{background-image:url(about:blank); background-attachment:fixed;}
+
+/** common **/
+.xubox_shade, .xubox_layer{position:fixed; _position:absolute;}
+.xubox_shade{top:0; left:0; width:100%; height:100%; _height:expression(document.body.offsetHeight+"px");}
+.xubox_layer{top:150px; left:50%; height:auto; width:310px; margin-left:-155px;}
+.xubox_border, .xubox_title, .xubox_title i, .xubox_page, .xubox_iframe, .xubox_title em, .xubox_close, .xubox_msgico, .xubox_moves{position:absolute;}
+.xubox_border{border-radius: 5px;}
+.xubox_title{left:0; top:0;}
+.xubox_main{position:relative; height:100%; _float:left;}
+.xubox_page{top:0; left:0;}
+.xubox_load{background:url(default/xubox_loading0.gif) #fff center center no-repeat;}
+.xubox_loading{display:block; float:left; text-decoration:none; color:#FFF; _float:none; }
+.xulayer_png32{background:url(default/xubox_ico0.png) no-repeat;}
+.xubox_moves{border:3px solid #666; cursor:move; background-color:rgba(255,255,255,.3); background-color:#fff\9; filter:alpha(opacity=50);}
+
+.xubox_msgico{width:32px; height:32px; top:52px; left:15px; background:url(default/xubox_ico0.png) no-repeat;}
+.xubox_text{ padding-left:55px; float:left; line-height:25px; word-break:break-all; padding-right:20px; overflow:hidden; font-size:14px;}
+.xubox_msgtype0{background-position:-91px -38px;}
+.xubox_msgtype1{background-position:-128px -38px }
+.xubox_msgtype2{background-position:-163px -38px;}
+.xubox_msgtype3{background-position:-91px -75px;}
+.xubox_msgtype4{background-position:-163px -75px;}
+.xubox_msgtype5{background-position:-163px -112px;}
+.xubox_msgtype6{background-position:-163px -148px;}
+.xubox_msgtype7{background-position:-128px -75px;}
+.xubox_msgtype8{background-position:-91px -6px;}
+.xubox_msgtype9{background-position:-129px -6px;}
+.xubox_msgtype10{background-position:-163px -6px;}
+.xubox_msgtype11{background-position:-206px -6px;}
+.xubox_msgtype12{background-position:-206px -44px;}
+.xubox_msgtype13{background-position:-206px -81px;}
+.xubox_msgtype14{background-position:-206px -122px;}
+.xubox_msgtype15{background-position:-206px -157px;}
+.xubox_loading_0{width:60px; height:24px; background:url(default/xubox_loading0.gif) no-repeat;}
+.xubox_loading_1{width:37px; height:37px; background:url(default/xubox_loading1.gif) no-repeat;}
+.xubox_loading_2, .xubox_msgtype16{width:32px; height:32px; background:url(default/xubox_loading2.gif) no-repeat;}
+.xubox_loading_3{width:126px; height:22px; background:url(default/xubox_loading3.gif) no-repeat;}
+
+.xubox_setwin{position:absolute; right:10px; *right:0; top:10px; font-size:0;}
+.xubox_setwin a{position:relative; display:inline-block; *display:inline; *zoom:1; vertical-align:top; width: 14px; height:14px; margin-left:10px; font-size:12px; _overflow:hidden;}
+.xubox_setwin .xubox_min cite{position:absolute; width:14px; height:2px; left:0; top:50%; margin-top:-1px; background-color:#919191; cursor:pointer; _overflow:hidden;}
+.xubox_setwin .xubox_min:hover cite{background-color:#2D93CA; }
+.xubox_setwin .xubox_max{background-position:-6px -189px;}
+.xubox_setwin .xubox_max:hover{background-position:-6px -206px;}
+.xubox_setwin .xubox_maxmin{background-position:-29px -189px;}
+.xubox_setwin .xubox_maxmin:hover{background-position:-29px -206px;}
+.xubox_setwin .xubox_close0{ width:14px; height:14px; background-position: -31px -7px; cursor:pointer;}
+.xubox_setwin .xubox_close0:hover{background-position:-51px -7px;}
+.xubox_setwin .xubox_close1{position:absolute; right:-28px; top:-28px; width:30px; height:30px; margin-left:0; background-position:-60px -195px; *right:-18px; _right:-15px; _top:-23px; _width:14px; _height:14px; _background-position:-31px -7px;}
+.xubox_setwin .xubox_close1:hover{ background-position:-91px -195px; _background-position:-51px -7px;}
+
+.xubox_title{width:100%; height:35px; line-height:35px; border-bottom:1px solid #D5D5D5; background:url(default/xubox_title0.png) #EBEBEB repeat-x; font-size:14px; color:#333;}
+.xubox_title em{height:20px; line-height:20px; width:60%; top:7px; left:10px; font-style:normal; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
+
+.xubox_botton a{position:absolute; bottom:10px; left:50%; background:url(default/xubox_ico0.png) repeat; text-decoration:none; color:#FFF; font-size:14px; text-align:center; font-weight:bold; overflow:hidden; }
+.xubox_botton a:hover{text-decoration:none; color:#FFF; }
+.xubox_botton .xubox_botton1{ width:79px; height:32px; line-height:32px; margin-left:-39px; background-position:-6px -34px;}
+.xubox_botton1:hover{background-position:-6px -72px;}
+.xubox_botton .xubox_botton2{margin-left:-76px; width:71px; height:29px; line-height:29px; background-position:-5px -114px;}
+.xubox_botton2:hover{ background-position:-5px -146px;}
+.xubox_botton .xubox_botton3{width:71px; height:29px; line-height:29px; margin-left:10px; background-position:-81px -114px;}
+.xubox_botton3:hover{background-position:-81px -146px;}
+.xubox_tips{position:relative; line-height:20px; min-width: 12px; padding:3px 30px 3px 10px; font-size:12px; _float:left; border-radius:3px; box-shadow: 1px 1px 3px rgba(0,0,0,.3);}
+.xubox_tips i.layerTipsG{ position:absolute; width:0; height:0; border-width:8px; border-color:transparent; border-style:dashed; *overflow:hidden;}
+.xubox_tips i.layerTipsT, .xubox_tips i.layerTipsB{left:5px; border-right-style:solid;}
+.xubox_tips i.layerTipsT{bottom:-8px;}
+.xubox_tips i.layerTipsB{top:-8px;}
+.xubox_tips i.layerTipsR, .xubox_tips i.layerTipsL{top:1px; border-bottom-style:solid;}
+.xubox_tips i.layerTipsR{left:-8px;}
+.xubox_tips i.layerTipsL{right:-8px;}
+
+
+
diff --git a/skin/layer.ext.css b/skin/layer.ext.css
new file mode 100644
index 0000000..6570a05
--- /dev/null
+++ b/skin/layer.ext.css
@@ -0,0 +1,45 @@
+/**
+
+ @Name: layer拓展样式
+ @Date: 2012.12.13
+ @Author: 贤心
+ @blog: sentsin.com
+
+**/
+
+.xubox_iconext{background:url(default/icon_ext.png) no-repeat;}
+
+/* prompt模式 */
+.xubox_layer .xubox_form{width:240px; height:30px; line-height:30px; padding: 0 5px; border: 1px solid #ccc; background: url(default/textbg.png) #fff repeat-x; color:#333;}
+.xubox_layer .xubox_formArea{width:300px; height:100px; line-height:20px;}
+
+/* tab模式 */
+.xubox_layer .xubox_tab{position:relative; background-color:#fff; box-shadow:1px 1px 50px rgba(0,0,0,.4)}
+.xubox_layer .xubox_tabmove{position:absolute; width:600px; height:30px; top:0; left:0;}
+.xubox_layer .xubox_tabtit{ display:block; height:34px; border-bottom:1px solid #ccc; background-color:#eee;}
+.xubox_layer .xubox_tabtit span{position:relative; float:left; width:120px; height:34px; line-height:34px; text-align:center; cursor:default;}
+.xubox_layer .xubox_tabtit span.xubox_tabnow{left:-1px; _top:1px; height:35px; border-left:1px solid #ccc; border-right:1px solid #ccc; background-color:#fff; z-index:10;}
+.xubox_layer .xubox_tab_main{line-height:24px; clear:both;}
+.xubox_layer .xubox_tab_main .xubox_tabli{display:none;}
+.xubox_layer .xubox_tab_main .xubox_tabli.xubox_tab_layer{display:block;}
+.xubox_layer .xubox_tabclose{position:absolute; right:10px; top:5px; cursor:pointer;}
+
+/* photo模式 */
+.xubox_bigimg, .xubox_intro{height:300px}
+.xubox_bigimg{position:relative; display:block; width:600px; text-align:center; background:url(default/xubox_loading1.gif) center center no-repeat #000; overflow:hidden; }
+.xubox_bigimg img{position:relative; display:inline-block; visibility: hidden;}
+.xubox_intro{position:absolute; right:-315px; top:0; width:300px; background-color:#fff; overflow-x:hidden; overflow-y:auto;}
+.xubox_imgsee{display:none;}
+.xubox_prev, .xubox_next{position:absolute; top:50%; width:27px; _width:44px; height:44px; margin-top:-22px; outline:none;blr:expression(this.onFocus=this.blur());}
+.xubox_prev{left:10px; background-position:-5px -5px; _background-position:-70px -5px;}
+.xubox_prev:hover{background-position:-33px -5px; _background-position:-120px -5px;}
+.xubox_next{right:10px; _right:8px; background-position:-5px -50px; _background-position:-70px -50px;}
+.xubox_next:hover{background-position:-33px -50px; _background-position:-120px -50px;}
+.xubox_imgbar{position:absolute; left:0; bottom:0; width:100%; height:32px; line-height:32px; background-color:rgba(0,0,0,.8); background-color:#000\9; filter:Alpha(opacity=80); color:#fff; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; font-size:0;}
+.xubox_imgtit{/*position:absolute; left:20px;*/}
+.xubox_imgtit *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; font-size:12px;}
+.xubox_imgtit a{max-width:65%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; color:#fff;}
+.xubox_imgtit a:hover{color:#fff; text-decoration:underline;}
+.xubox_imgtit em{padding-left:10px;}
+
+
diff --git a/test/demo.html b/test/demo.html
new file mode 100644
index 0000000..54a45c4
--- /dev/null
+++ b/test/demo.html
@@ -0,0 +1,109 @@
+
+
+
+layer-更懂你的web弹窗解决方案
+
+
+
+
+
+
+
+
+ @Name:layer-v 弹层组件说明
+ @Author:贤心
+ @Blog:http://sentsin.com
+ @官网:http://sentsin.com/jquery/layer
+
+
+【注意事项】
+一、使用时,请把文件夹layer整个放置在您站点的任何一个目录,只需引入layer.min.js即可,除jQuery外,其它文件无需再引入。
+二、如果您的js引入是通过合并处理或者您不想采用layer自动获取的绝对路径,您需要打开layer.min.js 去配置相对路径url。(默认采用自动获取layer所在的路径)
+三、jquery必须为1.8或1.8以上版本(原因,更小,性能更好,且新版layer使用了部分jq1.8+的特性),下载包里doc文件里有jquery1.9下载地址
+四、更多使用说明与演示(demo),请参见layer官网。
+五、使用时请务必保留来源,请勿用于违反我国法律的web平台。
+六、layer遵循LGPL协议,将永久性提供无偿服务。版权最终解释权:贤心。
+
+
+
+
+
layer1.8相册模块,点击下述图片试试
+
+
+
+
+
+
+
+
+
\ No newline at end of file