Skip to content

Commit

Permalink
MooTools is now supported.
Browse files Browse the repository at this point in the history
  • Loading branch information
balupton committed Jan 20, 2011
1 parent a667824 commit 8f6dc2a
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ Licensed under the New BSD License, Copyright 2011 Benjamin Arthur Lupton

- jQuery
- Prototype
- MooTools

### Unsupported

- Dojo
- MooTools

## Browsers

Expand Down
4 changes: 2 additions & 2 deletions demo/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
<body>
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript">jQuery.noConflict()</script>
<script type="text/javascript" src="scripts/prototype.js"></script>
<script type="text/javascript" src="scripts/mootools.js"></script>
<script type="text/javascript" src="../scripts/uncompressed/history.js"></script>
<script type="text/javascript" src="../scripts/uncompressed/history.adapter.prototype.js"></script>
<script type="text/javascript" src="../scripts/uncompressed/history.adapter.mootools.js"></script>
<script type="text/javascript" src="scripts/demo.js"></script>

<div id="wrap">
Expand Down
121 changes: 121 additions & 0 deletions scripts/uncompressed/history.adapter.mootools.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
// History.js MooTools Adapter
// New-BSD License, Copyright 2011 Benjamin Arthur Lupton <contact@balupton.com>

(function(MooTools,window,undefined){

// --------------------------------------------------------------------------
// Initialise

// Localise Globals
var
History = window.History||{},
history = window.history;

// Check Existence of Adapter
if ( typeof History.Adapter !== 'undefined' ) {
throw new Error('History.js Adapter has already been emulated...');
}

// Add the Adapter
History.Adapter = {

/**
* History.Adapter.getBrowserFlag()
* @return [msie,webkit,mozilla,opera]
*/
getBrowserFlag: function(){
var
flags_out = ['msie','mozilla','webkit','webkit','opera'],
flags_in = ['ie','firefox','safari','chrome','opera'],
result = null;

flags_in.each(function(i,flag){
if ( Browser[flag]||false ) {
result = flags_out[i];
return false;
}
});

return result;
},

/**
* History.Adapter.getBrowserMajorVersion()
* @return integer
*/
getBrowserMajorVersion: function(){
var version = null;
switch ( true ) {
case Browser.ie6:
version = 6;
break;
case Browser.ie7:
version = 7;
break;
case Browser.ie8:
version = 8;
break;
case Browser.ie:
version = 9;
break;
case Browser.firefox2:
version = 2;
break;
case Browser.firefox3:
version = 3;
break;
case Browser.firefox:
version = 4;
break;
case Browser.safari3:
version = 3;
break;
case Browser.safari4:
version = 4;
break;
case Browser.safari:
version = 5;
break;
case Browser.chrome:
version = 8;
break;
case Browser.opera:
version = 10;
break
}

return version;
},

/**
* History.Adapter.bind(el,event,callback)
* @param element
* @param string event
* @param function callback
* @return element
*/
bind: function(el,event,callback){
var El = typeof el === 'string' ? document.id(el) : el;
return El.addEvent(event,callback);
},

/**
* History.Adapter.trigger(el,event,data)
* @param element
* @param string event
* @param object data
* @return element
*/
trigger: function(el,event,data){
var El = typeof el === 'string' ? document.id(el) : el;
return El.fireEvent(event,data||{});
}
};

// Check Load Status
if ( typeof History.init !== 'undefined' ) {
// History.js loaded faster than the Adapter, Fire init
History.init();
}

})(MooTools,window);

0 comments on commit 8f6dc2a

Please sign in to comment.