/**
 * Saramin JavaScript , version 0.9
 * GNB, Sidebar
 *
 * @requires prototype-1.6.0.3.js, scriptaculous.js
 * @version $Id$
 * @copyright (c) 2008-2009 SaraminHR Co., Inc.
 *--------------------------------------------------------------------------*/

if (!Saramin) { var Saramin = {Version: '0.9'};
    Saramin.prototype = {};
}
Saramin.HoverMenu = Class.create();
Saramin.HoverMenu.prototype = {
    initialize: function(el, sub, options) {
        this.options = Object.extend({ timeout: 0, eventTypes: ['mouseover'], hideOnClick: true, cssClassName: 'hover'}, options || { });
        this.el = $(el);
        this.sub = $(sub);
        this.queue = [];
        this.init();
    },
    init: function() {
        this.options.eventTypes.each( function(type) {
        	
        	switch(type) {
            case 'click' :
                this.el.onclick = function() {
                    if(null == this.options.cssClassName) { this.sub.toggle(); }
                    else { this.sub.toggleClassName(this.options.cssClassName); }
                }.bind(this);
                break;
            case 'mouseover' :
                this.sub.onmouseover = this.el.onmouseover = function() { this.enterMenu(); }.bind(this);
                break;
            }
        }.bind(this));

        this.el.onmouseout = this.sub.onmouseout = function() {
            if(this.options.timeout > 0) {
                this.queue.push( this.leaveMenu.delay(this.options.timeout/1000, this) );
            } else {
                this.leaveMenu(this);
            }
        }.bind(this);

        if(this.options.hideOnClick) {
            this.sub.onclick = function(event) {
                if(null == this.options.cssClassName) { this.sub.toggle(); }
                else { this.sub.toggleClassName(this.options.cssClassName); }
            }.bind(this);
        }
    },
    enterMenu: function() {
        while (this.queue.length) {
            clearTimeout(this.queue.shift());
        }
        if(null == this.options.cssClassName) { this.sub.show(); }
        else { this.sub.addClassName(this.options.cssClassName); }

    },
    leaveMenu: function(parent) {
        //alert('leaveMenu');
        if(parent.el) {
            if(null == parent.options.cssClassName) { parent.sub.hide(); }
            else { parent.sub.removeClassName(parent.options.cssClassName); }
        }
    },
    focusMenu : function () {
    	this.hideAll();
    	this.sub.show();
    },
    hideAll : function() {
    	$$(".gnb_sub_menu").each(function(elt) {   
			$(elt).hide();
		});
    }
};
Saramin.BebobWindow = Class.create();
Saramin.initBebobWindow = function() {

    var akcInput = $('AKCKwd');
    var aaa = true;
    akcInput.onfocus = function() {

        this.addClassName('focused');
        if (in_ch) { return; }
        this.value = "";
    };
    akcInput.onblur = function() {
        if(this.value.empty()) {
            this.removeClassName('focused');
        }
    };

    Event.observe('AKCFrm', 'submit', function(event) {
        var form = Event.element(event);
        var searchword = form.searchword.value ;
        if(in_ch) {
            if (searchword.blank()) {
                Event.stop(event);
                form.searchword.focus();
                alert("Å°¿öµå¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä!!");
                form.searchword.value = "";
            }
        } else {
            if (searchword.blank()) {
                search_banner(event) ;
            }
        }
        search_banner_sub(event) ;
    });
};

Saramin.Sidebar = Class.create(Abstract);
Saramin.Sidebar.prototype = {
    initialize: function (sticker, options) {
    this.stopScroll = false;
    this.scrolling  = false;
    this.sticker    = $(sticker);
    this.options    = Object.extend({
        duration:       0.1,
        x:              0,
        top:            0,
        bottom:         0,
        delay:          0,
        transition:      'sinoidal'
    }, options || {});
    Event.observe(window, 'scroll', this.scroll.bindAsEventListener(this));
  },
  scroll: function(event) {
      if (!event) {
          event = window.event;
      }
      event.cancelBubble = true;
      event.stop();

      if(this.stopScroll) {
          if(this.scrolling) {
              this.scrolling.cancel();
              this.scrolling = false;
          }
          return ;
      }

      if (!this.scrolling) {
          this.moveTo();
      }
  },
  moveTo: function(element) {

    if (this.scrolling) { this.scrolling.cancle(); }

    Position.prepare();
    if (0 < this.options.bottom) {

        var toY = (Position.deltaY < this.options.top) ? this.options.top + 8 : Position.deltaY + 8 ;

        if( Position.deltaY + this.sticker.getHeight() > Element.getHeight('wrapper') - this.options.bottom ) {
            toY = (Element.getHeight('wrapper') - this.options.bottom ) - ( this.sticker.getHeight() + 8 );
        }

    } else {
        var toY = (Position.deltaY < this.options.top) ? this.options.top + 8 : Position.deltaY + 8 ;
    }

    this.scrolling = new Effect.Move(this.sticker, {
        duration: this.options.duration,
        x: (this.options.x),
        y: (toY),
        mode: 'absolute',
        beforeFinish: (function (effect) {
            this.scrolling = false;
            Position.prepare();
            if( effect.options.y != (toY) ) {
                this.moveTo();
                return;
            }
        }).bind(this)
    });
    return false;
  }
};

