// this will be taken care of in the namespace method in BODOG.js
if (!BODOG) { var BODOG = {}; }
if (!BODOG.components) { BODOG.components = {}; }



BODOG.components.printPreview = function() {

    /** These are all private */

        //var _lala = toast;
		
	return {
	
		/** These are all public */
		
		settings: {
            linkPlacementClass1: ".triple-crown-2009-table",
            linkPlacementClass2: "table.power-rankings",
            linkText: "Print Preview",
            printText: "Print",
            exitPreviewText: "Exit Print Preview"
		},
        
        //create style sheet objects
        $screenStyleSheets: $("link:not([@media=print])"),
        $printStyleSheets: $("link[@media=print]"),
        
        init: function(options) {

			$.extend(this.settings, options || {});
			
			this.addPrintLink();
        },
    
        addPrintLink: function(){
        
            $(this.settings.linkPlacementClass1 + "," + this.settings.linkPlacementClass2).before("<div class=\"print-link\"><div>" + this.settings.linkText + "</div></div>");
            
            var that = this;
        
            $("head").append(   "<style>\n"+
                                ".print-link{\n"+
                                "    color:#ccc;\n"+
                                "    font-size:12px;\n"+
                                "    cursor:pointer;\n"+
                                "}\n"+
                                "    .print-link.hover{\n"+
                                "        color:#fff;\n"+
                                "    }\n"+
                                "    .print-link div{\n"+
                                "    float:right;\n"+
                                "    padding:0 10px 10px 0;\n"+
                                "    }\n"+
                                "</style>");
        
           $(".print-link").hover(function(){
                $(this).addClass("hover");
           },function(){
                $(this).removeClass("hover");
           }).click(function(){
                
                $("head link").remove();
                $("head style").remove();
                
                //adds a clone of printStyleSheets so that when you removeAttr("media") it doesn't remove it from that object, only the clone.
                $("head").append( that.$printStyleSheets.clone() );
                $("link[@media=print]").removeAttr("media");
                            
                $(".print-link").remove();
                
                $("body").prepend("<div class=\"print-link-panel\"><div class=\"print-link-panel-padding\"><div class=\"print-link-print\">" + that.settings.printText + "</div><div class=\"print-link-exit\">" + that.settings.exitPreviewText + "</div></div></div>");
                $("body").append("<div class=\"print-link-panel\"><div class=\"print-link-panel-padding\"><div class=\"print-link-print\">" + that.settings.printText + "</div><div class=\"print-link-exit\">" + that.settings.exitPreviewText + "</div></div></div>");
    
                //styles added here to avoid confusion of having them in the external css files/ to keep script separate
               $("head").append(    "<style media=\"print\">.print-link-panel{display:none;}</style>");
               $("head").append(    "<style>\n"+
                                    ".print-link-panel{\n"+
                                    "    color:#fff;\n"+
                                    "    width:100%;\n"+
                                    "    font-size:12px;\n"+
                                    "}\n"+
                                    ".print-link-panel-padding{\n"+
                                    "    width:100%;\n"+
                                    "    overflow:hidden;\n"+
                                    "    padding:5px 0 5px 10px;\n"+
                                    "    margin:0 0 10px 0;\n"+
                                    "    background:#000;\n"+
                                    "    color:#ccc;\n"+
                                    "}\n"+
                                    "    .print-link-print{\n"+
                                    "        display:inline;\n"+
                                    "        cursor:pointer;\n"+
                                    "    }\n"+
                                    "    .print-link-exit{\n"+
                                    "        display:inline;\n"+
                                    "        cursor:pointer;\n"+
                                    "        padding:0 0 0 20px;\n"+
                                    "    }\n"+
                                    "    .print-link-panel-padding .hover{\n"+
                                    "        color:#fff;\n"+
                                    "    }\n"+
                                    "</style>");  
                $(".print-link-print").hover(function(){
                    $(this).addClass("hover");
                },function(){
                    $(this).removeClass("hover");
                }).click(function(){
                    window.print();
                });
                
                $(".print-link-exit").hover(function(){
                    $(this).addClass("hover");
                },function(){
                    $(this).removeClass("hover");
                }).click(function(){
                    $(".print-link-panel").remove();
                    $("head link").remove();
                    $("head style").remove();
                    $(that.$screenStyleSheets).appendTo("head");
                    $(that.$printStyleSheets).appendTo("head");
                    that.addPrintLink();
                });
                
            });
        }
    }
}();


$(function(){
    BODOG.components.printPreview.init();
});