// 백그라운드 이미지 로딩
try {document.exeCommand('BackgroundImageCashe', false, true);} catch (e) {}

// png 파일 투명 처리 
function setPng24(obj) {
    obj.width=obj.height=1;
    obj.className=obj.className.replace(/\bpng24\b/i,'');
    obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ obj.src +"',sizingMethod='image');"
    obj.src='';
    return '';
}

// 이미지 오버 
function imageOver(imgs) {
	imgs.src = imgs.src.replace("off.gif", "on.gif");
}
function imageOut(imgs) {
	imgs.src = imgs.src.replace("on.gif", "off.gif");
}


// 플래시
function flashString(mID, mUrl, mWidth, mHeight, mParams, mBGcolor, mWmode) {
	var buff = [];
	buff.push("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' width='" + mWidth + "' height='" + mHeight + "' id='" + mID + "' align='middle'>");
	buff.push("<param name='allowScriptAccess' value='always' />");
	buff.push("<param name='allowFullScreen' value='true' />");
	buff.push("<param name='movie' value='" + mUrl + "' />");
	buff.push("<param name='FlashVars' value='" + mParams + "' />");
	buff.push("<param name='quality' value='high' />");
	buff.push("<param name='wmode' value='" + mWmode + "' />");
	buff.push("<param name='bgcolor' value='" + mBGcolor + "' />");
	buff.push("<embed src='" + mUrl + "' FlashVars='" + mParams + "' quality='high' wmode='" + mWmode + "' bgcolor='" + mBGcolor + "' width='" + mWidth + "' height='" + mHeight + "' name='" + mID + "' align='middle' allowScriptAccess='always' allowFullScreen='false' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />");
	buff.push("</object>");
	
	return buff.join("");
}

function flashObject(mID, mUrl, mWidth, mHeight, mParam, mBGcolor, mWmode) {
	document.write(flashString(mID, mUrl, mWidth, mHeight, mParam, mBGcolor, mWmode));
}

// 이미지 흑백 필터
function fliterGray(obj, show) {
	if(show == 1) {
		$(obj).removeClass('fliterGray');
		$(obj).siblings().addClass('over');
	} else {
		$(obj).addClass('fliterGray');
		$(obj).siblings().removeClass('over');
	}
}

$(document).ready(function() {
	$('.overFilter').mouseover(function() {
		$(this).find('img:eq(0)').removeClass('fliterGray');
		$(this).find('span:eq(0)').addClass('over');
	});
	$('.overFilter').mouseout(function() {
		$(this).find('img:eq(0)').addClass('fliterGray');
		$(this).find('span:eq(0)').removeClass('over');
	});
});


   
/*	General DOM-Traversal Utilities and Helper Functions
	----------------------------------------------- */
	function getElements(classname, tagname, root){
		if(!root) root = document;
		else if (typeof root == "string") root = document.getElementById(root);
		if(!tagname) tagname = "*";
		var all = root.getElementsByTagName(tagname);
		if(!classname) return all;
		var elements = [];
		for(var i = 0; i < all.length; i++){
			var element = all[i];
			if(isMember(element,classname))
				elements.push(element)
		}
		return elements;
	}
	function isMember(element, classname){
		var classes = element.className;
		if(!classes) return false;
		if(classes ==classname) return true;
		var whitespace = /\s+/;
		if (!whitespace.test(classes)) return false;
		var c = classes.split(whitespace);
		for(var i = 0; i < c.length; i++)
			if (c[i] == classname) return true;
		return false;
	}
	function isDescendant(ancestor, descendant){
		if(!ancestor || !descendant) return;
		var similarDescendants = ancestor.getElementsByTagName(descendant.nodeName);
		for(var i=0; i<similarDescendants.length; i++)
			if( similarDescendants[i] == descendant ) return true;
		return false;
	}
    function getAncestors(element){
        var parents = new Array( );
        while( element.parentNode ){
            if( element.parentNode.nodeType == 1 )
                parents.push(element.parentNode);
                element = element.parentNode;
        }
        return parents;
    }


/* Repurposable Mouseover Dropdown Menu Behavior
--------------------------------------------- */
function DropdownMenu(args){
	this.args = args;
	this.list = document.getElementById(args.listId);
	this.itemElements = this.getItems( );
	this.itemObjects = this.setupItems( );
}
DropdownMenu.prototype.getItems = function( ){
	var itemElements = new Array( );
	for(var i=0; i<this.list.childNodes.length; i++)
		if(this.list.childNodes[i].nodeName == 'LI')
			itemElements.push(this.list.childNodes[i]);
	return itemElements;
}
DropdownMenu.prototype.setupItems = function( ){
	var itemObjects, openFunc, closeFunc;
	openFunc = this.openFunc, closeFunc = this.closeFunc;
	itemObjects = new Array( );
	for(var i=0; i<this.itemElements.length; i++)
		itemObjects.push(
			new DropdownItem({
				itemElement: this.itemElements[i],
				hiddenMenuClass: this.args.hiddenMenuClass,
				openFunc: this.args.openFunc,
				closeFunc: this.args.closeFunc
			}) 
		);
	return itemObjects;
}
function DropdownItem(args){
	var instance = this;
	this.itemElement = args.itemElement;
	this.trigger = getElements(args.triggerClass,null,this.itemElement)[0];
	this.openFunc = args.openFunc;
	this.closeFunc = args.closeFunc;
	this.menu = getElements(args.hiddenMenuClass,null,this.itemElement)[0];
	if(this.menu){
		this.itemElement.onmouseover = function(event){instance.handleLIMouseOver(event);}
		this.itemElement.onmouseout = function(event){instance.handleLIMouseOut(event);}
	}
}
DropdownItem.prototype.handleLIMouseOver = function(event){
	var evt, prevElement, useId, tmpName;
	evt = event || window.event;
	prevElement = evt.relatedTarget || evt.fromElement;
	if(prevElement != this.itemElement && !isDescendant(this.itemElement,prevElement)) {
		tmpName = "" + this.itemElement.id;
		useId = tmpName.substring(4,5);
//			alert("마우스 올라왔다" + tmpName + "|" + useId);
		this.activate( );
		document.getElementById(this.itemElement.id + "_top").src = root + "/public/img/common/gnb_0" + useId + "_on.gif";
//            this.itemElement.style.border = "3px solid #FF0000";
	}
}
DropdownItem.prototype.handleLIMouseOut = function(event){
	var evt, nextElement, useId, tmpName;
	evt = event || window.event; 
	nextElement = evt.relatedTarget || evt.toElement;
	if(nextElement != this.itemElement && !isDescendant(this.itemElement,nextElement)) {
		tmpName = "" + this.itemElement.id;
		useId = tmpName.substring(4,5);
//			alert("마우스 나갔다" + this.itemElement);
		this.deactivate( );
		document.getElementById(this.itemElement.id + "_top").src = root + "/public/img/common/gnb_0" + useId + "_off.gif";
//            this.itemElement.style.border = "3px solid #00FF00";
	}
}
DropdownItem.prototype.activate = function(event){
	this.menu.className = this.menu.className.replace(/inactive/g,'');
	var ancestors = getAncestors(this.menu);
	for(var i=0; i<ancestors.length; i++)
		ancestors[i].style.zIndex = '1000'
	if(this.openFunc) this.openFunc( );
}
DropdownItem.prototype.deactivate = function(event){
	var ancestors = getAncestors(this.menu);
	for(var i=0; i<ancestors.length; i++)
		ancestors[i].style.zIndex = ''
	this.menu.className += ' inactive';
	if(this.closeFunc) this.closeFunc( );
}
