//rolling
function newImageRotation() {
	// options
	var scrollType = 'vertical'; // 'horizontal', 'vertical', 'none';

	// private
	var currentNumber = 0;
	var objWrap = null;
	var objContentBox = null;
	var objWrapLIs = null;
	var cellWidth = 0;
	var cellHeight = 0;
	this.GoodsSetTime = null;

	// scroll animation variables.
	var scroll = {time:1, start:0, change:0, duration:25, timer:null};
	var originaltime = scroll.time;

	this.setScrollType = function (type) {
		switch (type) {
			case 'vertical':
			case 'horizontal':
			case 'none':
				scrollType = type;
				break;
			default:
				alert('!');
				break;
		}
	}
	// constructor
	this.initialize = function () {
		objWrap = document.getElementById(this.wrapId);
		objContentBox = document.getElementById(this.listId);
		objWrapLIs = objWrap.getElementsByTagName('li');
		cellWidth = objWrapLIs[0].offsetWidth;
		cellHeight= objWrapLIs[0].offsetHeight;

		objWrap.style.overflow = 'hidden'; //

		switch (scrollType) {
			case 'vertical':
				this.objWrapSize = cellHeight * this.listNum;
				this.objSize = objWrapLIs.length * cellHeight;
				break;
			case 'none':
				this.objWrapSize = cellWidth * this.listNum;
				this.objSize = objWrapLIs.length * cellWidth;
				break;
			default:
				this.objWrapSize = cellWidth * this.listNum;
				this.objSize = objWrapLIs.length * cellWidth;
				break;
		}
		if (this.objWrapSize < this.objSize) {

			if (objWrapLIs.length > 0) {
				switch (scrollType) {
					case 'vertical':
						objContentBox.style.height = objWrapLIs.length * cellHeight + 'px';
						objWrap.style.height = this.listNum * cellHeight + 'px';
						break;
					case 'none':
						objContentBox.style.width = objWrapLIs.length * cellWidth + 'px';
						objWrap.style.width = this.listNum * cellWidth + 'px';
						break;
					default:
						objContentBox.style.width = objWrapLIs.length * cellWidth + 'px';
						objWrap.style.width = this.listNum * cellWidth + 'px';
						break;
				}
			}
			if (this.btnPrev)
				document.getElementById(this.btnPrev).href = "javascript:" + this.objName + ".prev();";
			if (this.btnNext)
				document.getElementById(this.btnNext).href = "javascript:" + this.objName + ".next();";

			if (this.autoScroll == 'none') {
			} else {
				if (this.scrollDirection == 'direction') {
					this.GoodsSetTime = setInterval(this.objName + ".next()", this.scrollGap);
				} else {
					this.GoodsSetTime = setInterval(this.objName + ".prev()", this.scrollGap);
				}
			}
		}
	}

	this.next = function () {
		if (currentNumber == 0) {
			var objLastNode = objContentBox.removeChild(objContentBox.getElementsByTagName('li').item(objWrapLIs.length - 1));
			objContentBox.insertBefore(objLastNode, objContentBox.getElementsByTagName('li').item(0));
			switch (scrollType) {
				case 'vertical':
					objWrap.scrollTop += cellHeight;
					break;
				case 'none':
					objWrap.scrollLeft += cellWidth;
					break;
				default:
					objWrap.scrollLeft += cellWidth;
					break;
			}
			currentNumber++;
		}

		//objWrap.scrollLeft -= cellWidth;
		var position = getActionPoint('indirect');
		startScroll(position.start, position.end);

		currentNumber = currentNumber - 1;

		if (currentNumber > 0)
			currentNumber = 0;
		if (this.autoScroll == 'none') {
			// do nothing.
		} else {
			this.scrollDirection = 'direction';
			clearInterval(this.GoodsSetTime);
			this.GoodsSetTime = setInterval(this.objName + ".next()", this.scrollGap);
		}
	}

	this.prev = function () {
		if (currentNumber == objWrapLIs.length - 1) {
			var objLastNode = objContentBox.removeChild(objContentBox.getElementsByTagName('li').item(0));
			objContentBox.appendChild(objLastNode);
			switch (scrollType) {
				case 'vertical':
					objWrap.scrollTop -= cellHeight;
					break;
				case 'none':
					objWrap.scrollLeft -= cellWidth;
					break;
				default:
					objWrap.scrollLeft -= cellWidth;
					break;
			}
			currentNumber--;
		}

		//objWrap.scrollLeft += cellWidth;
		var position = getActionPoint('direct');
		startScroll(position.start, position.end);

		currentNumber = currentNumber + 1;

		if (currentNumber < objWrapLIs.length - 1)
			currentNumber = objWrapLIs.length - 1;

		if (this.autoScroll == 'none') {
			// do nothing.
		} else {
			this.scrollDirection = 'indirection';
			clearInterval(this.GoodsSetTime);
			this.GoodsSetTime = setInterval(this.objName + ".prev()", this.scrollGap);
		}
	}

	var startScroll = function (start, end) {
		if (scroll.timer != null) {
			clearInterval(scroll.timer);
			scroll.timer = null;
		}

		scroll.start = start;
		scroll.change = end - start;

		switch (scrollType) {
			case 'vertical':
				scroll.timer = setInterval(scrollVertical, 15);
				break;
			case 'none':
				objWrap.scrollLeft = end;
				break;
			default:
				scroll.timer = setInterval(scrollHorizontal, 15);
				break;
		}
	}

	var scrollVertical = function () {
		if (scroll.time > scroll.duration) {
			clearInterval(scroll.timer);
			scroll.time = originaltime;
			scroll.timer = null;
		} else {
			objWrap.scrollTop = sineInOut(scroll.time, scroll.start, scroll.change, scroll.duration);
			scroll.time++;
		}
	}

	var scrollHorizontal = function () {
		if (scroll.time > scroll.duration) {
			clearInterval(scroll.timer);
			scroll.time = originaltime;
			scroll.timer = null;
		} else {
			objWrap.scrollLeft = sineInOut(scroll.time, scroll.start, scroll.change, scroll.duration);
			scroll.time++;
		}
	}

	var getActionPoint = function (dir) {
		if (dir == 'direct') {
			var position = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber + 1)); // target image.
			var offsetPos = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber)); // first image.
		} else {
			var position = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber - 1)); // target image.
			var offsetPos = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber)); // first image.
		}

		switch (scrollType) {
			case 'vertical':
				var start = objWrap.scrollTop;
				var end = position[1] - offsetPos[1];
				break;
			case 'none':
				// do nothing.
				break;
			default:
				var start =  objWrap.scrollLeft;
				var end = position[0] - offsetPos[0];
				break;
		}

		var position = {start:0, end:0};
		position.start = start;
		position.end = end;

		return position;
	}

	var sineInOut = function (t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	}

	var findElementPos = function (elemFind) {
		var elemX = 0;
		var elemY = 0;
		do {
			elemX += elemFind.offsetLeft;
			elemY += elemFind.offsetTop;
		} while (elemFind = elemFind.offsetParent)

		return Array(elemX, elemY);
	}

}


