/**
 * Maritz User Interface
 */ 
var Maritz = {

    /**
     * Init UI functions
     */         
    init: function () {
         if (jQuery.browser.msie) {
            Maritz.emulateHover(jQuery("#nav li"));
            }
         
         Maritz.navigationOpacity();
         Maritz.initsIFR(); 
         Maritz.insertFlash();
         Maritz.promoRollovers();
         Maritz.promoRollovers2();
         Maritz.pageTools();
         Maritz.FontSize.setTextSize();
         Maritz.FontSize.init();
         Maritz.toolTips();
         Maritz.toolTips2();
         Maritz.serviceToolTips();
         Maritz.eventRollover();
         Maritz.printPopup();
         Maritz.print();
         Maritz.fancyBox();
         
       
         Maritz.preloadImages(["/images/bg/video-rollover.png", "/images/bg/text-rollover-inner.png", "/images/bg/text-rollover-top.png", "/images/bg/text-rollover-bottom.png", "/images/bg/text-rollover-arrow.png"]);        

    },
    
    fancyBox: function(){
                 
         var fancyboxindex = 0;
         jQuery("a.fancybox").each(function(){  
            var href = new String(jQuery(this).attr("href"));
            var rel = new String(jQuery(this).attr("rel"));
            var title = new String(jQuery(this).attr("title"));
            var options = Maritz.getFancyboxOptions();
            var width;
            var height;
            
            var str = href.substr(href.lastIndexOf('.')+1).toLowerCase();
		    var contentOptions = {};
		    if(rel != null && rel != ""){
			    var optArr = rel.split(',');
			    for (var i = 0; i < optArr.length; i++){
				    var ta = optArr[i].split(':');
				    contentOptions[ta[0]] = ta[1];
			    };
		    }
    		
		    if(contentOptions.type != undefined){
			    str = contentOptions.type;
		    }
    		
		    contentObj = {};
		    contentObj.url = href;
		    contentObj.xH = 0;
    		
		    if(contentOptions.width){
			    contentObj.width = contentOptions.width;
		    }else{
			    contentObj.width = options.movieWidth;
		    }
		    if(contentOptions.height){
			    contentObj.height = contentOptions.height;	
		    }else{
			    contentObj.height = options.movieHeight;
		    }
		    if(contentOptions.panel){
			    panelPosition = contentOptions.panel;
		    }else{
			    panelPosition = options.panel;
		    }
    		
    		
		    switch(str){
			    case 'jpg':
			    case 'gif':
			    case 'png':
				    type = 'image';
				    break;
			    case 'swf':
				    type = 'flash';
				    break;
			    case 'flv':
				    type = 'flashVideo';
				    contentObj.xH = 70;
				    break;
			    case 'mov':
				    type = 'quicktime';
				    break;
			    case 'wmv':
				    type = 'windowsMedia';
				    break;
			    case 'rv':
			    case 'rm':
			    case 'rmvb':
				    type = 'real';
				    break;
			    case 'mp3':
				    type = 'flashMp3';
				    contentObj.width = 320;
				    contentObj.height = 70;
				    break;
				case 'inline':
				    break;
			    case 'element':
			        /*
				    type = 'htmlelement';
				    elementContent = link.content;
				    elementContent.setStyles({
					    display: 'block',
					    opacity: 0
				    })
    	
				    if(elementContent.getStyle('width') != 'auto'){
					    contentObj.width = this.elementContent.getStyle('width');
				    }
    				
				    contentObj.height = this.elementContent.getSize().size.y;
				    elementContent.setStyles({
					    display: 'none',
					    opacity: 1
				    })
				    */
				    break;
    				
			    default:
    				
				    type = 'iframe';
				    if(contentOptions.ajax){
					    type = 'ajax';
				    }
				    break;
		    }
                                  
            switch(contentOptions.type){
			    case 'jpg':
			    case 'gif':
			    case 'png':
				    type = 'image';
				    break;
			    case 'swf':
				    type = 'flash';
				    break;
			    case 'flv':
				    type = 'flashVideo';
				    contentObj.xH = 70;
				    break;
			    case 'mov':
				    type = 'quicktime';
				    break;
			    case 'wmv':
				    type = 'windowsMedia';
				    break;
			    case 'rv':
			    case 'rm':
			    case 'rmvb':
				    type = 'real';
				    break;
			    case 'mp3':
				    type = 'flashMp3';
				    width = 320;
				    height = 70;
				    break;
			    default:
				    type = 'iframe';
				    if(contentOptions.ajax){
					    type = 'ajax';
				    }
				    break;
		    }
		    if(type == 'flash'){   			
		        newdiv = document.createElement('div');
		        newdiv.setAttribute('id', 'fancybox' + fancyboxindex);
		        newdiv.setAttribute('style','display:none;visibility:none;width:' + contentObj.width + ';height:' + (Number(contentObj.height)+contentObj.xH));
		        div = "";
		        if (!jQuery.browser.msie){
			        div += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" '
			        div += 'width="'+contentObj.width+'" ';
			        div += 'height="'+contentObj.height+'" ';
			        div += 'title="MultiBoxMedia">';
  			        div += '<param name="movie" value="'+ contentObj.url +'" />'
  			        div += '<param name="quality" value="high" />';
  			    }
  			    div += '<embed src="'+url+'" ';
  			    div += 'quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" ';
  			    div += 'width="'+contentObj.width+'" ';
  			    div += 'height="'+contentObj.height+'"></embed>';
  			    if (!jQuery.browser.msie){
			        div += '</object>';
			    }
			    newdiv.innerHTML = div;
			    jQuery(this).attr("href","#fancybox" + fancyboxindex);
		    }
		    if(type == 'flashVideo'){		
		    
		        newdiv = document.createElement('div');
		        newdiv.setAttribute('id', 'fancybox' + fancyboxindex);
		        jQuery('body').append(newdiv);
		        newdiv = jQuery('#fancybox' + fancyboxindex);
		        
		        newdiv.css('display','none');
		        newdiv.css('width',contentObj.width);
		        newdiv.css('height',(Number(contentObj.height)+contentObj.xH));
		       
		        
		        div = "";
		        if (!jQuery.browser.msie){
			        div += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" '
			        div += 'width="'+contentObj.width+'" ';
			        div += 'height="'+(Number(contentObj.height)+contentObj.xH)+'" ';
			        div += '>';
  			        div += '<param name="movie" value="'+options.path+'flvplayer.swf" />'
  			        div += '<param name="quality" value="high" />';
  			        div += '<param name="salign" value="TL" />';
  			        div += '<param name="scale" value="noScale" />';
  			        div += '<param name="FlashVars" value="path=' + contentObj.url + '" />';
  			    }
  			    div += '<embed src="'+options.path+'flvplayer.swf" ';
  			    div += 'quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" ';
  			    div += 'width="'+Number(contentObj.width)+'" ';
  			    div += 'height="'+(Number(contentObj.height)+contentObj.xH)+'"';
  			    div += 'salign="TL" ';
  			    div += 'scale="noScale" ';
  			    div += 'FlashVars="path='+contentObj.url+'"';
  			    div += '></embed>';
  			    if (!jQuery.browser.msie){
			        div += '</object>';
			    }
                newdiv.html(div);
                jQuery(this).attr("href","#fancybox" + fancyboxindex);
		    }
            
            jQuery(this).fancybox({
                'frameWidth': Number(contentObj.width),
                'frameHeight': Number(contentObj.height)+contentObj.xH
            });
         });    
    },
    
    getFancyboxOptions: function(){
		return {
			initialWidth: 250,
			initialHeight: 250,
			container: document.body,
			useOverlay: false,
			contentColor: '#FFF',
			showNumbers: true,
			showControls: true,
			//showThumbnails: false,
			//autoPlay: true,
			waitDuration: 2000,
			descClassName: false,
			descMinWidth: 400,
			descMaxWidth: 600,
			movieWidth: 400,
			movieHeight: 300,
			offset: {x:0, y:0},
			fixedTop: false,
			path: '/files/',
			onOpen: null,
			onClose: null,
			openFromLink: true,
			relativeToWindow: true
		};
	},
       
    print: function () {
        jQuery("#print-header .print-button a").bind("click", function () {
            window.print();
            return false;
        });
    },
    
    printPopup: function () {
        jQuery("#print").bind("click", function () {
            var new_window = window.open(jQuery(this).attr('href'), '', 'width=600,height=900,top=50,left=50,resizable=yes,scrollbars=yes');
            new_window.focus();
            return false;
        });
    },
    
    /**
     * Init sIFR 
     */         
    initsIFR: function () {
        if (typeof sIFR == "function") {
            sIFR.replaceElement(named({sSelector: "#content h1.sifr", sFlashSrc: "flash/fonts/frutiger-light.swf", sColor: "#2F70D5", sWmode: "transparent"}));
            sIFR.replaceElement(named({sSelector: "#content h2.grey", sFlashSrc: "flash/fonts/frutiger-roman.swf", sColor: "#6F6F62", sWmode: "transparent", sCase: "upper"}));
        }
    },
    
    /**
     * Insert flash
     */         
    insertFlash: function () {
        /*
        if (jQuery("#video1").length) {
            var video1 = new SWFObject("flash/videos/player.swf", "video1", "189", "174", "7", "#ffffff");
            video1.addParam("wmode", "transparent");
            video1.addVariable("variable1", "value1");
            video1.write("video1");
        }
        */
    },
    
    /**
     * Home Page Rollovers 
     */         
    promoRollovers: function () {    
         jQuery("#promo .rollovers li").each(function (i) {
         
            var li = jQuery(this);
            var rollover = jQuery(this).find('.rollover');
         
            li.bind("mouseover", function () {
                rollover.css("display", "block");
                li.css("z-index", 10);
            });

            rollover.hover(
                function () {
                },
                function () {
                    rollover.css("display", "none");
                    li.css("z-index", 1);
                }
            )
         });       
    },
    
    /**
     * Home Page Rollovers v2
     */         
    promoRollovers2: function () {    
         jQuery("#promo .rollovers2 li").each(function (i) {
         
            var li = jQuery(this);
            var rollover = jQuery(this).find('.rollover');

            li.hover(
                function () {
                    rollover.css("display", "block");
                    li.css("z-index", 10);
                },
                function () {
                    rollover.css("display", "none");
                    li.css("z-index", 1);
                }
            )

            rollover.hover(
                function () {
                },
                function () {
                    rollover.css("display", "none");
                    li.css("z-index", 1);
                }
            )
         });       
    },
    
    
    /**
     * Page tools rollovers
     */         
    pageTools: function () {    
         jQuery("#page-tools a").each(function (i) {
         
            var img = jQuery(this).find('img');
            var bubble = jQuery('<div class="bubble"><p>' + jQuery.trim(jQuery(this).attr("title")) + '</p></div>');
            jQuery('#page-tools').append(bubble);
            
            jQuery(this).hover(
                function () {
                    var offset =  jQuery(this).offset();
                    var top = offset.top + 19;
                    var left = offset.left - 76;
                    
                    bubble.css('top', top + 'px'); 
                    bubble.css('left', left + 'px'); 
                    img.attr('src', img.attr('src').replace(/.gif/, '_over.gif')); 
                    bubble.css('display', 'block');
                },
                function () {
                    img.attr('src', img.attr('src').replace(/_over.gif/, '.gif'));
                    bubble.css('display', 'none');
                }
            )
         });       
    },
    
    /**
     * Calendar Event Rollovers
     *     
     */   
    eventRollover: function () {
        jQuery(".calendar table h3").each(function (i) {
            var offset =  jQuery(this).offset();
            var top = offset.top + jQuery(this).height() - 20;
            var left = offset.left + 13;	
            var event_title = jQuery.trim(jQuery(this).text());            
            var event_description = jQuery.trim(jQuery(this).parent().find('.description').text());
            var para_id = "[id="+jQuery.trim(jQuery(this).attr("id"))+"P]";
            var event_date = jQuery.trim(jQuery(this).parent().find('.date').filter(para_id).text());
            var event_url = jQuery.trim(jQuery(this).find('a').attr("href"));
			if( top > 750) {
	            var rollover = jQuery('<div class="event-rollover"><span class="topNonArrowed"></span><div class="wrapper"><div class="rollover-inner"><h3>' + event_title + '</h3><p>' + event_description + '</p><p class="date">'+ event_date + '</p><div class="button"><p><a href="' + event_url + '">View Event Detail</a></p></div></div><span class="bottomArrowed"></span></div>');            								
				top = offset.top- 100 - ( event_date.length/50)*12 -  ( event_title.length/50)*12;
                left = offset.left ;
			} else {
				var rollover = jQuery('<div class="event-rollover"><span class="top"></span><div class="wrapper"><div class="rollover-inner"><h3>' + event_title + '</h3><p>' + event_description + '</p><p class="date">'+ event_date + '</p><div class="button"><p><a href="' + event_url + '">View Event Detail</a></p></div></div><span class="bottom"></span></div>');            
			}

            rollover.css("top", top + 'px');
            rollover.css("left", left + 'px');

            
            jQuery('body').append(rollover);
            
            jQuery(this).bind("mouseover", function () {
                rollover.css("display", "block");
            });
            
            jQuery(this).bind("mouseout", function () {
                rollover.css("display", "none");
            });
            
            rollover.hover (
                function () {
                    rollover.css("display", "block");
                },
                function () {
                    rollover.css("display", "none");
                }
            )
        });
    },
    
    /**
     * Tooltips
     */         
    toolTips: function () {
        jQuery('.tooltip').each(function (i) {
            var tooltip = jQuery('<div class="tooltip-bubble"><p>' + jQuery.trim(jQuery(this).find('span').html()) + '</p><span class="top"></span><span class="bottom"></span></div>');
            jQuery('body').append(tooltip);
            jQuery(this).hover(
                function () {
                    var offset =  jQuery(this).offset();
                    
                    var top = offset.top + jQuery(this).height() + 4;
                    var left = offset.left - (180 - jQuery(this).width()/2);

                    tooltip.css('top', top + 'px'); 
                    tooltip.css('left', left + 'px'); 
                    tooltip.css('display', 'block');
                },
                function () {
                    tooltip.css('display', 'none');
                }
            )
        }); 
    },
    
    /**
     * Tooltips2
     */         
    toolTips2: function () {
        jQuery('.tooltip2').each(function (i) {
            var tooltip = jQuery('<div class="tooltip-bubble tooltip2-bubble"><p>' + jQuery.trim(jQuery(this).find('span').html()) + '</p><span class="top"></span><span class="bottom"></span></div>');
            jQuery('body').append(tooltip);
            jQuery(this).hover(
                function () {
                    var offset =  jQuery(this).offset();
                    
                    var top = offset.top + jQuery(this).height() + 4;
                    var left = offset.left;

                    tooltip.css('top', top + 'px'); 
                    tooltip.css('left', left + 'px'); 
                    tooltip.css('display', 'block');
                },
                function () {
                    tooltip.css('display', 'none');
                }
            )
        }); 
    },
    
    /**
     * Services Tooltips
     */         
    serviceToolTips: function () {
        var bubbles = jQuery('.service-tooltip-bubble');
    
        jQuery('.service-tooltip').each(function (i) {
        
            var tooltip = jQuery(bubbles[i]);
            jQuery(this).hover(
                function () {
                    var offset =  jQuery(this).offset();
                    
                    var top = offset.top - tooltip.height() - jQuery(this).height() - 8;
                    var left = offset.left;

                    tooltip.css('top', top + 'px'); 
                    tooltip.css('left', left + 'px'); 
                    tooltip.css('display', 'block');
                },
                function () {
                    tooltip.css('display', 'none');
                }
            )
        }); 
    },
    
     /**
     * Emulate hover in IE6
     */          
    emulateHover: function (items) {
        items.hover(
            function () {
                jQuery(this).addClass('hover');
                var link = jQuery(this).children('a');
								if(link.attr('id') == undefined){
									var temp = this.parentNode;
									link = jQuery(temp).children('a');
									while(link.attr('id') == undefined && temp != undefined){
										temp = temp.parentNode;
										link = jQuery(temp).children('a');
									}
								}
                if (link.attr('id') == 'nav02' || link.attr('id') == 'nav03' || link.attr('id') == 'nav04') {
					 jQuery('.sort-by select').css('display', 'none');
                }
            },
            function () {				
                jQuery(this).removeClass('hover');
				jQuery('.sort-by select').css('display', 'block');
            }
        )
    },

    /**
     * Set navigation opacity
     */         
    navigationOpacity: function () {
        if (BrowserDetect.browser == 'Firefox' && BrowserDetect.OS == 'Mac') {
            return;
        }  
        /* 
        jQuery("#nav ul a").not('.current').each(function (i) {
            
            jQuery(this).css('opacity', 0.9);
            
            jQuery(this).hover ( 
                function () {
                    jQuery(this).css('opacity', 1.0);
                },
                function () {
                    jQuery(this).css('opacity', 0.9);
                }
            );
        });
        */
    },
    
    /**
     * Preload images
     * @param {Array} images array with names of images   
     */               
    preloadImages: function (images) {
        for (var i = 0; i < images.length; i++) {
            var image = new Image();
            image.src = images[i];
        }
    }
}


