/**
 * $Id: global.js 3694 2011-04-26 12:05:39Z Gavin $
 */
//~ some global variables 
var _gPop	     = null; // global pop reference
var _gPopHtml	 = null; // global html pop reference
var _gWaitSucc = 1;		 // 1 second while success
var _gWaitWarn = 2;		 // 2 second while warning
var _gWaitFail = 3;		 // 3 seconds while fail

//~ begin: jQuery Plugin: jquery.iframeajax.js
(function($) {
	
	$.getJSONP = function(url, cb) {
		var connector = url.lastIndexOf('?') == -1 ? '?' : '&';
		url += connector + 'jsoncb=?';
		$.getJSON(url, function(data){
			cb(data);
		});
	};
	
	$.iframeajaxid = 'iframeajaxid';	
	$.getIframeData = function(url, cb) {
		if (PHP_SITEURL == MAIN_SITEURL) {	// the same domain, use general ajax
			this.get(url, function(data){cb(data);});
		} else {	// different domain, use iframe ajax
			var connector = url.lastIndexOf('?') == -1 ? '?' : '&';
			url += connector + 'ifrajax=1';			
			this.genAjaxIframe(url);
			(function(){ 
			  try { 
					cb(document.getElementById(ifrid).contentWindow.document.body.getElementsByTagName("textarea")[0].value); 
			  }catch(e){ 
					setTimeout(arguments.callee,0); 
					return; 
			  }
		  })();		
		}
		return;
	};

	$.fn.iframeAjax = function(func, options, url) {
		var exestr = '';
		if (PHP_SITEURL == MAIN_SITEURL) {	// the same domain, use general ajax
			var exestr = 'this.'+func+'(options)';
			eval(exestr);
		} else {	// different domain, use iframe ajax
			url = typeof url == 'undefined' ? MAIN_SITEURL + 'crossdomain.htm' : url;
			this.genAjaxIframe(url);
			var oThis = this;
			(function(){ 
		    try { 
		      exestr == '$("#'+$.iframeajaxid+'")[0].contentWindow.$'+'(oThis).'+func+'(options)';
		      eval(exestr);
		    } catch(e) { 
	        setTimeout(arguments.callee,500); 
	        return; 
		    }    
			})();			
		}
		return false;		
	};
	
	$.genAjaxIframe = function(url, iframeid) {
		var ifrid = typeof iframeid == 'undefined' ? this.iframeajaxid : iframeid;
		var f = document.getElementById(ifrid); 
		if(f) f.src = url;
	  else { 
			var t = document.createElement("DIV"); 
			t.innerHTML = '<iframe id="'+ifrid+'" width="0" height="0" style="visibility:hidden;" src="' + url + '" ></iframe>'; 
			document.body.appendChild(t.firstChild); 
	  }
	};
	
	$.genWboxDom = function(url, domid) {
		url   = typeof url == 'undefined' ? '' : url;
		domid = typeof domid == 'undefined' ? '_wboxdom' : domid;
		var f = document.getElementById(domid); 
		if(f) f.href = url;
	  else { 
			var t = document.createElement("A"); 
			t.innerHTML = '<a id="'+domid+'" class="'+domid+'" href="'+url+'" style="visibility:hidden;">&nbsp;</a>'; 
			document.body.appendChild(t.firstChild); 
	  }		
	};
})(jQuery);
//~ end: jQuery Plugin: jquery.iframeajax.js

//~ fix png img
function fixPng(aimg) {
  var arVersion = navigator.appVersion.split("MSIE")
  var version = parseFloat(arVersion[1])

  if ((version >= 5.5 && version < 7.0) && (document.body.filters)) {
  	var imglist = new Array();
  	if (aimg) {
  		if (typeof aimg == 'array') {
  			imglist = aimg;
  		}else{
				imglist[0] = aimg;
  		}
  	}else{
  		imglist = document.images;
  	}
    for(var i=0; i<imglist.length; i++) {
      var img = imglist[i];
      var imgName = img.src.toUpperCase();
      if (imgName.indexOf(".PNG") > 0) {
        var width = img.width;
        var height = img.height;
        var sizingMethod = (img.className.toLowerCase().indexOf("scale") >= 0)? "scale" : "image"; 
        img.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src.replace('%23', '%2523').replace("'", "%27") + "', sizingMethod='" + sizingMethod + "')";
        img.src = "images/blank.gif";
        img.width = width;
        img.height = height;
			}
		}
	}
}

