(function($){var counter=0;var modes={iframe:"iframe",popup:"popup"};var defaults={mode:modes.iframe,popHt:500,popWd:400,popX:200,popY:200,popTitle:'',popClose:false};var settings={};$.fn.printArea=function(options)
{if($.browser.msie){defaults.mode = modes.popup;}$.extend(settings,defaults,options);counter++;var idPrefix="printArea_";$("[id^="+idPrefix+"]").remove();var ele=getFormData($(this));settings.id=idPrefix+counter;var writeDoc;var printWindow;switch(settings.mode)
{case modes.iframe:var f=new Iframe();writeDoc=f.doc;printWindow=f.contentWindow||f;break;case modes.popup:printWindow=new Popup();writeDoc=printWindow.doc;}
writeDoc.open();writeDoc.write(docType()+"<html>"+getHead()+getBody(ele)+"</html>");writeDoc.close();printWindow.focus();printWindow.print();if(settings.mode==modes.popup&&settings.popClose)
printWindow.close();}
function docType()
{if(settings.mode==modes.iframe||!settings.strict)return"";var standard=settings.strict==false?" Trasitional":"";var dtd=settings.strict==false?"loose":"strict";return'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01'+standard+'//EN" "http://www.w3.org/TR/html4/'+dtd+'.dtd">';}
function getHead()
{var head="<head><title>"+settings.popTitle+"</title>";$(document).find("link").filter(function(){return $(this).attr("rel").toLowerCase()=="stylesheet";}).filter(function(){var media=$(this).attr("media");return(media.toLowerCase()==""||media.toLowerCase()=="print")}).each(function(){head+='<link type="text/css" rel="stylesheet" href="'+$(this).attr("href")+'" >';});head+="</head>";return head;}
function getBody(printElement)
{return'<body><div class="'+$(printElement).attr("class")+'">'+$(printElement).html()+'</div></body>';}
function getFormData(ele)
{$("input,select,textarea",ele).each(function(){var type=$(this).attr("type");if(type=="radio"||type=="checkbox")
{if($(this).is(":not(:checked)"))this.removeAttribute("checked");else this.setAttribute("checked",true);}
else if(type=="text")
this.setAttribute("value",$(this).val());else if(type=="select-multiple"||type=="select-one")
$(this).find("option").each(function(){if($(this).is(":not(:selected)"))this.removeAttribute("selected");else this.setAttribute("selected",true);});else if(type=="textarea")
{var v=$(this).attr("value");if($.browser.mozilla)
{if(this.firstChild)this.firstChild.textContent=v;else this.textContent=v;}
else this.innerHTML=v;}});return ele;}
function Iframe()
{var frameId=settings.id;var iframeStyle='border:0;position:absolute;width:0px;height:0px;left:0px;top:0px;';var iframe;try
{iframe=document.createElement('iframe');document.body.appendChild(iframe);$(iframe).attr({style:iframeStyle,id:frameId,src:""});iframe.doc=null;iframe.doc=iframe.contentDocument?iframe.contentDocument:(iframe.contentWindow?iframe.contentWindow.document:iframe.document);}
catch(e){throw e+". iframes may not be supported in this browser.";}
if(iframe.doc==null)throw"Cannot find document.";return iframe;}
function Popup()
{var windowAttr="location=yes,statusbar=no,directories=no,menubar=no,titlebar=no,toolbar=no,dependent=no";windowAttr+=",width="+settings.popWd+",height="+settings.popHt;windowAttr+=",resizable=yes,screenX="+settings.popX+",screenY="+settings.popY+",personalbar=no,scrollbars=no";var newWin=window.open("","_blank",windowAttr);newWin.doc=newWin.document;return newWin;}})(jQuery);
