﻿//depend on 'common.js'
//depend on 'swfobject'
//blog 에서 공통적으로 사용되는 javascript 

function copyTrackbackUrl(url){
    copyClipBoard(url, "먼댓글(트랙백) 주소가 복사되었습니다.");
}

function copyUrl(url){
    copyClipBoard(url, "글주소가 복사되었습니다.");
}

//swf activeX를 이용하여 묻지않고 복사 (js 와 html소스설정해야 사용가능 blog, town 설정해놓음
//<script type="text/javascript" language="javascript" src="/js/swfobject.js"></script> 
/*<div id='flasharea'></div>
<script type="text/javascript">
    //클립보드복사 
    var so = new SWFObject("/js/cliputil.swf", "cliputil", "0", "0", "8", "#FFFFFF", true);
    so.addParam ("allowScriptAccess", "always");
    so.write("flasharea");
</script>  
*/
function copyClipBoard(txt, msg){
    var result;
    if (window.clipboardData) //IE
    { 
        result = window.clipboardData.setData('Text', txt);
        if(result){
            alert(msg);
        }else{
            alert('작성하신 내용이 클립보드에 저장되지 않았습니다.\n클립보드 액세스 설정을 허용으로 변경하신 후 이용하세요.');
        }
    }else{
        var cliputil = $('cliputil');
	    result = cliputil.SetClipboard(txt);
	    alert(msg);
    }
}

function copyPaper(txt){
    copyClipBoard(txt, "작성하신 내용이 클립보드에 저장되었습니다. \n글이 저장되지 않은경우 Ctrl + V 로 붙여넣기 하세요.");
}




//open layer modalpupup
function show_layer_modalPopup(frm, div ){
//   var ev = window.event ? window.event : false;
//   var xx = 0;
//   var yy = 0;
//   if(ev) {
//      xx = ev.clientX+document.body.scrollLeft - 60;
//      yy = ev.clientY+document.body.scrollTop - 60;
//      alert(ev.y + ' / ' + document.body.scrollTop);
//   } else {
//      xx=-200;
//      yy=-100;
//      alert(1);
//   }

   var xx=-200;
   var yy=-100;
	
	$(frm).appendChild($(div));
	ModalPopup.show(div,{offsetX:xx,offsetY:yy }); 
}

//close layer modalpupup
function hide_layer_modalPopup(div){
	ModalPopup.hide(div,{}); 
}

//clear inputbox background Image
function clear_BGImage(obj){
    obj.style.backgroundImage = "none";
}


//컨트롤의 빈값을 체크하여 빈값인 경우 메시지 호출후 체크결과 반환
function EmptyCheck(obj, msg){
   if( (trim(obj.value)).length < 1){
      obj.focus();
      alert(msg);
      return false;
   }
   return true;
}


//블로그 또는 이메일 주소확인
function checkEmailOrURL(inputObj){
		var inputVal = inputObj.value;
		var isOK = false;
      
      if( inputVal.indexOf("@") > 0 && inputVal.indexOf("/") < 0 ) //메일주소여부
		{	
		   isOK = true;
		}
		else if( inputVal.indexOf(".") > 0 && inputVal.indexOf("@") < 0) //주소여부
		{
			//주소에 http// 붙이기
			if(inputVal.indexOf("http://")<0)
				inputObj.value = "http://"+inputVal;
			isOK = true;
		}				

		return isOK;
}



//마우스 오른쪽 버튼 사용 금지 
var currentRClick = false;
function offRClick(){
    if(!currentRClick){
        document.oncontextmenu = new Function('alert("컨텐츠 보호를 위해 마우스 오른쪽 버튼은 사용하실 수 없습니다."); return false');
        document.ondragstart = new Function('return false');
        document.onselectstart = new Function('return false');
        currentRClick=true;
    }
}


/*
//마우스 오른쪽 버튼 사용 해제 
function onRClick(){
    if(currentRClick){
        document.ondragstart = null;
        document.onselectstart = null;
        document.oncontextmenu = null;
        currentRClick=false;
    }
}
*/


//지정된 obj 엘리먼트 하위의 라디오 버튼중 체크된 값을 리턴               
function getCheckedRadioForDiv(obj){
  var inputs = obj.getElementsByTagName('input');
  var returnV = "";
  for(var i=0; i<inputs.length; i++){
      var inp = inputs[i];
      if(inp.type!='radio') continue;
      if(inp.checked){
          returnV = inp.value;
          break;
      }
  }
  return returnV;
}

//지정된 obj 엘리먼트 하위의 라이오 버튼을 해당하는 값으로 선택시킴           
function setCheckedRadioForDiv(obj, val){
  var inputs = obj.getElementsByTagName('input');
  var returnV = "";
 
  for(var i=0; i<inputs.length; i++){
      var inp = inputs[i];
      if(inp.type!='radio') continue;
      if(inp.value == val){
          inp.checked = true;
          break;
      }
  }
}

//지정된 obj 엘리먼트 하위의 선택된 체크 박스 아이템들을 반환
//obj : 체크박스를 감싸고 있는 컨테이너 객체
//delimeter : 다중선택된 경우 지정된 구분자를 넣어 반환, null 일경우 ',' 사용 
function getCheckedCheckboxForDiv(obj, delimeter)
{
     var selectedItems ="";
     var delim = (delimeter == null || delimeter == "undefined") ? "," : delimeter;
     this.checked = !this.checked;
     var inputs = obj.getElementsByTagName('input');
     for(var i=0; i<inputs.length; i++){
         var ckb = inputs[i];
         if(ckb.type =='checkbox'){
            if(ckb.checked){
               selectedItems = selectedItems + ckb.value + delim;
            }
         }
     }
     return selectedItems.substring(0, selectedItems.length -1);
}
 
