jquery_mb_extruder 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +61 -0
- data/Rakefile +2 -0
- data/jquery_mb_extruder.gemspec +24 -0
- data/lib/jquery_mb_extruder.rb +7 -0
- data/lib/jquery_mb_extruder/version.rb +3 -0
- data/vendor/assets/images/black_op_30.png +0 -0
- data/vendor/assets/images/blue_op_75.png +0 -0
- data/vendor/assets/images/browser.png +0 -0
- data/vendor/assets/images/extruder_bgnd.png +0 -0
- data/vendor/assets/images/extruder_blank.png +0 -0
- data/vendor/assets/images/extruder_bottom.png +0 -0
- data/vendor/assets/images/extruder_flap.png +0 -0
- data/vendor/assets/images/extruder_header_bgnd.png +0 -0
- data/vendor/assets/images/extruder_left.png +0 -0
- data/vendor/assets/images/extruder_left_flap.png +0 -0
- data/vendor/assets/images/extruder_voice.png +0 -0
- data/vendor/assets/images/extruder_voiceHover.png +0 -0
- data/vendor/assets/images/fuzz.gif +0 -0
- data/vendor/assets/images/optionsPanel.png +0 -0
- data/vendor/assets/images/orange_op_75.png +0 -0
- data/vendor/assets/images/red_op_50.png +0 -0
- data/vendor/assets/images/settingsBtn.png +0 -0
- data/vendor/assets/javascripts/jquery.hoverIntent.min.js +21 -0
- data/vendor/assets/javascripts/jquery.mb.YTPlayer.js +1022 -0
- data/vendor/assets/javascripts/jquery.mb.extruder.jquery.json +42 -0
- data/vendor/assets/javascripts/jquery.mb.flipText.js +120 -0
- data/vendor/assets/javascripts/mbExtruder.js +521 -0
- data/vendor/assets/stylesheets/YTPlayer.css +240 -0
- data/vendor/assets/stylesheets/mbExtruder.css +21 -0
- data/vendor/assets/stylesheets/mbExtruder.less +311 -0
- metadata +120 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
{
|
2
|
+
"name": "jquery.mb.extruder",
|
3
|
+
"title": "jQuery mb.extruder",
|
4
|
+
"description": "This plugin lets you easily build a sliding panel for any kind of content; it has all the functionalities built-in for menu and sub-menu panels with an accordion effect, and you can get the content via ajax.",
|
5
|
+
"keywords": [
|
6
|
+
"menu",
|
7
|
+
"ajax",
|
8
|
+
"sliding",
|
9
|
+
"panel"
|
10
|
+
],
|
11
|
+
"version": "2.5.5",
|
12
|
+
"author": {
|
13
|
+
"name": "Pupunzi (Matteo Bicocchi)",
|
14
|
+
"email": "matteo@open-lab.com",
|
15
|
+
"url": "http://pupunzi.com"
|
16
|
+
},
|
17
|
+
"maintainers": [
|
18
|
+
{
|
19
|
+
"name": "Pupunzi (Matteo Bicocchi)",
|
20
|
+
"email": "matteo@open-lab.com",
|
21
|
+
"url": "http://pupunzi.open-lab.com"
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"licenses": [
|
25
|
+
{
|
26
|
+
"type": "MIT",
|
27
|
+
"url": "https://github.com/pupunzi/jquery.mb.extruder/blob/master/licenses/MIT-LICENSE.txt"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"type": "GPL",
|
31
|
+
"url": "https://github.com/pupunzi/jquery.mb.extruder/blob/master/licenses/GPL-LICENSE.txt"
|
32
|
+
}
|
33
|
+
],
|
34
|
+
"bugs": "https://github.com/pupunzi/jquery.mb.extruder/issues",
|
35
|
+
"homepage": "http://pupunzi.open-lab.com/mb-jquery-components/jquery-mb-extruder/",
|
36
|
+
"demo": "http://pupunzi.com/#mb.components/mb.extruder/extruder.html",
|
37
|
+
"docs": "https://github.com/pupunzi/jquery.mb.extruder/wiki",
|
38
|
+
"download": "http://pupunzi.open-lab.com/mb-jquery-components/jquery-mb-extruder/",
|
39
|
+
"dependencies": {
|
40
|
+
"jquery": ">=1.8"
|
41
|
+
}
|
42
|
+
}
|
@@ -0,0 +1,120 @@
|
|
1
|
+
/*
|
2
|
+
* ******************************************************************************
|
3
|
+
* jquery.mb.components
|
4
|
+
* file: jquery.mb.flipText.js
|
5
|
+
*
|
6
|
+
* Copyright (c) 2001-2014. Matteo Bicocchi (Pupunzi);
|
7
|
+
* Open lab srl, Firenze - Italy
|
8
|
+
* email: matteo@open-lab.com
|
9
|
+
* site: http://pupunzi.com
|
10
|
+
* blog: http://pupunzi.open-lab.com
|
11
|
+
* http://open-lab.com
|
12
|
+
*
|
13
|
+
* Licences: MIT, GPL
|
14
|
+
* http://www.opensource.org/licenses/mit-license.php
|
15
|
+
* http://www.gnu.org/licenses/gpl.html
|
16
|
+
*
|
17
|
+
* last modified: 28/01/14 22.05
|
18
|
+
* *****************************************************************************
|
19
|
+
*/
|
20
|
+
|
21
|
+
|
22
|
+
/*Browser detection patch*/
|
23
|
+
if (!jQuery.browser) {
|
24
|
+
jQuery.browser = {}, jQuery.browser.mozilla = !1, jQuery.browser.webkit = !1, jQuery.browser.opera = !1, jQuery.browser.safari = !1, jQuery.browser.chrome = !1, jQuery.browser.msie = !1;
|
25
|
+
var nAgt = navigator.userAgent;
|
26
|
+
jQuery.browser.ua = nAgt, jQuery.browser.name = navigator.appName, jQuery.browser.fullVersion = "" + parseFloat(navigator.appVersion), jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10);
|
27
|
+
var nameOffset, verOffset, ix;
|
28
|
+
if (-1 != (verOffset = nAgt.indexOf("Opera")))jQuery.browser.opera = !0, jQuery.browser.name = "Opera", jQuery.browser.fullVersion = nAgt.substring(verOffset + 6), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)); else if (-1 != (verOffset = nAgt.indexOf("MSIE")))jQuery.browser.msie = !0, jQuery.browser.name = "Microsoft Internet Explorer", jQuery.browser.fullVersion = nAgt.substring(verOffset + 5); else if (-1 != nAgt.indexOf("Trident")) {
|
29
|
+
jQuery.browser.msie = !0, jQuery.browser.name = "Microsoft Internet Explorer";
|
30
|
+
var start = nAgt.indexOf("rv:") + 3, end = start + 4;
|
31
|
+
jQuery.browser.fullVersion = nAgt.substring(start, end)
|
32
|
+
} else-1 != (verOffset = nAgt.indexOf("Chrome")) ? (jQuery.browser.webkit = !0, jQuery.browser.chrome = !0, jQuery.browser.name = "Chrome", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7)) : -1 != (verOffset = nAgt.indexOf("Safari")) ? (jQuery.browser.webkit = !0, jQuery.browser.safari = !0, jQuery.browser.name = "Safari", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf("AppleWebkit")) ? (jQuery.browser.webkit = !0, jQuery.browser.name = "Safari", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf("Firefox")) ? (jQuery.browser.mozilla = !0, jQuery.browser.name = "Firefox", jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)) : (nameOffset = nAgt.lastIndexOf(" ") + 1) < (verOffset = nAgt.lastIndexOf("/")) && (jQuery.browser.name = nAgt.substring(nameOffset, verOffset), jQuery.browser.fullVersion = nAgt.substring(verOffset + 1), jQuery.browser.name.toLowerCase() == jQuery.browser.name.toUpperCase() && (jQuery.browser.name = navigator.appName));
|
33
|
+
-1 != (ix = jQuery.browser.fullVersion.indexOf(";")) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix)), -1 != (ix = jQuery.browser.fullVersion.indexOf(" ")) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix)), jQuery.browser.majorVersion = parseInt("" + jQuery.browser.fullVersion, 10), isNaN(jQuery.browser.majorVersion) && (jQuery.browser.fullVersion = "" + parseFloat(navigator.appVersion), jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10)), jQuery.browser.version = jQuery.browser.majorVersion
|
34
|
+
}
|
35
|
+
|
36
|
+
(function($) {
|
37
|
+
var isIE=$.browser.msie;
|
38
|
+
jQuery.fn.encHTML = function() {
|
39
|
+
return this.each(function(){
|
40
|
+
var me = $(this);
|
41
|
+
var html = me.text();
|
42
|
+
me.text(html.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/'/g, escape("'")).replace(/"/g,escape('"')));
|
43
|
+
// me.text(html.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/'/g, "’").replace(/"/g,"“"));
|
44
|
+
});
|
45
|
+
};
|
46
|
+
$.mbflipText= {
|
47
|
+
author:"Matteo Bicocchi",
|
48
|
+
version:"1.1",
|
49
|
+
flipText:function(tb){
|
50
|
+
var UTF8encoded=$("meta[http-equiv=Content-Type]").attr("content") && $("meta[http-equiv=Content-Type]").attr("content").indexOf("utf-8")>-1;
|
51
|
+
return this.each(function(){
|
52
|
+
var el= $(this);
|
53
|
+
var h="";
|
54
|
+
var w="";
|
55
|
+
|
56
|
+
var label="";
|
57
|
+
var bgcol=(el.css("background-color") && el.css("background-color") != "rgba(0, 0, 0, 0)") ? el.css("background-color"):"#fff";
|
58
|
+
var fontsize= parseInt(el.css('font-size'))>0?parseInt(el.css('font-size')):14;
|
59
|
+
var fontfamily=el.css('font-family')?el.css('font-family').replace(/\'/g, '').replace(/"/g,''):"Arial";
|
60
|
+
var fontcolor=el.css('color')? el.css('color'):"#000";
|
61
|
+
|
62
|
+
if ($.browser.msie){
|
63
|
+
if(!tb) el.css({'writing-mode': 'tb-rl', height:h, filter: 'fliph() flipv("") ', whiteSpace:"nowrap", lineHeight:fontsize+2+"px"}).css('font-weight', 'normal');
|
64
|
+
label=$("<span style='writing-mode: tb-rl; whiteSpace:nowrap; height:"+h+"; width:"+w+"; line-height:"+(fontsize+2)+"px'>"+el.html()+"</span>");
|
65
|
+
}else{
|
66
|
+
|
67
|
+
var dim=el.getFlipTextDim(false);
|
68
|
+
|
69
|
+
h=dim[1];
|
70
|
+
w=dim[0];
|
71
|
+
if(!isIE ) el.encHTML();
|
72
|
+
var txt= el.text();
|
73
|
+
|
74
|
+
var rot="-90";
|
75
|
+
var ta="end";
|
76
|
+
var xFix=0;
|
77
|
+
var yFix=$.browser.opera ? parseInt(w)-(parseInt(w)/4): $.browser.webkit?5:0;
|
78
|
+
|
79
|
+
if (tb){
|
80
|
+
yFix=$.browser.opera?20:0;
|
81
|
+
xFix= $.browser.webkit?(fontsize/4):0;
|
82
|
+
rot="90, "+((parseInt(w)/2)-xFix)+", "+parseInt(w)/2;
|
83
|
+
ta="start";
|
84
|
+
}
|
85
|
+
var onClick= el.attr("onclick") || el.attr("href");
|
86
|
+
var clickScript= onClick?"<div class='pointer' style='position:absolute;top:0;left:0;width:100%;height:100%;background:transparent'/>":"";
|
87
|
+
|
88
|
+
label=$("<object class='flip_label' style='height:"+h+"px; width:"+w+"px;' type='image/svg+xml' data='data:image/svg+xml; charset=utf-8 ," +
|
89
|
+
"<svg xmlns=\"http://www.w3.org/2000/svg\">" +
|
90
|
+
"<rect x=\"0\" y=\"0\" width=\""+w+"px\" height=\""+h+"px\" fill=\""+bgcol+"\" stroke=\"none\"/>"+
|
91
|
+
"<text x=\"-"+xFix+"\" y=\""+yFix+"\" font-family=\""+fontfamily+"\" fill=\""+fontcolor+"\" font-size=\""+fontsize+"\" style=\"text-anchor: "+ta+"; " +
|
92
|
+
"dominant-baseline: hanging\" transform=\"rotate("+rot+")\" text-rendering=\"optimizeSpeed\">"+txt+"</text></svg>'></object>" +
|
93
|
+
clickScript +
|
94
|
+
"");
|
95
|
+
}
|
96
|
+
var wrapper= onClick ? $("<div/>").css("position","relative"): $("");
|
97
|
+
var cssPos= el.wrap(wrapper).css("position")!="absolute" || el.css("position")!="fixed" ?"relative" : el.css("position");
|
98
|
+
el.html(label).css({position:cssPos, width:w});
|
99
|
+
});
|
100
|
+
},
|
101
|
+
getFlipTextDim:function(enc){
|
102
|
+
var el= $(this);
|
103
|
+
// if(!enc && !isIE) el.encHTML();
|
104
|
+
var txt= el.html();
|
105
|
+
var fontsize= parseInt(el.css('font-size'));
|
106
|
+
var fontfamily=el.css('font-family').replace(/'/g, '').replace(/"/g,'');
|
107
|
+
if (fontfamily==undefined) fontfamily="Arial";
|
108
|
+
var placeHolder=$("<span/>").css({position:"absolute",top:-100, whiteSpace:"noWrap", fontSize:fontsize, fontFamily: fontfamily});
|
109
|
+
placeHolder.text(txt);
|
110
|
+
$("body").append(placeHolder);
|
111
|
+
var h = (placeHolder.outerWidth()!=0?placeHolder.outerWidth():(16+txt.length*fontsize*.60));
|
112
|
+
var w = (placeHolder.outerHeight()!=0?placeHolder.outerHeight()+5:50);
|
113
|
+
placeHolder.remove();
|
114
|
+
return [w,h];
|
115
|
+
}
|
116
|
+
};
|
117
|
+
$.fn.mbFlipText=$.mbflipText.flipText;
|
118
|
+
$.fn.getFlipTextDim=$.mbflipText.getFlipTextDim;
|
119
|
+
|
120
|
+
})(jQuery);
|
@@ -0,0 +1,521 @@
|
|
1
|
+
/*
|
2
|
+
* ******************************************************************************
|
3
|
+
* jquery.mb.components
|
4
|
+
* file: mbExtruder.js
|
5
|
+
*
|
6
|
+
* Copyright (c) 2001-2014. Matteo Bicocchi (Pupunzi);
|
7
|
+
* Open lab srl, Firenze - Italy
|
8
|
+
* email: matteo@open-lab.com
|
9
|
+
* site: http://pupunzi.com
|
10
|
+
* blog: http://pupunzi.open-lab.com
|
11
|
+
* http://open-lab.com
|
12
|
+
*
|
13
|
+
* Licences: MIT, GPL
|
14
|
+
* http://www.opensource.org/licenses/mit-license.php
|
15
|
+
* http://www.gnu.org/licenses/gpl.html
|
16
|
+
*
|
17
|
+
* last modified: 08/05/14 20.00
|
18
|
+
* *****************************************************************************
|
19
|
+
*/
|
20
|
+
|
21
|
+
/*Browser detection patch*/
|
22
|
+
var nAgt = navigator.userAgent;
|
23
|
+
if (!jQuery.browser) {
|
24
|
+
jQuery.browser = {};
|
25
|
+
jQuery.browser.mozilla = !1;
|
26
|
+
jQuery.browser.webkit = !1;
|
27
|
+
jQuery.browser.opera = !1;
|
28
|
+
jQuery.browser.safari = !1;
|
29
|
+
jQuery.browser.chrome = !1;
|
30
|
+
jQuery.browser.msie = !1;
|
31
|
+
jQuery.browser.ua = nAgt;
|
32
|
+
jQuery.browser.name = navigator.appName;
|
33
|
+
jQuery.browser.fullVersion = "" + parseFloat(navigator.appVersion);
|
34
|
+
jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10);
|
35
|
+
var nameOffset, verOffset, ix;
|
36
|
+
if (-1 != (verOffset = nAgt.indexOf("Opera")))jQuery.browser.opera = !0, jQuery.browser.name = "Opera", jQuery.browser.fullVersion = nAgt.substring(verOffset + 6), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)); else if (-1 != (verOffset = nAgt.indexOf("OPR")))jQuery.browser.opera = !0, jQuery.browser.name = "Opera", jQuery.browser.fullVersion = nAgt.substring(verOffset + 4); else if (-1 != (verOffset = nAgt.indexOf("MSIE")))jQuery.browser.msie = !0, jQuery.browser.name = "Microsoft Internet Explorer", jQuery.browser.fullVersion = nAgt.substring(verOffset + 5); else if (-1 != nAgt.indexOf("Trident")) {
|
37
|
+
jQuery.browser.msie = !0;
|
38
|
+
jQuery.browser.name = "Microsoft Internet Explorer";
|
39
|
+
var start = nAgt.indexOf("rv:") + 3, end = start + 4;
|
40
|
+
jQuery.browser.fullVersion = nAgt.substring(start, end)
|
41
|
+
} else-1 != (verOffset = nAgt.indexOf("Chrome")) ? (jQuery.browser.webkit = !0, jQuery.browser.chrome = !0, jQuery.browser.name = "Chrome", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7)) : -1 != (verOffset = nAgt.indexOf("Safari")) ? (jQuery.browser.webkit = !0, jQuery.browser.safari = !0, jQuery.browser.name = "Safari", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf("AppleWebkit")) ? (jQuery.browser.webkit = !0, jQuery.browser.name = "Safari", jQuery.browser.fullVersion = nAgt.substring(verOffset + 7), -1 != (verOffset = nAgt.indexOf("Version")) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf("Firefox")) ? (jQuery.browser.mozilla = !0, jQuery.browser.name = "Firefox", jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)) : (nameOffset = nAgt.lastIndexOf(" ") + 1) < (verOffset = nAgt.lastIndexOf("/")) && (jQuery.browser.name = nAgt.substring(nameOffset, verOffset), jQuery.browser.fullVersion = nAgt.substring(verOffset + 1), jQuery.browser.name.toLowerCase() == jQuery.browser.name.toUpperCase() && (jQuery.browser.name = navigator.appName));
|
42
|
+
-1 != (ix = jQuery.browser.fullVersion.indexOf(";")) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix));
|
43
|
+
-1 != (ix = jQuery.browser.fullVersion.indexOf(" ")) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix));
|
44
|
+
jQuery.browser.majorVersion = parseInt("" + jQuery.browser.fullVersion, 10);
|
45
|
+
isNaN(jQuery.browser.majorVersion) && (jQuery.browser.fullVersion = "" + parseFloat(navigator.appVersion), jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10));
|
46
|
+
jQuery.browser.version = jQuery.browser.majorVersion
|
47
|
+
}
|
48
|
+
jQuery.browser.android = /Android/i.test(nAgt);
|
49
|
+
jQuery.browser.blackberry = /BlackBerry/i.test(nAgt);
|
50
|
+
jQuery.browser.ios = /iPhone|iPad|iPod/i.test(nAgt);
|
51
|
+
jQuery.browser.operaMobile = /Opera Mini/i.test(nAgt);
|
52
|
+
jQuery.browser.windowsMobile = /IEMobile/i.test(nAgt);
|
53
|
+
jQuery.browser.mobile = jQuery.browser.android || jQuery.browser.blackberry || jQuery.browser.ios || jQuery.browser.windowsMobile || jQuery.browser.operaMobile;
|
54
|
+
|
55
|
+
/*
|
56
|
+
* Metadata - jQuery plugin for parsing metadata from elements
|
57
|
+
* Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan
|
58
|
+
* Dual licensed under the MIT and GPL licenses:
|
59
|
+
* http://www.opensource.org/licenses/mit-license.php
|
60
|
+
* http://www.gnu.org/licenses/gpl.html
|
61
|
+
*/
|
62
|
+
|
63
|
+
(function(c){c.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/({.*})/,single:"metadata"},setType:function(b,c){this.defaults.type=b;this.defaults.name=c},get:function(b,f){var d=c.extend({},this.defaults,f);d.single.length||(d.single="metadata");var a=c.data(b,d.single);if(a)return a;a="{}";if("class"==d.type){var e=d.cre.exec(b.className);e&&(a=e[1])}else if("elem"==d.type){if(!b.getElementsByTagName)return;e=b.getElementsByTagName(d.name);e.length&&(a=c.trim(e[0].innerHTML))}else void 0!= b.getAttribute&&(e=b.getAttribute(d.name))&&(a=e);0>a.indexOf("{")&&(a="{"+a+"}");a=eval("("+a+")");c.data(b,d.single,a);return a}}});c.fn.metadata=function(b){return c.metadata.get(this[0],b)}})(jQuery);
|
64
|
+
|
65
|
+
/***************************************************************************************/
|
66
|
+
|
67
|
+
|
68
|
+
(function($) {
|
69
|
+
document.extruder=new Object();
|
70
|
+
document.extruder.left = 0;
|
71
|
+
document.extruder.top = 0;
|
72
|
+
document.extruder.bottom = 0;
|
73
|
+
document.extruder.right = 0;
|
74
|
+
document.extruder.idx=0;
|
75
|
+
var isIE=$.browser.msie;
|
76
|
+
|
77
|
+
$.mbExtruder= {
|
78
|
+
author:"Matteo Bicocchi",
|
79
|
+
version:"2.5.5",
|
80
|
+
defaults:{
|
81
|
+
width:350,
|
82
|
+
positionFixed:true,
|
83
|
+
sensibility:800,
|
84
|
+
position:"top",
|
85
|
+
accordionPanels:true,
|
86
|
+
top:"auto",
|
87
|
+
extruderOpacity:1,
|
88
|
+
flapMargin:35,
|
89
|
+
textOrientation:"bt", // or "tb" (top-bottom or bottom-top)
|
90
|
+
onExtOpen:function(){},
|
91
|
+
onExtContentLoad:function(){},
|
92
|
+
onExtClose:function(){},
|
93
|
+
hidePanelsOnClose:true,
|
94
|
+
closeOnClick:true,
|
95
|
+
closeOnExternalClick:true,
|
96
|
+
autoCloseTime:0,
|
97
|
+
autoOpenTime:0,
|
98
|
+
slideTimer:300
|
99
|
+
},
|
100
|
+
|
101
|
+
buildMbExtruder: function(options){
|
102
|
+
return this.each (function (){
|
103
|
+
this.options = {};
|
104
|
+
$.extend (this.options, $.mbExtruder.defaults);
|
105
|
+
$.extend (this.options, options);
|
106
|
+
|
107
|
+
this.idx=document.extruder.idx;
|
108
|
+
document.extruder.idx++;
|
109
|
+
var extruder,extruderContent,wrapper,extruderStyle,wrapperStyle,txt,closeTimer,openTimer;
|
110
|
+
extruder= $(this);
|
111
|
+
extruderContent=extruder.html();
|
112
|
+
|
113
|
+
extruder.css("zIndex",100);
|
114
|
+
var isVertical = this.options.position=="left" || this.options.position=="right";
|
115
|
+
var extW= isVertical?1: this.options.width;
|
116
|
+
var c= $("<div/>").addClass("extruder-content").css({overflow:"hidden", width:extW});
|
117
|
+
c.append(extruderContent);
|
118
|
+
extruder.html(c);
|
119
|
+
|
120
|
+
var position=this.options.positionFixed?"fixed":"absolute";
|
121
|
+
extruder.addClass("extruder");
|
122
|
+
extruder.addClass(this.options.position);
|
123
|
+
var isHorizontal = this.options.position=="top" || this.options.position=="bottom";
|
124
|
+
extruderStyle =
|
125
|
+
this.options.position=="top" ?
|
126
|
+
{position:position,top:0,left:"50%",marginLeft:-this.options.width/2,width:this.options.width}:
|
127
|
+
this.options.position=="bottom" ?
|
128
|
+
{position:position,bottom:0,left:"50%",marginLeft:-this.options.width/2,width:this.options.width}:
|
129
|
+
this.options.position=="left" ?
|
130
|
+
{position:position,top:0,left:0,width:1}:
|
131
|
+
{position:position,top:0,right:0,width:1};
|
132
|
+
extruder.css(extruderStyle);
|
133
|
+
if(!isIE) extruder.css({opacity:this.options.extruderOpacity});
|
134
|
+
extruder.wrapInner("<div class='ext_wrapper'></div>");
|
135
|
+
wrapper= extruder.find(".ext_wrapper");
|
136
|
+
|
137
|
+
wrapperStyle={position:"absolute", width:isVertical?1:this.options.width};
|
138
|
+
wrapper.css(wrapperStyle);
|
139
|
+
|
140
|
+
|
141
|
+
if (isHorizontal){
|
142
|
+
this.options.position=="top"? document.extruder.top++ : document.extruder.bottom++;
|
143
|
+
if (document.extruder.top >1 || document.extruder.bottom>1){
|
144
|
+
alert("more than 1 mb.extruder on top or bottom is not supported jet... hope soon!");
|
145
|
+
return;
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
if ($.metadata){
|
150
|
+
$.metadata.setType("class");
|
151
|
+
if (extruder.metadata().title) extruder.attr("extTitle",extruder.metadata().title);
|
152
|
+
if (extruder.metadata().url) extruder.attr("extUrl",extruder.metadata().url);
|
153
|
+
if (extruder.metadata().data) extruder.attr("extData",extruder.metadata().data);
|
154
|
+
}
|
155
|
+
|
156
|
+
var flapFooter=$("<div class='footer'/>");
|
157
|
+
var flap=$("<div class='flap'><span class='flapLabel'/></div>");
|
158
|
+
if (document.extruder.bottom){
|
159
|
+
wrapper.prepend(flapFooter);
|
160
|
+
wrapper.prepend(flap);
|
161
|
+
}else{
|
162
|
+
wrapper.append(flapFooter);
|
163
|
+
wrapper.append(flap);
|
164
|
+
}
|
165
|
+
|
166
|
+
txt=extruder.attr("extTitle")?extruder.attr("extTitle"): "";
|
167
|
+
var flapLabel = extruder.find(".flapLabel");
|
168
|
+
flapLabel.text(txt);
|
169
|
+
if(isVertical){
|
170
|
+
flapLabel.html(txt).css({whiteSpace:"noWrap"});
|
171
|
+
var orientation= this.options.textOrientation == "tb";
|
172
|
+
var labelH=extruder.find('.flapLabel').getFlipTextDim()[1];
|
173
|
+
extruder.find('.flapLabel').mbFlipText(orientation);
|
174
|
+
}else{
|
175
|
+
flapLabel.html(txt).css({whiteSpace:"noWrap"});
|
176
|
+
}
|
177
|
+
|
178
|
+
if (extruder.attr("extUrl")){
|
179
|
+
extruder.setMbExtruderContent({
|
180
|
+
url:extruder.attr("extUrl"),
|
181
|
+
data:extruder.attr("extData"),
|
182
|
+
callback: function(){
|
183
|
+
if (extruder.get(0).options.onExtContentLoad) extruder.get(0).options.onExtContentLoad();
|
184
|
+
}
|
185
|
+
})
|
186
|
+
}else{
|
187
|
+
var container=$("<div>").addClass("text").css({width:extruder.get(0).options.width-20, overflowY:"auto"});
|
188
|
+
c.wrapInner(container);
|
189
|
+
extruder.setExtruderVoicesAction();
|
190
|
+
}
|
191
|
+
|
192
|
+
flap.on("click",function(){
|
193
|
+
if (!extruder.attr("isOpened")){
|
194
|
+
extruder.openMbExtruder();
|
195
|
+
}else{
|
196
|
+
extruder.closeMbExtruder();
|
197
|
+
extruder.removeAttr("isOpened");
|
198
|
+
}
|
199
|
+
}).on("mouseenter",function(){
|
200
|
+
if(extruder.get(0).options.autoOpenTime>0){
|
201
|
+
openTimer=setTimeout(function(){
|
202
|
+
extruder.openMbExtruder();
|
203
|
+
$(document).one("click.extruder"+extruder.get(0).idx,function(){extruder.closeMbExtruder();});
|
204
|
+
},extruder.get(0).options.autoOpenTime);
|
205
|
+
}
|
206
|
+
}).on("mouseleave",function(){
|
207
|
+
clearTimeout(openTimer);
|
208
|
+
});
|
209
|
+
|
210
|
+
c.on("mouseleave", function(e){
|
211
|
+
if(extruder.get(0).options.closeOnExternalClick){
|
212
|
+
|
213
|
+
//Chrome bug: FORMELEMENT fire mouseleave event.
|
214
|
+
if(!$(e.target).parents().is(".text"))
|
215
|
+
$(document).one("click.extruder"+extruder.get(0).idx,function(){extruder.closeMbExtruder();});
|
216
|
+
}
|
217
|
+
closeTimer=setTimeout(function(){
|
218
|
+
|
219
|
+
if(extruder.get(0).options.autoCloseTime > 0){
|
220
|
+
extruder.closeMbExtruder();
|
221
|
+
}
|
222
|
+
},extruder.get(0).options.autoCloseTime);
|
223
|
+
}).on("mouseenter", function(){
|
224
|
+
clearTimeout(closeTimer);
|
225
|
+
$(document).off("click.extruder"+extruder.get(0).idx);
|
226
|
+
});
|
227
|
+
|
228
|
+
if (isVertical){
|
229
|
+
c.css({ height:"100%"});
|
230
|
+
if(this.options.top=="auto") {
|
231
|
+
flap.css({top:100+(this.options.position=="left"?document.extruder.left:document.extruder.right)});
|
232
|
+
this.options.position=="left"?document.extruder.left+=labelH+this.options.flapMargin:document.extruder.right+= labelH+this.options.flapMargin;
|
233
|
+
}else{
|
234
|
+
flap.css({top:this.options.top});
|
235
|
+
}
|
236
|
+
var clicDiv=$("<div/>").css({position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"transparent"});
|
237
|
+
flap.append(clicDiv);
|
238
|
+
}
|
239
|
+
|
240
|
+
this.originalWidth = this.options.width;
|
241
|
+
|
242
|
+
$(window).on("resize",function(){
|
243
|
+
extruder.adjustSize();
|
244
|
+
})
|
245
|
+
});
|
246
|
+
},
|
247
|
+
|
248
|
+
adjustSize:function(){
|
249
|
+
|
250
|
+
var $extruder = this;
|
251
|
+
var extruder = $extruder.get(0);
|
252
|
+
|
253
|
+
var isHorizontal = extruder.options.position=="top" || extruder.options.position=="bottom";
|
254
|
+
|
255
|
+
if(isHorizontal){
|
256
|
+
|
257
|
+
if( $(window).width() < extruder.options.width){
|
258
|
+
$extruder.css({width:$(window).width(), marginLeft:0, left:0});
|
259
|
+
$extruder.find(".ext_wrapper, .extruder-content, .extruder-container").css({width:"100%"});
|
260
|
+
}else{
|
261
|
+
$extruder.css({width:extruder.options.width, left:"50%",marginLeft:-extruder.options.width/2});
|
262
|
+
$extruder.find(".ext_wrapper, .extruder-content, .extruder-container").css({width:"100%"});
|
263
|
+
}
|
264
|
+
|
265
|
+
} else{
|
266
|
+
|
267
|
+
if( ($(window).width()-80) < extruder.originalWidth){
|
268
|
+
extruder.options.width = $(window).width()-80;
|
269
|
+
}else{
|
270
|
+
extruder.options.width = extruder.originalWidth;
|
271
|
+
}
|
272
|
+
|
273
|
+
if($extruder.attr("isOpened")){
|
274
|
+
$extruder.find('.extruder-content').css({width: extruder.options.width});
|
275
|
+
$extruder.find(".ext_wrapper, .extruder-content, .extruder-container").css({width:extruder.options.width});
|
276
|
+
}
|
277
|
+
}
|
278
|
+
|
279
|
+
},
|
280
|
+
|
281
|
+
setMbExtruderContent: function(options){
|
282
|
+
this.options = {
|
283
|
+
url:false,
|
284
|
+
data:"",
|
285
|
+
callback:function(){}
|
286
|
+
};
|
287
|
+
$.extend (this.options, options);
|
288
|
+
if (!this.options.url || this.options.url.length==0){
|
289
|
+
alert("internal error: no URL to call");
|
290
|
+
return;
|
291
|
+
}
|
292
|
+
var url=this.options.url;
|
293
|
+
var data=this.options.data;
|
294
|
+
var where=$(this), voice;
|
295
|
+
var cb= this.options.callback;
|
296
|
+
var container=$("<div>").addClass("extruder-container");
|
297
|
+
if (!($.browser.msie && $.browser.version<=7))
|
298
|
+
container.css({width:$(this).get(0).options.width});
|
299
|
+
where.find(".extruder-content").wrapInner(container);
|
300
|
+
$.ajax({
|
301
|
+
type: "GET",
|
302
|
+
url: url,
|
303
|
+
data: data,
|
304
|
+
async:true,
|
305
|
+
dataType:"html",
|
306
|
+
success: function(html){
|
307
|
+
where.find(".extruder-container").append(html);
|
308
|
+
voice=where.find(".voice");
|
309
|
+
voice.hover(function(){$(this).addClass("hover");},function(){$(this).removeClass("hover");});
|
310
|
+
where.setExtruderVoicesAction();
|
311
|
+
if (cb) {
|
312
|
+
setTimeout(function(){cb();},100);
|
313
|
+
}
|
314
|
+
}
|
315
|
+
});
|
316
|
+
},
|
317
|
+
|
318
|
+
openMbExtruder:function(c){
|
319
|
+
var extruder= $(this);
|
320
|
+
extruder.adjustSize();
|
321
|
+
|
322
|
+
extruder.attr("isOpened",true);
|
323
|
+
$(document).off("click.extruder"+extruder.get(0).idx);
|
324
|
+
var opt= extruder.get(0).options;
|
325
|
+
extruder.addClass("isOpened");
|
326
|
+
if(!isIE) extruder.css("opacity",1);
|
327
|
+
var position = opt.position;
|
328
|
+
extruder.mb_bringToFront();
|
329
|
+
if (position=="top" || position=="bottom"){
|
330
|
+
extruder.find('.extruder-content').slideDown( opt.slideTimer);
|
331
|
+
if(opt.onExtOpen) opt.onExtOpen();
|
332
|
+
}else{
|
333
|
+
if(!isIE) $(this).css("opacity",1);
|
334
|
+
extruder.find('.ext_wrapper').css({width:""});
|
335
|
+
extruder.find('.extruder-content').css({overflowX:"hidden", display:"block"});
|
336
|
+
extruder.find('.extruder-content').animate({ width: opt.width}, opt.slideTimer,function(){
|
337
|
+
extruder.find(".extruder-container").css({width: opt.width});
|
338
|
+
});
|
339
|
+
if(opt.onExtOpen) opt.onExtOpen();
|
340
|
+
}
|
341
|
+
|
342
|
+
if (c) {
|
343
|
+
setTimeout(function(){
|
344
|
+
$(document).one("click.extruder"+extruder.get(0).idx,function(){extruder.closeMbExtruder();});
|
345
|
+
},100);
|
346
|
+
}
|
347
|
+
|
348
|
+
},
|
349
|
+
|
350
|
+
closeMbExtruder:function(){
|
351
|
+
var extruder= $(this);
|
352
|
+
extruder.removeAttr("isOpened");
|
353
|
+
var opt= extruder.get(0).options;
|
354
|
+
extruder.removeClass("isOpened");
|
355
|
+
$(document).off("click.extruder"+extruder.get(0).idx);
|
356
|
+
if(!isIE) extruder.css("opacity",opt.extruderOpacity);
|
357
|
+
if(opt.hidePanelsOnClose) extruder.hidePanelsOnClose();
|
358
|
+
if (opt.position=="top" || opt.position=="bottom"){
|
359
|
+
extruder.find('.extruder-content').slideUp(opt.slideTimer);
|
360
|
+
if(opt.onExtClose) opt.onExtClose();
|
361
|
+
}else if (opt.position=="left" || opt.position=="right"){
|
362
|
+
extruder.find('.extruder-content').css({overflow:"hidden"});
|
363
|
+
extruder.find('.extruder-content').animate({ width: 1 }, opt.slideTimer,function(){
|
364
|
+
extruder.find('.ext_wrapper').css({width:1});
|
365
|
+
extruder.find('.extruder-content').css({overflow:"hidden",display:"none"});
|
366
|
+
if(opt.onExtClose) opt.onExtClose();
|
367
|
+
});
|
368
|
+
}
|
369
|
+
}
|
370
|
+
};
|
371
|
+
|
372
|
+
jQuery.fn.mb_bringToFront= function(){
|
373
|
+
var zi=10;
|
374
|
+
$('*').each(function() {
|
375
|
+
if($(this).css("position")=="absolute" ||$(this).css("position")=="fixed"){
|
376
|
+
var cur = parseInt($(this).css('zIndex'));
|
377
|
+
zi = cur > zi ? parseInt($(this).css('zIndex')) : zi;
|
378
|
+
}
|
379
|
+
});
|
380
|
+
$(this).css('zIndex',zi+=1);
|
381
|
+
return zi;
|
382
|
+
};
|
383
|
+
|
384
|
+
/*
|
385
|
+
* EXTRUDER CONTENT
|
386
|
+
*/
|
387
|
+
|
388
|
+
$.fn.setExtruderVoicesAction=function(){
|
389
|
+
var extruder=$(this);
|
390
|
+
var opt=extruder.get(0).options;
|
391
|
+
var voices= $(this).find(".voice");
|
392
|
+
voices.each(function(){
|
393
|
+
var voice=$(this);
|
394
|
+
if ($.metadata){
|
395
|
+
$.metadata.setType("class");
|
396
|
+
if (voice.metadata().panel) voice.attr("panel",voice.metadata().panel);
|
397
|
+
if (voice.metadata().data) voice.attr("data",voice.metadata().data);
|
398
|
+
if (voice.metadata().disabled) voice.attr("setDisabled", voice.metadata().disabled);
|
399
|
+
}
|
400
|
+
|
401
|
+
if (voice.attr("setDisabled"))
|
402
|
+
voice.disableExtruderVoice();
|
403
|
+
|
404
|
+
if (voice.attr("panel") && voice.attr("panel")!="false"){
|
405
|
+
voice.append("<span class='settingsBtn'/>");
|
406
|
+
voice.find(".settingsBtn").css({opacity:.5});
|
407
|
+
voice.find(".settingsBtn").hover(
|
408
|
+
function(){
|
409
|
+
$(this).css({opacity:1});
|
410
|
+
},
|
411
|
+
function(){
|
412
|
+
$(this).not(".sel").css({opacity:.5});
|
413
|
+
}).click(function(){
|
414
|
+
if ($(this).parents().hasClass("sel")){
|
415
|
+
if(opt.accordionPanels)
|
416
|
+
extruder.hidePanelsOnClose();
|
417
|
+
else
|
418
|
+
$(this).closePanel();
|
419
|
+
return;
|
420
|
+
}
|
421
|
+
|
422
|
+
if(opt.accordionPanels){
|
423
|
+
extruder.find(".optionsPanel").slideUp(400,function(){$(this).remove();});
|
424
|
+
voices.removeClass("sel");
|
425
|
+
voices.find(".settingsBtn").removeClass("sel").css({opacity:.5});
|
426
|
+
}
|
427
|
+
var content=$("<div class='optionsPanel'></div>");
|
428
|
+
voice.after(content);
|
429
|
+
$.ajax({
|
430
|
+
type: "GET",
|
431
|
+
url: voice.attr("panel"),
|
432
|
+
data: voice.attr("data"),
|
433
|
+
async:true,
|
434
|
+
dataType:"html",
|
435
|
+
success: function(html){
|
436
|
+
var c= $(html);
|
437
|
+
content.html(c);
|
438
|
+
content.children().not(".text")
|
439
|
+
.addClass("panelVoice")
|
440
|
+
.click(function(){
|
441
|
+
if(opt.closeOnClick)
|
442
|
+
extruder.closeMbExtruder();
|
443
|
+
});
|
444
|
+
content.slideDown(400);
|
445
|
+
}
|
446
|
+
});
|
447
|
+
voice.addClass("sel");
|
448
|
+
voice.find(".settingsBtn").addClass("sel").css({opacity:1});
|
449
|
+
});
|
450
|
+
}
|
451
|
+
|
452
|
+
if (voice.find("a").length==0 && voice.attr("panel")){
|
453
|
+
voice.find(".label").not(".disabled").css("cursor","pointer").click(function(){
|
454
|
+
voice.find(".settingsBtn").click();
|
455
|
+
});
|
456
|
+
}
|
457
|
+
|
458
|
+
if ((!voice.attr("panel") || voice.attr("panel")=="false" ) && (!voice.attr("setDisabled") || voice.attr("setDisabled")!="true")){
|
459
|
+
voice.find(".label").click(function(){
|
460
|
+
extruder.hidePanelsOnClose();
|
461
|
+
if(opt.closeOnClick)
|
462
|
+
extruder.closeMbExtruder();
|
463
|
+
});
|
464
|
+
}
|
465
|
+
});
|
466
|
+
};
|
467
|
+
|
468
|
+
$.fn.disableExtruderVoice=function(){
|
469
|
+
var voice=$(this);
|
470
|
+
var label = voice.find(".label");
|
471
|
+
voice.removeClass("sel");
|
472
|
+
voice.next(".optionsPanel").slideUp(400,function(){$(this).remove();});
|
473
|
+
voice.attr("setDisabled",true);
|
474
|
+
label.css("opacity",.4);
|
475
|
+
voice.hover(function(){$(this).removeClass("hover");},function(){$(this).removeClass("hover");});
|
476
|
+
label.addClass("disabled").css("cursor","default");
|
477
|
+
voice.find(".settingsBtn").hide();
|
478
|
+
voice.on("click",function(event){
|
479
|
+
event.stopPropagation();
|
480
|
+
return false;
|
481
|
+
});
|
482
|
+
};
|
483
|
+
|
484
|
+
$.fn.enableExtruderVoice=function(){
|
485
|
+
var voice=$(this);
|
486
|
+
voice.attr("setDisabled",false);
|
487
|
+
voice.find(".label").css("opacity",1);
|
488
|
+
voice.find(".label").removeClass("disabled").css("cursor","pointer");
|
489
|
+
voice.off("click");
|
490
|
+
voice.find(".settingsBtn").show();
|
491
|
+
};
|
492
|
+
|
493
|
+
$.fn.hidePanelsOnClose=function(){
|
494
|
+
var voices= $(this).find(".voice");
|
495
|
+
$(this).find(".optionsPanel").slideUp(400,function(){$(this).remove();});
|
496
|
+
voices.removeClass("sel");
|
497
|
+
voices.find(".settingsBtn").removeClass("sel").css("opacity",.5);
|
498
|
+
};
|
499
|
+
|
500
|
+
$.fn.openPanel=function(){
|
501
|
+
var voice=$(this).hasClass("voice") ? $(this) : $(this).find(".voice");
|
502
|
+
voice.each(function(){
|
503
|
+
if($(this).hasClass("sel")) return;
|
504
|
+
$(this).find(".settingsBtn").click();
|
505
|
+
})
|
506
|
+
};
|
507
|
+
|
508
|
+
$.fn.closePanel=function(){
|
509
|
+
var voice=$(this).hasClass("voice") ? $(this) : $(this).parent(".voice");
|
510
|
+
voice.next(".optionsPanel").slideUp(400,function(){$(this).remove();});
|
511
|
+
voice.removeClass("sel");
|
512
|
+
$(this).removeClass("sel").css("opacity",.5);
|
513
|
+
};
|
514
|
+
|
515
|
+
$.fn.buildMbExtruder=$.mbExtruder.buildMbExtruder;
|
516
|
+
$.fn.setMbExtruderContent=$.mbExtruder.setMbExtruderContent;
|
517
|
+
$.fn.closeMbExtruder=$.mbExtruder.closeMbExtruder;
|
518
|
+
$.fn.openMbExtruder=$.mbExtruder.openMbExtruder;
|
519
|
+
$.fn.adjustSize=$.mbExtruder.adjustSize;
|
520
|
+
|
521
|
+
})(jQuery);
|