// On Load
$(document).ready(function () {

//	$('body').addClass('dynamic');

	// 공통
	initSearch();
	initInputs();
	
	//initCats('div.side-menu');
	initQuickMenu();
	initTabs();

	// 메인 - new products
	$('#main #newProducts').loopGallery({active: 4, group: 1});
	// 메인 - 하단 배너
	$('#main #bannerArea').loopGallery({active: 6, group: 1});
	
	// 프로모션메인 - 하단 배너
	$('#main #promotionBanner').loopGallery({active: 3, group: 1});

	// FAQ
	faq('.faq-list');

	// 트리
	//$('#navi ul.gnb').tree();
	$('ul.cat-tree').treeAdmin();
	$('ul.cat-basic').tree();
	$('ul.menu').tree();

	// 콘텐츠 상세 조회 - 샘플 이미지
	//$('div.sample-images').loopGallery({active: 3, group: 1});
	$('div.cont-detail-preview div.preview').sampleGallery(); //프로모션 팝업
	$('div.detail-box div.preview').sampleGallery(); //kobio

});

// Cookie
function createCookie(name, value, days) {
	var expires = '';
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		expires = '; expires=' + date.toGMTString();
	}
	document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name) {
	var nameEQ = name + '=',
		ca = document.cookie.split(';'),
		ca_len = ca.length,
		i, c;
	for (i = 0; i < ca_len; i++) {
		c = ca[i];
		while (c.charAt(0) === ' ') {
			c = c.substring(1, c.length);
		}
		if (c.indexOf(nameEQ) === 0) {
			return c.substring(nameEQ.length, c.length);
		}
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name, '', -1);
}


// Toggle Layer
function toggleLayer(el) {
	var layer_id = el.getAttribute('href').split('#')[1],
		layer = document.getElementById(layer_id);
	if (layer.style.display != "none") {
		layer.style.display = "none";
	} else {
		layer.style.display = "";
	}
}

function initSearchType() {
	var old_selectbox = $('#searchOptions'),
		old_option_items = old_selectbox.find('option'),
		new_selectbox = $('.search-options .selectbox-wrap'),
		value_holder = new_selectbox.find('input.value-holder'),
		new_option_list = new_selectbox.find('ul.new-selectbox-options'),
		new_option_items = new_option_list.find('li'),
		selected;

	value_holder.bind('click', function (e) {
		e.stopPropagation();
		new_option_list.slideToggle(100);
	});
	value_holder.bind('keydown', function (e) {
		selected = new_option_items.filter('.selected');
		if (e.keyCode === 40) {	// Down Arrow
			e.preventDefault();
			if (selected.next().length) {
				select(selected.next());
			}
		} else if (e.keyCode === 38) {	// Up Arrow
			e.preventDefault();
			if (selected.prev().length) {
				select(selected.prev());
			}
		} else if (e.keyCode === 9) {	// Tab
			new_option_list.slideUp(100);
		}
	});

	new_option_items.hover(function () {
		new_option_items.removeClass('selected');
		$(this).addClass('hover');
	}, function () {
		$(this).removeClass('hover');
	});
	new_option_items.bind('click', function () {
		select($(this));
		new_option_list.slideUp(100);
		value_holder.focus();
	});

	$('body').bind('click', function () {
		new_option_list.slideUp(100);
	});

	function select(obj) {
		var index = new_option_items.index(obj);
		new_option_items.removeClass('selected');
		obj.addClass('selected');
		old_option_items.attr('selected', false);
		$(old_option_items[index]).attr('selected', true);
		value_holder.val(obj.text());
	}
}

