/**
 * @type   : function
 * @access : public
 * @desc   : Factory를 사용해서 부분인쇄를 한다.
 * <pre>
 *     cfFactoryPrintDiv('image', [leftMargin,] [topMargin,] [portrait]);
 * </pre>
 * @sig    : id
 * @param  : id - 부분인쇄할 div 영역의 이름
 * @return : void
 * @author : 한현주
 */
function cfFactoryPrintDiv(id, leftMargin, topMargin, portrait) {

	factory.printing.header = ""
	factory.printing.footer = ""
	
	var left = 0;
	var top = 0;
	var port = true;

	if(leftMargin != null && leftMargin > 0)	left = leftMargin;
	if(topMargin != null && topMargin > 0)		top = topMargin;
	if(portrait != null)			port = portrait;

	factory.printing.portrait = port;
	factory.printing.leftMargin = left;
	factory.printing.topMargin = top;
	factory.printing.rightMargin = left;
	factory.printing.bottomMargin = top;
//	factory.printing.Preview();			//인쇄미리보기
	_cfPrintDiv (id);
}

/**
 * @type   : function
 * @access : public
 * @desc   : Factory 인쇄를 위한 설정을 한다.(가로세로 마진, 출력방향)
 * <pre>
 *     cfFactoryPrintSet(leftMargin, topMargin, portrait);
 * </pre>
 * @sig    : leftMargin, topMargin, portrait
 * @param  : leftMargin - 왼쪽여백
 * @param  : topMargin - 윗여백
 * @param  : portrait - 출력방향  
 * @return : void
 * @author : 한현주
 */
function cfFactoryPrintSet(leftMargin, topMargin, portrait) {

	factory.printing.header = ""
	factory.printing.footer = ""
	
	var left = 0;
	var top = 0;
	var port = true;

	if(leftMargin != null && leftMargin > 0)	left = leftMargin;
	if(topMargin != null && topMargin > 0)		top = topMargin;
	if(portrait != null)			port = portrait;

	factory.printing.portrait = port;
	factory.printing.leftMargin = left;
	factory.printing.topMargin = top;
	factory.printing.rightMargin = left;
	factory.printing.bottomMargin = top;
}

/**
 * @type   : function
 * @access : public
 * @desc   : 부분인쇄를 한다.
 * <pre>
 *     _cfPrintDiv('image1');
 * </pre>
 * @sig    : id
 * @param  : id - 부분인쇄할 div 영역의 이름
 * @return : void
 * @author : 한현주
 */
var _div2print;
function _cfPrintDiv (id) {

	if (document.all && window.print) {		//IE
    	_div2print = document.all[id];
    	window.onbeforeprint = _cfHideDivs;
    	window.onafterprint = _cfShowDivs;
    	window.print();
  	}else if (document.layers) {			//NN
    	_div2print = document[id];
    	_cfHideDivs();
    	window.print();
  	} else{									//W3C
  		_div2print = document.getElementById(id);
  		_cfHideDivs();  	
    	window.print();
    	window.setTimeout(cfShowDivs, 1000, true);		
  	}
}

/**
 * @type   : function
 * @access : public
 * @desc   : 부분인쇄를 위해 부분인쇄가 아닌 영역을 감춘다.
 * <pre>
 *     cfHideDivs();
 * </pre>
 * @return : void
 * @author : 한현주
 */
function _cfHideDivs () {
  	/*if (document.all) {
    	var divs = document.all.tags('DIV');
    	for (var d = 0; d < divs.length; d++)
      		if (divs[d] != div2print)
        		divs[d].style.display = 'none';
  	}else if (document.layers) {
    	for (var l = 0; l < document.layers.length; l++)
      		if (document.layers[l] != div2print)
        		document.layers[l].visibility = 'hide';
  	}else{
    	var divs = document.getElementsByTagName('DIV');
    	for (var d = 0; d < divs.length; d++)
      		if (divs[d] != div2print)
        	divs[d].style.display = 'none';  
  	}*/
	document.getElementById("popupTitle").style.display = 'none';
	document.getElementById("button_default").style.display = 'none';
}

 /**
 * @type   : function
 * @access : public
 * @desc   : 부분인쇄가 끝난 후 모든 영역을 보여준다.
 * <pre>
 *     cfShowDivs();
 * </pre>
 * @return : void
 * @author : 한현주
 */
function _cfShowDivs () {
	/*if (document.all) {
  		var divs = document.all.tags('DIV');
  		for (var d = 0; d < divs.length; d++)
    		divs[d].style.display = 'block';
    }else if (document.layers) {
    	for (var l = 0; l < document.layers.length; l++)
      		if (document.layers[l] != div2print)
        		document.layers[l].visibility = 'block';    
    }else{
    	var divs = document.getElementsByTagName('DIV');
    	for (var d = 0; d < divs.length; d++)
      		if (divs[d] != div2print)
        		divs[d].style.display = 'block';    
    }*/
	document.getElementById("popupTitle").style.display = 'block';
	document.getElementById("button_default").style.display = 'block';
}
