jQuery.cookie = function(name, value, options) {
	if (typeof value != 'undefined') { // name and value given, set cookie
		options = options || {};
		if (value === null) {
			value = '';
			options.expires = -1;
		}
		var expires = '';
		if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
			var date;
			if (typeof options.expires == 'number') {
				date = new Date();
				date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
			} else {
				date = options.expires;
			}
			expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
		}
		// CAUTION: Needed to parenthesize options.path and options.domain
		// in the following expressions, otherwise they evaluate to undefined
		// in the packed version for some reason...
		var path = options.path ? '; path=' + (options.path) : '';
		var domain = options.domain ? '; domain=' + (options.domain) : '';
		var secure = options.secure ? '; secure' : '';
		document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
	} else { // only name given, get cookie
		var cookieValue = null;
		if (document.cookie && document.cookie != '') {
			var cookies = document.cookie.split(';');
			for (var i = 0; i < cookies.length; i++) {
				var cookie = jQuery.trim(cookies[i]);
				// Does this cookie string begin with the name we want?
				if (cookie.substring(0, name.length + 1) == (name + '=')) {
					cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
					break;
				}
			}
		}
		return cookieValue;
	}
};

function logout(domain)
{
	if(!domain) domain = domain_top();	
	$.cookie('uin'   , null, {path: '/', expires:-1, domain: domain});
	$.cookie('skey'  , null, {path: '/', expires:-1, domain: domain});
	$.cookie('luin'  , null, {path: '/', expires:-1, domain: domain});
	$.cookie('lskey' , null, {path: '/', expires:-1, domain: domain});
}

function url_host(url)
{
	var qpos = url.indexOf('/', 8);
	return qpos >= 0 ? url.substr(7, qpos - 7): url.substr(7);
}

function domain_sobar(url)
{
	var host = location.hostname;
	if(url)
		host = url_host(url);
	return host.indexOf('cache') < 0 ? host : "sobar.soso.com";
}

function domain_top()
{
	var result = /^.*?(\w+\.\w+)$/.exec(location.hostname);
	if(result && result.length > 1)
		return result[1];
	else
		return 'soso.com';
}

/* ptlogin global functions */
function ptlogin2_onResize(width, height)
{
	var ld = $('#login_div');
	ld.height(height);
	ld.width (width );
	div_to_center(ld);
}

/* ptlogin global functions */
function ptlogin2_onClose()
{
	$("#login_div").hide();
	$("#mask"    ).hide();
}

/* set a element to enter. */
function div_to_center(div)
{
	var t = ($(window  ).height() - div.height())/2 + $(window).scrollTop();
	var l = ($(document).width () - div.width() )/2;
	div.css({position: 'absolute', top:t, left:l});
	if($.browser.msie && $.browser.version.substring(0,1) === '6')
	{
		div.hide();
		div.show();
	}
}

function openLogin(urlparam, surl, hide_close_icon)
{
	if(!surl) surl = window.parent.location.href;
	surl = 'http://' + domain_sobar() + '/login/ok?w=' + encodeURIComponent(surl);

	var url = "http://ui.ptlogin2." + domain_top() + "/cgi-bin/login?" + urlparam
		+ "&style=0&appid=6000101&low_login=1&s_url=" + encodeURIComponent(surl);
	if(typeof hide_close_icon != "undefined" && hide_close_icon != "")
		url += "&hide_close_icon=1";

	var li = $('#login_iframe');
	var ld = $('#login_div');
	var ms = $('#mask');

	/* we must reload the url evertime. Fix IE bug. */
	if($.browser.msie)
		url += "&" + Math.random();

	ms.css({top:0,left:0,width:'100%',height:$(document).height()+'px'}).show();
	if(li.attr('src') != url)
	{
		ld.css({top:-32767, left:-32767}); // hide first
		ld.show();

		li.attr('src', url);
		li.load(function()
		{
			// have bugs in opera
			// I do not kown how to fix.
			if($.browser.opera)
				li.height(285);

			div_to_center(ld);
		});
	}
	else
	{
		ld.show();
		div_to_center(ld);
	}
}

function check_post(o)
{
	var kw = $.trim(o.kw.value);
	if(!kw)
	{
		alert("请填写关键词");
		o.kw.focus();
		return false;
	}

	$(o).find('[name=kw]').removeAttr('name');
	if(o.type[0].checked)
	{
		o.action = '/n/' + encodeURIComponent(kw);
		return true;
	}

	o.action = '/search/' + encodeURIComponent(kw);
	if(o.type[1].checked)
		o.ch.value += '.post';
	else
		o.ch.value += '.user';

	return true;
}

function init_header(o)
{
	if(!o || o.length == 0 || o['uin'] == 0) {
		$('#s_user').html('<li class="s_login"><a id="s_login" href=javascript:openLogin("f_url=loginerroralert");>登录</a></li>');
		try{ user_callback(false); } catch(e) {};
		return false;
	}

	var nick = o['nick'].replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
	var uin  = o['uin'];
	var nmsg = o['msgbox'] && o['msgbox']['num_total'] ? o['msgbox']['num_total'] : 0;
	var smsg = nmsg && nmsg > 0 ? "(" + nmsg + ")" : "";
	var tips = nmsg && nmsg > 0 ? " msg_tips" : "";
	var html = '<li id="s_user_more"><a id="s_nick" class="user_drop" href="http://i.soso.com">' + nick + '</a>'
		 + '<ul class="drop_menu"><li><a href="http://wenwen.soso.com/z/MyHome.htm">我的问问</a></li>'
		 + '<li><a href="http://baike.soso.com/myHome.htm">我的百科</a></li>'
		 + '</ul></li>'
		 + '<li><a href="/home/' + uin
		 + '" id="s_sobar_btn" class="notify' + tips + '">我的搜吧<span id="msg_num">' + smsg + '</span></a></li>'
		 + '<li><a id="s_logout" href="javascript:logout();top.location.reload();">退出</a></li>';

	$('#s_user').html(html);
	actUserMenu(); 
	try{ user_callback(o);} catch(e) {};
	return true;
}

