--- /dev/null
+/*\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