PageSourceSearch

https://spsamhwa.com/app/themes/sknk/src/js/lib/library.js?ver=1791588684

js spsamhwa.com collected 2026-10-09 23:36:33 UTC 20,495 bytes, 451 lines download raw bytes

1/*
2ver 1.0 2017.06.23
3많이 사용하는 기능라이브러리 
41. 이미지리사이징
52. 팝업뜨는 위치 조정
63. 디폴트 링크수정
74. 모바일/웹 뷰체크
85. 주소 뒤 변수 받기
96. 텍스트 변경 및 이미지 URL변경
107. 스크롤 이동
118. 원화변경(쉼표추가)
129. replaceAll
1310. 숫자만 입력
1411. 이메일체크
1512. 영문만입력
1613. 0추가
1714. 암호화 복호화
1815. 쿠키
19*/
20
21//******************************************************************************************************************************************************************//
22//** 1. 이미지 배경사이즈에 맞게 리사이즈 **********************************************************************************************************************************//
23//******************************************************************************************************************************************************************//
24//이미지 리사이즈 함수 화면에 맞춤 설정
25//따로 absolute 설정을 안하기 때문에 트윈맥스를 링크
26/*
27사용예시
28customImageResize($(.main .bg_img img),1024,1080,true)
29*/
30//customImageResize(이미지셀렉터,이미지 기본가로,이미지 기본세로,스케일을 1 이하로 줄일지)
31// - 이미지셀렉터 : $("img") //실제 조정될 이미지
32// - 이미지 기본가로 : 1024  // 이미지의 실제 사이즈
33// - 이미지 기본세로 : 1080  // 이미지의 실제 사이즈
34// - 스케일을 1 이하로 줄일지 : true / false  // true 일경우 원본보다 작아질 수 있음,false 일경우 원본보다 작아지지 않음
35var $temp_img_target,temp_resize_image_W,temp_resize_image_H,temp_resize_image_scaledown
36function customImageResize(imgTarget,imgSizeW,imgSizeH,downMode){
37	$temp_img_target = imgTarget
38	temp_resize_image_W = imgSizeW
39	temp_resize_image_H = imgSizeH
40	temp_resize_image_scaledown = downMode
41	$(window).bind("resize",temp_image_backgroundResize)
42	temp_image_backgroundResize()
43}
44function temp_image_backgroundResize(){
45	var xScale = $(document).width()/temp_resize_image_W
46	var yScale = $(document).height()/temp_resize_image_H
47	var defaultScale = 1
48	if(xScale>yScale){
49		defaultScale = xScale
50	}else{
51		defaultScale = yScale
52	}
53	if(defaultScale<1 && !temp_resize_image_scaledown){
54		defaultScale = 1
55	}
56	$temp_img_target.each(function(){
57		$(this).width(temp_resize_image_W*defaultScale).height(temp_resize_image_H*defaultScale)
58		var posX = ($(document).width()-$(this).width())/2
59		var posY = ($(document).height()-$(this).height())/2
60		TweenMax.to($(this),0.1,{x:posX,y:posY})
61	})
62}
63
64//******************************************************************************************************************************************************************//
65//** 2. 팝업 뜨는 위치 항상 중간 또는 맨아래, 맨위에 뜨게***********************************************************************************************************************//
66//******************************************************************************************************************************************************************//
67//팝업 띄울때 한번 호출해 주면 띄우는 팝업의 위치가 윈도우의 중간으로
68//중간에 띄울 수 없을땐 그에 맞는 위치로 이동
69//중간에 띄울때 상단이 짤리경우 지정한 위치로, 하단이 짤릴경우 하단에 팝업을 붙임
70/*
71사용예시
72	positionSet($(".popup_wrap"),100)
73*/
74//positionSet(팝업셀렉터,떨어질 위치)
75// - 팝업셀렉터 : $(".popup_wrap") //뜨는 팝업
76// - 떨어질 위치 : 100 //상단이 짤릴경우 상단에서 떨어질 위치
77function positionSet($mission,topGap){
78	if($mission.height()>$(window).height()){
79		if($mission.height()+$(window).scrollTop()>$(window).height()){
80			$mission.css("top",$(window).height()-$mission.height())
81		}else{
82			$mission.css("top",$(window).scrollTop()+topGap)
83		}
84	}else{
85		$mission.css("top",$(window).scrollTop()+($(window).height()-$mission.height())/2)
86		if($mission.css("top").replace(/[^-\d\.]/g, '')<0){
87			$mission.css("top",topGap)
88		}
89	}
90}
91//******************************************************************************************************************************************************************//
92//** 3. 링크 자동변환(공백,#,#none)->javascript:void(0)**********************************************************************************************************************//
93//******************************************************************************************************************************************************************//
94//링크 모를때 삽인한 코드 변경(눌려도 액션 안걸리도록)
95/*
96사용예시
97	change_default_link()
98*/
99//호출만으로 링크 전체 변환 상단에 위치 시켜 기본호출
100function change_default_link(){
101	$("a").each(function(){
102		if( $(this).attr("href") == "#" || $(this).attr("href") == "#none" || $(this).attr("href") == ""){
103			$(this).attr("href", "javascript:void(0)");
104		}
105	});
106}
107
108//******************************************************************************************************************************************************************//
109//** 4. 모바일 체크****************************************************************************************************************************************************//
110//******************************************************************************************************************************************************************//
111//현재 보는 상태가 모바일인지 웹인지 상태 체크
112//true나 false 로 리턴
113/*
114사용예시
115	var viewMode = check_current_viewmode()
116	console.log(viewMode) // 결과값은 true나 false로 전달
117	if(viewMode){
118		//모바일이에요
119	}else{
120		//웹이에요
121	}
122*/
123//함수 호출로 웹 모바일 체크 반환
124//체크 후 그에 맞는 액션을 반영
125function check_current_viewmode(){
126	var _check_mobile_keys = new Array('iPhone','iPod','iPad','Android','BlackBerry','Windows Phone','Windows CE','LG','MOT','SAMSUNG','SonyEricsson','Nokia');
127	for(var i in _check_mobile_keys){
128		if(navigator.userAgent.match(_check_mobile_keys[i]) != null){
129			return true;
130		}
131	}
132	return false;
133}
134
135
136//******************************************************************************************************************************************************************//
137//** 5. 주소 뒤 변수 받기************************************************************************************************************************************************//
138//******************************************************************************************************************************************************************//
139//주소 뒤에 오는 변수들 받는함수
140/*
141http://beerkorea.net/2017/index.html?page=tsingtao
142var checkParam = ckeck_addressParam("page")
143//tsingtao
144*/
145//함수 호출시 변수명을 넣어주면 값을 리턴 해줌
146function ckeck_addressParam(getParam){
147	var _tempUrl = window.location.search.substring(1);
148	
149	var returnText =""
150	if(_tempUrl == "") return "";
151	var _tempArr = _tempUrl.split("&");
152	
153	for(var i = 0; _tempArr.length; i++) {
154		var _tempStr = _tempArr[i]
155		if(_tempStr == undefined) return;
156		var _checkValue = _tempStr.split("=");
157		if(_checkValue[0] == getParam){
158			returnText =  _checkValue[1];
159			return returnText;
160		}
161	}
162	return returnText
163} 
164
165//******************************************************************************************************************************************************************//
166//** 6. 텍스트 변경 및 이미지 URL변경 *************************************************************************************************************************************//
167//******************************************************************************************************************************************************************//
168//텍스트 내의 글자를 원하는 글자로 변경(이미지 SRC 뿐만 아니라 다른 텍스트 들에도 적용 가능)
169//이미지 URL을 변경(이미지 URL을 원하는 대로 변경 가능)
170/*
171var changeURL = changeUseText($(this).find("img").attr("src"),"_off","_on")
172
173
174changeImageSrc($(this).find("img"),"_off","_on")
175*/
176//텍스트를 넣고 기존 텍스트와 변경 텍스트를 넣으면
177//기존텍스트를 변경한 텍스트를 리턴해줌
178//var changeURL = changeUseText(변경전텍스트,변경될텍스트,변경할텍스트)
179function changeUseText(defaultText,originText,changeText){
180	var _tempText = defaultText
181	var _tempOriginText = originText
182	var _tempChangeText = changeText
183	var _textIndex = _tempText.indexOf(_tempOriginText)
184	if(_textIndex == -1) return _tempText;
185	var returnChangeText = _tempText.substr(0,_textIndex)+changeText+_tempText.substr(_textIndex+originText.length)
186	return returnChangeText
187}
188
189//변경할 이미지 셀렉터를 넣고 기존 SRC의 텍스트와 변경할 텍스트를 넣으면
190//변경해서 이미지SRC로 적용시켜줌
191//changeImageSrc(변경할 이미지 셀렉터,변경전 텍스트,변경후 텍스트)
192function changeImageSrc($changeImg,originText,changeText){
193	var _tempImg = $changeImg
194	var _tempText = _tempImg.attr("src")
195	var _tempOriginText = originText
196	var _tempChangeText = changeText
197	var _textIndex = _tempText.indexOf(_tempOriginText)
198	if(_textIndex == -1) return;
199	var returnChangeText = _tempText.substr(0,_textIndex)+changeText+_tempText.substr(_textIndex+originText.length)
200	_tempImg.attr("src",returnChangeText)
201}
202
203//******************************************************************************************************************************************************************//
204//** 7. 스크롤 이동 ****************************************************************************************************************************************************//
205//******************************************************************************************************************************************************************//
206//페이지내 스크롤 이동 기본은 상단이동
207/*
208scrollAnimateMove(0,500) //스크롤 이동위치를 0 , 0.5초 동안
209*/
210//scrollAnimateMove(0,500)
211//호출시 원하는 위치로 원하는 시간동안 이동
212//scrollAnimateMove(이동위치,이동하는데 걸리는 시간)
213function scrollAnimateMove($targetMovePositionNum,$targetMoveTime){
214	$("html, body").animate({ scrollTop: $targetMovePositionNum },$targetMoveTime);
215}
216
217
218//******************************************************************************************************************************************************************//
219//** 8. 원화변경(쉼표추가) ****************************************************************************************************************************************************//
220//******************************************************************************************************************************************************************//
221/*
222var price = makeCurrency(5000) //5,000
223*/
224//호출시 쉼표추가
225
226function makeCurrency(str) {
227	var _str = str+"";
228	var arr = _str.split("");
229	var len =arr.length;
230	var cnt = 1;
231	for (var i =len - 1;i > 0; i--) {
232		if(arr[i] ==","){
233			arr.splice(i,1);
234		}
235	}
236	len=arr.length;
237	for (i=len - 1; i > 0; i--,cnt++) {
238		if (cnt % 3 == 0) {
239			arr[i]="," + arr[i];
240		}
241	}
242	_str=arr.join("");
243	return _str;
244}
245
246//******************************************************************************************************************************************************************//
247//** 9. 텍스트변경(replace) ****************************************************************************************************************************************//
248//******************************************************************************************************************************************************************//
249
250function replaceTextAll(originText,beforeStr,afterStr){
251	//_disStr.replace(/&gt;/gi,">");
252}
253
254//******************************************************************************************************************************************************************//
255//** 10. 숫자만 입력 ***********************************************************************************************************************************************//
256//******************************************************************************************************************************************************************//
257//onkeydown="onlyNumber(this)"
258function onlyNumber(obj) {
259	$(obj).keyup(function(){
260		 $(this).val($(this).val().replace(/[^0-9-/]/g,""));
261	});
262}
263//onkeydown="onlyNumber1(this)"//완전 숫자만
264function onlyNumber1(obj) {
265	$(obj).keyup(function(){
266		 $(this).val($(this).val().replace(/[^0-9]/g,""));
267	});
268}
269//onkeydown="onlyNumber2(this)"//완전 .허용
270function onlyNumber2(obj) {
271	let len =0;
272	if($(obj).val().match(/\./gi)){
273		len = $(obj).val().match(/\./gi).length
274	}
275	//console.log(len)
276	if(len>1){
277		$(obj).val($(obj).val().substr(0,$(obj).val().lastIndexOf('.')))
278	}
279	
280	$(obj).keyup(function(){
281		 $(this).val($(this).val().replace(/[^0-9.]/g,""));
282	});
283}
284//******************************************************************************************************************************************************************//
285//** 11. 이메일 체크 ***********************************************************************************************************************************************//
286//******************************************************************************************************************************************************************//
287//var str = emailCheckListener(email);
288function emailCheckListener(email){
289	// 이메일 주소를 판별하기 위한 정규식
290	var reg_email=/^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$/;
291	// 인자 email_address를 정규식 format 으로 검색
292	if (email.search(reg_email) == -1){  
293		return false;
294	}
295	return true;
296}
297//******************************************************************************************************************************************************************//
298//** 12. 영문입력 **************************************************************************************************************************************************//
299//******************************************************************************************************************************************************************//
300//onkeydown="fn_press_han(this);"
301function fn_press_han(obj){
302	//좌우 방향키, 백스페이스, 딜리트, 탭키에 대한 예외
303	if(event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39
304	|| event.keyCode == 46 ) return;
305	//obj.value = obj.value.replace(/[\a-zㄱ-ㅎㅏ-ㅣ가-힣]/g, '');
306	obj.value = obj.value.replace(/[\ㄱ-ㅎㅏ-ㅣ가-힣]/g, '');
307}
308
309function addToZero(_num,_checkNum){
310	var _originNum = _num+'';
311	if(_originNum.length>=_checkNum.length) return _originNum;
312	var _returnNum = ''
313
314	for(var i=0;i<_checkNum.length-_originNum.length;i++){
315		_returnNum += '0';
316	}
317	_returnNum +=_originNum;
318	return _returnNum;
319}
320//******************************************************************************************************************************************************************//
321//** 14. 암호화 및 복호화 ******************************************************************************************************************************************//
322//******************************************************************************************************************************************************************//
323//var cText = "01053951354"
324//cText = Encrypt(cText) 암호화
325//cText = unEncrypt(cText) 복호화
326function Encrypt(theText) {
327	if(theText == '' || theText == null) {
328		return '';
329	}
330	output = new String;
331	Temp = new Array();
332	Temp2 = new Array();
333	TextSize = theText.length;
334	for (i = 0; i < TextSize; i++) {
335		rnd = Math.round(Math.random() * 122) + 68;
336		Temp[i] = theText.charCodeAt(i) + rnd;
337		Temp2[i] = rnd;
338	}
339	for (i = 0; i < TextSize; i++) {
340		output += String.fromCharCode(Temp[i], Temp2[i]);
341	}
342	return output;
343}
344function unEncrypt(theText) {
345	if(theText == '' || theText == null) {
346		return '';
347	}
348	output = new String;
349	Temp = new Array();
350	Temp2 = new Array();
351	TextSize = theText.length;
352	for (i = 0; i < TextSize; i++) {
353		Temp[i] = theText.charCodeAt(i);
354		Temp2[i] = theText.charCodeAt(i + 1);
355	}
356	for (i = 0; i < TextSize; i = i+2) {
357		output += String.fromCharCode(Temp[i] - Temp2[i]);
358	}
359	return output;
360}
361//******************************************************************************************************************************************************************//
362//** 15. 쿠키 셋팅 ******************************************************************************************************************************************//
363//******************************************************************************************************************************************************************//
364// 쿠키 가져오기  
365function getCookie( name ) {  
366   var nameOfCookie = name + "=";  
367   var x = 0;  
368   while ( x <= document.cookie.length )  
369   {  
370       var y = (x+nameOfCookie.length);  
371       if ( document.cookie.substring( x, y ) == nameOfCookie ) {  
372           if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )  
373               endOfCookie = document.cookie.length;  
374           return unescape( document.cookie.substring( y, endOfCookie ) );  
375       }  
376       x = document.cookie.indexOf( " ", x ) + 1;  
377       if ( x == 0 )  
378           break;  
379   }  
380   return "";  
381}  
382
383// 24시간 기준 쿠키 설정하기  
384// expiredays 후의 클릭한 시간까지 쿠키 설정  
385function setCookie( name, value, expiredays ) {   
386   var todayDate = new Date();   
387   todayDate.setDate( todayDate.getDate() + expiredays );   
388   document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"   
389}  
390  
391// 00:00 시 기준 쿠키 설정하기  
392// expiredays 의 새벽  00:00:00 까지 쿠키 설정  
393function setCookieAt00( name, value, expiredays ) {   
394    var todayDate = new Date();   
395    todayDate = new Date(parseInt(todayDate.getTime() / 86400000) * 86400000 + 54000000);  
396    if ( todayDate > new Date() )  
397    {  
398    expiredays = expiredays - 1;  
399    }  
400    todayDate.setDate( todayDate.getDate() + expiredays );   
401     document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"   
402}
403
404function eraseCookie(name) {
405	document.cookie = name+'=; Max-Age=-99999999;';
406}
407
408
409//******************************************************************************************************************************************************************//
410//** 16. html 인클루드 ******************************************************************************************************************************************//
411//******************************************************************************************************************************************************************//
412// <footer include-html="/static/html/footer.html"></footer>
413//<script>
414//    includeHTML();
415//</script>
416//
417function includeHTML(callback) {
418  var z, i, elmnt, file, xhr;
419  /*loop through a collection of all HTML elements:*/
420  z = document.getElementsByTagName("*");
421  for (i = 0; i < z.length; i++) {
422    elmnt = z[i];
423    /*search for elements with a certain atrribute:*/
424    file = elmnt.getAttribute("include-html");
425    //console.log(file);
426    if (file) {
427      /*make an HTTP request using the attribute value as the file name:*/
428      xhr = new XMLHttpRequest();
429      xhr.onreadystatechange = function() {
430        if (this.readyState == 4) {
431          if (this.status == 200) {
432            elmnt.innerHTML = this.responseText;
433          }
434          if (this.status == 404) {
435            elmnt.innerHTML = "Page not found.";
436          }
437          /*remove the attribute, and call this function once more:*/
438          elmnt.removeAttribute("include-html");
439          includeHTML(callback);
440        }
441      };
442      xhr.open("GET", file, true);
443      xhr.send();
444      /*exit the function:*/
445      return;
446    }
447  }
448  setTimeout(function() {
449    callback();
450  }, 0);
451}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.