/*
 * jQuery UI AriaTabs (02.06.10)
 * http://github.com/fnagel/jQuery-Accessible-RIA
 *
 * Copyright (c) 2009 Felix Nagel for Namics (Deustchland) GmbH
 * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
 *
 * Depends: ui.core.js 1.8
 *   		ui.tabs.js
 */
(function(a){a.fn.extend(a.ui.tabs.prototype,{_create:function(){var b=this,c=this.options;if(a.address){var e={enable:true,title:{enable:true,split:" | "}};if(!a.isEmptyObject(c.jqAddress))a.extend(true,e,c.jqAddress);else c.jqAddress={};a.extend(true,c.jqAddress,e)}if(a.address&&c.jqAddress.enable)var f="#"+a.address.value().replace("/","");b._tabify(true);b.element.attr("role","application");b.list.attr("role","tablist");for(var d=0;d<b.anchors.length;d++){a.address&&c.jqAddress.enable&&f!="#"&&a(b.anchors[d]).attr("href")==f&&b.select(d);b._ariaInit(d)}b.element.keydown(function(d){if(document.activeElement){var e=document.activeElement.tagName;if(e!=="INPUT"&&e!=="SELECT"&&e!=="TEXTAREA")switch(d.keyCode){case a.ui.keyCode.RIGHT:d.preventDefault();b.select(c.selected+1);break;case a.ui.keyCode.DOWN:d.preventDefault();b.select(c.selected+1);break;case a.ui.keyCode.UP:d.preventDefault();b.select(c.selected-1);break;case a.ui.keyCode.LEFT:d.preventDefault();b.select(c.selected-1);break;case a.ui.keyCode.END:d.preventDefault();b.select(b.anchors.length-1);break;case a.ui.keyCode.HOME:d.preventDefault();b.select(0)}}});a.address&&this.options.jqAddress.enable&&a.address.externalChange(function(e){var d="#"+e.value.replace("/",""),c=0;while(c<b.anchors.length){if(a(b.anchors[c]).attr("href")==d){b.select(c);return}c++}})},_original_load:a.ui.tabs.prototype.load,load:function(b){for(var c=0;c<this.anchors.length;c++){this._ariaSet(c,false);a.data(this.anchors[c],"href.tabs")&&a(this.panels[c]).removeAttr("aria-live").removeAttr("aria-busy")}(a.data(this.anchors[b],"href.tabs")||a(this.anchors[b]).attr("data-isAjax")==="1")&&a(this.panels[b]).attr("aria-live","polite").attr("aria-busy","true");this._original_load(b);if(a.address&&this.options.jqAddress.enable){this.options.jqAddress.title.enable&&a.address.title(a.address.title().split(this.options.jqAddress.title.split)[0]+this.options.jqAddress.title.split+a(this.anchors[b]).text());a.address.value(a(this.anchors[b]).attr("href").replace(/^#/,""))}(a.data(this.anchors[b],"href.tabs")||a(this.anchors[b]).attr("data-isAjax")==="1")&&a(this.panels[b]).attr("aria-busy","false");this._ariaSet(b,true);this._updateVirtualBuffer()},_ariaSet:function(c,b){var d=b?0:-1;a(this.anchors[c]).attr("tabindex",d).attr("aria-selected",b);a(this.panels[c]).attr("aria-hidden",!b).attr("aria-expanded",b)},_ariaInit:function(b){var d=this,c=a(this.panels[b]).attr("id");a(d.anchors[b]).attr("role","tab").attr("aria-controls",c).attr("id",c+"-tab").parent().attr("role","presentation");a(this.panels[b]).attr("role","tabpanel").attr("aria-labelledby",c+"-tab");this.options.collapsible&&a(this.anchors[b]).bind(this.options.event,function(){d._ariaSet(b,!a(d.panels[b]).hasClass("ui-tabs-hide"))})},_original_add:a.ui.tabs.prototype.add,add:function(c,b,a){this._original_add(c,b,a);this.element.attr("aria-live","polite").attr("aria-relevant","additions");if(a){this._ariaInit(a);this._ariaSet(a,false)}else{this._ariaInit(this.anchors.length-1);this._ariaSet(this.anchors.length-1,false)}},_original_remove:a.ui.tabs.prototype.remove,remove:function(a){this._original_remove(a);this.element.attr("aria-live","polite").attr("aria-relevant","removals")},_original_destroy:a.ui.tabs.prototype.destroy,destroy:function(){var b=this,d=this.options;b.element.removeAttr("role").removeAttr("aria-live").removeAttr("aria-relevant");b.list.removeAttr("role");for(var c=0;c<b.anchors.length;c++){a(b.anchors[c]).removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("role").removeAttr("id").removeAttr("tabindex").parent().removeAttr("role");a(b.panels[c]).removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("aria-labelledby").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-relevant").removeAttr("role")}a("body>form #virtualBufferForm").parent().remove();this._original_destroy()},_updateVirtualBuffer:function(){var b=a("body>form #virtualBufferForm");if(b.length)b.val()=="1"?b.val("0"):b.val("1");else{var c='<form><input id="virtualBufferForm" type="hidden" value="1" /></form>';a("body").append(c)}}})})(jQuery)
