//*****************************************************************************
// Description :
// Parameter:
// Return: 없음
// 호출페이지 : quick_search.jsp
//*****************************************************************************
function partnum() {

	form = document.quicksearch;

	var webpartnum = form.search1.value;
	var cdnpartnum = form.search2.value;
	
	// Trim
	webpartnum = webpartnum.replace(/^\s*|\s*$/g, "");
	cndpartnum = cdnpartnum.replace(/^\s*|\s*$/g, "");

	if(webpartnum == "" && cdnpartnum == ""){

		alert(msgAllNumBlank);
		return false;

	}else if(webpartnum == "" && cdnpartnum != ""){

		alert(msgWebNumBlank);
		return false;

	} else {
		
		if(webpartnum.length < 3) {

			alert(msgWebNumLength);
			return false;

		} else {

			form.action = "/global/business/semiconductor/partnumberSearch.do?webpartnum="+webpartnum+"&cdnpartnum="+cdnpartnum+"&ppmi=PartnoSearch";
			form.submit();

		}

	}

}


//*****************************************************************************
// Description : 선택된 파일 New Window로 열어준다.
// Parameter:  선택된 파일 URI
// Return: 없음
// 호출페이지 : productinfo.js
//*****************************************************************************
function fileAction(url,fileName) {	
	if (fileName != "") {
		s_control_click('events,eVar11','event4','event4,'+fileName +'','d','file download');
	}
	var vUrl = "http://www.samsung.com" + url;
	newWindow(650,	500, vUrl, 1);
}

//*****************************************************************************
// Description : 선택된 파일을 다운로드
// Parameter: key(package key값)
// Return: 없음
// 호출페이지 : quick-search.jsp
//*****************************************************************************
function filedown(doc_file){

	var frm = document.quicksearch;

	frm.action = "/global/business/semiconductor/productRightMenuDown.do?doc_file="+doc_file;
	frm.submit();
}



function parametricSearch(){
	document.location = "/global/business/semiconductor/productsearch/parametricsearch/ProductSearch_ParametricSearch_List.html";
}

function orderingInformation(){


	var frm = document.quicksearch;

	frm.action = "/global/business/semiconductor/partnumberDecoder.do";
	frm.submit();


}

function tip(){

	var vUrl = "/global/business/semiconductor/productsearch/partno_search/ProductSearch_Tip.html";
	openWindow(580,	480, vUrl, 1);

}

var chkmouseout = 0;

function chkselectview(obj){
	obj.focus();
	if(document.getElementById('selectfstpartnumber').style.display== 'none'){
		document.getElementById('selectfstpartnumber').style.display= 'block'
	}else if(document.getElementById('selectfstpartnumber').style.display== 'block'){
		document.getElementById('selectfstpartnumber').style.display = 'none'
	}

}
			
function changecolor(mode, obj){
	obj.style.cursor='default';
	if(mode == 'over'){
		chkmouseout = 1;
		obj.style.backgroundColor = '#eee9e5';
	}else if(mode == 'out'){
		obj.style.backgroundColor = '#ffffff';
	}
	

}

function clickcodevalue(obj){
	document.getElementById("outfstvalue").value = obj.id;
	document.getElementById("codesearch").submit();

}

function checkfocusout(){
	obj = document.getElementById('selectfstpartnumber');
	if(chkmouseout == 1){
		obj.style.display ='block';
	}else if( chkmouseout == 0 ){
		obj.style.display ='none';
	}

}

//**********************************************************************************************************************************************************
// Description : Part No Search 자동완성기능 추가
// Parameter: 
// Return: 
// 호출페이지 : quick-search.jsp / index.html / semi.sec
//**********************************************************************************************************************************************************

/**
* 자동완성기능 스크롤 위치 변수
*/
var offset = 0;

/**
* 자동완성기능에 필요한 상수값 정의 
*/
var AutoComplete = {
		input:'#search1',
		panel:'div.suggestion_view_box_1',
		contents:'div.suggestion_view_contents_1',
		url:'/global/business/semiconductor/partnumberSearchAutoCompleteFunc.do',
		KEY:{RETURN:13, UP:38, DOWN:40, LEFT:37, RIGHT:39, ESC:27, MOUSE:229, SPACEBAR:32},
		delay:500,
		flag:true,
		currItem:-1,
		inputPartnum:'#partnum1'
}

