| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110 | 
							- /*!
 
-  * artDialog 4.1.6
 
-  * Date: 2012-07-16 22:57
 
-  * http://code.google.com/p/artdialog/
 
-  * (c) 2009-2012 TangBin, http://www.planeArt.cn
 
-  *
 
-  * This is licensed under the GNU LGPL, version 2.1 or later.
 
-  * For details, see: http://creativecommons.org/licenses/LGPL/2.1/
 
-  */
 
-  
 
- ;(function (window, undefined) {
 
- //if (window.jQuery) return jQuery;
 
- var $ = window.art = function (selector, context) {
 
-     	return new $.fn.init(selector, context);
 
- 	},
 
-     readyBound = false,
 
-     readyList = [],
 
-     DOMContentLoaded,
 
- 	isOpacity = 'opacity' in document.documentElement.style,
 
- 	quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
 
- 	rclass = /[\n\t]/g,
 
- 	ralpha = /alpha\([^)]*\)/i,
 
- 	ropacity = /opacity=([^)]*)/,
 
-     rfxnum = /^([+-]=)?([\d+-.]+)(.*)$/;
 
- if (window.$ === undefined) window.$ = $;
 
- $.fn = $.prototype = {
 
- 	constructor: $,
 
- 	
 
-     /**
 
- 	 * DOM 就绪
 
- 	 * @param	{Function}	回调函数
 
- 	 */
 
-     ready: function (callback) {
 
-         $.bindReady();
 
-         if ($.isReady) {
 
-             callback.call(document, $);
 
-         } else if (readyList) {
 
-             readyList.push(callback);
 
-         };
 
-         return this;
 
-     },
 
-     /**
 
- 	 * 判断样式类是否存在
 
- 	 * @param	{String}	名称
 
- 	 * @return	{Boolean}
 
- 	 */
 
-     hasClass: function (name) {		
 
- 		var className = ' ' + name + ' ';
 
- 		if ((' ' + this[0].className + ' ').replace(rclass, ' ')
 
- 		.indexOf(className) > -1) return true;
 
- 		return false;
 
-     },
 
-     /**
 
- 	 * 添加样式类
 
- 	 * @param	{String}	名称
 
- 	 */
 
-     addClass: function (name) {
 
-         if (!this.hasClass(name)) this[0].className += ' ' + name;
 
-         return this;
 
-     },
 
-     /**
 
- 	 * 移除样式类
 
- 	 * @param	{String}	名称
 
- 	 */
 
-     removeClass: function (name) {
 
-         var elem = this[0];
 
-         if (!name) {
 
-             elem.className = '';
 
-         } else
 
- 		if (this.hasClass(name)) {
 
-             elem.className = elem.className.replace(name, ' ');
 
-         };
 
-         return this;
 
-     },
 
-     /**
 
- 	 * 读写样式<br />
 
-      * css(name) 访问第一个匹配元素的样式属性<br />
 
-      * css(properties) 把一个"名/值对"对象设置为所有匹配元素的样式属性<br />
 
-      * css(name, value) 在所有匹配的元素中,设置一个样式属性的值<br />
 
- 	 */
 
-     css: function (name, value) {
 
-         var i, elem = this[0], obj = arguments[0];
 
-         if (typeof name === 'string') {
 
-             if (value === undefined) {
 
-                 return $.css(elem, name);
 
-             } else {
 
-                 name === 'opacity' ?
 
- 					$.opacity.set(elem, value) :
 
- 					elem.style[name] = value;
 
-             };
 
-         } else {
 
-             for (i in obj) {
 
- 				i === 'opacity' ?
 
- 					$.opacity.set(elem, obj[i]) :
 
- 					elem.style[i] = obj[i];
 
- 			};
 
-         };
 
-         return this;
 
-     },
 
- 	
 
- 	/** 显示元素 */
 
- 	show: function () {
 
- 		return this.css('display', 'block');
 
- 	},
 
- 	
 
- 	/** 隐藏元素 */
 
- 	hide: function () {
 
- 		return this.css('display', 'none');
 
- 	},
 
-     /**
 
- 	 * 获取相对文档的坐标
 
- 	 * @return	{Object}	返回left、top的数值
 
- 	 */
 
-     offset: function () {
 
-         var elem = this[0],
 
-             box = elem.getBoundingClientRect(),
 
-             doc = elem.ownerDocument,
 
-             body = doc.body,
 
-             docElem = doc.documentElement,
 
-             clientTop = docElem.clientTop || body.clientTop || 0,
 
-             clientLeft = docElem.clientLeft || body.clientLeft || 0,
 
-             top = box.top + (self.pageYOffset || docElem.scrollTop) - clientTop,
 
-             left = box.left + (self.pageXOffset || docElem.scrollLeft) - clientLeft;
 
-         return {
 
-             left: left,
 
-             top: top
 
-         };
 
-     },
 
- 	
 
- 	/**
 
- 	 * 读写HTML - (不支持文本框)
 
- 	 * @param	{String}	内容
 
- 	 */
 
- 	html: function (content) {
 
- 		var elem = this[0];
 
- 		
 
- 		if (content === undefined) return elem.innerHTML;
 
- 		$.cleanData(elem.getElementsByTagName('*'));
 
- 		elem.innerHTML = content;
 
- 		
 
- 		return this;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 移除节点
 
- 	 */
 
- 	remove: function () {
 
- 		var elem = this[0];
 
- 		$.cleanData(elem.getElementsByTagName('*'));
 
- 		$.cleanData([elem]);
 
- 		elem.parentNode.removeChild(elem);
 
- 		
 
- 		return this;
 
- 	},
 
- 	/**
 
- 	 * 事件绑定
 
- 	 * @param	{String}	类型
 
- 	 * @param	{Function}	要绑定的函数
 
- 	 */
 
- 	bind: function (type, callback) {
 
- 		$.event.add(this[0], type, callback);
 
- 		return this;
 
- 	},
 
- 	/**
 
- 	 * 移除事件
 
- 	 * @param	{String}	类型
 
- 	 * @param	{Function}	要卸载的函数
 
- 	 */
 
- 	unbind: function(type, callback) {
 
- 		$.event.remove(this[0], type, callback);
 
- 		return this;
 
- 	}
 
- 	
 
- };
 
- $.fn.init = function (selector, context) {
 
- 	var match, elem;
 
- 	context = context || document;
 
- 	
 
- 	if (!selector) return this;
 
- 	
 
- 	if (selector.nodeType) {
 
- 		this[0] = selector;
 
- 		return this;
 
- 	};
 
- 	
 
- 	if (selector === 'body' && context.body) {
 
- 		this[0] = context.body;
 
- 		return this;
 
- 	};
 
- 	
 
- 	if (selector === 'head' || selector === 'html') {
 
- 		this[0] = context.getElementsByTagName(selector)[0];
 
- 		return this;
 
- 	};
 
- 		
 
- 	if (typeof selector === 'string') {
 
- 		match = quickExpr.exec(selector);
 
- 		if (match && match[2]) {
 
- 			elem = context.getElementById(match[2]);
 
- 			if (elem && elem.parentNode) this[0] = elem;
 
- 			return this;
 
- 		};
 
- 	};
 
- 	
 
- 	if (typeof selector === 'function') return $(document).ready(selector);
 
- 	
 
- 	this[0] = selector;
 
- 	
 
- 	return this;
 
- };
 
- $.fn.init.prototype = $.fn;
 
- /** 空函数 */
 
- $.noop = function () {};
 
- /** 检测window */
 
- $.isWindow = function (obj) {
 
- 	return obj && typeof obj === 'object' && 'setInterval' in obj;
 
- };
 
- /** 数组判定 */
 
- $.isArray = function (obj) {
 
-     return Object.prototype.toString.call(obj) === '[object Array]';
 
- };
 
- /**
 
-  * 搜索子元素
 
-  * 注意:只支持nodeName或.className的形式,并且只返回第一个元素
 
-  * @param	{String}
 
-  */
 
- $.fn.find = function (expr) {
 
- 	var value, elem = this[0],
 
- 		className = expr.split('.')[1];
 
- 	if (className) {
 
- 		if (document.getElementsByClassName) {
 
- 			value = elem.getElementsByClassName(className);
 
- 		} else {
 
- 			value = getElementsByClassName(className, elem);
 
- 		};
 
- 	} else {
 
- 		value = elem.getElementsByTagName(expr);
 
- 	};
 
- 	
 
- 	return $(value[0]);
 
- };
 
- function getElementsByClassName (className, node, tag) {
 
- 	node = node || document;
 
- 	tag = tag || '*';
 
- 	var i = 0,
 
- 		j = 0,
 
- 		classElements = [],
 
- 		els = node.getElementsByTagName(tag),
 
- 		elsLen = els.length,
 
- 		pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
 
- 		
 
- 	for (; i < elsLen; i ++) {
 
- 		if (pattern.test(els[i].className)) {
 
- 			classElements[j] = els[i];
 
- 			j ++;
 
- 		};
 
- 	};
 
- 	return classElements;
 
- };
 
- /**
 
-  * 遍历
 
-  * @param {Object}
 
-  * @param {Function}
 
-  */
 
- $.each = function (obj, callback) {
 
-     var name, i = 0,
 
-         length = obj.length,
 
-         isObj = length === undefined;
 
-     if (isObj) {
 
-         for (name in obj) {
 
-             if (callback.call(obj[name], name, obj[name]) === false) break;
 
-         };
 
-     } else {
 
-         for (var value = obj[0];
 
- 		i < length && callback.call(value, i, value) !== false;
 
- 		value = obj[++i]) {};
 
-     };
 
- 	
 
- 	return obj;
 
- };
 
- /**
 
-  * 读写缓存
 
-  * @param		{HTMLElement}	元素
 
-  * @param		{String}		缓存名称
 
-  * @param		{Any}			数据
 
-  * @return		{Any}			如果无参数data则返回缓存数据
 
-  */
 
- $.data = function (elem, name, data) {
 
- 	var cache = $.cache,
 
- 		id = uuid(elem);
 
- 	
 
- 	if (name === undefined) return cache[id];
 
- 	if (!cache[id]) cache[id] = {};
 
- 	if (data !== undefined) cache[id][name] = data;
 
- 	
 
- 	return cache[id][name];
 
- };
 
- /**
 
-  * 删除缓存
 
-  * @param		{HTMLElement}	元素
 
-  * @param		{String}		缓存名称
 
-  */
 
- $.removeData = function (elem, name) {
 
- 	var empty = true,
 
- 		expando = $.expando,
 
- 		cache = $.cache,
 
- 		id = uuid(elem),
 
- 		thisCache = id && cache[id];
 
- 	if (!thisCache) return;
 
- 	if (name) {
 
- 		delete thisCache[name];
 
- 		for (var n in thisCache) empty = false;
 
- 		if (empty) delete $.cache[id];
 
- 	} else {
 
- 		delete cache[id];
 
- 		if (elem.removeAttribute) {
 
- 			elem.removeAttribute(expando);
 
- 		} else {
 
- 			elem[expando] = null;
 
- 		};
 
- 	};
 
- };
 
- $.uuid = 0;
 
- $.cache = {};
 
- $.expando = '@cache' + + new Date
 
- // 标记元素唯一身份
 
- function uuid (elem) {
 
- 	var expando = $.expando,
 
- 		id = elem === window ? 0 : elem[expando];
 
- 	if (id === undefined) elem[expando] = id = ++ $.uuid;
 
- 	return id;
 
- };
 
- /**
 
-  * 事件机制
 
-  * @namespace
 
-  * @requires	[$.data, $.removeData]
 
-  */
 
- $.event = {
 
- 	
 
- 	/**
 
- 	 * 添加事件
 
- 	 * @param		{HTMLElement}	元素
 
- 	 * @param		{String}		事件类型
 
- 	 * @param		{Function}		要添加的函数
 
- 	 */
 
- 	add: function (elem, type, callback) {
 
- 		var cache, listeners,
 
- 			that = $.event,
 
- 			data = $.data(elem, '@events') || $.data(elem, '@events', {});
 
- 		
 
- 		cache = data[type] = data[type] || {};
 
- 		listeners = cache.listeners = cache.listeners || [];
 
- 		listeners.push(callback);
 
- 		
 
- 		if (!cache.handler) {
 
- 			cache.elem = elem;
 
- 			cache.handler = that.handler(cache);
 
- 			
 
- 			elem.addEventListener
 
- 			? elem.addEventListener(type, cache.handler, false)
 
- 			: elem.attachEvent('on' + type, cache.handler);
 
- 		};
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 卸载事件
 
- 	 * @param		{HTMLElement}	元素
 
- 	 * @param		{String}		事件类型
 
- 	 * @param		{Function}		要卸载的函数
 
- 	 */
 
- 	remove: function (elem, type, callback) {
 
- 		var i, cache, listeners,
 
- 			that = $.event,
 
- 			empty = true,
 
- 			data = $.data(elem, '@events');
 
- 		
 
- 		if (!data) return;
 
- 		if (!type) {
 
- 			for (i in data) that.remove(elem, i);
 
- 			return;
 
- 		};
 
- 		
 
- 		cache = data[type];
 
- 		if (!cache) return;
 
- 		
 
- 		listeners = cache.listeners;
 
- 		if (callback) {
 
- 			for (i = 0; i < listeners.length; i ++) {
 
- 				listeners[i] === callback && listeners.splice(i--, 1);
 
- 			};
 
- 		} else {
 
- 			cache.listeners = [];
 
- 		};
 
- 		
 
- 		if (cache.listeners.length === 0) {
 
- 			elem.removeEventListener
 
- 			? elem.removeEventListener(type, cache.handler, false)
 
- 			: elem.detachEvent('on' + type, cache.handler);
 
- 			
 
- 			delete data[type];
 
- 			cache = $.data(elem, '@events');
 
- 			for (var n in cache) empty = false;
 
- 			if (empty) $.removeData(elem, '@events');
 
- 		};
 
- 	},
 
- 	
 
- 	/** @inner 事件句柄 */
 
- 	handler: function (cache) {
 
- 		return function (event) {
 
- 			event = $.event.fix(event || window.event);
 
- 			for (var i = 0, list = cache.listeners, fn; fn = list[i++];) {
 
- 				if (fn.call(cache.elem, event) === false) {
 
- 					event.preventDefault();
 
- 					event.stopPropagation();
 
- 				};
 
- 			};
 
- 		};
 
- 	},
 
- 	
 
- 	/** @inner Event对象兼容处理 */
 
- 	fix: function (event) {
 
- 		if (event.target) return event;
 
- 		
 
- 		var event2 = {
 
- 			target: event.srcElement || document,
 
- 			preventDefault: function () {event.returnValue = false},
 
- 			stopPropagation: function () {event.cancelBubble = true}
 
- 		};
 
- 		// IE6/7/8 在原生window.event对象写入数据会导致内存无法回收,应当采用拷贝
 
- 		for (var i in event) event2[i] = event[i];
 
- 		return event2;
 
- 	}
 
- 	
 
- };
 
- /**
 
-  * 清理元素集的事件与缓存
 
-  * @requires	[$.removeData, $.event]
 
-  * @param		{HTMLCollection}	元素集
 
-  */
 
- $.cleanData = function (elems) {
 
- 	var i = 0, elem,
 
- 		len = elems.length,
 
- 		removeEvent = $.event.remove,
 
- 		removeData = $.removeData;
 
- 	
 
- 	for (; i < len; i ++) {
 
- 		elem = elems[i];
 
- 		removeEvent(elem);
 
- 		removeData(elem);
 
- 	};
 
- };
 
- // DOM就绪事件
 
- $.isReady = false;
 
- $.ready = function () {
 
-     if (!$.isReady) {
 
-         if (!document.body) return setTimeout($.ready, 13);
 
-         $.isReady = true;
 
-         if (readyList) {
 
-             var fn, i = 0;
 
-             while ((fn = readyList[i++])) {
 
-                 fn.call(document, $);
 
-             };
 
-             readyList = null;
 
-         };
 
-     };
 
- };
 
- $.bindReady = function () {
 
-     if (readyBound) return;
 
-     readyBound = true;
 
-     if (document.readyState === 'complete') {
 
-         return $.ready();
 
-     };
 
-     if (document.addEventListener) {
 
-         document.addEventListener('DOMContentLoaded', DOMContentLoaded, false);
 
-         window.addEventListener('load', $.ready, false);
 
-     } else if (document.attachEvent) {
 
-         document.attachEvent('onreadystatechange', DOMContentLoaded);
 
-         window.attachEvent('onload', $.ready);
 
-         var toplevel = false;
 
-         try {
 
-             toplevel = window.frameElement == null;
 
-         } catch (e) {};
 
-         if (document.documentElement.doScroll && toplevel) {
 
-             doScrollCheck();
 
-         };
 
-     };
 
- };
 
- if (document.addEventListener) {
 
-     DOMContentLoaded = function () {
 
-         document.removeEventListener('DOMContentLoaded', DOMContentLoaded, false);
 
-         $.ready();
 
-     };
 
- } else if (document.attachEvent) {
 
-     DOMContentLoaded = function () {
 
-         if (document.readyState === 'complete') {
 
-             document.detachEvent('onreadystatechange', DOMContentLoaded);
 
-             $.ready();
 
-         };
 
-     };
 
- };
 
- function doScrollCheck () {
 
-     if ($.isReady) return;
 
-     try {
 
-         document.documentElement.doScroll('left');
 
-     } catch (e) {
 
-         setTimeout(doScrollCheck, 1);
 
-         return;
 
-     };
 
-     $.ready();
 
- };
 
- // 获取css
 
- $.css = 'defaultView' in document && 'getComputedStyle' in document.defaultView ?
 
- 	function (elem, name) {
 
- 		return document.defaultView.getComputedStyle(elem, false)[name];
 
- } :
 
- 	function (elem, name) {
 
- 		var ret = name === 'opacity' ? $.opacity.get(elem) : elem.currentStyle[name];
 
- 		return ret || '';
 
- };
 
- // 跨浏览器处理opacity
 
- $.opacity = {
 
- 	get: function (elem) {
 
- 		return isOpacity ?
 
- 			document.defaultView.getComputedStyle(elem, false).opacity :
 
- 			ropacity.test((elem.currentStyle
 
- 				? elem.currentStyle.filter
 
- 				: elem.style.filter) || '')
 
- 				? (parseFloat(RegExp.$1) / 100) + ''
 
- 				: 1;
 
- 	},
 
- 	set: function (elem, value) {
 
- 		if (isOpacity) return elem.style.opacity = value;
 
- 		var style = elem.style;
 
- 		style.zoom = 1;
 
- 		var opacity = 'alpha(opacity=' + value * 100 + ')',
 
- 			filter = style.filter || '';
 
- 		style.filter = ralpha.test(filter) ?
 
- 			filter.replace(ralpha, opacity) :
 
- 			style.filter + ' ' + opacity;
 
- 	}
 
- };
 
- /**
 
-  * 获取滚动条位置 - [不支持写入]
 
-  * $.fn.scrollLeft, $.fn.scrollTop
 
-  * @example		获取文档垂直滚动条:$(document).scrollTop()
 
-  * @return		{Number}	返回滚动条位置
 
-  */
 
- $.each(['Left', 'Top'], function (i, name) {
 
-     var method = 'scroll' + name;
 
-     $.fn[method] = function () {
 
-         var elem = this[0], win;
 
- 		win = getWindow(elem);
 
- 		return win ?
 
- 			('pageXOffset' in win) ?
 
- 				win[i ? 'pageYOffset' : 'pageXOffset'] :
 
- 				win.document.documentElement[method] || win.document.body[method] :
 
- 			elem[method];
 
-     };
 
- });
 
- function getWindow (elem) {
 
- 	return $.isWindow(elem) ?
 
- 		elem :
 
- 		elem.nodeType === 9 ?
 
- 			elem.defaultView || elem.parentWindow :
 
- 			false;
 
- };
 
- /**
 
-  * 获取窗口或文档尺寸 - [只支持window与document读取]
 
-  * @example 
 
-    获取文档宽度:$(document).width()
 
-    获取可视范围:$(window).width()
 
-  * @return	{Number}
 
-  */
 
- $.each(['Height', 'Width'], function (i, name) {
 
-     var type = name.toLowerCase();
 
-     $.fn[type] = function (size) {
 
-         var elem = this[0];
 
-         if (!elem) {
 
-             return size == null ? null : this;
 
-         };
 
- 		return $.isWindow(elem) ?
 
- 			elem.document.documentElement['client' + name] || elem.document.body['client' + name] :
 
- 			(elem.nodeType === 9) ?
 
- 				Math.max(
 
- 					elem.documentElement['client' + name],
 
- 					elem.body['scroll' + name], elem.documentElement['scroll' + name],
 
- 					elem.body['offset' + name], elem.documentElement['offset' + name]
 
- 				) : null;
 
-     };
 
- });
 
- /**
 
-  * 简单ajax支持
 
-  * @example
 
-  * $.ajax({
 
-  * 		url: url,
 
-  * 		success: callback,
 
-  * 		cache: cache
 
-  * });
 
-  */
 
- $.ajax = function (config) {
 
- 	var ajax = window.XMLHttpRequest ?
 
- 			new XMLHttpRequest() :
 
- 			new ActiveXObject('Microsoft.XMLHTTP'),
 
- 		url = config.url;
 
- 	
 
- 	if (config.cache === false) {
 
- 		var ts = + new Date,
 
- 			ret = url.replace(/([?&])_=[^&]*/, "$1_=" + ts );
 
- 		url = ret + ((ret === url) ? (/\?/.test(url) ? "&" : "?") + "_=" + ts : "");
 
- 	};
 
- 	
 
- 	ajax.onreadystatechange = function() {
 
- 		if (ajax.readyState === 4 && ajax.status === 200) {
 
- 			config.success && config.success(ajax.responseText);
 
- 			ajax.onreadystatechange = $.noop;
 
- 		};
 
- 	};
 
- 	ajax.open('GET', url, 1);
 
- 	ajax.send(null);
 
- };
 
- /** 动画引擎 - [不支持链式列队操作] */
 
- $.fn.animate = function (prop, speed, easing, callback) {
 
- 	
 
- 	speed = speed || 400;
 
- 	if (typeof easing === 'function') callback = easing;
 
- 	easing = easing && $.easing[easing] ? easing : 'swing';
 
- 	
 
-     var elem = this[0], overflow,
 
-         fx, parts, start, end, unit,
 
- 		opt = {
 
- 			speed: speed,
 
- 			easing: easing,
 
- 			callback: function () {
 
- 				if (overflow != null) elem.style.overflow = '';
 
- 				callback && callback();
 
- 			}
 
- 		};
 
- 	
 
- 	opt.curAnim = {};
 
- 	$.each(prop, function (name, val) {
 
- 		opt.curAnim[name] = val;
 
- 	});
 
- 	
 
-     $.each(prop, function (name, val) {
 
-         fx = new $.fx(elem, opt, name);
 
-         parts = rfxnum.exec(val);
 
-         start = parseFloat(name === 'opacity'
 
- 			|| (elem.style && elem.style[name] != null) ?
 
- 			$.css(elem, name) :
 
- 			elem[name]);
 
-         end = parseFloat(parts[2]);
 
-         unit = parts[3];
 
- 		if (name === 'height' || name === 'width') {
 
- 			end = Math.max(0, end);
 
- 			overflow = [elem.style.overflow,
 
- 			elem.style.overflowX, elem.style.overflowY];
 
- 		};
 
- 		
 
-         fx.custom(start, end, unit);
 
-     });
 
- 	
 
- 	if (overflow != null) elem.style.overflow = 'hidden';
 
-     return this;
 
- };
 
- $.timers = [];
 
- $.fx = function (elem, options, prop) {
 
-     this.elem = elem;
 
-     this.options = options;
 
-     this.prop = prop;
 
- };
 
- $.fx.prototype = {
 
-     custom: function (from, to, unit) {
 
- 		var that = this;
 
-         that.startTime = $.fx.now();
 
-         that.start = from;
 
-         that.end = to;
 
-         that.unit = unit;
 
-         that.now = that.start;
 
-         that.state = that.pos = 0;
 
-         function t() {
 
-             return that.step();
 
-         };
 
-         t.elem = that.elem;
 
- 		t();
 
-         $.timers.push(t);
 
-         if (!$.timerId) $.timerId = setInterval($.fx.tick, 13);
 
-     },
 
-     step: function () {
 
-         var that = this, t = $.fx.now(), done = true;
 
- 		
 
-         if (t >= that.options.speed + that.startTime) {
 
-             that.now = that.end;
 
-             that.state = that.pos = 1;
 
-             that.update();
 
- 			
 
- 			that.options.curAnim[that.prop] = true;
 
- 			for (var i in that.options.curAnim) {
 
- 				if (that.options.curAnim[i] !== true) {
 
- 					done = false;
 
- 				};
 
- 			};
 
- 			
 
- 			if (done) that.options.callback.call(that.elem);
 
- 			
 
-             return false;
 
-         } else {
 
-             var n = t - that.startTime;
 
-             that.state = n / that.options.speed;
 
-             that.pos = $.easing[that.options.easing](that.state, n, 0, 1, that.options.speed);
 
-             that.now = that.start + ((that.end - that.start) * that.pos);
 
-             that.update();
 
-             return true;
 
-         };
 
-     },
 
-     update: function () {
 
- 		var that = this;
 
- 		if (that.prop === 'opacity') {
 
- 			$.opacity.set(that.elem, that.now);
 
- 		} else
 
- 		if (that.elem.style && that.elem.style[that.prop] != null) {
 
- 			that.elem.style[that.prop] = that.now + that.unit;
 
- 		} else {
 
- 			that.elem[that.prop] = that.now;
 
- 		};
 
-     }
 
- };
 
- $.fx.now = function () {
 
-     return + new Date;
 
- };
 
- $.easing = {
 
-     linear: function (p, n, firstNum, diff) {
 
-         return firstNum + diff * p;
 
-     },
 
-     swing: function (p, n, firstNum, diff) {
 
-         return ((-Math.cos(p * Math.PI) / 2) + 0.5) * diff + firstNum;
 
-     }
 
- };
 
- $.fx.tick = function () {
 
- 	var timers = $.timers;
 
-     for (var i = 0; i < timers.length; i++) {
 
-         !timers[i]() && timers.splice(i--, 1);
 
-     };
 
-     !timers.length && $.fx.stop();
 
- };
 
- $.fx.stop = function () {
 
-     clearInterval($.timerId);
 
-     $.timerId = null;
 
- };
 
- $.fn.stop = function () {
 
- 	var timers = $.timers;
 
-     for (var i = timers.length - 1; i >= 0; i--) {
 
-     	if (timers[i].elem === this[0]) timers.splice(i, 1);
 
- 	};
 
-     return this;
 
- };
 
- //-------------end
 
- return $}(window));
 
