jQuery.fn.extend({
  autoTab: function(destination) {
    $(this).keyup(function(event) {
      var maxLen = $(this).attr('maxlength');
      if ($(this).val().length >= maxLen) {
        $(destination).val("");
        $(destination).focus();
      }
    });
    return false;
  },
  secureLoad: function(url, params, callback) {

    var off = url.indexOf(" ");
    if (off >= 0) {
      var selector = url.slice(off, url.length);
      url = url.slice(0, off);
    }

    callback = callback || function() {};

    var self = this;

    secureAjax(url, params, {
      type: "POST",
      dataType: "html",
      complete: function(res, status) {

        if ( status == "success" || status == "notmodified" ) {
          self.html( selector ?
            jQuery("<div/>")
              .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
              .find(selector) :
            res.responseText );
        }

        self.each( callback, [res.responseText, status, res] );

      }
    });

    return this;
  }
});

function postLink(url, params) {
  var formHtml = "<form id='postLinkForm' name='postLinkForm' method='POST' action='"+url+"'>";
  if ( params.constructor == Array || params.jquery ) {
    jQuery.each(params, function() {
      formHtml += "<input type='hidden' name='"+this.name+"' value='"+this.value+"'>";
    });
  } else {
    for (var i in params) {
      if (params[i] && params[i].constructor == Array) {
        jQuery.each( params[i], function(){
          formHtml += "<input type='hidden' name='"+i+"' value='"+this+"'>";
        });
      } else {
        formHtml += "<input type='hidden' name='"+i+"' value='"+params[i]+"'>";
      }
    }
  }

  formHtml += "</form>";
  jQuery("body").append(formHtml);
  XecureSubmit(document.postLinkForm);
}

function secureGetJSON(url, data, callback) {
  return secureGet(url, data, callback, "json");
}


function secureGet(url, data, callback, type) {
  if (jQuery.isFunction(data)) {
    callback = data;
    data = null;
  }

  return secureAjax(url, data, {
    success: callback,
    dataType: type
  });
}

function securePost(url, data, callback, type) {
  if ( jQuery.isFunction(data)) {
    callback = data;
    data = {};
  }

  return secureAjax(url, data, {
    type: "POST",
    success: callback,
    dataType: type
  });
}

function secureAjax(url, params, options) {
	//±âÁ¸ ajaxÃ³¸® ½ÃÀÛ
	if (params) {
		if (typeof params != "string") {
		  params = jQuery.param(params);
		}
		params = decodeURIComponent(params).replace(/\+/g, "%20");
		try {
		  params = "q=" + escape_url(XecureAjax(params));
		} catch(e) {
		  alert("¾ÏÈ£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù. °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇÏ¿© ÁÖ¼¼¿ä!");
		}
	}

	var options = $.extend({
	url:  url,
	data: params
	}, options || {});

	//ÅÇÁ¦¾î °øÅë Ãß°¡ 2011-11-10
    jQuery.getJSON("/wbiz/layer/check.do", 
	{},
	function(data) {
		//alert(parent.SessKey +'/'+ data.sessKey);
		if (data.custNm != "") {
			if (parent.SessKey != null && typeof parent.SessKey !="undefined" && parent.SessKey !=  data.sessKey ) {
				alert("°°Àº ºê¶ó¿ìÀú³» ÅÇÀ¸·Î Á¢±ÙÇÏ¿´½À´Ï´Ù.ÅÇÀ¸·Î´Â °°Àº ÆäÀÌÁö¸¦ Á¢±ÙÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.");
				location.href = "/jsp/error/code_tap.jsp";
			}else{
				return jQuery.ajax(options);
			}
		}else{
			return jQuery.ajax(options);
		}
		//±âÁ¸ ajaxÃ³¸® ³¡
	});	
	

	
	
}

$.ajaxSetup({
  type: "POST",
  dataType: "json",
  timeout: 640000,
  contentType: "application/x-www-form-urlencoded;charset=UTF-8"
});

/**
 * ajax Åë½ÅÀÌ ÀÏ¾î³ª¸é ·ÎµùÁß ÀÌ¹ÌÁö°¡ º¸¿©ÁÖ°í ³¡³ª¸é »ç¶óÁö°Ô ÇÔ
 *
 */
$(this).ajaxStart(function() {
  defaultLoading();
}).ajaxStop(function() {
  defaultUnloading();
}).ajaxError(function() {
  alert("ÁË¼ÛÇÕ´Ï´Ù. ½Ã½ºÅÛ ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.\n»ó´ã½ÅÃ»À» ³²°Ü ÁÖ½Ã¸é ½Å¼ÓÈ÷ ´äº¯À» µå¸®°Ú½À´Ï´Ù.");
});


//helper
function objToString(o) {
    var s = '{\n';
    for (var p in o)
        s += '    ' + p + ': ' + o[p] + '\n';
    return s + '}';
}

// helper
function elementToString(n, useRefs) {
    var attr = "", nest = "", a = n.attributes;
    for (var i=0; a && i < a.length; i++)
        attr += ' ' + a[i].nodeName + '="' + a[i].nodeValue + '"';

    if (n.hasChildNodes == false)
        return "<" + n.nodeName + "\/>";

    for (var i=0; i < n.childNodes.length; i++) {
        var c = n.childNodes.item(i);
        if (c.nodeType == 1)       nest += elementToString(c);
        else if (c.nodeType == 2)  attr += " " + c.nodeName + "=\"" + c.nodeValue + "\" ";
        else if (c.nodeType == 3)  nest += c.nodeValue;
    }
    var s = "<" + n.nodeName + attr + ">" + nest + "<\/" + n.nodeName + ">";
    return useRefs ? s.replace(/</g,'&lt;').replace(/>/g,'&gt;') : s;
};


//»ó´ã ¹× ¹Î¿ø submit ÀúÀå½Ã ¼¼¼Ç º¹»ç·Î ÅÇ°øÀ¯ Á¦¾î
function checkTabSession() {

	jQuery.getJSON("/wbiz/layer/check.do", 
	{},
	function(data) {
		//alert(parent.SessKey +'/'+ data.sessKey);
		if (data.custNm != "") {
			if (parent.SessKey != null && typeof parent.SessKey !="undefined" && parent.SessKey !=  data.sessKey ) {
				alert("°°Àº ºê¶ó¿ìÀú³» ÅÇÀ¸·Î Á¢±ÙÇÏ¿´½À´Ï´Ù.ÅÇÀ¸·Î´Â °°Àº ÆäÀÌÁö¸¦ Á¢±ÙÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.");
				location.href = "/jsp/error/code_tap.jsp";
			}else{
				fncSubmit();
			}
		}else{
			fncSubmit();
		}
	});	

}