//~==BEGIN: sleep some tasks
function sleep(obj,milliseconds) {
	if (window.eventList==null) window.eventList=new Array();
	var ind=-1; 
	for (var i=0;i<window.eventList.length;++i) {
		if (window.eventList[i]==null) {
			window.eventList[i]=obj;    
			ind=i;   
			break;   
		}
	}
	if (ind==-1) {
		ind=window.eventList.length;   
		window.eventList[ind]=obj; 
	}
	setTimeout('_goon(' + ind + ')',milliseconds); 
}
function _goon(ind) {
	var obj=window.eventList[ind]; 
	window.eventList[ind]=null; 
	if (obj.nextStep) obj.nextStep(); 
	else obj(); 
}
//~==END: sleep some tasks

//~ read cookie
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
	
function getFromUrl() {
	var srcurl = document.location.toString();
	var index = srcurl.indexOf('#');
	if (index >= 0) {	// with # in url
		srcurl = srcurl.substring(0,index);
	}
	return srcurl;
}

//~ trim space
String.prototype.trim = function() {
	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
}

//~BEGIN set location
//set location
function setLocation(jqSeletor, parent, withdefault) {
	$.ajax({
		url:		genurl('ajax/getlocation'),
		type:		'GET',
		data:		'parent='+parent,
		dataType:	'xml',
		success: 	function (xml) {		    
	    var stropt = '';
	    var selected = 'selected="selected"';
	    var i=0;
	    if ( withdefault )
	    	stropt = '<option value="0" selected="selected">&#19981;&#38480;</option>';
	    $(xml).find('item').each(function(){
				if (withdefault) {
					stropt += '<option value="' + $(this).attr('locaid') + '">' + $(this).text() + '</option>';
				}else{
					if(i>0) {
						selected = '';
					}
					stropt += '<option value="' + $(this).attr('locaid') + '" '+selected + '>' + $(this).text() + '</option>';
					i++;
				}
	    });
	    $(jqSeletor).html(stropt);
		},			
		error: function () {
			alert('Error!');
		}
	});
}
// bind location action
function bindLocationAction(ids_arr) {
	if (ids_arr.length < 3) return false;
	var id_nation 	= '#' + ids_arr[0];
	var id_province = '#' + ids_arr[1];
	var id_city 	= '#' + ids_arr[2];
	
	//nation change
	$(id_nation).bind('change', function() {
		//if ($(this).val()==$('#g_lc_foreign').val()) {	//locaid==3 is "foreign"
		if ($(this).val()==3) {	//locaid==3 is "foreign"
			$(id_province + ',' + id_city).hide();
		} else {	//"native"
			setLocation(id_province, $(this).val());
			$(id_province + ',' + id_city).show();
		}
	});
	//province change
	$(id_province).bind('change', function() {
		setLocation(id_city, $(this).val());		
	});
}
//~END set location