//지정된 obj 엘리먼트 하위의 체크 박스 아이템들을 모두 선택
//obj : 체크박스를 감싸고 있는 컨테이너 객체
function checkAllCheckboxForDiv(obj)
{
     this.checked = !this.checked;
     var inputs = obj.getElementsByTagName('input');
     for(var i=0; i<inputs.length; i++){
         var ckb = inputs[i];
         if(ckb.type =='checkbox'){
            ckb.checked = this.checked;
         }
     }
}  


//클릭된 위치에 해당 오브젝트를 토글
function toggleLayer(obj, evt){
     Element.toggle(obj);
     var pos = getScrollOffset();
     var evt = Event.getEvent(evt);
     if(isIE){
         obj.style.left = parseInt(evt.clientX, 10) + parseInt(pos['x'],10) + "px";
         obj.style.top = parseInt(evt.clientY,10) + parseInt(pos['y'],10) + "px";
     }else{
         obj.style.left = parseInt(evt.pageX, 10) + "px";
         obj.style.top = parseInt(evt.pageY,10) + "px";
     }
}



//토글정보를 쿠키에 담아서 토글링 되는 박스 
function toggleCookieBox(cookieid, obj){
   var flag;
   if(Element.visible(obj))
   {
      Element.hide(obj);
      flag = 'N';
   }else{
      Element.show(obj);
      flag = '';
   }
   setCookie(cookieid, flag, 30) ;
}

//쿠키에 담은 토글링 정보로 토글 설정 
function initCookieBox(cookieid, obj){
   var flag = getCookie(cookieid);
   if(flag == "N"){
      Element.hide(obj);
   }else{
      Element.show(obj);
   }
}

//---------------- text 컨트롤 길이 검사 및 자르기 st


//글자 길이 검사
//frmId : 입력텍스트 박스의 id
function textlen_check(frmId,id,lenStr)
{
   textlen_check2($(frmId),id,lenStr);
}

//글자 길이 검사 
//frm: 입력텍스트 박스의 컨트롤 
function textlen_check2(frm,id,lenStr)
{   
   var length = textlen_calculate(frm.value);
   if(id != null)
      $(id).innerHTML = length;
   
   if (length > lenStr) {
      alert("최대 "+lenStr+" 바이트 (한글 " + Math.floor(lenStr/2) +"자)까지 남기실 수 있습니다.\r\n초과된 " + (length - lenStr) + "바이트는 자동으로 삭제됩니다.");
      frm.value = textlen_cut(frm.value, lenStr, id);
   }
}


//글자 길이 측정(내부 함수)
function textlen_calculate(message)
{
   var nbytes = 0;
   for (i=0; i<message.length; i++) {
      var ch = message.charAt(i);
      if (escape(ch).length > 4) {
         nbytes += 2;
      } else if (ch != "\r") {
         nbytes++;
      }
   }
   return nbytes;
}

//글자 자르기(내부 함수)
function textlen_cut(message, maximum, id)
{
   var inc = 0;
   var nbytes = 0; 
   var msg = "";
   var msglen = message.length;
   for (i=0; i<msglen; i++) {
      var ch = message.charAt(i);
      if (escape(ch).length > 4) {
         inc = 2;
      } else if (ch != "\r") {
         inc = 1;
      }
      if ((nbytes + inc) > maximum) {
         break;
      }
      nbytes += inc;
      msg += ch;
   }
   if(id != null)
      $(id).innerHTML = nbytes;
   
   return msg;
}

//이미지가 최대 사이즈보다 큰지 체크하여 리사이즈 
//img 오브젝트
//maxSize 최대사이즈 
function ResizeImageSize(img, maxSize){
   if(img.width > maxSize)
      img.width = maxSize;
}


//---------------- text 컨트롤 길이 검사 및 자르기 end 


//페이퍼 팝업 페이지 오픈
function OpenPaperPopup(url){
   var width = 632;
   var paperWin = window.open(url,'PaperPopup','width=' + width +',height=600,scrollbars=1,resizable=1'); 
   paperWin.focus();
}




/* open pop */
function OpenPopup(url){
   var opt = "toolbar=0, location=0, directories=0, status=0, menubar=1, scrollbars=1, resizable=1, width=560, height=320";
   var cWin = window.open (url, "newWin", opt);
   cWin.focus();
}
    
    
    
function OpenPopup(url,w,h,scroll){
   var opt = "toolbar=0, location=0, directories=0, status=0, scrollbars=" + scroll + ", width=" + w + ", height=" + h;
   var cWin = window.open (url, "newWin", opt);
   cWin.focus();
}

function LogoutPopup(){
   var url = 'http://www.aladin.co.kr/login/wlogin_popup_logout.aspx';
   window.open(url,'Logout','width=430,height=256');
}


//로그인팝업
//returnurl 은 프로토콜과 도메인을 포함한 주소이여야 함
//예)http://blog.aladin.co.kr/juliet486/briefing/main
function LoginPopUp(returnurl){
   var url = 'http://www.aladin.co.kr/login/wlogin_popup.aspx?isblog=1' 
	if(returnurl){url += '&returnurl=' + escape(returnurl);}
	document.domain = 'aladin.co.kr';
	OpenLoginPopup(url);
}

//(내부함수)
//로그인 팝업창을 호출
//LoginPopUp()에 의해 호출되어짐
function OpenLoginPopup(url){
	var csPop = window.open(url,'Login','width=431,height=256,status=0');
	if(!csPop){alert('팝업이 차단되었습니다. 팝업차단을 해제하시고 다시 한 번 로그인 해주세요.');}
}