// clip Lesson
function newClipLessonTab(seq) {
	var nav = document.getElementById("clipLessonTab");
	if(nav){
		nav.menu = new Array();
		nav.current = null;
		nav.menuseq = 0;
		navLen = nav.childNodes.length;
		
		allA = nav.getElementsByTagName("a");
		for(k = 0; k < allA.length; k++) {
	
			allA.item(k).onclick = function () {
				nav.isOver = true;
			}
			allA.item(k).onblur = function () {
				nav.isOver = false;
			}
		}
	
		for (i = 0; i < navLen; i++) {
			navItem = nav.childNodes.item(i);
			if (navItem.tagName != "LI")
				continue;
	
			navAnchor = navItem.getElementsByTagName("a").item(0);
			navAnchor.submenu = navItem.getElementsByTagName("ul").item(0);
			
			navAnchor.onclick = function () {
				if (nav.current) {
					if( seq !=0)
						nav.current.parentNode.className = nav.current.parentNode.className.replace(" on", "");
					if (nav.current.submenu)				
						nav.current.submenu.style.display = "none";
					nav.current = null;
				}
				
				if (nav.current != this) {
					if( seq !=0)
						this.parentNode.className += " on";
					if (this.submenu)	{
						this.submenu.style.display = "block";
					}
					nav.current = this;
				}
				nav.isOver = true;
			}
			nav.menuseq++;
			nav.menu[nav.menuseq] = navAnchor;
		}
		if (nav.menu[seq])
			nav.menu[seq].onclick();
	}
}