Saramin.SideWidget = Class.create();
Saramin.SideWidget.prototype = {
    initialize: function (sticker, options) {
        this.sticker = $(sticker);
        this.options = Object.extend({
            top_limit: 0,
            top_default: 0,
            fixed_css: 'fixed',
            absolute_css:   'absolute'
        }, options || {});

        Event.observe(window, 'scroll', this.scroll.bindAsEventListener(this));
    },
    scroll: function(event) {
        if ( !document.body ) {
            var sct = document.documentElement.scrollTop;
        } else {
            var sct = document.body.scrollTop;
        }

        sct = sct + this.options.top_default;

        if ( sct <= this.options.top_limit ) {
            this.sticker.removeClassName(this.options.fixed_css);
            this.sticker.addClassName(this.options.absolute_css);
        } else {
            this.sticker.removeClassName(this.options.absolute_css);
            this.sticker.addClassName(this.options.fixed_css);
        }
    }
};


Saramin.clickAds = function (rec_idx, spec) {
    var i = new Image();
    var spec = spec || '';
    i.src="/zf_user/jobs/click/ads-click?rec_idx="+rec_idx+"&"+spec;
    i.onload=function() { return;};
};

Saramin.readJob = function (rec_idx, spec) {
    var i = new Image();
    var spec = spec || '';
    i.src="/zf_user/jobs/read-jobs/read?rec_idx="+rec_idx+"&"+spec;
    i.onload=function() { return;};
};

Saramin.open = function(elt, specs) {
    var sURL = elt.href || "about:blank" ;
    var name = elt.target || "_blank" ;
    var w = window.open(sURL, name, specs);
    w.focus();
};

Saramin.openUrl = function(link, target, specs) {
    var sURL = link || "about:blank" ;
    var name = target || "_self" ;
    var specs = specs || '';
    var w = window.open(sURL, name, specs);
    w.focus();
};

Saramin.validateLoginForm = function(form) {
    if(form.id.value==""){
        alert("id ¸¦ ÀÔ·ÂÇÏ¼¼¿ä"); form.id.focus();
        return false;
    }
    if(form.id.value.indexOf(" ")>0){
        alert("id¿¡ °ø¹é¿¡ ÀÖ½À´Ï´Ù. °ø¹éÀ» Á¦°ÅÇØÁÖ¼¼¿ä");
        form.id.focus();
        return false;
    }
    if(form.id.value.length<4){
        alert("id´Â 4ÀÚÀÌ»óÀÌ¾î¾ß ÇÕ´Ï´Ù");
        form.id.focus();
        return false;
    }
    if(form.password.value==""){
        alert("password ¸¦ ÀÔ·ÂÇÏ¼¼¿ä");
        form.password.focus();
        return false;
    }
    if(form.password.value.indexOf(" ")>0){
        alert("password¿¡ °ø¹é¿¡ ÀÖ½À´Ï´Ù. °ø¹éÀ» Á¦°ÅÇØÁÖ¼¼¿ä");
        form.password.focus();
        return false;
    }
    if(4 > form.password.value.length){
        alert("password´Â 4ÀÚÀÌ»óÀÌ¾î¾ß ÇÕ´Ï´Ù");
        form.password.focus();
        return false;
    }
    var hn = document.location.hostname;
      form.action = "https://" + hn+ "/zf_user/auth/login";
};

var in_ch = false ;

Object.extend(String.prototype, {
    byteLength: function () {
        var byteLength = 0;
        for ( var i=0; i<this.length; i++ ) {
            if (4 < escape(this.charAt(i)).length) {
                byteLength += 2;
            } else {
                byteLength += 1;
            }
        }
        return byteLength;
    },
    truncateByte: function (maxLength, truncation) {
        var byteLength = 0;
        for ( var i=0; i<this.length; i++ ) {
            if (4 < escape(this.charAt(i)).length) {
                byteLength += 2;
            } else {
                byteLength += 1;
            }
            if (maxLength < byteLength) {
                return this.truncate(i, truncation);
            }
        }
        return this;
    }
});
Saramin.showLayer = function(ev, id) {
    var layer = $(id);
    var source = Event.element(ev);

    var options = Object.extend({
        setLeft:    true,
        setTop:     true,
        setWidth:   false,
        setHeight:  false,
        offsetTop:  0,
        offsetLeft: 0
      }, arguments[2] || { });

    Element.clonePosition(layer, source, options);
    layer.style.display = 'block';
};
Saramin.hideLayer = function(id) {
    $(id).hide();
};

