function imgAuto(img, maxW, maxH) {
	var oriImg = document.createElement("img");
	oriImg.src = img.src;
	oriImg.onload = function(){
		if (oriImg.width == 0 || oriImg.height == 0)
			return;
		var oriW$H = oriImg.width / oriImg.height;
		// var maxW$H = maxW / maxH;

		if (oriImg.height > maxH) {
			img.height = maxH;
			// img.removeAttribute("width");
			img.width = maxH * oriW$H;
		}
		if (img.width > maxW) {
			img.width = maxW;
			// img.removeAttribute("height");
			img.height = maxW / oriW$H;
		}

		if (arguments.length == 3) {
			if (img.height > 0) {
				img.style.marginTop = (maxH - img.height) / 2 + "px";
				img.style.marginLeft = (maxW - img.width) / 2 + "px";
			}
		}
	};
	
}

function errorImage(obj, url) {
	if (url == null || url == "") {
		obj.src = "/images/noimage.jpg";
	} else {
		obj.src = url;
		obj.onerror = function() {
			obj.src = "/images/noimage.jpg";
		};
	}
}

/**
 * parse url search to map
 * 
 * @param src
 *            url search
 * @return params map
 */
function parseParams(src) {
	var paramMap = {};
	if(src==null||src=="")
		return paramMap;
	var params = src.split("&");
	for ( var i = 0; i < params.length; ++i) {
		var indexOfEq = params[i].indexOf("=");
		var name, value="";
		if(indexOfEq == -1) {
			name = params[i];
		} else {
			name = params[i].substring(0, indexOfEq);
			if(params[i].length > indexOfEq + 1)
				value = params[i].substring(indexOfEq+1);
		}
		addParamToMap(paramMap, name, value);
	}
	return paramMap;
}

function addParamToMap(map, name, value) {
	if (!map[name]) {
		map[name] = [];
	}
	map[name].push(value);
}

function paramMapToURL(paramMap) {
	var v = [];
	for(var name in paramMap) {
		if(paramMap[name].length > 0) {
			for(var i = 0; i < paramMap[name].length; ++i)  {
				v.push(name + "=" + paramMap[name][i]);
			}
		} else {
			v.push(name);
		}
	}
	return v.join("&");
}

function copyTo(des, src, attrNames) {
	var names = attrNames.split(',');
	for(var i = 0; i < names.length; ++i) {
		if(src[names[i]])
			des[names[i]] = src[names[i]];
	}
	return des;
}

//illegalChars in keyword
//var ILLEGALCHARS = [['%','%25'], ['#','%23'], ['&','%26'], ['+','%2B'], ['@','%40']];//-号必须在第一位
var ILLEGALCHARS = [['!','%21'], ['(','%28'], [')','%29'], ['\'','%27']];//-号必须在第一位
function encodeKeyWord(word) {
	for (var i = 0; i < ILLEGALCHARS.length; ++i) {
		if (word.indexOf(ILLEGALCHARS[i][0]) != -1) {
			word = word.replace(new RegExp('[' + ILLEGALCHARS[i][0] + ']', 'g'), ILLEGALCHARS[i][1]);
		}
	}
	return word;
}


//获取参数
function getQueryString(name){
// 如果链接没有参数，或者链接中不存在我们要获取的参数，直接返回空
if(location.href.indexOf("?")==-1 || location.href.indexOf(name+'=')==-1){
return '';
}

// 获取链接中参数部分
var queryString = location.href.substring(location.href.indexOf("?")+1);
 
// 分离参数对 ?key=value&key2=value2
var parameters = queryString.split("&");
 
var pos, paraName, paraValue;
for(var i=0; i<parameters.length; i++){
// 获取等号位置

pos = parameters[i].indexOf('=');
if(pos == -1) { continue; }
// 获取name 和 value
paraName = parameters[i].substring(0, pos);
paraValue = parameters[i].substring(pos + 1);

// 如果查询的name等于当前name，就返回当前值，同时，将链接中的+号还原成空格

if(paraName == name){
return unescape(paraValue.replace(/\+/g, " "));
}
}
return '';
};
