// 
// [common.js] Copyright (C) 2008-2009 DDM
//

var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
var JQuery_datepicker_language = {closeText:'关闭',prevText:'&#x3c;上月',nextText:'下月&#x3e;',currentText:'今天',monthNames:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],monthNamesShort:['一','二','三','四','五','六','七','八','九','十','十一','十二'],dayNames:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],dayNamesShort:['周日','周一','周二','周三','周四','周五','周六'],dayNamesMin:['日','一','二','三','四','五','六'],weekHeader:'周',dateFormat:'yy-mm-dd',firstDay:1,isRTL:false,showMonthAfterYear:true,yearSuffix:'年'};

function $id(idname){
	return document.getElementById(idname);
}

function Ajax() {
	var aj = new Object();
	aj.targetUrl = '';
	aj.sendString = '';
	aj.resultHandle = null;
	aj.contentType = 'html';
	aj.loading = '<img src="image/ajax_load.gif" style="margin: 3px; vertical-align: middle" /> Loading... ';
	
	aj.createXMLHttpRequest = function() {
		var request = false;
		if(window.XMLHttpRequest) {
			request = new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
			for(var i=0; i<versions.length; i++) {
				try {
					request = new ActiveXObject(versions[i]);
					if(request) return request;
				} catch(e) {/*alert(e.message);*/}
			}
		}
		return request;
	}

	aj.request = aj.createXMLHttpRequest();

	aj.processHandle = function() {
		if(aj.request.readyState == 4) {
			if(aj.request.status == 200){
				if(aj.contentType=='xml'){
					aj.resultHandle(aj.request, aj.request.responseXML.documentElement.childNodes);
				}else if(aj.contentType=='json'){
					aj.resultHandle(aj.request, eval("("+aj.request.responseText+")"));
				}else{
					aj.resultHandle(aj.request, aj.request.responseText);
				}
			}else if(aj.request.status){
				aj.resultHandle(aj.request, false);
			}
		}
	}

	aj.get = function(targetUrl, resultHandle, contentType) {
		aj.targetUrl = targetUrl;
		aj.request.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		
		if(contentType){
			aj.contentType = contentType;
		}
		if(window.XMLHttpRequest) {
			aj.request.open('GET', aj.targetUrl);
			aj.request.send(null);
		} else {
		    aj.request.open("GET", targetUrl, true);
		    aj.request.send();
		}
	}

	aj.post = function(targetUrl, sendData, resultHandle, contentType) {
		var sendString = "post_vars=1";
		if(typeof(sendData)=="object"){
			for(var key in sendData){
				sendString += "&"+key+"="+encodeURIComponent(sendData[key]);
			}
		}else if(sendData){
			sendString += "&"+sendData;
		}
		aj.targetUrl = targetUrl;
		aj.sendString = sendString;
		aj.request.onreadystatechange = aj.processHandle;
		aj.resultHandle = resultHandle;
		if(contentType)aj.contentType = contentType;
		
		aj.request.open('POST', targetUrl, true);
		aj.request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		aj.request.send(aj.sendString);
	}
	return aj;
}

function hashString(key){
	var query=key;
	var urlvars=window.location.hash;
	var varArray;
	var i;
	var index;
	var qs="";
	if(urlvars.length>1){
		urlvars=urlvars.substr(1);
		varArray=urlvars.split("&");
		for(i=0;i<varArray.length;i++){
			index=varArray[i].indexOf("=");
			if(query==varArray[i].substring(0,index)){
				qs=varArray[i].substr(index+1);
				break;
			}
		}
	}
	return(qs);
}

function QueryString(key){
	var query=key;
	var urlvars=window.location.search;
	var varArray;
	var i;
	var index;
	var qs="";
	if(urlvars.length>1){
		urlvars=urlvars.substr(1);
		varArray=urlvars.split("&");
		for(i=0;i<varArray.length;i++){
			index=varArray[i].indexOf("=");
			if(query==varArray[i].substring(0,index)){
				qs=varArray[i].substr(index+1);
				break;
			}
		}
	}
	return(qs);
}