// Ç³¼± µµ¿ò¸» ·¹ÀÌ¾î º¸ÀÌ±â & °¨Ãß±â
Saramin.ToolTip = Class.create();
Saramin.ToolTip.prototype = {
    /**
     * initialize
     *
     * @param integer content width {contentWidth}
     * @param string  layer background iframe element id {iframeId}
     * @param string  arrow layer element id {arrowId}
     * @param string  switch checkbox element id {switchId}
     */
    initialize: function(contentWidth, options) {
        this.contentWidth     = contentWidth;
        this.currentLayerEl   = '';
        this.currentLayerName = '';
        this.arrowDimensions  = '';

        this.options = Object.extend({
            iframe_id : '',             // background iframe element id
            arrow_id : '',              // È­»ìÇ¥ layer element id
            switch_id : '',             // Ç³¼±µµ¿ò¸» »ç¿ë ¿©ºÎ checkbox element id
            arrow_top_id : '',          // »ó´Ü È­»ìÇ¥ layer element id
            plus_top_pos : {},          // plus top position (tooltip, arrow, arrow_top, iframe)
            plus_left_pos : {},         // plus left position (tooltip, arrow, arrow_top, iframe)
            minus_top_pos : {},         // minus top position (tooltip, arrow, arrow_top, iframe)
            minus_left_pos : {}         // minus left position (tooltip, arrow, arrow_top, iframe)
        }, options || {});

        this.iframeLayer        = '';
        this.arrowLayer         = '';
        this.arrowDimensions    = '';
        this.arrowTopLayer      = '';
        this.arrowTopDimensions = '';
        this.switchEl           = '';

        // background iframe layer
        if ( this.options.iframe_id != '' ) {
            this.iframeLayer = $(this.options.iframe_id);
        }

        // ÇÏ´Ü È­»ìÇ¥ layer
        if ( this.options.arrow_id != '' ) {
            this.arrowLayer      = $(this.options.arrow_id);
            this.arrowDimensions = this.arrowLayer.getDimensions();
        }

        // »ó´Ü È­»ìÇ¥ layer
        if ( this.options.arrow_top_id != '' ) {
            this.arrowTopLayer      = $(this.options.arrow_top_id);
            this.arrowTopDimensions = this.arrowTopLayer.getDimensions();
        }

        // µµ¿ò¸» ·¹ÀÌ¾î on & off element
        if ( this.options.switch_id != '' ) {
            this.switchEl = $(this.options.switch_id);
        }
    },

    /**
     * µµ¿ò¸» ·¹ÀÌ¾î º¸ÀÌ±â
     *
     * @param string layer type {type}  balloon || rectangle
     * @param object element object {el}
     * @param string layer name {name}
     */
    show: function(type, el, name) {
        // ´Ù¸¥ Ç³¼± µµ¿ò¸» ·¹ÀÌ¾î°¡ ¿­·Á ÀÖÀ» °æ¿ì ÇØ´ç ·¹ÀÌ¾î¸¦ °¨Ãá´Ù.
        if ( this.currentLayerEl != '' && this.currentLayerName != '' ) {
            if ( this.currentLayerEl != el ) {
                this.hide(this.currentLayerName);
            }
        }

        // ÇöÀç º¸¿©ÁÖ´Â ·¹ÀÌ¾îÀÇ element¿Í nameÀ» º¯¼ö¿¡ ´ã´Â´Ù.
        this.currentLayerEl   = el;
        this.currentLayerName = name;

        if ( this.switchEl != '' && this.switchEl.checked == true ) {
            return;
        }

        // ÇØ´ç element°¡ readonlyÀÏ °æ¿ì ·¹ÀÌ¾î¸¦ º¸¿©ÁÖÁö ¾Ê´Â´Ù.
        if ( el.readOnly == true ) {
            return;
        }

        elt = $(el);

        // ¼±ÅÃÇÑ elementÀÇ À§Ä¡°ªÀ» ¾ò´Â´Ù.
        elPos = elt.positionedOffset();

        var tipLayer      = $(name);
        var dimensions    = tipLayer.getDimensions();
        var eltDimensions = elt.getDimensions();

        // µµ¿ò¸» ·¹ÀÌ¾î left position
        var tipLayerLeft = elPos.left - 5;

        var layerWidth   = elPos.left + dimensions.width;
        var elementWidth = elPos.left + el.clientWidth;
        var distance     = layerWidth - elementWidth;

        // µµ¿ò¸» ·¹ÀÌ¾î°¡ content ¹ÛÀ¸·Î ³ª°¡´Â °æ¿ì
        if ( distance > 0 && layerWidth > (this.contentWidth)) {
            tipLayerLeft = ( elPos.left - distance ) + 20;
        }

        var arrowLayerType = 'bottom';

        // µµ¿ò¸» ·¹ÀÌ¾î top & z-index position
        // µµ¿ò¸» ·¹ÀÌ¾î°¡ content »ó´Ü ¹ÛÀ¸·Î ³ª°¡´Â °æ¿ì
        if ( elPos.top < dimensions.height ) {
            var tipLayerTop = elPos.top + eltDimensions.height;
            arrowLayerType = 'top';
        } else {
            var tipLayerTop = elPos.top - dimensions.height;
        }
        var tipLayerZIndex = 100;

        // È­»ìÇ¥ ·¹ÀÌ¾î º¸ÀÌ±â
        if ( type == 'balloon' && this.arrowLayer != '' ) {
            // È­»ìÇ¥ ·¹ÀÌ¾î top & left & z-index position
            if ( arrowLayerType == 'top' ) {
                var arrowLayerTop = elPos.top + eltDimensions.height;
                tipLayerTop = tipLayerTop + this.arrowTopDimensions.height - 1;
            } else {
                var arrowLayerTop    = elPos.top - this.arrowDimensions.height;
                tipLayerTop = tipLayerTop - this.arrowDimensions.height - 1;
            }
            var arrowLayerLeft   = elPos.left + 3;
            var arrowLayerZIndex = 101;

            this._showArrow(arrowLayerType, arrowLayerTop, arrowLayerLeft, arrowLayerZIndex);
        }

        // µµ¿ò¸» ·¹ÀÌ¾î º¸ÀÌ±â
        this._showTip(tipLayer, tipLayerLeft, tipLayerTop, tipLayerZIndex);

        // layer background iframe º¸ÀÌ±â
        if(this.iframeLayer != '') {
            var iframeLayerWidth  = tipLayer.offsetWidth;
            var iframeLayerHeight = tipLayer.offsetHeight - 15;
            var iframeLayerTop    = tipLayerTop;
            var iframeLayerLeft   = tipLayerLeft;
            var iframeLayerZIndex = tipLayerZIndex - 1;

            this._showIframe(iframeLayerWidth, iframeLayerHeight, iframeLayerTop, iframeLayerLeft, iframeLayerZIndex);
        }
    },

    /**
     * tip layer °¨Ãß±â
     *
     * @param string layer name {name}
     */
    hide: function(name) {
        // È­»ìÇ¥ ·¹ÀÌ¾î °¨Ãß±â
        if ( this.arrowLayer != '' ) {
            this.arrowLayer.style.display = 'none';
        }

        // È­»ìÇ¥ »ó´Ü ·¹ÀÌ¾î °¨Ãß±â
        if ( this.arrowTopLayer != '' ) {
            this.arrowTopLayer.style.display = 'none';
        }

        // layer background iframe °¨Ãß±â
        if ( this.iframeLayer != '' ) {
            this.iframeLayer.style.display = 'none';
        }

        // µµ¿ò¸» ·¹ÀÌ¾î °¨Ãß±â
        $(name).style.display = 'none';
    },

    /**
     * µµ¿ò¸» ·¹ÀÌ¾î º¸ÀÌ±â
     *
     * @param object  tip layer element object {el}
     * @param integer left position {left}
     * @param integer top position {top}
     * @param integer z-index {zIndex}
     */
    _showTip: function(el, left, top, zIndex) {
        top  = this._setCustomPosition('tooltip', 'top', top);
        left = this._setCustomPosition('tooltip', 'left', left);
        
        el.style.left   = left;
        el.style.top    = top;
        el.style.zIndex = zIndex;

        el.style.display = '';
    },

    /**
     * ·¹ÀÌ¾î ÇÏ´Ü È­»ìÇ¥ º¸ÀÌ±â
     *
     * @param string  arrow layer type {type}
     * @param integer top position {top}
     * @param integer left position {left}
     * @param integer z-index {zIndex}
     */
    _showArrow: function(type, top, left, zIndex) {
        if ( type == 'top' ) {
            top  = this._setCustomPosition('arrow_top', 'top', top);
            left = this._setCustomPosition('arrow_top', 'left', left);
            
            this.arrowTopLayer.style.top     = top;
            this.arrowTopLayer.style.left    = left;
            this.arrowTopLayer.style.zIndex  = zIndex;
            this.arrowTopLayer.style.display = '';
        } else {
            top  = this._setCustomPosition('arrow', 'top', top);
            left = this._setCustomPosition('arrow', 'left', left);
            
            this.arrowLayer.style.top    = top;
            this.arrowLayer.style.left   = left;
            this.arrowLayer.style.zIndex = zIndex;
            this.arrowLayer.style.display = '';
        }
    },

    /**
     * layer background iframe º¸ÀÌ±â
     *
     * @param integer width {width}
     * @param integer height {height}
     * @param integer top position {top}
     * @param integer left position {left}
     * @param integer z-index {zIndex}
     */
    _showIframe: function(width, height, top, left, zIndex) {
        top  = this._setCustomPosition('iframe', 'top', top);
        left = this._setCustomPosition('iframe', 'left', left);
        
        this.iframeLayer.style.width  = width;
        this.iframeLayer.style.height = height;
        this.iframeLayer.style.top    = top;
        this.iframeLayer.style.left   = left;
        this.iframeLayer.style.zIndex = zIndex;

        this.iframeLayer.style.display = '';
    },
    
    /**
     * custom position
     * 
     * @param  string  layer type {layerType}
     * @param  string  position type {posType}
     * @param  integer position value {value}
     * @return integer
     */
    _setCustomPosition : function(layerType, posType, value) {
        var plus_pos  = eval('this.options.plus_' + posType + '_pos.' + layerType);
        var minus_pos = eval('this.options.minus_' + posType + '_pos.' + layerType);
        
        
        if ( plus_pos && !isNaN(plus_pos) ) {
            value = value + plus_pos;
        }
        if ( minus_pos && !isNaN(minus_pos) ) {
            value = value - minus_pos;
        }
        
        return value;
    }
};