function initSearch() {
	var advanced_btn = $('#search .advanced-button a'),
		advanced_search = $('#advancedSearch'),
		advanced_close = $('#search .advanced a.close'),
		advanced_button = $('#search .search-word input');
	advanced_btn.bind('click', function (e) {
		e.preventDefault();
		if (advanced_search.css('display') == 'none') {
			advanced_search.fadeIn('fast');
			$('#search .advanced-button').addClass('on');
		} else {
			advanced_search.fadeOut('fast');
			$('#search .advanced-button').removeClass('on');
		}
	});
	advanced_close.bind('click', function (e) {
		e.preventDefault();
		advanced_search.fadeOut('fast');
		$('#search .advanced-button').removeClass('on');
	});
	advanced_button.bind('focus', function (e) {
		e.preventDefault();
		advanced_search.fadeOut('fast');
		$('#search .advanced-button').removeClass('on');
	});
	$('#search .selectbox-wrap input.value-holder').bind('click', function (e) {
		e.preventDefault();
		advanced_search.fadeOut('fast');
		$('#search .advanced-button').removeClass('on');
	});
}

function initInputs() {
	var inputs = $('#search .search-word :text[title], #login :text[title]');
	inputs.each(function () {
		var title = $(this).attr("title"),
			value = $(this).val();
		if (!value) {
			$(this).val(title);
		}
		$(this).bind("focus", function (e) {
			if ($(this).val() == title)
				$(this).val("");
		});
		$(this).bind("blur", function (e) {
			if ($(this).val().length == 0)
				$(this).val(title);
		});
	});
}

function initTabs() {
	var tabs = $('ul.tab:not(div.side-menu ul.tab, #footBasket ul.tab)').tab();
	tabs.each(function () {
		this.init();
	});
}

function initCats(selector) {
	var wrapper = $(selector),
		cat_menu = wrapper.find('ul.menu'),
		cat_tab = wrapper.find('ul.tab'),
		tab, tab_conts, selected,
		tab_index = 0;
	if (cat_menu.length) {
		cat_menu.tree();
	}
	if (cat_tab.length) {
		tab = cat_tab.tab().get(0);
		tab_conts = $(tab.contents);
		tab_conts.each(function () {
			selected = $(this).find('.selected');
			if (selected.length) {
				tab_index = tab_conts.index($(this));
			}
		});
		tab.init(tab_index);
	}
}

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function RandomBanner(obj) {	// $ object
	var rb = this,
		banners = obj.find('li'),
		ban_len = banners.length,
		randnum = 0,
		old_index = -1,
		timer, opt_speed;
	this.change = function () {
		do {
			randnum = getRandomInt(0, (ban_len - 1));
		} while (randnum === old_index);
		banners.each(function () {
			var this_banner = $(this);
			this_banner.removeClass('selected');
			this_banner.css('display', 'none');
		});
		var selected = $(banners[randnum]);
		selected.addClass('selected');
		selected.css('display', '');
	};
	this.init = function (speed) {
		speed = speed || 3000;
		opt_speed = speed;
		rb.change();
		timer = window.setInterval(function () {
			old_index = banners.index(obj.find('li.selected'));
			rb.change();
		}, speed);
		$(window).bind('unload', function () {
			clearInterval(timer);
		});
	}
	obj.hover(function () {
		clearInterval(timer);
	}, function () {
		rb.init(opt_speed);
	});
}

function chkIE() {
	var rv = false;
	if (navigator.appName == "Microsoft Internet Explorer") {
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
			rv = parseFloat(RegExp.$1);
	}
	return rv;
}

function initQuickMenu(act_num) {
	if (!document.getElementById('quickMenu')) return false;
	fixPosition('#quickMenu', 500);
	//changeBgColor();
	//screenZoom();
	// $('#quickMenu .seen-today').gallery({active: 3, group: 1});
	$('#quickMenu .seen-today').loopGallery({active: 2, group: 1});
}

function fixPosition(selector, speed) {
	var wrapper = $(selector),
		init_top = parseInt(wrapper.css('top')),
		timer = setInterval(function () {
			var curr_top = 0;
			if (document.documentElement.scrollTop) {
				curr_top = document.documentElement.scrollTop;
			} else if (document.body.scrollTop) {
				curr_top = document.body.scrollTop;
			}
			wrapper.stop().animate({
				top: init_top + curr_top + 'px'
			}, speed);
		}, speed);
	$(window).bind('unload', function () {
		clearInterval(timer);
	});
}