//~ gen q url 
function genurl(q, maindomain) {
  maindomain = maindomain==undefined?0:1;
  
  var url = '';
  var maindomain_url = GLOBAL_OPTION.maindomain;
  var use_maindomain = 0;
  if (typeof(q)=='undefined' || q=='') {
  	if (GLOBAL_OPTION.isproduction=='1' && maindomain) {
  		url = maindomain_url;
  	}
  	else {
			url = MAIN_SITEURL;  		
  	}
  }
  else {
  	var regex= new RegExp('^(t|u|q|s|invite|help|node|blog|reg)\/', 'i');
	  if ( q.match(regex)) {
	  	use_maindomain = 1;
	  }
	    
    if (GLOBAL_OPTION.cleanurl) {
	    var args = q.split('/');
	    var mod  = args[0];
	    if (mod=='u') {
	    	q = q.replace('u/', 't/');
	    }	    
    	
			if (GLOBAL_OPTION.isproduction=='1' && q.indexOf('app/fweek')!=-1) {
				regex= new RegExp('(^app/fweek)', 'i');
				q = q.replace(regex, '');
				q = q.replace(/(^\/+)/g, '');
				url = GLOBAL_OPTION.subdomain_fweek + q;
			}
	    else if (GLOBAL_OPTION.usesubdomain=='1' && mod=='q' && args[1]!='new' && args[1]!='home') {
				q = '';
				var len = args.length;
				if (len > 2) {
					for (var i=2; i<len; i++) {
						q += args[i] + '/';
					}
					q = q.replace(/\/+$/,'');
				}
	    	url = 'http://'+args[1]+'.'+GLOBAL_OPTION.domain+'/'+q;
	    }
	    else {
		  	if (GLOBAL_OPTION.isproduction=='1' && (use_maindomain || maindomain)) {
		  		url = maindomain_url + q;
		  	}
		  	else {
					url = MAIN_SITEURL + q;  		
		  	}
	    }
    }
    else {
	  	if (GLOBAL_OPTION.isproduction=='1' && (use_maindomain || maindomain)) {
	  		url = maindomain_url + '?q=' + q;
	  	}
	  	else {
				url = MAIN_SITEURL + '?q=' + q;  		
	  	}    
    }
  }
  return  url;
}
//~ url connecter
function urlconnecter() {
	return GLOBAL_OPTION.cleanurl ? '?' : '&';
}
//~ gen page part of url
function urlpagepart(page) {
	if(typeof(page)=='undefined' || page < 1) page = 1;
	return GLOBAL_OPTION.pagerpname + '=' + page;
}
//~ goto function
function mksns_goto(q) {
	if (q=='_self') {
		window.location.reload();
	} else {
		window.location.href = genurl(q);
	}
}
//~ show tips
function showTips(object, message, type) {
	$(object).removeClass();
	var tip_css = 'info-' + type;
	$(object).addClass(tip_css);
	$(object).html(message);
}
//~ check if input string is empty
function isEmpty(str) {
	if (str.trim()=='') return 1;
	var regex= "^((\&nbsp;)|(\<br\>)|(\<div\>)|(\<\/div\>)|(\<p\>)|(\<\/p\>)|(\s)|(\u3000)|( ))+$";
	regex = new RegExp(regex, 'ig');
	if (str.match(regex)) return 1;
	return 0;
}
//~ Eliminate the reduplication value, input format: "word1;word2;word3"
function tickDuplicate(str) {
	var sep = ',';
	str = str.trim();
	str	= str.replace(/(\s{1,})/g	,sep);		// eliminate spacing char
	str	= str.replace(/\；/g	,sep);	// make sure separator is sep
	str	= str.replace(/\，/g	,sep);	// make sure separator is sep
	
	var arr = str.split(sep);
	var i = 0, j = 0;
	
	//~ set reduplicate value to ''
	for (i=0; i < arr.length; ++i){
		if (arr[i] == '') continue;
		for (j=i+1; j < arr.length; ++j){
			if ( arr[i] == arr[j] ) {
				arr[j] = '';
			}
		}
	}
	
	//~ re-gen the string
	var retstr = '';
	for (i=0; i < arr.length; ++i){
		if (arr[i] == '') continue;
		retstr += arr[i] + sep;
	}
	
	//~ return it
	return retstr.substring(0, retstr.length-1);  
}

//~ 目前复制只是对应ie系列，有空再完善
function copyCode(id) {
	var txt = $(id).val();
	if(window.clipboardData){
		window.clipboardData.clearData();
		window.clipboardData.setData("Text",txt);
	} else if(navigator.userAgent.indexOf("Opera")!=-1){
		window.location=txt;
	}
	return false;
}
function copyText(id, attr) {
	attr = typeof attr == 'undefined' ? '' : attr;
	var txt = '';
	if (attr == '') {
		txt = $(id).val();
		if(txt=='') {
			txt = $(id).text();
		}
		$(id).get(0).select();
	} else {
		txt = $(id).attr(attr);
	}

	if(copy2Clipboard(txt)!=false) {
		alert("已经复制到粘贴板，您可以使用Ctrl+V粘贴到需要的地方去了哦:-)");
	} else {	// Firefox
		alert("您的浏览器安全设置限制剪贴板操作，请您手动进行复制");
	}
}
var copy2Clipboard=function(txt){
	if(window.clipboardData) {
		window.clipboardData.clearData();
		window.clipboardData.setData("Text",txt);
		txt = window.clipboardData.getData("Text");
		if(!txt) return false;
		return true;
	}
	else if(navigator.userAgent.indexOf("Opera")!=-1) {
		window.location=txt;
		return true;
	}
	else if(window.netscape){
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		} 
		catch(e){
			return false;
		}
		var clip=Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if(!clip)return;
		var trans=Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if(!trans)return;
		trans.addDataFlavor('text/unicode');
		var str=new Object();
		var len=new Object();
		var str=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		var copytext=txt;str.data=copytext;
		trans.setTransferData("text/unicode",str,copytext.length*2);
		var clipid=Components.interfaces.nsIClipboard;
		if(!clip)return false;
		clip.setData(trans,null,clipid.kGlobalClipboard);
	}
}

