1 2 var ua = navigator.userAgent.toLowerCase(), 3 platform = navigator.platform.toLowerCase(), 4 UA = ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/) || [null, 'unknown', 0], 5 mode = UA[1] == 'ie' && document.documentMode; 6 var sUserAgent=ua; 7 var BR = { 8 extend: Function.prototype.extend, 9 name: (UA[1] == 'version') ? UA[3] : UA[1], 10 version: mode || parseFloat((UA[1] == 'opera' && UA[4]) ? UA[4] : UA[2]), 11 Platform: { 12 name: ua.match(/ip(?:ad|od|hone)/) ? 'ios' : (ua.match(/(?:webos|android|bada|symbian|palm|blackberry)/) || platform.match(/mac|win|linux/) || ['other'])[0] 13 }, 14 Features: { 15 xpath: !!(document.evaluate), 16 air: !!(window.runtime), 17 query: !!(document.querySelector), 18 json: !!(window.JSON) 19 }, 20 Plugins: {}, 21 isPad : /pad/.test(sUserAgent) || /ipod/.test(sUserAgent), 22 isIPhone : /iphone/.test(sUserAgent), 23 isWinPhone : /wpdesktop/.test(sUserAgent), 24 isBlackBerry:/blackberry/.test(sUserAgent), 25 //isMobile : /mobile/.test(sUserAgent) || /phone/.test(sUserAgent) 26 isMobile :(function() { 27 var check = false; 28 (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); 29 return check||/mobile/.test(sUserAgent) || /phone/.test(sUserAgent); 30 })() 31 }; 32 33 34 35 //This function is invoked by SWFObject once the <object> has been created 36var callback = function (e){ 37 //Only execute if SWFObject embed was successful 38 if(!e.success || !e.ref){ 39 // alert("No Flash Supported"); 40 if('flipbuilder_hasMobile'=='flipbuilder_'+'hasMobile'){ 41 delayToShowVersion("mobile/index.html") 42 // window.location = "mobile/index.html"; 43 }else if(hasBasicHtml){ 44 45 delayToShowVersion("files/basic-html/index.html"); 46 }else{//no sutable fla 47 48 } 49 // setTimeout("shutDownLoader()", 1000); 50 return false; 51 } 52 53}; 54 55 56 // BR.Platform.name ='ios'; 57 // if(BR.Platform.name == 'ios'||BR.Platform.name == 'android') window.location = "mobile/index.html"; 58 // if( BR.Platform.name == 'webos' || BR.Platform.name == 'bada' || BR.Platform.name == 'symbian' || BR.Platform.name == 'palm' || BR.Platform.name == 'blackberry') window.location = dir+"assets/seo/page1.html"; 59 60 61 62 function getURLParam(strParamName){ 63 var strReturn = ""; 64 var strHref = window.location.href; 65 if ( strHref.indexOf("?") > -1 ){ 66 var strQueryString = strHref.substr(strHref.indexOf("?"));//.toLowerCase(); 67 var aQueryString = strQueryString.split("&"); 68 for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){ 69 //if ( aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){ 70 if ( aQueryString[iParam].indexOf(strParamName + "=") > -1 ){ 71 var aParam = aQueryString[iParam].split("="); 72 strReturn = aParam[1]; 73 break; 74 } 75 } 76 } 77 return unescape(strReturn); 78 } 79 var pageIndex=getURLParam('pageIndex'); 80 if(!pageIndex){ 81 pageIndex=-1; 82 } 83 var alwaysShowBookMark=getURLParam('alwaysShowBookMark'); 84 if(!alwaysShowBookMark){ 85 alwaysShowBookMark=false; 86 } 87 var alwaysShowThumbnails=getURLParam('alwaysShowThumbnails'); 88 if(!alwaysShowThumbnails){ 89 alwaysShowThumbnails=false; 90 } 91 var alwaysMinimeStyle=getURLParam('alwaysMinimeStyle'); 92 if(!alwaysMinimeStyle){ 93 alwaysMinimeStyle=false; 94 } 95 var currentHTMLURL= window.encodeURIComponent(window.location.href); 96 if(!currentHTMLURL){ 97 currentHTMLURL=''; 98 } 99 100 var pice=getURLParam('pice'); 101 if(!pice){ 102 pice=false; 103 } 104 var lang=getURLParam('lang'); 105 if(!lang){ 106 lang="NONE"; 107 } 108 var itemValues=getURLParam('itemValues'); 109 if(!itemValues){ 110 itemValues="NONE"; 111 } 112 113 114 115 116 117 118 <!-- For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. --> 119 var swfVersionStr = "10.0.0"; 120 <!-- To use express install, set to playerProductInstall.swf, otherwise the empty string. --> 121 var xiSwfUrlStr = ""; 122 var flashvars = {pageIndex:pageIndex,alwaysShowBookMark:alwaysShowBookMark,alwaysShowThumbnails:alwaysShowThumbnails, 123 alwaysMinimeStyle:alwaysMinimeStyle,currentHTMLURL:currentHTMLURL,pice:pice,lang:lang,itemValues:itemValues}; 124 var params = {}; 125 params.quality = "high"; 126 params.bgcolor = "#ffffff"; 127 params.allowscriptaccess = "always"; 128 params.allowfullscreen = "true"; 129 params.allowFullScreenInteractive = "true"; 130 params.wmode = "transparent"; 131 var attributes = {}; 132 attributes.id = "FlipBookBuilder"; 133 attributes.name = "FlipBookBuilder"; 134 attributes.align = "middle"; 135 136 137var hasMobileVersion=true; 138var hasBasicHtmlVersion=true; 139 140var callback = function (e){ 141 //Only execute if SWFObject embed was successful 142 if(!e.success || !e.ref){ // alert("No Flash Supported"); 143 if(hasMobileVersion){ 144 var pageIndex=getURLParam('pageIndex'); 145 if(!pageIndex){ 146 window.location = "mobile/index.html"+(window.location.hash?window.location.hash:''); 147 }else{ 148 window.location = "mobile/index.html#p="+pageIndex; 149 } 150 151 }else if(hasBasicHtmlVersion){ 152 window.location ='files/basic-html/index.html'; 153 }else{ 154 document.write("Sorry,need flash player. <a href='http://www.adobe.com/go/getflashplayer'>Get Adobe Flash Player<\/a> it's possible to <a id='linkSEO' href='files/basic-html/index.html'>view a simplified version of the book on any device</a>, or you can view the mobile version <a href='mobile/index.html'> here </a>" ); 155 } 156 return false; 157 } 158}; 159 160var forceOld=false; 161function detectAndGoVersion(loadType){ 162 if(forceOld){ 163 swfobject.embedSWF( 164 "book.swf", "flashContent", 165 "100%", "100%", 166 swfVersionStr, xiSwfUrlStr, 167 flashvars, params, attributes); 168 swfobject.createCSS("#flashContent", "display:block;text-align:left;"); 169 return; 170 } 171 var pageIndex=getURLParam('pageIndex'); 172 if(!pageIndex){ 173 pageIndex=-1; 174 } 175 if(BR.isMobile){ 176 if(hasMobileVersion){ 177 178 if(pageIndex!=-1){ 179 window.location = "mobile/index.html#p="+pageIndex; 180 }else{ 181 window.location = "mobile/index.html"+(window.location.hash?window.location.hash:''); 182 //window.location = "mobile/index.html"; 183 } 184 }else if(hasBasicHtmlVersion){ 185 window.location ='files/basic-html/index.html'; 186 }else { 187 swfobject.embedSWF( 188 "book.swf", "flashContent", 189 "100%", "100%", 190 swfVersionStr, xiSwfUrlStr, 191 flashvars, params, attributes,callback); 192 swfobject.createCSS("#flashContent", "display:block;text-align:left;"); 193 } 194 }else{ 195 loadType = (window.location.href.match(/^file:/) && swfobject.getFlashPlayerVersion()["major"] >
195= 24 && hasMobileVersion) ? 2 : loadType; 196 if(loadType==2){ 197 if(hasMobileVersion){ 198 if(pageIndex!=-1){ 199 window.location = "mobile/index.html#p="+pageIndex; 200 }else{ 201 window.location = "mobile/index.html"+(window.location.hash?window.location.hash:''); 202 //window.location = "mobile/index.html"; 203 } 204 return; 205 } 206 } 207 swfobject.embedSWF( 208 "book.swf", "flashContent", 209 "100%", "100%", 210 swfVersionStr, xiSwfUrlStr, 211 flashvars, params, attributes,callback); 212 swfobject.createCSS("#flashContent", "display:block;text-align:left;"); 213 } 214} 215detectAndGoVersion();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.