var CommonTab = {
	init: function(tabContainer, callback){
		var headings = this.getHeadings(tabContainer);
		var contents = this.getContents(tabContainer);
		
		for (var i = 0 ; i < headings.length ;i++ ) {
			headings[i].onclick = function() {
				CommonTab.show(this.id, callback);
			}
		}
	},
	show: function(targetId, callback){
		var target = document.getElementById(targetId);
		var targetContent = document.getElementById(targetId + 'Content');
		
		var container = this.getContainer(target);
		var headings = this.getHeadings(container);
		var contents = this.getContents(container);
		
		for (var i = 0; i < headings.length; i++) {
			removeClassName(headings[i], 'on');
			removeClassName(contents[i], 'on');
			
			var headingImage = headings[i].getElementsByTagName('img')[0];
			if (headingImage) {
				headingImage.src = headingImage.src.replace('_on.gif','.gif');
			}
		}
		
		addClassName(target, 'on');
		addClassName(targetContent, 'on');
		
		var targetHeadingImage = target.getElementsByTagName('img')[0];
		if (targetHeadingImage){
			targetHeadingImage.src = targetHeadingImage.src.replace('.gif','_on.gif');
		}
		
		if (callback) callback();
	},
	getContainer: function(heading){
		return heading.parentNode.parentNode.parentNode;
	},
	getHeadings: function(container){
		return container.getElementsByTagName('ul')[0].getElementsByTagName('li');
	},
	getContents: function(container){
		var divs = FindEl.byClass(container.getElementsByTagName('div'), 'tabContent');
		var uls = FindEl.byClass(container.getElementsByTagName('ul'), 'tabContent');
		
		return (divs.length > 0) ? divs:uls;
	},
	getSelectedContent: function(container){
		var contents = this.getContents(container);
		for(var i = 0; i < contents.length; i++){
			if(hasClassName(contents[i], 'on')) return contents[i];
		}
		return contents[0];
	}
}

function loginTabInit(){
	if($('loginWrapper')){
      CommonTab.init($('loginWrapper'), function(){
        focusAndHiddenLabel($('loginWrapper'));
        ToolTip.hide();
      });
      focusAndHiddenLabel($('loginWrapper'));
      document.getElementById('id').onkeydown = handleKeyEvent;
      document.getElementById('pw').onkeydown = handleKeyEvent;
    }
    
    if($('idpTab')){
      CommonTab.init($('idpTab'), function(){
        ToolTip.hide();
      });
    }
    
    ToolTip.init();
}
function handleKeyEvent(e){
	var event = window.event || e;
	var element = (event.target)? event.target : event.srcElement;
	if(document.getElementById('labelFor' + element.id)) document.getElementById('labelFor' + element.id).style.display = 'none';
	if (event.keyCode == 13){
		document.getElementById('loginForm').submit();
	}
}
function focusAndHiddenLabel(container){
	var targetContent = CommonTab.getSelectedContent(container);
	var forms = targetContent.getElementsByTagName('form');
	if(forms.length !== 0) {
		var form = forms[0];
		var inputs = form.getElementsByTagName('input');
		var targetField = null;
		
		for(var i=0; i < inputs.length;  i++) {
			if(document.getElementById('labelFor' + inputs[i].id) && inputs[i].value.length > 0) document.getElementById('labelFor' + inputs[i].id).style.display = 'none';
			if( (inputs[i].type === 'text' || inputs[i].type === 'password') && inputs[i].value === '' && inputs[i].offsetHeight > 0) {
				inputs[i].focus();
				break; 
			}
			
		}
	}
}

function addClassName(element, className) {
    if (!hasClassName(element, className)){
		element.className += (element.className ? ' ' : '') + className;
    }
    return element;
}

function removeClassName(element, className) {
    element.className = strip(element.className.replace(
		new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' '));
    return element;
}

function strip(str) {
    return str.replace(/^\s+/, '').replace(/\s+$/, '');
}

function hasClassName(element, className) {
    var elementClassName = element.className;
    return (elementClassName.length > 0 && (elementClassName == className ||
		new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
}

function toggleSigninDialog(strEl) {
	var gnb = document.getElementById('div_title');
	if (!gnb) return;
	var el = document.getElementById('signinDialog');
	el.style.display = (isBlock(el)) ? 'none' : 'block';
	el.style.position = 'absolute';
	el.style.top = gnb.clientHeight + 'px';
	el.style.right = '6px';
	el.style.zIndex = 9999;
	
	focusAndHiddenLabel(document.getElementById('loginWrapper'));
	
}
function isBlock(el) {
	return el.style.display == 'block' ? true : false;
}

var ToolTip = {
	init: function() {
		var checkboxs = FindEl.byClass(document.getElementsByTagName('input'),'type-checkbox');
		var tooltipBox = document.getElementById('tooltipBox');
		
		for (var i = 0 ; i < checkboxs.length ; i++ ) {				
			checkboxs[i].onclick = function() {
				if (this.name == 'remember_me') ToolTip.toggle(this, tooltipBox)
			}
		}
	},
	toggle: function(checkboxEl, tooltipBoxEl) {
		var isChecked = checkboxEl.checked == true;
		tooltipBoxEl.style.display = (isChecked) ? 'block' : 'none';
		tooltipBoxEl.style.top = checkboxEl.offsetTop + 9 + 'px';
		tooltipBoxEl.style.left = checkboxEl.offsetLeft - 62 + 'px';
	},
	hide: function() {
		var tooltipBox = document.getElementById('tooltipBox');
		tooltipBox.style.display = 'none';
	}
}
