function createjscssfile(filename, filetype, media){
 if (filetype=="js"){ //if filename is a external JavaScript file
  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", filename)
 }
 else if (filetype=="css"){ //if filename is an external CSS file
  var fileref=document.createElement("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("media", media)
  fileref.setAttribute("href", filename)
 }
 return fileref
}

function replacejscssfile(oldfilename, newfilename, filetype, media){
 var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using
 var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
 var allsuspects=document.getElementsByTagName(targetelement)
 for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
  if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){
   var newelement=createjscssfile(newfilename, filetype, media)
   allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])
  }
 }
}


function print_preview() {
	document.body.style.display = "none";
	// Switch the stylesheet
	//setActiveStyleSheet('Print Preview Screen');
	
	var inpageCSSHref = document.getElementById("inpage_print_css").href;
	var inpagePreviewCSSHref = document.getElementById("inpage_print_preview_css").href;
	//alert(inpagePreviewCSSHref);
	var defaultCSSHref = document.getElementById("default_print_css").href;
		
	//replacejscssfile(defaultCSSHref, inpageCSSHref, "css", "print") //Replace all occurences
	
	/*Apply Print CSS to screen*/
	var defaultCSS = createjscssfile(defaultCSSHref, "css", "screen")
		if (typeof defaultCSS!="undefined"){
		  document.getElementsByTagName("head")[0].appendChild(defaultCSS);
	}
	
	/*Apply Print Preview CSS to screen*/
	var reviewCSS = createjscssfile(inpagePreviewCSSHref, "css", "screen")
	if (typeof reviewCSS!="undefined"){
	  document.getElementsByTagName("head")[0].appendChild(reviewCSS);
	}
	
	/*Apply Print Inpage CSS to print*/
	var inpageCSS = createjscssfile(inpageCSSHref, "css", "print")
	if (typeof inpageCSS!="undefined"){
		document.getElementsByTagName("head")[0].appendChild(inpageCSS);
	}
	
	// Create preview message
	add_preview_message();
	document.body.style.display = "block";
	
	// Print the page
	window.print();
}

function checkPrintMode(){
	if(window.location.hash == "#printPreview")
	{
		print_preview();
	}
}

function closePrintView()
{
	window.open("","_self"); window.close(); 
}

$(document).ready(function() {
	   checkPrintMode();
	});

function add_preview_message(){
var main_content = document.getElementById('container');
var main_body = main_content.parentNode;

	if (document.getElementById){
		
		var print_header = document.createElement('div');
		print_header.id = 'print_header';
		
		var preview_message = document.createElement('div');
		preview_message.id = 'preview-message';
	
		// Create Heading
		//var preview_heading = document.createElement('h1');
		//var preview_heading_text = document.createTextNode('Print Preview');
		//preview_heading.appendChild(preview_heading_text);
		
		// Create paragraph
		var preview_para = document.createElement('p');
		var preview_para_text = document.createTextNode('');
		
		var close_window_link = document.createElement('a');
			close_window_link.onclick = function(){ window.open("","_self"); window.close(); };
			close_window_link.setAttribute('href', 'javascript:closePrintView()');	
		var close_window_link_text = document.createTextNode('Close this window [x]');
		close_window_link.appendChild(close_window_link_text);
		preview_para.appendChild(preview_para_text); //
		preview_para.appendChild(close_window_link);
		
		var logo_container = document.createElement('div');
		logo_container.id = 'print_logo_container';
		var print_logo = document.createElement('img');
		print_logo.src = document.getElementById("print_img_logo").href;
		print_logo.id = 'print_logo';
		logo_container.appendChild(print_logo);
		
		// Put it all toegether
		//preview_message.appendChild(preview_heading); 
		preview_message.appendChild(preview_para);
		print_header.appendChild(logo_container);
		print_header.appendChild(preview_message); 
		print_header.appendChild(document.createElement('HR')); 
		main_content.insertBefore(print_header,main_content.firstChild);
		//main_body.insertBefore(preview_message, main_content);
		
		/*
		if(typeof(main_content) != "undefined" && (main_content.firstChild.tagName == "H1" || (main_content.firstChild.tagName == "!" && main_content.firstChild.nextSibling.tagName == "H1")))
		{
			main_body.insertBefore(logo_container, main_content);
		}
		*/
		
		//var logo_container = document.createElement('img');
		//logo_container.src = document.getElementById("print_img_logo").href;
		//logo_container.id = 'print_logo';
		//document.body.insertBefore(logo_container,document.body.firstChild);
		//main_body.insertBefore(logo_container, main_content);
	}
}

