/**
 * 디버깅 함수
 */
var _debug = function(obj) {
    //alert(obj);
    console.warn(obj);
}

/**
 * Extend Javascript 로드.
 * exjs_controller 에 스크립트를 생성하고, 필요할 경우 로드한다. 
 * TODO 중복 로드 될 수 있는 경우를 대비하자
 */
var script_include = function(action) {
    document.write('<scr' + 'ipt');
    document.write(' type="text/javascript"');
    document.write(' src="/exjs/' + action + '/"');
    document.write('></scr' + 'ipt>');
}

script_include('hosts');

/**
 * 이미지버튼의 롤오버 효과
 */
var changeImage = function(target_id, src) {
    $('#' + target_id).attr('src', HOST_IMAGE + src);
}

var customAlt = function(target_id) {
    $('.custom_alt').each(function() {
            this.style.display = 'none';
            });
    if ($('#' + target_id) != null) {
        $('#' + target_id).css('display', 'block');
    }
}

/**
 * 페이지 전환
 */
var go = function(url) {
    window.location.href = url;
}

/**
 * 스냅샷 롤오버 효과
 */
var snapshotOverEffect = function(target_id, effect) {
    $('#snapshot_over_' + target_id).css('display', effect);
}

/**
 * 탭메뉴 컨트롤
 */
var changeField = function(target_id, tabClass) {
    if (tabClass == null || typeof tabClass == 'undefined') {
        var tabClass = 'tabmenu';
    }
    // about의 탭메뉴는 감추는것이 없다....
    //if ($("#" + target_id).is(":hidden")) {
        $('.' + tabClass).css('display', 'none');
        $("#" + target_id).css('display', 'block');
    //} else {
        //$('.tabmenu').css('display', 'none');
    //}
}

/**
 * 게시판 내용보기
 * Table의 속성상 display 로 제어가 힘들다.
 */
var visibleContent = function(target_id) {
    //$('.tabmenu').css('visibility', 'hidden');
    //$("#" + target_id).css('visibility', 'visible');
    $('.tabmenu').removeClass('content_display');
    $("#" + target_id).addClass('content_display');
}

var error = function(msg) {
    alert(msg);
}

/**
 * 레이어 팝업 띄우기(display 조절)
 * 페이지의 다른 레이어를 모두 닫은 후 target_id의 레이어를 컨트롤한다.
 * 독립적으로 열고 닫을 경우 jquery 함수(css)를 이용한다.
 */
var popupLayer = function(target_id, display) {
    $('.popup_layer').each(function() {
        $('#' + this.id).css('display', 'none');
    });

    $('#' + target_id).css('display', display);
}

/**
 * 팝업 닫을때 기간을 설정할 경우.
 * 팝업은 각 레이어가 독립적으로 이용되므로 popupLayer()를 호출하지 않는다. 
 */
var popupLayerLimit = function(target_id, expiredays) {
    setCookie(target_id, "checked", expiredays); 
    $('#' + target_id).css('display', 'none');
    //popupLayer(target_id, 'none');
}

/**
 * 슬라이드메뉴 
 */
var sitemap_display = function () {
    if ($("#sitemap").is(":hidden")) {
        $('#btn_display').attr('src', HOST_IMAGE + '/img/common/btn_menu_hide.png');
        $("#sitemap").slideDown("fast");
    } else {
        $('#btn_display').attr('src', HOST_IMAGE + '/img/common/btn_menu_display.png');
        $("#sitemap").slideUp("fast");
    }
};

/**
 * 조회수 증가.
 * 2009-06-16 : Customer 모든 게시판에서 조회수 기록 제외로 사용하지 않음.
 */
var increaseHit = function(board, uid) {

    var data = {
        board:board,
          uid:uid
    };

    var ajax_options = {
        url:'/customer/increase_hit/',
        type:'POST',
        data:'jsondata=' + $.toJSON(data),
        dataType:'json',
        complete:function(req) {
            //$("#hit_" + uid).html(req.responseText);
        }
    };
    $.ajax(ajax_options);
}