// toggle tab
function newInitTabMenu(tabContainerID,tabClass) {
	var tabContainer = document.getElementById(tabContainerID);
	var tabAnchor = tabContainer.getElementsByTagName("a");
	var i = 0;

	tabContainer.className = tabContainer.className+" "+tabContainer.className+"-importjs";

	for(i=0; i<tabAnchor.length; i++) {
		if (tabAnchor.item(i).className == tabClass)
			thismenu = tabAnchor.item(i);
		else
			continue;

		thismenu.container = tabContainer;
		thismenu.targetEl = document.getElementById(tabAnchor.item(i).href.split("#")[1]);
		thismenu.targetEl.style.display = "none";
		thismenu.imgEl = thismenu.getElementsByTagName("img").item(0);
		thismenu.onclick = function tabMenuClick() {
			currentmenu = this.container.current;
			if (currentmenu == this)
				return false;

			if (currentmenu) {
				currentmenu.targetEl.style.display = "none";
				if (currentmenu.imgEl) {
					currentmenu.imgEl.src = currentmenu.imgEl.src.replace("_on.gif", ".gif");
				} else {
					currentmenu.className = currentmenu.className.replace(" on", "");
				}
			}
			this.targetEl.style.display = "";
			if (this.imgEl) {
				this.imgEl.src = this.imgEl.src.replace(".gif", "_on.gif");
			} else {
				this.className += " on";
			}
			this.container.current = this;

			return false;
		};

		if (!thismenu.container.first)
			thismenu.container.first = thismenu;
	}
	if (tabContainer.first)
		tabContainer.first.onclick();
}



//setFontSize
// cookie 조회
function getCookie(name){
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cname);
    if (begin != -1) {
      begin += cname.length;
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
    }
  }
  return null;
}

// cookie 등록
function setCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
  ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  ((path == null) ? "" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}

// cookie 삭제
function delCookie (name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
  //페이지 리로드
  document.location.reload();
}

var firstCall = true;

function changeFontsize(fSize, increment) {
	if (firstCall) {
		firstCall = false;
		if (increment != "") {
			changeFontsize('12', '');
		}
	}
	if (document.getElementsByTagName) {
		var getElement = document.getElementById('contentText').getElementsByTagName("*");
		var eachElement, currentFontSize, fontIncrease, newFontSize;

		for (i=0; i<getElement.length; i++) {
			eachElement = getElement[i];
			if (increment != "") {
				currentFontSize = parseInt(eachElement.style.fontSize);
				fontIncrease = parseInt(increment);
				newFontSize = currentFontSize + fontIncrease;
				eachElement.style.lineHeight = Math.round(newFontSize*1.2) + "px";
			} else if (fSize != "") {
				newFontSize = parseInt(fSize);
			}

			if ( newFontSize <= 11 ) {
				newFontSize = 11;
			} else if( newFontSize >= 18){
				newFontSize = 18;
			}
			
			switch(getElement[i].tagName) {
				//case "H2": 
				//	eachElement.style.fontSize = (newFontSize+13) + "px"; break;
				//case "H3": 
				//	eachElement.style.fontSize = (newFontSize+6) + "px"; break;
				//case "H4": 
				//	eachElement.style.fontSize = (newFontSize+4) + "px"; break;
				//case "H5": 
				//	eachElement.style.fontSize = (newFontSize+1) + "px"; break;
				//case "H6": 
				//	eachElement.style.fontSize = (newFontSize+1) + "px"; break;
				default : 
					eachElement.style.fontSize = newFontSize + "px";
			}
			setCookie('fontSize', newFontSize);
		}
	}
}
