var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera') != -1);
var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
var isCustomer = false;
var __methodLoginComplete;

if (!isIE) {
	HTMLElement.prototype.__defineGetter__("innerText", function() { var anyString = ""; var childS = this.childNodes; for (var i = 0; i < childS.length; i++) { if (childS[i].nodeType == 1) anyString += childS[i].tagName == "BR" ? '\n' : childS[i].innerText; else if (childS[i].nodeType == 3) anyString += childS[i].nodeValue; } return anyString; });
	HTMLElement.prototype.__defineSetter__("innerText", function(sText) { this.textContent = sText; });
	HTMLElement.prototype.click = function() {
		var evt = document.createEvent("MouseEvents");
		evt.initEvent("click", true, true);
		this.dispatchEvent(evt);
	}
}

var winForm = {
	clientWidth: function() { return document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth; },
	clientHeight: function() { return document.documentElement.clientHeight > 0 ? document.documentElement.clientHeight : document.body.clientHeight; },
	scrollTop: function() { return document.documentElement.scrollTop > 0 ? document.documentElement.scrollTop : document.body.scrollTop; },
	scrollLeft: function() { return document.documentElement.scrollLeft > 0 ? document.documentElement.scrollLeft : document.body.scrollLeft; }
}

function siblingPrevious(ele) {
	if (ele == null || typeof ele.previousSibling == 'undefined') return null;
	while (ele.previousSibling != null && ele.previousSibling.nodeType != 1) ele = ele.previousSibling;
	return ele.previousSibling;
}
function siblingNext(ele) {
	if (ele == null || typeof ele.nextSibling == 'undefined') return null;
	while (ele.nextSibling != null && ele.nextSibling.nodeType != 1) ele = ele.nextSibling;
	return ele.nextSibling;
}

function winOpen(url, w, h, n) {
	return window.open(url, (typeof n == 'undefined' ? '' : n), 'height=' + h + ',width=' + w + ',left=' + (window.screen.width - w) / 2 + ',top=' + (window.screen.height - h) / 2 + ',resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,status=no');
}
//添加页面加载事件。
function winloadEventAdd(func) {
	var oldfunc = window.onload;
	if (typeof window.onload != 'function') window.onload = func;
	else { window.onload = function() { oldfunc(); func(); } }
}

//动态脚本执行。
function scriptExecute(script) {
	if (script.trim() == '') return null;
	return eval(script);
}

//字符串重写。
String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, '');
}
String.prototype.leftb = function(n) {
	var r = /[^\x00-\xff]/g;
	if (this.replace(r, '  ').length <= n) return this;
	n = n - 3;
	var m = Math.floor(n / 2);
	for (var i = m; i < this.length; i++) if (this.substr(0, i).replace(r, '  ').length >= n) return this.substr(0, i) + '..';
	return this;
}

function Escape(s) { return escape(s).replace(/\+/g, '%2b'); }

//document.getElementById。
function $(element) {
	return document.getElementById(element);
}

//获取对象的绝对高度。
function $H(element) {
	var e;
	if (typeof element == 'string') e = $(element);
	else e = element;
	if (!e) return 0;
	var rect = e.getBoundingClientRect();
	return rect.bottom - rect.top;
}
//获取对象的绝对宽度。
function $W(element) {
	var e;
	if (typeof element == 'string') e = $(element);
	else e = element;
	if (!e) return 0;
	var rect = e.getBoundingClientRect();
	return rect.right - rect.left;
}

function getCookie(name) {
	var tmp, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)', 'gi');
	if (tmp = reg.exec(document.cookie)) return unescape((tmp[2]));
	return null;
}

function setCookie(name, value, days) {
	if (days) {
		var exp = new Date();
		exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
		document.cookie = name + '=' + escape(value) + ';path=/;expires=' + exp.toGMTString();
	} else document.cookie = name + '=' + escape(value) + ';path=/;';
}

function delCookie(name) {
	var c = getCookie(name);
	if (c == null) return;
	var exp = new Date();
	exp.setTime(exp.getTime() - 1);
	document.cookie = name + '=' + escape(c) + ';path=/;expires=' + exp.toGMTString();
}


