﻿/*firefox outerHTML*/
if(window.HTMLElement) {
    HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){
		var r=this.ownerDocument.createRange();
		r.setStartBefore(this);
		var df=r.createContextualFragment(sHTML);
		this.parentNode.replaceChild(df,this);
		return sHTML;
    });
    HTMLElement.prototype.__defineGetter__("outerHTML",function(){
    	var attr;
        var attrs=this.attributes;
        var str="<"+this.tagName.toLowerCase();
        for(var i=0;i<attrs.length;i++){
            attr=attrs[i];
            if(attr.specified)
                str+=" "+attr.name+'="'+attr.value+'"';
            }
        if(!this.canHaveChildren)
            return str+">";
        return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
    });       
	HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
		switch(this.tagName.toLowerCase()){
			case "area":
			case "base":
			case "basefont":
			case "col":
			case "frame":
			case "hr":
			case "img":
			case "br":
			case "input":
			case "isindex":
			case "link":
			case "meta":
			case "param":
			return false;
		}
    	return true;
	});
}
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
	HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode){
		switch (where){
		case 'beforeBegin':
			this.parentNode.insertBefore(parsedNode,this);
			break;
		case 'afterBegin':
			this.insertBefore(parsedNode,this.firstChild);
			break;
		case 'beforeEnd':
			this.appendChild(parsedNode);
			break;
		case 'afterEnd':
			if (this.nextSibling)
				this.parentNode.insertBefore(parsedNode,this.nextSibling);
			else this.parentNode.appendChild(parsedNode);
				break;
		}
	} 
	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML);
	} 
	HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
		var parsedText = document.createTextNode(txtStr);
		this.insertAdjacentElement(where,parsedText);
	}
}