/**
 * Font size
 */ 
Maritz.FontSize = {

    text_size: 1,
  
    /**
     * Set text size when user navigates between pages
     */         
    setTextSize: function () {
        /*
        if (jQuery.cookie("text_size")) {
            Maritz.FontSize.text_size = jQuery.cookie("text_size");
            jQuery('body').addClass(Maritz.FontSize.makeClass(Maritz.FontSize.text_size));
        }
        */
    },

    /**
     * Make class name from text size
     * @param {Number} size Text size       
     * @return {String} 
     */                        
    makeClass: function (size) {
        return 'text' + size;
    },
    
    /**
     * Increase and decrease text size by adding classes to body element
     * Classes are defined in screen.css     
     */         
    init: function () {
        var body = jQuery('body');
        
        jQuery('#text-up').bind('click', function () {
            if (Maritz.FontSize.text_size < 7) {
                body.removeClass(Maritz.FontSize.makeClass(Maritz.FontSize.text_size));
                Maritz.FontSize.text_size++;
                body.addClass(Maritz.FontSize.makeClass(Maritz.FontSize.text_size));
                jQuery.cookie("text_size", Maritz.FontSize.text_size); 
            }
            return false;
        });
        
        jQuery('#text-down').bind('click', function () {
            if (Maritz.FontSize.text_size > 1) {
                body.removeClass(Maritz.FontSize.makeClass(Maritz.FontSize.text_size));
                Maritz.FontSize.text_size--;
                body.addClass(Maritz.FontSize.makeClass(Maritz.FontSize.text_size));
                jQuery.cookie("text_size", Maritz.FontSize.text_size);
            }
            return false;
        });
    } 
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

BrowserDetect.init();


jQuery(document).ready(function () {
    Maritz.init();   
});

var min=8;
var max=18;
function increaseFontSize() {
   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=max) {
         s += 1;
      }
      p[i].style.fontSize = s+"px"
   }
}
function decreaseFontSize() {
   var p = document.getElementsByTagName('p');
   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=min) {
         s -= 1;
      }
      p[i].style.fontSize = s+"px"
   }   
}

