var baseurl = jQuery('script[src*=javascripts/]:first').attr('src');
// The baseurl is the src up until the start of our js file
baseurl = baseurl.substring(0, baseurl.indexOf("javascripts/"));
		
var validateForm = function(elem, options){		
	var isValid = {
		required: function(value, element) {
			switch( element.nodeName.toLowerCase() ) {
			case 'select':
				var options = jQuery("option:selected", element);
				return options.length > 0 && ( element.type == "select-multiple" || (jQuery.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
			case 'input':
				if (jQuery(element).is(":radio") || jQuery(element).is(":checkbox")) {
					return jQuery("input[name='" + element.name + "']").filter(":checked").length > 0;
				} else {
					return jQuery.trim(value).length > 0;
				}
			default:
				return jQuery.trim(value).length > 0;
			}
		},
		email: function(value, element) {
			return is_optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
		}
	};
	
	var errorMsg = {
		required: "This field is required.",
		email: "Please enter a valid email address."
	};
	
	var is_optional = function(element) {
		return !isValid.required.call(this, element.value, element);
	};
	
	var check = function(element) {
		var r = rules(element);
		
		for (var i=0,n=r.length;i < n; i++) {
			if (!isValid[r[i]].call(this, element.value, element)) {
				return errorMsg[r[i]];
			}
		}
		
		return true;
	};
	
	var rules = function(element) {
		var rules = [];
		var classes = jQuery(element).attr('class') || "";
		classes && jQuery.each(classes.split(/ +/), function() {
			if (this in isValid) {
				rules.push(this);
			}
		});
		return rules;
	};
	
	var errorCreateLabel = function(element, options) {
		
	};
	
	return function(elem, options){
		var frm;
		var options = options || {};
		
		if (jQuery(elem).is("form")) {
			frm = elem;
		} else {
			frm = jQuery(elem).parents("form");
			if (frm.length < 1) return;
			frm = frm[0];
		}
		
		var groups = ({});
		if (options.groups) {
			jQuery.each(options.groups, function(k, v) {
				jQuery.each(v.split(/\s+/), function(i, n) {
					groups[n] = k;
				});
			});
		};
		
		var elements = jQuery("input, textarea, select, button", elem);
		elements
			.filter(":input")
			.not(":submit, :reset, :image, [disabled]");
			
			
		var getLabel = function(element){
			var label;
			var id = groups[element.name] || ((jQuery(element).is(":radio") || jQuery(element).is(":checkbox")) ? element.name : element.id || element.name);
			
			label = jQuery("label[generated='true'][for='"+id+"']", elem);
			if (label.length > 0) {
				//
			} else {
				label = jQuery("<label />")
					.addClass("error")
					.attr("generated","true")
					.attr("for", id);
					
				options.errorPlacement ? options.errorPlacement(label, jQuery(element)) : label.insertAfter(element);
			}
			
			return label;
		};
			
		var validate = function() {
			var valid = true;
			var toShow = [], toHide = [];
			var toFocus = undefined;
			jQuery(elements).each(function(){
				var r = check(this);
				var label = getLabel(this);
				if ( r !== true ) {
					label.html(r || "");
					toShow.push(label);
					valid = false;
					
					if (toFocus == undefined) {
						toFocus = this;
					}
				} else {
					toHide.push(label);
				}
			});
			
			jQuery(toHide).each(function() {
				jQuery(this).hide();
			});
			
			jQuery(toShow).each(function(){
				jQuery(this).show();
			});
			
			if (!valid && toFocus != undefined) {
				try {
					jQuery(toFocus).focus();
				} catch(e) {};
			}
			
			return valid;
		}
		
		
		jQuery(frm).bind("submit", function(){
			if (!validate()) {
				return false;
			}
		});
	}
}();

////////////////////////////
// bigTarget.js - A jQuery Plugin
// Version 1.0.1
// Written by Leevi Graham - Technical Director - Newism Web Design & Development
// http://newism.com.au
// Notes: Tooltip code from fitted.js - http://www.trovster.com/lab/plugins/fitted/

// create closure
(function($) {
	// plugin definition
	$.fn.bigTarget = function(options) {
		debug(this);
		// build main options before element iteration
		var opts = $.extend({}, $.fn.bigTarget.defaults, options);
		// iterate and reformat each matched element
		return this.each(function() {
			// set the anchor attributes
			var $a = $(this);
			var href = $a.attr('href');
			var title = $a.attr('title');
			// build element specific options
			var o = $.meta ? $.extend({}, opts, $a.data()) : opts;
			// update element styles
			$a.parents(o.clickZone)
				.hover(function() {
					$h = $(this);
					$h.addClass(o.hoverClass);
					if(typeof o.title != 'undefined' && o.title === true && title != '') {
						$h.attr('title',title);
					}
				}, function() {
					
					$h.removeClass(o.hoverClass);
					if(typeof o.title != 'undefined' && o.title === true && title != '') {
						$h.removeAttr('title');
					}
				})
				// click
				.click(function() {
					if(getSelectedText() == "")
					{
						if($a.is('[rel*=external]')){
							window.open(href);
							return false;
						}
						else {
							//$a.click(); $a.trigger('click');
							window.location = href;
						}
					}
				});
		});
	};
	// private function for debugging
	function debug($obj) {
		if (window.console && window.console.log)
		window.console.log('bigTarget selection count: ' + $obj.size());
	};
	// get selected text
	function getSelectedText(){
		if(window.getSelection){
			return window.getSelection().toString();
		}
		else if(document.getSelection){
			return document.getSelection();
		}
		else if(document.selection){
			return document.selection.createRange().text;
		}
	};
	// plugin defaults
	$.fn.bigTarget.defaults = {
		hoverClass	: 'hover',
		clickZone	: 'li:eq(0)',
		title		: true
	};
// end of closure
})(jQuery);
///////////////////////////////
	
(function(jQuery) {
    /* MENU */
    function init_menu() {
        jQuery(".menu").each(function() {
            var elem = this;
            var elemOffset = jQuery(elem).offset();
            var elemWidth = jQuery(elem).outerWidth();
            var mainMenu = jQuery(".mainMenu", elem);
            var hideTimeout = 0;

            var hideCurrentMenu = function() {
                hideTimeout = 0;
                jQuery(".mainMenu>li.mainMenuItem_hover").removeClass("mainMenuItem_hover");
            };

            var clearHideTimeout = function() {
                if (hideTimeout > 0) {
                    window.clearTimeout(hideTimeout);
                    hideTimeout = 0;
                }
            };

            var startHideTimeout = function() {
                clearHideTimeout();
                hideTimeout = window.setTimeout(function() {
                    hideCurrentMenu();
                }, 100);
            };

            jQuery(".mainMenu>li>a", elem).each(function() {
                var li = jQuery(this).parent();
                var hasSubmenu = jQuery(".subMenu", li).length > 0;
                jQuery(this)
					.append(jQuery("<span />").addClass("bl"))
					.append(jQuery("<span />").addClass("br"));

                jQuery(li).bind("mouseover.menu", function() {
                    if (jQuery(li).is(".mainMenuItem_hover")) {
                        clearHideTimeout();
                    } else {
                        hideCurrentMenu();
                        if (hasSubmenu) {
                            jQuery(li).addClass("mainMenuItem_hover");
                        }
                    }
                });
                jQuery(this).bind("mouseover.menu", function() {
                    clearHideTimeout();
                });

                jQuery(li).bind("mouseout.menu", function() {
                    startHideTimeout();
                });

            });


            //submenu
            var subHideTimeout = 0;
            var hideCurrentSubMenu = function() {
                subHideTimeout = 0;
                jQuery(".subMenu>li.subMenuItem_hover", elem).removeClass("subMenuItem_hover");
            };

            //calculate row/ col
            jQuery(".mainMenu>li", elem).each(function() {
                if (jQuery(".subMenu", parent).lenght < 1) return;
                var parent = jQuery(this);
                var parentOffset = jQuery(parent).offset();
                jQuery(".subMenu_wrapper", parent).show();
                var subMenuItemWidth = jQuery(".subMenu>li.subMenuItem:eq(0)", parent).outerWidth(true);
                var subMenuItemsCount = jQuery(".subMenu>li.subMenuItem", parent).length;
                var maxCols = 4;

                var rows = Math.ceil(subMenuItemsCount / maxCols);
                var cols = maxCols;
                if ((rows * maxCols) > subMenuItemsCount) {
                    var d = subMenuItemsCount - ((rows - 1) * maxCols);
                    if (d <= Math.ceil(maxCols / 2)) {
                        rows++;
                        cols--;
                    }
                }

                var subMenuItemsWidth = cols * subMenuItemWidth;

                var subMenuItemPaddingH = 0, subMenuItemMarginH = 0;
                var subMenuItemsHeight = 0;
                subMenuItemPaddingH += parseInt(jQuery(".subMenu>li.subMenuItem:eq(0)", parent).css("paddingTop")) || 0;
                subMenuItemPaddingH += parseInt(jQuery(".subMenu>li.subMenuItem:eq(0)", parent).css("paddingBottom")) || 0;
                subMenuItemMarginH += parseInt(jQuery(".subMenu>li.subMenuItem:eq(0)", parent).css("marginTop")) || 0;
                subMenuItemMarginH += parseInt(jQuery(".subMenu>li.subMenuItem:eq(0)", parent).css("marginBottom")) || 0;

                for (var i = 0, n = 0; i < rows; i++) {
                    var maxH = 0;
                    for (var j = 0, h = 0; j < cols; j++) {
                        h = jQuery(".subMenu>li.subMenuItem:eq(" + (n + j) + ")", parent).outerHeight(true);
                        if (maxH < h) maxH = h;
                    }

                    for (var j = 0; j < cols; j++) {
                        jQuery(".subMenu>li.subMenuItem:eq(" + n + ")", parent).css({
                            height: (maxH - (subMenuItemPaddingH + subMenuItemMarginH)) + "px"
                        });
                        n++;
                    }

                    subMenuItemsHeight += maxH;
                }

                //subMenuItemsHeight -= parseInt(jQuery(".subMenu", parent).css("paddingTop")) || 0;
                //subMenuItemsHeight -= parseInt(jQuery(".subMenu", parent).css("paddingBottom")) || 0;
                //subMenuItemsWidth -= parseInt(jQuery(".subMenu", parent).css("paddingLeft")) || 0;
                //subMenuItemsWidth -= parseInt(jQuery(".subMenu", parent).css("paddingRight")) || 0;

                subMenuItemsWidth += 20;

                jQuery(".subMenu", parent).css({
                    width: (subMenuItemsWidth) + "px",
                    height: subMenuItemsHeight + "px"
                });

                jQuery(".subMenu_wrapper", parent).css({
                    width: (subMenuItemsWidth + 10) + "px"
                });

                subMenuItemsHeight += parseInt(jQuery(".subMenu", parent).css("paddingTop")) || 0;
                subMenuItemsHeight += parseInt(jQuery(".subMenu", parent).css("paddingBottom")) || 0;

                subMenuItemsHeight += parseInt(jQuery(".subMenu_wrapper", parent).css("paddingTop")) || 0;
                subMenuItemsHeight += parseInt(jQuery(".subMenu_wrapper", parent).css("paddingBottom")) || 0;

                //sub menu position
                var parentWidth = jQuery(parent).outerWidth();

                subMenuItemsWidth -= parseInt(jQuery(".subMenu", parent).css("paddingLeft")) || 0;
                subMenuItemsWidth -= parseInt(jQuery(".subMenu", parent).css("paddingRight")) || 0;
                var d = ((parentOffset.left + parentWidth) - elemOffset.left) - subMenuItemsWidth;
                if (d > 0) {
                    jQuery(".subMenu_wrapper", parent).css({
                        left: (elemWidth - subMenuItemsWidth) + "px"
                    });
                }

                jQuery(".subMenu_wrapper", parent).append(
					jQuery("<div />").addClass("subMenu_wrapper_br").append(
						jQuery("<div />").addClass("subMenu_wrapper_r")
					)
				);

                jQuery(".subMenu_wrapper .subMenu_wrapper_br", parent).css({
                    height: (subMenuItemsHeight - 10) + "px"
                }).show();

                jQuery(".subMenu_wrapper", parent).css({
                    display: ""
                });
            });


            var clearSubHideTimeout = function() {
                if (subHideTimeout > 0) {
                    window.clearTimeout(subHideTimeout);
                    subHideTimeout = 0;
                }
            };

            var startSubHideTimeout = function() {
                clearSubHideTimeout();
                subHideTimeout = window.setTimeout(function() {
                    hideCurrentSubMenu();
                }, 100);
            };

            jQuery(".subMenu>li", elem).bind("mouseover.menu", function() {
                clearSubHideTimeout();
                if (!jQuery(this).is(".subMenuItem_hover")) {
                    hideCurrentSubMenu();
                    jQuery(this).addClass("subMenuItem_hover");
                }
            });
            jQuery(".subMenu>li", elem).bind("mouseout.menu", function() {
                startSubHideTimeout();
            });

            //actiate bigTarget plugin
            jQuery(".subMenu>li.subMenuItem a").bigTarget({
                clickZone: 'li:eq(0)',
                hoverClass: '.subMenuItem_hover'
            });
        });



        jQuery(".region").each(function() {
            var elem = this;
            var hideTimeout = 0;
            var selection = jQuery(".region_selections", elem);

            if (selection.length) {
                selection.hide();
                var hideCurrentMenu = function() {
                    selection.hide();
                    jQuery(elem).removeClass("region_hover");
                };

                var clearHideTimeout = function() {
                    if (hideTimeout > 0) {
                        window.clearTimeout(hideTimeout);
                        hideTimeout = 0;
                    }
                };

                var startHideTimeout = function() {
                    clearHideTimeout();
                    hideTimeout = window.setTimeout(function() {
                        hideCurrentMenu();
                    }, 200);
                };

                jQuery(".current_region", elem).bind("mouseover.region", function() {
                    clearHideTimeout();
                    if (!jQuery(elem).is(".region_hover")) {
                        jQuery(elem).addClass("region_hover");
                        selection.show();
                    }
                });
                jQuery([selection, elem]).bind("mouseover.region", function() {
                    clearHideTimeout();
                });

                jQuery(elem).bind("mouseout.region", function() {
                    startHideTimeout();
                });
            }
        });

        if (jQuery.browser.msie && jQuery.browser.version < 7) {
            jQuery(".region_selections").show();
            var W = jQuery(".region_selections").innerWidth();
            W -= parseInt(jQuery(".region_selections").css("paddingLeft")) || 0;
            W -= parseInt(jQuery(".region_selections").css("paddingRight")) || 0;

            jQuery(".region_selections a").each(function() {


                var w = W;

                w -= parseInt(jQuery(this).css("paddingLeft")) || 0;
                w -= parseInt(jQuery(this).css("paddingRight")) || 0;


                jQuery(this).css({
                    width: w + "px"
                });
            });
            jQuery(".region_selections").hide();
        }

    };

    /* default text */
    function init_def_text() {
        var changedClass = "jDefText_changed";

        jQuery(".jDefText[type='text']").each(function() {
            var onFocus = false;
            var elem = this;
            jQuery(this).bind("focus.jDefText", function() {
                onFocus = true;
                if (this.value == this.defaultValue) {
                    this.value = "";
                }
                jQuery(this).addClass(changedClass);
            });
            jQuery(this).bind("blur.jDefText", function() {
                onFocus = false;
                if (this.value == "") {
                    this.value = this.defaultValue;
                    jQuery(this).removeClass(changedClass);
                }
            });
            jQuery(this).bind("change.jDefText", function() {
                if (!onFocus) {
                    jQuery(this).triggerHandler("focus");
                    jQuery(this).triggerHandler("blur");
                }
            });
            //form reset
            if (jQuery(this).parents("form").length) {
                jQuery(this).parents("form").bind("reset.jDefText", function() {
                    elem.value = elem.defaultValue;
                    jQuery(elem).removeClass(changedClass);
                });
            }
            if (this.value == this.defaultValue) {
                jQuery(this).removeClass(changedClass);
            } else {
                jQuery(this).addClass(changedClass);
            }

        });
    };

    /* LEFT NAVIGATION */
    function init_left_nav() {

        var shared = {
            leftNav_onClick: function() {
                var self = this;

                jQuery(".subLeftNav_expanded", jQuery(self.elem).parents(".leftNavItem")).removeClass("subLeftNav_expanded");

                if (jQuery(self.link).is(".expanded")) {
                    jQuery(self.link).removeClass("expanded");
                    jQuery(self.subMenu.elem).hide().find(".expanded").removeClass("expanded").end().find(".subLeftNav").hide();
                    jQuery(self.subMenu.elem).parents("li:first").parents("li:first").find("ul.subLeftNav").addClass("subLeftNav_expanded");
                } else {
                    jQuery(self.link).addClass("expanded");
                    jQuery(self.subMenu.elem).show().addClass("subLeftNav_expanded");
                }
            }
        };

        var leftNav = function(elem, parent) {
            var self = this;
            self.elem = elem;
            self.parent = parent;
            self.link = jQuery(">a", self.elem);
            self.hasSubMenu = (jQuery(">ul.subLeftNav", self.elem).length > 0);

            self.subMenu = undefined;
            if (jQuery(".span", self.link).length < 1) {
                jQuery(self.link).wrapInner(jQuery("<span />").addClass("span"));
            }


            if (self.hasSubMenu) {
                self.subMenu = new leftNavGroup(jQuery(">ul.subLeftNav", self.elem)[0], self);
                jQuery(self.link).addClass("expanded");
                jQuery(">ul.subLeftNav", self.elem).show();

                /*
                jQuery(self.link).bind("click.leftNav", function(){
                shared.leftNav_onClick.apply(self, []);
                this.blur();
                return false;
                });
                */
            }

            return this;
        };

        var leftNavGroup = function(elem, parent) {
            var self = this;
            self.parent = parent;
            self.elem = elem;
            self.menuItems = [];

            jQuery(">li", self.elem).each(function() {
                (self.menuItems).push(new leftNav(this, self));
            });

            return this;
        };

        var init = function() {

        };

        jQuery(".leftNav").each(function() {
            var elem = this;

            var topBorder = jQuery(elem).next();
            if (!topBorder.is(".leftNav_top")) {
                topBorder = jQuery("<div />").addClass("leftNav_top").insertAfter(jQuery(elem));

                if (jQuery.browser.msie && jQuery.browser.version < 7) {
                    jQuery(elem).next(".leftNav_top").pngfix();
                }
            }
            jQuery(elem).wrap(jQuery("<div />").addClass("leftNavWrapper"));
            jQuery(elem).parent().css({ position: "relative" }).append(topBorder);

            jQuery("ul.subLeftNav", elem).hide().removeClass("subLeftNav_expanded");
            jQuery(".expanded", elem).removeClass("expanded");

            if (jQuery(".selected", elem).length > 0) {
                if (jQuery(".selected", elem).length > 1) {
                    jQuery(".selected", elem).not(":last").removeClass("selected");
                }

                /* 2010 Feb 02 */
                var p = jQuery(".selected", elem).parents("ul.subLeftNav:eq(0)");
                while (1) {
                    if (p.length > 0) {
                        p.parents("li:eq(0)").find(">a").addClass("expanded");
                        p.show();
                        p = p.parents("ul.subLeftNav:eq(0)");
                    } else {
                        break;
                    }
                }

                p = jQuery(".selected", elem).parents("li:eq(0)");
                if (jQuery(">ul.subLeftNav", p).length > 0) {
                    jQuery(".selected", elem).addClass("expanded");
                    jQuery(">ul.subLeftNav", p).show();
                }
                /* ------ */
            }


            if (jQuery(".expanded", elem).length > 0) {
                jQuery(".expanded", elem).filter(":last").parents("li:first").find(">ul.subLeftNav").addClass("subLeftNav_expanded");
                if (jQuery(".expanded", elem).filter(":last").parents("li:first").find(">ul.subLeftNav").length < 1) {
                    jQuery(".expanded", elem).parents("ul.subLeftNav").filter(":last").addClass("subLeftNav_expanded");
                }
            }


            if (jQuery.browser.msie) {
                jQuery(elem).css("zoom", 1);
                jQuery(".leftNavItem, .subLeftNav, .subLeftNavItemm", elem).css("zoom", 1);
            }

            var menu = new leftNavGroup(elem, null);
        });
    };

    /* CAROUSEL */
    function init_carousel(options) {
        options = options || {};

        /* Change Options here */
        var animateSlideDuration = options.animateSlideDuration || 1000;
        var hideNavOnSingleSlide = options.hideNavOnSingleSlide == undefined ? true : options.hideNavOnSingleSlide;

        var autoMode = options.autoMode == undefined ? true : options.autoMode;
        var autoMode_autoStart = options.autoMode_autoStart || 5000; //wait before start on page load
        var autoMode_timeout = options.autoMode_timeout || 3000; //wait before show next slide
        var autoMode_pauseAfterUserAction = options.autoMode_pauseAfterUserAction || 8000; //after user click (manual slide select), wait before start automode again

        var getSlideID = (function() {
            var i = 0;
            return (function() {
                return "slide" + (i++);
            });
        })();

        var baseurl = jQuery('script[src*=javascripts/]:first').attr('src');
        // The baseurl is the src up until the start of our js file
        baseurl = baseurl.substring(0, baseurl.indexOf("javascripts/"));

        var centerSlideContent = function(elem) {
            var wrapper = jQuery(".slide_content_wrapper", elem);
            if (wrapper.length > 0) {
                var H = jQuery(elem).innerHeight();
                H -= parseInt(jQuery(elem).css("paddingTop")) || 0;
                H -= parseInt(jQuery(elem).css("paddingBottom")) || 0;

                var h = jQuery(wrapper).outerHeight();
                h -= parseInt(jQuery(wrapper).css("paddingTop")) || 0;
                h -= parseInt(jQuery(wrapper).css("paddingBottom")) || 0;

                var y = (H - h) / 2;
                if (y < 0) y = 0;
                var h = parseInt(jQuery(wrapper).css("paddingTop")) || 0;
                var p = h + y - 10;
                if (p > 0) {
                    jQuery(wrapper).css("paddingTop", p + "px");
                }
            }
        };

        jQuery(".carousel").each(function() {
            var elem = this;
            var currentIndex = 0;
            var slidesCount = jQuery(".carousel_slide", elem).length;
            var slideWidth = jQuery(".carousel_slide:eq(0)", elem).outerWidth(true);


            if (slidesCount > 1 || !hideNavOnSingleSlide) {
                var nav = jQuery("<div />").addClass("carousel_nav")
					.append(jQuery("<div />").addClass("carousel_nav_buttons"))
					.append(jQuery("<div />").addClass("carousel_nav_taglines"))
					.wrapInner(jQuery("<div />").addClass("carousel_nav_wrapper"));

                nav.appendTo(elem).show();
                jQuery(nav).append(jQuery("<div />").addClass("carousel_nav_edge"));

                var contents = jQuery("<div />").addClass("slide_content");
                contents.append(jQuery("<div />").addClass("slide_content_wrapper"));
                contents.insertAfter(jQuery(".carousel_slides", elem));
            }

            tagLineWidth = 0;
            jQuery(".carousel_slide", elem).each(function() {
                var slide = this;
                var slideTag = jQuery(".slide_tagline", slide);
                var slideImage = jQuery(".slide_image", slide);
                var slideContent = jQuery(".slide_content", slide);

                var slideID = jQuery(this).attr("id") || getSlideID();

                if (slideTag.length > 0) {
                    slideTag = slideTag.html() || "";
                } else {
                    slideTag = "";
                }

                if (slideContent.length > 0) {
                    //centerSlideContent(slideContent);
                }

                if (slidesCount > 1 || !hideNavOnSingleSlide) {
                    jQuery("<a />").attr({
                        href: "#" + slideID,
                        title: slideTag
                    }).addClass("carousel_nav_button").show().appendTo(jQuery(".carousel_nav_buttons", nav));

                    var tagline = jQuery("<span />").addClass("carousel_nav_tagline").html(slideTag);
                    tagline.appendTo(jQuery(".carousel_nav_taglines", nav));

                    if (tagline.outerWidth(true) > tagLineWidth) {
                        tagLineWidth = tagline.outerWidth(true);
                    }

                    var content = jQuery("<div />").addClass("slide_content_inner");
                    jQuery("<div />").addClass("slide_content_helper").html(jQuery(".slide_content_wrapper", slide).html()).appendTo(content);

                    content.appendTo(jQuery(".slide_content_wrapper", contents));
                }

                var more = jQuery(".more", slide);
                if (more.length > 0) {
                    var slide_link = more.clone(true);
                    slide_link.html("").removeClass("more").addClass("slide_link");

                    if (slidesCount > 1 || !hideNavOnSingleSlide) {
                        slide_link.appendTo(content);
                    } else {
                        slide_link.appendTo(jQuery(".slide_content", slide));
                    }

                    //.insertAfter(jQuery(slide).parent()).show();

                    if (jQuery.browser.msie && jQuery.browser.version < 8) {
                        slide_link.append(jQuery("<img />").attr({
                            src: baseurl + "images/x.gif",
                            width: slide_link.outerWidth(),
                            height: slide_link.outerHeight(),
                            alt: ""
                        }));
                    }
                }

                jQuery(this).bind("click.carousel", function() {
                    moveTo(currentIndex + 1, true, autoMode_pauseAfterUserAction);
                });
            });

            if (slidesCount > 1 || !hideNavOnSingleSlide) {
                contents.insertAfter(jQuery(".carousel_slides", elem));
            }

            if (slidesCount > 1 || !hideNavOnSingleSlide) {
                jQuery(".carousel_nav_taglines, .carousel_nav_tagline", nav).css({
                    width: (tagLineWidth + 5) + "px"
                });
                jQuery(".carousel_nav_tagline", elem).hide();

                jQuery(".carousel_slide", elem).hide();
                jQuery(".carousel_slide .slide_content", elem).hide();

                var H = contents.innerHeight();
                jQuery(".slide_content_helper", contents).each(function() {
                    var h = jQuery(this).innerHeight();
                    var y = (H - h) / 2;
                    if (y > 0) {
                        jQuery(this).parent().css("top", y + "px");
                    }

                    if (slidesCount > 1 || !hideNavOnSingleSlide) {
                        if (jQuery(this).next().is(".slide_link")) {
                            jQuery(jQuery(this).next()).css({
                                top: -y + "px"
                            });
                        }
                    }
                });

                contents.show();
                jQuery(".slide_content_inner", contents).hide();
            }


            if (jQuery(".carousel_slide_current", elem).length > 0) {
                currentIndex = jQuery(".carousel_slide", elem).index(jQuery(".carousel_slide_current", elem));
            } else {
                jQuery(".carousel_slide:eq(0)", elem).addClass("carousel_slide_current");
            }


            var fadeIn = function(obj, onComplete) {
                var obj = jQuery(obj);
                var visible = obj.css("display") != "none";
                var opacity = obj.css("opacity");

                obj.stop();
                if (!visible && (!opacity || opacity == 1)) {
                    obj.css({
                        opacity: 0,
                        display: "block"
                    });
                } else if (!visible && opacity < 1) {
                    obj.css({
                        display: "block"
                    });
                }

                obj.animate({ opacity: 1 }, { queue: false, duration: 1000, complete: function() {
                    jQuery(this).css({
                        opacity: "",
                        display: "block"
                    });
                    if (jQuery.isFunction(onComplete)) {
                        onComplete();
                    }
                } 
                });
            };

            var fadeOut = function(obj, onComplete) {
                jQuery(obj)
					.stop()
					.animate({ opacity: 0 }, { queue: false, duration: 1000, complete: function() {
					    jQuery(this).css({
					        opacity: "",
					        display: "none"
					    });
					    if (jQuery.isFunction(onComplete)) {
					        onComplete();
					    }
					} 
					});
            };

            var moveTo = function(i, anim, nextTimeout) {
                if (i < 0 || i >= slidesCount) i = 0;
                resetAutoTimeout();

                anim = anim || false;
                if (currentIndex >= 0 && currentIndex < slidesCount) {
                    jQuery(".carousel_slide:eq(" + currentIndex + ")", elem).removeClass("carousel_slide_current");
                    if (slidesCount > 1 || !hideNavOnSingleSlide) {
                        jQuery(".carousel_nav_button:eq(" + currentIndex + ")", elem).removeClass("carousel_nav_button_current");
                        jQuery(".carousel_nav_tagline:eq(" + currentIndex + ")", elem).hide();
                    }
                    if (anim) {
                        fadeOut(jQuery(".carousel_slide:eq(" + currentIndex + ")", elem));

                        if (slidesCount > 1 || !hideNavOnSingleSlide) {
                            fadeOut(jQuery(".slide_content_inner:eq(" + currentIndex + ")", contents));
                        }
                    } else {
                        jQuery(".carousel_slide:eq(" + currentIndex + ")", elem).hide();
                        jQuery(".slide_content_inner:eq(" + currentIndex + ")", contents).hide();
                    }
                }

                currentIndex = i;

                if (currentIndex >= 0 && currentIndex < slidesCount) {
                    jQuery(".carousel_slide:eq(" + currentIndex + ")", elem).addClass("carousel_slide_current");

                    if (slidesCount > 1 || !hideNavOnSingleSlide) {
                        jQuery(".carousel_nav_button:eq(" + currentIndex + ")", elem).addClass("carousel_nav_button_current");
                        jQuery(".carousel_nav_tagline:eq(" + currentIndex + ")", elem).show();
                    }

                    if (anim) {
                        fadeIn(jQuery(".carousel_slide:eq(" + currentIndex + ")", elem), function() {
                            if (autoMode && slidesCount > 1) {
                                setAutoTimeout(nextTimeout, autoMode_timeout);
                            }
                        });
                        if (slidesCount > 1 || !hideNavOnSingleSlide) {
                            fadeIn(jQuery(".slide_content_inner:eq(" + currentIndex + ")", contents));
                        }
                    } else {
                        jQuery(".carousel_slide:eq(" + currentIndex + ")", elem).show();
                        if (slidesCount > 1 || !hideNavOnSingleSlide) {
                            jQuery(".slide_content_inner:eq(" + currentIndex + ")", contents).show();
                        }
                        if (autoMode && slidesCount > 1) {
                            setAutoTimeout(nextTimeout, autoMode_timeout);
                        }
                    }
                }

            };

            if (slidesCount > 1 || !hideNavOnSingleSlide) {
                jQuery(".carousel_nav_button", elem).bind("click.carousel", function() {
                    var idx = jQuery(".carousel_nav_button", elem).index(this);
                    moveTo(idx, true, autoMode_pauseAfterUserAction);
                    this.blur();
                    return false;
                });
            }

            var autoModeTimeout = 0;
            var resetAutoTimeout = function() {
                if (autoMode_timeout > 0) {
                    window.clearTimeout(autoModeTimeout);
                    autoModeTimeout = 0;
                }
            }

            var setAutoTimeout = function(timeout, nextTimeout) {
                resetAutoTimeout();
                autoModeTimeout = window.setTimeout(function() {
                    moveTo(currentIndex + 1, true, nextTimeout);
                }, timeout);
            }

            currentIndex = -1;
            moveTo(0, false, autoMode_autoStart);
        });
    };

    function init_side_carousel(options) {
        options = options || {};
        /* Change Options here */
        var animateSlideDuration = options.animateSlideDuration || 1000;
        var hideNavOnSingleSlide = options.hideNavOnSingleSlide == undefined ? true : options.hideNavOnSingleSlide;

        var autoMode = options.autoMode == undefined ? true : options.autoMode;
        var autoMode_autoStart = options.autoMode_autoStart || 5000; //wait before start on page load
        var autoMode_timeout = options.autoMode_timeout || 3000; //wait before show next slide
        var autoMode_pauseAfterUserAction = options.autoMode_pauseAfterUserAction || 8000; //after user click (manual slide select), wait before start automode again

        jQuery(".sideCarousel").each(function() {
            var elem = this;
            var slidesCount = jQuery(".sideCarousel_content", elem).length;
            var nav = jQuery(".sideCarousel_nav", elem);
            var currentIndex = 0;
            var slideWidth = 0;

            if (!jQuery(".sideCarousel_contents", elem).parent().is(".sideCarousel_contents_container")) {
                jQuery(".sideCarousel_contents", elem).wrap(jQuery("<div />").addClass("sideCarousel_contents_container"));
            }


            var maxH = 0;
            jQuery(".sideCarousel_content", elem).each(function() {
                if (jQuery(this).outerHeight(true) > maxH) {
                    maxH = jQuery(this).outerHeight(true);
                }
            });

            slideWidth = jQuery(".sideCarousel_content:eq(0)", elem).outerWidth(true);

            jQuery(".sideCarousel_contents_container", elem).css({
                height: maxH + "px"
            });
            jQuery(".sideCarousel_contents", elem).css({
                width: (slideWidth * slidesCount) + "px"
            });

            jQuery(".prev", nav).bind("click.sideCarousel", function() {
                moveTo(currentIndex - 1, true, autoMode_pauseAfterUserAction);
                this.blur();
                return false;
            });
            jQuery(".next", nav).bind("click.sideCarousel", function() {
                moveTo(currentIndex + 1, true, autoMode_pauseAfterUserAction);
                this.blur();
                return false;
            });

            var initNavState = function() {
                if (currentIndex <= 0) {
                    currentIndex = 0;
                    jQuery(".prev", nav).addClass("prev_disabled");
                } else {
                    jQuery(".prev", nav).removeClass("prev_disabled");
                }

                if (currentIndex >= slidesCount) {
                    currentIndex = slidesCount;
                    jQuery(".next", nav).addClass("next_disabled");
                } else {
                    jQuery(".next", nav).removeClass("next_disabled");
                }
            };

            var moveTo = function(i, anim, nextTimeout) {
                if (i < 0 || i >= slidesCount) i = 0;
                resetAutoTimeout();

                anim = anim || false;
                if (currentIndex >= 0 && currentIndex < slidesCount) {
                    jQuery(".sideCarousel_content:eq(" + currentIndex + ")", elem).removeClass("sideCarousel_content_current");
                }

                currentIndex = i;

                if (currentIndex >= 0 && currentIndex < slidesCount) {
                    if (anim) {
                        jQuery(".sideCarousel_contents", elem).stop();
                        jQuery(".sideCarousel_contents", elem).animate({ left: -(currentIndex * slideWidth) + "px" }, { queue: false, duration: animateSlideDuration, easing: "easeInOutExpo", complete: function() {
                            if (autoMode && slidesCount > 1) {
                                setAutoTimeout(nextTimeout, autoMode_timeout);
                            }
                        } 
                        });
                    } else {
                        jQuery(".sideCarousel_contents", elem).css({
                            left: -(currentIndex * slideWidth) + "px"
                        });

                        if (autoMode && slidesCount > 1) {
                            setAutoTimeout(nextTimeout, autoMode_timeout);
                        }
                    }

                    jQuery(".sideCarousel_content:eq(" + currentIndex + ")", elem).addClass("sideCarousel_content_current");
                }

                initNavState();
            };

            var autoModeTimeout = 0;
            var resetAutoTimeout = function() {
                if (autoMode_timeout > 0) {
                    window.clearTimeout(autoModeTimeout);
                    autoModeTimeout = 0;
                }
            }

            var setAutoTimeout = function(timeout, nextTimeout) {
                resetAutoTimeout();
                autoModeTimeout = window.setTimeout(function() {
                    moveTo(currentIndex + 1, true, nextTimeout);
                }, timeout);
            }

            moveTo(0, false, autoMode_autoStart);
        });
    };

    function init_newsRoller(options) {
        options = options || {};
        var animateDuration = options.duration || 1000;
        var animateWaitBeforeNext = options.waitBeforeNext || 8000;

        jQuery(".newsRoller").each(function() {
            var elem = this;
            var newsCount = jQuery(".newsRoller_news_item", elem).length;
            var timeout = 0;
            var currentIdx = 0;
            if (newsCount < 2) return;

            var newsHeight = jQuery(".newsRoller_news_item:eq(0)", elem).outerHeight(true);
            var newsWidth = jQuery(".newsRoller_news_item:eq(0)", elem).outerWidth(true);

            /*
            jQuery(".newsRoller_news_item:eq(0)", elem).clone().appendTo(jQuery(".newsRoller_news", elem));
            newsCount++;
            */
            var mouseIn = false;

            jQuery(".newsRoller_news", elem).css({
                height: (newsHeight) + "px",
                width: (newsWidth * newsCount) + "px"
            });

            var moveNext = function() {
                var x = -newsWidth;
                jQuery(".newsRoller_news", elem).stop();
                jQuery(".newsRoller_news", elem).animate({ left: x + "px" }, { queue: false, duration: animateDuration, easing: "easeOutExpo", complete: function() {
                    jQuery(".newsRoller_news_item:eq(0)", elem).appendTo(jQuery(".newsRoller_news", elem).css({ left: 0 }));
                    setTimeout();
                } 
                });
            };

            var setTimeout = function() {
                clearTimeout();
                timeout = window.setTimeout(moveNext, animateWaitBeforeNext);
            };

            var clearTimeout = function() {
                if (timeout > 0) {
                    window.clearTimeout(timeout);
                    timeout = 0;
                }
            };

            jQuery(".newsRoller_news", elem).bind("mouseover.newsRoller", function() {
                if (!mouseIn) {
                    mouseIn = true;
                    clearTimeout();
                }
            });

            jQuery(".newsRoller_news", elem).bind("mouseout.newsRoller", function() {
                if (mouseIn) {
                    mouseIn = false;
                    timeout = window.setTimeout(setTimeout, 100);
                }
            });

            jQuery(".newsRoller_news", elem).css({ left: 0 });
            setTimeout();
        });
    };

    function init_homeTabs() {
        jQuery(".homeTabs").each(function() {
            var elem = this;

        });
    };

    /* needed fix for IE */
    function ie_fix() {
        if (jQuery.browser.msie && jQuery.browser.version < 7) {
            jQuery("img[src$=png], .leftNav_top, .slide_content, .carousel_nav_edge, .newsRoller_fadeLeft, .newsRoller_fadeRight").pngfix({
                imageFixSrc: baseurl + "images/x.gif"
            });

            jQuery(".searchForm .btnSubmitSearch").each(function() {
                jQuery(this).bind("mouseover", function() {
                    jQuery(this).addClass("btnSubmitSearch_hover");
                });
                jQuery(this).bind("mouseout", function() {
                    jQuery(this).removeClass("btnSubmitSearch_hover");
                });
            });
        }

        if (jQuery.browser.msie && jQuery.browser.version < 8) {
            jQuery(".button1, .button2, .button4, .button5").each(function() {
                var elem = this;
                var span = jQuery(".span", elem);
                var H = jQuery(elem).innerHeight();
                H -= parseInt(jQuery(elem).css("paddingTop")) || 0;
                H -= parseInt(jQuery(elem).css("paddingBottom")) || 0;

                var h = jQuery(span).innerHeight();
                h -= parseInt(jQuery(span).css("paddingTop")) || 0;
                h -= parseInt(jQuery(span).css("paddingBottom")) || 0;

                var y = (H - h) / 2;
                jQuery(span).css({
                    paddingTop: y + "px"
                });
            });
        }

        if (jQuery.browser.msie && jQuery.browser.version < 8) {
            jQuery(".cyanRoundedBox").each(function() {
                var W = jQuery(".boxContent", this).outerWidth();
                var h = jQuery(".boxContent", this).innerHeight();
                var w = W;
                w += parseInt(jQuery(this).css("paddingLeft")) || 0;
                w += parseInt(jQuery(this).css("paddingRight")) || 0;

                jQuery(this).css({
                    width: W + "px",
                    height: h + "px",
                    display: "inline-block",
                    overflow: "hidden"
                });

                jQuery(".boxBorder-t, .boxBorder-b", this).css({
                    width: w + "px"
                });

            });
        }
    };

    function init_text_shadow(selector) {
        jQuery(selector).each(function() {
            var elem = this;
            var html = jQuery(elem).html();
            var shadow, wrapper;

            if (elem.tagName == "DIV") {
                shadow = jQuery("<div />").addClass("shdwC");
                jQuery(elem).wrapInner(jQuery("<div />").addClass("shdwI"));
                wrapper = jQuery(".shdwI", elem);

                if (jQuery(elem).css("display") == "table-cell") {
                    jQuery(elem).wrapInner(jQuery("<div />").addClass("shdwD").css("display", "block"));
                    elem = jQuery(".shdwD", elem);
                }

            } else {
                shadow = jQuery("<span />").addClass("shdwC");
                jQuery(elem).wrapInner(jQuery("<span />").addClass("shdwI"));
                wrapper = jQuery(".shdwI", elem);

                if (jQuery(elem).css("display") == "table-cell") {
                    jQuery(elem).wrapInner(jQuery("<span />").addClass("shdwD").css("display", "block"));
                    elem = jQuery(".shdwD", elem);
                }
            }

            if (jQuery(elem).css("position") != "absolute" && jQuery(elem).css("position") != "relative") {
                jQuery(elem).css("position", "relative");
            }

            var o, z, p;
            if (jQuery(elem).css("position") == "absolute") {
                o = jQuery(elem).offset();
                z = parseInt(jQuery(elem).css("zIndex")) || 0;
            } else {
                o = {
                    left: parseInt(jQuery(elem).css("left")) || 0,
                    top: parseInt(jQuery(elem).css("top")) || 0
                };
                o.left += parseInt(jQuery(elem).css("paddingLeft")) || 0;
                o.top += parseInt(jQuery(elem).css("paddingTop")) || 0;
                z = parseInt(jQuery(elem).css("zIndex")) || 0;
            }

            if (z < 1) {
                p = jQuery(elem).parent();
                while (1) {
                    if (p.length > 0 && !jQuery(p).is("BODY") && !jQuery(p).is("HTML")) {
                        z = parseInt(jQuery(p).css("zIndex")) || 0;
                        if (z > 0) {
                            break;
                        }
                        p = jQuery(p).parent();
                    } else {
                        break;
                    }
                }
                z++;
                if (z < 10) z = 10;
                //jQuery(elem).css("zIndex", z);
            }

            jQuery(elem).append(shadow);

            wrapper.css({
                position: "relative",
                zIndex: z + 2
            });

            var w, h, padding, margin;
            w = jQuery(elem).innerWidth();
            h = jQuery(elem).innerHeight();

            padding = {
                top: parseInt(jQuery(elem).css("paddingTop")) || 0,
                right: parseInt(jQuery(elem).css("paddingRight")) || 0,
                bottom: parseInt(jQuery(elem).css("paddingBottom")) || 0,
                left: parseInt(jQuery(elem).css("paddingLeft")) || 0
            };
            margin = {
                top: parseInt(jQuery(elem).css("marginTop")) || 0,
                right: parseInt(jQuery(elem).css("marginRight")) || 0,
                bottom: parseInt(jQuery(elem).css("marginBottom")) || 0,
                left: parseInt(jQuery(elem).css("marginLeft")) || 0
            };

            w -= padding.left + padding.right;
            h -= padding.top + padding.bottom;

            if (jQuery.browser.msie) {
                if (jQuery.browser.version > 7) {
                    if (padding.top > 0) {
                        o.top -= padding.top - 1;
                    }

                } else if (jQuery.browser.version > 6 && jQuery.browser.version < 8) {
                    if (jQuery(elem).css("display") == "inline-block") {
                        o.left += padding.left / 4;
                    } else {
                        wrapper.css("width", w + "px");
                        wrapper.css("float", "left");
                    }
                } else if (jQuery.browser.version < 7) {
                    if (jQuery(elem).css("display") == "inline-block") {
                        o.left += padding.left / 4;
                    } else {
                        wrapper.css("width", w + "px");

                        wrapper.css("display", "inline-block");

                    }
                }
            } else {
                if (padding.top > 0) {
                    o.top -= padding.top;
                    if (jQuery.browser.mozilla && parseFloat(jQuery.browser.version) < 1.9) {
                        if (jQuery(elem).css("display") == "inline") {
                            o.top++;
                        }
                    }
                }
            }

            var css = {
                position: "absolute",
                left: (o.left + 1) + "px",
                top: (o.top + 1) + "px",
                textAlign: jQuery(elem).css("textAlign") || "",
                verticalAlign: jQuery(elem).css("verticalAlign") || "",
                display: jQuery(elem).css("display") || "",
                width: w + "px",
                height: h + "px",
                lineHeight: jQuery(elem).css("lineHeight") || "",
                zIndex: z + 1
            };

            shadow.html(html).css(css);

            // to replace contained image with blank image.
            shadow.html(html).children().filter("img").each(function() {
                var w = jQuery(this).innerWidth();
                var h = jQuery(this).innerHeight();
                jQuery(this).css({
                    width: w + "px",
                    height: h + "px",
                    overflow: "hidden"
                }).attr({
                    width: w,
                    height: h,
                    src: "images/x.gif"
                });
            });
        });
    };

    function init_image_gallery() {
        jQuery(".imageGallery").each(function() {

        });
    };

    /* onload initialization */
    jQuery(document).ready(function() {
        ie_fix();

        //make text shadow
        //put all selector here -- more info about jQuery selector can be found here: http://docs.jquery.com/Selectors
		//Suki: add '.barkerBox .hover_content' selector (June 07, 2010) 
        init_text_shadow(".mainMenu>li>a, .sideCarousel_title a, .scrollBox_title, .leftBox_title, .homeTabs_tabs a, .newsRoller_title .span, .button1 .span, .button2 .span, .button3 .span, .articleUtility a, .button4 .span, .button5 .span, .barkerBox .hover_content"); 

        init_menu(); //menu
        init_left_nav();
        init_def_text(); //def text

        //text input
        jQuery(".scfSingleLineTextBox, .scfEmailTextBox").addClass("customInput");
        if (jQuery.fn.InputBox) {
            jQuery(".customInput").InputBox();

        }

        //textarea
        jQuery(".scfMultipleLineTextBox").addClass("customTextarea");
        if (jQuery.fn.TextareaBox) {
            jQuery(".customTextarea").TextareaBox();
        }

        //checkboxes
        jQuery(".scfCheckbox input[type='checkbox']").addClass("customCheckbox");
        if (jQuery.fn.Checkbox) {
            jQuery(".customCheckbox").Checkbox();
        }

        //dropdown
        jQuery("select.scfDropList").addClass("customDropdown");
        if (jQuery.fn.dropDownMenu) {
            jQuery(".customDropdown").dropDownMenu({
                scrollPaneOptions: {
                    scrollbarWidth: 14,
                    showArrows: false,
                    arrowSize: 0,
                    dragMinHeight: 57,
                    dragMaxHeight: 57,
                    maintainPosition: true
                }
            });
        }

        //carousel
        init_carousel({
            animateSlideDuration: 1000,
            hideNavOnSingleSlide: true,
            autoMode: true,
            autoMode_autoStart: 5000,
            autoMode_timeout: 5000,
            autoMode_pauseAfterUserAction: 8000
        });
        jQuery(".carousel_nav_edge").pngfix();

        //side carousel
        init_side_carousel({
            animateSlideDuration: 1000,
            autoMode: false,
            autoMode_autoStart: 8000,
            autoMode_timeout: 8000,
            autoMode_pauseAfterUserAction: 8000
        });

        //rolling news
        init_newsRoller({
            duration: 800, //in ms
            waitBeforeNext: 8000 //in ms, wait before next news
        });

        //tabs
        if (jQuery.fn.tabs) {
            jQuery(".homeTabs_tabs").tabs();
        }

        //gallery
        if (jQuery.fn.gallery) {
            jQuery(".imageGallery").gallery();
        }

        //scrollbox
        if (jQuery.fn.jScrollPane) {
            jQuery(".scrollBox .scrollBox_content").jScrollPane({
                scrollbarWidth: 14,
                showArrows: false,
                arrowSize: 0,
                dragMinHeight: 57,
                dragMaxHeight: 57,
                maintainPosition: true
            });

            jQuery(".jScrollPane").jScrollPane({
                scrollbarWidth: 14,
                showArrows: false,
                arrowSize: 0,
                dragMinHeight: 57,
                dragMaxHeight: 57,
                maintainPosition: true
            });
        }

        //accordion
        if (jQuery.fn.accordion) {
            jQuery(".accordion").accordion();
        }

        //advanced search filter checkboxes
        if (jQuery(".searchFilters .lblFilter :checkbox").length > 0) {
            new function() {
                var checkboxes = jQuery(".searchFilters .lblFilter").not(".lblFilterAll").find(":checkbox");
                var checkAll = jQuery(".searchFilters .lblFilterAll :checkbox");

                var checkAllChanged = function() {
                    if (jQuery(this).is(":checked")) {
                        jQuery(checkboxes).each(function() {
                            if (!jQuery(this).is(":checked")) {
                                jQuery(this).attr("checked", "checked").triggerHandler("change");
                            }
                        });
                    } else {
                        if (jQuery(checkboxes).not(":checked").length < 1) {
                            jQuery(checkboxes).each(function() {
                                jQuery(this).removeAttr("checked").triggerHandler("change");
                            });
                        }
                    }
                };

                var checkboxChanged = function() {
                    if (!jQuery(this).is(":checked")) {
                        if (jQuery(checkAll).is(":checked")) {
                            jQuery(checkAll).removeAttr("checked").triggerHandler("change");
                        }
                    }
                };

                if (checkboxes.length > 0 && checkAll.length > 0) {
                    jQuery(checkAll).bind("change.advancedSearchFilters", function() {
                        checkAllChanged.apply(this, []);
                    });
                    jQuery(checkboxes).each(function() {
                        jQuery(this).bind("change.advancedSearchFilters", function() {
                            checkboxChanged.apply(this, []);
                        });
                    });
                }

                jQuery(document).ready(function() {
                    checkAllChanged.apply(jQuery(checkAll)[0], []);
                });
            };
        }

        //image gallery
        init_image_gallery();

        //press release table
        jQuery("table.pressRelease_list").each(function() {
            jQuery("tr:first", this).addClass("first");
        });

        //executive bio page
        //auto Ellipsis
        if (jQuery.fn.autoEllipsis) {
            jQuery(".autoEllipsis").ellipsis();
        }


        //download brochure
        jQuery(".brochureDownload, .checknet_solution").each(function() {
            var h, w, d;
            var elem = this;
            var img = jQuery(".image", elem), imgW = 0, imgH = 0;
            if (img.length) {
                imgW = jQuery(img).outerWidth();
                imgH = jQuery(img).outerHeight();
                if (jQuery(elem).outerHeight() < imgH) {
                    h = jQuery(elem).outerHeight(), d;

                    h -= parseInt(jQuery(elem).css("paddingTop")) || 0;
                    h -= parseInt(jQuery(elem).css("paddingBottom")) || 0;
                    h -= parseInt(jQuery(elem).css("borderTopWidth")) || 0;
                    h -= parseInt(jQuery(elem).css("borderBottomWidth")) || 0;

                    d = imgH - h;
                    if (d > 0) {
                        jQuery(elem).css({
                            height: (h + d) + "px"
                        });
                    }
                }
            }

            jQuery(elem).append("<span class='bdr_tl'></span><span class='bdr_tr'></span><span class='bdr_bl'></span><span class='bdr_br'></span>");

            if (jQuery.browser.msie && jQuery.browser.version < 7) {
                h = jQuery(elem).outerHeight();
                if (h % 2 != 0) {
                    jQuery(".bdr_bl", elem).css("marginBottom", "-1px");
                    jQuery(".bdr_br", elem).css("marginBottom", "-1px");
                }
                w = jQuery(elem).outerWidth();
                if (h % 2 != 0) {
                    jQuery(".bdr_br", elem).css("marginRight", "-1px");
                    jQuery(".bdr_tr", elem).css("marginRight", "-1px");
                }

                jQuery(".bdr_tl, .bdr_tr, .bdr_bl, .bdr_br", elem).pngfix({
                    imageFixSrc: baseurl + "images/x.gif"
                });
            }
        });

        //color box
        if (jQuery.fn.colorbox) {
            jQuery(".colorbox").not(".cboxelement").colorbox({
                iframe: true,
                width: 540,
                height: 480,
                title: false,
                opacity: 0.66,
                close: "close window"
            });

            jQuery(".video_overlay").not(".cboxelement").colorbox({
                iframe: true,
                innerWidth: 740,
                innerHeight: 334,
                title: false,
                opacity: 0.66,
                close: "close window"
            });
        }

		//barkerBoxes  
        //Suki: add 'last' class to last box of barker boxes collection (June 07, 2010) 
        jQuery(".barkerBoxes").each(function() { 
            jQuery(">.barkerBox:last", this).addClass("barkerBox-last"); 
        }); 
  
        //fix Mac FF
        var isMac = (navigator.platform && navigator.platform.toLowerCase().indexOf("mac") >= 0);
        if (isMac && jQuery.browser.mozilla) {
            jQuery(".inputBox-container .customInput").css({ top: "-1px" });
        }
    });
})(jQuery);
