aboutsummaryrefslogtreecommitdiffstats
path: root/view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js
diff options
context:
space:
mode:
authorVasudev Kamath <kamathvasudev@gmail.com>2012-04-22 12:08:05 +0530
committerVasudev Kamath <kamathvasudev@gmail.com>2012-04-22 12:08:05 +0530
commitf1d84c10458986a0a014f844e784617401764b29 (patch)
treea9428755260c3e132ccc507e1df4656431964c43 /view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js
parent4499ce96a0c5fd7ca9feb2b9b5e62876155aa63e (diff)
parent54817f058a4f62301525950d8cdf0189b4d964dc (diff)
downloadvolse-hubzilla-f1d84c10458986a0a014f844e784617401764b29.tar.gz
volse-hubzilla-f1d84c10458986a0a014f844e784617401764b29.tar.bz2
volse-hubzilla-f1d84c10458986a0a014f844e784617401764b29.zip
Merge branch 'master' of git://github.com/friendica/friendica
Diffstat (limited to 'view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js')
-rw-r--r--view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js b/view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js
new file mode 100644
index 000000000..bac09cd45
--- /dev/null
+++ b/view/theme/diabook/diabook-dark/js/jquery.ae.image.resize.js
@@ -0,0 +1,69 @@
+(function( $ ) {
+
+ $.fn.aeImageResize = function( params ) {
+
+ var aspectRatio = 0
+ // Nasty I know but it's done only once, so not too bad I guess
+ // Alternate suggestions welcome :)
+ , isIE6 = $.browser.msie && (6 == ~~ $.browser.version)
+ ;
+
+ // We cannot do much unless we have one of these
+ if ( !params.height && !params.width ) {
+ return this;
+ }
+
+ // Calculate aspect ratio now, if possible
+ if ( params.height && params.width ) {
+ aspectRatio = params.width / params.height;
+ }
+
+ // Attach handler to load
+ // Handler is executed just once per element
+ // Load event required for Webkit browsers
+ return this.one( "load", function() {
+
+ // Remove all attributes and CSS rules
+ this.removeAttribute( "height" );
+ this.removeAttribute( "width" );
+ this.style.height = this.style.width = "";
+
+ var imgHeight = this.height
+ , imgWidth = this.width
+ , imgAspectRatio = imgWidth / imgHeight
+ , bxHeight = params.height
+ , bxWidth = params.width
+ , bxAspectRatio = aspectRatio;
+
+ // Work the magic!
+ // If one parameter is missing, we just force calculate it
+ if ( !bxAspectRatio ) {
+ if ( bxHeight ) {
+ bxAspectRatio = imgAspectRatio + 1;
+ } else {
+ bxAspectRatio = imgAspectRatio - 1;
+ }
+ }
+
+ // Only resize the images that need resizing
+ if ( (bxHeight && imgHeight > bxHeight) || (bxWidth && imgWidth > bxWidth) ) {
+
+ if ( imgAspectRatio > bxAspectRatio ) {
+ bxHeight = ~~ ( imgHeight / imgWidth * bxWidth );
+ } else {
+ bxWidth = ~~ ( imgWidth / imgHeight * bxHeight );
+ }
+
+ this.height = bxHeight;
+ this.width = bxWidth;
+ }
+ })
+ .each(function() {
+
+ // Trigger load event (for Gecko and MSIE)
+ if ( this.complete || isIE6 ) {
+ $( this ).trigger( "load" );
+ }
+ });
+ };
+})( jQuery ); \ No newline at end of file