/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
var sfFocus = function() { 
	var sfEls = document.getElementsByTagName("input"); 
	for (var i = 0; i < sfEls.length; i++) {
		if (sfEls[i].type == 'file') {
			continue;
		}
		sfEls[i].onfocus = function() {
			this.className += " sffocus"; 
		} 
		sfEls[i].onblur = function() {
			this.className = this.className.replace(new RegExp(" sffocus\\b"), ""); 
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfFocus);

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
var sfHover = function() {
	var sfEls = document.getElementById("menu").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className += " sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
var brightBox = function(o) {
	if (o) {
		if (document.all) {
			o.style.backgroundColor = "#FFF";
			o.style.borderColor = "#0C0";
		}
	}
}
var dimBox = function(o) {
	if (o) {
		if (document.all) {
			o.style.backgroundColor = "#F7F7F7";
			o.style.borderColor = "#CCC";
		}
	}
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
var checkChars = function(doing, status) {
	obj1 = document.getElementById(doing);
	remain = 150 - obj1.value.length;
	obj2 = document.getElementById(status);
	obj2.innerHTML = '<span class="f10 pale">' + remain + ' characters remaining</span>';
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
function replaceText(text, textarea) {
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange) {
		var caretPos = textarea.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		caretPos.select();
	} else if (typeof(textarea.selectionStart) != "undefined") {
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var scrollPos = textarea.scrollTop;
		textarea.value = begin + text + end;
		if (textarea.setSelectionRange) {
			textarea.focus();
			textarea.setSelectionRange(begin.length + text.length, begin.length + text.length);
		}
		textarea.scrollTop = scrollPos;
	} else {
		textarea.value += text;
		textarea.focus(textarea.value.length - 1);
	}
}

function surroundText(text1, text2, textarea) {
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange) {
		var caretPos = textarea.caretPos, temp_length = caretPos.text.length;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;
		if (temp_length == 0) {
			caretPos.moveStart("character", -text2.length);
			caretPos.moveEnd("character", -text2.length);
			caretPos.select();
		} else {
			textarea.focus(caretPos);
		}
	} else if (typeof(textarea.selectionStart) != "undefined") {
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var newCursorPos = textarea.selectionStart;
		var scrollPos = textarea.scrollTop;
		textarea.value = begin + text1 + selection + text2 + end;
		if (textarea.setSelectionRange) {
			if (selection.length == 0) {
				textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
			} else {
				textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
			}
			textarea.focus();
		}
		textarea.scrollTop = scrollPos;
	} else {
		textarea.value += text1 + text2;
		textarea.focus(textarea.value.length - 1);
	}
}

function storeCaret(text) {
	if (typeof(text.createTextRange) != "undefined") {
		text.caretPos = document.selection.createRange().duplicate();
	}
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
function imitSend(formId) { 
	o = document.getElementById(formId + "_submit");
	o.innerHTML = '<div style="height: 21px; line-height: 21px;"><img src="' + dir + 'image/loading.gif" alt="" /> <span class="pale">正在发送请求...</span></div>';
	setTimeout("document.getElementById('" + formId + "').submit()", 600);
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
var getObj = function(objId) {
	return document.all ? document.all[objId] : document.getElementById(objId);
}

var req;

function loadXML(url, cb) {
	req = false;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
	if(req) {
		req.onreadystatechange = cb;
		req.open("GET", url, true);
		req.send("");
	}
}

/**/
var addFriend = function(fuid) {
	objFriend = getObj("user_friend");
	objFriend.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" alt="" /> sending request ...</span>';
	url = dir + "friend/add/" + fuid + ".sx";
	setTimeout("loadXML(url, addFriendCallback)", 400);
}

var addFriendCallback = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			objFriend = getObj("user_friend");
			objFriend.innerHTML = '<span class="pale f12">You have added this member as friend</span>';
		} else {
			objFriend = getObj("user_friend");
			objFriend.innerHTML = '<a href="#;" class="vivid">oops</a>';
		}
	}
}

var removeFriend = function(fuid) {
	objFriend = getObj("user_friend");
	objFriend.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" alt="" /> sending request ...</span>';
	url = dir + "friend/remove/" + fuid + ".sx";
	setTimeout("loadXML(url, removeFriendCallback)", 400);
}

var removeFriendCallback = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			objFriend = getObj("user_friend");
			objFriend.innerHTML = '<span class="pale f12">You removed this member from your friends</span>';
		} else {
			objFriend = getObj("user_friend");
			objFriend.innerHTML = '<a href="#;" class="vivid">oops</a>';
		}
	}
}