var Tween = {
	Linear: function(t,b,c,d){ return c*t/d + b; },
	Quad: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t + b;
		},
		easeOut: function(t,b,c,d){
			return -c *(t/=d)*(t-2) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t + b;
			return -c/2 * ((--t)*(t-2) - 1) + b;
		}
	},
	Cubic: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t*t + b;
		},
		easeOut: function(t,b,c,d){
			return c*((t=t/d-1)*t*t + 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t*t + b;
			return c/2*((t-=2)*t*t + 2) + b;
		}
	},
	Quart: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t*t*t + b;
		},
		easeOut: function(t,b,c,d){
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
			return -c/2 * ((t-=2)*t*t*t - 2) + b;
		}
	},
	Quint: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t*t*t*t + b;
		},
		easeOut: function(t,b,c,d){
			return c*((t=t/d-1)*t*t*t*t + 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
			return c/2*((t-=2)*t*t*t*t + 2) + b;
		}
	},
	Sine: {
		easeIn: function(t,b,c,d){
			return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
		},
		easeOut: function(t,b,c,d){
			return c * Math.sin(t/d * (Math.PI/2)) + b;
		},
		easeInOut: function(t,b,c,d){
			return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
		}
	},
	Expo: {
		easeIn: function(t,b,c,d){
			return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
		},
		easeOut: function(t,b,c,d){
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if (t==0) return b;
			if (t==d) return b+c;
			if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
			return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
		}
	},
	Circ: {
		easeIn: function(t,b,c,d){
			return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
		},
		easeOut: function(t,b,c,d){
			return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
			return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
		}
	},
	Elastic: {
		easeIn: function(t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		},
		easeOut: function(t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
		},
		easeInOut: function(t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
			return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
		}
	},
	Back: {
		easeIn: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158;
			return c*(t/=d)*t*((s+1)*t - s) + b;
		},
		easeOut: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		},
		easeInOut: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158; 
			if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
			return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
		}
	},
	Bounce: {
		easeIn: function(t,b,c,d){
			return c - Tween.Bounce.easeOut(d-t, 0, c, d) + b;
		},
		easeOut: function(t,b,c,d){
			if ((t/=d) < (1/2.75)) {
				return c*(7.5625*t*t) + b;
			} else if (t < (2/2.75)) {
				return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
			} else if (t < (2.5/2.75)) {
				return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
			} else {
				return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
			}
		},
		easeInOut: function(t,b,c,d){
			if (t < d/2) return Tween.Bounce.easeIn(t*2, 0, c, d) * .5 + b;
			else return Tween.Bounce.easeOut(t*2-d, 0, c, d) * .5 + c*.5 + b;
		}
	}
}
var LY={};
//浏览器判断
/*
alert(LY.browser.IE);
*/
LY.browser = (function() {
	var ua = navigator.userAgent.toLowerCase();
	return {
		VERSION: ua.match(/(msie|firefox|webkit|opera)[\/:\s](\d+)/) ? RegExp.$2 : '0',
		IE: (ua.indexOf('msie') > -1 && ua.indexOf('opera') == -1),
		GECKO: (ua.indexOf('gecko') > -1 && ua.indexOf('khtml') == -1),//firefox
		WEBKIT: (ua.indexOf('applewebkit') > -1),//Mac OS X Safari
		OPERA: (ua.indexOf('opera') > -1)
	};
})();
LY.g = {};
LY.plugin = {};
LY.$ = function(id, doc){
	var doc = doc || document;
	return id.tagName?id:doc.getElementById(id);
};
LY.$$ = function(name, doc){
	var doc = doc || document;
	return doc.getElementsByTagName(name);
};
LY.$$$ = function(name, doc){
	var doc = doc || document;
	return doc.createElement(name);
};
LY.event = {
	add : function(el, event, listener) {
		if (el.addEventListener){
			el.addEventListener(event, listener, false);
		} else if (el.attachEvent){
			el.attachEvent('on' + event, listener);
		}
	},//LY.event.add(LY.$('test'), 'mousemove', moveListener);
	remove : function(el, event, listener) {
		if (el.removeEventListener){
			el.removeEventListener(event, listener, false);
		} else if (el.detachEvent){
			el.detachEvent('on' + event, listener);
		}
	},//LY.event.remove(LY.$('test'), 'mousemove', moveListener);
	input : function(el, func) {
		this.add(el, 'keyup', function(e) {
			if (!e.ctrlKey && !e.altKey && (e.keyCode < 16 || e.keyCode > 18) && e.keyCode != 116) {
				func(e);
				if (e.preventDefault) e.preventDefault();
				if (e.stopPropagation) e.stopPropagation();
				return false;
			}
		});
	},//LY.event.input(LY.$('test'), addHistory);
	ctrl : function(el, key, func) {
		this.add(el, 'keydown', function(e) {
			if (e.ctrlKey && e.keyCode == key.toUpperCase().charCodeAt(0) && !e.shiftKey && !e.altKey) {
				func(e);
				if (e.preventDefault) e.preventDefault();
				if (e.stopPropagation) e.stopPropagation();
				return false;
			}
		});
	},//LY.event.input(LY.$('test'),'Z', addHistory);
	ready : function(func, win, doc) {
		var win = win || window;
		var doc = doc || document;
		var loaded = false;
		var readyFunc = function() {
			if (loaded) return;
			loaded = true;
			func();
		};
		if (doc.addEventListener) {
			this.add(doc, "domcontentloaded", readyFunc);
		} else if (doc.attachEvent){
			this.add(doc, "readystatechange", function() {
				if (doc.readyState == "complete") readyFunc();
			});
			if ( doc.documentElement.doScroll && typeof win.frameElement === "undefined" ) {
				var ieReadyFunc = function() {
					if (loaded) return;
					try {
						doc.documentElement.doScroll("left");
					} catch(e) {
						window.setTimeout(ieReadyFunc, 0);
						return;
					}
					readyFunc();
				};
				ieReadyFunc();
			}
		}
		this.add(win, 'load', readyFunc);
	}//LY.event.ready(function() {alert('test')});
};
/*
LY.each(LY.$$('a'), function(key,i){
	alert(key)
});
*/
LY.each = function(obj, fun){
	for (var i = 0, len = obj.length; i < len; i++) { fun(obj[i], i);}
};
LY.util = {
	getDocumentElement : function(doc) {
		doc = doc || document;
		return (doc.compatMode != "CSS1Compat") ? doc.body : doc.documentElement;
	},
	getDocumentHeight : function(doc) {
		var el = this.getDocumentElement(doc);
		return Math.max(el.scrollHeight, el.clientHeight);
	},
	getClientHeight : function(doc) {
		var el = this.getDocumentElement(doc);
		return Math.min(el.scrollHeight, el.clientHeight);
	},
	getDocumentWidth : function(doc) {
		var el = this.getDocumentElement(doc);
		return Math.max(el.scrollWidth, el.clientWidth);
	},	
	loadStyle : function(path) {
		var link = LY.$$$('link');
		link.setAttribute('type', 'text/css');
		link.setAttribute('rel', 'stylesheet');
		link.setAttribute('href', path);
		document.getElementsByTagName("head")[0].appendChild(link);
	},
	/*
	var arr = ['a','b','c'];
	alert(LY.util.inArray('a',arr));
	*/
	inArray : function(str, arr) {
		for (var i = 0; i < arr.length; i++) {if (str == arr[i]) return true;}
		return false;
	},
	trim : function(str) {
		return str.replace(/^\s+|\s+$/g, "");
	},	
	escape : function(html) {
		html = html.replace(/&/g, "&amp;");
		html = html.replace(/</g, "&lt;");
		html = html.replace(/>/g, "&gt;");
		html = html.replace(/\xA0/g, "&nbsp;");
		html = html.replace(/\x20/g, " ");
		return html;
	},
	getScrollPos : function() {
		var x, y;
		if (LY.browser.IE || LY.browser.OPERA) {
			var el = this.getDocumentElement();
			x = el.scrollLeft;
			y = el.scrollTop;
		} else {
			x = window.scrollX;
			y = window.scrollY;
		}
		return {x : x, y : y};
	},
	getElementPos : function(el) {
		var x = 0, y = 0;
		if (el.getBoundingClientRect) {
			var box = el.getBoundingClientRect();
			var el = this.getDocumentElement();
			var pos = this.getScrollPos();
			x = box.left + pos.x - el.clientLeft;
			y = box.top + pos.y - el.clientTop;
		} else {
            x = el.offsetLeft;
            y = el.offsetTop;
            var parent = el.offsetParent;
            while (parent) {
                x += parent.offsetLeft;
                y += parent.offsetTop;
                parent = parent.offsetParent;
            }
		}
		return {x : x, y : y};
	},
	getCoords : function(ev) {
		ev = ev || window.event;
		return {
			x : ev.clientX,
			y : ev.clientY
		};
	},
	setOpacity : function(el, opacity) {
		if (typeof el.style.opacity == "undefined") {
			el.style.filter = (opacity == 100) ? "" : "alpha(opacity=" + opacity + ")";
		} else {
			el.style.opacity = (opacity == 100) ? "" : "0." + opacity.toString();
		}
	},
	/*
	var hash = {
		src : "http://www.vswin.com",
		width : 400,
		height : 300
	};
	alert(LY.util.hashToStr(hash));
	*/
	hashToStr : function(hash) {
		var str = '';
		LY.each(hash, function(key, val) {
			str += key + ":'" + val + "',";
		});
		return str.length > 0 ? str.substr(0, str.length - 1) : '';
	},
	/*
	var str = "src:'http://www.vswin.com',width:'400',height:'300'";
	var obj = LY.util.strToHash(str);
	alert(obj.src);
	*/
	strToHash : function(str) {
		var hash = {};
		var re = /(\w+)\s*:\s*'([^']+)'/g;
		while (re.exec(str)) {
			hash[RegExp.$1] = RegExp.$2;			
		}
		return hash;
	}
};
/*HTMLElement in ie*/
var DOMElement = {
	extend: function(name,fn){
		if(!document.all)
			eval("HTMLElement.prototype." + name + " = fn");
		else{
			var _$ = LY.$;
			LY.$ = function(id){
				var _elem = _$(id);
				eval("_elem." + name + " = fn");
				return _elem;
			}
		}
	}
};
DOMElement.extend("prev",function(){
	var elem = this;
	do{
		elem = elem.previousSibling;
	}while(elem && elem.nodeType != 1);
	return elem;				  
})
DOMElement.extend("next",function(){
	var elem = this;
	do{
		elem = elem.nextSibling;
	}while(elem && elem.nodeType != 1);
	return elem;				  
})
DOMElement.extend("first",function(){
	var elem = this;
	elem = elem.firstChild;
	return elem && elem.nodeType != 1 ?	elem.nextSibling : elem;
	  
})
DOMElement.extend("last",function(){
	var elem = this;
	elem = elem.lastChild;
	return elem && elem.nodeType != 1 ?	elem.previousSibling : elem;
})
DOMElement.extend("parent",function(num){
	var elem = this;
	num = num || 1;
	for ( var i = 0; i < num; i++ )
		if ( elem != null ) elem = elem.parentNode;
	return elem;	  
})
/*
'beforeBegin','afterBegin','beforeEnd','afterEnd';//插入html内容的四种方式
LY.ajax.init({url:'a.html',id:'test',where:'afterBegin'});
LY.ajax.init({url:'a.html',id:'test',where:'beforeEnd',data:'user=username&pwd=password',func:LY.dialog,arg:['test']});
LY.ajax.init({url:'module/user_check.html',id:'test',funcResult:LY.reg.username});
LY.ajax.init({url:'dialog/invite.html',id:'test',func:LY.reg.username,arg:['test']});
*/
LY.ajax = {
	init:function(vars){
		var xmlHttp;
		xmlHttp = this.getXmlHttpObject();
		if (xmlHttp==null){ 
			alert ("您的浏览器不支持AJAX！"); 
			return; 
		}
		if(!vars.where&&!vars.funcResult&&!vars.Void){
			LY.loading.show(vars.id);
		}
		xmlHttp.onreadystatechange = function(){LY.ajax.stateChanged(vars,xmlHttp)};
		if(!vars.data){
			xmlHttp.open("GET",vars.url,true);
			xmlHttp.send(null);
		}else{
			xmlHttp.open("POST",vars.url,true);
			xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
			xmlHttp.send(vars.data);
		}
	},
	getXmlHttpObject:function(){
		var xmlHttp=null; 
		try { 
			// Firefox, Opera 8.0+, Safari 
			xmlHttp=new XMLHttpRequest(); 
		}catch (e) { 
			// Internet Explorer 
			try { 
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
			} catch (e){
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		}		
		return xmlHttp;
	},
	stateChanged:function(vars,xmlHttp){		
		if (xmlHttp.readyState==4) {
			if(xmlHttp.responseText == '1' || xmlHttp.responseText == '0'|| xmlHttp.responseText == '2'){
				vars.funcResult.apply(vars.funcObj,[vars.id,xmlHttp.responseText]);
			}else{
				if(vars.where){
					if(vars.id.tagName){
						vars.id.insertAdjacentHTML(vars.where,xmlHttp.responseText);
					}else{
						LY.$(vars.id).insertAdjacentHTML(vars.where,xmlHttp.responseText);					
					}
				}else{
					if(vars.id.tagName){
						vars.id.innerHTML = xmlHttp.responseText;
					}else{
				
						LY.$(vars.id).innerHTML = xmlHttp.responseText;
					}
				}
				var matchJs = xmlHttp.responseText.match(/<script[^>]*>([\s\S]*)<\/script>/);
				if (matchJs != null) {
					for (var i = 1; i <= matchJs.length; i++) {
						eval(matchJs[i]);
					}
				}
			}
			if(vars.func){
				vars.func.apply(vars.funcObj,vars.arg);
			}
		}
	}
};
LY.loadhtml = {
	init:function(vars,fun){
		var xmlHttp;
		xmlHttp = this.getXmlHttpObject();
		if (xmlHttp==null){ 
			alert ("您的浏览器不支持AJAX！"); 
			return; 
		}
		xmlHttp.onreadystatechange = function(){LY.loadhtml.stateChanged(vars,xmlHttp,fun)};
		if(!vars.data){
			xmlHttp.open("GET",vars.url,true);
			xmlHttp.send(null);
		}else{
			xmlHttp.open("POST",vars.url,true);
			xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
			xmlHttp.send(vars.data);
		}
	},
	getXmlHttpObject:function(){
		var xmlHttp=null; 
		try { 
			// Firefox, Opera 8.0+, Safari 
			xmlHttp=new XMLHttpRequest(); 
		}catch (e) { 
			// Internet Explorer 
			try { 
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
			} catch (e){
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		}		
		return xmlHttp;
	},
	stateChanged:function(vars,xmlHttp,fun){		
		if (xmlHttp.readyState==4) {			
			var matchJs = xmlHttp.responseText.match(/<script[^>]*>([\s\S]*)<\/script>/);
			if (matchJs != null) {
				for (var i = 1; i <= matchJs.length; i++) {
					eval(matchJs[i]);
				}
			}
			fun(xmlHttp.responseText);
		}
	}
};
LY.loading = {
	show:function(id){
		if(id.tagName){
			id.innerHTML = '<div style="text-align:center;padding:10px 0;"><img src="images/loading.gif" style="vertical-align:middle;" /> 数据加载中&hellip;</div>';
		}else{
			LY.$(id).innerHTML = '<div style="text-align:center;padding:10px 0;"><img src="images/loading.gif" style="vertical-align:middle;" /> 数据加载中&hellip;</div>';
		}
		//alert(id);
	}
};
LY.dialog = {
	vars:{id:'dialog',bgid:'dialogbg'},
	setPos:function(width){		
		var id = LY.$(this.vars.id);
		var bgid = LY.$(this.vars.bgid);
		LY.$('iframe').width = LY.util.getDocumentWidth()+'px';
		LY.$('iframe').height = LY.util.getDocumentHeight()+'px';
		bgid.style.width = LY.util.getDocumentWidth()+'px';
		bgid.style.height = LY.util.getDocumentHeight()+'px';
		bgid.style.display = 'block';
		id.style.display = 'block';		
		LY.util.setOpacity(bgid,50);
		id.style.width = width+'px';
		var scrollTop = document.body.scrollTop | document.documentElement.scrollTop;
		id.style.top = (scrollTop+(LY.util.getClientHeight()-id.offsetHeight)/2)+'px';
		id.style.left = (LY.util.getDocumentWidth()-width)/2+'px';		
	},
	show:function(url,width){		
		LY.ajax.init({url:url,id:'dialog-container',funcObj:LY.dialog,func:LY.dialog.setPos,arg:[width]});
	},
	cue:function(title,text,width){
		var cuehtml;		
		cuehtml = '<div class="dialog-title"><div class="dialog-close"><a href="javascript:LY.dialog.hide()"></a></div>'+title+'</div>';
		cuehtml += '<div class="dialog-content">';
		cuehtml += '<p style="padding-bottom:10px;text-align:center;">'+text+'</p>';
		cuehtml += '<p style="text-align:center;"><span class="input-button"><input name="" type="button" onclick="LY.dialog.hide()" value="确定" /></span></p>';
		cuehtml += '</div>';
		LY.$('dialog-container').innerHTML = cuehtml;
		LY.dialog.setPos(width);
	},
	confirm:function(title,text,width,func,url,id){
		var cuehtml;		
		cuehtml = '<div class="dialog-title"><div class="dialog-close"><a href="javascript:LY.dialog.hide()"></a></div>'+title+'</div>';
		cuehtml += '<div class="dialog-content">';
		cuehtml += '<p style="padding-bottom:10px;text-align:center;">'+text+'</p>';
		cuehtml += '<p style="text-align:center;"><span class="input-button" style="margin-right:5px;"><input name="" type="button" id="confirm" value="确定" /></span><span class="input-button-gray"><input name="" type="button" value="取消" onclick="LY.dialog.hide();" /></span></p>';
		cuehtml += '</div>';
		LY.$('dialog-container').innerHTML = cuehtml;
		LY.dialog.setPos(width);
		LY.$('confirm').onclick = function(){	
		window.location.reload(); 		
			func.apply(null,[url,id]);
			LY.dialog.hide();
			
		}
	},
	hide:function(){
		var id = LY.$(this.vars.id);
		var bgid = LY.$(this.vars.bgid);
		bgid.style.display = 'none';
		id.style.display = 'none';
	}
};
LY.delHtml = {
	init:function(id){
		if(id.tagName){
			id.outerHTML = '';
		}else{
			LY.$(id).outerHTML = '';
		}
	}
}
LY.cookie = {
	setCookie:function(name,value,days){
    	expDate = new Date();
		if(days){
			expDate.setTime(expDate.getTime() + days*24*60*60*1000);
		}else{
			expDate.setTime(expDate.getTime()+24*60*60*1000*365);
		}
		document.cookie = name+"="+escape(value)+";expires="+expDate.toGMTString();
	},
	getCookie:function(name) {
		var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
     	if(arr != null) return unescape(arr[2]); return null;
	},
	delCookie:function(name){
		this.setCookie(name,"",-1);
	}
};
/*
var test = new Array("", "a1_", "abcdef", "abcde123", "ads23%", "aA1B2^&2$asas");
for(var i in test){
	alert(test[i] + " 的密码强度为" + LY.passStrength.getStrength(test[i]));
}
*/
LY.passStrength = {
	getStrength:function(pass){
		if (pass == "") {
			return 0; 
		}else if (pass.length < 6){ 
        	return 1; 
    	}else{ 
        	return pass.match(/[a-z](?![^a-z]*[a-z])|[A-Z](?![^A-Z]*[A-Z])|\d(?![^\d]*\d)|[^a-zA-Z\d](?![a-zA-Z\d]*[^a-zA-Z\d])/g).length; 
		}  
	}
}
/*
淡入淡出
LY.eff.init({id:'dialog',type:'fade',b:0,c:100,t:0,d:50});
*/
LY.eff = {
	init:function(vars){		
		switch(vars.type){
			case 'fade':			
				LY.util.setOpacity(LY.$(vars.id),Math.ceil(Tween.Circ.easeOut(vars.t,vars.b,vars.c,vars.d)));
				break;
			case 'wipeleft':
				LY.$(vars.id).style.left = Math.ceil(Tween.Circ.easeOut(vars.t,vars.b,vars.c,vars.d));
				break;
			case 'wiperight':
				LY.$(vars.id).style.right = Math.ceil(Tween.Circ.easeOut(vars.t,vars.b,vars.c,vars.d));
				break;
			case 'wipetop':
				LY.$(vars.id).style.top = Math.ceil(Tween.Circ.easeOut(vars.t,vars.b,vars.c,vars.d));
				break;
			case 'wipebottom':
				LY.$(vars.id).style.bottom = Math.ceil(Tween.Circ.easeOut(vars.t,vars.b,vars.c,vars.d));
				break;
		}		
		if(vars.t<vars.d){ vars.t++; setTimeout(function(){LY.eff.init(vars)}, 10); }
	}
};
LY.menu = {
	show:function(id){
		LY.g.display_id = LY.$(id);
		LY.g.display_id.style.display = 'block';
	},
	hide:function(){
		document.body.onclick = function(){
			//alert(LY.g.display_id);
			if(LY.g.display_id){				
				LY.g.display_id.style.display = 'none';
			}
		}
	}
}
LY.display = {
	show:function(id){
		if(id.tagName){
			id.style.display = 'block';
		}else{
			LY.$(id).style.display = 'block';
		}
	},
	hide:function(id){
		if(id.tagName){
			id.style.display = 'none';
		}else{
			LY.$(id).style.display = 'none';
		}
	}
}
LY.channel = {
	select:function(id){
		LY.$('channel-name').innerHTML = LY.$(id).innerHTML;
	}
}
LY.tabs = {
	init:function(id,num){
		var tabsspan = LY.$(id).getElementsByTagName('div');
		LY.each(tabsspan,function(key,i){
			key.onclick = function(){				
				for(var i=0,len=tabsspan.length;i<len;i++){
					tabsspan[i].className = '';
				}
				this.className = 'tabs-sel';
			}			
		});
		if(num != null)
			tabsspan[num].className = 'tabs-sel';
	},
	to:function(id,num,id_con){
		var tabsspan = LY.$(id).getElementsByTagName('div');
		LY.each(tabsspan,function(key,i){
			key.onclick = function(){				
				for(var i=0,len=tabsspan.length;i<len;i++){
					tabsspan[i].i = i;
					tabsspan[i].className = '';
					LY.$(id_con+i).style.display = 'none';
				}
				this.className = 'tabs-sel';
				LY.$(id_con+this.i).style.display = 'block';
			}			
		});
		if(num != null)
			tabsspan[num].className = 'tabs-sel';
			LY.$(id_con+num).style.display = 'block';
	},
	tab:function(id,num,id_con){
		var tabsspan = LY.$(id).getElementsByTagName('a');
		LY.each(tabsspan,function(key,i){
			key.onclick = function(){				
				for(var i=0,len=tabsspan.length;i<len;i++){
					tabsspan[i].i = i;
					tabsspan[i].className = '';
					LY.$(id_con+i).style.display = 'none';
				}
				this.className = 'sel';
				LY.$(id_con+this.i).style.display = 'block';
			}			
		});
		if(num != null)
			tabsspan[num].className = 'sel';
			LY.$(id_con+num).style.display = 'block';
	}
}
LY.selchannel = {
	save:function(id){
		LY.cookie.setCookie('selchannel',id.value,365);
	},
	set:function(){
		if(LY.cookie.getCookie('selchannel')){
			var obj = LY.$('select-channel').getElementsByTagName('option');
			LY.each(obj,function(key,i){
				if(LY.cookie.getCookie('selchannel') == i){
					key.selected = 'selected';
				}
			});
		}
	}
};
LY.loginState = {
	save:function(){
		LY.cookie.setCookie('email',LY.$('email').value,365);
		LY.cookie.setCookie('pass',LY.$('pass').value,365);
		LY.cookie.setCookie('loginstate',LY.$('loginstate').checked,365);
	},
	set:function(){
		if(LY.cookie.getCookie('email')){
			LY.$('email').value = LY.cookie.getCookie('email');
		}
		if(LY.cookie.getCookie('pass')){
			LY.$('pass').value = LY.cookie.getCookie('pass');
		}
		if(LY.cookie.getCookie('loginstate') == 'true'){			
			LY.$('loginstate').checked = true;
		}else{
			LY.$('loginstate').checked = false;
		}
	}
}
LY.login = {
	submit:function(){
		LY.loginState.save();				
		if(LY.cookie.getCookie('loginstate') == 'true'){
			LY.$('form-login').submit();
		}
	},
	loginOut:function(){
		LY.cookie.delCookie('email');
		LY.cookie.delCookie('pass');
		LY.cookie.setCookie('loginstate','false',365);//清除记住状态	
	}
}
LY.reg = {
	vars:{email:false,pass:false,nick:false,realname:false,code:false},
	email:function(id){
		var id = LY.$(id);
		var id_cue = LY.$('reg-cue-0');
		var id_content = LY.$('reg-cue-text-0');
		id.onblur = function(){
			var expReg = new RegExp("^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$","i");
			if(this.value != ''){
				if(expReg.test(this.value)){
					LY.ajax.init({url:'module/email_check.aspx',data:'email='+this.value,id:'reg-cue-text-0',funcResult:LY.reg.emailCheck});
				}else{
					id_content.innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> Email格式有误，请重输！';
					id_cue.style.display = 'block';
					LY.reg.vars.email = false;
				}
			}
		}
		id.onfocus = function(){
			if(this.value == ''){				
				id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> <span class="font-color-vsred">重要</span>，请填<span class="font-color-vsred">有效邮箱地址</span>，以收邮件完成注册。';	
				id_cue.style.display = 'block';
			}
		}
	},
	emailCheck:function(id,arg){
		var id_cue = LY.$('reg-cue-0');
		var id_content = LY.$('reg-cue-text-0');
		if(arg == '1'){
			LY.$(id).innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
			id_cue.style.display = 'block';
			LY.reg.vars.email = true;
		}else if(arg == '0'){
			LY.$(id).innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 该Email已经注册成为竞体网账户！';
			id_cue.style.display = 'block';
		}
	},
	pass:function(id){
		var id = LY.$(id);
		var id_cue = LY.$('reg-cue-1');
		var id_content = LY.$('reg-cue-text-1');
		id.onblur = function(){
			var expReg = new RegExp(".{6,20}","i");
			if(this.value != ''){
				if(expReg.test(this.value)){
					if(this.value.length<=20){
						id_content.innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
						id_cue.style.display = 'block';
					}
				}else{
					id_content.innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 密码不足6位，请重输！';
					id_cue.style.display = 'block';
				}
				if(this.value == LY.$('pass_re').value && this.value != '' && LY.$('pass_re').value != '' && this.value.length >= 6){
					LY.$('reg-cue-text-2').innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
					LY.$('reg-cue-2').style.display = 'block';
					LY.reg.vars.pass = true;
				}else if(this.value != LY.$('pass_re').value && this.value != '' && LY.$('pass_re').value != ''){
					LY.$('reg-cue-text-2').innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 两次输入的密码不一样，请重输！';
					LY.$('reg-cue-2').style.display = 'block';
					LY.reg.vars.pass = false;
				}
			}
		}
		id.onfocus = function(){
			if(this.value == ''){				
				id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 密码由6-20个英文字母、数字或特殊字符组成。';	
				id_cue.style.display = 'block';
			}
		}
		LY.event.input(id,function(){
			var strength = LY.passStrength.getStrength(id.value);
			switch(strength){
				case 1:
					id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 密码强度：<div class="pass-strength" style="border:1px solid #860b00;"><div style="width:25%;background:#e51907;"></div></div><span class="font-color-vsred">差</span>';	
					id_cue.style.display = 'block';
					break;
				case 2:
					id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 密码强度：<div class="pass-strength" style="border:1px solid #6b2100;"><div style="width:50%;background:#e16934;"></div></div><span class="font-color-vsyellow">一般</span>';	
					id_cue.style.display = 'block';
					break;
				case 3:
					id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 密码强度：<div class="pass-strength" style="border:1px solid #002240;"><div style="width:75%;background:#004f94;"></div></div><span class="font-color-vsblue">强</span>';	
					id_cue.style.display = 'block';
					break;
				case 4:
					id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 密码强度：<div class="pass-strength" style="border:1px solid #003c00;"><div style="width:100%;background:#1c981d;"></div></div><span class="font-color-vsgreen">极佳</span>';	
					id_cue.style.display = 'block';
					break;
			}
			if(id.value.length>20){
				id_content.innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 密码最多20位，请重输！';
				id_cue.style.display = 'block';
			}
		});
		LY.$('pass_re').onblur = function(){
			if(this.value == LY.$('pass').value && this.value != '' && LY.$('pass').value != '' && this.value.length >= 6){
				LY.$('reg-cue-text-2').innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
				LY.$('reg-cue-2').style.display = 'block';
				LY.reg.vars.pass = true;
			}else if(this.value != LY.$('pass').value && this.value != '' && LY.$('pass').value != ''){
				LY.$('reg-cue-text-2').innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 两次输入的密码不一样，请重输！';
				LY.$('reg-cue-2').style.display = 'block';
				LY.reg.vars.pass = false;
			}
		}
	},
	nick:function(id){
		var id = LY.$(id);
		var id_cue = LY.$('reg-cue-3');
		var id_content = LY.$('reg-cue-text-3');
		id.onblur = function(){
			var expReg = new RegExp("^[^\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1,13}$|^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1,7}$","i");
			if(this.value != ''){
				if(expReg.test(this.value)){
					id_content.innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
					id_cue.style.display = 'block';
					LY.reg.vars.nick = true;
				}else{
					id_content.innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 昵称格式有误，请重输！';
					id_cue.style.display = 'block';
					LY.reg.vars.nick = false;
				}
			}
		}
		id.onfocus = function(){
			if(this.value == ''){				
				id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 昵称由1-14个英文字母、数字或特殊字符，或者1-7个中文字符组成。';	
				id_cue.style.display = 'block';
			}
		}
	},
	realname:function(id){
		var id = LY.$(id);
		var id_cue = LY.$('reg-cue-4');
		var id_content = LY.$('reg-cue-text-4');
		id.onblur = function(){
			var expReg = new RegExp("^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{2,4}$","i");
			if(this.value != ''){
				if(expReg.test(this.value)){
					id_content.innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
					id_cue.style.display = 'block';
					LY.reg.vars.realname = true;
				}else{
					id_content.innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 请填写您的真实姓名！';
					id_cue.style.display = 'block';
					LY.reg.vars.realname = false;
				}
			}
		}
		id.onfocus = function(){
			if(this.value == ''){				
				id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 请一定填写你的真实中文姓名，以方便朋友联络。';	
				id_cue.style.display = 'block';
			}
		}
	},
	code:function(id){
		var id = LY.$(id);
		var id_cue = LY.$('reg-cue-5');
		var id_content = LY.$('reg-cue-text-5');
		LY.event.input(id,function(){
			var expReg = new RegExp("^[A-Za-z0-9]{1,4}$","i");
			if(id.value != ''){
				if(expReg.test(id.value)){					
					if(id.value.length == 4){
						LY.ajax.init({url:'module/code_check.html?code='+id.value,id:'reg-cue-text-5',funcResult:LY.reg.codeCheck});
					}
				}else{
					id_content.innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 您输入图片上的4位验证码！';
					id_cue.style.display = 'block';
					LY.reg.vars.code = false;
				}
			}
		})
		id.onfocus = function(){
			if(this.value == ''){				
				id_content.innerHTML = '<img src="images/reg_arr.gif" width="7" height="11" /> 请输入您从图片上看到的4位验证码！';	
				id_cue.style.display = 'block';
			}
		}
	},
	codeCheck:function(id,arg){
		var id_cue = LY.$('reg-cue-5');
		var id_content = LY.$('reg-cue-text-5');
		if(arg == '1'){
			LY.$(id).innerHTML = '<img src="images/reg_suc.gif" width="14" height="11" />&nbsp;';
			id_cue.style.display = 'block';
			LY.reg.vars.code = true;
			
		}else if(arg == '0'){
			LY.$(id).innerHTML = '<img src="images/reg_err.gif" width="15" height="11" /> 您输入的验证码有误！';
			id_cue.style.display = 'block';
		}
	},
	changeCode:function(){
		LY.ajax.init({url:'module/change_code.html',id:'code-img'});	
	},
	regCheck:function(){
		var flag = true;
		if((this.vars.email&&this.vars.pass&&this.vars.nick&&this.vars.realname&&this.vars.code)&&(LY.$('gender0').checked == true||LY.$('gender1').checked == true)&&(LY.$('interest0').checked == true||LY.$('interest1').checked == true||LY.$('interest2').checked == true)&&LY.$('term').checked == true){
			flag = true;
		}else{
			LY.dialog.cue('注册提示','请确认您已填写完所有选项，并且格式正确！',350);
			flag = false;
		}
		return flag;
	}
}
LY.del = {	
	check:function(url,id){
		LY.ajax.init({url:url,id:id,funcObj:LY.del,funcResult:LY.del.del});
	},
	del:function(id,arg){
		if(arg == '1'){
			LY.delHtml.init(id);
		}else if(arg == '0'){
			LY.dialog.cue('删除失败','可能由于您的网络原因，无法删除，请重新删除！',350);
		}
	}
}
LY.follow = {
	init:function(id){
		var arr = LY.$(id).getElementsByTagName('li');
		LY.each(arr,function(key,i){
			key.onmouseover=function(){				
				this.getElementsByTagName('div')[0].style.display = 'inline-block';
			}
			key.onmouseout=function(){
				this.getElementsByTagName('div')[0].style.display = 'none';
			}
		})
	},
	operation:function(id,arg){
		if(arg == '1'){
			id.parentNode.parentNode.outerHTML = '';
		}
	},
	followme:function(id,arg){
		if(arg == '1'){
			LY.dialog.cue('关注别人','关注成功！',400);
		}
	}
}
//2010-3-22
//LY.guess = {
//	init:function(id){
//		if(LY.g.guessID){
//			LY.g.guessID.innerHTML = '';
//			LY.g.guessID.style.display='none';
//		}
//		if(LY.browser.IE && LY.browser.VERSION <8){
//			id.style.display='block';
//			id.style.border = '1px solid #f95208';
//		}else{
//			id.style.display='table-cell';
//			id.style.border = '1px solid #f95208';
//		}
//		LY.g.guessID = id;
//	}
//}
LY.guess = {
	init:function(id){
		if(LY.g.guessID){
			LY.g.guessID.innerHTML = '';
			LY.g.guessID.style.display='none';
			LY.$(LY.g.guessID).parent(1).prev().className = '';
		}
		if(LY.browser.IE && LY.browser.VERSION <8){
			id.style.display='block';
			id.style.border = '2px solid #3a73a8';
			id.style.borderTop = 'none';
			LY.$(id).parent(1).prev().className = 'guess-border';
			LY.$(id).parent(1).prev().first().className = 'guess-border-left';
			LY.$(id).parent(1).prev().last().className = 'guess-border-right';
		}else{
			id.style.display='table-cell';
			id.style.border = '2px solid #3a73a8';
			id.style.borderTop = 'none';
			LY.$(id).parent(1).prev().className = 'guess-border';
			LY.$(id).parent(1).prev().first().className = 'guess-border-left';
			LY.$(id).parent(1).prev().last().className = 'guess-border-right';
		}
		LY.g.guessID = id;
	}
}
LY.user = {
	selall:function(id){
		var allname = LY.$(id).getElementsByTagName('input');		
		for(var i=0,len=allname.length;i<len;i++){
			allname[i].checked = true;
		}
	},
	cancel:function(id){
		var allname = LY.$(id).getElementsByTagName('input');		
		for(var i=0,len=allname.length;i<len;i++){
			allname[i].checked = false;
		}
	},
	ok:function(id,userid){
		var allname = LY.$(id).getElementsByTagName('input');
		var arr = new Array();
		var user = new Array();
		for(var i=0,len=allname.length;i<len;i++){
			if(allname[i].checked == true)
			{
			var zz = allname[i].getAttribute("userid");
				arr.push(allname[i].value);
				user.push(zz);
				
			}
		}
		var HiddUser =document.getElementById("ctl00_MyBase_HiddUserID");
		LY.$(HiddUser).value = user;

		LY.$(userid).value = arr;
		for(var i=0,len=allname.length;i<len;i++){
			allname[i].checked = false;
		}
		LY.display.hide('user-select');
	}
}
LY.editorInsert = {
	insertHtml:function(id, html) {
		KE.util.focus(id);
		KE.util.selection(id);
		KE.util.insertHtml(id, html);
     }
}
LY.guessresult = {
	radio:function(name){
		var eachObj = document.getElementsByName(name);
		var guessSel;
		LY.each(eachObj,function(key,i){
			if(key.checked == true){
				guessSel = true;
				LY.ajax.init({url:'check/guess_result.html?value='+key.value,id:'',funcResult:LY.guessresult.result});
			}
		});
		if(guessSel != true)
			LY.dialog.cue('未选择竞猜结果','请先选择您的竞猜结果',400);
	},
	result:function(id,arg){
		if(arg == '1'){
			LY.dialog.cue('提交竞猜结果','您的竞猜结果已经提交',400);
		}else if(arg == '0'){
			LY.dialog.cue('提交竞猜结果','您已经参加过本场竞猜',400);
		}
	}
}

LY.JoinMsg={
    verifyMsg:function(groupid,userid)
    {
     if(LY.util.trim(LY.$('verifyMsg').value)!='')
       { 

         LY.ajax.init({url:'../dialog/JoinGroupVerify.aspx',data:'msg='+LY.$('verifyMsg').value+'&groupid='+groupid+'&userid='+userid,id:'verifyMsg',funcResult:ShowDialog});
         LY.$('verifyMsg').value='';
         
       }
       else
       { 
        alert('请输入加入理由');
       }
    }
}
LY.showall = {
	to:function(id,height){
		if(id.style.height != 'auto'){
			id.style.height = 'auto';
		}else{
			id.style.height = height + 'px';
		}
	}
}
/*LY.SetTdWidth.to(target,[20,1,23,3]);*/
LY.SetTdWidth = {
	to:function(target,tag,vars){
		if(LY.util.trim(LY.$(target).innerHTML) != ''){
			//alert(LY.$(target).innerHTML);
			var td_tag = LY.$(LY.$(target).first()).first().getElementsByTagName(tag);
			LY.each(td_tag,function(key,i){	
				if(vars[i] == ''){
					key.width = '';
				}else{
					key.width = vars[i];
					key.style.whiteSpace  = 'nowrap';
				}
			})
		}
	}
}
LY.scroll = {
	to:function(target,vars){
		var d=25,t=0;
		if(vars.left){
			function runleft(){
				if(vars.c == 450){
					//LY.$(target).scrollLeft = Math.ceil(Tween.Expo.easeOut(t,vars.b,vars.c,d));	
					LY.$(target).scrollLeft += 18;
				}else{
					LY.$(target).scrollLeft -= 18;
				}
				if(t<d){t++; setTimeout(runleft, 10);}
			}
			runleft();
		}		
	}
}
LY.event.ready(function() {
	window.onresize = function(){
		LY.menu.hide();
		LY.$('iframe').width = LY.util.getDocumentWidth()+'px';
		LY.$('iframe').height = LY.util.getDocumentHeight()+'px';
		LY.$('dialogbg').style.width = LY.util.getDocumentWidth()+'px';
		LY.$('dialogbg').style.height = LY.util.getDocumentHeight()+'px';
		LY.$('dialog').style.left = (LY.util.getDocumentWidth()-LY.$('dialog').offsetWidth)/2+'px';
	}
});