/*
 Script: print.js
 Autore: Enio Carboni <enio__at__cib__dot__unibo__it
 Description: Print only a single block whith id="print" by click in a element by id="print_img"
 This is a free code. You can use it
*/
window.onload=function() {
 var print_click="print_img";
 var print_id="print";
 var print_click_div=document.getElementById(print_click);
 var print_div=document.getElementById(print_id);
 if (print_div && print_click_div) {
  print_click_div.onclick=function() {
   var contenutodiv=print_div.innerHTML;
   var str='';
   var new_win=window.open('','printdiv');
   str+='<html ';
   var html_attr=document.getElementsByTagName('html')[0].attributes;
   if (html_attr) {
    for (i=0;i<html_attr.length; i++) {
     if (html_attr.item(i).nodeValue && html_attr.item(i).nodeValue != 'inherit') {
      str+=html_attr.item(i).nodeName+'="'+html_attr.item(i).nodeValue + '" ';
     }
    }
   }
   str+=">\n<head>\n<title>"+document.title+"</title>\n";
   var head=document.getElementsByTagName('head')[0];
   var node=head.firstChild;
   while (node) {
    if (node.nodeName.toUpperCase() == 'LINK') {
     if (node.getAttribute ) { var rel = node.getAttribute('rel'); } else { var rel = ''; }
     if( typeof( rel ) == 'string' && rel.toLowerCase().indexOf('style') + 1 ) {
      var attrs=node.attributes;
      str+='<link ';
      if (attrs) {
       for (var j=0;j<attrs.length; j++) {
        if (attrs.item(j).nodeValue && attrs.item(j).nodeValue != 'inherit') {
         str+=attrs.item(j).nodeName+'="'+attrs.item(j).nodeValue + '" ';
        }
       }
      }
      str+=">\n";
     }
    }
    else if (node.nodeName.toUpperCase() == 'STYLE') {
     var attrs=node.attributes;
     str+='<style ';
     if (attrs) {
      for (var j=0;j<attrs.length; j++) {
       if (attrs.item(j).nodeValue && attrs.item(j).nodeValue != 'inherit') {
        str+=attrs.item(j).nodeName+'="'+attrs.item(j).nodeValue + '" ';
       }
      }
     }
     str+=">"+node.innerHTML+"</style>\n";
    }
    node=node.nextSibling;
   }
   str+="\n"+'</head><body onload="window.print();window.close();">'+"\n";
   //str+="\n</head><body>\n";
   str+='<'+print_div.tagName+ ' ';
   var attrs=print_div.attributes;
   if (attrs) {
    for (var j=0;j<attrs.length; j++) {
     if (attrs.item(j).nodeValue && attrs.item(j).nodeValue != 'inherit') {
      str+=attrs.item(j).nodeName+'="'+attrs.item(j).nodeValue + '" ';
     }
    }
   }
   str+=">\n" + contenutodiv+'</'+print_div.tagName+'>'+"\n"+'</body></html>';
   new_win.document.write(str);
   new_win.document.close();
   new_win.focus();
  }
 }
}

