function $(i) { return document.getElementById(i);}

function setCookie(k, v, opt)
{
	var val = encodeURIComponent(v);
	if(opt)
	{
		if(opt.duration)
		{
			var d = new Date();
			d.setTime(d.getTime() + opt.duration*24*3600*1000);
			val += '; expires=' + d.toGMTString();
		}
		if(opt.path)
			val += '; path=' + opt.path;
	}
	document.cookie = k + '=' + val + ';';
}

function getCookie(k)
{
  var c = document.cookie.split("; ");
  for(var i=0; i<c.length; i++)
  {
    var p = c[i].split("=");
    if(k == p[0]) 
      return decodeURIComponent(p[1]);
  }

  return null;
}

function ajax(url, callback, tk)
{
	var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : (document.all ? new ActiveXObject('Microsoft.XMLHTTP') : null);
	if(!xhr)
	{
		callback(null, tk);
		return null;
	}
	xhr.open('GET', url, true);
	xhr.onreadystatechange = function(ev) {
		if(xhr.readyState != 4) return;
		if((xhr.status >= 200) && (xhr.status < 300))
			callback(xhr.responseText, tk);
		else
			callback(null, tk);
	};
	try{xhr.send(null);}catch(e){}
	return xhr;
}

function gb2312(key) {
	var result=""; 
	for(var i=0;i<key.length;i++){ 
		var temp = key.charCodeAt(i); 
		if(temp>=0x4e00 || temp==0x300A || temp==0x300B){ 
			try{
				execScript("ascCode=hex(asc(\""+key.charAt(i)+"\"))", "vbscript"); 
				result+=ascCode.replace(/(.{2})/g, "%$1"); 
			}catch(e){}
		}else{
			result+=escape(key.charAt(i)); 
		} 
	} 
	return result; 
}

function getPosition(ele){
	var overflown = [];
	var el = ele, left = 0, top = 0;
	do {
		left += el.offsetLeft || 0;
		top += el.offsetTop || 0;
		el = el.offsetParent;
	} while (el);
	return {'x': left, 'y': top};
}