String.prototype.trim=function(){return this.replace(/(^[\s]*)|([\s]*$)/g,"")};
String.prototype.inc=function(k1,k2){return k2==null?(this.indexOf(k1)>-1?true:false):(k2+this+k2).indexOf(k2+k1+k2)>-1?true:false};
String.prototype.reallength=function(){return this.replace(/[^\x00-\xff]/g,"^^").length};
var body=document.body;
function isFilled(input_blank){while(input_blank.value.indexOf(" ")==0)input_blank.value=input_blank.value.substring(1,input_blank.value.length);if((input_blank.value=="")||(input_blank.value==null)){return false}else{return true}};
function isNull(_sVal){return(_sVal==""||_sVal==null||_sVal=="undefined")};
function setHome(){try{window.external.AddFavorite(window.document.location,window.document.title)}catch(e){}};
function getOffset(field){var x=0;var y=0;while(field){x+=field['offsetLeft'];y+=field['offsetTop'];field=field.offsetParent};return{x:x,y:y}};
showLogin=function(forward_url){if(!forward_url){forward_url=location.href}url="/login.php";url+="?url_forward="+escape(forward_url);if(parent){parent.location.href=url}else{location.href=url}};

/**
 * 调用模块方法，好像没有用了
 */
function call_method(member_id, method, target, return_url){
	if (jQuery) {
		call_method_jquery(member_id, method, target, return_url)
	}
	else if (Prototype){
		call_method_prototype(member_id, method, target, return_url);
	}
};

function call_method_jquery(member_id, method, target, return_url){
	if (!return_url) {
		return_url = location.href;
	}
	
	$.getScript('/js/json2.js', function(){
		var method_j = JSON.stringify(method);
		var url = "/call_method.php?member_id="+member_id+"&param="+encodeURIComponent(method_j)+"&return_url="+encodeURIComponent(return_url);
		if (!target) {
			try {
				var e = window.event || event;
				var event_src = e.srcElement || e.target;
			
				if ($(event_src).is("a")) {
					$(event_src).attr('href', url);
				}
				else {
					window.open(url, '_self');
				}
			}
			catch (e) {window.open(url, '_self');}
		}
		else {
			window.open(url, target);
		}	
	})
};

function call_method_prototype(member_id, method, target, return_url){
	if (!return_url) {
		return_url = location.href;
	}
	var url = "/call_method.php?member_id="+member_id+"&param="+encodeURIComponent(method.toJSON())+"&return_url="+encodeURIComponent(return_url);
	if (!target) {
		try {
			var event_src = Event.element(window.event || event);
			if (event_src.tagName.toLowerCase() == 'a') {
				event_src.href = url;
			}
			else {
				window.open(url, '_self');
			}
		}
		catch (e) {window.open(url, '_self');}
	}
	else {
		window.open(url, target);
	}
}

/**
 * 统计点击数
 */
function hit_stat(item_type, item_id, hit_field){
	var url='/hit_stat.php?item_type='+item_type+'&item_id='+item_id;
	if (item_field) {
		url += '&item_field='+hit_field;
	}
	if (jQuery) {
		$.get(url);
	}
	else if (Prototype){
		new Ajax.Request(url,{method:'get'});
	}
}

/**
 * 调用模块方法
 */
function call_module_method(options, param, oncomplete) {
	var use_ajax = typeof(oncomplete) == 'function';

//	if (jQuery) {
//		$.get(url);
//	}
//	else if (Prototype){
//		new Ajax.Request(url,{method:'get'});
//	}
	
//	Object.extend({module_type:'', action:'', method:'post'}, options || {});
	var module_type = options.module_type || "";
	var action = options.action;
	
	var url = '/module/call_module_method.php';
	var str_param = '?member_id='+member_id+'&module_type='+module_type+'&action='+action;
	if (typeof(param) == 'object') {
		for (p in param) {
			str_param += '&' + p + '=' + param[p];
		}
	}
	else {
		str_param += param;
	}
	if (use_ajax) {
		str_param += '&use_ajax=1';
		if (jQuery) {
			$.getJSON(url+str_param, function(json){
				if (json.err) {
					alert(json.err_msg);
				}
				else{
					oncomplete(json.result);
				}
			});
		}
		else if (Prototype){
			new Ajax.Request(url, {
			parameters:str_param, 
			onComplete:function call_module_method_callback(ajax) {
							var res = eval('('+ajax.responseText+');');
							if (res.err) {
								alert(res.err_msg);
							}
							else {
								oncomplete(res.result);
							}
						}
			});
		}
	}
	else {
//		Object.extend({target:'_self', redirect_url:false, message:false}, oncomplete || {});
		var target = oncomplete.target || '_self';
		var redirect_url = oncomplete.redirect_url || false;
		var message = oncomplete.message || false;
		if (redirect_url) {
			str_param += '&redirect_url='+redirect_url;
		}
		if (message) {
			str_param += '&message='+message;
		}
		url += str_param;
		target = '_self';
		window.open(url, target);
	}
}

/**
 * URL调转
 */
function go_href_url(url) {
	try {
		if (jQuery) {
			var e = window.event || event;
			var src = e.srcElement || e.target;
			if (jQuery(src).is("a")){
				jQuery(src).css('color', 'green');
				jQuery(src).attr('href', url);
			}
			else {
				window.open(url, '_self');
			}
		}
		else if (Prototype){
			var event_src = Event.element(window.event || event);
			if (event_src.tagName.toLowerCase() == 'a') {
				alert('here is prototype');
				event_src.style.border = '1px solid red';
				event_src.href = url;
			} else {
				window.open(url, '_self');
			}
		}
	} catch (e) {window.open(url, '_self');}
}

/**
 * 加载AJAX全局Start和Stop效果
 */
if (jQuery) {
	$(document).ready(function(){
		$("*").ajaxStart(function(){
			$("#ajax_status").css('top', document.body.scrollTop+2)
			.show()
			.html('正在加载');
		}).ajaxComplete(function(){
			$("#ajax_status").hide();
		});
		$("body").append('<div id="ajax_status"></div>');
		$("#ajax_status").css({
			position:"absolute",
			top:"2px",
			right:"2px",
			display:"none",
			padding:"2px",
			fontSize:"12px",
			color:"white",
			background:"#cc0000"
		});
	});
}