/**
* 검색창에 입력된 검색어를 찾는다.
*
*/
function search_partnum_list() {
	var regExp = /[^0-9a-zA-z]/g;
	var txt = $('#quicksearch input[name="search1"]').val();
	var searchWord = txt.replace(regExp,'');

	if(searchWord == '' || searchWord.length < 3){
		return false;
	}

	$('#quicksearch input[name="searchWord"]').val(searchWord);
	return true;
}

var items = $(AutoComplete.currItem);
var contentLis = null;

/**
* key up,down 시 highlight 부분을 위해 선언
**/
var gubunUp = "";
var gubunDown = "";

/**
* 입력창에 SEARCH WORD 입력처리
*/
function setSearchWord (searchWord,enterProces) {
	$(AutoComplete.input).attr("value",searchWord);
	if ($(AutoComplete.panel).show() && enterProces == 'Y'){
		autoComplete_panle_hide();
		$(AutoComplete.inputPartnum).attr("value",searchWord);
	}
}

/**
* opera brower key down , up event가 동작하지 않아 keydown 으로 처리
*/
function AutoComplete_onKeyDown(e) {

	//keydown에서 처리되지 않는 키코드
	if ((e.keyCode == AutoComplete.KEY.RETURN)|| (e.keyCode == AutoComplete.KEY.LEFT) || (e.keyCode == AutoComplete.KEY.RIGHT) || 
		(e.keyCode == AutoComplete.KEY.MOUSE) || (e.keyCode == AutoComplete.KEY.SPACEBAR)) {
		return;
	} else  // event 시킬 event가 들어왔을때만 처리
		if ((e.keyCode == AutoComplete.KEY.UP) || (e.keyCode == AutoComplete.KEY.DOWN) || (e.keyCode == AutoComplete.KEY.ESC)) {
		switch(e.keyCode) {

			case AutoComplete.KEY.DOWN:
				if (items >= 0){
					contentLis.eq(items).removeClass('highlight');
				}
				if (items == contentLis.length - 1 ){
					gubunDown = "Y";
				} else if (items > contentLis.length - 1 && gubunDown == "Y"){
					items = contentLis.length -1;
				} else if (items < contentLis.length - 1) {
					items = items + 1;
					if(items >= 5){
						if(navigator.appName=="Netscape"){
							if ($.browser.safari) {
								offset = offset + 18;
							} else {
								offset = offset + 18.5;
							}
						} else {
								offset = offset + 18;
						}
					}
				} else {
					items = 0;
				}
				contentLis.eq(items).addClass('highlight');
				setSearchWord(contentLis.eq(items).text(),'');
				break;

			case AutoComplete.KEY.UP:
				if (items >=0){
					contentLis.eq(items).removeClass('highlight');
				}
				if (items == 0){
					gubunUp = 'Y';
				} else if (items < 0 && gubunUp == 'Y'){
					items = 0;
				} else if (items < contentLis.length - 1 || items == contentLis.length - 1){
					gubunUp = '';
					items = items -1;
					if(offset > 0){
						if(navigator.appName=="Netscape"){
							if ($.browser.safari) {
								offset = offset - 18;
							} else {
								offset = offset - 18.5;
							}
						} else {
								offset = offset - 18;
						}
					}
				}
				contentLis.eq(items).addClass('highlight');
				setSearchWord(contentLis.eq(items).text(),'');
				break;
			case AutoComplete.KEY.ESC:
				autoComplete_panle_hide();
				break;
			default:
				break;
		}
		$(AutoComplete.contents).scrollTop(offset);
		AutoComplete_cancelBubble(e);
		return;
	}
};

/**
* 특수 문자를 제외한 글자 입력 시 처리 <<jquery keyPress event와 keyUp event의 동시적용이 ie brower에서 중복동작이 안되어 event 한개로 통일시킴
*/

