$(document).ready(function(){
	initValidation();
	inputHide();
	initIE6hover();
	initSlideFunc();
	initTooltip();
});

/* SlideFunc */
function initSlideFunc(){
	var speed = 400;
	var nav = $('.nav ul');
	var nav_link_parents = nav.find('>li');
	var nav_link = nav_link_parents.find('>a');
	var section_wrapper = $('.section-wrapper');
	var openClass = 'active';
	if(nav.find('>li.'+openClass).length>1){
		nav.find('>li').removeClass(openClass);
		nav.find('>li').eq(0).addClass(openClass);
	}
	var slides = [];
	nav_link.each(function(){
		var this_link = $(this);
		var slide_this = section_wrapper.find('.' + this_link.attr('rel'));
		slides.push(slide_this);
	});
	
	nav_link.each(function(){
		var link = $(this);
		var link_parent = link.parent();
		var slide = section_wrapper.find('.'+ link.attr('rel'));
		var slide_H = slide.outerHeight();
		var close = slide.find('.close a');
		if(!link_parent.hasClass(openClass)){
			slide.hide();
		}
		link.click(function(){
			if(!slide.is(':animated')){
				if(!link_parent.hasClass(openClass)){
					nav_link_parents.removeClass(openClass);
					link_parent.addClass(openClass);
					for (var i = 0; i < slides.length; i++){
						slides[i].slideUp(speed);
					};
					slide.slideDown(speed);
				}else{
					for (var i = 0; i < slides.length; i++){
						slides[i].slideUp(speed);
						nav_link_parents.removeClass(openClass);
					};
				}
			}
			return false;
		});
		close.click(function(){
			if(link_parent.hasClass(openClass)){
				link_parent.removeClass(openClass);
				slide.slideUp(speed);
				return false;
			}
		});
	});
}

/* initIE6hover */
function initIE6hover(){
	var elements = $('.logos ul li');
	var hoverClass = 'hover';
	if($.browser.msie && $.browser.version < 7){
		elements.each(function(){
			var el = $(this);
			el.mouseenter(function(){
				el.addClass(hoverClass);
			}).mouseleave(function(){
				el.removeClass(hoverClass);
			});
		});
	}
}

/* InputHide */
function inputHide(){
	$('input:text, input:password').each(function(){
		var this_inp = $(this);
		var this_val = this_inp.attr('value');
		this_inp.focus(function(){
			if(this_inp.attr('value') == this_val){
				this_inp.attr('value','');
			}
		}).blur(function(){
			if(this_inp.attr('value').length == 0){
				this_inp.attr('value',this_val);
			}
		});
	});
	$('textarea').each(function(){
		var this_area = $(this);
		var this_area_val = this_area.html();
		this_area.focus(function(){
			if(this_area.val() == this_area_val){
				this_area.val('');
			}
		}).blur(function(){
			if(this_area.val().length == 0){
				this_area.val(this_area_val);
			}
		});
	});
}

/* Form Validation */
function initValidation(){
	var _errorClass = 'error';
	var _regEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var _regEmails = /^([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4})+([, ]+[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4})*$/;
	var _regPhone = /^[0-9\-\ \()]+$/;
	var _regNum = /^[0-9]+$/;
	var _regDay = /^(([0]{1}[1-9]{1})|([1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))$/;
	var _regMon = /^(([0]{1}[1-9]{1})|([1-9]{1})|([1]{1}[0-2]{1}))$/;
	var _regYear = /^[19]{2}[0-9]{2}$/;
	
	$('form.validate').each(function(){
		var _form = $(this);
		
		$('input, textarea', $(this)).focus(function(){
			$(this).parents('div').eq(0).removeClass(_errorClass);
		});
		
		function checkFields() {
			
			var _flag = false;
			_form.find('.'+_errorClass).removeClass(_errorClass);

			// fields validation
			_form.find('input.required-email').each(function(){
				if(!_regEmail.test($(this).val()) || $(this).val() == '' || $(this).val() == $(this).attr('alt')) addErrorMail($(this));
			});
			_form.find('input.required-day').each(function(){
				if(!_regDay.test($(this).val())) addError($(this));
			});
			_form.find('input.required-mon').each(function(){
				if(!_regMon.test($(this).val())) addError($(this));
			});
			_form.find('input.required-year').each(function(){
				if(!_regYear.test($(this).val())) addError($(this));
			});
			_form.find('textarea.required-many-emails').each(function(){
				if(!_regEmails.test($(this).val())) addError($(this));
			});
			_form.find('input.required-phone').each(function(){
				if(!_regPhone.test($(this).val())) addError($(this));
			});
			_form.find('input.required-num').each(function(){
				if(!_regNum.test($(this).val())) addError($(this));
			});
			_form.find('input.required, textarea.required').each(function(){
				if(!$(this).val().length || $(this).val() == $(this).attr('alt')) addError($(this));
			});
			_form.find('input.required-name').each(function(){
				if(!$(this).val().length || $(this).val() == $(this).attr('alt') || $(this).val() == 'Enter Name') addErrorName($(this));
			});
			_form.find('textarea.required-massage').each(function(){
				if(!$(this).val().length || $(this).val() == 'Message' || $(this).val() == 'Enter Message') addErrorMessage($(this));
			});
			_form.find('input.required-chek').each(function(){
				if (!$(this).is(':checked')) {
					$(this).parent('span').addClass('error-chk');
					_flag=true;
				}
			});
			_form.find('div.required-radio').each(function(){
				var _test = false;
				$(this).find('input[type=radio]').each(function(){
					if ($(this).is(':checked')) _test = true;
				});
				if (!_test) {
					_flag=true;
				}
			});
			_form.find('select.required-select').each(function(){
				if(!$(this).attr('selectedIndex')) addError($(this));
			});

			// error class adding
			function addError(_obj) {
				_obj.parents('div').eq(0).addClass(_errorClass);
				_flag=true;
			}
			function addErrorMail(_obj) {
				_obj.parents('div').eq(0).addClass(_errorClass);
				_obj.val('Enter Mail');
				_flag=true;
			}
			function addErrorName(_obj) {
				_obj.parents('div').eq(0).addClass(_errorClass);
				_obj.val('Enter Name');
				_flag=true;
			}
			function addErrorMessage(_obj) {
				_obj.parents('div').eq(0).addClass(_errorClass);
				_obj.val('Enter Message');
				_flag=true;
			}
			return _flag;
		}

		// catch form submit event
		_form.submit(function(){
			if(checkFields()) {
				return false;
			}else{
				jQuery.ajax({
					url: _form.attr('action'),
					data: _form.serialize(),
					type: 'POST',
					success: function(){
						_form.hide();
						_form.next('.message').show();
					},
					error: function(){
						alert('ERROR!')
					}
				});
				return false;
			}
		});
	});
}

// initTooltip
function initTooltip(){
	var _initTooltip = $("a.init-tooltip");
	if(typeof($.fn.easyTooltip) == 'function'){
		if(_initTooltip){
			_initTooltip.each(function(){
				if($('#'+$(this).attr('title'))){
					idUseElement = $(this).attr('title');
					$(this).easyTooltip({
						useElement: idUseElement,
						xOffset: 10,
						yOffset: 60
					});
				}
			});
		}
	}
}