/**
 * ÀÌ¸ÞÀÏ À¯È¿¼º °Ë»ç
 * @param string email
 * @returns {Boolean}
 * ¿À·ù»çÇ× Ã³¸® (±èÀÏµµ - 2011-08-10 14:13:00)
 */
Saramin.validateEmail = function(email) {
    //var MailChk = new RegExp("^[0-9a-zA-Z._-]+@[0-9a-zA-Z_-]+(\\.[0-9a-zA-Z_-])*(\\.com|\\.net|\\.org|\\.biz|\\.info|\\.me|\\.name|\\.edu|\\.gov|\\.int|\\.jobs|\\.tel|\\.mobi|\\.museum|\\.pro|\\.travel|\\.aero|\\.arpa|\\.cat|\\.coop|\\.asia|\\.kr|\\.co\\.kr|\\.or\\.kr|\\.pe\\.kr|\\.re\\.kr|\\.ne\\.kr|\\.seoul\\.kr|\\.busan\\.kr|\\.daegu\\.kr|\\.incheon\\.kr|\\.gwangju\\.kr|\\.daejeon\\.kr|\\.ulsan\\.kr|\\.gyeonggi\\.kr|\\.gangwon\\.kr|\\.chungbuk\\.kr|\\.chungnam\\.kr|\\.jeonbuk\\.kr|\\.jeonnam\\.kr|\\.gyeongbuk\\.kr|\\.gyeongnam\\.kr|\\.go\\.kr|\\.mil|\\.mil\\.kr|\\.ac|\\.ac\\.kr|\\.hs\\.kr|\\.ms\\.kr|\\.es\\.kr|\\.kg\\.kr|\\.sc\\.kr|\\.jeju\\.kr|\\.cc|\\.jp|\\.co\\.jp|\\.or\\.jp|\\.eu|\\.tw|\\.tv|\\.cn|\\.au|\\.ca|\\.de|\\.fr|\\.es|\\.us|\\.uk|\\.com\\.cn|\\.net\\.cn|\\.in|\\.net\\.in|\\.co\\.in|\\.com\\.my|\\.co|\\.cm)$");
    var MailChk = new RegExp("^[0-9a-zA-Z._-]+@[0-9a-zA-Z_-]+(\\.[0-9a-zA-Z_-]+)*(\\.com|\\.net|\\.org|\\.biz|\\.info|\\.me|\\.name|\\.edu|\\.gov|\\.int|\\.jobs|\\.tel|\\.mobi|\\.museum|\\.pro|\\.travel|\\.aero|\\.arpa|\\.cat|\\.coop|\\.asia|\\.kr|\\.co\\.kr|\\.or\\.kr|\\.pe\\.kr|\\.re\\.kr|\\.ne\\.kr|\\.seoul\\.kr|\\.busan\\.kr|\\.daegu\\.kr|\\.incheon\\.kr|\\.gwangju\\.kr|\\.daejeon\\.kr|\\.ulsan\\.kr|\\.gyeonggi\\.kr|\\.gangwon\\.kr|\\.chungbuk\\.kr|\\.chungnam\\.kr|\\.jeonbuk\\.kr|\\.jeonnam\\.kr|\\.gyeongbuk\\.kr|\\.gyeongnam\\.kr|\\.go\\.kr|\\.mil|\\.mil\\.kr|\\.ac|\\.ac\\.kr|\\.hs\\.kr|\\.ms\\.kr|\\.es\\.kr|\\.kg\\.kr|\\.sc\\.kr|\\.jeju\\.kr|\\.cc|\\.jp|\\.co\\.jp|\\.or\\.jp|\\.eu|\\.tw|\\.tv|\\.cn|\\.au|\\.ca|\\.de|\\.fr|\\.es|\\.us|\\.uk|\\.com\\.cn|\\.net\\.cn|\\.in|\\.net\\.in|\\.co\\.in|\\.com\\.my|\\.co|\\.cm)$");
    return (MailChk.test(email)) ? true : false;
};