/**/
var addFavNode = function(fid) {
	objFavNode = getObj("node_fav");
	objFavNode.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" alt="" /> 正在发送请求 ...</span>';
	url = dir + "fav/node/add/" + fid + ".sx";
	setTimeout("loadXML(url, addFavNodeCallback)", 400);
}

var addFavNodeCallback = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			objFavNode = getObj("node_fav");
			objFavNode.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/ok.gif" alt="" /> 本讨论区已加入收藏！</span>';
		} else {
			objFavNode = getObj("node_fav");
			objFavNode.innerHTML = '<a href="#;" class="vivid">oops</a>';
		}
	}
}

var removeFavNode = function(fid) {
	objFavNode = getObj("node_fav");
	objFavNode.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" alt="" /> 正在发送请求</span>';
	url = dir + "fav/node/remove/" + fid + ".sx";
	setTimeout("loadXML(url, removeFavNodeCallback)", 400);
}

var removeFavNodeCallback = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			objFavNode = getObj("node_fav");
			objFavNode.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/ok.gif" alt="" /> 本讨论区已从收藏中移出！</span>';
		} else {
			objFavNode = getObj("node_fav");
			objFavNode.innerHTML = '<a href="#;" class="vivid">oops</a>';
		}
	}
}

/**/
var addFavTopic = function(fid) {
	objFavTopic = getObj("topic_fav");
	objFavTopic.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" alt="" /> 正在发送请求</span>';
	url = dir + "fav/topic/add/" + fid + ".sx";
	setTimeout("loadXML(url, addFavTopicCallback)", 400);
}

var addFavTopicCallback = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			objFavTopic = getObj("topic_fav");
			objFavTopic.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/ok.gif" alt="" /> 本主题已加入收藏！</span>';
		} else {
			objFavTopic = getObj("topic_fav");
			objFavTopic.innerHTML = '<a href="#;" class="vivid">oops</a>';
		}
	}
}

var removeFavTopic = function(fid) {
	objFavTopic = getObj("topic_fav");
	objFavTopic.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" alt="" /> 正在发送请求</span>';
	url = dir + "fav/topic/remove/" + fid + ".sx";
	setTimeout("loadXML(url, removeFavTopicCallback)", 400);
}

var removeFavTopicCallback = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			objFavTopic = getObj("topic_fav");
			objFavTopic.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/ok.gif" alt="" /> 本主题已从收藏中移出！</span>';
		} else {
			objFavTopic = getObj("topic_fav");
			objFavTopic.innerHTML = '<a href="#;" class="vivid">oops</a>';
		}
	}
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
var quickFocus = function(myid) {
	objFocus = getObj(myid);
	setTimeout("objFocus.focus()", 200);
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
/*
function focusOnFirst() {
    if (document.forms.length > 0) {
        for (var i = 0; i < document.forms[0].elements.length; i++) {
            var oField = document.forms[0].elements[i];
            if (oField.type == 'text') {
                oField.focus();
                return;
            }
        }
    }
}
window.onload  = focusOnFirst;
*/

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */

function openMessage() {
	newWin = window.open(dir + "message/home.html", "", "width=400, height=300, top=100, left=100");
	//newWin.moveTo(100,100);
	newWin.focus();
}

function sendMessage(uid) {
	newWin = window.open(dir + "message/compose/" + uid + ".html", "", "width=400, height=300, top=100, left=100");
	//newWin.moveTo(100,100);
	newWin.focus();
}

function viewWealth() {
	newWin = window.open(dir + "wealth.html", "", "width=500, height=360, top=100, left=100");
	//newWin.moveTo(100,100);
	newWin.focus();
}

var switchHomeTab = function(tab) {
	if (tab == "latest") {
		_latest = getObj("tab_latest");
		_latest.className = "active";
		_section = getObj("tab_ing");
		_section.className = "inactive";
		switchHomeTabContentLoading();
		getHomeTabLatest();
	} else {
		if (tab == "ing") {
			_latest = getObj("tab_latest");
			_latest.className = "inactive";
			_section = getObj("tab_ing");
			_section.className = "active";
			switchHomeTabContentLoading();
			getHomeTabIng();
		} else {
		}
	}
}

var switchHomeTabContentLoading = function() {
	_c = getObj("tab_content");
	_c.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" /> Loading ...</span>';
}

var getHomeTabLatest = function() {
	url = dir + "json/home/tab/latest.sx";
	//loadXML(url, cbGetHomeTabLatest);
	setTimeout("loadXML(url, cbGetHomeTabLatest)", 300);
}

var getHomeTabIng = function() {
	url = dir + "json/home/tab/ing.sx";
	//loadXML(url, cbGetHomeTabIng);
	setTimeout("loadXML(url, cbGetHomeTabIng)", 300);
}

var cbGetHomeTabLatest = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			_o = req.responseText;
			_c = getObj("tab_content");
			_c.innerHTML = _o;
		} else {
			_o = 'Failed to load ...';
			_c = getObj("tab_content");
			_c.innerHTML = _o;
		}
	}
}

