function getspecailvar(name)
{
	var str=top.location.search;
	if (str.indexOf(name)!=-1)
	{
		var pos_start=str.indexOf(name)+name.length+1;
		var pos_end=str.indexOf("&",pos_start);
		if (pos_end==-1)
		{
			return str.substring(pos_start);
		}
		else
		{
			return str.substring(pos_start,pos_end)
		}
	}
	else
	{
		return '';
	}
};
function get_baidu_tg() {
	var name="&tn";
	var ret="";
	var str=top.location.search;
	var ss=str.indexOf(name);

	if (str.indexOf(name)!=-1)
	{
		var pos_start=str.indexOf(name);
		ret=str.substring(pos_start+1,str.length);
	}

	return ret;
};
function replace_href() {
	var kidstr="";

	var kid=getspecailvar("k");
	if (kid) kidstr+="&k="+kid;

	var sid=getspecailvar('sid') ? getspecailvar('sid') : 1;

	var baidu_lm_keystr=get_baidu_tg();

	if (baidu_lm_keystr) kidstr=kidstr+"&"+baidu_lm_keystr;

	var a = document.getElementsByTagName("a");
	for (i in a) {
		var linkhref = a[i].href;
		var host = parseUri(linkhref).host;
		var i_host = host.split('.');
		var domain = i_host[i_host.length-2] + '.' + i_host[i_host.length-1];
		if (a[i].href) {
			if (a[i].href.indexOf("?") != -1) {
				if (a[i].href.indexOf("sid") != -1) {
					changeURLPar(a[i].href, 'sid', sid);
				} else {
					a[i].href+="&sid="+sid+kidstr;
				}
			} else
			a[i].href+="?sid="+sid+kidstr;
		}
	}
}

function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};

function changeURLPar(destiny, par, par_value) {
	var pattern = par+'=([^&]*)';
	var replaceText = par+'='+par_value;
	if (destiny.match(pattern))	{
		var tmp = '/\\'+par+'=[^&]*/';
		tmp = destiny.replace(eval(tmp), replaceText);
		return (tmp);
	} else {
		if (destiny.match('[\?]')) {
			return destiny+'&'+ replaceText;
		} else {
			return destiny+'?'+replaceText;
		}
	}
	return destiny+'\n'+par+'\n'+par_value;
}