/**
 * È¨ÆäÀÌÁö À¯È¿¼º °Ë»ç
 * @param string email
 * @returns {Boolean}
 * ¿À·ù»çÇ× Ã³¸® (±èÀÏµµ - 2011-08-10 14:13:00)
 */
Saramin.validateHomepage = function(hompage) {
    var HomepageChk = new RegExp("[0-9a-zA-Z_-]+(\\.[0-9a-zA-Z_-]+)*(\\.com|\\.net|\\.org|\\.biz|\\.info|\\.me|\\.name|\\.edu|\\.gov|\\.int|\\.jobs|\\.tel|\\.mobi|\\.museum|\\.pro|\\.travel|\\.aero|\\.arpa|\\.cat|\\.coop|\\.asia|\\.kr|\\.co\\.kr|\\.or\\.kr|\\.pe\\.kr|\\.re\\.kr|\\.ne\\.kr|\\.seoul\\.kr|\\.busan\\.kr|\\.daegu\\.kr|\\.incheon\\.kr|\\.gwangju\\.kr|\\.daejeon\\.kr|\\.ulsan\\.kr|\\.gyeonggi\\.kr|\\.gangwon\\.kr|\\.chungbuk\\.kr|\\.chungnam\\.kr|\\.jeonbuk\\.kr|\\.jeonnam\\.kr|\\.gyeongbuk\\.kr|\\.gyeongnam\\.kr|\\.go\\.kr|\\.mil|\\.mil\\.kr|\\.ac|\\.ac\\.kr|\\.hs\\.kr|\\.ms\\.kr|\\.es\\.kr|\\.kg\\.kr|\\.sc\\.kr|\\.jeju\\.kr|\\.cc|\\.jp|\\.co\\.jp|\\.or\\.jp|\\.eu|\\.tw|\\.tv|\\.cn|\\.au|\\.ca|\\.de|\\.fr|\\.es|\\.us|\\.uk|\\.com\\.cn|\\.net\\.cn|\\.in|\\.net\\.in|\\.co\\.in|\\.com\\.my|\\.co|\\.cm)$");
    return (HomepageChk.test(hompage)) ? true : false;
};