//创建xmlHttpRequest对象。
function xmlhttpCreate() {
	if (window.XMLHttpRequest) return new XMLHttpRequest();
	try { return new ActiveXObject('MSXML2.XMLHTTP.4.0'); } catch (e) { try { return new ActiveXObject('MSXML2.XMLHTTP.3.0'); } catch (e) { try { return new ActiveXObject('MSXML2.XMLHTTP.2.6'); } catch (e) { try { return new ActiveXObject('MSXML2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } } } }
}

//动态请求地址，并返回输出结果。
function xmlhttpPost(url, callback, content) {
	var xhp = xmlhttpCreate();
	if (xhp == null) return;
	xhp.onreadystatechange = function(e) { if (xhp.readyState != 4 || xhp.status != 200) return; if (typeof callback == 'function') callback(xhp.responseText); xhp.abort(); }
	xhp.open("POST", url, true);
	xhp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	if (content) xhp.send(content);
	else xhp.send('');
}

//***********************
function formErrSet(e, msg) {
	var id = '__' + (e.form.id || e.form.name) + '_' + (e.id || e.name) + '_em__'; if ($(id)) return;
	if (e.className == '') e.className = 'forminputerr'; else e.className += ' forminputerr';
	var m = document.createElement('SPAN'); m.id = id;
	if (e.tagName != 'TEXTAREA') { var ph = $H(e); if (ph <= 20) ph = 20; var pd = (ph - 12) / 2; m.style.height = (ph - pd) + 'px'; m.style.paddingTop = pd + 'px'; }
	else { m.style.paddingTop = '5px'; m.style.paddingBottom = '4px'; }
	m.className = 'formerrmsg'; m.innerHTML = msg; var p = e.parentNode; p.insertBefore(m, e.nextSibling);
}

function formErrClear(e) {
	var m = $('__' + (e.form.id || e.form.name) + '_' + (e.id || e.name) + '_em__'); if (!m) return;
	if (e.className.indexOf('forminputerr') == 0) e.className = ''; else e.className = e.className.replace(' forminputerr', '');
	var p = m.parentNode; p.removeChild(m);
}

function checkcodeShow(id) {
	var img = document.getElementById(id); if (!img || img.tagName != 'IMG') return;
	if (img.src != '') return;
	img.src = '/checkcode?' + Math.random(); img.style.cursor = 'pointer'; img.style.display = '';
	img.title = '点击更新'; img.onclick = function(e) { this.src = '/checkcode?' + Math.random(); }
}

function checkcodeRefresh(id) {
	var img = document.getElementById(id); if (!img || img.tagName != 'IMG') return;
	img.src = '/checkcode?' + Math.random(); img.style.display = '';
}

function shelterShow() {
	var dvs = $('dvShelter');
	if (dvs == null) {
		dvs = document.createElement('DIV');
		dvs.id = 'dvShelter';
		document.body.appendChild(dvs);
	}
	window.onscroll = window.onresize = function(e) {
		var scrollTop = winForm.scrollTop();
		var scrollLeft = winForm.scrollLeft();
		var pageWidth = winForm.clientWidth();
		var pageHeight = winForm.clientHeight();
		dvs.style.left = scrollLeft + 'px'; dvs.style.top = scrollTop + 'px';
		dvs.style.width = pageWidth + 'px'; dvs.style.height = pageHeight + 'px';
	}
	var scrollTop = winForm.scrollTop();
	var scrollLeft = winForm.scrollLeft();
	var pageWidth = winForm.clientWidth();
	var pageHeight = winForm.clientHeight();
	dvs.style.left = scrollLeft + 'px'; dvs.style.top = scrollTop + 'px';
	dvs.style.width = pageWidth + 'px'; dvs.style.height = pageHeight + 'px';
	dvs.style.display = 'block';
}
function shelterHidden() {
	var dvs = $('dvShelter');
	if (dvs == null) return;
	dvs.style.display = 'none';
	window.onscroll = null;
}

function userVerification(method) {
	xmlhttpPost('/common/ajax.user.login.verify', function(r) { if (r == 'NO') { loginShow(); __methodLoginComplete = method; return; } if (typeof method == 'function') method(); }, '');
}

function loginCheckMin(f) {
	f.username.value = f.username.value.trim();
	if (f.username.value == '') { alert('请输入用户名。'); f.username.focus(); return; }
	if (f.userpwd.value == '') { alert('请输入登录密码。'); f.userpwd.focus(); return; }
	xmlhttpPost('/common/ajax.user.login.post', function(r) { if (r != '' && r != 'SUC') { alert(r); f.btnsubmit.disabled = false; f.userpwd.value = ''; f.userpwd.focus(); return; } f.btnsubmit.disabled = false; loginHidden(); if (typeof __methodLoginComplete == 'function') __methodLoginComplete(); }, 'username=' + Escape(f.username.value) + '&userpwd=' + Escape(f.userpwd.value));
	f.btnsubmit.disabled = true;
}

function loginShow() {
	shelterShow();
	var dv = $('dvLogin');
	if (dv == null) {
		dv = document.createElement('DIV');
		dv.id = 'dvLogin';
		dv.innerHTML = '<iframe frameborder="0" scrolling="no" class="frm"></iframe><form onsubmit="loginCheckMin(this);return false;"><dl><dt><a href="http://my.68design.net/register" onclick="loginHidden();" target="_blank" style="color:#FF3300">快速注册新用户</a>用户登录</dt><dd>登录名：<input type="text" name="username" maxlength="64" class="txt" /> <br/> 密　码：<input type="password" name="userpwd" maxlength="64" class="txt" /><br/><input name="btnsubmit" type="submit" value="登录" class="btn" /> <input type="button" value="取消" class="btn" onclick="loginHidden();"> <a href="http://68design.net/about/faq2.html" target="blank">忘记密码？</a></dd></dl></form>';
		document.body.appendChild(dv);
	}
	var scrollTop = winForm.scrollTop();
	var scrollLeft = winForm.scrollLeft();
	var pageWidth = winForm.clientWidth();
	var pageHeight = winForm.clientHeight();
	dv.style.display = 'inline-block';
	dv.style.left = ((pageWidth - $W(dv)) / 2 + scrollLeft) + 'px'; dv.style.top = ((pageHeight - $H(dv)) / 2 + scrollTop) + 'px';
	var f = dv.getElementsByTagName('FORM');
	if (f && f.length > 0) f[0].username.focus();
}
function loginHidden() {
	shelterHidden();
	var dv = $('dvLogin');
	if (dv == null) return;
	dv.style.display = 'none';
}
//end

function __pageconstructor(pindex, psize, rcount, fname) {
	if (rcount <= 0) return '';
	var pcount = parseInt(rcount / psize) + (rcount % psize == 0 ? 0 : 1);
	var start = pindex - 3, end = pindex + 4, strhtml = '';
	if (start < 0) { end = end - start; start = 0 }
	if (end > pcount) end = pcount;

	if (pindex > 0) strhtml += '<a href="#" onclick="' + fname + '(' + (pindex - 1) + ');return false;" class="btn">< 上一页</a> ';
	if (start > 0) strhtml += '<a href="#" onclick="' + fname + '(0);return false;">1</a> ' + (start > 1 ? '... ' : '');
	for (var i = start; i < end; i++) {
		if (i == pindex) strhtml += '<b>' + (pindex + 1) + '</b> ';
		else strhtml += '<a href="#" onclick="' + fname + '(' + i + ');return false;">' + (i + 1) + '</a> ';
	}
	if (end < pcount) strhtml += (end < pcount - 1 ? '... ' : '') + '<a href="#" onclick="' + fname + '(' + (pcount - 1) + ');return false;">' + pcount + '</a> ';
	if (pindex < pcount - 1) strhtml += ' <a href="#" onclick="' + fname + '(' + (pindex + 1) + ');return false;" class="btn">下一页 ></a>';
	return strhtml;
}
