OSDN Git Service

Version 0.6.11, add XUI_Gesture.
[pettanr/clientJs.git] / 0.6.x / js / bootstrap.js
diff --git a/0.6.x/js/bootstrap.js b/0.6.x/js/bootstrap.js
new file mode 100644 (file)
index 0000000..d47b9d6
--- /dev/null
@@ -0,0 +1,248 @@
+/*\r
+ * + checkActiveX\r
+ * + fetch core lib\r
+ * + ResponsiveImage\r
+ */\r
+\r
+var options = {\r
+       outputID : 'bootstrap-output',\r
+       \r
+       responsiveCSS : [\r
+       ]\r
+};\r
+\r
+;(function( window, document, options, undefined ){\r
+\r
+var emptyFunction = new Function();\r
+\r
+// この script は head の中に書かれているか?\r
+var inHead = (function(){\r
+       var ss     = document.getElementsByTagName ? document.getElementsByTagName( 'script' ) :\r
+                                       document.all ? document.all.tags( 'script' ) : null,\r
+               self   = ss ? ss[ ss.length - 1 ] : null,\r
+               parent = self ? ( self.parentNode || self.parentElement ) : null;\r
+       if( parent && parent.tagName.toUpperCase() === 'HEAD' ) return true;\r
+       return false;\r
+})();\r
+\r
+// body にアクセス可能にする\r
+var body = document.body;\r
+if( !body ){\r
+       document.write('<body>');\r
+       body = document.body;\r
+};\r
+\r
+\r
+var UA = (function(){\r
+       var acme = {};\r
+       var n    = navigator;\r
+       var dua  = n.userAgent;\r
+       var dav  = n.appVersion;\r
+       var tv   = parseFloat(dav);\r
+       acme.isOpera  = (dua.indexOf("Opera") >= 0) ? tv: undefined;\r
+       acme.isKhtml  = (dav.indexOf("Konqueror") >= 0) ? tv : undefined;\r
+       acme.isWebKit = parseFloat(dua.split("WebKit\/")[1]) || undefined;\r
+       acme.isChrome = parseFloat(dua.split("Chrome\/")[1]) || undefined;\r
+       acme.isGecko  = (dua.indexOf("Gecko\/") >= 0) ? parseFloat(dua.split("rv:")[1].replace( /^(\d*\.\d*)\.(\d*)/, '$1$2' )) : undefined;\r
+       var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);\r
+       if(index && !acme.isChrome){\r
+               acme.isSafari = parseFloat(dav.split("Version/")[1]);\r
+               if(!acme.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){\r
+                       acme.isSafari = 2;\r
+               };\r
+       };\r
+       if(document.all && !acme.isOpera){\r
+               acme.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined;\r
+       };\r
+       \r
+       return acme;\r
+})();\r
+\r
+\r
+// load CoreLib\r
+(function(){\r
+       var test = new Function( 'return !!( window.X && X.$ )' ),\r
+               libs = [\r
+                       'js/builtin.js',\r
+                       'js/xua.js',\r
+                       'js/xtype.js',\r
+                       'js/xcallback.js',\r
+                       'js/xtimer.js',\r
+                       'js/xviewport.js',\r
+                       'js/xdom.js',\r
+                       'js/xdomevent.js',\r
+                       'js/xquery.js'\r
+               ],\r
+               src, script,\r
+               root = inHead ?\r
+                       ( document.getElementsByTagName ? document.getElementsByTagName('head')[0] :\r
+                       document.all ? document.all.tags( 'HEAD' )[0] : document.head )\r
+                       : document.body,\r
+               timerID = window.setInterval( function(){\r
+                               if( test() === true ){\r
+                                       window.clearInterval( timerID );\r
+                                       onLibReady();\r
+                                       test = onLibReady = null;\r
+                               };\r
+                       }, 0 );\r
+       \r
+       while( libs.length ){\r
+               src = libs.shift();\r
+               if( document.getElementById ){\r
+                       script = document.createElement( 'script' );\r
+                       root.appendChild( script );\r
+                       script.src = src;\r
+               } else\r
+               if( document.all ){\r
+                       root.insertAdjacentHTML( 'BeforeEnd', '<script src="' + src + '">' );\r
+               };\r
+       };\r
+       libs = src = script = null;\r
+       \r
+       \r
+       var onLibReady = function(){\r
+               X.Dom.Event.add( window, 'load', ResponsiveImage.onPageLoad );\r
+               //();\r
+       };      \r
+})();\r
+\r
+\r
+/*\r
+ * http://code.google.com/p/css3-mediaqueries-js/source/browse/trunk/css3-mediaqueries_src.js\r
+ */\r
+var nativeSupport = function () {\r
+    // check support for media queries\r
+    var id = 'css3-mediaqueries-test';\r
+    var el = document.createElement('div');\r
+    el.id = id;\r
+    var style = cssHelper.addStyle('@media all and (width) { #' + id + ' { width: 1px !important; } }', false);\r
+    // false means don't parse this temp style\r
+    body.appendChild(el);\r
+    var ret = el.offsetWidth === 1;\r
+    style.parentNode.removeChild(style);\r
+    el.parentNode.removeChild(el);\r
+    nativeSupport = new Function('return ' + ret);\r
+    return ret;\r
+};\r
+\r
+\r
+\r
+\r
+var ResponsiveImage = {\r
+       images  : [],\r
+       attrs   : [],\r
+       timerID : -1,\r
+       _onload : false,\r
+       detect : function(){\r
+               var regW   = /.*width=['"]?([0-9]+)['"]?.*/,\r
+                       regH   = /.*height=['"]?([0-9]+)['"]?.*/,\r
+                       images = document.images,\r
+                       saved  = ResponsiveImage.images,\r
+                       attrs  = ResponsiveImage.attrs,\r
+                       i      = 0,\r
+                       l      = images.length,\r
+                       img, w, h, html;\r
+               for( ; i < l; ++i ){\r
+                       img = images[ i ];\r
+                       if( saved.indexOf( img ) === -1 ){\r
+                               html = img.outerHTML; // for IE8\r
+                               w    = html ? html.replace( regW, '$1' ) : img.getAttribute( 'width' );\r
+                               h    = html ? html.replace( regH, '$1' ) : img.getAttribute( 'height' );\r
+                               if( !isFinite( w ) || !isFinite( h ) || !isFinite( w / h ) ){\r
+                                       continue;\r
+                               };\r
+                               saved[ saved.length ] = img;\r
+                               attrs[ saved.length - 1 ] = {\r
+                                       src    : img.src, // get Absolute\r
+                                       lowsrc : img.lowsrc,\r
+                                       getSrc : ResponsiveImage._getResponsiveSrc,\r
+                                       width  : w,\r
+                                       height : h,\r
+                                       ratio  : h / w\r
+                               };\r
+                               img.src = img.lowsrc = '';\r
+                       };\r
+               };\r
+               if( ResponsiveImage._onload === true ){\r
+                       window.clearInterval( ResponsiveImage.timerID );\r
+                       delete ResponsiveImage.timerID;\r
+                       delete ResponsiveImage.detect;\r
+                       delete ResponsiveImage._onload;\r
+                       \r
+                       ResponsiveImage.onResize();\r
+                       X.View.add( ResponsiveImage.onResize );\r
+               };\r
+       },\r
+       start : function(){\r
+               ResponsiveImage.timerID = window.setInterval( ResponsiveImage.detect, 0 );\r
+               delete ResponsiveImage.start;\r
+       },\r
+       onPageLoad : function(){\r
+               ResponsiveImage._onload = true;\r
+               delete ResponsiveImage.onPageLoad;\r
+       },\r
+       onResize : function( e ){\r
+               var saved = ResponsiveImage.images,\r
+                       attrs = ResponsiveImage.attrs,\r
+                       id    = 'img-area-size',\r
+                       i     = 0,\r
+                       l     = saved.length,\r
+                       $, img, attr, div, w;\r
+               for( ; i < l; ++i ){\r
+                       img  = saved[ i ];\r
+                       attr = attrs[ i ];\r
+                       X.$( img ).before( '<div id="' + id + '"></div>' );\r
+                       div = X.Dom.getElementById( id );\r
+                       w   = div.offsetWidth;\r
+                       if( attr.width < w ) w = attr.width;\r
+                       img.style.width  = w + 'px';\r
+                       img.style.height = attr.ratio * w + 'px';\r
+                       img.src = attr.getSrc( attr.src, w );\r
+                       X.$( div ).remove();\r
+               };\r
+       },\r
+       _getResponsiveSrc : function( src, width ){\r
+               var attr = this,\r
+                       src  = attr.src,\r
+                       url  = document.location.href;\r
+               if( ( url.indexOf( 'file:' ) === 0 || url.indexOf( '://localhost' ) ) && src.indexOf( 'http' ) !== 0 ){\r
+                       attr.getSrc = ResponsiveImage._getSrcLocal;\r
+               } else\r
+               if( src.indexOf( 'bp.bp.blogspot.com/' ) ){\r
+                       attr.getSrc = ResponsiveImage._getSrcBlogger;\r
+               } else\r
+               if( src.indexOf( '.googleusercontent.com/' ) ){\r
+                       attr.getSrc = ResponsiveImage._getSrcPicasa;\r
+               } else {\r
+                       attr.getSrc = ResponsiveImage._getSrcSenchaIO;\r
+               };\r
+               return attr.getSrc( src, width );\r
+       },\r
+       _getSrcLocal : function( src, width ){\r
+               return src;\r
+       },\r
+       _getSrcBlogger : function( src, width ){\r
+               return src;\r
+       },\r
+       _getSrcPicasa : function( src, width ){\r
+               return src;\r
+       },\r
+       _getSrcFlicker : function( src, width ){\r
+               return src;\r
+       },\r
+       _getSrcSenchaIO : function( src, width ){\r
+               return src;\r
+       }\r
+};\r
+ResponsiveImage.start();\r
+\r
+\r
+\r
+var BICFixed = false;\r
+// bonus: hotfix for IE6 SP1 (bug KB823727)\r
+try {\r
+       document.execCommand("BackgroundImageCache", false, true);\r
+       BICFixed = true;\r
+}catch(e){};\r
+\r
+})( window, document, options );
\ No newline at end of file