function attach_Event(obj,e,fun){
	if(document.attachEvent){
		obj.attachEvent("on"+e,fun);
	}else{
		obj.addEventListener(e,fun,false);
	}
}

function detach_event(obj,e,fun){
	if(document.detachEvent){
		obj.detachEvent("on"+e,fun);
	}else{
		obj.removeEventListener(e,fun,false);
	}
}

function SetImageSize(ImgD,w,h,restore){
	var image=new Image();
	var iwidth = w; 
	var iheight = h; 
	var flag=false;
	image.src=ImgD.src;
	if(image.width>0 && image.height>0){
		flag=true;
	}
	if(flag&&image.width>iwidth&&image.width>=image.height){ 
		ImgD.width=iwidth;
		ImgD.height=(image.height*iwidth)/image.width;
		if(ImgD.height>iheight){
			ImgD.height=iheight;
	   		ImgD.width=(image.width*iheight)/image.height;
		}
	}else if(flag&&image.height>iheight&&image.height>=image.width){ 
		ImgD.height=iheight;
		ImgD.width=(image.width*iheight)/image.height;
		if(ImgD.width>iwidth){
			ImgD.width=iwidth;
			ImgD.height=(image.height*iwidth)/image.width;
		}
	}else if(flag&&restore){
		ImgD.width=image.width;
		ImgD.height=image.height;
	}
}

function set_divimgs_size(div,w,h){
	if(!document.getElementById(div))return;
	var imgs = document.getElementById(div).getElementsByTagName('img');
	for(var i=imgs.length-1; i>=0; i--){
		attach_Event(imgs[i],"load",function(evt){
			var elem;
			if (evt.target) {
				elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target;
			} else {
				elem = evt.srcElement;
			}
			SetImageSize(elem,w,h,false);
		});
	}
}

function openwin(url,winname,winw,winh,wint,winl){
	return window.open(url,winname,'width='+winw+',height='+winh+',top='+wint+',left='+winl+',directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no');
}

function update_code(imgobj,p){
	imgobj.src = (p?p:imgobj.src) + "?t=" + (new Date().getTime());
}

function add_tablerow(){
	var numargs = arguments.length;
	if(numargs<2)return false;
	
	var i,tr,td;
	var o_tr = {"table":arguments[0],"tr":0,"td":[]};
	if(is_ie){
		tr = arguments[0].insertRow();
	}else{
		tr = document.createElement('tr');
		arguments[0].appendChild(tr);
	}
	o_tr.tr = tr;
	for(i=1; i<numargs; i++){
		if(is_ie){
			td = tr.insertCell();
			td.innerHTML = arguments[i];
		}else{
			td = document.createElement('td');
			td.innerHTML = arguments[i];
			tr.appendChild(td);
		}
		o_tr.td.push(td);
	}
	return o_tr;
}

/**************************************************************************************/

function getRadio(radioName){
	if(!radioName)return "";
	if(radioName.length){
		var len = radioName.length;
		for(var i=0; i<len; i++){
			if(radioName[i].checked){
				return radioName[i].value;
			}
		}
	}else if(radioName.checked){
		return radioName.value;
	}
	return "";
}

function getSelect(selectName){
	if(selectName.options){
		return selectName.options[selectName.selectedIndex].value;
	}else{
		return "";
	}
}

function getCheckbox(checkboxName){
	if(!checkboxName)return "";
	
	var len = checkboxName.length;
	var values = "";
	
	if(len){
		for(var i=0; i<len; i++){
			if(checkboxName[i].checked){
				values += "," + checkboxName[i].value;
			}
		}
	}else if(checkboxName.checked){
		values += "," + checkboxName.value;
	}
	
	if(values.length>1){
		values = values.substr(1);
	}
	
	return values;
}