/*-------------------------Page Message Prompt-------------------------BEGIN*/
//: parameter:
//: object	: DOM id, used as in getElementById(), no matter whether having prefix: '#', required
//: msg		: 'Prompting Message', required
//: type	: 'msg', 'ok', 'error', 'warning', 'loading' OR '', required
//: waitsec	: waiting how many seconds for next action, optional
//: nextaction: what is the next action: 'reload' or go url, optional
function showPagePrompt(object, msg, type, waitsec, nextaction, urlprefix, disapear) {

	//~ show message
	object = object.indexOf('#')==0 ? object : '#' + object;
	type   = (typeof(type)=='undefined' || type=='')?'msg':type;
	urlprefix = (typeof(urlprefix)=='undefined' || urlprefix=='') ? STATIC_SITEURL : urlprefix;
	var prompt_css = 'prompt-' + type;
	msg = '<span>' + msg + '</span>';
	$(object).removeClass();
	$(object).addClass(prompt_css);
	$(object).html(msg).show();	
	disapear = typeof(disapear)=='undefined' ? true : disapear;
	
	//~ if show loading, no need closed the prompting
	if(type=='loading' || !disapear) return;
	
	//~ hide message prompt area
	var sleepsec = _gWaitWarn*1000;	//option: _gWaitSucc(1s), _gWaitWarn(2s), _gWaitFail(3s)
	if ( typeof(waitsec) != 'undefined' && waitsec>0 ) {
		sleepsec = waitsec*1000;
	}    
	sleep(this,sleepsec);
	this.nextStep=function() {
		$(object).hide();
		if ( typeof(nextaction) != 'undefined' && nextaction != '' ) {
			if ( nextaction=='reload' ) {
				window.location.reload();
			} else if (nextaction=='parent.reload') {
				window.parent.location.reload();
			} else {
				window.location.href = nextaction;
			}
		}
	}
	return false; 	
}
/*-------------------------Page Message Prompt---------------------------END*/

//========== pupop.ext.js common dlg BEGIN
function getScrollTop() {
	var scrollPosTop; 
	if (typeof window.pageYOffset != 'undefined') { 
	   scrollPosTop = window.pageYOffset; 
	} else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') { 
	   scrollPosTop = document.documentElement.scrollTop; 
	} else if (typeof document.body != 'undefined') { 
	   scrollPosTop = document.body.scrollTop; 
	}
	return scrollPosTop
}
function middleElement(ele) {
	ele['style']['position']="absolute"; 
	ele['style']['display']='block';
		
	var sClientWidth	= screen.availWidth; 
	var sClientHeight	= screen.availHeight;
	var sScrollTop = getScrollTop();
	var sleft=(sClientWidth-ele.offsetWidth)/2;
	var iTop = sScrollTop + (sClientHeight/2)-(ele.offsetHeight/2) - 80; 
	var sTop = iTop>0?iTop:(sClientHeight/2+sScrollTop)-(ele.offsetHeight/2); 
	if(sTop<1) sTop="20"; 
	if(sleft<1) sleft="20";
	ele['style']['left'] = sleft+"px"; 
	ele['style']['top']  = sTop+"px";
}
//~ show tiny dialog, and then closing automatic, type='ok' or type='fail'
function showTinyInfo(msg, type, waitsec, gourl) {
	type = (typeof type=='undefined')||type=='' ? 'ok' : type;
	waitsec = (typeof waitsec=='undefined')||waitsec=='' ? 3 : waitsec;
	waitsec *= 1000;
	
	var boxname = 'tnybox';
	var classname= boxname+'_'+type;
	var oDlg = document.getElementById(boxname);
	if (!oDlg) {
		var t = document.createElement("div");
		t.innerHTML = '<div id="'+boxname+'" class="'+boxname+' '+classname+'"><div class="c"><em>'+msg+'</em></div></div>';	
		document.body.appendChild(t.firstChild); 
		oDlg = document.getElementById('tnybox');
	} else {
		oDlg.firstChild.firstChild.innerHTML = msg;
	}
	middleElement(oDlg);

	sleep(this,waitsec);
	this.nextStep=function() {  
		oDlg['style']['display']='none';
		if (typeof(gourl)!='undefined' && gourl != '') {
			if (gourl=='reload') {
				window.location.reload();
			}else{
				window.location.href = gourl;
			}
		}		
	}
	return false; 	
}

