 /******************************************************************************
 Copyright (c) 2007 Samsung Electronics. All Rights Reserved.
 Project: Samsung.com Site Renewal(2009.05~09)

 File Name : s3_howtoguide_main.js
 Description : landing page의 news &amp; alerts 롤링관련 js함수들
 기존에 화면에 있던 scripts를 js파일로 전환
 
 Author : deuksoo.bang
 Since : 2009.09.23
 
 Modification Information
 Mod Date        Modifier         Description
 ----------      --------         ---------------------------
 2009.09.23       deuksoo.bang    create
******************************************************************************/

/**
* 자동완성기능에 필요한 상수값 정의 
*/
var AutoComplete = {
		input:'#searchInputBox',
		button:'#find_button',
		button_css:{onCss:'supportsearch_submit02', offCss:'supportsearch_submit'},
		panel:'div.suggestion_view_box',
		panel_close:'#autocomplete_panel_close',
		contents:'div.suggestion_view_contents',
		url:_SITE_CONTEXT+'support/search/supportAutoCompleteFunc.do',
		KEY:{RETURN:13, UP:38, DOWN:40, LEFT:37, RIGHT:39, ESC:27, MOUSE:229, SPACEBAR:32},
		delay:700,
		flag:true,
		currItem:0,
		itemCount:0
}

/**
* 검색창에 입력된 검색어를 찾는다.
*
*/
function search_model_list() {
	var regExp = /[^0-9a-zA-z]/g;
	var txt = $('#searchFrm input[name="searchInputBox"]').val();
	var searchWord = txt.replace(regExp,'');
	
	if(searchWord.length < 2 || searchWord == 'Entermodelnumberorkeywords') 
		return false;

	$('#searchFrm input[name="searchWord"]').val(searchWord);
	
	//omniture taging
	s_control_click('events,eVar8,eVar34', 
					'event1', 
					'event1,model number,'+_SITE_CD+':'+searchWord, 'o', 'support search');

	//stop autocomplete
	AutoComplete.flag = false;
	autoComplete_panle_hide()
	
	return true;
}
	
/**
* 특수 문자를 제외한 글자 입력 시 처리
*/
function AutoComplete_onKeyUp(e) {	

	//keyUP에서 처리되지 않는 키코드
	if ((e.keyCode == AutoComplete.KEY.RETURN) || (e.keyCode == AutoComplete.KEY.UP) || (e.keyCode == AutoComplete.KEY.DOWN) ||
		(e.keyCode == AutoComplete.KEY.LEFT) || (e.keyCode == AutoComplete.KEY.RIGHT) || (e.keyCode == AutoComplete.KEY.ESC) ||
		(e.keyCode == AutoComplete.KEY.MOUSE) || (e.keyCode == AutoComplete.KEY.SPACEBAR)) {
		return;
	}
	
	//입력된 데이타가 없거나 두자리 이하인 경우
	var str = $(AutoComplete.input).val();
	if (str.replace(/^\s*/, "").replace(/\s*$/, "").length < 2) {
		$(AutoComplete.button).removeClass(AutoComplete.button_css.onCss)
							   .addClass(AutoComplete.button_css.offCss);
		autoComplete_panle_hide();
		return;
	} else {
		if($(AutoComplete.button).hasClass(AutoComplete.button_css.offCss))
			$(AutoComplete.button).removeClass(AutoComplete.button_css.offCss)
								   .addClass(AutoComplete.button_css.onCss);
	}
	
	if(AutoComplete.flag) {
		AutoComplete.flag=false;
		setTimeout(function(){AutoComplete.flag=true; loading_data();},AutoComplete.delay);
	}
};

/**
 * 
 * @return
 */
function loading_data() {
	
	//특수문자를 제거해서 전송한다.
	var in_word = $(AutoComplete.input).val();
	var word = in_word.replace(/[^0-9a-zA-z]/g,'');
	$(AutoComplete.panel).block();
	
	//서버를 호출한다.
	$.ajax({
		url:AutoComplete.url,
		type:'GET',
		cache: true,
		global:false,
		data: {searchWord:word},
		dataType:'json',
		success: function(data){
			try {
			
				if(data == null || data.length<1) {
					autoComplete_panle_hide();
					return false;
				} else {
					autoComplete_panle_show();
				}
				
				//create new option
				var html ='<ul class=\'suggestion\'>';
				//var pattern = new RegExp(in_word,'gi');
				$.each(data, function(idx,item){
					html += "<li>"
		     			 +  "<a href='#' id='auto_li_a_"+idx+"' onclick=\"AutoComplete_onNameClick(this,'"
		     			+	item.prd_mdl_cd+"','"
		     			 +	item.prd_mdl_name+"','"
		     			 +	item.prd_ia_sub_class_cd+"'); return false;\">"
		     			 +  item.display_prd_mdl_name
		     			 //+  item.display_prd_mdl_name.replace(pattern,'<font color=\'#5656e3\'>'+in_word+'</font>');
			 			 +  "</a>"
			 			 +  "</li>";
				});
	
				html+="</ul>";
				AutoComplete.itemCount = data.length;
				$(AutoComplete.contents).html(html);
				
			} catch(err){}
		},
		complete:function() {
			//complete	
			$(AutoComplete.panel).unblock();
		}
		
	});
	
	
}