function setselect(selectobj, value) {
	var len = selectobj.options.length;
	for(i = 0;i < len;i++) {
		if(selectobj.options[i].value == value) {
			selectobj.options[i].selected = true;
		}
	}
}

function checkall(name) {
	var e = is_ie ? event : checkall.caller.arguments[0];
	obj = is_ie ? e.srcElement : e.target;
	var arr = document.getElementsByName(name);
	var k = arr.length;
	for(var i=0; i<k; i++) {
		arr[i].disabled || (arr[i].checked = obj.checked);
	}
}

function check_input(obj,defaultValue,minValue,maxValue){
	if(obj.value==""||isNaN(obj.value)){
		obj.value = defaultValue;
	}else if(obj.value<minValue){
		obj.value = minValue;
	}else if(obj.value>maxValue){
		obj.value = maxValue;
	}
}

/**************************************************************************************/

function is_mail(str){
	var re = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i;
	return re.test(str);
}

function is_int(num){
	var re = /^[\-]{0,1}[\d]+$/;
	return re.test(num);
}

function is_float(num){
	/*var re = /^\d+(\.\d+)?$/;*/
	var re = /^\-{0,1}\d+(\.\d+)?$/;
	return re.test(num);
	
	/*return (!isNaN(parseFloat(num))) ? true : false;*/
}

function is_legalname(str){
	return !/[~!#\$%\^&\*\(\),=\+\\\|'\"\s]+/i.test(str);
}

function empty(str){
	return !str || str=="" || str=="0" || str.length==0 || /^\s+$/.test(str);
}

function trim(str){
	return str.replace(/(^\s*)|(\s*$)/g,'');
}

function cutstr(str, len) {
	var newLength = 0;
	var newStr = "";
	var chineseRegex = /[^\x00-\xff]/g;
	var singleChar = "";
	var strLength = str.replace(chineseRegex, "**").length;
	len *= 2;
	if(strLength<=len)return str;
	else len -= 2;
	for (var i = 0; i<strLength; i++) {
		singleChar = str.charAt(i).toString();
		newLength += singleChar.match(chineseRegex) == null ? 1 : 2;
		if (newLength>len)break;
		newStr += singleChar;
	}
	if (strLength>len)newStr += "...";
	return newStr;
}

/**************************************************************************************/

function round(num,precision){
	if(isNaN(num))return 0;
	if(!precision || !is_int(precision))precision = 0;
	
	var p = 1;
	for(var i=0; i<precision; i++)p *= 10;
	
	return p==1 ? Math.round(num) : Math.round(num*p)/p;
}

function inner_text(elems){
	var ret = "", elem;
	for(var i = 0; elems[i]; i++){
		elem = elems[i];
		// Get the text from text nodes and CDATA nodes
		if(elem.nodeType === 3 || elem.nodeType === 4){
			ret += elem.nodeValue;
		// Traverse everything else, except comment nodes
		}else if(elem.nodeType !== 8){
			ret += inner_text(elem.childNodes);
		}
	}
	return ret;
}

/*
* PHP array array_merge ( array array1 [, array array2 [, array ...]] )
* JavaScript Object merge ( Object1 [, Object2 [, Object ...]] )
*/
function merge(){
	var numargs = arguments.length;
	var i,key,return_value = false;
	if(numargs){
		return_value = {};
		for(i=0; i<numargs; i++){
			if(typeof(arguments[i])=="object"){
				for(key in arguments[i]){
					return_value[key] = arguments[i][key];
				}
			}
		}
	}
	return return_value;
}

function setXY_img(e,id){
	var obj = document.getElementById(id);
	var _x = e.clientX ? e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) : e.pageX;
	var _y = e.clientY ? e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) : e.pageY;
	
	obj.style.top = (_y + 15) + 'px';
	obj.style.left = (_x + 10) + 'px';
	
	if(obj.clientWidth + parseInt(obj.style.left) > document.documentElement.clientWidth + (document.documentElement.scrollLeft || document.body.scrollLeft) - 5){
		obj.style.left = (parseInt(obj.style.left) - obj.clientWidth - 5) + 'px';
	}
	if(obj.clientHeight + parseInt(obj.style.top) > document.documentElement.clientHeight + (document.documentElement.scrollTop || document.body.scrollTop) - 10){
		obj.style.top = (parseInt(obj.style.top) - obj.clientHeight - 5) + 'px';
	}
}