function initFootBasket() {
	var fb = $('#footBasket'),
		tab = fb.find('ul.tab'),
		tab_items = tab.find('li'),
		layer = $('#footConts'),
		ie = chkIE();

	if (ie && (ie < 7)) {
		fb.append('<iframe class="blocker" frameborder="0" />');
	}

	fbTab();
	toggleFootBasket();
	fixFoot();
	$(window).bind('scroll', fixFoot);
	$(window).bind('resize', fixFoot);

	function toggleFootBasket() {
		var button = fb.find('a.toggle');

		button.bind('click', function (e) {
			e.preventDefault();
			footSlide('fast');
			fb.toggleClass('closed');
			$(this).toggleClass('close');
		});

		tab_items.bind('click', function () {
			if (fb.hasClass('closed')) {
				button.addClass('close');
				footSlide('fast');
				fb.removeClass('closed');
			} else {
				fixFoot();
			}
		});
	}

	function footSlide(speed) {
		var vp = getViewport(),
			fb_height = fb.height(),
			layer_height = layer.outerHeight(true),
			fb_top = fb.hasClass('closed') ? (parseInt(fb.css('top')) - layer_height) : (parseInt(fb.css('top')) + layer_height);

/*
		layer.slideToggle(speed);
		fb.animate({
			'top': fb_top + 'px'
		}, speed);
*/

		layer.toggle();
		fb.css({
			'top': fb_top + 'px'
		});
	}

	function fbTab() {
		var tab_links = tab_items.find('a'),
			fb_frame = fb.find('#fbFrame');

		tab_links.bind('click', function (e) {
			var $this = $(this),
				title = $this.parent('li').find('img').attr('alt'),
				target = $this.attr('href');
			e.preventDefault();
			tab_items.removeClass('on');
			$this.parent('li').addClass('on');
			fb_frame.attr('src', target);
			fb_frame.attr('title', title);
		});
	}

	function fixFoot() {
		if (!document.getElementById('footBasket')) return false;
		var vp = getViewport(),
			fb_height = fb.height();
		fb.stop().css({
			'position': 'absolute',
			'bottom': 'auto',
			'top': (vp.height + vp.scroll.y - fb_height) + 'px'
		});
	}
}

function getViewport(win) {
	win = win || window;
	var doc = win.document;
		viewport = {width: 0, height: 0};
	if (doc.documentElement && (doc.documentElement.clientWidth || doc.documentElement.clientHeight)) {
		viewport.width = doc.documentElement.clientWidth;
		viewport.height = doc.documentElement.clientHeight;
	} else if (doc.body && (doc.body.clientWidth || doc.body.clientHeight)) {
		viewport.width = doc.body.clientWidth;
		viewport.height = doc.body.clientHeight;
	} else if (win.innerWidth || win.innerHeight) {
		viewport.width = win.innerWidth;
		viewport.height = win.innerHeight;
	}
	viewport.scroll = (function () {
		var vp_scroll = {x: 0, y: 0};
		if (doc.documentElement && (doc.documentElement.scrollLeft || doc.documentElement.scrollTop)) {
			vp_scroll.x = doc.documentElement.scrollLeft;
			vp_scroll.y = doc.documentElement.scrollTop;
		} else if (doc.body && (doc.body.scrollLeft || doc.body.scrollTop)) {
			vp_scroll.x = doc.body.scrollLeft;
			vp_scroll.y = doc.body.scrollTop;
		} else if (win.pageXOffset || win.pageYOffset) {
			vp_scroll.x = win.pageXOffset;
			vp_scroll.y = win.pageYOffset;
		} else if (win.scrollX || win.scrollY) {
			vp_scroll.x = win.scrollX;
			vp_scroll.y = win.scrollY;
		}
		return vp_scroll;
	}());
	return viewport;
}