/**
* 기능키를 입력한 경우 처리
*/
function AutoComplete_onKeyPress(e) {
	
	//기능키가 아닌경우 이벤트를 처리를 하지 않는다.
	if(e.keyCode!=AutoComplete.KEY.RETURN && e.keyCode!=AutoComplete.KEY.ESC
		&& e.keyCode!=AutoComplete.KEY.UP && e.keyCode!=AutoComplete.KEY.DOWN
		&& e.keyCode!=AutoComplete.KEY.LEFT && e.keyCode!=AutoComplete.KEY.RIGHT) {
		return;
	}
	
	//alert("doOnKeyPress="+e.keyCode);
	
	if($(AutoComplete.input).val()=='') {
		autoComplete_panle_hide();
		return;
	}

	//기능키 선택 처리
	switch(e.keyCode) {
		case AutoComplete.KEY.RETURN:
			//모델 검색으로 이동하기			
			//omnitureTagging('MODEL', null);//omniture
			//search_model_list();
			break;		
		case AutoComplete.KEY.DOWN:
			break;
		case AutoComplete.KEY.UP:
			break;
		case AutoComplete.KEY.LEFT:
			break;
		case AutoComplete.KEY.RIGHT:
			break;
		case AutoComplete.KEY.ESC:
			autoComplete_panle_hide();
			break;
		default:
			break;
	}		
	
	AutoComplete_cancelBubble(e);
	return;

};


/**
* 이벤트에 대한 처리
* 
* @param ev
*/
function AutoComplete_cancelBubble(ev) {
	var e = ev;
	if (!e)
		e = window.event;

	if (e.stopPropagation)
		e.stopPropagation();
	else
		e.cancelBubble = true;
}

/**
 * 검색필드의 포커스가 나갔을 때
 * 
 * @param e
 * @return
 */
function AutoComplete_onBlur(e) {
}

/**
 * 검색필드에 포커스가 들어왔을 때
 * @param e
 * @return
 */
function AutoComplete_onFocus(e) {
	$(AutoComplete.input).val('');
	
	$(AutoComplete.button).removeClass(AutoComplete.button_css.onCss)
	   					   .addClass(AutoComplete.button_css.offCss);
}

/**
* 자동완성기능으로 검색된 모델명 클릭시 제품 디테일 페이지로 이동
* 
* @param aObj
* @param ia_cd
* @param mdl_name
* @param class_cd
*/
function AutoComplete_onNameClick(aObj,mdl_cd,mdl_name,class_cd) {
	
	//alert($(aObj).text()+":"+ia_cd+":"+mdl_name+":"+class_cd);
	$(AutoComplete.input).val($(aObj).text());
	autoComplete_panle_hide();
	
	//omniture taging
	s_control_click('events,eVar8,eVar34', 
					'event1', 
					'event1,model number,'+_SITE_CD+':'+mdl_name, 
					'o', 'support search');
	
	$('#autoCompleteFrm input[name="prd_mdl_cd"]').val(mdl_cd);
	$('#autoCompleteFrm input[name="prd_mdl_name"]').val(mdl_name);
	$('#autoCompleteFrm input[name="prd_ia_sub_class_cd"]').val(class_cd);
	$('#autoCompleteFrm').submit();
}

/**
 * 자동완성 패널 show
 * 
 * @return
 */
function autoComplete_panle_show() {
	$(AutoComplete.panel_close).show();
	$(AutoComplete.panel).show();
}

/**
 * 자동완성 패널 hide
 * 
 * @return
 */
function autoComplete_panle_hide() {
	$(AutoComplete.panel).hide();
	$(AutoComplete.panel_close).hide();
}

/**
* 자동완성기능에 필요한 필드에 이벤트 등록하기
*/
$(AutoComplete.input).bind('keyup', 	AutoComplete_onKeyUp);
$(AutoComplete.input).bind('keypress', AutoComplete_onKeyPress);
$(AutoComplete.input).bind('focus', 	AutoComplete_onFocus);
//$(AutoComplete.input).bind('blur', 	AutoComplete_onBlur);