function moveXbySlicePos (x, obj) { 
	if (!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = obj;
		var lastOffset = 0;
		while(par){
			if( par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);
			if( (par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);
			if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}
	} else if (obj.x) x += obj.x;
	return x;
}

function moveYbySlicePos (y, obj) {
	if(!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = obj;
		var lastOffset = 0;
		while(par){
			if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);
			if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
			if( par.offsetTop != 0 ) lastOffset = par.offsetTop;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}		
	} else if (obj.y >= 0) y += obj.y;
	return y;
}

function element_width(element,x){
	if(!element)return 0;
	if(!x)x = 0;
	if(element.tagName && element.tagName.toLowerCase()=="img"){
		if(element.width)return element.width+x;
		else{
			var image = new Image();
			image.src = element.src;
			return image.width+x;
		}
	}else{
		return (element.clientWidth ? element.clientWidth : element.offsetWidth)+x;
	}
}

function element_height(element,y){
	if(!element)return 0;
	if(!y)y = 0;
	if(element.tagName && element.tagName.toLowerCase()=="img"){
		if(element.height)return element.height+y;
		else{
			var image = new Image();
			image.src = element.src;
			return image.height+y;
		}
	}else{
		return (element.clientHeight ? element.clientHeight : element.offsetHeight)+y;
	}
}

function add_class(element,value){
	if(empty(element.className)){element.className = value;return true;}
	if((" "+element.className+" ").indexOf(" "+value+" ")>=0)return false;
	element.className += " "+value;return true;
}

function remove_class(element,value){
	var class_name = element.className;
	if(empty(class_name))return "";
	class_name = (" "+class_name+" ").replace(" "+value+" "," ").replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g,"");
	element.className = class_name;
	return class_name;
}

function show_notice(obj,expression,text,float,type,x,y){
	if(!obj)return false;
	var notice;
	var id_string = "notice"+(obj.name?obj.name:(obj.id?obj.id:"common"));
	var _x = 0,_width = 0;
	if(!float)notice = $id(id_string);
	if(typeof(type)=="undefined")type = 2;
	

	if(expression){
		if(float){
			if(typeof(x)=="undefined")x = 0;
			if(typeof(y)=="undefined")y = 2;
			show_notice2(obj,text,type,false,x,y,0,true);
		}else{
			if(typeof(x)=="undefined")x = 2;
			if(typeof(y)=="undefined")y = -4;
			if(!notice){
				notice = $e("div",document.body,{"id":id_string,"className":"input_notice_box"});
				$e("div",$e("div",notice,{"id":id_string+"background"}),{"id":id_string+"input_notice_box_body"}).innerHTML = text;
				/*attach_Event(obj,"keydown",function(e){
					show_notice(obj,false,'',float,type,x,y);
				});*/
			}else{
				$id(id_string+"input_notice_box_body").innerHTML = text;
			}
			notice.style.display = "";
			$id(id_string+"input_notice_box_body").className = "input_notice_box_body_border input_notice_box_body"+type;
			$id(id_string+"background").className = "background1";
			var obj_x = moveXbySlicePos(0,obj);
			_x = obj_x+element_width(obj)+x;
			_width = element_width(document.body);
			if(_x+100>_width){
				_x = obj_x-element_width(notice)-x;
				$id(id_string+"background").className = "background2";
			}
			if(_x<100){
				notice.style.display = "none";
				return show_notice(obj,expression,text,true,type,x,y);
			}
			notice.style.left = _x+"px";
			notice.style.top = moveYbySlicePos(y,obj)+"px";
		}
		if(type == 2){
			if(obj.style)obj.style.backgroundColor = "#FF7979";
			try{
				obj.focus();
			}catch(e){}
		}
		return true;
	}else{
		if(float){
			show_notice2(obj,false,type);
		}else if(notice){
			notice.style.display = "none";
		}
		if(type==2 && obj.style)obj.style.backgroundColor = "";
		return false;
	}
}