/**
 * µµ¸ÞÀÎ È®ÀÎ
 * @param string str
 * @returns {Boolean}
 */
Saramin.validateDomain = function(str) {
    // °Ë»çÇÒ µµ¸ÞÀÎÀÌ ¾øÀ¸¸é ¸®ÅÏ
    if (!str && str.length == 0) {
        return true;
    }
    // Ã¼Å©ÇÒ µµ¸ÞÀÎ ¸®½ºÆ®
    var arr = new Array('.co', '.cm');

    var dot     = str.lastIndexOf(".");
    var dname   = str.substring(dot, str.length);

    for(var i=0; i<arr.length; i++) {
        if(dname == arr[i]) {
            return false;
        }
    }
    return true;
};

function setDocumentCookie (name, value) {
    var argv = setDocumentCookie.arguments;
    var argc = setDocumentCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) +
      ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
      ((path == null) ? "" : ("; path=" + path)) +
      ((domain == null) ? "" : ("; domain=" + domain)) +
      ((secure == true) ? "; secure" : "");
}



/*
 * ¸ÞÀÎÀÇ ¿ìÃø »çÀÌµåÀ§Á¬ 2011/11/23 (ÇöÀç ¸ÞÀÎ¿¡¼­¸¸ ¾²ÀÓ)
 * ÀÛ¼ºÀÚ : kimildo
 * 
 */
Saramin.SidewidgetFixed = Class.create();
Saramin.SidewidgetFixed.prototype = {
	initialize: function (sticker, wrapper, options) {
		this.scrollFl = false;
		this.sticker = $(sticker);
		this.wrapper = $(wrapper);
		this.wraperOffset = '';
		this.options = Object.extend({
            top_limit: 0
		}, options || {});
		
		this.moveY = 0;
		this.calcPosition();
		this.browser = navigator.appVersion.indexOf('MSIE 6.0');
		Event.observe(window, 'scroll', this.scroll.bindAsEventListener(this));
		Event.observe(window, 'resize', this.calcPosition.bind(this));

	}, 
	calcPosition : function () {
		
		this.wraperOffset = this.wrapper.cumulativeOffset();
		wrapperWidth = this.wrapper.getWidth();
		this.wX = this.wraperOffset[0] + wrapperWidth + 6;
		this.wY = this.wraperOffset[1];
		
		if (this.scrollFl==true) {
			if (this.browser == -1) {
				this._setTargetStyle('fixed', this.wX+'px', '6px');
			} else {
				this._setTargetStyle('absolute', '', this.moveY+'px');
			}
		}
	},
	scroll : function(event) {
		
		Position.prepare();
		if (this.options.top_limit - 10 <= Position.deltaY ) {
			this.scrollFl = true;
			this.moveY = Position.deltaY;
			if (this.browser == -1) {
				this._setTargetStyle('fixed', this.wX+'px', '6px');
			} else {
				yY = this.moveY - this.options.top_limit + 31;
				this._setTargetStyle('absolute', '', yY+'px');
			}	
			
		} else {
			this.scrollFl = false;
			this._setTargetStyle('absolute', '', '');
		}
	},
	_setTargetStyle : function (pos, lL, tT) {
		this.sticker.setStyle({'position': pos, 'left': lL, 'top': tT});
	}
	
}


