";
serializedNode.translateTo.push( "div" );
}
var pseudoStyle = this._styleStrategy.getNodeStyle( node, null, ":before" );
if ( fullPage && node.nodeName.toLowerCase() == "body" ) {
var wrapBodyStyle = new Evernote.ClipStyle( nodeStyle, null, Evernote.ClipStyle.CSS_GROUP.getExtForStyle( "background" ) );
this._serializedDom += "<" + "div" + " " + this.serializeStyles( node, wrapBodyStyle ) + " >";
serializedNode.translateTo.push( "div" );
var bgGroup = Evernote.ClipStyle.CSS_GROUP.getExtForStyle( "background" );
for ( var ind in bgGroup ) {
if ( bgGroup.hasOwnProperty( ind ) ) {
nodeStyle.removeStyle( bgGroup[ind] );
}
}
}
if ( !fullPage && node == root ) {
nodeStyle.removeStyle( "float" );
}
if ( !serializedNode.node.hasChildNodes() && !(nodeStyle.getStyle( "height" ) || node.getAttribute( "height" )) ) {
nodeStyle.addStyle( {height:"0px"} );
}
if ( !serializedNode.node.hasChildNodes() && !(nodeStyle.getStyle( "width" ) || node.getAttribute( "width" )) ) {
nodeStyle.addStyle( {width:"0px"} );
}
if(nodeStyle.getStyle("position") == "fixed") {
nodeStyle.addStyle({position: "absolute"});
}
if ( (node.nodeName.toUpperCase() == "SPAN"/* || node.nodeName.toUpperCase() == "A"*/) && node.getElementsByTagName( "IMG" ).length > 0) {
nodeName = "div";
if ( !nodeStyle.getStyle( "display" ) )
nodeStyle.addStyle( {display:"inline"} );
}
if (node.nodeName.toUpperCase() == "TH" || node.nodeName.toUpperCase() == "TD") {
nodeStyle.addStyle( {display:"table-cell"} );
}
nodeStyle.removeDefaultCssStyle();
this._serializedDom += this.serializePseudoElement( node, pseudoStyle );
stylesStr = this.serializeStyles( node, nodeStyle );
if ( (nodeName.toLowerCase() == "div" /*|| nodeName.toLowerCase() == "span"*/) && nodeStyle.getStyle( "float" ) && nodeStyle.getStyle( "float" ) != "none" && serializedNode.parentNode && node.parentNode.nodeName.toLowerCase() != "a" ) {
if ( !serializedNode.node.nextSibling || serializedNode.node.nextSibling.nodeType == 3 )
serializedNode.parentNode.isInlineBlock = true;
}
}
Evernote.Logger.debug( node.nodeName + " " + attrsStr + " -> " + nodeName + " " + stylesStr );
this._serializedDom += "<" + nodeName + " " + attrsStr + " " + stylesStr + " >";
serializedNode.setStyle(nodeStyle);
serializedNode.translateTo.push( nodeName );
return serializedNode;
}
catch ( e ) {
Evernote.Logger.error( "Failed to start serialize node :" + e );
throw e;
}
};
Evernote.NodeSerializer.prototype.serializePseudoElement = function ( node, pseudoStyle ) {
try {
var nodeName = Evernote.ClipRules.translateNode( node );
if ( pseudoStyle.getStylesNames().length > 0 ) {
var content = " ";
if ( pseudoStyle.getStyle( "content" ) ) {
content = pseudoStyle.getStyle( "content" );
pseudoStyle.removeStyle( "content" );
}
var beforeStylesStr = this.serializeStyles( node, pseudoStyle );
return "<" + nodeName + " " + beforeStylesStr + " >" + content.replace( /"/g, '' ) + " " + nodeName + ">";
}
return "";
}
catch ( e ) {
Evernote.Logger.error( "Failed to serialize pseudo element :" + e );
throw e;
}
};
Evernote.NodeSerializer.prototype.textNode = function ( node, range ) {
this._serializedDom += this.serializeTextNode( node, range );
};
Evernote.NodeSerializer.prototype.endNode = function ( serializedNode ) {
try {
Evernote.Logger.debug( "end serialize node :" + serializedNode.translateTo );
if ( serializedNode.isInlineBlock ) {
var name = "div";
if ( serializedNode.node.nodeName.toLowerCase() == "ul" ) {
name = "li"
}
this._serializedDom += "<" + name + " style=\"clear: both; width: 0px; height: 0px;\">" + " " + " " + name + ">"
}
var node = serializedNode.node;
var serializedPseudo = "";
var pseudoStyle = new Evernote.ClipStyle();
if ( this._styleStrategy ) {
pseudoStyle = this._styleStrategy.getNodeStyle( node, null, ":after" );
if ( pseudoStyle.getStylesNames().length > 0 ) {
var floatStyle = serializedNode.getStyle().getStyle( "float" );
if ( floatStyle && !pseudoStyle.getStyle( "float" ) )
pseudoStyle.addStyle( { "float" : floatStyle } );
if ( node.nodeName.toLowerCase() == "ul" )
serializedPseudo = this.serializePseudoElement( document.createElement( "div" ), pseudoStyle );
}
}
while ( serializedNode.translateTo.length > 0 ) {
var nodeName = serializedNode.translateTo.pop();
if ( !Evernote.ClipRules.isSelfClosingNode( serializedNode.node ) ) {
if ( !serializedNode.node.hasChildNodes() )
this._serializedDom += " ";
}
if ( nodeName.toLowerCase() == "ul" ) {
this._serializedDom += this.serializePseudoElement( document.createElement( "li" ), pseudoStyle );
}
this._serializedDom += " " + nodeName + ">";
}
this._serializedDom += serializedPseudo;
}
catch ( e ) {
Evernote.Logger.error( "Failed to end serialize node :" + e );
throw e;
}
};
Evernote.NodeSerializer.prototype.serializeTextNode = function ( node, range ) {
Evernote.Logger.debug( "DomSerializer.serializeTextNode()" );
try {
var nodeValue = node.nodeValue;
if ( !range ) {
return Evernote.Utils.htmlEncode( nodeValue );
}
else {
if ( range.startContainer == node && range.startContainer == range.endContainer ) {
return Evernote.Utils.htmlEncode( nodeValue.substring( range.startOffset, range.endOffset ) );
}
else if ( range.startContainer == node ) {
return Evernote.Utils.htmlEncode( nodeValue.substring( range.startOffset ) );
}
else if ( range.endContainer == node ) {
return Evernote.Utils.htmlEncode( nodeValue.substring( 0, range.endOffset ) );
}
else if ( range.commonAncestorContainer != node ) {
return Evernote.Utils.htmlEncode( nodeValue );
}
}
}
catch ( e ) {
Evernote.Logger.error( "DomSerializer.serializeTextNode() failed " + e );
throw e;
}
return "";
};
Evernote.NodeSerializer.prototype.serializeConditionalNode = function ( node, root, fullPage ) {
Evernote.Logger.debug( "DomSerializer.serializeConditionalNode()" );
var impl = Evernote.ElementSerializerFactory.getImplementationFor( node );
if ( typeof impl == 'function' ) {
var nodeStyle = (this._styleStrategy) ? this._styleStrategy.styleForNode( node, root, fullPage ).evaluated : null;
if (nodeStyle)
nodeStyle.removeDefaultCssStyle();
var serializer = new impl( node, nodeStyle );
var content = serializer.serialize( this._docBase );
var imageUrl = serializer.getImageUrl();
return { content:content, imageUrl:imageUrl, nodeStyle:nodeStyle };
}
return { content:"", imageUrl:"", nodeStyle:new Evernote.ClipStyle() };
};
Evernote.NodeSerializer.prototype.serializeAttributes = function ( node ) {
Evernote.Logger.debug( "DomSerializer.serializeAttributes()" );
try {
var attrs = node.attributes;
var str = "";
for ( var i = 0; i < attrs.length; ++i ) {
if ( !Evernote.ClipRules.isNoKeepNodeAttr( attrs[ i ], Evernote.ClipRules.translateNode( node ), node ) ) {
var attrValue = (attrs[ i ].value) ? Evernote.GlobalUtils.escapeXML( attrs[ i ].value ) : "";
if ( (attrs[ i ].name.toLowerCase() == "src" || attrs[ i ].name.toLowerCase() == "href") && attrValue.toLowerCase().indexOf( "http" ) != 0 ) {
attrValue = Evernote.Utils.makeAbsolutePath( this._docBase, attrValue );
}
str += " " + attrs[ i ].name.toLowerCase() + "=\"" + attrValue + "\"";
}
}
return str;
}
catch ( e ) {
Evernote.Logger.error( "DomSerializer.serializeAttributes() failed: error = " + e );
}
return "";
};
Evernote.NodeSerializer.prototype.serializeStyles = function ( node, nodeStyle ) {
Evernote.Logger.debug( "DomSerializer.serializeStyles()" );
try {
var str = "";
if(node.nodeName.toLowerCase() == "map") {
//Map should not have style attribute according to Evernote DTD
return "";
}
if ( node && nodeStyle instanceof Evernote.ClipStyle ) {
str += " style=\"" + nodeStyle.toString().replace( /"/g, "" ) + "\"";
}
return str;
}
catch ( e ) {
Evernote.Logger.error( "DomSerializer.serializeStyles() failed: error = " + e );
throw e;
}
return "";
};
Evernote.NodeSerializer.prototype.getDocumentBase = function () {
Evernote.Logger.debug( "DomSerializer.getDocumentBase()" );
if ( !this._docBase ) {
var baseTags = this._tab.document.getElementsByTagName( "base" );
for ( var i = 0; i < baseTags.length; ++i ) {
var baseTag = baseTags[ i ];
if ( typeof baseTag == 'string' && baseTag.indexOf( "http" ) == 0 ) {
this._docBase = baseTag;
}
if ( this._docBase ) {
break;
}
}
if ( !this._docBase ) {
var location = this._tab.document.location;
this._docBase = location.protocol + "//" + location.host + location.pathname.replace( /[^\/]+$/, "" );
}
}
return this._docBase;
};
Evernote.NodeSerializer.prototype.getImagesUrls = function () {
return this._imagesUrls;
};
Evernote.NodeSerializer.prototype.getSerializedDom = function () {
return '
' + this._serializedDom.replace(/[^\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD]+/g, "") + '
';
};</script>
<script type="text/javascript" defer charset="ANSI">//"use strict";
Evernote.SerializedNode = function SerializedNode( node, parent ) {
this.node = node;
this._parentSerializedNode = parent;
this.translateTo = [ ];
};
Evernote.SerializedNode.prototype.translateTo = null;
Evernote.SerializedNode.prototype.node = null;
Evernote.SerializedNode.prototype._parentSerializedNode = null;
Evernote.SerializedNode.prototype.setStyle = function ( clipStyle ) {
this._clipStyle = clipStyle;
};
Evernote.SerializedNode.prototype.getStyle = function () {
return this._clipStyle;
};
Evernote.SerializedNode.prototype.parentNode = function () {
return this._parentSerializedNode;
};
</script>
<script type="text/javascript" defer charset="ANSI">//"use strict";
Evernote.StylesCollection = function StylesCollection() {
this._styles = { };
};
Evernote.StylesCollection.prototype._styles = null;
Evernote.StylesCollection.prototype.addStyle = function( name, value, isImportant ) {
if ( typeof name == "string" && typeof value == "string" ) {
Evernote.Logger.debug( "StylesCollection.addStyle(): name = " + name + ", value = " + value + ", isImportant = " + isImportant );
this._styles[ name ] = new Evernote.ClipStyleProperty( name, value, isImportant);
}
};
Evernote.StylesCollection.prototype.getStyle = function( name ) {
if ( typeof name == "string" ) {
Evernote.Logger.debug( "StylesCollection.getStyle(): name = " + name + " value: " + ((typeof this._styles[ name ] != "undefined") ? this._styles[ name ].value() : null) );
return (typeof this._styles[ name ] != "undefined") ? this._styles[ name ].value() : null;
}
return null;
};
Evernote.StylesCollection.prototype.removeStyle = function( name ) {
if ( typeof name == "string" ) {
Evernote.Logger.debug( "StylesCollection.removeStyle(): name = " + name );
this._styles[ name ] = null;
delete this._styles[ name ];
}
};
Evernote.StylesCollection.prototype.isImportant = function( name ) {
if ( typeof name == "string" ) {
return (typeof this._styles[ name ] != "undefined") ? this._styles[ name ].isImportant() : false;
}
};
Evernote.StylesCollection.prototype.getStylesNames = function() {
Evernote.Logger.debug( "StylesCollection.getStylesNames()" );
var stylesNames = [ ];
for ( var key in this._styles ) {
if ( this._styles[ key ] != null ) {
stylesNames.push( key );
}
}
return stylesNames;
};
Evernote.StylesCollection.prototype.getStylesNumber = function() {
Evernote.Logger.debug( "StylesCollection.getStylesNumber()" );
var num = 0;
for ( var key in this._styles ) {
if ( this._styles[ key ] != null ) {
++num;
}
}
return num;
};
</script>
<script type="text/javascript" defer charset="ANSI">Evernote.DataImageSerializer = function DataImageSerializer( node, nodeStyle ) {
if ( !nodeStyle ) {
nodeStyle = new Evernote.ClipStyle();
}
this.initialize( node, nodeStyle );
};
Evernote.inherit( Evernote.DataImageSerializer, Evernote.AbstractElementSerializer, true );
Evernote.DataImageSerializer.isResponsibleFor = function( node ) {
try {
if ( node && node.nodeType == Evernote.Node.ELEMENT_NODE && node.nodeName.toLowerCase() == "img" ) {
var src = node.getAttribute( "src" );
if ( src && src.indexOf( "data:image" ) != -1 ) {
return true;
}
}
} catch(e) {
Evernote.Logger.error("DataImageSerializer.isResponsibleFor failed due to error " + e);
}
return false;
};
Evernote.DataImageSerializer.prototype.serialize = function( /*docBase*/ ) {
Evernote.Logger.debug( "DataImageSerializer.serialize()" );
try {
this._nodeStyle.addStyle( { "background-image" : "url( + this._node.getAttribute( )src" ) + "')",
"width" : this._node.offsetWidth + "px",
"height" : this._node.offsetHeight + "px",
"background-repeat" : "no-repeat",
"display" : "block" } );
return "
";
}
catch ( e ) {
Evernote.Logger.error( "DataImageSerializer.serialize() failed: error = " + e );
}
return "";
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.VideoElementSerializer = function VideoElementSerializer( node, nodeStyle ) {
this.initialize( node, nodeStyle );
};
Evernote.inherit( Evernote.VideoElementSerializer, Evernote.AbstractElementSerializer, true );
Evernote.VideoElementSerializer.isResponsibleFor = function( node ) {
return node && node.nodeType == Evernote.Node.ELEMENT_NODE && node.nodeName.toLowerCase() == "video";
};
Evernote.VideoElementSerializer.prototype.serialize = function( /*docBase*/ ) {
Evernote.Logger.debug( "VideoElementSerializer.serialize()" );
try {
var width = this._node.offsetWidth;
var height = this._node.offsetHeight;
var doc = this._node.ownerDocument;
var canvas = doc.createElement( "CANVAS" );
canvas.width = width;
canvas.height = height;
var context = canvas.getContext( "2d" );
context.drawImage( this._node, 0, 0, width, height );
var dataUrl = canvas.toDataURL(" "image/png" );
context.clearRect( 0, 0, width, height );
this._nodeStyle.addStyle( { "background-image" : "url( + dataUrl + ),
"width" : width + "px",
"height" : height + "px",
"display" : "block" } );
return "
";
}
catch ( e ) {
Evernote.Logger.error( "VideoElementSerializer.serialize() failed: error = " + e );
}
return "";
};</script>
<script type="text/javascript" defer charset="ANSI">/**
* Serializes DOM element into an img pointing to the thumbnail of the video
*
* Video ids are used for obtaining thumbnails via
* https://i2.ytimg.com/vi/cAcxHQalWOw/hqdefault.jpg. These ids can be
* obtained from:
*
*
* - the URL of the document containing EMBED
* - iframe's src attribute that embeds the video via an iframe
* - src attribute of the embed object (though on actualy youtube.com it's not possible)
*
*
* Sample URLs are:
*
*
* http: //www.youtube.com/embed/IWJJBwKhvp4?wmode=opaque&rel=0
* http: //www.youtube.com/v/YZEbBZ2IrXE?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1
* http: //www.youtube.com/v/J3mjFSTsKiM&hl=en&fs=1
* http://www.youtube.com/watch?v=cAcxHQalWOw
* http://www.youtube.com/user/IFiDieApp?v=sdzCELofGgE&feature=pyv
*
*/
Evernote.YoutubeElementSerializer = function YoutubeElementSerializer( doc, node, nodeStyle ) {
this.initialize( doc, node, nodeStyle );
};
Evernote.inherit( Evernote.YoutubeElementSerializer, Evernote.AbstractElementSerializer, true );
Evernote.YoutubeElementSerializer.WATCH_URL_REGEX = /^https?:\/\/www\.youtube\.com\/watch\?.*v=([^&]+)/i;
Evernote.YoutubeElementSerializer.USER_CHANNEL_URL_REGEX = /^https?:\/\/www\.youtube\.com\/user\/([a-zA-Z0-9]+)\?v=([^&]+)/i;
Evernote.YoutubeElementSerializer.EMBED_URL_REGEX = /^https?:\/\/www\.youtube\.com\/embed\/([^\/\?&]+)/i;
Evernote.YoutubeElementSerializer.VIDEO_URL_REGEX = /^https?:\/\/www\.youtube\.com\/v\/([^\/\?&]+)/i;
Evernote.YoutubeElementSerializer.POSSIBLE_CONTAINER_NODES = [ "OBJECT" ];
Evernote.YoutubeElementSerializer.VIDEO_NODES = [ "EMBED", "IFRAME" ];
Evernote.YoutubeElementSerializer.WATCH_URL = "http://www.youtube.com/watch?v=$videoId$";
Evernote.YoutubeElementSerializer.USER_CHANNEL_URL = "http://www.youtube.com/user/$userId$?v=$videoId$";
Evernote.YoutubeElementSerializer.DEFAULT_THUMB_URL = "https://i2.ytimg.com/vi/$videoId$/default.jpg";
Evernote.YoutubeElementSerializer.HQ_THUMB_URL = "https://i2.ytimg.com/vi/$videoId$/hqdefault.jpg";
Evernote.YoutubeElementSerializer.DEFAULT_THUMB_WIDTH = 120;
Evernote.YoutubeElementSerializer.DEFAULT_THUMB_HEIGHT = 90;
Evernote.YoutubeElementSerializer.isResponsibleFor = function( node ) {
var params = this.extractVideoParamsFromNode( node );
return (params) ? true : false;
};
Evernote.YoutubeElementSerializer.extractVideoParamsFromNode = function( node ) {
Evernote.Logger.debug( "YoutubeElementSerializer.extractVideoIdFromNode()" );
try {
if ( node && node.nodeType == Evernote.Node.ELEMENT_NODE ) {
var view = window;
try {
view = node.ownerDocument.defaultView;
}
catch ( e ) {
}
var matches = null;
if ( view && (node.nodeName.toLowerCase() == "embed" || node.nodeName.toLowerCase() == "object") && view.location ) {
if ( (matches = view.location.href.match( this.WATCH_URL_REGEX )) && matches[ 1 ] ) {
return matches[ 1 ];
}
else if ( (matches = view.location.href.match( this.USER_CHANNEL_URL_REGEX )) && matches[ 1 ] && matches[ 2 ] ) {
return [ matches[ 1 ], matches[ 2 ] ];
}
}
else {
var videoNode = this.findVideoNode( node );
if ( videoNode ) {
var src = videoNode.getAttribute( "src" );
if ( src && (matches = src.match( this.EMBED_URL_REGEX )) && matches[ 1 ] ) {
return matches[ 1 ];
}
else if ( src && (matches = src.match( this.VIDEO_URL_REGEX )) && matches[ 1 ] ) {
return matches[ 1 ];
}
}
}
}
} catch(e) {
Evernote.Logger.error("failed to YoutubeElementSerializer.extractVideoParamsFromNode due to error " + e);
}
return null;
};
Evernote.YoutubeElementSerializer.findVideoNode = function( node ) {
Evernote.Logger.debug( "YoutubeElementSerializer.findVideoNode()" );
if ( node && node.nodeType == Evernote.Node.ELEMENT_NODE ) {
if ( Evernote.ArrayExtension.indexOf(this.VIDEO_NODES, node.nodeName.toUpperCase() ) >= 0 ) {
return node;
}
else if ( Evernote.ArrayExtension.indexOf(this.POSSIBLE_CONTAINER_NODES, node.nodeName.toUpperCase() ) >= 0 ) {
try {
var it = node.ownerDocument.createNodeIterator( node, NodeFilter.SHOW_ELEMENT, null, false );
var next = null;
while ( next = it.nextNode() ) {
if ( Evernote.ArrayExtension.indexOf(this.VIDEO_NODES, next.nodeName.toUpperCase() ) >= 0 ) {
return next;
}
}
} catch(e) {
//We ignore exception here, because if node iterator is not supported, than we could skip old pages (not Youtube).
return null;
}
}
}
return null;
};
Evernote.YoutubeElementSerializer.prototype._imageUrl = "";
Evernote.YoutubeElementSerializer.prototype.serialize = function( /*docBase*/ ) {
Evernote.Logger.debug( "YoutubeElementSerializer.serialize()" );
try {
var userId = null;
var videoId = null;
var params = this.constructor.extractVideoParamsFromNode( this._node );
if ( params instanceof Array ) {
userId = params[ 0 ];
videoId = params[ 1 ];
}
else if ( typeof params == "string" ) {
videoId = params;
}
if ( videoId ) {
var thumbUrl = null;
var w = 0;
var h = 0;
if ( this._nodeStyle ) {
var view = window;
try {
view = this._node.ownerDocument.defaultView;
}
catch ( e ) {
}
var computedStyles = Evernote.ElementExtension.getComputedStyle( this._node, null, view );
w = parseInt( Evernote.StyleElementExtension.getPropertyValue(computedStyles, "width" ) );
w = (isNaN( w )) ? 0 : w;
h = parseInt( Evernote.StyleElementExtension.getPropertyValue(computedStyles, "height" ) );
h = (isNaN( h )) ? 0 : h;
if ( w < this.constructor.DEFAULT_THUMB_WIDTH || h < this.constructor.DEFAULT_THUMB_HEIGHT ) {
thumbUrl = this.getDefaultThumbnailUrl(" videoId );
}
else {
thumbUrl = this.getHQThumbnailUrl(" videoId );
}
}
else {
thumbUrl = this.getDefaultThumbnailUrl(" videoId );
}
if ( thumbUrl ) {
var styleStr = (this._nodeStyle instanceof Evernote.ClipStyle) ? ("style=\"" + this._nodeStyle.toString() + "\"") : "";
var attrs = this._node.attributes;
var attrStr = "";
for ( var i = 0; i < attrs.length; ++i ) {
var attr = attrs[ i ];
if(Evernote.ClipRules.KEEP_NODE_ATTRIBUTES["a"][attr.name]) {
attrStr += attr.name;
if ( attr.value ) {
attrStr += "=" + attr.value;
}
attrStr += " ";
}
}
var href = ( userId ) ? this.getUserChannelUrl(" userId, videoId ) : this.getWatchUrl(" videoId );
var imgAttrStr = "";
if ( w && h ) {
var k = w / h;
// scale by height
if ( k > this.constructor.DEFAULT_THUMB_WIDTH / this.constructor.DEFAULT_THUMB_HEIGHT ) {
imgAttrStr += "height=\"" + h + "\"";
}
else { // scale by width
imgAttrStr += "width=\"" + w + "\"";
}
}
this._imageUrl = thumbUrl;
return "
";
}
}
}
catch ( e ) {
Evernote.Logger.error( "YoutubeElementSerializer.serialize() failed: error = " + e );
}
return "";
};
Evernote.YoutubeElementSerializer.prototype.getDefaultThumbnailUrl = function( videoId ) {
return this.constructor.DEFAULT_THUMB_URL.replace( /\$videoId\$/, videoId );
};
Evernote.YoutubeElementSerializer.prototype.getHQThumbnailUrl = function( videoId ) {
return this.constructor.HQ_THUMB_URL.replace( /\$videoId\$/, videoId );
};
Evernote.YoutubeElementSerializer.prototype.getWatchUrl = function( videoId ) {
return this.constructor.WATCH_URL.replace( /\$videoId\$/, videoId );
};
Evernote.YoutubeElementSerializer.prototype.getUserChannelUrl = function( userId, videoId ) {
return this.constructor.USER_CHANNEL_URL.replace( /\$userId\$/, userId ).replace( /\$videoId\$/, videoId );
};
Evernote.YoutubeElementSerializer.prototype.getImageUrl = function() {
return this._imageUrl;
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.IEStylePropertiesMapping = {
_mapping : {
"background-attachment" : "backgroundAttachment",
"background-color" : "backgroundColor",
"background-image" : "backgroundImage",
"background-repeat" : "backgroundRepeat",
"background-position-x" : "backgroundPositionX",
"background-position-y" : "backgroundPositionY",
"border-bottom-color" : "borderBottomColor",
"border-bottom-style" : "borderBottomStyle",
"border-bottom-width" : "borderBottomWidth",
"border-left-color" : "borderLeftColor",
"border-left-style" : "borderLeftStyle",
"border-left-width" : "borderLeftWidth",
"border-right-color" : "borderRightColor",
"border-right-style" : "borderRightStyle",
"border-right-width" : "borderRightWidth",
"border-top-color" : "borderTopColor",
"border-top-style" : "borderTopStyle",
"border-top-width" : "borderTopWidth",
"border-collapse" : "borderCollapse",
"font-family" : "fontFamily",
"font-size" : "fontSize",
"font-style" : "fontStyle",
"font-weight" : "fontWeight",
"float" : "styleFloat",
"ime-mode" : "imeMode",
"letter-spacing" : "letterSpacing",
"line-height" : "lineHeight",
"list-style-image" : "listStyleImage",
"list-style-position" : "listStylePosition",
"list-style-type" : "listStyleType",
"margin-bottom" : "marginBottom",
"margin-left" : "marginLeft",
"margin-right" : "marginRight",
"margin-top" : "marginTop",
"max-height" : "maxHeight",
"max-width" : "maxWidth",
"min-height" : "minHeight",
"min-width" : "minWidth",
"overflow-x" : "overflowX",
"overflow-y" : "overflowY",
"padding-bottom" : "paddingBottom",
"padding-left" : "paddingLeft",
"padding-right" : "paddingRight",
"padding-top" : "paddingTop",
"page-break-after" : "pageBreakAfter",
"page-break-before" : "pageBreakBefore",
"table-layout" : "tableLayout",
"text-align" : "textAlign",
"text-decoration" : "textDecoration",
"text-indent" : "textIndent",
"text-overflow" : "textOverflow",
"text-transform" : "textTransform",
"vertical-align" : "verticalAlign",
"white-space" : "whiteSpace",
"word-spacing" : "wordSpacing",
"word-wrap" : "wordWrap",
"z-index" : "zIndex"
},
getPropertyNameFor: function(styleName) {
return [styleName, this._mapping[styleName]];
},
getPropertiesList: function() {
return this._mapping;
}
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.StylesReplacementRegistry = {
registry: [],
getImplementationFor: function(name) {
if(name) {
return this.registry[name];
}
return null;
},
register: function(name, impl) {
this.registry[name] = impl;
}
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.FontSizeReplacement = {
SUPPORTED_FONT_SIZES: ["em", "%", "pt", "px"],
getValue: function(val) {
if(typeof val != "string")
return val;
if(this.isCalculationRequired(val)) {
return Evernote.Utils.getFontSizeInPixels(val) + "px";
} else {
//Do not set browser dependant CSS since it does not supported by Evernote Chromium Viewer.
return null;
}
},
isCalculationRequired: function(val) {
for(var i = 0; i < this.SUPPORTED_FONT_SIZES.length; i++) {
if(val.indexOf(this.SUPPORTED_FONT_SIZES[i]) != -1) {
return true;
}
}
return false;
}
};
Evernote.StylesReplacementRegistry.register("font-size", Evernote.FontSizeReplacement);</script>
<script type="text/javascript" defer charset="ANSI">Evernote.ClipperElementsIdentifiers = {
_clipperElementsIds : [Constants.CLIP_DIALOG_ID, Constants.OPTIONS_DIALOG_ID],
match: function(node) {
if(node && node.id) {
var position = Evernote.ArrayExtension.indexOf(this._clipperElementsIds, node.id);
if(position) {
return position != -1;
}
}
return false;
}
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.NotebooksLoader = {
notebooks: [],
getNotebookByUid: function(uid) {
Evernote.ResponseReceiver.subscribe(this);
Evernote.Addin.getNotebooks(document);
for(var i = 0; i < this.notebooks.length; i++) {
if(this.notebooks[i].uid == uid) {
return this.notebooks[i];
}
}
return null;
},
onDataReceived: function(response) {
if(response.type) {
if(response.type == "notebooks") {
this.notebooks = this.notebooks.concat(response.data);
}
}
}
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.Notebook = function(type, name, uid, stack, author, hidden) {
this.type = type;
this.name = name;
this.uid = uid;
this.stack = stack;
this.author = author;
this.hidden = hidden;
};
</script>
<script type="text/javascript" defer charset="ANSI">Evernote.Tag = function(name, uid) {
this.name = name;
this.uid = uid;
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.NotebookTypes = {
PERSONAL: 1,
BUSINESS: 2,
LINKED: 3
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.ErrorCodes = {
AUTHENTICATION_ERROR: "LoginFailure",
CLIP_ERROR: "NoteImportFailure"
};</script>
<script type="text/javascript" defer charset="ANSI">Evernote.AuthenticatedException = function(msg){
this.msg = msg;
this.code = Evernote.ErrorCodes.AUTHENTICATION_ERROR;
};</script>
<script type="text/javascript" defer charset="ANSI">try {
Evernote.Addin.init(EvernoteExternal.Addin);
Evernote.Addin.resetAuthenticatedState();
Evernote.FS.init(EvernoteExternal.Addin);
Evernote.Logger = Evernote.LoggerConfigurator.getLogger();
if(!Evernote.JQuery)
Evernote.JQueryLoader.initJQuery();
window.jQueryForClearlyComponent = Evernote.JQuery;
initClearly(window);
if(Evernote.evernotePopup) {
Evernote.evernotePopup.hide();
}
Evernote.Logger.debug("Init EnClipper");
Evernote.EnClipper.init();
Evernote.Logger.debug("EnClipper initialized");
Evernote.pageInfo = new PageInfo();
Evernote.contentPreviewer = new ContentPreview();
Evernote.Options.load();
if (EvernoteExternal.Addin.isServerAvailable()) {
Evernote.Clipper.clipWithOptions(EvernoteExternal.clipOptions);
}
} catch(e) {
alert("Failed to clip via context menu" + e);
throw e;
}</script>
<style id="_clearly_component__css" type="text/css">#next_pages_container {
Z-INDEX: 2147483647 !important; POSITION: absolute; WIDTH: 5px; TOP: -100px; LEFT: -100px; hight: 5px
}
</style>