//~ show info dialog, and then closing automatic
function showInfo(msg,gourl,reload,waitsec,type) {
	type = type==undefined||type==''?'msg':type;
	var str_msg     = '<div style="width:100%;height:100%;text-align:center;"><div style="margin:30px 20px 0;font-size:18px;line-height:16px;color:#000000;">'+msg+'</div></div>'; 
	var str_ok      = '<div style="width:340px;height:80px;line-height:80px;text-align:center;margin:0pt auto;"><table align="center" style="margin:0 auto;"><tr><td><img src="' + PHP_SITEURL + 'misc/images/msg/msg_ok.gif"/></td><td><div style="margin-left:5px;display:inline;font-size:18px;color:#000000;">'+msg+'</div></td></tr></table></div>'; 
	var str_error   = '<div style="width:340px;height:80px;line-height:80px;text-align:center;margin:0pt auto;"><table align="center" style="margin:0 auto;"><tr><td><img src="' + PHP_SITEURL + 'misc/images/msg/msg_error.gif"/></td><td><div style="margin-left:5px;display:inline;font-size:18px;color:#000000;">'+msg+'</div></td></tr></table></div>'; 
	var str_warning = '<div style="width:340px;height:80px;line-height:80px;text-align:center;margin:0pt auto;"><table align="center" style="margin:0 auto;"><tr><td><img src="' + PHP_SITEURL + 'misc/images/msg/msg_warning.png"/></td><td><div style="margin-left:5px;display:inline;font-size:18px;color:#000000;">'+msg+'</div></td></tr></table></div>'; 
	var strHtml = type=='msg'?str_msg:(type=='ok'?str_ok:(type=='error'?str_error:str_warning));
	var pop=new Popup({contentType:2,isReloadOnClose:false,isHaveTitle:true,width:340,height:80});
	pop.setContent("title","提示");
	pop.setContent("contentHtml",strHtml);
	pop.build();
	pop.show();
    
	//sleep 3 second
	var defaultWait = type=='error'?_gWaitFail:(type=='warning'?_gWaitWarn:_gWaitSucc);
	var sleepsec = defaultWait*1000;
	if (waitsec != undefined && waitsec!='') {
		sleepsec = waitsec*1000;
	}
	sleep(this,sleepsec);
	this.nextStep=function() {  
		pop.close();
		if (reload != undefined && reload!='' && reload) {
			window.location.reload();
		} else if (gourl != undefined && gourl != '') {
			window.location.href = gourl;
		}
	}
	return false; 
}
//~ show confirm dialog
function showConfirm(msg, callback, param, newheight, newwidth) {
	param = param==undefined? '' : param;
	var height = newheight==undefined?110:newheight;
	var width  = newwidth==undefined?360:newwidth;
	var pop = new Popup({ contentType:3,isLightness:true,isReloadOnClose:false,width:width,height:height}); _gPop = pop;
	pop.setContent("title","确认提示");
	pop.setContent("confirmCon", msg);
	pop.setContent("callBack", callback);
	pop.setContent("parameter",{obj:pop, param:param});
	pop.build();
	pop.show();
}
//~ show alert dialog
function showAlert(msg, newheight, newwidth) {
	var height = newheight==undefined?80:newheight;
	var width  = newwidth==undefined?340:newwidth;
	var pop = new Popup({ contentType:4,isLightness:true,isReloadOnClose:false,width:width,height:height}); _gPop = pop;
	pop.setContent("title","提示");
	pop.setContent("alertCon", msg);
	pop.build();
	pop.show();
}
//========== pupop.ext.js common dlg END

