元
( function() {"use strict";
var webMessaging = ( function() {
var target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined);
return {
send : function(message) {
var jsonMessage = JSON.stringify(message);
target.postMessage(jsonMessage, "*");
}
};
}());
var FlickEventHandler = function(sourceContainer) {
this.container = sourceContainer;
this.initialize();
};
FlickEventHandler.prototype = {
initialize : function() {
this.container.addEventListener('touchstart', this, false);
this.container.addEventListener('touchmove', this, false);
},
handleEvent : function(event) {
var message = {};
switch(event.type) {
case "touchstart":
this.movedFlg = false;
this.start = {
pageX : event.touches[0].pageX,
pageY : event.touches[0].pageY,
time : Number(new Date())
};
this.isScrolling = undefined;
break;
case "touchmove":
if (this.movedFlg) {
return;
}
if (event.touches.length > 1 || event.scale && event.scale !== 1) {
return;
}
this.deltaX = event.changedTouches[0].pageX - this.start.pageX;
this.deltaY = event.changedTouches[0].pageY - this.start.pageY;
this.deltaTime = Number(new Date()) - this.start.time;
if ( typeof this.isScrolling === 'undefined') {
this.isScrolling = !! (this.isScrolling || Math.abs(this.deltaX) < Math.abs(this.deltaY) );
}
if (this.isScrolling) {
return;
}
if (Math.abs(this.deltaX) > 50) {
if (this.deltaX < 0) {
message = {
"flick" : "close"
};
}
if (this.deltaX > 0) {
message = {
"flick" : "open"
};
}
webMessaging.send(message);
this.movedFlg = true;
}
break;
}
}
};
var AutoFontSpan = function(target, size) {
this.target = target;
this.size = size;
this.setSize();
};
AutoFontSpan.prototype = {
BASE_RATIO : 1 / 360,
setSize : function() {
try {
this.target.style.fontSize = Math.round(this.getDocWidth() * this.BASE_RATIO * this.size * 100) + '%';
} catch(e) {
alert(e);
}
},
getDocWidth : function() {
return document.documentElement.clientWidth;
}
};
var getHeight = function() {
return document.body.scrollHeight;
};
function init() {
var autoFontSpans = [];
var elms = document.getElementsByTagName('span');
for (var i = 0; i < elms.length; i++) {
if (elms[i].getAttribute('size')) {
var autoFontSpan = new AutoFontSpan(elms[i], elms[i].getAttribute('size'));
autoFontSpans.push(autoFontSpan);
}
}
new FlickEventHandler(document.body);
var message = {
"iframeload" : {
"height" : getHeight()
}
};
webMessaging.send(message);
window.addEventListener("resize", function() {
for (var i = 0; i < autoFontSpans.length; i++) {
autoFontSpans[i].setSize();
}
var message = {
"resize" : {
"height" : getHeight()
}
};
webMessaging.send(message);
}, false);
}
window.addEventListener('load', init, false);
window.addEventListener('message', function(event) {
}, false);
}());
(function(){var b=(function(){var f=parent.postMessage?parent:(parent.document.postMessage?parent.document:undefined);return{send:function(h){var g=JSON.stringify(h);f.postMessage(g,"*")}}}());var e=function(f){this.container=f;this.initialize()};e.prototype={initialize:function(){this.container.addEventListener("touchstart",this,false);this.container.addEventListener("touchmove",this,false)},handleEvent:function(g){var f={};switch(g.type){case"touchstart":this.movedFlg=false;this.start={pageX:g.touches[0].pageX,pageY:g.touches[0].pageY,time:Number(new Date())};this.isScrolling=undefined;break;case"touchmove":if(this.movedFlg){return}if(g.touches.length>1||g.scale&&g.scale!==1){return}this.deltaX=g.changedTouches[0].pageX-this.start.pageX;this.deltaY=g.changedTouches[0].pageY-this.start.pageY;this.deltaTime=Number(new Date())-this.start.time;if(typeof this.isScrolling==="undefined"){this.isScrolling=!!(this.isScrolling||Math.abs(this.deltaX)<Math.abs(this.deltaY))}if(this.isScrolling){return}if(Math.abs(this.deltaX)>50){if(this.deltaX<0){f={flick:"close"}}if(this.deltaX>0){f={flick:"open"}}b.send(f);this.movedFlg=true}break}}};var a=function(g,f){this.target=g;this.size=f;this.setSize()};a.prototype={BASE_RATIO:1/360,setSize:function(){try{this.target.style.fontSize=Math.round(this.getDocWidth()*this.BASE_RATIO*this.size*100)+"%"}catch(f){alert(f)}},getDocWidth:function(){return document.documentElement.clientWidth}};var d=function(){return document.body.scrollHeight};function c(){var f=[];var j=document.getElementsByTagName("span");for(var h=0;h<j.length;h++){if(j[h].getAttribute("size")){var g=new a(j[h],j[h].getAttribute("size"));f.push(g)}}new e(document.body);var k={iframeload:{height:d()}};b.send(k);window.addEventListener("resize",function(){for(var l=0;l<f.length;l++){f[l].setSize()}var m={resize:{height:d()}};b.send(m)},false)}window.addEventListener("load",c,false);window.addEventListener("message",function(f){},false)}());