/**
 * 하단 패밀리 사이트 바로가기 슬라이딩효과 
 */
var selectFamilySite = function() {
    if($('#f_site').is(':hidden')) {
        $('#f_site').slideDown('fast');
    } else {
        $('#f_site').slideUp('fast');
    }
}

var setProgress = function(id, fullsize, percent) {
    var size = (fullsize * percent) / 100;
    $('#' + id).css('width', size + 'px');
}

var openPopup = function(path, name, width, height) {
	window.open(path, name, "width=" + width + ", height=" + height);
}


/**
 * URL GET Parameter 를 반환 
 */
var getURLParam = function(strParamName) {
    var strReturn = "";
    var strHref = window.location.href;
    strHref = strHref.replace('#', '');
    if ( strHref.indexOf("?") > -1 ){
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
            if (
                    aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return unescape(strReturn);
}

// 저장된 쿠키를 가져옴
var getCookie = function(name) {
    var nameOfCookie = name + "=";
    var x = 0;

    while ( x <= document.cookie.length )
    {
        var y = (x+nameOfCookie.length);
        if ( document.cookie.substring( x, y ) == nameOfCookie ) {
            if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
                endOfCookie = document.cookie.length;
            return unescape( document.cookie.substring( y, endOfCookie ) );
        }
        x = document.cookie.indexOf(" ", x ) + 1;
        if ( x == 0 )
            break;
    }
    return "";
}

// 쿠키 저장
var setCookie = function(name, value, expiredays) {
    var todayDate = new Date(); 
    todayDate.setDate(todayDate.getDate() + expiredays); 
    document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";" 
}


/**
 * 메인 배너 소개동영상을 보여주는 JS함수. jQuery를 이용하여 만듬
 * 어디에 만들어야할지 잘 몰라서 여기에 일단 넣음
 * by 2010-01-27 by KDH
 */
var main_video_width = 718;
var main_video_height = 442;
if (jQuery.boxModel) {
    main_video_width = main_video_width + 4;
    main_video_height = main_video_height + 4;
}

function showMainVideo(obj) {
    var video_id = obj.attr('video_id');
    var title_type = obj.attr('type');
    // 현재 비디오팝업이 보여지고 있으면 애니메이션효과를 실행하지 않고 동영상만 교체한다
    if ($('#main_video_container').length == 0) {
		if (obj.attr('video_width')) {
			main_video_width = obj.attr('video_width');
		}
		if (obj.attr('video_height')) {
			main_video_height = obj.attr('video_height');
		}
		//alert(main_video_width);
        var contents_offset = $('#header').offset();
        var contents_width = $('#header').width();
        var video_container_offset_left = contents_offset.left + (contents_width / 2) - (main_video_width / 2);
        var video_container_offset_top = $('body').scrollTop() + 100;
        var video_container = $('<div />').attr('id', 'main_video_container').css({'overflow':'hidden', 'opacity':0.3, 'border':'2px solid #3D3D3D', 'background':'#000', 'width':main_video_width + 'px', 'height': main_video_height + 'px', 'position':'absolute', 'top':main_video_height - main_video_height - 10 + 'px', 'left':video_container_offset_left + 'px'}).appendTo('body');
        var video_title = $('<div />').attr('id', 'main_video_title').css({'background':'#000', 'height':'40px', 'line-height':'40px'}).appendTo(video_container).html('<img src="'+HOST_IMAGE+'/img/main/main_video_title_' + title_type + '.png" alt"" />');
        var video_contents = $('<div />').attr('id', 'main_video_contents').appendTo(video_container);
        $('#main_video_container').animate({
            'top':video_container_offset_top + 'px',
            'opacity':1

        }, 250, 'swing', function() {
            var x = $('<script />').attr({'id':'main_video_load_script', 'type':'text/javascript', 'src':HOST_API+'/play_js?video_id=' + video_id + '&container=main_video_contents'}).appendTo('body');
            var main_video_container_offset = $('#main_video_container').offset();
            var btn_offset_top = main_video_container_offset.top + 8;
            var main_video_container_width = $('#main_video_container').width();
            var btn_offset_left = main_video_container_offset.left + main_video_container_width - 21;
            if (jQuery.browser.msie && parseInt(jQuery.browser.version) == 7) {
                btn_offset_top -= 4;
            }
            var y = $('<img />').click(hideMainVideo).attr({'src':HOST_IMAGE+'/img/main/main_video_close2.gif', 'id':'main_video_close_btn', 'alt':'닫기'}).css({'z-index':10000000000000, 'cursor':'pointer', 'position':'absolute', 'top':btn_offset_top + 'px', 'left':btn_offset_left + 'px'}).appendTo('body');
            $('#btn_display').unbind('click', sitemap_display).css('cursor', 'default');
        });
    }
    return false;
}

function hideMainVideo() {
    $('#main_video_close_btn').remove();
    $('#main_video_container').remove();
    $('#btn_display').click(sitemap_display).css('cursor', 'pointer');
    /**
    $('#main_video_container').animate({
        'opacity':0
    }, 100, 'swing', function() {
        $('#main_video_container').remove();
    });
    */
}

// 클립보드 복사 - 복사할 부분의 레이어 ID로 적용
var textCopy = function(text) {

    //if (window.event) {
    if ("\v" == 'v') { // if IE
        window.event.returnValue = true;
        window.clipboardData.setData("Text", text);
    } else if(window.netscape) {
       var flashcopier = 'flashcopier';
       if(!document.getElementById(flashcopier)) {
           var divholder = document.createElement('div');
           divholder.id = flashcopier;
           document.body.appendChild(divholder);
       }
       document.getElementById(flashcopier).innerHTML = '';
       var divinfo = '<embed src="' + HOST_IMAGE + '/flash/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(text)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
       document.getElementById(flashcopier).innerHTML = divinfo;
       console.info(divinfo);
       console.info(document.getElementById(flashcopier));
    } else {
        alert('자동복사를 지원하지 않는 브라우져입니다.\n선택된 내용을 복사하기(Ctrl + C)를 해주세요.');
        return false;
    }
    alert('텍스트가 복사되었습니다. 붙여넣기(Ctrl + V)하면 됩니다.');
}

// Convert size in bytes to human readable format
function toReadableSize(bytes, precision, unit) {  
    var kilobyte = 1024;
    var megabyte = kilobyte * 1024;
    var gigabyte = megabyte * 1024;
    var terabyte = gigabyte * 1024;

    if ((bytes >= 0) && (bytes < kilobyte)) {
        return bytes + ((unit == false)?'':' byte');

    } else if ((bytes >= kilobyte) && (bytes < megabyte)) {
        return (bytes / kilobyte).toFixed(precision) + ((unit == false)?'':' KB');

    } else if ((bytes >= megabyte) && (bytes < gigabyte)) {
        return (bytes / megabyte).toFixed(precision) + ((unit == false)?'':' MB');

    } else if ((bytes >= gigabyte) && (bytes < terabyte)) {
        return (bytes / gigabyte).toFixed(precision) + ((unit == false)?'':' GB');

    } else if (bytes >= terabyte) {
        return (bytes / terabyte).toFixed(precision) + ((unit == false)?'':' TB');

    } else {
        return bytes + ((unit == false)?'':' byte');
    }
}

function toReadableCurrency(num, unit) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    //num = Math.floor(num*100+0.50000000001);
    //cents = num%100;
    //num = Math.floor(num/100).toString();
    num = Math.floor(num).toString();
    //if(cents<10)
        //cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+
            num.substring(num.length-(4*i+3));
    //return (((sign)?'':'-') + 'KRW' + num + '.' + cents);
    return (((sign)?'':'-') + num);
}
