/******************************检测浏览器版本******************************/

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6);
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var isFirefox = (navigator.userAgent.indexOf("Firefox") != -1) ? true : false;
var IEVer = getIEVer();
//获取IE版本号
function getIEVer(){
	var iVerNo = 0;
	var sVer = navigator.userAgent;
	if(sVer.indexOf("MSIE")>-1){
		var sVerNo = sVer.split(";")[1];
		sVerNo = sVerNo.replace("MSIE","");
		iVerNo = parseFloat(sVerNo);
	}
	return iVerNo;
}


var _$ = function (id) {
	return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
	create: function() {
		return function() { this.initialize.apply(this, arguments); }
	}
}

var Extend = function(destination, source) {
	for (var property in source) {
		destination[property] = source[property];
	}
}

var Bind = function(object, fun) {
	return function() {
		return fun.apply(object, arguments);
	}
}

var Each = function(list, fun){
	for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
};

var Contains = function(a, b){
	return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16);
}

var BindAsEventListener = function(object, fun) {
	var args = Array.prototype.slice.call(arguments).slice(2);
	return function(event) {
		return fun.apply(object, [event || window.event].concat(args));
	}
}

var CurrentStyle = function(element){
	return element.currentStyle || document.defaultView.getComputedStyle(element, null);
}

function addEventHandler(oTarget, sEventType, fnHandler) {
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	} else if (oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = fnHandler;
	}
};

function removeEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {
        oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {
        oTarget.detachEvent("on" + sEventType, fnHandler);
    } else { 
        oTarget["on" + sEventType] = null;
    }
};

/**
 * String处理函数
 */
String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"");};
String.prototype.js_escape=function(){return this.replace(/\\/g, "\\\\").replace(/'/g, "\\&#39;").replace(/"/g, "\\&#34;");};
String.prototype.escape_freemark=function(){return this.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g,"&quot;");};
String.prototype.unescape_freemark=function(){return this.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g,"\"");};

/**
 * 检查文件后缀名
 * jpg, rar 或 png
 */
function checkFileType(fileName){
	var re = /\.(RAR|JPG|PNG)$/i;
	
	return re.test(fileName);
}

/**
 * 验证是否是正确的Email地址
 * @param	{string}	email	Email地址
 * @return	{boolean}	true表示是正确的Email地址
 */
function chkemail(email){
	if (email == null || email.length == 0) return false;                                                                          
	
	var	_aMatch = email.match(/^(.+)@(.+)$/);
	if (null == _aMatch)
		return false;

	var _sUser 	= _aMatch[1];
	var _sDomain= _aMatch[2];

	var _sAtom 	= '\[^\\s\\(\\)<>@,;:\\\\\\\"\\.\\[\\]\]+';
	var _sWord 	= '(' + _sAtom + '|' + '(\"[^\"]*\")' + ')';
	var	_rUser 	= 	new RegExp('^' + _sWord + '(\\.' + _sWord + ')*$');
	var	_rDomain= 	new RegExp('^' + _sAtom + '(\\.' + _sAtom + ')*$');
	
	if (!_rUser.test(_sUser)) 
		return false;
	
	var _aIp 	= _sDomain.match(/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/);
	if (null != _aIp){
		return _aIp.any(function(e, idx){
					if (idx == 0) return true;
					if (e > 255)  return false;
					}) 
				? true : false;
	}
	
	var _aDomain= _sDomain.match(_rDomain);
	if (null == _aDomain)
		return false;
	
	_aDomain	= _sDomain.match(new RegExp(_sAtom, 'g'));
	var _iLen 	= _aDomain[_aDomain.length - 1].length;
	if (_iLen < 2 || _iLen > 3)
		return false;
		
	return _aDomain.length >= 2 ? true : false;
}

/**
 * cookie函数
 */
var Cookie = {
	set : function(name, value, expirationInDays, path, domain) {
		var cookie = escape(name) + "=" + escape(value);
		if (expirationInDays) {
			var date = new Date();
			date.setDate(date.getDate() + expirationInDays);
			cookie += "; expires=" + date.toGMTString();
		} 

		if (path) {
			cookie += ";path=" + path;
		}
		if (domain) {
			cookie += ";domain=" + domain;
		}
		
		document.cookie = cookie;

		if (value && (expirationInDays == undefined || expirationInDays > 0) && !this.get(name)) {
			return false;
		}
	},

	clear : function(name, path) {
		this.set(name, "", -1, path, ckDomain);
	},
	
	get : function(name) {
		var pattern = "(^|;)\\s*" + escape(name) + "=([^;]+)";
		var m = document.cookie.match(pattern);
		if (m && m[2]) {			
			return unescape(m[2]);
		}else{ 
			return null;
		}
	}
}  

function RTrim(VALUE, w_spaces){
	if (w_spaces == undefined || w_spaces == null) {
		w_spaces = [];
		w_spaces.push(String.fromCharCode(32));
	}
//	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return"";
	}
	var iTemp = v_length -1;

	while(iTemp > -1){
		var ch = VALUE.charAt(iTemp);
		var match = false;
		for (var i = 0; i < w_spaces.length; i++) {
			if (ch == w_spaces[i]) {	
				match = true;
				break;			
			} 
		}
		
		if (!match) {
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;

	} //End While
	return strTemp;

} //End Function

function LTrim(VALUE, w_spaces){
	if (w_spaces == undefined || w_spaces == null) {
		w_spaces = [];
		w_spaces.push(String.fromCharCode(32));
	}
//	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length){
		var ch = VALUE.charAt(iTemp);
		var match = false;
		for (var i = 0; i < w_spaces.length; i++) {
			if (ch == w_spaces[i]) {	
				match = true;
				break;			
			} 
		}
		
		if (!match) {
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function