var cbGetHomeTabIng = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			_o = req.responseText;
			_c = getObj("tab_content");
			_c.innerHTML = _o;
		} else {
			_o = 'Failed to load ...';
			_c = getObj("tab_content");
			_c.innerHTML = _o;
		}
	}
}

var initHomeTabs = function(command) {
	switchHomeTabContentLoading();
	if (command == "ing") {
		switchHomeTab("ing");
	} else {
		switchHomeTab("latest");
	}
}

/* G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H - G - O - L - D - E - N - F - A - I - T - H */
/*
var switchHomeTab = function(tab) {
	if (tab == "latest") {
		_latest = getObj("tab_latest");
		_latest.className = "active";
		_section = getObj("tab_ing");
		_section.className = "inactive";
		switchHomeTabContentLoading();
		getHomeTabLatest();
	} else {
		if (tab == "ing") {
			_latest = getObj("tab_latest");
			_latest.className = "inactive";
			_section = getObj("tab_ing");
			_section.className = "active";
			switchHomeTabContentLoading();
			getHomeTabIng();
		} else {
		}
	}
}

var switchHomeTabContentLoading = function() {
	_t = getObj("tab_top");
	_t.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" /> Loading ...</span>';
	_c = getObj("tab_content");
	_c.innerHTML = '<span class="pale f12"><img src="' + dir + 'image/loading.gif" /> Loading ...</span>';
}

var getHomeTabLatest = function() {
	url = dir + "json/home/tab/latest.sx";
	//loadXML(url, cbGetHomeTabLatest);
	setTimeout("loadXML(url, cbGetHomeTabLatest)", 300);
}

var getHomeTabIng = function() {
	url = dir + "json/home/tab/ing.sx";
	//loadXML(url, cbGetHomeTabIng);
	setTimeout("loadXML(url, cbGetHomeTabIng)", 300);
}

var cbGetHomeTabLatest = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			data = eval('(' + req.responseText + ')');
			_o = "";
			_t = getObj("tab_top");
			for (var id in data.nodes) {
				_o += '<a href="' + dir + 'node-' + data.nodes[id].id + '.html" style="color: #' + data.nodes[id].color + ';">' + data.nodes[id].name + '</a> <span class="f10">' + data.nodes[id].topics + ' ...</span>';
			}
			_o += '<a href="' + dir + 'feed/rss"><img src="' + dir + 'image/silk/feed.gif" class="t" alt="" /></a>';
			_t.innerHTML = _o;
			_o = "";
			for (var id in data.topics) {
				_o += '<div class="inner"><a href="' + dir + 'u/' + data.topics[id].urlname + '"><img src="' + dir + data.topics[id].avatar + '" class="as" alt="" /></a> <a href="' + dir + 'u/' + data.topics[id].urlname + '" style="color: #' + data.topics[id].color + ';">' + data.topics[id].owner + '</a> ... <a href="' + dir + 'node-' + data.topics[id].pid + '.html" class="g2">' + data.topics[id].node + '</a> ... [ ' + data.topics[id].isnew + ' <a href="' + dir + 'topic/view/' + data.topics[id].id + '.html" style="color: #' + data.topics[id].color + ';">' + data.topics[id].title + '</a> ] <span class="f10"> ... ' + data.topics[id].posts + ' replies ... ' + data.topics[id].lastupdated + '</span></div>';
			}
			_c = getObj("tab_content");
			_c.innerHTML = _o;
		} else {
			_o = 'Failed to load ...';
			_c = getObj("tab_content");
			_c.innerHTML = _o;
		}
	}
}

var cbGetHomeTabIng = function() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			//
		}
	}
}

var initHomeTabs = function(command) {
	switchHomeTabContentLoading();
	if (command == "ing") {
		switchHomeTab("ing");
	} else {
		switchHomeTab("latest");
	}
}
*/