/*
 * °Ë»ö¾î ÀÚµ¿¿Ï¼º Å¬·¡½º 2011/11/23
 * ÀÛ¼ºÀÚ ±èÀÏµµ
 */
Saramin.KeywordAutoComplete = Class.create();
Saramin.KeywordAutoComplete.prototype = {
	initialize: function(ancestor, target, frm, tUrl, tLayer, rLayer, tWordBtn, tUseBtn, tArrow, options) {
		
		this.excuteFlag = true;
		this.ancestor = ancestor;
		this.target = $(target);
		this.frm = $(frm);
		this.tUrl = tUrl;
		this.tLayer = $(tLayer);
		this.rLayer = $(rLayer);
		this.tWordBtn = $(tWordBtn);
		this.tUseBtn = $(tUseBtn);
		this.tArrowBtn = $(tArrow);
		this.preKwd = this.target.getValue();
		this.curIdx = 0;
		this.imgUrl = 'http://images.saramin.co.kr/';
		this.arrowUrl = this.imgUrl + '/main/201106/';
		this.options = Object.extend({
            order : 0
		}, options || {});
		this.order = this.options.order;
		this.target.observe('keydown', this.responseToKeyDn.bindAsEventListener(this));
		this.target.observe('click', this.responseToKeyDn.bindAsEventListener(this));
		this.tWordBtn.observe('click', this.toggleWord.bindAsEventListener(this));	
		this.tUseBtn.observe('click', this.toggleAbleByCookie.bindAsEventListener(this));	
		this.tArrowBtn.observe('click', this.arrowAction.bind(this));
		$(document.body).observe('click', this.bodyClick.bindAsEventListener(this));
		
		//this.target.focus();
		if (!!this.isCookie()) {
			this.tUseBtn.src = this.imgUrl + 'akc/total_srch/btn_off.gif';
		} else {
			this.tUseBtn.src = this.imgUrl +  'akc/total_srch/btn_on.gif';
		}
		
	}, 
	bodyClick : function(event) {
		el = Event.element(event);
		ancestorsBool = el.descendantOf(this.ancestor);
		if ( (this.tLayer.getStyle('display') != 'none' && !ancestorsBool) || el.id == 'submit_button') {
			this.layerHide();
		}
	},
	arrowAction : function(event) {
		var el = event.element();
		switch (el.tagName) {
			case 'A' :
				tEl = el;
				iEl = el.down('img')
				break;
			case 'IMG' :
				tEl = el.up('a');
				iEl = el;
				break;
		} 

		var lVisible = this.tLayer.getStyle('display');
		if (lVisible == 'none') {
			if (!this.isCookie()) {
				var Text = '<p class="info">ÀÚµ¿¿Ï¼º ±â´ÉÀ» »ç¿ëÇØ º¸¼¼¿ä.<br />°Ë»ö¾î ÀÔ·Â½Ã ÀûÇÕÇÑ Å°¿öµå¸¦ º¸¿©µå¸³´Ï´Ù.<br />'
						 + '<a href="#" onclick="setAutoComplete(); return false;"><strong>ÀÚµ¿¿Ï¼º »ç¿ëÇÏ±â</strong></a></p>';
				this.rLayer.update(Text);
			} else if (!this.target.getValue()) {
				this.rLayer.update('<p class="info">ÇöÀç ÀÚµ¿¿Ï¼º ±â´ÉÀ» »ç¿ëÇÏ°í °è½Ê´Ï´Ù.<br /></p>');
			} else if (!!this.target.getValue()) {
				this.execute();
			}
			iEl.src = this.arrowUrl + 'arrow_top.gif';
			iEl.alt = 'ÀÚµ¿¿Ï¼º ´Ý±â';
			this.layerShow();
			
		} else {
			this.layerHide();
			iEl.src = this.arrowUrl + 'arrow_bottom.gif';
			iEl.alt = 'ÀÚµ¿¿Ï¼º ÆîÄ¡±â';
		}
	},
	layerHide : function() { //·¹ÀÌ¾î °¨Ãß±â
		this.tArrowBtn.down(0).src = this.arrowUrl + 'arrow_bottom.gif';
		this.tArrowBtn.down(0).alt = 'ÀÚµ¿¿Ï¼º ÆîÄ¡±â';
		this.tLayer.hide();
	},
	layerShow  : function() { //·¹ÀÌ¾î º¸ÀÌ±â
		this.tArrowBtn.down(0).src = this.arrowUrl + 'arrow_top.gif';
		this.tArrowBtn.down(0).alt = 'ÀÚµ¿¿Ï¼º ´Ý±â';
		this.tLayer.show();
	},
	toggleWord : function(event) {  //¾Õ, µÞ ´Ü¾î Åä±Û
		var el = event.element();
		var num;		

		if (this.order == 1) {
			num = 0;
			el.src = this.imgUrl + 'akc/total_srch/btn_last_view.gif';
		} else {
			num = 1;
			el.src = this.imgUrl + 'akc/total_srch/btn_first_view.gif';
		}
		
		this.order = num;
		this.execute();
	},
	isCookie : function() {	//ÄíÅ°È®ÀÎ
		
		var allcookies = document.cookie;
		var pos = allcookies.indexOf("KonanAKC=");
		
		if ( pos==-1 ) return true; //ÄíÅ°°¡ ¾øÀ»°æ¿ì »ç¿ëÇÏ´Â °ÍÀÓ

		start = pos + 9;
		end = allcookies.indexOf(";",start);

		if (end == -1) end = allcookies.length;
		akc_cookie = allcookies.substring(start,end);
		akc_cookie = unescape(akc_cookie);

		if(akc_cookie==0) return false;
		else return true;
		
	},
	setCookie : function (flag) {  //ÄíÅ° ¼¼ÆÃ

		expiresDate = new Date();
		expiresDate.setDate(expiresDate.getDate() + 3650);
		document.cookie = "KonanAKC=" + escape(flag) + "; path=/; expires=" + expiresDate.toGMTString();
		
	},
	toggleAbleByCookie : function(event) { //ÀÚµ¿¿Ï¼º »ç¿ë¿©ºÎ Åä±Û

		var el = event.element();
		//var clickBtn = Event.isLeftClick(event);
		
		if (!!this.isCookie()) { //»ç¿ëÁß ÀÌ¸é
			this.setCookie(0);
			el.src = this.imgUrl + 'akc/total_srch/btn_on.gif';
			this.rLayer.update('');
			this.target.value = '';
			this.target.focus();
			this.layerHide();
		} else {
			this.setCookie(1);
			el.src = this.imgUrl + 'akc/total_srch/btn_off.gif';
			this.execute();
		}
	},
	ajaxExec : function() {	//ajax½ÇÇà 

		try {
			var param = "q=" + this.target.getValue() + "&s=" + this.order;
            new Ajax.Updater(this.rLayer, this.tUrl, {
               method: 'POST', 
               parameters: param,
               asynchronous: true,
               evalScripts: true,
               onSuccess: (function(xmlHttp) { 
            	   if (!!this.target.getValue()) this.layerShow(); 
               }).bind(this),
               onFailure : function(xmlHttp) {
                   alert('Á¤º¸ È£Ãâ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù. - ' + xmlHttp.status);
               }
            });
        } catch(e) {            	
            return; 
        }

	},
	responseToKeyDn : function(event) { // Å° ÀÌº¥Æ®
		var el = event.element();
		var kcd = event.keyCode; //¡è38,¡é40
		//var clickBtn = event.isLeftClick();
		var realIdx;

		if ( kcd >= 37 && kcd <= 40 ) {			
			
			this.excuteFlag = false;

			if ( kcd == 38 || kcd == 40 ) {
			
				var list = $$('#' + this.rLayer.id + ' li');

				list.each(function(el) {
					el.className='';
				});				

				if (kcd == 40 && this.curIdx < list.length) {
					 this.curIdx++;
				} else if (kcd == 38 && this.curIdx > 0) {
					 this.curIdx--;
				}

				realIdx = this.curIdx - 1;

				if (realIdx > -1) {
					this.target.value =	 list[realIdx].readAttribute('title');
					list[realIdx].className = 'on';
				} else {
					this.target.value = this.preKwd;
				}

				scY = Position.positionedOffset(list[realIdx]);
				scY = scY[1];

				if ( scY > 200 && this.rLayer.scrollTop == 0 ) this.rLayer.scrollTop = 95;
				else if ( scY < 120 && this.rLayer.scrollTop > 0 ) this.rLayer.scrollTop = 0;
			}
			
		} else if ( kcd == 13 || kcd == 9) {
			this.layerHide();
		} else {
			this.excuteFlag = true;
			if (!!this.target.getValue()) this.execute();
		}

	},
	execute : function() {

		if ($('collectLayer')) $('collectLayer').hide();
		
		if (!this.excuteFlag) return;
		
		this.curIdx = 0;
		this.preKwd = this.target.getValue();
		
		if (!!this.target.getValue() && !!this.isCookie()) {
			this.ajaxExec();
		} else {
			this.layerHide();
		}
	}
		

};






