﻿//Function to print Page Content Web Part - PrintWebPart()
/*
//1.Controls which Web Part or zone to print- 
  2. A mapping of pages and corresponding web part id needs to be supplied for the script to work correctly.(hardcoded)
  3. New classes within "Classes needed for print formatting" need to be added.
  4. The class middleWidth nees to be applied to the cell for PlaceholderMain content area
  <td align="center" valign="top" bgcolor="#FFFFFF" class="middleWidth">
	      	<asp:ContentPlaceHolder ID="PlaceHolderMain" runat="server"></asp:ContentPlaceHolder>
  </td> 
  5. A new class printsha.css and script test.js are defined for the print formatting. Attach it to master page.
  <link href="/css/printsha.css" rel="stylesheet" type="text/css" media="print"/>
  <script type="text/javascript" src="/js/test.js"></script>
  6. Add a button or link to get this script to work. 
  <form><INPUT onclick="javascript:void(PrintWebPart())" type="button" value="Printable Version"></form> or
  <a href="javascript:void(0)" onclick="javascript:void(PrintWebPart())">Print this Page</a>
*/
function PrintWebPart()
{
var url = new Array('index.aspx','calendar.aspx','districts.aspx', 'roundabouts.aspx', 
					'csc.aspx','morenews.aspx','newsdetails.aspx', 'sitemap.aspx','faqs.aspx',
					'media.aspx','mediacontent.aspx','release.aspx');
var ID = new Array('ctl00_PlaceHolderMain_Pagecontent1', 
					'WebPartctl00_PlaceHolderMain_g_0f96b9e6_68ad_41f0_808a_0ba276811d66:WebPartctl00_PlaceHolderMain_Calendar1',
					 'ctl00_PlaceHolderMain_Districtinfo1','content_roundabouts',
					'ctl00_PlaceHolderMain_Pagecontent1:ctl00_PlaceHolderMain_CSCContracts1',
					'WebPartctl00_PlaceHolderMain_Morenews1','ctl00_PlaceHolderMain_Newsdetails1', 
					'ctl00_PlaceHolderMain_TreeView1','ctl00_PlaceHolderMain_FAQs1',
					'ctl00_PlaceHolderMain_Pagecontent1:media',
					'mediacontent','release');
var browserUrl = document.location.href;

var urlItr =0;
var WebPartElementID;
for (urlItr =0; urlItr < url.length; urlItr++){
	if(browserUrl.toLowerCase().indexOf(url[urlItr]) != -1){
	   WebPartElementID = ID[urlItr].split(":");
	  
	}
}

 var bolWebPartFound = false;
 if (document.getElementById != null)
 {
	  //Create html to open in new window
	  var PrintingHTML = "<HTML><HEAD>";
	  //Take data from Head Tag
	  if (document.getElementsByTagName != null)
	  {
	   	var HeadData= document.getElementsByTagName("HEAD");
	   
	   	if (HeadData.length > 0){
	    	PrintingHTML+= HeadData[0].innerHTML;
	    	var x = PrintingHTML.indexOf('/css/sha.css') ;
	   		
	  		if(x == -1){
	   			var links ="<script type=\"text/javascript\" src=\"/js/test.js\"></script><link href=\"/css/sha.css\" rel=\"stylesheet\" type=\"text/css\" /><link href=\"/css/printsha.css\" rel=\"stylesheet\" type=\"text/css\" media=\"print\"/>";
				PrintingHTML+= links;				
   			}
   		}
   			
   
      }
  }
  PrintingHTML+= "\n</HEAD>\n<BODY class=\"printBg\">\n";
  
	PrintingHTML+= "<div id=\"print\"><a href=\"javascript:location.reload(true);window.print();\">Print this page</a></div>";
	
	if(WebPartElementID instanceof Array){
		var ctr;
		for(ctr=0;ctr<WebPartElementID.length ;ctr++){
			var WebPartData = new Array();
			WebPartData[ctr] =  document.getElementById(WebPartElementID[ctr]);
			if(WebPartData[ctr] != null){
				PrintingHTML += WebPartData[ctr].innerHTML;
				bolWebPartFound = true;
			}else{
				   bolWebPartFound = false;
				   alert ("Cannot redirect to a printer-friendly page. Please use the browser print button to print this page");
				   break;
			}			
		}
	}else{	
			  var WebPartData = document.getElementById(WebPartElementID);
			  if (WebPartData != null)
			  {
				   PrintingHTML += WebPartData.innerHTML;
				   bolWebPartFound = true;
			  }
			  else
			  {
				   bolWebPartFound = false;
				   alert ("Cannot redirect to a printer-friendly page. Please use the browser print button to print this page");
			  }
	}
		 PrintingHTML += "\n</BODY>\n</HTML>";
		 //Open new window to print
		 if (bolWebPartFound)
		 {
			 //alert("print");
			  var PrintingWindow = window.open("","PrintThisPage", "toolbar,width=800,height=600,scrollbars=1,resizable=1,menubar=1,location=1");
			  PrintingWindow.document.open();
			  PrintingWindow.document.write(PrintingHTML);
			  //PrintingWindow.load();
			  // Open Print Window
			  //PrintingWindow.print();
		 }
	
}

function printPage(){
	var printData = document.getElementById("ctl00_PlaceHolderMain_Pagecontent1");

	if(printData != null){
			var htmlCode = printData.innerHTML;
			window.document.body.innerHTML = htmlCode;
			//window.print();
	} 
	else{
		alert("Cannot print this page");
	
	}
}

function doPrint(){
	window.reload();
	window.print();
}

function resizeText(multiplier) { 
 alert(document.body.style.fontSize);
 var cTags;
 var tgs = document.getElementsByTagName("td");
 for ( i = 0; tgs.length;i++){
 cTags = tgs[i].getElementsByTagName("td");	
	 tgs[i].style.fontsize = parseFloat(tgs[i].style.fontSize) + (multiplier * 0.2) + "em";
 	
 }
	if (document.body.style.fontSize == "") { 	    
		document.body.style.fontSize = "1.0em";
		
	} 	
	 alert(document.body.style.fontSize); 
	document.body.style.fontSize = parseFloat(document.body.style.fontSize) + (multiplier * 0.2) + "em";
	alert(document.body.style.fontSize);
	 
}

//Specify affected tags. Add or remove from list:
var tgs = new Array( 'td','a','span','div','h1','h2','h3');

//Specify spectrum of different font sizes:
var szs = new Array('9px','10px','11px','12px','13px','14px','15px' );
var startSz = 2;

function ts( trgt,inc ) {
alert ("function ts");
	if (!document.getElementById) return;
	var d = document,cEl = null,sz = startSz,i,j,cTags;
	
	sz += inc;
	if ( sz < 0 ) sz = 0;
	if ( sz > 6 ) sz = 6;
	startSz = sz;
	alert("startSz : " + startSz);	
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	cEl.style.fontSize = szs[ sz ];

	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ) {
			cTags[ j ].style.fontSize = szs[ sz ];
			
		}
	}
}