/**
 * 创建一个可编辑区
 * obj: click obj
 * url: ajax dealing with url
 * data: ajax dealing parameters, url string format(f1=xxx&f2=yyy)
 * cbok: ajax succ dealing call back
 * cberr: ajax fail dealing call back
 * extra_cb: extra callback function
 * extra_obj: extra controler element
 */
var click_edit = function(obj, url, data, cbok, cberr, cbchecktxt, extra_cb, extra_obj) {

  var tag = obj.firstChild.tagName;
  if (typeof(tag) != "undefined" && tag.toLowerCase() == "input") {
    return;
  }
  
  /* 保存原始的内容 */
  var ori = obj.innerHTML;
  var val = $.browser.msie ? obj.innerText : obj.textContent;
  if(val=='无') val='';

  /* 创建一个输入框 */
  var minw=$(obj).width() + 20; minw = minw>80 ? minw : 100; 
  var txt = document.createElement("INPUT");
  txt.value = '';
  txt.className = 'ce_txtid';
  txt.style.width = minw + "px" ;
  txt.style.textAlign = 'left';
    
  /* 隐藏对象中的内容，并将输入框加入到对象中 */
  obj.innerHTML = "";
  obj.appendChild(txt);  
  
  /* 传入参数处理 */
  url = typeof url == 'undefined' ? '' : url;
  data= typeof data== 'undefined' ? '' : data;
  var uc = data=='' ? '' : '&';
  cbok = typeof cbok=='undefined' ? null : cbok;
  cberr = typeof cberr=='undefined' ? null : cberr;
  extra_obj = typeof extra_obj=='undefined' ? null : extra_obj;
  
	/* 编辑区获得焦点的处理函数 */
  txt.onfocus = function(e) {
	  if (typeof extra_cb == 'function') {
	  	extra_cb(extra_obj);
	  }  	
  }

  /* 编辑区输入事件处理函数 */
  txt.onkeypress = function(e) {
		if($.browser.msie) { // IE
			keynum = window.event.keyCode
		}
		else {// Netscape/Firefox/Opera
			keynum = e.keyCode
		}

    if (keynum == 13) {
      $(this).blur();
      return false;
    }

    if (keynum == 27) {
      obj.innerHTML = ori;
    }
  }  
        
  /* 编辑区失去焦点的处理函数 */
  txt.onblur = function(e) {
    if (txt.value != ori && txt.value.trim() != '') {
    	var theval = txt.value.trim();
    	if(typeof cbchecktxt == 'function') theval=cbchecktxt(theval);
    	$.ajax({
				url:		url,
				type:		'POST',
				data:		data + uc + 'txt='+theval,
				dataType:	'json',
				success: 	cbok,
				error: cberr
			});
    }
    else {
      obj.innerHTML = ori;
    }
    
	  if (typeof extra_cb == 'function') {
	  	extra_cb(extra_obj);
	  }    
  }
  
  /* 设置数据 */
  txt.value = (val == 'N/A') ? '' : val;  
  txt.focus();
  txt.select();
};

function checkEmail(email) {
	if (email != '') {
		var testStr = email;
		if (/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(testStr)) {
			return true;
		} else {
			return false;
		}
	}
	return false;
}
// textarea focus 光标在文字最后
function setFocus(obj_id) {//该代码只在IE6,7 Firefox测试过
	//判断是否IE浏览器
	if(!(window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)) { //非IE浏览器
		document.getElementById(obj_id).focus();
	}
	else { //IE浏览器
		var e = event.srcElement;
		var r =document.getElementById(obj_id).createTextRange();
		r.moveStart("character",document.getElementById(obj_id).value.length);
		r.collapse(true);
		r.select();
	}
}

function slide2Top(callback) {
	if (typeof callback != 'function') {
		callback = null;
	}
	var $o = $.browser.safari ? $('body') : $('html');
	$o.animate({scrollTop:0}, 800, '', callback);
	return false;
}
