String.prototype.trim		=	function(){return this.replace(/(^[\s]*)|([\s]*$)/g,"");}
String.prototype.Tlength	=	function(){var arr=this.match(/[^\x00-\xff]/ig);return this.length+(arr==null?0:arr.length);}
String.prototype.count		=	function(search){if(typeof search=="string"){var matches=this.match(new RegExp(search.replace(new RegExp("(\\W)","g"),"\\$1"),"g"));}else{var matches=this.match(search);}return matches?matches.length:0;}
function trim(str)				{regExp1=/^ */;regExp2=/ *$/;return str.replace(regExp1,'').replace(regExp2,'');}
function getStrLength(aStr)		{nLen=aStr.length;outlen=nLen;for(var i=0;i<nLen;i++){if(aStr.charCodeAt(i)>127){outlen++;}}return outlen;}
function sel(frm)				{var i=0;for(i=0;i<frm.elements.length;i++){var e=frm.elements[i];e.checked=true;}}
function unsel(frm)				{var i=0;for(i=0;i<frm.elements.length;i++){var e=frm.elements[i];e.checked=!e.checked;}}

//window.onerror = function(){return false;}

var CNOA = {
	url: {
		domain  : 'cnoa.cn',
		site	: 'http://www.cnoa.cn'
	},
	isLogin: function(){
		var c = '';
		for (var v in CNOA.cookie.names){
			eval('c = CNOA.cookie.names[\''+v+'\'];');
			var vv = CNOA.cookie.get(c);
			if (typeof(vv) != 'string' || isNaN(vv) || vv == '' ) {
				return false;
			}else{
				return true;
			}
		}
		return true;
	},
	copyCode: function(inputId, noticeId){
		var _o = $(inputId);
		_o.select();
		if(CNOA.is_ie) {
			clipboardData.setData('Text',_o.value);
			showTips('地址复制成功', '1');
		} else {
			if(prompt("请复制网站地址:",_o.value) != null){
				showTips('地址复制成功', '1');
			}
		}
	},
	copyStr: function(str){
		if(CNOA.is_ie) {
			clipboardData.setData('Text',str);
			alert ("“"+str+"”\n已经复制到您的剪贴板中\n您可以使用Ctrl+V快捷键粘贴到需要的地方");
		} else {
			prompt("请复制网站地址:",str);
		}
	},
	getFrom: function(){
		var from = location.href.replace(/(.*)(url=.*)&?.*/i, '$1');

		if(encodeURIComponent){
			return encodeURIComponent(from);
		}
		if(escape){
			return escape(from);
		}
	},
	setErrorPic: function(obj, type){
		obj.onerror='';
		switch (type) {
			case "photo_75x75":
				obj.src = CNOA.url.img + "/default_photo_75x75.gif";
				break;
			case "photo_75x75_2":
				obj.src = CNOA.url.img + "/noCover128x96.png";
				break;
			case "face_224x168":
				obj.src = CNOA.url.img + "/face_224x168.jpg";
				break;
			case "face_50x50":
				obj.src = CNOA.url.img + "/face_50x50.jpg";
				break;
			case "blank":
				obj.src = CNOA.url.img + "/blank.gif";
				break;
			case "album_252x189":
				obj.src = CNOA.url.img + "/noCover252x189.png";
				break;
		}

	},
	makeUserFace: function(uid){
		var face = {
					small:CNOA.url.site+CNOA.url.face+"/"+(uid%2000)+"/"+uid+"/face_50x50.jpg",
					big:CNOA.url.site+CNOA.url.face+"/"+(uid%2000)+"/"+uid+"/face_224x168.jpg"
					};
		return face;
	},
	removeUBB: function(){
	},
	stopBubble: function(ev,callFunc){
		try{
			ev.cancelBubble = true;
		}catch (ex){
			ev.stopPropagation();
		}{typeof(callFunc) != 'undefined' ? callFunc() : '';}
	},
	toolTip: {
		sPop: null,
		popStyle: null,
		showPopupText: function(event) {
			if(event.srcElement) o = event.srcElement; else o = event.target;
			if(!o) {
				return;
			}
			MouseX = event.clientX;
			MouseY = event.clientY;
			if(o.alt != null && o.alt != '') {
				o.pop = o.alt;
				o.alt = '';
			}
			if(o.title != null && o.title != '') {
				o.pop = o.title;
				o.title = '';
			}
			var c = CNOA.toolTip;
			if(o.pop != c.sPop) {
				c.sPop = o.pop;
				if(c.sPop == null || c.sPop == '') {
					$('popLayer').style.visibility = "hidden";
				} else {
					c.popStyle = o.dyclass != null ? o.dyclass : 'cPopText';
					$('popLayer').style.visibility = "visible";
					c.showIt();
				}
			}
		},
		showIt: function() {
			var _o = $('popLayer');
			_o.className = CNOA.toolTip.popStyle;
			_o.innerHTML = CNOA.toolTip.sPop.replace(/<(.*)>/g,"&lt;$1&gt;").replace(/\n/g,"<br>");
			var popWidth = _o.clientWidth;
			var popHeight = _o.clientHeight;
			var popLeftAdjust = MouseX + 12 + popWidth > document.body.clientWidth ? -popWidth - 24 : 0;
			var popTopAdjust = MouseY + 12 + popHeight > document.body.clientHeight ? -popHeight - 24 : 0;
	
			_o.style.left = (MouseX + 12 + document.body.scrollLeft + popLeftAdjust) + 'px';
			_o.style.top = (MouseY + 12 + document.body.scrollTop + popTopAdjust) + 'px';
		}
	},
	cookie: {
		path  : '/',
		domain: 'cnoa.cn',
		pre: 'CNOA_',
		names: {
			uid		: 'CNOA_uid',
			uname	: 'CNOA_uname',
			upass	: 'CNOA_upass',
			unick	: 'CNOA_unick'
		},
		get: function(n){
			var oc = document.cookie;
			var v = "";
			var s = n + "=";
			var os= -1;
			var end;
			if (oc.length > 0) {
				os = oc.indexOf(s);
				if (os != -1) {
					os += s.length;
					end = oc.indexOf(";", os);
					
					if (end == -1){
						end = oc.length;
					}
					v = unescape(decodeURI(oc.substring(os,end)));
				}
			}
			return (v===''||v===null)?null:v;
		},
		set: function(n,value,seconds){
			var argv = arguments;
			var argc = arguments.length;
			var expires = (2 < argc) ? (new Date((new Date()).getTime() + argv[2]*1000)) : null;
			var path	= (3 < argc) ? argv[3] : CNOA.cookie.path;
			var domain	= (4 < argc) ? argv[4] : CNOA.cookie.domain;
			var secure	= (5 < argc) ? argv[5] : false;
			
			var cs  = n + "=" + encodeURI(value)
					+ ((expires == null) ? "" : ("; expires=" + expires.toGMTString()))
					+ ((path == null) ? "" : ("; path=" + path))
					+ ((domain == null) ? "" : ("; domain=" + domain))
					+ ((secure == true) ? "; secure" : "");
			document.cookie = cs;
		},
		del: function(n){
			var argv = arguments;
			var argc = arguments.length;
			var exp  = new Date((new Date()).getTime() - 3600);
			var path = (argc > 1) ? argv[1] : CNOA.cookie.path;
			var domain = (argc > 2) ? argv[2] : CNOA.cookie.domain;
			var secure = (argc > 3) ? argv[3] : false;
			switch(argc){
				case 1:
					CNOA.cookie.set(n,'',exp);
					return true;
					break;
				case 2:
					CNOA.cookie.set(n,'',exp, path);
					return true;
					break;
				case 3:
					CNOA.cookie.set(n,'',exp, path, domain);
					return true;
					break;
			}
		}
	},
	dispose: {
		trim: function(s){
			return s.replace(/^\s*|\s*$/g,'');
		},
		trimBlankLine: function(s){
			return s.replace(/(\n[\s|\t]*\r*\n)/g, '\n');
		},
		ltrim:function(s){
 			return s.replace(/(^\s*)/g,"");
		},
		rtrim:function(s){
 			return s.replace(/(\s*$)/g,"");
		},
		delClipBoardCN: function(){
			var str = window.clipboardData.getData("Text");
			var s = str.replace(/[^\x00-\xff]/g,'');
			window.clipboardData.setData("Text",s);
		},
		disableCN: function(){
			var o;
			for (var i = 0; i < arguments.length; i++) {
				o = arguments[i];
				if (typeof(o) == 'string'){ o = $(o); }
				Element.setStyle(o,{imeMode:"disabled"});
				Event.observe( o, "beforepaste", CNOA.dispose.delClipBoardCN, false );
			}
		},
		transHTML: function(s){
			//s = s.replace(/&/g,"&amp;");
			s = s.replace(/</g,"&#60;");
			s = s.replace(/>/g,"&#62;");
			//s = s.replace(/ /g,"&nbsp;");
			s = s.replace(/\n/g,"<br/>");
			return s;
		},
		htmlDecode: function(s){
			if(s == null){return s;}
			return s.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");
		},
		HtmlEncode: function(s){
			if(s == null){return s;}
			return s.replace(/</g,"&lt;").replace(/>/g,"&gt;");
			//	return s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
		},
		replaceAll: function(Str, Src, NewStr){
			if(!Str || Str.length == 0) return "";
			return Str.split(Src).join(NewStr);
			var Buf = Str;
			if (Src.length == 0) return Buf;
			var Idx = Buf.indexOf(Src);
			while (Idx >= 0){
				Buf = Buf.substring(0, Idx) + NewStr + Buf.substr(Idx + Src.length);
				Idx = Buf.indexOf(Src, Idx + NewStr.length);
			}
			return Buf;
		},
		getLength: function(str){
			var templen = str.length;
			//if(navigator.appName == 'Netscape'){return templen;}
			for (var i = 0; i < str.length; i++) {
				var rstr = escape(str.substring(i,i+1));
				if (rstr.substring(0,2) == "%u"){ templen++; }
			}
			return templen;
		},
		sub_str: function(str,len,place){
			if(str.replace(/[^\x00-\xff]/gi,'xx').length <= len) return str;
			if(place=='left'){
				var temp_len=len;
				str=str.substr(0,len);
				while(str.replace(/[^\x00-\xff]/gi,'xx').length > len){
					str=str.substr(0,--temp_len);
				}
			}
			if(place=='right'){
				var temp_startn=0;
				str=str.substr(str.length-len,len);
				while(str.replace(/[^\x00-\xff]/gi,'xx').length>len){
					str=str.substr(1,len);
				}
			}
			return str;
		}
	},
	check: {
		isEmpty: function(s){
			return CNOA.dispose.trim(s).length == 0;
		},
		isNumber: function(s){
			return !isNaN(s);
		},
		isDouble: function(s){
			return (/^[-\+]?\d+(\.\d+)?$/).test(CNOA.dispose.trim(s));
		},
		isInteger: function(s){
			return (/^[-\+]?\d+$/).test(CNOA.dispose.trim(s));
		},
		isEnglish: function(s){
			return (/^[A-Za-z]+$/).test(CNOA.dispose.trim(s));
		},
		isChinese: function(s){
			return (/^[\u0391-\uFFE5]+$/).test(CNOA.dispose.trim(s));
		},
		isDoubleChar: function(s){
			return (/^[^\x00-\xff]+$/).test(CNOA.dispose.trim(s));
		},
		isDate: function(s){
			return (/^\d{4}|\d{2}-\d{1,2}-\d{1,2}$/).test(CNOA.dispose.trim(s));
		},
		isQQ: function(s){
			return (/^[1-9]\d{4,11}$/).test(CNOA.dispose.trim(s));
		},
		isEmail: function(s){
			return (/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.){1,4}[a-z]{2,4}$/i).test( CNOA.dispose.trim(s) );
		},
		isMobile: function(s){
			return (/^1[3|4|5|8][0-9]\d{8,8}$/i).test(CNOA.dispose.trim(s));
		},
		isPhone: function(s){
			return (/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/).test(CNOA.dispose.trim(s));
		},
		isZip: function(s){
			return (/^[1-9]\d{5}$/).test(CNOA.dispose.trim(s));
		},
		isCard: function(s){
			var aCity="11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91,";
			var iSum=0;
			var info="";
			var sId="";
			if (s.length==15){
				sId=s.substr(0,6)+"19"+s.substr(6,9)+"0";
			}else if (s.length==18){
				sId=s;
			}else{
				return false;
			}
	
			xb=Number(sId.substr(16,1))%2;
	
			if(!/^\d{17}(\d|x)$/i.test(sId)){return false;}
			sId=sId.replace(/x$/i,"a");
			if(aCity.indexOf(sId.substr(0,2))==-1){return false;}
			sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
			var d=new Date(sBirthday.replace(/-/g,"/"));
			if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())){
				return false;
			}
			if (s.length==18) {
				for(var i = 17;i>=0;i --){
					iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
				}
				if(iSum%11!=1) {return false;}
			}
			return true;
		},
		isURL: function(s){
			return (/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/).test(CNOA.dispose.trim(s).toLowerCase());
		},
		isTag: function(s){
			return !(/[-\~!@#\$%\^&\*\,\.\(\)\[\]\{\}<>\?\\\/\'\"\|《》\、\，\。\‘\’\“\”\？\￥\……\！]/i).test(s);
		},
		isColor: function(s){
			if (CNOA.dispose.trim(s).length != 7) return false;
			return CNOA.dispose.trim(s).search(/\#[a-fA-F0-9]{6}/) != -1;
		},
		isRubbish: function(s){
			return (/[\w-\~!@#\$%\^&\*\,\.\(\)\[\]\{\}<>\?\\\/\'\"\|]{65,}/i).test(s)
		},
		hasInvalidateVCodeChar: function(s){
			return (/[^a-zA-Z0-9]+$/).test(s);
		},
		hasChineseChar: function(s){
			return (/[^\x00-\xff]/).test(s);
		},
		hasAvailableChar: function(s){
			return (/^[a-zA-Z0-9_-]{0,}$/).test(s);
		},
		hasUnAvailableChar: function(s){
			return (/[^a-zA-Z0-9_-]/i).test(CNOA.dispose.trim(s).toLowerCase());
		},
		hasUnAvailableChar2: function(s){
			return (/[^\u0391-\uFFE5a-zA-Z0-9_-]/i).test(CNOA.dispose.trim(s).toLowerCase());
		},
		limitLen: function(s,Min,Max){
			var ss = s.Tlength();
			if( ss < Min || ss > Max ){
				return false;
			}else{
				return true;
			}
		}
	}
};

function tooltip(){	
	/* CONFIG */		
		xOffset = 10;
		yOffset = 20;		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
	/* END CONFIG */
	$("a,input").hover(
		function(e){
			if(this.title != '' && this.title != undefined){
				this.t = this.title;
				this.title = "";
				$("body").append("<p id='tooltip'>"+ this.t +"</p>");
				$("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px").fadeIn("fast");
			}
			
		},
		function(){
			if(this.t != '' && this.t != undefined){
				this.title = this.t;		
				$("#tooltip").remove();
			}
		}
	);	
	$("a,input").mousemove(function(e){
		$("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px");
	});
	$("img").hover(
		function(e){
			if(this.alt != '' && this.alt != undefined){
				this.t = this.alt;
				this.alt = "";
				$("body").append("<p id='tooltip'>"+ this.t +"</p>");
				$("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px").fadeIn("fast");
			}
			
		},
		function(){
			if(this.t != '' && this.t != undefined){
				this.alt = this.t;		
				$("#tooltip").remove();
			}
		}
	);	
	$("img").mousemove(function(e){
		$("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px");
	});	
};

$(document).ready(function(){
	tooltip();
});