function AutoComplete_onKeyUp(e) {
	//keyUP에서 처리되지 않는 키코드
	if ((e.keyCode == AutoComplete.KEY.UP) || (e.keyCode == AutoComplete.KEY.DOWN) || 
		(e.keyCode == AutoComplete.KEY.LEFT) || (e.keyCode == AutoComplete.KEY.RIGHT) || 
		(e.keyCode == AutoComplete.KEY.MOUSE) || (e.keyCode == AutoComplete.KEY.SPACEBAR)) {
		return;
	} else  // event 시킬 event가 들어왔을때만 처리
		if ((e.keyCode == AutoComplete.KEY.RETURN) || (e.keyCode == AutoComplete.KEY.ESC)) {
			if($(AutoComplete.input).val()=='') {
				autoComplete_panle_hide();
				return;
			}
			//기능키 선택 처리
			switch(e.keyCode) {
				case AutoComplete.KEY.RETURN:
					if(items >= 0 && contentLis.eq(items)) {
						setSearchWord(contentLis.eq(items).text(),'Y');
					}
					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;
	} else {
		//입력된 데이타가 없거나 세자리 이하인 경우
		var str = $(AutoComplete.input).val();
		if (str.replace(/^\s*/, "").replace(/\s*$/, "").length < 3) {
			autoComplete_panle_hide();
			items = -1;
			return;
		}
		if(AutoComplete.flag) {
			AutoComplete.flag=false;
			setTimeout(function(){AutoComplete.flag=true; loading_data();},AutoComplete.delay);
		}
	}
};

/**
 * 
 * @return
 */
function loading_data() {
	/**
	* set blockUI.defaults 로딩 이미지
	*/
	$.blockUI.defaults.message = '<img src="/global/business/semiconductor/support/images/semi_support_loading.gif" alt=""/>';

	//특수문자를 제거해서 전송한다.
	var in_word = $(AutoComplete.input).val();
	var in_word_leng = in_word.length;
	var word = in_word.replace(/[^0-9a-zA-z]/g,'');

	if(word == '' || word.length < 3){
		return false;
	}

	$(AutoComplete.panel).block();

	//서버를 호출한다.
	$.ajax({
		url:AutoComplete.url,
		type:'POST',
		cache: false,
		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_1\'>';
				$.each(data, function(idx,item){
					html += "<li>"
						 +  "<a href='#' onclick=\"AutoComplete_onNameClick(this,'"
						 +  item.partnum1+"'); return false;\">"
						 +  item.partnum1
						 +  "</a>"
						 +  "</li>";
				});
				html+="</ul>";
				$(AutoComplete.contents).html(html);
				offset = 0;
				$(AutoComplete.contents).scrollTop(offset);
			} catch(err){}
		},
		complete:function() {
			$(AutoComplete.panel).unblock();
			contentLis = $('.suggestion_1 li');
			/**
			* set blockUI.defaults 로딩 이미지
			*/
			$.blockUI.defaults.message = '<img src="/global/images/common/product_list_loading.gif" alt=""/>';

		}
	});
}

/**
* 이벤트에 대한 처리
* 
* @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) {
	loading_data();
}

/**
* 자동완성기능으로 검색된 모델명 클릭시 input box에 검색 모델명 입력
* 
* @param aObj
* @param partnum
*/
function AutoComplete_onNameClick(aObj,partnum) {
	$(AutoComplete.input).val($(aObj).text());
	autoComplete_panle_hide();
}

/**
 * 자동완성 패널 show
 * 
 * @return
 */
function autoComplete_panle_show() {

	var autocomplete_iframe = document.getElementById("autocomplete_iframe");

	if( navigator.appVersion.indexOf("MSIE 6") > -1){
		if(autocomplete_iframe != null){
			autocomplete_iframe.style.display = "block";
		}
	}

	offset = 0;
	items = -1;
	$(AutoComplete.panel).show();
	$(AutoComplete.contents).scrollTop(offset);
}

/**
 * 자동완성 패널 hide
 * 
 * @return
 */
function autoComplete_panle_hide() {


	var autocomplete_iframe = document.getElementById("autocomplete_iframe");

	if( navigator.appVersion.indexOf("MSIE 6") > -1){
		if(autocomplete_iframe != null){
			autocomplete_iframe.style.display = "none";
		}
	}

	offset = 0;
	items = -1;
	$(AutoComplete.panel).hide();
}

/**
* 자동완성기능에 필요한 필드에 이벤트 등록하기
*/
$(AutoComplete.input).bind('keyup', AutoComplete_onKeyUp);
$(AutoComplete.input).bind('keydown', AutoComplete_onKeyDown);
$(AutoComplete.input).bind('focus', AutoComplete_onFocus);



/**
* 자동완성 panel을 벗어난 위치 click시 레이어 숨기기
*/
$(document).ready(function() {
	$("#business").filter(":not(#quicksearch)").click(function(){
		autoComplete_panle_hide();
		//$("#autocomplete_panel_1").css({display:"none"});
	});
});


