http://www.cnblogs.com/wang123/archive/2008/01/04/1025921.html
http://www.cnblogs.com/jsjkandy/archive/2007/07/26/832257.html