﻿(function($){jQuery.extend({trace:function(msg,isDebug){},highlightAccessKeys:function(options){$(function(){var requiresHighlighting,requiresShiftAlt,accessKeysHighlighted,accessKeyPopups,accessKeyPopupFields,settings;requiresHighlighting= !/opera/.test(navigator.userAgent);if(!requiresHighlighting)return;requiresShiftAlt=$.browser.mozilla;accessKeysHighlighted=false;accessKeyPopups=[];accessKeyPopupFields=[];settings=$.extend({debug:false,highlightClass:"akh__highlighted",popupClass:"akh__popup",highlightMode:"popup",accessKeyTag:"em",offsets:{label:{left: -20,top:2},button:{left: -3,top: -3},anchor:{left:2,top:9},text:{left: -3,top: -3},other:{left: -3,top: -3}}},options);var isSelectorMatch=function(element,selector){return $(element).filter(selector).length==1;};var getOffset=function(element){if(isSelectorMatch(element,"label")){return settings.offsets.label;}else if(isSelectorMatch(element,":button, :submit, :reset, :image")){return settings.offsets.button;}else if(isSelectorMatch(element,"a")){return settings.offsets.anchor;}else if(isSelectorMatch(element,":text, textarea")){return settings.offsets.text;}else{return settings.offsets.other;};};var getPopupLocation=function(element){var popupLocation=$(element).offset();var offset=getOffset(element);popupLocation.left=popupLocation.left+offset.left;popupLocation.top=popupLocation.top+offset.top;return popupLocation;};var createPopup=function(field,accessKey){var popupLocation=getPopupLocation(field);var popup=$(document.createElement("div")).text(accessKey).css("left",popupLocation.left).css("top",popupLocation.top).addClass(settings.popupClass).appendTo("body").get(0);accessKeyPopups.push(popup);accessKeyPopupFields.push(field);return popup;};var clearPopups=function(){$(accessKeyPopups).remove();accessKeyPopups=[];accessKeyPopupFields=[];};var insertAccessKeyTags=function(){$("label[for], label[accesskey]").each(function(){var relatedFieldId="#"+$(this).attr("for");var accessKey=$.trim(relatedFieldId!=="#"?$(relatedFieldId).attr("accesskey"):"");if(typeof(accessKey)==="undefined"||accessKey===""){accessKey=$(this).attr("accesskey");}if(typeof(accessKey)==="undefined"||accessKey==="")return true;var labelHtml=$(this).html();var accessKeyIndex=labelHtml.toUpperCase().indexOf(accessKey.toUpperCase());if(accessKeyIndex<0)return true;var accessKeyMarkup="<"+settings.accessKeyTag+">"+labelHtml.substr(accessKeyIndex,1)+"</"+settings.accessKeyTag+">";var newLabelHtmlLeft=labelHtml.substring(0,accessKeyIndex);var newLabelHtmlRight=labelHtml.substr(accessKeyIndex+1);var newLabelHtml=newLabelHtmlLeft+accessKeyMarkup+newLabelHtmlRight;if(labelHtml.indexOf(accessKeyMarkup)<0)$(this).html(newLabelHtml);});};var createPopups=function(){if(settings.highlightMode=="popup"){clearPopups();var accessKeyPopupFormFields=[];$("label > "+settings.accessKeyTag).each(function(){var text=$(this).text();var label=$(this).parent();var formField=$("#"+label.attr("htmlFor"));var accessKey=formField.attr("accessKey")!=""?formField.attr("accessKey"):label.attr("accessKey");if(text.toUpperCase()==accessKey.toUpperCase()){createPopup(label[0],accessKey);}accessKeyPopupFormFields.push(formField[0]);});$("a[href][accesskey], textarea[accesskey], input[accesskey]").each(function(){if($.inArray(this,accessKeyPopupFormFields)=== -1){createPopup(this,this.accessKey);}});}};var refreshPopups=function(){clearPopups();createPopups();};var doHighlightAccessKeys=function(highlight){if(settings.highlightMode==="popup"){var i=0;$.each(accessKeyPopups,function(){var field=accessKeyPopupFields[i];i++;var popupLocation=getPopupLocation(field);$(this).css("left",popupLocation.left).css("top",popupLocation.top).toggle(highlight);});}else if(settings.highlightMode==="toggleClass"){$("label > "+settings.accessKeyTag).each(function(){var text=$(this).text();var label=$(this).parent();var formField=$("#"+label.attr("htmlFor"));var accessKey=formField.attr("accessKey")!==""?formField.attr("accessKey"):label.attr("accessKey");if(text.toUpperCase()===accessKey.toUpperCase()){$(this).toggleClass(settings.highlightClass,highlight);}});}};var highlightAccessKeys=function(){doHighlightAccessKeys(true);};var unhighlightAccessKeys=function(){doHighlightAccessKeys(false);};$(document).keydown(function(e){$.trace("AccessKeyHighlighter document.keyDown: keyCode="+e.keyCode+", altKey="+e.altKey+", shiftKey="+e.shiftKey,settings.debug);if(e.altKey&&e.keyCode==49){if(blnDisplayingGalleryArea){}}if(e.altKey&&e.keyCode==81){}if(!accessKeysHighlighted&&((e.keyCode==18&& !requiresShiftAlt)||(e.keyCode==16&&e.altKey&&requiresShiftAlt)||(e.keyCode==18&&e.shiftKey&&requiresShiftAlt))){highlightAccessKeys();accessKeysHighlighted=true;}}).keyup(function(e){$.trace("AccessKeyHighlighter document.keyUp: keyCode="+e.keyCode+", altKey="+e.altKey+", shiftKey="+e.shiftKey,settings.debug);if(accessKeysHighlighted){unhighlightAccessKeys();accessKeysHighlighted=false;}});insertAccessKeyTags();createPopups();});$(window).unload(function(){$(document).unbind();$(window).unbind();});}});})(jQuery);