- //------------------------------------------------
 
- // 对话框模块
 
- //------------------------------------------------
 
- ;(function ($, window, undefined) {
 
- $.noop = $.noop || function () {}; // jQuery 1.3.2
 
- var _box, _thisScript, _skin, _path,
 
- 	_count = 0,
 
- 	_$window = $(window),
 
- 	_$document = $(document),
 
- 	_$html = $('html'),
 
- 	_elem = document.documentElement,
 
- 	_isIE6 = window.VBArray && !window.XMLHttpRequest,
 
- 	_isMobile = 'createTouch' in document && !('onmousemove' in _elem)
 
- 		|| /(iPhone|iPad|iPod)/i.test(navigator.userAgent),
 
- 	_expando = 'artDialog' + + new Date;
 
- var artDialog = function (config, ok, cancel) {
 
- 	config = config || {};
 
- 	
 
- 	if (typeof config === 'string' || config.nodeType === 1) {
 
- 		config = {content: config, fixed: !_isMobile};
 
- 	};
 
- 	
 
- 	var api,
 
- 		defaults = artDialog.defaults,
 
- 		elem = config.follow = this.nodeType === 1 && this || config.follow;
 
- 		
 
- 	// 合并默认配置
 
- 	for (var i in defaults) {
 
- 		if (config[i] === undefined) config[i] = defaults[i];		
 
- 	};
 
- 	
 
- 	// 兼容v4.1.0之前的参数,未来版本将删除此
 
- 	$.each({ok:"yesFn",cancel:"noFn",close:"closeFn",init:"initFn",okVal:"yesText",cancelVal:"noText"},
 
- 	function(i,o){config[i]=config[i]!==undefined?config[i]:config[o]});
 
- 	
 
- 	// 返回跟随模式或重复定义的ID
 
- 	if (typeof elem === 'string') elem = $(elem)[0];
 
- 	config.id = elem && elem[_expando + 'follow'] || config.id || _expando + _count;
 
- 	api = artDialog.list[config.id];
 
- 	if (elem && api) return api.follow(elem).zIndex().focus();
 
- 	art.PHPCMS_API = art.PHPCMS_API || [];
 
-      var that_Api = art.PHPCMS_API[config.id];
 
- 	 if (typeof that_Api == 'object' && api) {
 
-             api.data = {};
 
-             api.data.iframe = that_Api
 
-         };
 
- 	if (api) return api.zIndex().focus();
 
- 	
 
- 	// 目前主流移动设备对fixed支持不好
 
- 	if (_isMobile) config.fixed = false;
 
- 	
 
- 	// 按钮队列
 
- 	if (!$.isArray(config.button)) {
 
- 		config.button = config.button ? [config.button] : [];
 
- 	};
 
- 	if (ok !== undefined) config.ok = ok;
 
- 	if (cancel !== undefined) config.cancel = cancel;
 
- 	config.ok && config.button.push({
 
- 		name: config.okVal,
 
- 		callback: config.ok,
 
- 		focus: true
 
- 	});
 
- 	config.cancel && config.button.push({
 
- 		name: config.cancelVal,
 
- 		callback: config.cancel
 
- 	});
 
- 	
 
- 	// zIndex全局配置
 
- 	artDialog.defaults.zIndex = config.zIndex;
 
- 	
 
- 	_count ++;
 
- 	
 
- 	return artDialog.list[config.id] = _box ?
 
- 		_box._init(config) : new artDialog.fn._init(config);
 
- };
 
- artDialog.fn = artDialog.prototype = {
 
- 	version: '4.1.6',
 
- 	
 
- 	closed: true,
 
- 	
 
- 	_init: function (config) {
 
- 		var that = this, DOM,
 
- 			icon = config.icon,
 
- 			iconBg = icon && (_isIE6 ? {png: 'icons/' + icon + '.png'}
 
- 			: {backgroundImage: 'url(\'' + config.path + '/skins/icons/' + icon + '.png\')'});
 
- 		
 
-         that.closed = false;
 
- 		that.config = config;
 
- 		that.DOM = DOM = that.DOM || that._getDOM();
 
- 		
 
- 		DOM.wrap.addClass(config.skin);
 
- 		DOM.close[config.cancel === false ? 'hide' : 'show']();
 
- 		DOM.icon[0].style.display = icon ? '' : 'none';
 
- 		DOM.iconBg.css(iconBg || {background: 'none'});
 
- 		DOM.se.css('cursor', config.resize ? 'se-resize' : 'auto');
 
- 		DOM.title.css('cursor', config.drag ? 'move' : 'auto');
 
- 		DOM.content.css('padding', config.padding);
 
- 		
 
- 		that[config.show ? 'show' : 'hide'](true)
 
- 		that.button(config.button)
 
- 		.title(config.title)
 
- 		.content(config.content, config.iframe)
 
- 		.size(config.width, config.height)
 
- 		.time(config.time);
 
- 		
 
- 		config.follow
 
- 		? that.follow(config.follow)
 
- 		: that.position(config.left, config.top);
 
- 		
 
- 		that.zIndex().focus();
 
- 		config.lock && that.lock();
 
- 		
 
- 		that._addEvent();
 
- 		that._ie6PngFix();
 
- 		_box = null;
 
- 		
 
- 		config.init && config.init.call(that, window);
 
- 		
 
- 		return that;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 设置内容
 
- 	 * @param	{String, HTMLElement}	内容 (可选)
 
- 	 * @return	{this, HTMLElement}		如果无参数则返回内容容器DOM对象
 
- 	 */
 
- 	content: function (msg,url) {
 
- 		var prev, next, parent, display,
 
- 			that = this,
 
- 			DOM = that.DOM,
 
- 			wrap = DOM.wrap[0],
 
- 			width = wrap.offsetWidth,
 
- 			
 
- 			height = wrap.offsetHeight,
 
- 			left = parseInt(wrap.style.left),
 
- 			top = parseInt(wrap.style.top),
 
- 			cssWidth = wrap.style.width,
 
- 			$content = DOM.content,
 
- 			content = $content[0];
 
- 			that._reset(1);
 
- 			iframe = null,
 
- 			isIframe = typeof url == 'string' && url != '',
 
- 			iframrId = 'atrDialogIframe_' + that.config.id;
 
- 			if (isIframe) {
 
- 				if (typeof pc_hash == 'string') url += (url.indexOf('?') > -1 ? '&': '?') + 'pc_hash=' + pc_hash;
 
- 				iframe = document.createElement('iframe');
 
- 				iframe.setAttribute("frameborder", 0, 0);
 
- 				iframe.setAttribute("width", that.config.width);
 
- 				iframe.setAttribute("height", that.config.height);
 
- 				iframe.setAttribute("padding", '0');
 
- 				iframe.setAttribute("id", iframrId);
 
- 				iframe.src = url;
 
- 				that.DOM.content.css('padding', "5px 0px");
 
- 				var _width = parseInt(that.config.width)+5;
 
- 				that.DOM.content.css('width', _width);
 
- 				that.DOM.content.css('height', that.config.height);
 
- 				
 
- 				msg = iframe;
 
- 			};
 
- 		that._elemBack && that._elemBack();
 
- 		
 
- 		wrap.style.width = 'auto';
 
- 		
 
- 		if (msg === undefined) return content;
 
- 		if (typeof msg === 'string') {
 
- 			$content.html(msg);
 
- 		} else if (msg && msg.nodeType === 1) {
 
- 		
 
- 			// 让传入的元素在对话框关闭后可以返回到原来的地方
 
- 			display = msg.style.display;
 
- 			prev = msg.previousSibling;
 
- 			next = msg.nextSibling;
 
- 			parent = msg.parentNode;
 
- 			that._elemBack = function () {
 
- 				if (prev && prev.parentNode) {
 
- 					prev.parentNode.insertBefore(msg, prev.nextSibling);
 
- 				} else if (next && next.parentNode) {
 
- 					next.parentNode.insertBefore(msg, next);
 
- 				} else if (parent) {
 
- 					parent.appendChild(msg);
 
- 				};
 
- 				msg.style.display = display;
 
- 				that._elemBack = null;
 
- 			};
 
- 			
 
- 			$content.html('');
 
- 			content.appendChild(msg);
 
- 			msg.style.display = 'block';
 
- 			//content.focus();
 
- 			//alert('1');
 
- 			
 
- 			if (isIframe) art.PHPCMS_API[that.config.id] = msg.contentWindow
 
- 		};
 
- 		
 
- 		// 新增内容后调整位置
 
- 		if (!arguments[1]) {
 
- 			if (that.config.follow) {
 
- 				that.follow(that.config.follow);
 
- 			} else {
 
- 				width = wrap.offsetWidth - width;
 
- 				height = wrap.offsetHeight - height;
 
- 				left = left - width / 2;
 
- 				top = top - height / 2;
 
- 				wrap.style.left = Math.max(left, 0) + 'px';
 
- 				wrap.style.top = Math.max(top, 0) + 'px';
 
- 			};
 
- 			if (cssWidth && cssWidth !== 'auto') {
 
- 				wrap.style.width = wrap.offsetWidth + 'px';
 
- 			};
 
- 			that._autoPositionType();
 
- 		};
 
- 		
 
- 		that._ie6SelectFix();
 
- 		that._runScript(content);
 
- 		
 
- 		return that;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 设置标题
 
- 	 * @param	{String, Boolean}	标题内容. 为false则隐藏标题栏
 
- 	 * @return	{this, HTMLElement}	如果无参数则返回内容器DOM对象
 
- 	 */
 
- 	title: function (text) {
 
- 		var DOM = this.DOM,
 
- 			wrap = DOM.wrap,
 
- 			title = DOM.title,
 
- 			className = 'aui_state_noTitle';
 
- 			
 
- 		if (text === undefined) return title[0];
 
- 		if (text === false) {
 
- 			title.hide().html('');
 
- 			wrap.addClass(className);
 
- 		} else {
 
- 			title.show().html(text || '');
 
- 			wrap.removeClass(className);
 
- 		};
 
- 		
 
- 		return this;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 位置(相对于可视区域)
 
- 	 * @param	{Number, String}
 
- 	 * @param	{Number, String}
 
- 	 */
 
- 	position: function (left, top) {
 
- 		var that = this,
 
- 			config = that.config,
 
- 			wrap = that.DOM.wrap[0],
 
- 			isFixed = _isIE6 ? false : config.fixed,
 
- 			ie6Fixed = _isIE6 && that.config.fixed,
 
- 			docLeft = _$document.scrollLeft(),
 
- 			docTop = _$document.scrollTop(),
 
- 			dl = isFixed ? 0 : docLeft,
 
- 			dt = isFixed ? 0 : docTop,
 
- 			ww = _$window.width(),
 
- 			wh = _$window.height(),
 
- 			ow = wrap.offsetWidth,
 
- 			oh = wrap.offsetHeight,
 
- 			style = wrap.style;
 
- 		
 
- 		if (left || left === 0) {
 
- 			that._left = left.toString().indexOf('%') !== -1 ? left : null;
 
- 			left = that._toNumber(left, ww - ow);
 
- 			
 
- 			if (typeof left === 'number') {
 
- 				left = ie6Fixed ? (left += docLeft) : left + dl;
 
- 				style.left = Math.max(left, dl) + 'px';
 
- 			} else if (typeof left === 'string') {
 
- 				style.left = left;
 
- 			};
 
- 		};
 
- 		
 
- 		if (top || top === 0) {
 
- 			that._top = top.toString().indexOf('%') !== -1 ? top : null;
 
- 			top = that._toNumber(top, wh - oh);
 
- 			
 
- 			if (typeof top === 'number') {
 
- 				top = ie6Fixed ? (top += docTop) : top + dt;
 
- 				style.top = Math.max(top, dt) + 'px';
 
- 			} else if (typeof top === 'string') {
 
- 				style.top = top;
 
- 			};
 
- 		};
 
- 		
 
- 		if (left !== undefined && top !== undefined) {
 
- 			that._follow = null;
 
- 			that._autoPositionType();
 
- 		};
 
- 		
 
- 		return that;
 
- 	},
 
- 	/**
 
- 	 *	尺寸
 
- 	 *	@param	{Number, String}	宽度
 
- 	 *	@param	{Number, String}	高度
 
- 	 */
 
- 	size: function (width, height) {
 
- 		var maxWidth, maxHeight, scaleWidth, scaleHeight,
 
- 			that = this,
 
- 			config = that.config,
 
- 			DOM = that.DOM,
 
- 			wrap = DOM.wrap,
 
- 			main = DOM.main,
 
- 			wrapStyle = wrap[0].style,
 
- 			style = main[0].style;
 
- 			
 
- 		if (width) {
 
- 			that._width = width.toString().indexOf('%') !== -1 ? width : null;
 
- 			maxWidth = _$window.width() - wrap[0].offsetWidth + main[0].offsetWidth;
 
- 			scaleWidth = that._toNumber(width, maxWidth);
 
- 			width = scaleWidth;
 
- 			
 
- 			if (typeof width === 'number') {
 
- 				wrapStyle.width = 'auto';
 
- 				style.width = Math.max(that.config.minWidth, width) + 'px';
 
- 				wrapStyle.width = wrap[0].offsetWidth + 'px'; // 防止未定义宽度的表格遇到浏览器右边边界伸缩
 
- 			} else if (typeof width === 'string') {
 
- 				style.width = width;
 
- 				width === 'auto' && wrap.css('width', 'auto');
 
- 			};
 
- 		};
 
- 		
 
- 		if (height) {
 
- 			that._height = height.toString().indexOf('%') !== -1 ? height : null;
 
- 			maxHeight = _$window.height() - wrap[0].offsetHeight + main[0].offsetHeight;
 
- 			scaleHeight = that._toNumber(height, maxHeight);
 
- 			height = scaleHeight;
 
- 			//alert(height);
 
- 			if (typeof height === 'number') {
 
- 				style.height = Math.max(that.config.minHeight, height) + 'px';
 
- 			} else if (typeof height === 'string') {
 
- 				style.height = height;
 
- 				//height === 'auto' && wrap.css('height', 'auto');
 
- 			};
 
- 		};
 
- 		
 
- 		that._ie6SelectFix();
 
- 		
 
- 		return that;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 跟随元素
 
- 	 * @param	{HTMLElement, String}
 
- 	 */
 
- 	follow: function (elem) {
 
- 		var $elem, that = this, config = that.config;
 
- 		
 
- 		if (typeof elem === 'string' || elem && elem.nodeType === 1) {
 
- 			$elem = $(elem);
 
- 			elem = $elem[0];
 
- 		};
 
- 		
 
- 		// 隐藏元素不可用
 
- 		if (!elem || !elem.offsetWidth && !elem.offsetHeight) {
 
- 			return that.position(that._left, that._top);
 
- 		};
 
- 		
 
- 		var expando = _expando + 'follow',
 
- 			winWidth = _$window.width(),
 
- 			winHeight = _$window.height(),
 
- 			docLeft =  _$document.scrollLeft(),
 
- 			docTop = _$document.scrollTop(),
 
- 			offset = $elem.offset(),
 
- 			width = elem.offsetWidth,
 
- 			height = elem.offsetHeight,
 
- 			isFixed = _isIE6 ? false : config.fixed,
 
- 			left = isFixed ? offset.left - docLeft : offset.left,
 
- 			top = isFixed ? offset.top - docTop : offset.top,
 
- 			wrap = that.DOM.wrap[0],
 
- 			style = wrap.style,
 
- 			wrapWidth = wrap.offsetWidth,
 
- 			wrapHeight = wrap.offsetHeight,
 
- 			setLeft = left - (wrapWidth - width) / 2,
 
- 			setTop = top + height,
 
- 			dl = isFixed ? 0 : docLeft,
 
- 			dt = isFixed ? 0 : docTop;
 
- 		
 
- 		setLeft = setLeft < dl ? left :
 
- 		(setLeft + wrapWidth > winWidth) && (left - wrapWidth > dl)
 
- 		? left - wrapWidth + width
 
- 		: setLeft;
 
- 		setTop = (setTop + wrapHeight > winHeight + dt)
 
- 		&& (top - wrapHeight > dt)
 
- 		? top - wrapHeight
 
- 		: setTop;
 
- 		
 
- 		style.left = setLeft + 'px';
 
- 		style.top = setTop + 'px';
 
- 		
 
- 		that._follow && that._follow.removeAttribute(expando);
 
- 		that._follow = elem;
 
- 		elem[expando] = config.id;
 
- 		that._autoPositionType();
 
- 		return that;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 自定义按钮
 
- 	 * @example
 
- 		button({
 
- 			name: 'login',
 
- 			callback: function () {},
 
- 			disabled: false,
 
- 			focus: true
 
- 		}, .., ..)
 
- 	 */
 
- 	button: function () {
 
- 		var that = this,
 
- 			ags = arguments,
 
- 			DOM = that.DOM,
 
- 			buttons = DOM.buttons,
 
- 			elem = buttons[0],
 
- 			strongButton = 'aui_state_highlight',
 
- 			listeners = that._listeners = that._listeners || {},
 
- 			list = $.isArray(ags[0]) ? ags[0] : [].slice.call(ags);
 
- 		
 
- 		if (ags[0] === undefined) return elem;
 
- 		$.each(list, function (i, val) {
 
- 			var name = val.name,
 
- 				isNewButton = !listeners[name],
 
- 				button = !isNewButton ?
 
- 					listeners[name].elem :
 
- 					document.createElement('button');
 
- 					
 
- 			if (!listeners[name]) listeners[name] = {};
 
- 			if (val.callback) listeners[name].callback = val.callback;
 
- 			if (val.className) button.className = val.className;
 
- 			if (val.focus) {
 
- 				that._focus && that._focus.removeClass(strongButton);
 
- 				that._focus = $(button).addClass(strongButton);
 
- 				that.focus();
 
- 			};
 
- 			
 
- 			// Internet Explorer 的默认类型是 "button",
 
- 			// 而其他浏览器中(包括 W3C 规范)的默认值是 "submit"
 
- 			// @see http://www.w3school.com.cn/tags/att_button_type.asp
 
- 			button.setAttribute('type', 'button');
 
- 			
 
- 			button[_expando + 'callback'] = name;
 
- 			button.disabled = !!val.disabled;
 
- 			if (isNewButton) {
 
- 				button.innerHTML = name;
 
- 				listeners[name].elem = button;
 
- 				elem.appendChild(button);
 
- 			};
 
- 		});
 
- 		
 
- 		buttons[0].style.display = list.length ? '' : 'none';
 
- 		
 
- 		that._ie6SelectFix();
 
- 		return that;
 
- 	},
 
- 	
 
- 	/** 显示对话框 */
 
- 	show: function () {
 
- 		this.DOM.wrap.show();
 
- 		!arguments[0] && this._lockMaskWrap && this._lockMaskWrap.show();
 
- 		return this;
 
- 	},
 
- 	
 
- 	/** 隐藏对话框 */
 
- 	hide: function () {
 
- 		this.DOM.wrap.hide();
 
- 		!arguments[0] && this._lockMaskWrap && this._lockMaskWrap.hide();
 
- 		return this;
 
- 	},
 
- 	
 
- 	/** 关闭对话框 */
 
- 	close: function () {
 
- 		if (this.closed) return this;
 
- 		
 
- 		var that = this,
 
- 			DOM = that.DOM,
 
- 			wrap = DOM.wrap,
 
- 			list = artDialog.list,
 
- 			fn = that.config.close,
 
- 			follow = that.config.follow;
 
- 		
 
- 		that.time();
 
- 		if (typeof fn === 'function' && fn.call(that, window) === false) {
 
- 			return that;
 
- 		};
 
- 		
 
- 		that.unlock();
 
- 		
 
- 		// 置空内容
 
- 		that._elemBack && that._elemBack();
 
- 		wrap[0].className = wrap[0].style.cssText = '';
 
- 		DOM.title.html('');
 
- 		DOM.content.html('');
 
- 		DOM.buttons.html('');
 
- 		
 
- 		if (artDialog.focus === that) artDialog.focus = null;
 
- 		if (follow) follow.removeAttribute(_expando + 'follow');
 
- 		delete list[that.config.id];
 
- 		that._removeEvent();
 
- 		that.hide(true)._setAbsolute();
 
- 		
 
- 		// 清空除this.DOM之外临时对象,恢复到初始状态,以便使用单例模式
 
- 		for (var i in that) {
 
- 			if (that.hasOwnProperty(i)) delete that[i];
 
- 		};
 
- 		
 
- 		// 移除HTMLElement或重用
 
- 		_box ? wrap.remove() : _box = that;
 
- 		
 
- 		return that;
 
- 	},
 
- 	
 
- 	/**
 
- 	 * 定时关闭
 
- 	 * @param	{Number}	单位为秒, 无参数则停止计时器
 
- 	 */
 
- 	time: function (second) {
 
- 		var that = this,
 
- 			cancel = that.config.cancelVal,
 
- 			timer = that._timer;
 
- 			
 
- 		timer && clearTimeout(timer);
 
- 		
 
- 		if (second) {
 
- 			that._timer = setTimeout(function(){
 
- 				that._click(cancel);
 
- 			}, 1000 * second);
 
- 		};
 
- 		
 
- 		return that;
 
- 	},
 
- 	
 
- 	/** 设置焦点 */
 
- 	focus: function () {
 
- 		try {
 
- 			var elem = this._focus && this._focus[0] || this.DOM.close[0];
 
- 			elem && elem.focus();
 
- 		} catch (e) {}; // IE对不可见元素设置焦点会报错
 
- 		return this;
 
- 	},
 
- 	
 
- 	/** 置顶对话框 */
 
- 	zIndex: function () {
 
- 		var that = this,
 
- 			DOM = that.DOM,
 
- 			wrap = DOM.wrap,
 
- 			top = artDialog.focus,
 
- 			index = artDialog.defaults.zIndex ++;
 
- 		
 
- 		// 设置叠加高度
 
- 		wrap.css('zIndex', index);
 
- 		that._lockMask && that._lockMask.css('zIndex', index - 1);
 
- 		
 
- 		// 设置最高层的样式
 
- 		top && top.DOM.wrap.removeClass('aui_state_focus');
 
- 		artDialog.focus = that;
 
- 		wrap.addClass('aui_state_focus');
 
- 		
 
- 		return that;
 
- 	},
 
- 	
 
- 	/** 设置屏锁 */
 
- 	lock: function () {
 
- 		if (this._lock) return this;
 
- 		
 
- 		var that = this,
 
- 			index = artDialog.defaults.zIndex - 1,
 
- 			wrap = that.DOM.wrap,
 
- 			config = that.config,
 
- 			docWidth = _$document.width(),
 
- 			docHeight = _$document.height(),
 
- 			lockMaskWrap = that._lockMaskWrap || $(document.body.appendChild(document.createElement('div'))),
 
- 			lockMask = that._lockMask || $(lockMaskWrap[0].appendChild(document.createElement('div'))),
 
- 			domTxt = '(document).documentElement',
 
- 			sizeCss = _isMobile ? 'width:' + docWidth + 'px;height:' + docHeight
 
- 				+ 'px' : 'width:100%;height:100%',
 
- 			ie6Css = _isIE6 ?
 
- 				'position:absolute;left:expression(' + domTxt + '.scrollLeft);top:expression('
 
- 				+ domTxt + '.scrollTop);width:expression(' + domTxt
 
- 				+ '.clientWidth);height:expression(' + domTxt + '.clientHeight)'
 
- 			: '';
 
- 		
 
- 		that.zIndex();
 
- 		wrap.addClass('aui_state_lock');
 
- 		
 
- 		lockMaskWrap[0].style.cssText = sizeCss + ';position:fixed;z-index:'
 
- 			+ index + ';top:0;left:0;overflow:hidden;' + ie6Css;
 
- 		lockMask[0].style.cssText = 'height:100%;background:' + config.background
 
- 			+ ';filter:alpha(opacity=0);opacity:0';
 
- 		
 
- 		// 让IE6锁屏遮罩能够盖住下拉控件
 
- 		if (_isIE6) lockMask.html(
 
- 			'<iframe src="about:blank" style="width:100%;height:100%;position:absolute;' +
 
- 			'top:0;left:0;z-index:-1;filter:alpha(opacity=0)"></iframe>');
 
- 			
 
- 		lockMask.stop();
 
- 		lockMask.bind('click', function () {
 
- 			that._reset();
 
- 		}).bind('dblclick', function () {
 
- 			that._click(that.config.cancelVal);
 
- 		});
 
- 		
 
- 		if (config.duration === 0) {
 
- 			lockMask.css({opacity: config.opacity});
 
- 		} else {
 
- 			lockMask.animate({opacity: config.opacity}, config.duration);
 
- 		};
 
- 		
 
- 		that._lockMaskWrap = lockMaskWrap;
 
- 		that._lockMask = lockMask;
 
- 		
 
- 		that._lock = true;
 
- 		return that;
 
- 	},
 
- 	
 
- 	/** 解开屏锁 */
 
- 	unlock: function () {
 
- 		var that = this,
 
- 			lockMaskWrap = that._lockMaskWrap,
 
- 			lockMask = that._lockMask;
 
- 		
 
- 		if (!that._lock) return that;
 
- 		var style = lockMaskWrap[0].style;
 
- 		var un = function () {
 
- 			if (_isIE6) {
 
- 				style.removeExpression('width');
 
- 				style.removeExpression('height');
 
- 				style.removeExpression('left');
 
- 				style.removeExpression('top');
 
- 			};
 
- 			style.cssText = 'display:none';
 
- 			
 
- 			_box && lockMaskWrap.remove();
 
- 		};
 
- 		
 
- 		lockMask.stop().unbind();
 
- 		that.DOM.wrap.removeClass('aui_state_lock');
 
- 		if (!that.config.duration) {// 取消动画,快速关闭
 
- 			un();
 
- 		} else {
 
- 			lockMask.animate({opacity: 0}, that.config.duration, un);
 
- 		};
 
- 		
 
- 		that._lock = false;
 
- 		return that;
 
- 	},
 
- 	
 
- 	// 获取元素
 
- 	_getDOM: function () {	
 
- 		var wrap = document.createElement('div'),
 
- 			body = document.body;
 
- 		wrap.style.cssText = 'position:absolute;left:0;top:0';
 
- 		wrap.innerHTML = artDialog._templates;
 
- 		body.insertBefore(wrap, body.firstChild);
 
- 		
 
- 		var name, i = 0,
 
- 			DOM = {wrap: $(wrap)},
 
- 			els = wrap.getElementsByTagName('*'),
 
- 			elsLen = els.length;
 
- 			
 
- 		for (; i < elsLen; i ++) {
 
- 			name = els[i].className.split('aui_')[1];
 
- 			if (name) DOM[name] = $(els[i]);
 
- 		};
 
- 		
 
- 		return DOM;
 
- 	},
 
- 	
 
- 	// px与%单位转换成数值 (百分比单位按照最大值换算)
 
- 	// 其他的单位返回原值
 
- 	_toNumber: function (thisValue, maxValue) {
 
- 		if (!thisValue && thisValue !== 0 || typeof thisValue === 'number') {
 
- 			return thisValue;
 
- 		};
 
- 		
 
- 		var last = thisValue.length - 1;
 
- 		if (thisValue.lastIndexOf('px') === last) {
 
- 			thisValue = parseInt(thisValue);
 
- 		} else if (thisValue.lastIndexOf('%') === last) {
 
- 			thisValue = parseInt(maxValue * thisValue.split('%')[0] / 100);
 
- 		};
 
- 		
 
- 		return thisValue;
 
- 	},
 
- 	
 
- 	// 让IE6 CSS支持PNG背景
 
- 	_ie6PngFix: _isIE6 ? function () {
 
- 		var i = 0, elem, png, pngPath, runtimeStyle,
 
- 			path = artDialog.defaults.path + '/skins/',
 
- 			list = this.DOM.wrap[0].getElementsByTagName('*');
 
- 		
 
- 		for (; i < list.length; i ++) {
 
- 			elem = list[i];
 
- 			png = elem.currentStyle['png'];
 
- 			if (png) {
 
- 				pngPath = path + png;
 
- 				runtimeStyle = elem.runtimeStyle;
 
- 				runtimeStyle.backgroundImage = 'none';
 
- 				runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
 
- 					"AlphaImageLoader(src='" + pngPath + "',sizingMethod='crop')";
 
- 			};
 
- 		};
 
- 	} : $.noop,
 
- 	
 
- 	// 强制覆盖IE6下拉控件
 
- 	_ie6SelectFix: _isIE6 ? function () {
 
- 		var $wrap = this.DOM.wrap,
 
- 			wrap = $wrap[0],
 
- 			expando = _expando + 'iframeMask',
 
- 			iframe = $wrap[expando],
 
- 			width = wrap.offsetWidth,
 
- 			height = wrap.offsetHeight;
 
- 		width = width + 'px';
 
- 		height = height + 'px';
 
- 		if (iframe) {
 
- 			iframe.style.width = width;
 
- 			iframe.style.height = height;
 
- 		} else {
 
- 			iframe = wrap.appendChild(document.createElement('iframe'));
 
- 			$wrap[expando] = iframe;
 
- 			iframe.src = 'about:blank';
 
- 			iframe.style.cssText = 'position:absolute;z-index:-1;left:0;top:0;'
 
- 			+ 'filter:alpha(opacity=0);width:' + width + ';height:' + height;
 
- 		};
 
- 	} : $.noop,
 
- 	
 
- 	// 解析HTML片段中自定义类型脚本,其this指向artDialog内部
 
- 	// <script type="text/dialog">/* [code] */</script>
 
- 	_runScript: function (elem) {
 
- 		var fun, i = 0, n = 0,
 
- 			tags = elem.getElementsByTagName('script'),
 
- 			length = tags.length,
 
- 			script = [];
 
- 			
 
- 		for (; i < length; i ++) {
 
- 			if (tags[i].type === 'text/dialog') {
 
- 				script[n] = tags[i].innerHTML;
 
- 				n ++;
 
- 			};
 
- 		};
 
- 		
 
- 		if (script.length) {
 
- 			script = script.join('');
 
- 			fun = new Function(script);
 
- 			fun.call(this);
 
- 		};
 
- 	},
 
- 	
 
- 	// 自动切换定位类型
 
- 	_autoPositionType: function () {
 
- 		this[this.config.fixed ? '_setFixed' : '_setAbsolute']();/////////////
 
- 	},
 
- 	
 
- 	
 
- 	// 设置静止定位
 
- 	// IE6 Fixed @see: http://www.planeart.cn/?p=877
 
- 	_setFixed: (function () {
 
- 		_isIE6 && $(function () {
 
- 			var bg = 'backgroundAttachment';
 
- 			if (_$html.css(bg) !== 'fixed' && $('body').css(bg) !== 'fixed') {
 
- 				_$html.css({
 
- 					zoom: 1,// 避免偶尔出现body背景图片异常的情况
 
- 					backgroundImage: 'url(about:blank)',
 
- 					backgroundAttachment: 'fixed'
 
- 				});
 
- 			};
 
- 		});
 
- 		
 
- 		return function () {
 
- 			var $elem = this.DOM.wrap,
 
- 				style = $elem[0].style;
 
- 			
 
- 			if (_isIE6) {
 
- 				var left = parseInt($elem.css('left')),
 
- 					top = parseInt($elem.css('top')),
 
- 					sLeft = _$document.scrollLeft(),
 
- 					sTop = _$document.scrollTop(),
 
- 					txt = '(document.documentElement)';
 
- 				
 
- 				this._setAbsolute();
 
- 				style.setExpression('left', 'eval(' + txt + '.scrollLeft + '
 
- 					+ (left - sLeft) + ') + "px"');
 
- 				style.setExpression('top', 'eval(' + txt + '.scrollTop + '
 
- 					+ (top - sTop) + ') + "px"');
 
- 			} else {
 
- 				style.position = 'fixed';
 
- 			};
 
- 		};
 
- 	}()),
 
- 	
 
- 	// 设置绝对定位
 
- 	_setAbsolute: function () {
 
- 		var style = this.DOM.wrap[0].style;
 
- 			
 
- 		if (_isIE6) {
 
- 			style.removeExpression('left');
 
- 			style.removeExpression('top');
 
- 		};
 
- 		style.position = 'absolute';
 
- 	},
 
- 	
 
- 	// 按钮回调函数触发
 
- 	_click: function (name) {
 
- 		var that = this,
 
- 			fn = that._listeners[name] && that._listeners[name].callback;
 
- 		return typeof fn !== 'function' || fn.call(that, window) !== false ?
 
- 			that.close() : that;
 
- 	},
 
- 	
 
- 	// 重置位置与尺寸
 
- 	_reset: function (test) {
 
- 		var newSize,
 
- 			that = this,
 
- 			oldSize = that._winSize || _$window.width() * _$window.height(),
 
- 			elem = that._follow,
 
- 			width = that._width,
 
- 			height = that._height,
 
- 			left = that._left,
 
- 			top = that._top;
 
- 		
 
- 		if (test) {
 
- 			// IE6~7 window.onresize bug
 
- 			
 
- 			newSize = that._winSize =  _$window.width() * _$window.height();
 
- 			if (oldSize === newSize) return;
 
- 		};
 
- 		
 
- 		if (width || height) that.size(width, height);
 
- 		
 
- 		if (elem) {
 
- 			that.follow(elem);
 
- 		} else if (left || top) {
 
- 			that.position(left, top);
 
- 		};
 
- 	},
 
- 	
 
- 	// 事件代理
 
- 	_addEvent: function () {
 
- 		var resizeTimer,
 
- 			that = this,
 
- 			config = that.config,
 
- 			isIE = 'CollectGarbage' in window,
 
- 			DOM = that.DOM;
 
- 		
 
- 		// 窗口调节事件
 
- 		that._winResize = function () {
 
- 			resizeTimer && clearTimeout(resizeTimer);
 
- 			resizeTimer = setTimeout(function () {
 
- 				that._reset(isIE);
 
- 			}, 40);
 
- 		};
 
- 		_$window.bind('resize', that._winResize);
 
- 		
 
- 		// 监听点击
 
- 		DOM.wrap
 
- 		.bind('click', function (event) {
 
- 			var target = event.target, callbackID;
 
- 			
 
- 			if (target.disabled) return false; // IE BUG
 
- 			
 
- 			if (target === DOM.close[0]) {
 
- 				that._click(config.cancelVal);
 
- 				return false;
 
- 			} else {
 
- 				callbackID = target[_expando + 'callback'];
 
- 				callbackID && that._click(callbackID);
 
- 			};
 
- 			
 
- 			that._ie6SelectFix();
 
- 		})
 
- 		.bind('mousedown', function () {
 
- 			that.zIndex();
 
- 		});
 
- 	},
 
- 	
 
- 	// 卸载事件代理
 
- 	_removeEvent: function () {
 
- 		var that = this,
 
- 			DOM = that.DOM;
 
- 		
 
- 		DOM.wrap.unbind();
 
- 		_$window.unbind('resize', that._winResize);
 
- 	}
 
- 	
 
- };
 
- artDialog.fn._init.prototype = artDialog.fn;
 
- $.fn.dialog = $.fn.artDialog = function () {
 
- 	var config = arguments;
 
- 	this[this.live ? 'live' : 'bind']('click', function () {
 
- 		artDialog.apply(this, config);
 
- 		return false;
 
- 	});
 
- 	return this;
 
- };
 
- /** 最顶层的对话框API */
 
- artDialog.focus = null;
 
- /** 获取某对话框API */
 
- artDialog.get = function (id) {
 
- 	return id === undefined
 
- 	? artDialog.list
 
- 	: artDialog.list[id];
 
- };
 
- artDialog.list = {};
 
- // 全局快捷键
 
- _$document.bind('keydown', function (event) {
 
- 	var target = event.target,
 
- 		nodeName = target.nodeName,
 
- 		rinput = /^INPUT|TEXTAREA$/,
 
- 		api = artDialog.focus,
 
- 		keyCode = event.keyCode;
 
- 	if (!api || !api.config.esc || rinput.test(nodeName)) return;
 
- 		
 
- 	keyCode === 27 && api._click(api.config.cancelVal);
 
- });
 
- // 获取artDialog路径
 
- _path = window['_artDialog_path'] || (function (script, i, me) {
 
- 	for (i in script) {
 
- 		// 如果通过第三方脚本加载器加载本文件,请保证文件名含有"artDialog"字符
 
- 		if (script[i].src && script[i].src.indexOf('artDialog') !== -1) me = script[i];
 
- 	};
 
- 	
 
- 	_thisScript = me || script[script.length - 1];
 
- 	me = _thisScript.src.replace(/\\/g, '/');
 
- 	return me.lastIndexOf('/') < 0 ? '.' : me.substring(0, me.lastIndexOf('/'));
 
- }(document.getElementsByTagName('script')));
 
- // 无阻塞载入CSS (如"artDialog.js?skin=aero")
 
- _skin = _thisScript.src.split('skin=')[1];
 
- if (_skin) {
 
- 	var link = document.createElement('link');
 
- 	link.rel = 'stylesheet';
 
- 	link.href = _path + '/skins/' + _skin + '.css?' + artDialog.fn.version;
 
- 	_thisScript.parentNode.insertBefore(link, _thisScript);
 
- };
 
- // 触发浏览器预先缓存背景图片
 
- _$window.bind('load', function () {
 
- 	setTimeout(function () {
 
- 		if (_count) return;
 
- 		artDialog({left: '-9999em',time: 9,fixed: false,lock: false,focus: false});
 
- 	}, 150);
 
- });
 
- // 开启IE6 CSS背景图片缓存
 
- try {
 
- 	document.execCommand('BackgroundImageCache', false, true);
 
- } catch (e) {};
 
- // 使用uglifyjs压缩能够预先处理"+"号合并字符串
 
- // uglifyjs: http://marijnhaverbeke.nl/uglifyjs
 
- artDialog._templates =
 
- '<div class="aui_outer">'
 
- +	'<table class="aui_border">'
 
- +		'<tbody>'
 
- +			'<tr>'
 
- +				'<td class="aui_nw"></td>'
 
- +				'<td class="aui_n"></td>'
 
- +				'<td class="aui_ne"></td>'
 
- +			'</tr>'
 
- +			'<tr>'
 
- +				'<td class="aui_w"></td>'
 
- +				'<td class="aui_c">'
 
- +					'<div class="aui_inner">'
 
- +					'<table class="aui_dialog">'
 
- +						'<tbody>'
 
- +							'<tr>'
 
- +								'<td colspan="2" class="aui_header">'
 
- +									'<div class="aui_titleBar">'
 
- +										'<div class="aui_title"></div>'
 
- +										'<a class="aui_close" href="javascript:/*artDialog*/;">'
 
- +											'\xd7'
 
- +										'</a>'
 
- +									'</div>'
 
- +								'</td>'
 
- +							'</tr>'
 
- +							'<tr>'
 
- +								'<td class="aui_icon">'
 
- +									'<div class="aui_iconBg"></div>'
 
- +								'</td>'
 
- +								'<td class="aui_main">'
 
- +									'<div class="aui_content"></div>'
 
- +								'</td>'
 
- +							'</tr>'
 
- +							'<tr>'
 
- +								'<td colspan="2" class="aui_footer">'
 
- +									'<div class="aui_buttons"></div>'
 
- +								'</td>'
 
- +							'</tr>'
 
- +						'</tbody>'
 
- +					'</table>'
 
- +					'</div>'
 
- +				'</td>'
 
- +				'<td class="aui_e"></td>'
 
- +			'</tr>'
 
- +			'<tr>'
 
- +				'<td class="aui_sw"></td>'
 
- +				'<td class="aui_s"></td>'
 
- +				'<td class="aui_se"></td>'
 
- +			'</tr>'
 
- +		'</tbody>'
 
- +	'</table>'
 
- +'</div>';
 
- /**
 
-  * 默认配置
 
-  */
 
- artDialog.defaults = {
 
- 								// 消息内容
 
- 	content: '<div class="aui_loading"><span>loading..</span></div>',
 
- 	title: '\u6d88\u606f',		// 标题. 默认'消息'
 
- 	button: null,				// 自定义按钮
 
- 	ok: null,					// 确定按钮回调函数
 
- 	cancel: null,				// 取消按钮回调函数
 
- 	init: null,					// 对话框初始化后执行的函数
 
- 	close: null,				// 对话框关闭前执行的函数
 
- 	okVal: '\u786E\u5B9A',		// 确定按钮文本. 默认'确定'
 
- 	cancelVal: '\u53D6\u6D88',	// 取消按钮文本. 默认'取消'
 
- 	width: 'auto',				// 内容宽度
 
- 	height: 'auto',				// 内容高度
 
- 	minWidth: 96,				// 最小宽度限制
 
- 	minHeight: 32,				// 最小高度限制
 
- 	padding: '20px 25px',		// 内容与边界填充距离
 
- 	skin: '',					// 皮肤名(预留接口,尚未实现)
 
- 	icon: null,					// 消息图标名称
 
- 	time: null,					// 自动关闭时间
 
- 	esc: true,					// 是否支持Esc键关闭
 
- 	focus: true,				// 是否支持对话框按钮自动聚焦
 
- 	show: true,					// 初始化后是否显示对话框
 
- 	follow: null,				// 跟随某元素(即让对话框在元素附近弹出)
 
- 	path: _path,				// artDialog路径
 
- 	lock: true,				// 是否锁屏
 
- 	background: '#000',			// 遮罩颜色
 
- 	opacity: .7,				// 遮罩透明度
 
- 	duration: 300,				// 遮罩透明度渐变动画速度
 
- 	fixed: false,				// 是否静止定位
 
- 	left: '50%',				// X轴坐标
 
- 	top: '38.2%',				// Y轴坐标
 
- 	zIndex: 1987,				// 对话框叠加高度值(重要:此值不能超过浏览器最大限制)
 
- 	resize: true,				// 是否允许用户调节尺寸
 
- 	drag: true					// 是否允许用户拖动位置
 
- 	
 
- };
 
- window.artDialog = $.dialog = $.artDialog = artDialog;
 
- }(this.art || this.jQuery && (this.art = jQuery), this));
 
- //------------------------------------------------
 
- // 对话框模块-拖拽支持(可选外置模块)
 
- //------------------------------------------------
 
- ;(function ($) {
 
- var _dragEvent, _use,
 
- 	_$window = $(window),
 
- 	_$document = $(document),
 
- 	_elem = document.documentElement,
 
- 	_isIE6 = !('minWidth' in _elem.style),
 
- 	_isLosecapture = 'onlosecapture' in _elem,
 
- 	_isSetCapture = 'setCapture' in _elem;
 
- // 拖拽事件
 
- artDialog.dragEvent = function () {
 
- 	var that = this,
 
- 		proxy = function (name) {
 
- 			var fn = that[name];
 
- 			that[name] = function () {
 
- 				return fn.apply(that, arguments);
 
- 			};
 
- 		};
 
- 		
 
- 	proxy('start');
 
- 	proxy('move');
 
- 	proxy('end');
 
- };
 
- artDialog.dragEvent.prototype = {
 
- 	// 开始拖拽
 
- 	onstart: $.noop,
 
- 	start: function (event) {
 
- 		_$document
 
- 		.bind('mousemove', this.move)
 
- 		.bind('mouseup', this.end);
 
- 			
 
- 		this._sClientX = event.clientX;
 
- 		this._sClientY = event.clientY;
 
- 		this.onstart(event.clientX, event.clientY);
 
- 		return false;
 
- 	},
 
- 	
 
- 	// 正在拖拽
 
- 	onmove: $.noop,
 
- 	move: function (event) {		
 
- 		this._mClientX = event.clientX;
 
- 		this._mClientY = event.clientY;
 
- 		this.onmove(
 
- 			event.clientX - this._sClientX,
 
- 			event.clientY - this._sClientY
 
- 		);
 
- 		
 
- 		return false;
 
- 	},
 
- 	
 
- 	// 结束拖拽
 
- 	onend: $.noop,
 
- 	end: function (event) {
 
- 		_$document
 
- 		.unbind('mousemove', this.move)
 
- 		.unbind('mouseup', this.end);
 
- 		
 
- 		this.onend(event.clientX, event.clientY);
 
- 		return false;
 
- 	}
 
- 	
 
- };
 
- _use = function (event) {
 
- 	var limit, startWidth, startHeight, startLeft, startTop, isResize,
 
- 		api = artDialog.focus,
 
- 		//config = api.config,
 
- 		DOM = api.DOM,
 
- 		wrap = DOM.wrap,
 
- 		title = DOM.title,
 
- 		main = DOM.main;
 
- 	// 清除文本选择
 
- 	var clsSelect = 'getSelection' in window ? function () {
 
- 		window.getSelection().removeAllRanges();
 
- 	} : function () {
 
- 		try {
 
- 			document.selection.empty();
 
- 		} catch (e) {};
 
- 	};
 
- 	
 
- 	// 对话框准备拖动
 
- 	_dragEvent.onstart = function (x, y) {
 
- 		if (isResize) {
 
- 			startWidth = main[0].offsetWidth;
 
- 			startHeight = main[0].offsetHeight;
 
- 		} else {
 
- 			startLeft = wrap[0].offsetLeft;
 
- 			startTop = wrap[0].offsetTop;
 
- 		};
 
- 		
 
- 		_$document.bind('dblclick', _dragEvent.end);
 
- 		!_isIE6 && _isLosecapture ?
 
- 			title.bind('losecapture', _dragEvent.end) :
 
- 			_$window.bind('blur', _dragEvent.end);
 
- 		_isSetCapture && title[0].setCapture();
 
- 		
 
- 		wrap.addClass('aui_state_drag');
 
- 		api.focus();
 
- 	};
 
- 	
 
- 	// 对话框拖动进行中
 
- 	_dragEvent.onmove = function (x, y) {
 
- 		if (isResize) {
 
- 			var wrapStyle = wrap[0].style,
 
- 				style = main[0].style,
 
- 				width = x + startWidth,
 
- 				height = y + startHeight;
 
- 			
 
- 			wrapStyle.width = 'auto';
 
- 			style.width = Math.max(0, width) + 'px';
 
- 			wrapStyle.width = wrap[0].offsetWidth + 'px';
 
- 			
 
- 			style.height = Math.max(0, height) + 'px';
 
- 			
 
- 		} else {
 
- 			var style = wrap[0].style,
 
- 				left = Math.max(limit.minX, Math.min(limit.maxX, x + startLeft)),
 
- 				top = Math.max(limit.minY, Math.min(limit.maxY, y + startTop));
 
- 			style.left = left  + 'px';
 
- 			style.top = top + 'px';
 
- 		};
 
- 			
 
- 		clsSelect();
 
- 		api._ie6SelectFix();
 
- 	};
 
- 	
 
- 	// 对话框拖动结束
 
- 	_dragEvent.onend = function (x, y) {
 
- 		_$document.unbind('dblclick', _dragEvent.end);
 
- 		!_isIE6 && _isLosecapture ?
 
- 			title.unbind('losecapture', _dragEvent.end) :
 
- 			_$window.unbind('blur', _dragEvent.end);
 
- 		_isSetCapture && title[0].releaseCapture();
 
- 		
 
- 		_isIE6 && !api.closed && api._autoPositionType();
 
- 		
 
- 		wrap.removeClass('aui_state_drag');
 
- 	};
 
- 	
 
- 	isResize = event.target === DOM.se[0] ? true : false;
 
- 	limit = (function () {
 
- 		var maxX, maxY,
 
- 			wrap = api.DOM.wrap[0],
 
- 			fixed = wrap.style.position === 'fixed',
 
- 			ow = wrap.offsetWidth,
 
- 			oh = wrap.offsetHeight,
 
- 			ww = _$window.width(),
 
- 			wh = _$window.height(),
 
- 			dl = fixed ? 0 : _$document.scrollLeft(),
 
- 			dt = fixed ? 0 : _$document.scrollTop(),
 
- 			
 
- 		// 坐标最大值限制
 
- 		maxX = ww - ow + dl;
 
- 		maxY = wh - oh + dt;
 
- 		
 
- 		return {
 
- 			minX: dl,
 
- 			minY: dt,
 
- 			maxX: maxX,
 
- 			maxY: maxY
 
- 		};
 
- 	})();
 
- 	
 
- 	_dragEvent.start(event);
 
- };
 
- // 代理 mousedown 事件触发对话框拖动
 
- _$document.bind('mousedown', function (event) {
 
- 	var api = artDialog.focus;
 
- 	if (!api) return;
 
- 	var target = event.target,
 
- 		config = api.config,
 
- 		DOM = api.DOM;
 
- 	
 
- 	if (config.drag !== false && target === DOM.title[0]
 
- 	|| config.resize !== false && target === DOM.se[0]) {
 
- 		_dragEvent = _dragEvent || new artDialog.dragEvent();
 
- 		_use(event);
 
- 		return false;// 防止firefox与chrome滚屏
 
- 	};
 
- });
 
- })(this.art || this.jQuery && (this.art = jQuery));
 
 
  |