亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? clientengine.js

?? charset : UTF-8 支援IE, Firefox等瀏覽器
?? JS
字號:
/* * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */function Lace() {	this.init();}Lace.prototype.init = function() {	this.interval   = 0;	this.defaultInterval = LaceConfig.interval * 1000; // Default interval if IntervalManager is not present	this.url        = LaceConfig.url + 'lace.php';	this.nameObj    = $('name');	this.textObj    = $('text');	this.laceDomRef = $('laceoutput');	// Javascript has scope issues with using 'this'	// inside of an anonymous function, so we use a	// copy of 'this' (thisObj)	var thisObj = this;	//Inititalize Interval Manager if present	if (window.IntervalManager) {		this.intManObj = new IntervalManager();	}	this.textObj.setAttribute('autocomplete', 'off');	this.textObj.focus();	// Used for detecting updates	this.chatHash = 'default hash';	this.userHash = 'default hash';	this.userList = [];	// Setup the internal name change monitor	this.name = encodeURIComponent(this.nameObj.value);	this.nameObj.onblur = function() { thisObj.validateName(); };	// Lace state and timer properties	this.isActive = false;	this.interval = false;	this.httpSendObj = this.httpObject();	this.httpGetObj  = this.httpObject();	// Start Lace if XMLHttpRequest is present.  Also, we need	// to use encodeURIComponent.  Sorry IE5.0...	if (this.httpSendObj !== false && window.encodeURIComponent) {		$('laceform').onsubmit = function() {thisObj.send(); return false;};		this.statusDisplay();		this.start();	}};Lace.prototype.validateName = function() { 	name = this.nameObj.value;	// ARGH!  Could not get Regex working in Safari... 	if ( name.indexOf('!') !== -1 		|| name.indexOf('#') !== -1 		|| name.indexOf('%') !== -1 		|| name.indexOf('&') !== -1 		|| name.indexOf('*') !== -1 		|| name.indexOf('+') !== -1 		|| name.indexOf('|') !== -1 		|| name.indexOf('<') !== -1 		|| name.indexOf('>') !== -1 	) {		var error = 'Sorry, your name contains one or more of the following'+			' illegal characters:\n\n! # % & * + | < > \n\n' +			'Please remove them and try again.';		alert(error);		this.nameObj.value = decodeURIComponent(this.name);		return false;  }	name = encodeURIComponent(name);	if (name == this.name)		return true;	var searchName = this.nameObj.value.trim();	var nameExists = this.userList.linearSearchI(searchName);	if (nameExists) { 		alert('Sorry, another user has that name.\n\nPlease choose a different name.'); 		this.nameObj.value = decodeURIComponent(this.name); 		return false; 	}};Lace.prototype.disableInputs = function() {	this.textObj.disabled = true;	this.nameObj.disabled = true;	$('say').disabled = true;};Lace.prototype.enableInputs = function() {	this.textObj.disabled = false;	this.nameObj.disabled = false;	$('say').disabled = false;	this.resetInputs();};Lace.prototype.resetInputs = function() {	// Clear field value - even in Safari	this.textObj.blur();	this.textObj.value='';	this.textObj.focus();};Lace.prototype.floodCountdown = function(s) {	if (s == 0) {		deleteCookie(LaceConfig.floodCookie, LaceConfig.url);		this.enableInputs();		this.textObj.value = this.floodText;		delete this.floodText;		if (this.isActive)			this.send();		return;	}	this.disableInputs();	this.textObj.value = 'Flood Protection: Your message will be sent in ' + s + ' seconds.';	var thisObj = this;	setTimeout(function() {thisObj.floodCountdown(--s); }, 1000);};Lace.prototype.isNameChange = function(name) {	msgTokens = name.split(' ');	if (msgTokens[0].toLowerCase() === '/nick')	{		msgTokens.shift();		this.nameObj.value = msgTokens.join(' ').substring(0,10);		this.resetInputs();		return true;	}	return false;}Lace.prototype.send = function() {	var thisObj = this;	if (this.isNameChange(this.textObj.value) === true)		return;	if (this.textObj.value.indexOf("undefined") === 0 ||	  this.textObj.value.indexOf("Flood Protection: Your message will be sent in") === 0) {		resetInputs();		return;	}	var name = encodeURIComponent(this.nameObj.value);	var text = encodeURIComponent(this.textObj.value);	// No flooding	var floodCookie = getCookie(LaceConfig.floodCookie);	if (floodCookie !== null && floodCookie >= LaceConfig.floodCount) {		this.floodText = this.textObj.value;		this.resetInputs();		this.floodCountdown(10);		return;	}	if (name !== '' && text !== '') {		if (this.httpSendObj === null)			this.start();		if (this.httpSendObj.readyState === 4 || this.httpSendObj.readyState === 0) {			this.name = name;			this.resetInputs();			var param = 'name=' + name + '&text=' + text;			param += '&chatHash=' + encodeURIComponent(this.chatHash);			param += '&userHash=' + encodeURIComponent(this.userHash);			this.httpSendObj.open('POST', this.url, true);			this.httpSendObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');			this.httpSendObj.onreadystatechange = function() { thisObj.handleSend(); };			this.httpSendObj.send(param);		}else {			setTimeout(function() { thisObj.send(); }, 250);		}	}};Lace.prototype.handleSend = function() {	if (this.isActive && this.httpSendObj !== null && this.httpSendObj.readyState === 4) {		this.timerReset();		var response = this.httpSendObj.responseText;		this.handleResponse(response);		scrollToBottom($('main'), true);	}};Lace.prototype.get = function(system) {	var thisObj = this;	if (this.httpGetObj !== null && (this.httpGetObj.readyState === 4 || this.httpGetObj.readyState === 0)) {		var param = 'chatHash=' + encodeURIComponent(this.chatHash);		param += '&userHash=' + encodeURIComponent(this.userHash);		this.httpGetObj.open('POST', this.url, true);		this.httpGetObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');		this.httpGetObj.onreadystatechange = function() { thisObj.handleGet(system); };		this.httpGetObj.send(param);	} else {		setTimeout(function() { thisObj.get(); }, 500);	}};Lace.prototype.handleGet = function(system) {	if (this.httpGetObj !== null && this.httpGetObj.readyState === 4) {		this.timerStep(system);		var response = this.httpGetObj.responseText;		this.handleResponse(response);		scrollToBottom($('main'));	}};Lace.prototype.handleResponse = function(response) {	// Very useful for debugging	//alert(response);	if (response !== null && typeof(response) != "undefined") {		//response = '('+response+')';		var json = eval( '('+response+')' );		this.insertResults(json.response);	}};Lace.prototype.insertResults = function(json) {	if (json.chat.hash) {		this.chatHash = json.chat.hash;		this.laceDomRef.innerHTML = json.chat.data;	}	if (json.user.hash) {		this.userHash = json.user.hash;		this.userList = json.user.data;		var ul = $('userlist');		while (ul.hasChildNodes()) ul.removeChild(ul.firstChild);		for (var i=0; i<json.user.data.length; i++)		{			var name = json.user.data[i];			if (name !== null && typeof(name) != "undefined") {				var li = document.createElement('li');		  		li.appendChild(document.createTextNode(name));		  		ul.appendChild(li);			}		}	}};Lace.prototype.start = function() {	this.setActive(true);	this.timerStart();};Lace.prototype.stop = function() {	if (this.timerStop() === true) {		this.setActive(false);	}};Lace.prototype.toggle = function() {	if (this.isActive === false) {		this.start();	} else {		this.stop();	}};/* Lace's timer functions. * These functions should be better * abstracted into the IntervalManager. */Lace.prototype.timerStart = function() {	if (this.isActive === false) {		return false;	}	if (this.intManObj) {		var interval = this.intManObj.reset();		this.timerSet(interval);		return true;	} else {		this.timerSet(this.defaultInterval);	}	return false;};Lace.prototype.timerStop = function() {	if (this.isActive === false) {		return true;	}	if (this.intManObj) {		clearInterval(this.timerID);		this.interval = false;	}	return true;};Lace.prototype.timerSet = function(interval) {	if (this.isActive === false) {		return false;	}	this.interval = interval;	var thisObj = this;	clearInterval(this.timerID);	this.timerID = setInterval(function() { thisObj.get(true); }, interval);	return true;};Lace.prototype.timerReset = function() {	if (this.isActive === false) {		return false;	}	if (this.intManObj) {		var interval = this.intManObj.reset();		return this.timerSet(interval);	}	this.timerStart();	return false;};Lace.prototype.timerStep = function(system) {	if (this.isActive === false) {		if (system !== true) {			return this.start();		}		return false;	}	if (this.intManObj) {		var interval = this.intManObj.step();		if (interval !== false) {			return this.timerSet(interval);		}		return this.stop();	}	return false;};Lace.prototype.httpObject = function() {	var xmlhttp = false;	/*@cc_on	@if (@_jscript_version >= 5)	try {		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");	} catch (e) {		try {			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");		} catch (E) {			xmlhttp = false;		}	}	@else	xmlhttp = false;	@end @*/	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {	    try {	    	xmlhttp = new XMLHttpRequest();	    } catch (e) {	    	xmlhttp = false;	    }	}	return xmlhttp;};Lace.prototype.setActive = function(active) {	var img  = $('statusimage');	var text = $('statustext');	var main = $('main');	var userList = $('userlist');	if (active === true) {		img.setAttribute('src', LaceConfig.url + 'images/pause.gif');		img.setAttribute('alt', 'Stop');		img.setAttribute('title', 'Click to stop');		this.isActive  = true;		text.innerHTML = 'Active';		main.setAttribute('class', 'active');		main.setAttribute('className', 'active');		userList.setAttribute('class', 'active');		userList.setAttribute('className', 'active');		this.httpGetObj  = this.httpObject();		this.httpSendObj = this.httpObject();		this.get();	} else if (active === false) {		img.setAttribute('src', LaceConfig.url + 'images/play.gif');		img.setAttribute('alt', 'Start');		img.setAttribute('title', 'Click to start');		this.httpGetObj  = null;		this.httpSendObj = null;		this.isActive = false;		text.innerHTML  = 'Stopped';		main.setAttribute('class', 'inactive');		main.setAttribute('className', 'inactive');		userList.setAttribute('class', 'inactive');		userList.setAttribute('className', 'inactive');		clearInterval(this.timerID);	}};Lace.prototype.statusDisplay = function() {	var outer = document.createElement('div');	outer.setAttribute('id', 'status');	var div = document.createElement('div');	div.setAttribute('id', 'statuswrap');	var txt = document.createElement('span');	txt.setAttribute('id', 'statustext');	var img = document.createElement('img');	img.setAttribute('width', '13');	img.setAttribute('height', '13');	img.setAttribute('id', 'statusimage');	var thisObj = this;	img.onclick = function() {		if (thisObj.isActive === true) {			thisObj.stop();		} else {			thisObj.start();		}	};	div.appendChild(txt);	div.appendChild(img);	outer.appendChild(div);	var parent = $('subnav');	parent.appendChild(outer);};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆高清视频| 欧美刺激午夜性久久久久久久| caoporn国产精品| 欧美日本不卡视频| ...xxx性欧美| 国产成人精品一区二区三区四区| 一本色道a无线码一区v| 久久亚洲捆绑美女| 美女视频一区在线观看| 在线日韩一区二区| 国产精品白丝在线| 九色综合国产一区二区三区| 在线国产亚洲欧美| 国产精品欧美极品| 国产一区二区三区日韩| 91精品国产综合久久精品性色| 亚洲图片你懂的| 成人性视频免费网站| 国产亚洲欧美日韩俺去了| 麻豆极品一区二区三区| 欧美精品在线一区二区三区| 亚洲黄色免费电影| 99精品国产热久久91蜜凸| 国产精品无人区| www.色综合.com| 中文字幕 久热精品 视频在线| 国产毛片精品视频| 久久久亚洲午夜电影| 久久99精品国产麻豆婷婷| 日韩一级精品视频在线观看| 天天操天天综合网| 欧美剧情片在线观看| 婷婷综合久久一区二区三区| 欧美日韩一区二区三区高清| 亚洲欧美一区二区久久| 91蝌蚪porny成人天涯| 亚洲欧美日韩国产中文在线| 91色婷婷久久久久合中文| 亚洲欧美日韩综合aⅴ视频| 色婷婷综合五月| 亚洲国产综合人成综合网站| 欧美日韩中文一区| 午夜欧美2019年伦理| 欧美精品粉嫩高潮一区二区| 国产福利一区在线观看| 国产日韩一级二级三级| 成人av在线播放网址| 亚洲三级久久久| 欧美日韩一区视频| 美女一区二区三区| 国产精品入口麻豆原神| 日本电影欧美片| 婷婷激情综合网| 久久综合视频网| hitomi一区二区三区精品| 亚洲另类在线制服丝袜| 欧美精品tushy高清| 国产在线视视频有精品| 国产精品嫩草久久久久| 欧美三级视频在线观看| 久久66热偷产精品| 中文字幕五月欧美| 欧美一区二区三区四区视频| 国产一区二区在线影院| 亚洲日本在线看| 欧美一区二区在线观看| 粉嫩蜜臀av国产精品网站| 亚洲黄色小说网站| 久久久影视传媒| 欧美性视频一区二区三区| 精品一区二区久久久| 一区二区三区日韩欧美| 欧美精品一区二区久久婷婷| 91在线看国产| 国内精品国产三级国产a久久| 最新国产成人在线观看| 日韩视频不卡中文| 91在线播放网址| 国内精品国产成人国产三级粉色 | 亚洲午夜精品久久久久久久久| 5858s免费视频成人| 成人avav在线| 国内精品久久久久影院薰衣草| 亚洲综合男人的天堂| 久久久精品tv| 91精品蜜臀在线一区尤物| 91蜜桃婷婷狠狠久久综合9色| 久久99精品国产麻豆婷婷| 亚洲狠狠爱一区二区三区| 国产精品免费丝袜| 久久久久成人黄色影片| 欧美一级国产精品| 在线观看国产日韩| www.爱久久.com| 国产剧情一区在线| 日av在线不卡| 肉丝袜脚交视频一区二区| 亚洲精品日韩专区silk| 国产精品乱人伦| 久久久久久久久久久99999| 日韩一区二区在线观看| 欧美性大战xxxxx久久久| 91在线精品秘密一区二区| 高清成人在线观看| 国产成人在线电影| 国产精品88888| 国产一区二区0| 国精产品一区一区三区mba视频 | 久久九九国产精品| 欧美成人a∨高清免费观看| 欧美日韩国产小视频在线观看| 91香蕉视频污在线| 91视频www| 在线视频国产一区| 欧美视频自拍偷拍| 欧美日韩国产一二三| 欧美精品自拍偷拍动漫精品| 欧美精品粉嫩高潮一区二区| 欧美妇女性影城| 日韩欧美一区二区久久婷婷| 欧美一区二区久久久| 精品久久久久久久久久久院品网| 日韩视频免费观看高清完整版 | 亚洲va中文字幕| 视频一区欧美精品| 日本少妇一区二区| 日韩国产欧美在线播放| 美国十次综合导航| 国产福利精品导航| 94-欧美-setu| 欧美日韩电影一区| 欧美不卡一二三| 国产拍揄自揄精品视频麻豆| 欧美韩国日本不卡| 亚洲美女在线一区| 天堂精品中文字幕在线| 久久99精品国产麻豆婷婷| 国产91精品精华液一区二区三区| 成人在线视频首页| 欧美在线观看视频一区二区三区| 欧美日韩一区二区在线观看视频| 91麻豆精品国产91久久久使用方法| 欧美成人性福生活免费看| 国产日韩精品一区| 亚洲自拍与偷拍| 久国产精品韩国三级视频| 成人av动漫在线| 欧美精品乱人伦久久久久久| 国产午夜精品一区二区三区嫩草| 亚洲人精品午夜| 老司机免费视频一区二区| 成人avav影音| 欧美一区二区三区在线观看| 中文字幕 久热精品 视频在线| 亚洲高清免费观看高清完整版在线观看| 奇米色一区二区| 99久久精品国产一区二区三区| 51久久夜色精品国产麻豆| 欧美激情在线一区二区三区| 亚洲地区一二三色| 国产成人av电影在线| 制服.丝袜.亚洲.中文.综合| 国产精品日日摸夜夜摸av| 欧美aaa在线| 一本大道av一区二区在线播放| 日韩欧美国产一区二区在线播放| 亚洲欧美另类小说| 国产一区二区福利| 欧美高清激情brazzers| 亚洲欧美日韩系列| 国产精品自在欧美一区| 欧美情侣在线播放| 亚洲欧美日韩国产另类专区| 国产成人综合精品三级| 91精品国产免费久久综合| 亚洲视频香蕉人妖| 成人午夜电影小说| 精品国产凹凸成av人导航| 午夜精品久久久久久久久久| 91麻豆国产香蕉久久精品| 国产日韩精品一区二区三区| 毛片av一区二区| 欧美日韩国产小视频在线观看| 亚洲猫色日本管| 东方欧美亚洲色图在线| 欧美精品一区二区三区在线| 日本强好片久久久久久aaa| 欧美三级一区二区| 亚洲一区二区黄色| 在线观看成人免费视频| 日韩码欧中文字| 色综合久久综合网欧美综合网| 国产精品美女久久久久av爽李琼 | 成人av在线资源| 国产精品丝袜91| 盗摄精品av一区二区三区| 欧美国产精品中文字幕| 国产大片一区二区| 国产免费成人在线视频| 成人夜色视频网站在线观看|