function show_notice2(element,text,type,hiddenevent,x,y,time,closebtn){
	if(typeof element == "string")element = $id(element);
	if(!type)type = 0;
	if(!hiddenevent || hiddenevent=="")hiddenevent = 0;
	if(!x)x = 0;
	if(!y)y = 2;
	if(isNaN(time))time = 200;
	if(typeof closebtn == "undefined")closebtn = true;
	if(!element){
		return false;
	}else if(time>0 && element==-1){
		element = window.show_notice2_element;
	}else if(time>0 && text){
		window.show_notice2_element = element;
		window.show_notice2_iTimeoutID = window.setTimeout('show_notice2(-1,"'+text+'",'+type+',"'+hiddenevent+'",'+x+','+y+','+time+','+closebtn+')',time);
		if(!hiddenevent)hiddenevent = "mouseout";
		attach_Event(element,hiddenevent,function(){
			if(window.show_notice2_iTimeoutID){
				window.clearTimeout(window.show_notice2_iTimeoutID);
				window.show_notice2_iTimeoutID = 0;
			}
		});
		return false;
	}
	var _x = 0,_y = 0,_width = 20,_height = 20,scroll_top = 0;
	var id_string = "notice_"+(element.name?element.name:(element.id?element.id:"common"));
	var notice = $id(id_string);
	var _notice_box;
	if(text){
		if(!notice){
			/*if(!START_PATH)START_PATH = "../";*/
			notice = $e("div",document.body,{"id":id_string,"className":"notice_box"});
			notice.innerHTML = '<div><div id="'+id_string+'_body"><div class="notice_box_closebtn"></div><div style="padding-top:1px;"></div></div></div>';
		}
		notice.style.display = "";
		$id(id_string+"_body").style.borderBottomWidth = "1px";
		$id(id_string+"_body").style.borderTopWidth = "0px";
		$id(id_string+"_body").className = "notice_box_body_bg"+type;
		if(!closebtn && type)$id(id_string+"_body").style.backgroundPosition = "5px 6px";
		(_notice_box = notice.getElementsByTagName("div")[0]).className = "notice_box_top";
		$id(id_string+"_body").getElementsByTagName("div")[0].innerHTML = closebtn ? '<img src="'+(typeof(START_PATH)=="string"?START_PATH:"../")+'images/common/notice_box_closebtn.gif" width="9" height="9" border="0" onclick="$id(\''+id_string+'\').style.display = \'none\';" />' : '<span style="display:block;width:9px;height:3px;overflow:hidden;clear:both;"></span>';
		$id(id_string+"_body").getElementsByTagName("div")[1].innerHTML = text;
		_x = moveXbySlicePos(x,element);
		_y = moveYbySlicePos(y,element)+element_height(element);
		_width = element_width(notice);
		scroll_top = document.documentElement.scrollTop || document.body.scrollTop;
		notice.style.left = _x+"px";
		notice.style.top = _y+"px";
		_height = element_height(notice);
		/*if(is_ie){
			if(_y<window.event.clientY+scroll_top){
				_y = window.event.clientY+scroll_top+2;
			}
		}*/
		
		if(_y+_height>scroll_top+document.documentElement.clientHeight){
			_notice_box.className = "notice_box_top2";
			$id(id_string+"_body").style.borderBottomWidth = "0px";
			$id(id_string+"_body").style.borderTopWidth = "1px";
			_y = _y-_height-element_height(element)-y-2;
		}
		//alert(_x+"+100>"+document.documentElement.clientWidth+" && "+_height+">50");
		if(_x+160>document.documentElement.clientWidth && _height>50){
			_x = (_width>=document.documentElement.clientWidth || _width>_x) ? 0 : _x-_width+30+x;
			if(_notice_box.className=="notice_box_top2"){
				notice.style.left = _x+"px";
				_notice_box.className = "notice_box_top2_0";
				_y += _height-element_height(notice);
			}else{
				_notice_box.className = "notice_box_top1_0";
			}
		}
		notice.style.left = _x+"px";
		notice.style.top = _y+"px";
		if(hiddenevent){
			if(!element.hiddenevent){
				attach_Event(element,hiddenevent,function(){notice.style.display = "none";});
				element.hiddenevent = "defined";
			}
		}
	}else if(notice){
		notice.style.display = "none";
	}
	return notice;
}

