jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};

;(function($) {

  // Prevent text bullets on slideshows from being selected
  // http://chris-barr.com/entry/disable_text_selection_with_jquery/
  $.extend($.fn.disableTextSelect = function() {
  	return this.each(function(){
  		if($.browser.mozilla){ //Firefox
  			$(this).css('MozUserSelect','none');
  		}else if($.browser.msie){ //IE
  			$(this).bind('selectstart',function(){return false;});
  		}else{ //Opera, etc.
  			$(this).mousedown(function(){return false;});
  		}
  	});
  });
  $('.labels li').disableTextSelect();

})(jQuery);


// This should be broken out as a plugin
/* Copyright (c) 2009 Jon Rohan (http://dinnermint.org)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Version: 1.0.0
 * Written with jQuery 1.3.2
 */
(function($){$.fn.ghostText = function() {
  return this.each(function(){
    var text = $(this).attr("placeholder");
    if(text!=""&&($(this).val()==""||$(this).val()==text)) {
      $(this).addClass("disabled");
      $(this).val(text);
      $(this).focus(function(){
        $(this).removeClass("disabled");
        if($(this).val()==text) {
          $(this).val("");
        }
      });
      $(this).blur(function(){
        if($(this).val()=="") {
          $(this).val(text);
          $(this).addClass("disabled");
        }
      });
    }
  });
};})(jQuery)


