/*
 * jQuery history plugin
 *
 * Copyright (c) 2006 Taku Sano (Mikage Sawatari)
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 */
(function($){function History(){this._curHash="";this._callback=function(hash){}}$.extend(History.prototype,{init:function(callback){this._callback=callback;this._curHash=location.hash;if($.browser.msie){if(this._curHash==""){this._curHash="#"}$("body").prepend('<iframe id="jQuery_history" style="display: none;"></iframe>');var iframe=$("#jQuery_history")[0].contentWindow.document;iframe.open();iframe.close();iframe.location.hash=this._curHash}else{if($.browser.safari){this._historyBackStack=[];this._historyBackStack.length=history.length;this._historyForwardStack=[];this._isFirst=true;this._dontCheck=false}}this._callback(this._curHash.replace(/^#/,""));setInterval(this._check,100)},add:function(hash){this._historyBackStack.push(hash);this._historyForwardStack.length=0;this._isFirst=true},_check:function(){if($.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentDocument||ihistory.contentWindow.document;var current_hash=iframe.location.hash;if(current_hash!=$.history._curHash){location.hash=current_hash;$.history._curHash=current_hash;$.history._callback(current_hash.replace(/^#/,""))}}else{if($.browser.safari){if(!$.history._dontCheck){var historyDelta=history.length-$.history._historyBackStack.length;if(historyDelta){$.history._isFirst=false;if(historyDelta<0){for(var i=0;i<Math.abs(historyDelta);i++){$.history._historyForwardStack.unshift($.history._historyBackStack.pop())}}else{for(var i=0;i<historyDelta;i++){$.history._historyBackStack.push($.history._historyForwardStack.shift())}}var cachedHash=$.history._historyBackStack[$.history._historyBackStack.length-1];if(cachedHash!=undefined){$.history._curHash=location.hash;$.history._callback(cachedHash)}}else{if($.history._historyBackStack[$.history._historyBackStack.length-1]==undefined&&!$.history._isFirst){if(document.URL.indexOf("#")>=0){$.history._callback(document.URL.split("#")[1])}else{$.history._callback("")}$.history._isFirst=true}}}}else{var current_hash=location.hash;if(current_hash!=$.history._curHash){$.history._curHash=current_hash;$.history._callback(current_hash.replace(/^#/,""))}}}},load:function(hash){var newhash;if($.browser.safari){newhash=hash}else{newhash="#"+hash;location.hash=newhash}this._curHash=newhash;if($.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=newhash;this._callback(hash)}else{if($.browser.safari){this._dontCheck=true;this.add(hash);var fn=function(){$.history._dontCheck=false};window.setTimeout(fn,200);this._callback(hash);location.hash=newhash}else{this._callback(hash)}}}});$(document).ready(function(){$.history=new History()})})(jQuery);