// FAQ
function faq(selector) {
	var faq_lists = $(selector);
	if (faq_lists.length) {
		var items = faq_lists.find('li'),
			answers = items.find('.faq-answer');
		items.each(function () {
			var question = $(this).find('.faq-question'),
				answer = $(this).find('.faq-answer');
			answer.hide();
			question.bind('click', function () {
				if (answer.css('display') == 'block') {
					answer.slideUp('fast');
				} else {
					answers.slideUp('fast');
					answer.slideDown('fast');
				}
			});
		});
	}
}

function calcTime(sec) {
	var time = [],
		minutes = sec;
	if (sec >= 60) {
		if (sec >= 3600) {
			time.push(getTimeStr(parseInt(sec / 3600)));
			minutes = parseInt(sec % 3600);
		}
		time.push(getTimeStr(parseInt(minutes / 60)));
		time.push(getTimeStr(parseInt(minutes % 60)));
	} else {
		time[0] = '00';
		time[1] = getTimeStr(sec);
	}

	function getTimeStr(num) {
		var str = num;
		if (num < 10) {
			str = '0' + num;
		}
		return str;
	}

	return time.join(':');
}

function popupResize() {
	var $window = $(window),
		$body = $('body'),
		vta = $('div.video-text-area'),
		popup_title = $('h1.popup-title'),
		popup_cont = $('div.popup-cont'),
		popup_close = $('div.popup-close'),
		chrome, win_width, win_height, vpv, trv;

	vpv = vta.find('div.video-play-view');
	trv = vta.find('div.text-read-view');
	vta_width = (vpv.outerWidth(true) || 0) + (trv.outerWidth(true) || 0);
	vta.css('width', vta_width + 'px');
	chrome = getChromeSize();

	function getChromeSize() {
		var w = 400,
			h = 400,
			w_diff, h_diff;

		window.resizeTo(w, h);

		w_diff = w - $window.width();
		h_diff = h - $window.height();

		return {width:w_diff, height:h_diff};
	}

	win_width =
		parseInt($body.css('padding-right')) + parseInt($body.css('padding-left'))
		+ parseInt(popup_cont.css('padding-right')) + parseInt(popup_cont.css('padding-left'))
		+ parseInt(vta.css('width')) + chrome.width;
	win_height =
		parseInt($body.css('padding-top'))
		+ parseInt(popup_title.outerHeight()) + parseInt(popup_cont.outerHeight()) + parseInt(popup_close.outerHeight())
		+ chrome.height;

	if (screen.availWidth < win_width) {
		win_width = screen.availWidth;
	}
	if (screen.availHeight < win_height) {
		win_height = screen.availHeight;
	}

	window.resizeTo(win_width, win_height);
}

function initReprocessDb() {
	var gal = $('#main #reprocessDb .cont-gallery'),
		max, rand;
	if (!gal.length) return false;
	max = Math.floor(gal.find('li').length / 2);
	rand = getRandomInt(0, max) * 2;
	gal.gallery({group: 2, index: {first: rand}});
}


/* promotion main layer popup */
function initLayerPopup() {
	$('.layer-popup').bind('drag',function( event ){
		$( this ).css({
			top: event.offsetY,
			left: event.offsetX
		});
		var index = $('.layer-popup').index(this);
		$('.layer-popup').each(function(i){
			if(index == i){
				$(this).addClass("over");
			}
			else{
				$(this).removeClass("over");
			}
		});
	});

	$('.layer-popup').bind('click',function( event ){
		var index = $('.layer-popup').index(this);
		$('.layer-popup').each(function(i){
			if(index == i){
				$(this).addClass("over");
			}
			else{
				$(this).removeClass("over");
			}
		});
	});

	$('.layer-popup .close a').bind('click',function( event ){
		var index = $('.layer-popup .close a').index(this);
		$('.layer-popup').each(function(i){
			if(index == i){
				$(this).addClass("hide");
				$(this).removeClass("view");
			}
			else{
				$(this).addClass();
			}
		});
	});

}

