﻿//This function prints only text if user defined attribute print="true"
     
function DoPrintableSections()
{   
    
    CreateVirtualCarrier("ContentCarrier");
    var e = document.getElementsByTagName("div");
    var cc = document.getElementById("ContentCarrier");
    var content = "";
    for(var i=0;i<e.length;i++)
    {    
        //Here print is an user defined attribute    
        if(e[i].getAttribute('print')== "true")
        {        
            cc.innerHTML = getCurrentNodeAndInnerHTML(e[i]);
            ClearInputs(cc,"INPUT",'imgsdir');
            ClearInputs(cc,"select");
            ClearInputs(cc,"TEXTAREA");
            ClearInputs(cc,"script");          
            content = content + " " + cc.innerHTML;  
        }    
    }
    
    var stylesheets = getStyleSheets();        
    stylesheets += ';/Portals/_default/PrintDialog.css'    
    OpenPreviewPage(content,'800px','600px',stylesheets,'imgsdir');
    cc.innerHTML="";
}

function getEmbdStyleSheets()
{
    var stylecontent ="<style type='text/css'> ";
    if(window.navigator.appName =="Microsoft Internet Explorer")
    {
        for(var i=1; i<document.styleSheets.length;i++)
        {
            if((document.styleSheets[i].href==null || document.styleSheets[i].href=="") && document.styleSheets[i].cssText!="")
                stylecontent += document.styleSheets[i].cssText;
        }
    }
    else if(window.navigator.appName =="Netscape")
    {
        for(var i=1; i<document.styleSheets.length;i++)
        {
            if(document.styleSheets[i].href==null && document.styleSheets[i].cssRules[0].cssText!="")
                for(var j=0; j<document.styleSheets[i].cssRules.length;j++)
                    stylecontent += document.styleSheets[i].cssRules[j].cssText + ' ';
        }
    }
    stylecontent+=' </style>' ;    
    return stylecontent;
        
}

//function for reading all stylesheets of current page
function getStyleSheets()
{
    var stylesheets ="";
    for(var i=1; i<document.styleSheets.length;i++)
    {
        if(document.styleSheets[i].href!=null)
            stylesheets += document.styleSheets[i].href.toString() +';'; 
    }
    return stylesheets;
}

function getCurrentNodeAndInnerHTML(obj)
{
    var currentHTML='<'+ obj.tagName;
    if(obj.getAttribute('id')!=null)
        currentHTML+=' id="'+ obj.id +'"';
    if(obj.getAttribute('className')!=null||obj.getAttribute('class')!=null)
        currentHTML+=' class="'+ obj.className + '"';        
     currentHTML+='>'
     currentHTML+=obj.innerHTML;
     currentHTML+= '</' + obj.tagName + '>';
     return currentHTML;           
}

function OpenPreviewPage(content,wdth,hght,stylesheets,imgsdir) {
    var PreviewPage;
    PreviewPage=window.open('','PreviewPage','width='+wdth+',height='+hght+',menubar=0,toolbar=1,status=0,scrollbars=1,resizable=1');
    PreviewPage.document.open("text/html","replace");
    PreviewPage.document.writeln('<html><head><title>PrintPreview</title>'
    + ProcessStyleSheets(stylesheets)  
    + getEmbdStyleSheets()
    + '</head><body align="center" onLoad="self.focus();window.print()">' 
    + '<div id="PrintContainer">'
//    + '<div id="PrintCommand">'
//    + '<input id="btnPrint" type="button" value="Print" onclick="javascript:document.getElementById("PrintCommand").style="display:none";window.print()"/>'
//    + '<input id="btnPrint" type="button" value="Close" onclick="javascript:window.close()" />'
//    + '</div>'
    + '<div id="PrintPreview">'
    + '<div id="center">'
    + content
    + '</div>'
    + '</div>'  
    + '</div>'
    +'</body></html>');
    PreviewPage.document.close();
} 

function ProcessStyleSheets(stylesheets){
    var ssh = stylesheets.split(";");
    var sshComplete = "";
    for(var i=0;i<ssh.length;i++){
        sshComplete = sshComplete + '<link href="' + ssh[i] + '" type="text/css" rel="stylesheet"/> ' ;
    }
return sshComplete;
}


function CreateVirtualCarrier(carriername){
    var doc = document;
    var div = doc.body.appendChild(doc.createElement("div"));
    div.setAttribute("style","display:none");
    div.id = carriername;        
}


function ClearInputs(cc,Type,imgsdir){
        var d = cc.getElementsByTagName(Type);
        for(var j=0;j<d.length;j++)
        {
            var prnt = d[j].parentNode;
            var newnode = document.createTextNode(d[j].value);
            if(Type == "select")
            {
                if(d[j].disabled == false){  
                    newnode = document.createTextNode(d[j].options[d[j].selectedIndex].innerText);
                }
            }
            if(Type == "INPUT")
            {
                if( d[j].type == "button" || d[j].type == "submit")
                { 
                }
                if( d[j].type == "checkbox" || d[j].type == "radio")
                {
                var ctrStatus; if(d[j].checked == true){ctrStatus = "on";}else{ctrStatus = "off";}
                newnode = document.createElement("<IMG src='" + imgsdir + "/" + d[j].type + "_" + ctrStatus +  ".gif' />");
                 prnt.insertBefore(newnode,d[j]);
                }
            }
            if(Type == "script")
            {
                
            }        
            else{
                prnt.insertBefore(newnode,d[j]);
            }
            removeNode(d[j]);           
        }  
//       if (cc.getElementsByTagName(Type).length > 0 )
//       {
//            ClearInputs(cc,Type,imgsdir);
//       }
}

function removeNode(obj)
{
    for(var i = 0; i < obj.childNodes.length; i++)
    {    
        obj.removeChild(obj.childNodes[i]);                
    }
}      