function sbox_close()
{
	$('#smartbox').html('');
	$('#smartbox').hide();
}

function sbox_select(i)
{
	$('#smartbox li').eq(i).css('background-color', '#D8ECFF');
}

function sbox_unselect(i)
{
	$('#smartbox li').eq(i).css('background-color', '#FFFFFF');
}

function sbox_val(i)
{
	$('#s_input').val($('#smartbox li').eq(i).attr('alt'));
}

function subscribe_mail()
{
	if (!_g_uinfo||_g_uinfo.length==0||_g_uinfo.uin == 0)
	{
		openLogin("f_url=loginerroralert");
		return;
	}

	$.get("/scribe/", {}, function(data){
		if(1 == data)
		{
			openLogin("f_url=loginerroralert");
		}
		else if(0 == data)
		{
			alert("订阅成功，请登录QQ邮箱查看搜吧日刊-火爆地带。");
		}
		else if(2 == data)
		{
			alert("你没有登录!不能订阅");
		}
		else if(-4 == data)
		{
			alert("请先激活QQ邮箱");
		}
		else
		{
			alert("参数错误");
		}
	});
}


if(typeof(_g_kw   ) == 'undefined') var _g_kw    = '';
if(typeof(_g_bn   ) == 'undefined') var _g_bn    = '';
if(typeof(_g_uinfo) == 'undefined') var _g_uinfo = false;

(function()
{
	if(_g_kw != '') document.hfm.kw.value = _g_kw;
	if(_g_bn != '') document.hfm.kw.value = _g_bn;

	if(location.pathname.search(/^.search/i) == 0)
	{
		if(location.search.search(/type=1/i) > 0)
		{
			document.hfm && (document.hfm.type[2].checked = true);
			document.bfm && (document.bfm.type[2].checked = true);
		}
		else
		{
			document.hfm && (document.hfm.type[1].checked = true);
			document.bfm && (document.bfm.type[1].checked = true);
		}
	}

	init_header(_g_uinfo);
	var sbox_index = -1;
	$('#s_input').keyup(function(e){
		var query = $.trim(this.value);
		var type = (document.hfm.type[0].checked == true) ? 'bar' : 'post';
		var code = (e.keyCode ? e.keyCode : e.which);
		var size = $('#smartbox').children().length;
		var q_base, url_base, bar, tail;

		if(document.hfm.type[2].checked) return;
		if(code == 38) {
			if(sbox_index == -1)
				sbox_index = size;
			sbox_unselect(sbox_index);
			sbox_index = (sbox_index == 0) ? size-1 : sbox_index-1; 
			sbox_select  (sbox_index);
			sbox_val     (sbox_index);
			return;
		}
		if(code == 40) {
			sbox_unselect(sbox_index);
			sbox_index = (sbox_index == size-1) ? 0 : sbox_index+1; 
			sbox_select  (sbox_index);
			sbox_val     (sbox_index);
			return;
		}

		if(query == '') {
			sbox_close(); return;
		}
		
		if(type == 'bar') {
			if(_g_bn == query) return;
			url_base = '/n/';
			q_base = '?ie=utf-8&type=0&pid=sbr.bar.smb&ch=sbr.bar.smb';
			bar   = '吧';
			tail  = ' 主帖';
			_g_bn = query;
		} else {
			if(_g_kw == query) return;
			url_base = '/search/';
			q_base = '?ie=utf-8&type=1&pid=sbr.tie.smb&ch=sbr.tie.smb';
			bar   = '';
			tail  = ' 结果';
			_g_kw = query;
		}

		$.ajax({
			url:'/sbox/' + type +'/' + encodeURIComponent(query),
			dataType:"json",
			success: function(o) {
				if(!o || o['return'] < 0 || o['count'] < 1) {
					sbox_close(); return;
				}

				var count = o['count'];
				var html  = '';
				var list  = o['data'];
				for(var i = 0; i < count; i++)
				{
					var pair  = list[i].split("\t");
					var events= 'onmouseover="sbox_select('+i+');" ' +
						'onmouseout="sbox_unselect('+i+');" ' +
						'onclick=sbox_val('+i+');location.href="' + url_base + encodeURIComponent(pair[1]) + q_base + '" ';
					var alt = 'alt="' + pair[1] + '"';
					html += '<li ' + events + alt + '><span class="barName"><em>' +
						pair[1] + '</em>' + bar +
						'</span><span class="postNum">' + pair[0] + tail + '</span></li>' ;
				}

				$('#smartbox').html(html).show();
				sbox_index = -1;
			}
		});
	});
	
	$(document).click(function(o) {
		sbox_close();
	});
})();

