/*\r
* pettanR peta.common.js\r
- * version 0.5.14\r
+ * version 0.5.44\r
* \r
* author:\r
* itozyun\r
v = decodeURIComponent( elm[ 1]);\r
if( '' + parseFloat( v ) === v ) v = parseFloat( v );\r
if( '' + parseInt( v, 10 ) === '0' + v ) v = parseInt( v, 10 );\r
- if( v === 'true') v = true;\r
- if( v === 'false') v = false;\r
- if( v === 'null') v = null;\r
- if( v === 'undefined') v = undefined;\r
+ if( v === 'true' ) v = true;\r
+ if( v === 'false' ) v = false;\r
+ if( v === 'null' ) v = null;\r
+ if( v === 'undefined' ) v = undefined;\r
ret[ name] = v;\r
} else\r
if( elm.length === 1){\r
ret[ name] = true;\r
- }\r
- }\r
+ };\r
+ };\r
return ret;\r
- }\r
+ };\r
return {};\r
})(),\r
IS_DEBUG = Type.isBoolean( URL_PARAMS.debug ) ? URL_PARAMS.debug : IS_LOCAL === true;\r
return {\r
- version: '0.5.8',\r
+ version: '0.5.40',\r
URL_PARAMS: URL_PARAMS,\r
LOCAL: IS_LOCAL,\r
DEBUG: IS_DEBUG,\r
})();\r
\r
return {\r
- PETTANR_ROOT_PATH: PETTANR_ROOT_PATH,\r
- URL_ORIGINAL_PICTURES_JSON: ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'original_pictures.json',\r
- URL_RESOURCE_PICTURES_JSON: ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'resource_pictures.json',\r
- URL_COMICS_JSON: ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'comics.json',\r
- URL_PANELS_JSON: ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'panels.json',\r
- URL_MY_PANELS_JSON: ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'home\/panel.json',\r
- NS_PETTANR_COMIC: 'pettanr-comic',\r
- THUMBNAIL_PATH: SERVER_SUPPORT === false ? RELATIVE + 'resource_pictures\/thumbnail\/' : PETTANR_ROOT_PATH + 'resource_pictures\/',\r
- RESOURCE_PICTURE_PATH: SERVER_SUPPORT === false ? RELATIVE + 'resource_pictures\/' : PETTANR_ROOT_PATH + 'resource_pictures\/full\/',\r
- PANEL_PICTURE_PATH: SERVER_SUPPORT === false ? RELATIVE + 'resource_pictures\/' : PETTANR_ROOT_PATH + 'pictures\/',\r
- SYSTEM_PICTURE_PATH: ( SERVER_SUPPORT === false ? RELATIVE : PETTANR_ROOT_PATH ) + 'system_pictures\/',\r
- CREATE_COMIC_JS: SERVER_SUPPORT === false ? 'js\/create_new_comic.js' : PETTANR_ROOT_PATH + 'comics\/new.js',\r
- CREATE_PANEL_JS: SERVER_SUPPORT === false ? 'js\/create_new_panel.js' : PETTANR_ROOT_PATH + 'panels\/new.js',\r
- UPLOAD_PICTURE_JS: SERVER_SUPPORT === false ? 'js\/upload_picture.js' : PETTANR_ROOT_PATH + 'original_pictures\/new.js',\r
- REGISTER_ARTIST_JS: SERVER_SUPPORT === false ? 'js\/register_artist.js' : PETTANR_ROOT_PATH + 'artists\/new.js',\r
- SERVER_SUPPORT: SERVER_SUPPORT,\r
- URL_PETA_APPS_CSS: ( SERVER_SUPPORT === false ? 'stylesheets' : '\/assets' ) + '\/peta.apps.css'\r
+ PETTANR_ROOT_PATH : PETTANR_ROOT_PATH,\r
+ URL_MY_ORIGINAL_PICTURES_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'original_pictures.json',\r
+ URL_MY_RESOURCE_PICTURES_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'home\/resource_pictures.json',\r
+ URL_RESOURCE_PICTURES_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'resource_pictures.json',\r
+ URL_MY_RESOURCE_PICTURES_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'home\/resource_picture.json',\r
+ URL_COMICS_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'comics.json',\r
+ URL_MY_COMICS_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'home\/comic.json',\r
+ URL_PANELS_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'panels.json',\r
+ URL_MY_PANELS_JSON : ( SERVER_SUPPORT === false ? 'json\/' : PETTANR_ROOT_PATH ) + 'home\/panel.json',\r
+ NS_PETTANR_COMIC : 'pettanr-comic',\r
+ THUMBNAIL_PATH : SERVER_SUPPORT === false ? RELATIVE + 'resource_pictures\/thumbnail\/' : PETTANR_ROOT_PATH + 'resource_pictures\/',\r
+ RESOURCE_PICTURE_PATH : SERVER_SUPPORT === false ? RELATIVE + 'resource_pictures\/' : PETTANR_ROOT_PATH + 'resource_pictures\/full\/',\r
+ PANEL_PICTURE_PATH : SERVER_SUPPORT === false ? RELATIVE + 'resource_pictures\/' : PETTANR_ROOT_PATH + 'pictures\/',\r
+ SYSTEM_PICTURE_PATH : ( SERVER_SUPPORT === false ? RELATIVE : PETTANR_ROOT_PATH ) + 'system_pictures\/',\r
+ CREATE_COMIC_JS : SERVER_SUPPORT === false ? 'js\/create_new_comic.js' : PETTANR_ROOT_PATH + 'comics\/new.js',\r
+ CREATE_PANEL_JS : SERVER_SUPPORT === false ? 'js\/create_new_panel.js' : PETTANR_ROOT_PATH + 'panels\/new.js',\r
+ UPLOAD_PICTURE_JS : SERVER_SUPPORT === false ? 'js\/upload_picture.js' : PETTANR_ROOT_PATH + 'original_pictures\/new.js',\r
+ REGISTER_ARTIST_JS : SERVER_SUPPORT === false ? 'js\/register_artist.js' : PETTANR_ROOT_PATH + 'artists\/new.js',\r
+ SERVER_SUPPORT : SERVER_SUPPORT,\r
+ URL_PETA_APPS_CSS : ( SERVER_SUPPORT === false ? 'stylesheets' : '\/assets' ) + '\/peta.apps.css'\r
}\r
})();\r
\r
* bind : 製本\r
*/\r
pettanr.bind = ( function(){\r
- var BIND_WORKER_ARRAY = [],\r
+ var BIND_WORKER_ARRAY = [],\r
NAMESPACE_CLASSNAME = pettanr.CONST.NS_PETTANR_COMIC + '-',\r
- PICTURE_PATH = pettanr.CONST.PANEL_PICTURE_PATH,\r
- ELM_DETECT_WIDTH = ( function(){\r
- var ret = document.createElement( 'div');\r
+ PICTURE_PATH = pettanr.CONST.PANEL_PICTURE_PATH,\r
+ ELM_DETECT_WIDTH = ( function(){\r
+ var ret = document.createElement( 'div' );\r
ret.style.cssText = 'width: auto;height: 0;padding: 0;margin: 0;display: block;visibility: hidden;float: none;position: static;';\r
return ret;\r
})(),\r
};\r
\r
\r
- var ElementBuilderClass = function( elmTarget, noClassnameMode ){\r
- var RIMG_ARRAY = [],\r
- BALLOON_ARRAY = [];\r
- \r
- function buildComicElement(){\r
+ var ElementBuilder = function( elmTarget, noClassname ){\r
+ this.imageList = [];\r
+ this.balloonList = [];\r
+ this.elmTarget = elmTarget;\r
+ this.noClassname = noClassname;\r
+ };\r
+ ElementBuilder.prototype = {\r
+ build : function( json, zoom ){\r
+ this.clean();\r
\r
- };\r
- \r
- function buildPanelElement( json, zoom ){\r
- var _elmPanel = document.createElement( 'div' ),\r
- _style = {\r
+ // json is Comic ? Panel ?\r
+ var stories = json.children || json.stories,\r
+ i, l;\r
+ if( Type.isArray( stories ) === true ){\r
+ // comic\r
+ for( i = 0, l = stories.length; i<l; ++i ){\r
+ this.buildPanelElement( stories[ i ], zoom );\r
+ };\r
+ } else\r
+ if( json.elements ){\r
+ // panel\r
+ this.buildPanelElement( json, zoom );\r
+ } else {\r
+ // invalid json\r
+ };\r
+ },\r
+ buildFromFile : function( file, zoom ){\r
+ this.clean();\r
+ \r
+ var l = file.getChildFileLength(),\r
+ data = file.read(),\r
+ i, story;\r
+ if( data.title ){\r
+ // comic\r
+ for( i = 0; i<l; ++i ){\r
+ story = file.getChildFileAt( i ).read();\r
+ this.buildPanelElement( story.panel, zoom );\r
+ };\r
+ } else\r
+ if( data.panel ){\r
+ // story\r
+ this.buildPanelElement( data.panel, zoom );\r
+ } else\r
+ if( data.border ){\r
+ // panel\r
+ this.buildPanelElement( data, zoom );\r
+ } else {\r
+ // invalid json\r
+ };\r
+ },\r
+ buildComicElement : function(){\r
+ \r
+ },\r
+ buildPanelElement : function( json, zoom ){\r
+ var elmPanel = document.createElement( 'div' ),\r
+ style = {\r
'border-width': typeof json.border === 'number' ? json.border + 'px' : 0,\r
- width: json.width + 'px',\r
+ width: json.width + 'px',\r
height: json.height + 'px'\r
},\r
- _cssText = [],\r
- _comicElements = json.panel_elements || [],\r
- _comicElement, _elmImg, _rImg, _rPic,\r
- _balloon, _elmBalloonWrap, _elmText, _text, _speechesAttributes, _key;\r
- elmTarget.appendChild( _elmPanel );\r
+ cssText = [],\r
+ elements = json.elements,\r
+ rPic,\r
+ p, i, l;\r
+ this.elmTarget.appendChild( elmPanel );\r
\r
- if( noClassnameMode === true ){\r
+ if( this.noClassname === true ){\r
\r
} else {\r
- _elmPanel.className = NAMESPACE_CLASSNAME + 'panel';\r
- }\r
- for( var _key in _style ){\r
- _cssText.push( _key + ':' + _style[ _key ] );\r
- }\r
- _elmPanel.style.cssText = _cssText.join( ';' );\r
+ elmPanel.className = NAMESPACE_CLASSNAME + 'panel';\r
+ };\r
+ for( p in style ){\r
+ cssText.push( p + ':' + style[ p ] );\r
+ };\r
+ elmPanel.style.cssText = cssText.join( ';' );\r
\r
- for( var i=0, l=_comicElements.length; i<l; ++i ){\r
- _comicElement = _comicElements[ i ];\r
- _rPic = _comicElement.resource_picture;\r
- if( _rPic ){\r
- _rImg = pettanr.image.createReversibleImage(\r
- [ PICTURE_PATH, _rPic.id, '.', _rPic.ext ].join( ''),\r
- _comicElement.width, _comicElement.height\r
- );\r
- _elmImg = _rImg.elm;\r
- _elmPanel.appendChild( _elmImg );\r
- _elmImg.className = NAMESPACE_CLASSNAME + 'image';\r
- _elmImg.style.cssText = [\r
- 'left:', _comicElement.x, 'px;',\r
- 'top:', _comicElement.y, 'px;',\r
- 'z-index:',_comicElement.z, ';'\r
- ].join( ''); \r
- if( _elmImg.tagName === 'img' ){\r
- _elmImg.width = Math.abs( _comicElement.width );\r
- _elmImg.height = Math.abs( _comicElement.height );\r
- } else {\r
- _elmImg.style.width = Math.abs( _comicElement.width ) + 'px';\r
- _elmImg.style.height = Math.abs( _comicElement.height ) + 'px';\r
- };\r
- \r
- RIMG_ARRAY.push( _rImg );\r
+ if( !elements ) return;\r
+ for( i = 0, l = elements.length; i < l; ++i ){\r
+ data = elements[ i ];\r
+ rPic = data.picture;\r
+ if( rPic ){\r
+ this.buildImage( elmPanel, data, rPic );\r
} else {\r
- _elmBalloonWrap = document.createElement( 'div' );\r
- _elmPanel.appendChild( _elmBalloonWrap );\r
- _elmBalloonWrap.className = NAMESPACE_CLASSNAME + 'balloon';\r
- _elmBalloonWrap.style.cssText = [\r
- 'width:', _comicElement.width, 'px;',\r
- 'height:', _comicElement.height, 'px;',\r
- 'left:', _comicElement.x, 'px;',\r
- 'top:', _comicElement.y, 'px;',\r
- 'z-index:', _comicElement.z, ';'\r
- ].join( '');\r
-\r
- _balloon = pettanr.balloon.createBalloon( _comicElement.width, _comicElement.height, _comicElement.tail );\r
- _elmBalloonWrap.appendChild( _balloon.elm );\r
- \r
- _elmText = document.createElement( 'p' );\r
- _elmBalloonWrap.appendChild( _elmText );\r
- \r
- _elmText.appendChild( document.createElement( 'span' ) );\r
- \r
- _text = '';\r
- _speechesAttributes = _comicElement.speeches_attributes;\r
- if( _speechesAttributes ){\r
- for( _key in _speechesAttributes ){\r
- _text += _speechesAttributes[ _key ] && _speechesAttributes[ _key ].content ? _speechesAttributes[ _key ].content : '';\r
- };\r
- };\r
- _elmText.firstChild.appendChild( document.createTextNode( _text ));\r
- BALLOON_ARRAY.push( _balloon );\r
+ this.buildBalloon( elmPanel, data );\r
};\r
};\r
- };\r
- \r
- function clean(){\r
- // clean elmTarget\r
- while( RIMG_ARRAY.length > 0 ){\r
- RIMG_ARRAY.shift().destroy();\r
- };\r
- while( BALLOON_ARRAY.length > 0 ){\r
- BALLOON_ARRAY.shift().destroy();\r
+ },\r
+ buildImage : function( elmPanel, data, rPic ){\r
+ var oPic = rPic.original_picture,\r
+ rImg = pettanr.image.createReversibleImage(\r
+ [ PICTURE_PATH, oPic.id, '.', oPic.ext ].join( '' ),\r
+ data.width, data.height\r
+ ),\r
+ elmImg = rImg.elm;\r
+ elmPanel.appendChild( elmImg );\r
+ elmImg.className = NAMESPACE_CLASSNAME + 'image';\r
+ elmImg.style.cssText = [\r
+ 'left:', data.x, 'px;',\r
+ 'top:', data.y, 'px;',\r
+ 'z-index:', data.z, ';'\r
+ ].join( ''); \r
+ if( elmImg.tagName === 'img' ){\r
+ elmImg.width = Math.abs( data.width );\r
+ elmImg.height = Math.abs( data.height );\r
+ } else {\r
+ elmImg.style.width = Math.abs( data.width ) + 'px';\r
+ elmImg.style.height = Math.abs( data.height ) + 'px';\r
};\r
- Util.removeAllChildren( elmTarget ); \r
- };\r
- \r
- this.build = function( json, zoom ){\r
- clean();\r
\r
- // json is Comic ? Panel ?\r
- var panels = json.stories;\r
- if( Type.isArray( panels ) === true ){\r
- // comic\r
- for( var i=0, l=panels.length; i<l; ++i ){\r
- buildPanelElement( panels[ i ], zoom );\r
+ this.imageList.push( rImg ); \r
+ },\r
+ buildBalloon : function( elmPanel, data ){\r
+ var elmBalloonWrap = document.createElement( 'div' ),\r
+ elmText = document.createElement( 'p' ),\r
+ content = '',\r
+ speechesAttr = data.speeches_attributes,\r
+ balloon, p;\r
+ elmPanel.appendChild( elmBalloonWrap );\r
+ elmBalloonWrap.className = NAMESPACE_CLASSNAME + 'balloon';\r
+ elmBalloonWrap.style.cssText = [\r
+ 'width:', data.width, 'px;',\r
+ 'height:', data.height, 'px;',\r
+ 'left:', data.x, 'px;',\r
+ 'top:', data.y, 'px;',\r
+ 'z-index:', data.z, ';'\r
+ ].join( '' );\r
+\r
+ balloon = pettanr.balloon.createBalloon( data.width, data.height, data.tail );\r
+ elmBalloonWrap.appendChild( balloon.elm );\r
+ \r
+ elmBalloonWrap.appendChild( elmText );\r
+ \r
+ elmText.appendChild( document.createElement( 'span' ) );\r
+ \r
+ if( speechesAttr ){\r
+ for( p in speechesAttr ){\r
+ content += speechesAttr[ p ] && speechesAttr[ p ].content ? speechesAttr[ p ].content : '';\r
};\r
- } else\r
- if( json.panel_elements ){\r
- // panel\r
- buildPanelElement( json, zoom );\r
- } else {\r
- // invalid json\r
};\r
- };\r
- this.zoom = function(){\r
- \r
- };\r
- this.destroy = function(){\r
- clean();\r
- };\r
+ elmText.firstChild.appendChild( document.createTextNode( content ));\r
+ this.balloonList.push( balloon );\r
+ },\r
+ clean : function(){\r
+ // clean elmTarget\r
+ while( this.imageList.length > 0 ){\r
+ this.imageList.shift().destroy();\r
+ };\r
+ while( this.balloonList.length > 0 ){\r
+ this.balloonList.shift().destroy();\r
+ };\r
+ Util.removeAllChildren( this.elmTarget );\r
+ },\r
+ zoom : function(){},\r
+ destroy : function(){\r
+ this.clean();\r
+ } \r
};\r
\r
- var BindWorkerClass = function( elmTarget, json, zoomSelfEnabled, noClassnameMode ){\r
- var builder = new ElementBuilderClass( elmTarget, noClassnameMode );\r
- var elmDetectW = ELM_DETECT_WIDTH.cloneNode( false );\r
- var resizer = null;\r
- \r
+ var BindWorker = function( elmTarget, json, zoomSelfEnabled, noClassname ){\r
+ this.builder = new ElementBuilder( elmTarget, noClassname );\r
+ this.elmDetectW = ELM_DETECT_WIDTH.cloneNode( false );\r
+ this._json = json;\r
+ this.noClassname = noClassname;\r
if( zoomSelfEnabled === true ){\r
- elmTarget.parentNode.insertBefore( elmDetectW, elmTarget );\r
- resizer = new ResizeAgentClass( onResize, elmDetectW );\r
+ elmTarget.parentNode.insertBefore( this.elmDetectW, elmTarget );\r
+ this.resizer = new ResizeAgentClass( onResize, this.elmDetectW );\r
};\r
function onResize(){\r
\r
};\r
- json && typeof json === 'object' && builder.build( json );\r
- \r
- this.init = function(){\r
+ json && typeof json === 'object' && this.builder.build( json );\r
+ };\r
+ BindWorker.prototype = {\r
+ init : function(){\r
\r
- };\r
- this.zoom = function(){\r
- builder.zoom();\r
- };\r
- this.json = function( _json ){\r
- json = _json;\r
- builder.build( _json );\r
- };\r
- this.targetElement = function(){\r
+ },\r
+ zoom : function(){\r
+ this.builder.zoom();\r
+ },\r
+ json : function( json ){\r
+ this._json = json;\r
+ this.builder.build( json, this.noClassname );\r
+ },\r
+ file : function( file ){\r
+ this.builder.buildFromFile( file, this.noClassname );\r
+ },\r
+ targetElement : function(){\r
\r
- };\r
- this.layout = function(){\r
+ },\r
+ layout : function(){\r
\r
- };\r
- this.destroy = function(){\r
- builder.destroy();\r
- elmTarget = json = builder = null;\r
- };\r
+ },\r
+ destroy : function(){\r
+ this.builder.destroy();\r
+ delete this.json;\r
+ delete this.builder;\r
+ } \r
};\r
- \r
return {\r
createBindWorker: function( elmTarget, opt_COMICJSONorPANELJSON, opt_zoomSelfEnabled, opt_noClassnameMode ){\r
- var ret = new BindWorkerClass( elmTarget, opt_COMICJSONorPANELJSON, !!opt_zoomSelfEnabled, !!opt_noClassnameMode);\r
+ var ret = new BindWorker( elmTarget, opt_COMICJSONorPANELJSON, !!opt_zoomSelfEnabled, !!opt_noClassnameMode );\r
BIND_WORKER_ARRAY.push( ret );\r
return ret;\r
},\r
* Google Analytics\r
*/\r
\r
-if( pettanr.LOCAL === false ){\r
+if( pettanr.LOCAL === false || document.location.href.indexOf( 'localhost:' ) === -1 ){\r
var _gaq = _gaq || [];\r
_gaq.push(['_setAccount', 'UA-28023955-1']);\r
_gaq.push(['_trackPageview']);\r
\r
- (function() {\r
+ ( function(){\r
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r
})(); \r
-}
\ No newline at end of file
+};
\ No newline at end of file