/* -------------------------------------------------------------------------- */
/*    
 *    JavaScript Document
 *
 *    Copyright(C) LOGOS,Inc.
 *
 *    version2.0 / 2007-05-25
 */
/* -------------------------------------------------------------------------- */

var dom = new Object();
dom.event = new Object();


/*addEventListener制御*/
dom.event.addEventListener = function(elm, type, func, useCapture){
	
	if(!elm){ return false; }
	
	if(!useCapture){
		useCapture = false;	
	}
	
	/*DOM準拠ブラウザ*/
	if(elm.addEventListener){
		
		elm.addEventListener(type, func, false);
	
	
	/*IEブラウザ*/
	}else if(elm.attachEvent){
		
		elm.attachEvent('on' + type, func);
		
	}else{
		return false;
	}
	
	return false;
};

dom.event.removeEventListener = function(elm, type, func, useCapture){
	
	if(!elm){ return false; }
	
	if(!useCapture){
		useCapture = false;
	}
	
	if(elm.removeEventListener){
		
		elm.removeEventListener(type, func, false);
		
	}else if(elm.detachEvent){
		
		elm.detachEvent('on' + type, func);
		
	}else{
		return false;
	}
	
	return false;
};


/*ターゲット制御*/
dom.event.target = function(evt){
	
	if(evt && evt.target){
		if(evt.target.nodeType == 3){
			return evt.target.parentNode;
		}else{
			return evt.target;
		}
	}else if(window.event && window.event.srcElement){
		return window.event.srcElement;
	}else{
		return null;
	}
};


/*デフォルトアクション制御*/
dom.event.preventDefault = function(evt){
	
	if(evt && evt.preventDefault){
		evt.preventDefault();
		
		/*safari1.3用*/
		evt.currentTarget['on' + evt.type] = function(){ return false; }
	}else if(window.event){
		window.event.returnValue = false;
	}
};


/*バブリング制御*/
dom.event.stopPropagation = function(evt){
	
	if(evt && evt.stopPropagation){
		evt.stopPropagation();
	}else if(window.event){
		window.event.cancelBubble = true;
	}
	
};


/*クラス名からエレメント取得*/
dom.event.getElementsByClassName = function(name){
	
	var elements = [];
	
	/*全要素取得*/
	var allElements = document.getElementsByTagName('*');
	
	for(var i=0, len=allElements.length; i<len; i++){
		if(allElements[i].className == name){
			elements.push(allElements[i]);
		}
	}
	return elements;
};