function $notice(element,options){
	if(typeof(options)=="string" || typeof(options)=="number"){options = {'text':options};}
	else if(typeof(options)!="object"){options = {'text':false};}
	var _opt = merge({
		'text':false,
		'type':0,
		'icon':0,
		'x':0,
		'y':2,
		'hiddenevent':'mouseout',
		'time':200,
		'closebtn':false,
		'btns':false
	},options);
	var $return = {"buttons":[]};
	if(_opt.type==1){if(typeof(options.x)=="undefined")_opt.x = 2;if(typeof(options.y)=="undefined")_opt.y = -4;}
	if(_opt.btns && typeof(_opt.btns)=="object")_opt.time = 0;
	switch (_opt.type){
		case 0:
			$return.notice = show_notice2(element,_opt.text,_opt.icon,_opt.hiddenevent,_opt.x,_opt.y,_opt.time,_opt.closebtn);
			if(_opt.time==0)$return.body = $id($return.notice.id+"_body").getElementsByTagName("div")[1];
			break;
		case 1:
			show_notice(element,_opt.text,_opt.text,false,_opt.icon,_opt.x,_opt.y);
			if(_opt.hiddenevent){
				if(!element.hiddenevent){
					attach_Event(element,_opt.hiddenevent,function(){show_notice(element,false,'');});
					element.hiddenevent = "defined";
				}
			}
			$return.notice = $id("notice"+(element.name?element.name:(element.id?element.id:"common")));
			$return.body = $id($return.notice.id+"input_notice_box_body");
			break;
	}
	if($id($return.notice.id+"_notice_box_buttons"))$e_($return.notice.id+"_notice_box_buttons");
	if(_opt.btns && typeof(_opt.btns)=="object"){
		var _btnbox = $e('div',$return.body,{"id":$return.notice.id+"_notice_box_buttons","className":"notice_buttons_box"});
		for(var key in _opt.btns){
			$return.buttons.push($e('input',_btnbox,{"type":"button","value":key,"onclick":_opt.btns[key],"className":"notice_box_buttons"}));
		}
	}
	return $return;
}

function $e(s_tag,app_node,params){
	var tag = document.createElement(s_tag);
	if(typeof app_node == "string")app_node = $id(app_node);
	if(typeof params == "object")for(var key in params)tag[key] = params[key];

	if(app_node)app_node.appendChild(tag);
	else document.documentElement.appendChild(tag);
	
	return tag;
}

function $e_(node){
	if(typeof node == "string")node = $id(node);
	if(node){
		try{node.removeNode(true);}catch(e){node.parentNode.removeChild(node);}
	}
}

function doane(event) {
	e = event ? event : window.event;
	if(is_ie) {
		e.returnValue = false;
		e.cancelBubble = true;
	} else if(e) {
		e.stopPropagation();
		e.preventDefault();
	}
}