;(function($) {

/**
* helper variables and function
*/
$.ifixpng = function(customPixel) {
$.ifixpng.pixel = customPixel;
};

$.ifixpng.regexp = {
bg: /^url\(["']?(.*\.png([?].*)?)["']?\)$/i,
img: /.*\.png([?].*)?$/i
},

$.ifixpng.getPixel = function() {
return $.ifixpng.pixel || 'images/pixel.gif';
};

var hack = {
base	: $('base').attr('href'),
ltie7	: $.browser.msie && $.browser.version < 7,
filter	: function(src) {
return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='"+src+"')";
}
};

$.fn.ifixpng = hack.ltie7 ? function() {
function fixImage(image, source, width, height, hidden) {
image.css({filter:hack.filter(source), width: width, height: height})
.attr({src:$.ifixpng.getPixel()})
.positionFix();
}

return this.each(function() {
var $$ = $(this);
if ($$.is('img') || $$.is('input')) { // hack image tags present in dom
var source, img;
if (this.src && this.src.match($.ifixpng.regexp.img)) { // make sure it is png image
// use source tag value if set 
source = (hack.base && this.src.substring(0,1)!='/' && this.src.indexOf(hack.base) === -1) ? hack.base + this.src : this.src;
// If the width is not set, we have a problem; the image is not probably visible or not loaded
// and we need a work around.
if (!this.width || !this.height) {
$(new Image()).one('load', function() {
fixImage($$, source, this.width, this.height);
$(this).remove();
}).attr('src', source);
// If the image already has dimensions (it's loaded and visible) we can fix it straight away.
} else fixImage($$, source, this.width, this.height);
}
} else if (this.style) { // hack png css properties present inside css
var imageSrc = $$.css('backgroundImage');
// Background repeated images we cannot fix unfortunately
if (imageSrc && imageSrc.match($.ifixpng.regexp.bg) && this.currentStyle.backgroundRepeat == 'no-repeat') {
imageSrc = RegExp.$1;
var x = this.currentStyle.backgroundPositionX || 0, y = this.currentStyle.backgroundPositionY || 0;
if (x || y) {
var css = {}, img;
if (typeof x != 'undefined') {
if (x == 'left') css.left = 0; 
// if right is 0, we have to check if the parent has an odd width, because of an IE bug
else if (x == 'right') css.right = $$.width() % 2 === 1 ? -1 : 0;
else css.left = x;
}
if (typeof y != 'undefined') {
// if bottom is 0, we have to check if the parent has an odd height, because of an IE bug
if (y == 'bottom') css.bottom = $$.height() % 2 === 1 ? -1 : 0; 
else if (y == 'top') css.top = 0;
else css.top = y;
}
img = new Image();
$(img).one('load', function() {
var x,y, expr = {}, prop;
// Now the image is loaded for sure, we can see if the background position needs fixing with an expression (in case of percentages)
if (/center|%/.test(css.top)) {
expr.top = "(this.parentNode.offsetHeight - this.offsetHeight) * " + (css.top == 'center' ? 0.5 : (parseInt(css.top) / 100));
delete css.top;
}
if (/center|%/.test(css.left)) {
expr.left = "(this.parentNode.offsetWidth - this.offsetWidth) * " + (css.left == 'center' ? 0.5 : (parseInt(css.left) / 100));
delete css.left;
}
// Let's add the helper DIV which will simulate the background image
$$.positionFix().css({backgroundImage: 'none'}).prepend(
$('<div></div>').css(css).css({
width: this.width,
height: this.height,
position: 'absolute',
filter: hack.filter(imageSrc)
})
);
if (expr.top || expr.left) {
var elem = $$.children(':first')[0];
for (prop in expr) elem.style.setExpression(prop, expr[prop], 'JavaScript');
}
$(this).remove();
});
img.src = imageSrc;
} else {
$$.css({backgroundImage: 'none', filter:hack.filter(imageSrc)});
}
}
}
});
} : function() { return this; };

/**
* positions selected item relatively
*/
$.fn.positionFix = function() {
return this.each(function() {
var $$ = $(this);
if ($$.css('position') != 'absolute') $$.css({position:'relative'});
});
};

})(jQuery);

/*
 * jQuery validation plug-in 1.6
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 Jörn Zaefferer
 *
 * $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function($){$.extend($.fn,{validate:function(options){if(!this.length){options&&options.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return;}var validator=$.data(this[0],'validator');if(validator){return validator;}validator=new $.validator(options,this[0]);$.data(this[0],'validator',validator);if(validator.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){validator.cancelSubmit=true;});if(validator.settings.submitHandler){this.find("input, button").filter(":submit").click(function(){validator.submitButton=this;});}this.submit(function(event){if(validator.settings.debug)event.preventDefault();function handle(){if(validator.settings.submitHandler){if(validator.submitButton){var hidden=$("<input type='hidden'/>").attr("name",validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);}validator.settings.submitHandler.call(validator,validator.currentForm);if(validator.submitButton){hidden.remove();}return false;}return true;}if(validator.cancelSubmit){validator.cancelSubmit=false;return handle();}if(validator.form()){if(validator.pendingRequest){validator.formSubmitted=true;return false;}return handle();}else{validator.focusInvalid();return false;}});}return validator;},valid:function(){if($(this[0]).is('form')){return this.validate().form();}else{var valid=true;var validator=$(this[0].form).validate();this.each(function(){valid&=validator.element(this);});return valid;}},removeAttrs:function(attributes){var result={},$element=this;$.each(attributes.split(/\s/),function(index,value){result[value]=$element.attr(value);$element.removeAttr(value);});return result;},rules:function(command,argument){var element=this[0];if(command){var settings=$.data(element.form,'validator').settings;var staticRules=settings.rules;var existingRules=$.validator.staticRules(element);switch(command){case"add":$.extend(existingRules,$.validator.normalizeRule(argument));staticRules[element.name]=existingRules;if(argument.messages)settings.messages[element.name]=$.extend(settings.messages[element.name],argument.messages);break;case"remove":if(!argument){delete staticRules[element.name];return existingRules;}var filtered={};$.each(argument.split(/\s/),function(index,method){filtered[method]=existingRules[method];delete existingRules[method];});return filtered;}}var data=$.validator.normalizeRules($.extend({},$.validator.metadataRules(element),$.validator.classRules(element),$.validator.attributeRules(element),$.validator.staticRules(element)),element);if(data.required){var param=data.required;delete data.required;data=$.extend({required:param},data);}return data;}});$.extend($.expr[":"],{blank:function(a){return!$.trim(""+a.value);},filled:function(a){return!!$.trim(""+a.value);},unchecked:function(a){return!a.checked;}});$.validator=function(options,form){this.settings=$.extend({},$.validator.defaults,options);this.currentForm=form;this.init();};$.validator.format=function(source,params){if(arguments.length==1)return function(){var args=$.makeArray(arguments);args.unshift(source);return $.validator.format.apply(this,args);};if(arguments.length>2&&params.constructor!=Array){params=$.makeArray(arguments).slice(1);}if(params.constructor!=Array){params=[params];}$.each(params,function(i,n){source=source.replace(new RegExp("\\{"+i+"\\}","g"),n);});return source;};$.extend($.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:$([]),errorLabelContainer:$([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(element){this.lastActive=element;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,element,this.settings.errorClass,this.settings.validClass);this.errorsFor(element).hide();}},onfocusout:function(element){if(!this.checkable(element)&&(element.name in this.submitted||!this.optional(element))){this.element(element);}},onkeyup:function(element){if(element.name in this.submitted||element==this.lastElement){this.element(element);}},onclick:function(element){if(element.name in this.submitted)this.element(element);else if(element.parentNode.name in this.submitted)this.element(element.parentNode)},highlight:function(element,errorClass,validClass){$(element).addClass(errorClass).removeClass(validClass);},unhighlight:function(element,errorClass,validClass){$(element).removeClass(errorClass).addClass(validClass);}},setDefaults:function(settings){$.extend($.validator.defaults,settings);},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:$.validator.format("Please enter no more than {0} characters."),minlength:$.validator.format("Please enter at least {0} characters."),rangelength:$.validator.format("Please enter a value between {0} and {1} characters long."),range:$.validator.format("Please enter a value between {0} and {1}."),max:$.validator.format("Please enter a value less than or equal to {0}."),min:$.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=$(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var groups=(this.groups={});$.each(this.settings.groups,function(key,value){$.each(value.split(/\s/),function(index,name){groups[name]=key;});});var rules=this.settings.rules;$.each(rules,function(key,value){rules[key]=$.validator.normalizeRule(value);});function delegate(event){var validator=$.data(this[0].form,"validator");validator.settings["on"+event.type]&&validator.settings["on"+event.type].call(validator,this[0]);}$(this.currentForm).delegate("focusin focusout keyup",":text, :password, :file, select, textarea",delegate).delegate("click",":radio, :checkbox, select, option",delegate);if(this.settings.invalidHandler)$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler);},form:function(){this.checkForm();$.extend(this.submitted,this.errorMap);this.invalid=$.extend({},this.errorMap);if(!this.valid())$(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid();},checkForm:function(){this.prepareForm();for(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){this.check(elements[i]);}return this.valid();},element:function(element){element=this.clean(element);this.lastElement=element;this.prepareElement(element);this.currentElements=$(element);var result=this.check(element);if(result){delete this.invalid[element.name];}else{this.invalid[element.name]=true;}if(!this.numberOfInvalids()){this.toHide=this.toHide.add(this.containers);}this.showErrors();return result;},showErrors:function(errors){if(errors){$.extend(this.errorMap,errors);this.errorList=[];for(var name in errors){this.errorList.push({message:errors[name],element:this.findByName(name)[0]});}this.successList=$.grep(this.successList,function(element){return!(element.name in errors);});}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors();},resetForm:function(){if($.fn.resetForm)$(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass);},numberOfInvalids:function(){return this.objectLength(this.invalid);},objectLength:function(obj){var count=0;for(var i in obj)count++;return count;},hideErrors:function(){this.addWrapper(this.toHide).hide();},valid:function(){return this.size()==0;},size:function(){return this.errorList.length;},focusInvalid:function(){if(this.settings.focusInvalid){try{$(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus();}catch(e){}}},findLastActive:function(){var lastActive=this.lastActive;return lastActive&&$.grep(this.errorList,function(n){return n.element.name==lastActive.name;}).length==1&&lastActive;},elements:function(){var validator=this,rulesCache={};return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in rulesCache||!validator.objectLength($(this).rules()))return false;rulesCache[this.name]=true;return true;});},clean:function(selector){return $(selector)[0];},errors:function(){return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext);},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=$([]);this.toHide=$([]);this.currentElements=$([]);},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers);},prepareElement:function(element){this.reset();this.toHide=this.errorsFor(element);},check:function(element){element=this.clean(element);if(this.checkable(element)){element=this.findByName(element.name)[0];}var rules=$(element).rules();var dependencyMismatch=false;for(method in rules){var rule={method:method,parameters:rules[method]};try{var result=$.validator.methods[method].call(this,element.value.replace(/\r/g,""),element,rule.parameters);if(result=="dependency-mismatch"){dependencyMismatch=true;continue;}dependencyMismatch=false;if(result=="pending"){this.toHide=this.toHide.not(this.errorsFor(element));return;}if(!result){this.formatAndAdd(element,rule);return false;}}catch(e){this.settings.debug&&window.console&&console.log("exception occured when checking element "+element.id
+", check the '"+rule.method+"' method",e);throw e;}}if(dependencyMismatch)return;if(this.objectLength(rules))this.successList.push(element);return true;},customMetaMessage:function(element,method){if(!$.metadata)return;var meta=this.settings.meta?$(element).metadata()[this.settings.meta]:$(element).metadata();return meta&&meta.messages&&meta.messages[method];},customMessage:function(name,method){var m=this.settings.messages[name];return m&&(m.constructor==String?m:m[method]);},findDefined:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==undefined)return arguments[i];}return undefined;},defaultMessage:function(element,method){return this.findDefined(this.customMessage(element.name,method),this.customMetaMessage(element,method),!this.settings.ignoreTitle&&element.title||undefined,$.validator.messages[method],"<strong>Warning: No message defined for "+element.name+"</strong>");},formatAndAdd:function(element,rule){var message=this.defaultMessage(element,rule.method),theregex=/\$?\{(\d+)\}/g;if(typeof message=="function"){message=message.call(this,rule.parameters,element);}else if(theregex.test(message)){message=jQuery.format(message.replace(theregex,'{$1}'),rule.parameters);}this.errorList.push({message:message,element:element});this.errorMap[element.name]=message;this.submitted[element.name]=message;},addWrapper:function(toToggle){if(this.settings.wrapper)toToggle=toToggle.add(toToggle.parent(this.settings.wrapper));return toToggle;},defaultShowErrors:function(){for(var i=0;this.errorList[i];i++){var error=this.errorList[i];this.settings.highlight&&this.settings.highlight.call(this,error.element,this.settings.errorClass,this.settings.validClass);this.showLabel(error.element,error.message);}if(this.errorList.length){this.toShow=this.toShow.add(this.containers);}if(this.settings.success){for(var i=0;this.successList[i];i++){this.showLabel(this.successList[i]);}}if(this.settings.unhighlight){for(var i=0,elements=this.validElements();elements[i];i++){this.settings.unhighlight.call(this,elements[i],this.settings.errorClass,this.settings.validClass);}}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show();},validElements:function(){return this.currentElements.not(this.invalidElements());},invalidElements:function(){return $(this.errorList).map(function(){return this.element;});},showLabel:function(element,message){var label=this.errorsFor(element);if(label.length){label.removeClass().addClass(this.settings.errorClass);label.attr("generated")&&label.html(message);}else{label=$("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(element),generated:true}).addClass(this.settings.errorClass).html(message||"");if(this.settings.wrapper){label=label.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();}if(!this.labelContainer.append(label).length)this.settings.errorPlacement?this.settings.errorPlacement(label,$(element)):label.insertAfter(element);}if(!message&&this.settings.success){label.text("");typeof this.settings.success=="string"?label.addClass(this.settings.success):this.settings.success(label);}this.toShow=this.toShow.add(label);},errorsFor:function(element){var name=this.idOrName(element);return this.errors().filter(function(){return $(this).attr('for')==name});},idOrName:function(element){return this.groups[element.name]||(this.checkable(element)?element.name:element.id||element.name);},checkable:function(element){return/radio|checkbox/i.test(element.type);},findByName:function(name){var form=this.currentForm;return $(document.getElementsByName(name)).map(function(index,element){return element.form==form&&element.name==name&&element||null;});},getLength:function(value,element){switch(element.nodeName.toLowerCase()){case'select':return $("option:selected",element).length;case'input':if(this.checkable(element))return this.findByName(element.name).filter(':checked').length;}return value.length;},depend:function(param,element){return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true;},dependTypes:{"boolean":function(param,element){return param;},"string":function(param,element){return!!$(param,element.form).length;},"function":function(param,element){return param(element);}},optional:function(element){return!$.validator.methods.required.call(this,$.trim(element.value),element)&&"dependency-mismatch";},startRequest:function(element){if(!this.pending[element.name]){this.pendingRequest++;this.pending[element.name]=true;}},stopRequest:function(element,valid){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[element.name];if(valid&&this.pendingRequest==0&&this.formSubmitted&&this.form()){$(this.currentForm).submit();this.formSubmitted=false;}else if(!valid&&this.pendingRequest==0&&this.formSubmitted){$(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=false;}},previousValue:function(element){return $.data(element,"previousValue")||$.data(element,"previousValue",{old:null,valid:true,message:this.defaultMessage(element,"remote")});}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(className,rules){className.constructor==String?this.classRuleSettings[className]=rules:$.extend(this.classRuleSettings,className);},classRules:function(element){var rules={};var classes=$(element).attr('class');classes&&$.each(classes.split(' '),function(){if(this in $.validator.classRuleSettings){$.extend(rules,$.validator.classRuleSettings[this]);}});return rules;},attributeRules:function(element){var rules={};var $element=$(element);for(method in $.validator.methods){var value=$element.attr(method);if(value){rules[method]=value;}}if(rules.maxlength&&/-1|2147483647|524288/.test(rules.maxlength)){delete rules.maxlength;}return rules;},metadataRules:function(element){if(!$.metadata)return{};var meta=$.data(element.form,'validator').settings.meta;return meta?$(element).metadata()[meta]:$(element).metadata();},staticRules:function(element){var rules={};var validator=$.data(element.form,'validator');if(validator.settings.rules){rules=$.validator.normalizeRule(validator.settings.rules[element.name])||{};}return rules;},normalizeRules:function(rules,element){$.each(rules,function(prop,val){if(val===false){delete rules[prop];return;}if(val.param||val.depends){var keepRule=true;switch(typeof val.depends){case"string":keepRule=!!$(val.depends,element.form).length;break;case"function":keepRule=val.depends.call(element,element);break;}if(keepRule){rules[prop]=val.param!==undefined?val.param:true;}else{delete rules[prop];}}});$.each(rules,function(rule,parameter){rules[rule]=$.isFunction(parameter)?parameter(element):parameter;});$.each(['minlength','maxlength','min','max'],function(){if(rules[this]){rules[this]=Number(rules[this]);}});$.each(['rangelength','range'],function(){if(rules[this]){rules[this]=[Number(rules[this][0]),Number(rules[this][1])];}});if($.validator.autoCreateRanges){if(rules.min&&rules.max){rules.range=[rules.min,rules.max];delete rules.min;delete rules.max;}if(rules.minlength&&rules.maxlength){rules.rangelength=[rules.minlength,rules.maxlength];delete rules.minlength;delete rules.maxlength;}}if(rules.messages){delete rules.messages}return rules;},normalizeRule:function(data){if(typeof data=="string"){var transformed={};$.each(data.split(/\s/),function(){transformed[this]=true;});data=transformed;}return data;},addMethod:function(name,method,message){$.validator.methods[name]=method;$.validator.messages[name]=message!=undefined?message:$.validator.messages[name];if(method.length<3){$.validator.addClassRules(name,$.validator.normalizeRule(name));}},methods:{required:function(value,element,param){if(!this.depend(param,element))return"dependency-mismatch";switch(element.nodeName.toLowerCase()){case'select':var val=$(element).val();return val&&val.length>0;case'input':if(this.checkable(element))return this.getLength(value,element)>0;default:return $.trim(value).length>0;}},remote:function(value,element,param){if(this.optional(element))return"dependency-mismatch";var previous=this.previousValue(element);if(!this.settings.messages[element.name])this.settings.messages[element.name]={};previous.originalMessage=this.settings.messages[element.name].remote;this.settings.messages[element.name].remote=previous.message;param=typeof param=="string"&&{url:param}||param;if(previous.old!==value){previous.old=value;var validator=this;this.startRequest(element);var data={};data[element.name]=value;$.ajax($.extend(true,{url:param,mode:"abort",port:"validate"+element.name,dataType:"json",data:data,success:function(response){validator.settings.messages[element.name].remote=previous.originalMessage;var valid=response===true;if(valid){var submitted=validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted=submitted;validator.successList.push(element);validator.showErrors();}else{var errors={};var message=(previous.message=response||validator.defaultMessage(element,"remote"));errors[element.name]=$.isFunction(message)?message(value):message;validator.showErrors(errors);}previous.valid=valid;validator.stopRequest(element,valid);}},param));return"pending";}else if(this.pending[element.name]){return"pending";}return previous.valid;},minlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)>=param;},maxlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)<=param;},rangelength:function(value,element,param){var length=this.getLength($.trim(value),element);return this.optional(element)||(length>=param[0]&&length<=param[1]);},min:function(value,element,param){return this.optional(element)||value>=param;},max:function(value,element,param){return this.optional(element)||value<=param;},range:function(value,element,param){return this.optional(element)||(value>=param[0]&&value<=param[1]);},email:function(value,element){return this.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);},url:function(value,element){return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);},date:function(value,element){return this.optional(element)||!/Invalid|NaN/.test(new Date(value));},dateISO:function(value,element){return this.optional(element)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);},number:function(value,element){return this.optional(element)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);},digits:function(value,element){return this.optional(element)||/^\d+$/.test(value);},creditcard:function(value,element){if(this.optional(element))return"dependency-mismatch";if(/[^0-9-]+/.test(value))return false;var nCheck=0,nDigit=0,bEven=false;value=value.replace(/\D/g,"");for(var n=value.length-1;n>=0;n--){var cDigit=value.charAt(n);var nDigit=parseInt(cDigit,10);if(bEven){if((nDigit*=2)>9)nDigit-=9;}nCheck+=nDigit;bEven=!bEven;}return(nCheck%10)==0;},accept:function(value,element,param){param=typeof param=="string"?param.replace(/,/g,'|'):"png|jpe?g|gif";return this.optional(element)||value.match(new RegExp(".("+param+")$","i"));},equalTo:function(value,element,param){var target=$(param).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){$(element).valid();});return value==target.val();}}});$.format=$.validator.format;})(jQuery);;(function($){var ajax=$.ajax;var pendingRequests={};$.ajax=function(settings){settings=$.extend(settings,$.extend({},$.ajaxSettings,settings));var port=settings.port;if(settings.mode=="abort"){if(pendingRequests[port]){pendingRequests[port].abort();}return(pendingRequests[port]=ajax.apply(this,arguments));}return ajax.apply(this,arguments);};})(jQuery);;(function($){$.each({focus:'focusin',blur:'focusout'},function(original,fix){$.event.special[fix]={setup:function(){if($.browser.msie)return false;this.addEventListener(original,$.event.special[fix].handler,true);},teardown:function(){if($.browser.msie)return false;this.removeEventListener(original,$.event.special[fix].handler,true);},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments);}};});$.extend($.fn,{delegate:function(type,delegate,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments);}});},triggerEvent:function(type,target){return this.triggerHandler(type,[$.event.fix({type:type,target:target})]);}})})(jQuery);

(function(a){a.fn.extend({autocomplete:function(b,c){var d=typeof b=="string";c=a.extend({},a.Autocompleter.defaults,{url:d?b:null,data:d?null:b,delay:d?a.Autocompleter.defaults.delay:10,max:c&&!c.scroll?10:150},c);c.highlight=c.highlight||function(e){return e};c.formatMatch=c.formatMatch||c.formatItem;return this.each(function(){new a.Autocompleter(this,c)})},result:function(b){return this.bind("result",b)},search:function(b){return this.trigger("search",[b])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(b){return this.trigger("setOptions",[b])},unautocomplete:function(){return this.trigger("unautocomplete")}});a.Autocompleter=function(l,g){var c={UP:38,RIGHT:39,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var b=a(l).attr("autocomplete","off").addClass(g.inputClass);var j;var p="";var m=a.Autocompleter.Cache(g);var e=0;var u;var x={mouseDownOnSelect:true};var r=a.Autocompleter.Select(g,l,d,x);var w;a.browser.opera&&a(l.form).bind("submit.autocomplete",function(){if(w){w=false;return false}});b.bind((a.browser.opera?"keypress":"keydown")+".autocomplete",function(y){u=y.keyCode;switch(y.keyCode){case c.UP:y.preventDefault();if(r.visible()){r.prev()}else{t(0,true)}break;case c.DOWN:y.preventDefault();if(r.visible()){r.next()}else{t(0,true)}break;case c.PAGEUP:y.preventDefault();if(r.visible()){r.pageUp()}else{t(0,true)}break;case c.PAGEDOWN:y.preventDefault();if(r.visible()){r.pageDown()}else{t(0,true)}break;case g.multiple&&a.trim(g.multipleSeparator)==","&&c.COMMA:case c.TAB:case c.RIGHT:case c.RETURN:if(d()){y.preventDefault();w=true;return false}break;case c.ESC:r.hide();break;default:clearTimeout(j);j=setTimeout(t,g.delay);break}}).focus(function(){e++}).blur(function(){e=0;if(!x.mouseDownOnSelect){s()}}).click(function(){if(e++>1&&!r.visible()){t(0,true)}}).bind("search",function(){var y=(arguments.length>1)?arguments[1]:null;function z(D,C){var A;if(C&&C.length){for(var B=0;B<C.length;B++){if(C[B].result.toLowerCase()==D.toLowerCase()){A=C[B];break}}}if(typeof y=="function"){y(A)}else{b.trigger("result",A&&[A.data,A.value])}}a.each(h(b.val()),function(A,B){f(B,z,z)})}).bind("flushCache",function(){m.flush()}).bind("setOptions",function(){a.extend(g,arguments[1]);if("data" in arguments[1]){m.populate()}}).bind("unautocomplete",function(){r.unbind();b.unbind();a(l.form).unbind(".autocomplete")});function d(){var z=r.selected();if(!z){return false}var y=z.result;p=y;if(g.multiple){var A=h(b.val());if(A.length>1){y=A.slice(0,A.length-1).join(g.multipleSeparator)+g.multipleSeparator+y}y+=g.multipleSeparator}b.val(y);v();b.trigger("result",[z.data,z.value]);return true}function t(A,z){if(u==c.DEL){r.hide();return}var y=b.val();if(!z&&y==p){return}p=y;y=i(y);if(y.length>=g.minChars){b.addClass(g.loadingClass);if(!g.matchCase){y=y.toLowerCase()}f(y,k,v)}else{n();r.hide()}}function h(z){if(!z){return[""]}var A=z.split(g.multipleSeparator);var y=[];a.each(A,function(B,C){if(a.trim(C)){y[B]=a.trim(C)}});return y}function i(y){if(!g.multiple){return y}var z=h(y);return z[z.length-1]}function q(y,z){if(g.autoFill&&(i(b.val()).toLowerCase()==y.toLowerCase())&&u!=c.BACKSPACE){b.val(b.val()+z.substring(i(p).length));a.Autocompleter.Selection(l,p.length,p.length+z.length)}}function s(){clearTimeout(j);j=setTimeout(v,200)}function v(){var y=r.visible();r.hide();clearTimeout(j);n();if(g.mustMatch){b.search(function(z){if(!z){if(g.multiple){var A=h(b.val()).slice(0,-1);b.val(A.join(g.multipleSeparator)+(A.length?g.multipleSeparator:""))}else{b.val("")}}})}if(y){a.Autocompleter.Selection(l,l.value.length,l.value.length)}}function k(z,y){if(y&&y.length&&e){n();r.display(y,z);q(z,y[0].value);r.show()}else{v()}}function f(z,B,y){if(!g.matchCase){z=z.toLowerCase()}var A=m.load(z);if(A&&A.length){B(z,A)}else{if((typeof g.url=="string")&&(g.url.length>0)){var C={timestamp:+new Date()};a.each(g.extraParams,function(D,E){C[D]=typeof E=="function"?E():E});a.ajax({mode:"abort",port:"autocomplete"+l.name,dataType:g.dataType,url:g.url,data:a.extend({q:i(z),limit:g.max},C),success:function(E){var D=g.parse&&g.parse(E)||o(E);m.add(z,D);B(z,D)}})}else{r.emptyList();y(z)}}}function o(B){var y=[];var A=B.split("\n");for(var z=0;z<A.length;z++){var C=a.trim(A[z]);if(C){C=C.split("|");y[y.length]={data:C,value:C[0],result:g.formatResult&&g.formatResult(C,C[0])||C[0]}}}return y}function n(){b.removeClass(g.loadingClass)}};a.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(b){return b[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(c,b){return c.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:true,scrollHeight:180};a.Autocompleter.Cache=function(c){var f={};var d=0;function h(l,k){if(!c.matchCase){l=l.toLowerCase()}var j=l.indexOf(k);if(j==-1){return false}return j==0||c.matchContains}function g(j,i){if(d>c.cacheLength){b()}if(!f[j]){d++}f[j]=i}function e(){if(!c.data){return false}var k={},j=0;if(!c.url){c.cacheLength=1}k[""]=[];for(var m=0,l=c.data.length;m<l;m++){var p=c.data[m];p=(typeof p=="string")?[p]:p;var o=c.formatMatch(p,m+1,c.data.length);if(o===false){continue}var n=o.charAt(0).toLowerCase();if(!k[n]){k[n]=[]}var q={value:o,data:p,result:c.formatResult&&c.formatResult(p)||o};k[n].push(q);if(j++<c.max){k[""].push(q)}}a.each(k,function(r,s){c.cacheLength++;g(r,s)})}setTimeout(e,25);function b(){f={};d=0}return{flush:b,add:g,populate:e,load:function(n){if(!c.cacheLength||!d){return null}if(!c.url&&c.matchContains){var m=[];for(var j in f){if(j.length>0){var o=f[j];a.each(o,function(p,k){if(h(k.value,n)){m.push(k)}})}}return m}else{if(f[n]){return f[n]}else{if(c.matchSubset){for(var l=n.length-1;l>=c.minChars;l--){var o=f[n.substr(0,l)];if(o){var m=[];a.each(o,function(p,k){if(h(k.value,n)){m[m.length]=k}});return m}}}}}return null}}};a.Autocompleter.Select=function(e,j,l,p){var i={ACTIVE:"ac_over"};var k,f=-1,r,m="",s=true,c,o;function n(){if(!s){return}c=a("<div/>").hide().addClass(e.resultsClass).css("position","absolute").insertAfter(j);o=a("<ul/>").appendTo(c).mouseover(function(t){if(q(t).nodeName&&q(t).nodeName.toUpperCase()=="LI"){f=a("li",o).removeClass(i.ACTIVE).index(q(t));a(q(t)).addClass(i.ACTIVE)}clearTimeout(window.fade_tab_on_tab_hover_out);clearTimeout(window.fade_panel_on_tab_hover_out);clearTimeout(window.fade_panel_on_panel_hover_out);a("#panels .panel").stop();a("#panels .panel").css("opacity","1");a("#license").addClass("hovered")}).click(function(t){a(q(t)).addClass(i.ACTIVE);l();j.focus();return false}).mousedown(function(){p.mouseDownOnSelect=true}).mouseup(function(){p.mouseDownOnSelect=false});if(e.width>0){c.css("width",e.width)}s=false}function q(u){var t=u.target;while(t&&t.tagName!="LI"){t=t.parentNode}if(!t){return[]}return t}function h(t){k.slice(f,f+1).removeClass(i.ACTIVE);g(t);var v=k.slice(f,f+1).addClass(i.ACTIVE);if(e.scroll){var u=0;k.slice(0,f).each(function(){u+=this.offsetHeight});if((u+v[0].offsetHeight-o.scrollTop())>o[0].clientHeight){o.scrollTop(u+v[0].offsetHeight-o.innerHeight())}else{if(u<o.scrollTop()){o.scrollTop(u)}}}}function g(t){f+=t;if(f<0){f=k.size()-1}else{if(f>=k.size()){f=0}}}function b(t){return e.max&&e.max<t?e.max:t}function d(){o.empty();var u=b(r.length);for(var v=0;v<u;v++){if(!r[v]){continue}var w=e.formatItem(r[v].data,v+1,u,r[v].value,m);if(w===false){continue}var t=a("<li/>").html(e.highlight(w,m)).addClass(v%2==0?"ac_even":"ac_odd").appendTo(o)[0];a.data(t,"ac_data",r[v])}k=o.find("li");if(e.selectFirst){k.slice(0,1).addClass(i.ACTIVE);f=0}if(a.fn.bgiframe){o.bgiframe()}}return{display:function(u,t){n();r=u;m=t;d();if(u[0].result=="No results"){a("#ajax_content").empty().hide();a("#license_contact_info").show()}else{a("#ajax_content").empty().hide();a("#license_contact_info").hide()}},next:function(){h(1)},prev:function(){h(-1)},pageUp:function(){if(f!=0&&f-8<0){h(-f)}else{h(-8)}},pageDown:function(){if(f!=k.size()-1&&f+8>k.size()){h(k.size()-1-f)}else{h(8)}},hide:function(){c&&c.hide();k&&k.removeClass(i.ACTIVE);f=-1},visible:function(){return c&&c.is(":visible")},current:function(){return this.visible()&&(k.filter("."+i.ACTIVE)[0]||e.selectFirst&&k[0])},show:function(){var v=a(j).offset();c.css({width:typeof e.width=="string"||e.width>0?e.width:a(j).width(),clear:"left",position:"relative"}).show();if(e.scroll){o.scrollTop(0);o.css({maxHeight:e.scrollHeight,overflow:"auto"});if(a.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var t=0;k.each(function(){t+=this.offsetHeight});var u=t>e.scrollHeight;o.css("height",u?e.scrollHeight:t);if(!u){k.width(o.width()-parseInt(k.css("padding-left"))-parseInt(k.css("padding-right")))}}}},selected:function(){var t=k&&k.filter("."+i.ACTIVE).removeClass(i.ACTIVE);return t&&t.length&&a.data(t[0],"ac_data")},emptyList:function(){o&&o.empty()},unbind:function(){c&&c.remove()}}};a.Autocompleter.Selection=function(d,e,c){if(d.createTextRange){var b=d.createTextRange();b.collapse(true);b.moveStart("character",e);b.moveEnd("character",c);b.select()}else{if(d.setSelectionRange){d.setSelectionRange(e,c)}else{if(d.selectionStart){d.selectionStart=e;d.selectionEnd=c}}}d.focus()}})(jQuery);

var KEY={UP:38,RIGHT:39,DOWN:40,SPACE:32,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var current=0;jQuery(document).ready(function(){function d(f){return f[0]}function b(f){}function c(f){}function e(f){if(!f[1]||f[1]==""){return false}a(f[1],f[0])}function a(g,f){if(g.indexOf("browse")==-1){dcsMultiTrack("DCS.dcsuri","/leadgensearch","WT.ti","BMI.com | LeadGen Search","DCSext.q",f);window.location.href=g+"?q="+php_urlencode(f)}else{jQuery("#ajax_content").fadeOut().load(g.substr(18),function(){jQuery("#ajax_content").fadeIn(function(){jQuery("#ajax_content div.leadgen_content p a:eq(0)").focus().addClass("focused")});current=0;jQuery("#ajax_content div.leadgen_content p a").click(function(i){i.preventDefault();var h=jQuery(this).attr("href");a(h,f)}).bind((jQuery.browser.opera?"keypress":"keydown"),function(i){var h=jQuery("#ajax_content div.leadgen_content p a").length-1;switch(i.keyCode){case KEY.UP:i.preventDefault();jQuery("#ajax_content div.leadgen_content p a:eq("+current+")").removeClass("focused");current=(current==0)?h:current-1;jQuery("#ajax_content div.leadgen_content p a:eq("+current+")").focus().addClass("focused");break;case KEY.DOWN:i.preventDefault();jQuery("#ajax_content div.leadgen_content p a:eq("+current+")").removeClass("focused");current=(current==h)?0:current+1;jQuery("#ajax_content div.leadgen_content p a:eq("+current+")").focus().addClass("focused");break;case KEY.SPACE:case KEY.RIGHT:case KEY.TAB:case KEY.RETURN:i.preventDefault();jQuery(this).click();break;case KEY.ESC:i.preventDefault();jQuery(this).blur();break;default:i.preventDefault();break}}).bind("mouseout",function(h){jQuery(this).blur().removeClass("focused")})})}}jQuery("#licensing-keywords").flushCache();jQuery("#licensing-keywords").autocomplete("/leadgen/test",{formatItem:d,onItemSelect:b,scrollHeight:120}).result(function(g,f){e(f)})});function php_urlencode(a){a=escape(a);return a.replace(/[*+\/@]|%20/g,function(b){switch(b){case"*":b="%2A";break;case"+":b="%2B";break;case"/":b="%2F";break;case"@":b="%40";break;case"$":b="%24";break;case":":b="%3A";break;case";":b="%3B";break;case"&":b="%26";break;case"?":b="%3F";break;case"=":b="%3D";break;case",":b="%2C";break;case"%20":b="+";break}return b})};

/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();


// Switch to no conflict mode
jQuery.noConflict();

// What is BMI? panel
function what_is_bmi_panel() {

    // Set default cookie    
  var what_is_bmi = jQuery.cookie('what_is_bmi');
  if (what_is_bmi == null) {
    jQuery.cookie('what_is_bmi', 'show', { path: '/', domain: 'bmi.com', expires: 3650 });
    var what_is_bmi = jQuery.cookie('what_is_bmi');
  }
  
  // Show panel if user hasn't closed it
  if (what_is_bmi == 'show') {
    jQuery('.what_is_bmi').css('display','block');
  }
  
  // Hide panel when close box is clicked
  jQuery('.what_is_bmi img').click(function() {
    jQuery('.what_is_bmi').slideUp(400);
    jQuery.cookie('what_is_bmi', 'hide', { path: '/', domain: 'bmi.com', expires: 3650 });
  });
  
}

// Show header panel
function show_header_panel() {

  var fade_tab_on_tab_hover_out;
  var fade_panel_on_tab_hover_out;
  var fade_panel_on_panel_hover_out;

  // Preload header images
  var image1 = jQuery('<img />').attr('src', '/images/app/header_line.gif');
  var image2 = jQuery('<img />').attr('src', '/images/app/header_line_hover.gif');
  var image3 = jQuery('<img />').attr('src', '/images/app/header_panel.png');
  var image4 = jQuery('<img />').attr('src', '/images/app/go.png');
  var image5 = jQuery('<img />').attr('src', '/images/app/button_left.png');
  var image6 = jQuery('<img />').attr('src', '/images/app/button_right.png');

  // TABS
  jQuery("#nav li").hover(
    
    // HOVER OVER
    function () {
      
      // Get active tab/panel
      var active = jQuery(this).attr("id");
      
      // If active panel is fading out, stop fade and reset opacity
      clearTimeout(fade_panel_on_panel_hover_out); 
      jQuery('#panels .panel.' + active).stop();
      jQuery('#panels .panel.' + active).css('opacity', '1');
      
      // Remove highlight from other tabs
      jQuery('#nav li').each(function (i) {
        if (jQuery(this).attr("id") != active) {
          jQuery(this).removeClass('hovered');
        }
      });
            
      // Hide all panels (except the panel for the selected tab)
      jQuery('#panels .panel').each(function (i) {
        if (jQuery(this).attr("class").split(' ')[0] != active) {
          jQuery(this).hide();
        }
      });
      
      // Show active panel
      jQuery('#panels .' + active).show();
    }, 
    
    // HOVER OUT
    function () {
      
      // Get active tab/panel
      var active = jQuery(this).attr("id");
      
      // Remove highlight from tab
      fade_tab_on_tab_hover_out = setTimeout(function() {jQuery('#' + active).removeClass('hovered');}, 50);       
      
      // Fade out panel (if tab or panel isn't selected)
      fade_panel_on_tab_hover_out = setTimeout(function() {jQuery('#panels .panel.' + active).fadeOut(500);}, 50);             
      
    }
  );
  
  // PANELS
  jQuery("#panels .panel").hover(
    
    // HOVER OVER
    function () {
      
      // Get active tab/panel
      var active = jQuery(this).attr("class").split(' ')[0];
            
      // Stop panels from fading (if mousing down from tabs)
      clearTimeout(fade_tab_on_tab_hover_out); 
      clearTimeout(fade_panel_on_tab_hover_out);
      clearTimeout(fade_panel_on_panel_hover_out); 
      
      // If panel is fading out, stop fade and reset opacity
      jQuery('#panels .panel').stop();
      jQuery('#panels .panel').css('opacity', '1');
    
      // Select tab (since we're not hovering over it)
      jQuery("#" + active).addClass('hovered');
            
    }, 
    
    // HOVER OUT
    function () {
      // Get active tab/panel
      var active = jQuery(this).attr("class").split(' ')[0];
            
      // Fade out panel and tab
      fade_panel_on_panel_hover_out = setTimeout(function() {
        
        jQuery("#" + active).removeClass('hovered');
        jQuery('#panels .panel.' + active).fadeOut(1000);
        
      }, 700);       
      
    }
  );
  
}

// Show form hints (with inputs using "title" attribute)
function show_form_hints() {
  var el = jQuery('input[Title]');

  // Show display text
  el.each(function(i) {
    jQuery(this).attr('value', jQuery(this).attr('title'));
  });

  // Hook up the blur & focus
  el.focus(function() {
    if (jQuery(this).attr('value') == jQuery(this).attr('title'))
      jQuery(this).attr('value', '');
  }).blur(function() {
    if (jQuery(this).attr('value') == '')
      jQuery(this).attr('value', jQuery(this).attr('title'));
  });
}

// Switches content in tab sets
function switch_tabs() {
  
  jQuery('#flipbox a').hover(
    function() {
    
    // Get a list of tab names
    var tab_names = Array();
    jQuery('#flipbox a').map(function(){
      tab_names.push(jQuery(this).attr("id").replace("tab_",""));
    });

    // Hide all tabs
    for (i = 0; i < tab_names.length; i++) {
      jQuery('#' + tab_names[i]).hide();
      jQuery('#tab_' + tab_names[i]).parent().removeClass('active');
    }
    
    // Show the selected tab
    jQuery(jQuery(this).attr("id").replace("tab_","#")).show();
    jQuery(this).parent().addClass('active');
    
    },
    
    function() {
    }
  );
  
}

// Toggles visibility of sidebar lists
// in News, Events, Benefits, etc.
function toggle_sidebar_lists() {
  
  // Toggle single list
  jQuery('div h6').click(function() {
    jQuery(this).next().toggle();
  });
  
  // Toggle all lists
  jQuery('.toggle').click(function() {
    if (jQuery('.toggle a').text() == 'expand') {
      jQuery('.toggle a').text('collapse');
      jQuery('div h6').next().show();
    } else {
      jQuery('.toggle a').text('expand');
      jQuery('div h6').next().hide();
    }
  });
  
}

// Highlights the Events mini calendar on hover
function highlight_mini_calendar_on_hover() {
  
  jQuery('#highlight_mini_calendar').hover(
    function() {
      jQuery('#highlight_mini_calendar table').addClass('mini_calendar_over');
    }, function() {
      jQuery('#highlight_mini_calendar table').removeClass('mini_calendar_over');
    }
  );

}

// Switches the Events calendar to the selected month
function switch_calendar_to_selected_month() {
  
  jQuery('#calendar_selector').change(function() {
  	location.href = jQuery('#calendar_selector').val();
  });
  
  jQuery('#highlight_mini_calendar').click(function() {
  	location.href = jQuery('#highlight_mini_calendar').attr('href');
  });
  
}

// Replaces breadcrumb page title headline with Flash animation
function animate_page_title() {
	var title = jQuery("#title")[0];
	
	if (title) {
    var flashvars = {};
    var params = {};
    params.wmode = "transparent";
    params.quality = "high";
    params.bgcolor = "#FFFFFF";
    var attributes = {};
    swfobject.embedSWF('/flash/title.swf?title=' + 
                        title.innerHTML, 
                        "title", 
                        "200", 
                        "20", 
                        "8", 
                        false, 
                        flashvars, 
                        params, 
                        attributes);
	}
}

function search_tool() {
  
  // Switch to website search
  jQuery('.website').click(function() {
    jQuery('.repertoire').attr('checked', false);
    jQuery('#website').show();
    jQuery('#repertoire').hide();
  });
  
  // Switch to repertoire search
  jQuery('.repertoire').click(function() {
    jQuery('.website').attr('checked', false);
    jQuery('#website').hide();
    jQuery('#repertoire').show();
  });
  
  // Keep search query fields in sync
  jQuery('#web_search').change(function() {
  	jQuery('#rep_search').val(jQuery('#web_search').val());
  });
  jQuery('#rep_search').change(function() {
  	jQuery('#web_search').val(jQuery('#rep_search').val());
  });

}

function make_pngs_work_in_explorer() {
  
  // Set transparent pixel
  jQuery.ifixpng('/images/app/pixel.gif');
  
  // Set pngs to make transparent
  jQuery('img, #overlay, .go').ifixpng();

}

function make_form_submits_work_in_explorer() {
  // http://thefutureoftheweb.com/blog/submit-a-form-in-ie-with-enter
  
  // Force IE to submit forms when enter/return is pressed
  // (but on login form check that user and pass are valid)
  jQuery('.ols_login input').keydown(function(e){
            
      // Process enter/return key press
      if (e.keyCode == 13) {
        
        // Login Form
        if (jQuery('.ols_login').length > 0) {
          if (jQuery('#realuser').val() != '' && jQuery('#realpass').val() != '') {
            if (jQuery('#realuser').val() != 'Username' && jQuery('#realpass').val() != 'Password') {
              jQuery(this).parents('form').submit();
            }
          }
        
        // Other forms
        } else {
          jQuery(this).parents('form').submit();
        }
        
        // Disable stupid IE beep sound
        return false;
      }
  });

}

function toggle_login_panel_go_button() {
  
  // Login panel go button
  jQuery('.ols_login input').keyup(function(e){
    
    // Toggle button state if inputs are valid
    if (jQuery('#realuser').val() != '' && jQuery('#realpass').val() != '') {
      if (jQuery('#realuser').val() != 'Username' && jQuery('#realpass').val() != 'Password') {
        jQuery('.ols_login .go').attr('src', '/images/app/go.png');
      } else {
        jQuery('.ols_login .go').attr('src', '/images/app/go_faded.png');
      }
    } else {
      jQuery('.ols_login .go').attr('src', '/images/app/go_faded.png');
    }
          
  }); 
  
}

function slideshow() {

  // Get active image and label
  var $active_image = jQuery('#feature .images li.active');
  var $active_label = jQuery('#feature .labels li.active');

  // Get next image and label
  var $next_image =  $active_image.next().length ? $active_image.next()
      : jQuery('#feature .images li:first');
  var $next_label =  $active_label.next().length ? $active_label.next()
      : jQuery('#feature .labels li:first');
             
  // Animate between images
  $next_image.css({opacity: 0.0})
    .addClass('active')
    .animate({opacity: 1.0}, 700, function() {
        $active_image.removeClass('active');
    });
  
  // Animate between labels
  $active_label.removeClass('active');
  $next_label.addClass('active');
  $active_label.slideUp(300, function() {
    $active_label.appendTo("#feature .labels").show();
  });
    
}

function reshuffle_slides(selected_label) {
  
  // Reshuffle (only if new label is clicked)
  if (jQuery('#feature .labels li.active').attr("id") != selected_label.attr("id")) {
    
    // IMAGES

      // Grab active image
      var $active_image = jQuery('#feature .images li.active');
  
      // Grab next image
      if (selected_label.attr("id").length > 6) {
        next = "#image" + selected_label.attr("id").substring(5,7);
      } else {
        next = "#image" + selected_label.attr("id").substring(5,6);
      }
      
      var $next_image = jQuery(next);
  
      // Animate between images
      $next_image.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 300, function() {
            $active_image.removeClass('active');
        });
      
    // LABELS
    
      // Grab active label
      var $active_label = jQuery('#feature .labels li.active');
        
      // Remove active class
      $active_label.removeClass('active');
      
      // Set active class to selected label
      selected_label.addClass('active');
      
      // Move previous labels to bottom of stack
      jQuery(jQuery.makeArray(selected_label.prevAll()).reverse()).each(function() {
        jQuery(this).slideUp(200, function() {
          jQuery(this).appendTo("#feature .labels").show();
        });
      });
  
  }

}

function genres_slideshow() {
  
  // Get active image and label
  var $active_image = jQuery('#features.genres .feature.active');

  // Get next image and label
  var $next_image =  $active_image.next().length ? $active_image.next()
      : jQuery('#features.genres .feature:first');
             
  // Animate between images
  $next_image.css({opacity: 0.0})
    .addClass('active')
    .animate({opacity: 1.0}, 700, function() {
        $active_image.removeClass('active');
    });
  
}

function rotate_indie_album_sets() {

  if (jQuery("#set1").is(':visible')) {
    jQuery("#set1").fadeOut(500);
    jQuery("#set2").fadeIn(500);
  } else {
    jQuery("#set1").fadeIn(500);
    jQuery("#set2").fadeOut(500);      
  }

}

function handle_mobile_clients() {
  
  // Switch to mobile web app (if requested)
  jQuery('.switch_to_mobile').live('click', function(){
    jQuery.cookie('mobile', null, { path: '/', domain: 'bmi.com'});
    location.href = "/mobile";
  });
  
  // Supported mobile browsers
  if (navigator.userAgent.match(/Android/i) ||
      navigator.userAgent.match(/webOS/i) || 
      navigator.userAgent.match(/iPhone/i) || 
      navigator.userAgent.match(/iPod/i)) {
        
      // External links (with target=_blank)
      if (location.href.match(/mobile=skip/i)) {
                
        // Hide switcher
        jQuery(document).ready(function(){
          jQuery("#switcher").hide();
        });
        
      // Normal links
      } else {
        
        // Switch to mobile for some URLs
        var current_path = window.location.pathname;
        var routes = new Array();
        var mobile_enabled = false;

        // List of mobile optimized URLs
        routes.push('/');
        routes.push('/about');
        routes.push('/benefits');
        routes.push('/business');
        routes.push('/creators');
        routes.push('/events');
        routes.push('/license');
        routes.push('/login');
        routes.push('/join');
        routes.push('/musicworld');
        routes.push('/news/all_news');
        routes.push('/search');
        routes.push('/video');

        // Enable mobile app if matching URL is found
        for (x in routes) {
          if (current_path.match("^" + routes[x] + "\/?$")) {
            mobile_enabled = true;
            break;
          }
        }

        // Redirect news entry pages to mobile template
        if (current_path.match('^/news/entry/(\\d+)$')) {
          jQuery("body").hide();
          window.stop();
          window.location.pathname = '/news/entry_mobile/' + RegExp.$1;
          throw new Error('redirecting to mobile');
        }
        
        // Redirect contact page to mobile page
        if (current_path.match('^/about/entry/533331/test')) {
          jQuery("body").hide();
          window.stop();
          window.location.pathname = '/mobile/load/creators_offices';
          throw new Error('redirecting to mobile');
        }

        // Redirect event entry pages to mobile template
        if (current_path.match('^/events/entry/(\\d+)*$')) {
          jQuery("body").hide();
          window.stop();
          window.location.pathname = '/events/entry_mobile/' + RegExp.$1;
          throw new Error('redirecting to mobile');
        }
        
        if (mobile_enabled == true) {
          
          // Add mobile switcher        
          var html = '<p id="switcher"><span>';
          html = html + '<a href="#" class="switch_to_mobile">Switch to mobile version</a></span></p>';
          jQuery("#version_selector").after(html);

          // Show version selector overlay
          if (jQuery.cookie('mobile') == 'skip') {
          } else {
            jQuery("#version_selector").show();

            jQuery("#select_desktop").click(function(event){
              jQuery.cookie("mobile", "skip", { path: '/', domain: 'bmi.com', expires: 30 });
              jQuery("#version_selector").slideUp(300);
            });
            jQuery("#select_mobile").click(function(event){
              jQuery.cookie("mobile", null);
              location.href = "/mobile";
            });
          }

        }

      }
  }
}

// Let's roll!
jQuery(document).ready(function(){
    
  show_header_panel();
  
  show_form_hints();
  
  animate_page_title();
  
  search_tool();

  switch_calendar_to_selected_month();
  
  highlight_mini_calendar_on_hover();
  
  toggle_sidebar_lists();
  
  switch_tabs();

  what_is_bmi_panel();

  toggle_login_panel_go_button();

  make_pngs_work_in_explorer();
  
  make_form_submits_work_in_explorer();
    
  handle_mobile_clients();
  
  // Show form ghost text
  jQuery(".ghost_text").ghostText();
  
  // Genres slideshow (if slides are present)
  if (jQuery('#features').length) {    
    setInterval("genres_slideshow()", 7000 );
  }
  
  // Slideshow (if slides are present)
  if (jQuery('#feature').length) {
    
    // Slideshow
    slides = setInterval(slideshow, 7000);
    
    // Jump to slide
    jQuery("#feature .labels li").click(function () { 
      
      // Stop slideshow
      clearInterval(slides);

      // Reshuffle slides
      reshuffle_slides(jQuery(this));
                
      // Restart slideshow at current position
      slides =  setInterval(slideshow, 7000);
      
    });
    
  }
  
  // Indie Page album sets
  if (jQuery('#indie_header').length) {

    // Show detail when hovering over album cover
    jQuery("#indie_header .set img").hover(
      function () {
        set = jQuery(this).parent().attr("id").substring(3,4);
        detail = (jQuery(this).parent().children().index(this) + 1);        
        jQuery("#details" + set + " .detail" + detail).fadeIn(100);
      }
    );

    // Hide detail when hovering out
    jQuery("#indie_header .details div").hover(
      function () {
        jQuery('#indie_header .details div').not(this).hide();
        clearInterval(indie_slides);
      },
      function () {
        jQuery(this).fadeOut(100);
        indie_slides = setInterval("rotate_indie_album_sets();", 5000);
      }
    );

    // Rotate slides
    indie_slides = setInterval("rotate_indie_album_sets();", 5000);
  
  }
  
});



// SLIDER
// Slideshow with JSON and jQuery
// Patrick Crowley


// FUNCTIONS

function load_slides_from(scope, limit) {

  // Prevent IE8 from loading two slideshows
  if (jQuery(".slides").length > 0) {
    return;
  }
    
  // Assign variables
  var scope = scope;
  var limit = limit;
  var params = [];
  var json_url = "/photos/json";
  
  // Build params
  if (limit > 0) {
    params.push("limit=" + limit);
  }
  
  if (location.pathname == "/") {
    params.push("status=not_home");
  }
  
  if (typeof scope === 'string') {
    if (scope != 'all') {
      if (scope.indexOf("|") > 0) {
        params.push("category=" + scope);
      } else {
        params.push("event=" + scope);
      }
    }
  }
  
  if (typeof scope === 'number') {
    params.push("category=" + scope);
  }
  
  if (params.length > 0) {
    params = "?" + params.join('&');
  }
  
  // Add empty slider markup
  load_slider_markup();
  
  // Number of slides
  var number_of_slides = 0;

  // Load JSON feed and cache
  jQuery.getJSON(json_url + params,
    function(data){
            
      jQuery(".slider").append('<div class="counter" data="' + data.photos.length + '">&nbsp;</div');
      
      jQuery.each(data.photos, function(i,item) {
        var $slides = jQuery('.slides');
                
        // Update event name and caption for first slide
        if (i == 0) {
          jQuery(".event_name").find("span").html(item.event);
          jQuery(".caption").find("span").html(item.caption);
        }
        
        // Add new slide
        $slides.append('<li class="slide"></li>');
        
        // Save slide metadata
        var $slide = jQuery('.slides').find("li").last();
        var host = "http://www.bmi.com";
        $slide.attr("link", host + item.link);
        $slide.attr("event", item.event);
        $slide.attr("caption", item.caption);
        $slide.attr("src", host + encodeURI(item.photo));
        $slide.attr("cheat_crop", item.cheat_crop);
        
        // Activate first slide
        if (i == 0) {
          var $first_slide = jQuery('.slides').find("li").first();
          
          $first_slide.addClass("active_slide");
          $first_slide.append('<img src="" />');
          $first_slide.find("img").attr("src", host + encodeURI(item.photo));
          
          // Apply cheat_crop to first slide if needed
          if ($first_slide.attr("cheat_crop") != '') {
            jQuery($first_slide).find("img").css("margin-top", "-" + $first_slide.attr("cheat_crop") + "px");
          }
        }
        
      });
    });
    
  // Start slideshow
  slider_show = setInterval(rotate_slides, 5000);
  
}

function advance_slides_to(direction, speed) {
  var $active_slide = jQuery('.slides li.active_slide');
  var speed = typeof(speed) != 'undefined' ? speed : 700;

  // Next slide
  if (direction == 'next') {
    var $next_slide =  $active_slide.next().length ? $active_slide.next()
      : jQuery('.slides li:first');
    
    if ($next_slide.find("img").length == 0) {
      $next_slide.append('<img src=' + $next_slide.attr("src") +  ' />');
      var $next_image = $next_slide.find("img");
      jQuery($next_image).load(function () {
        switch_to_next_slide($next_slide, $active_slide, speed);
      });
    } else {
      switch_to_next_slide($next_slide, $active_slide, speed);
    }
    
  }
  
  // Previous slide
  if (direction == 'previous') {
    var $previous_slide =  $active_slide.prev().length ? $active_slide.prev()
      : jQuery('.slides li:last');
    
    if ($previous_slide.find("img").length == 0) {
      $previous_slide.append('<img src=' + $previous_slide.attr("src") +  ' />');
      var $previous_image = $previous_slide.find("img");
      jQuery($previous_image).load(function () {
        switch_to_previous_slide($previous_slide, $active_slide, speed);
      });
    } else {
      switch_to_previous_slide($previous_slide, $active_slide, speed);
    }
  }
  
}

function load_slider_markup() {
  document.write('<div class="slider"></div>');
  jQuery('.slider').append('<div class="event_name"><span></span></div>');
  jQuery('.slider').append('<div class="navigation"></div>');
  jQuery('.navigation').append('<a href="#" class="view_photo"><span>View photo</span></a>');
  jQuery('.navigation').append('<a href="#" class="previous"></a>');
  jQuery('.navigation').append('<a href="#" class="next"></a>');
  jQuery('.slider').append('<div class="curtain"></div>');
  jQuery('.slider').append('<ul class="slides"></ul>');
  jQuery('.slider').append('<div class="caption"><span></span></div>');
}

function resize_caption_for(slide, height) {
  slide.find('.caption').css('margin-top', function(index) {
    return height - slide.find('.caption').height();
  });
}

function rotate_slides() {
  if (jQuery('.slides').children().length > 1) {
    advance_slides_to('next');
  }
}

function switch_to_next_slide(next_slide, active_slide, speed) {
  next_slide.css({opacity: 0.0})
    .addClass('active_slide')
    .animate({opacity: 1.0}, speed, function() {
      active_slide.removeClass('active_slide');
  });
  update_meta_information_for(next_slide);
}

function switch_to_previous_slide(previous_slide, active_slide, speed) {
  previous_slide.css({opacity: 1.0})
  previous_slide.addClass('active_slide');
  active_slide.css({opacity: 1.0})
    .animate({opacity: 0}, speed, function() {
      active_slide.removeClass('active_slide');
  });
  update_meta_information_for(previous_slide);
}

function update_meta_information_for(slide) {
  jQuery(".event_name").find("span").html(slide.attr("event"));
  jQuery(".caption").find("span").html(slide.attr("caption"));
  if (slide.attr("cheat_crop") != '') {
    jQuery(slide).find("img").css("margin-top", "-" + slide.attr("cheat_crop") + "px");
  }
}


// BEHAVIOR

jQuery(document).ready(function() {
  
  // Fade in first slide and nav
  jQuery(".caption").ready(function () { 
    
    // Show slide navigation on hover
    jQuery(".navigation").hover(function(){
      jQuery(this).fadeTo(300, 1.0);
     },function(){
        jQuery(this).fadeTo(500, 0);
    });

    // Jump to next slide
    jQuery(".next").click(function () {
      if (jQuery("li").is(":animated")) {
        return false;
      }
      clearInterval(slider_show);
      advance_slides_to('next', 350);
      return false;
  	});

    // Jump to previous slide
    jQuery(".previous").click(function () {
      if (jQuery("li").is(":animated")) {
        return false;
      }
      clearInterval(slider_show);
      advance_slides_to('previous', 350);
      return false;
  	});

    // Jump to image link if clicked
    jQuery(".view_photo").click(function () { 
      location.href = jQuery('.active_slide').attr('link');
    });
    
    // Animate navigation
    jQuery('.navigation a').animate({opacity: 1.0}, 1400, function() {
      jQuery('.event_name span').animate({opacity: 1.0}, 1000);
      jQuery('.caption span').animate({opacity: 0.6}, 1000);
      jQuery('.curtain').animate({opacity: 0}, 1000, function() {
        jQuery('.curtain').hide();
      });
    });
  
  });

});


