Commits

Anonymous committed f862181

first isotope stab

Comments (0)

Files changed (4)

   <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <title>Schmarchive2</title>
   <link href="http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold&amp;subset=latin" rel="stylesheet" type="text/css"> 
-  <script type="text/javascript" src="./jquery-1.6.1.js"></script>
-  <script type="text/javascript" src="./jquery.tmpl.js"></script>
-  <script type="text/javascript" src="./schmarchive.js"></script>   
+  <script type="text/javascript" src="jquery-1.6.1.js"></script>
+  <script type="text/javascript" src="jquery.tmpl.js"></script>
+  <script type="text/javascript" src="jquery.isotope.min.js"></script>
+  <script type="text/javascript" src="schmarchive.js"></script>   
   <link rel="stylesheet" type="text/css" href="reset.css" />
   <link rel="stylesheet" type="text/css" href="schmarchive.css" />
 <script type="text/javascript" charset="utf-8">

jquery.isotope.min.js

+/**
+ * Isotope v1.3.110620
+ * An exquisite jQuery plugin for magical layouts
+ * http://isotope.metafizzy.co
+ *
+ * Commercial use requires one-time license fee
+ * http://metafizzy.co/#licenses
+ *
+ * Copyright 2011 David DeSandro / Metafizzy
+ */
+/*global Modernizr: true */
+(function(a,b,c){function f(a,b){b=b||document.documentElement;var c=b.style,f;if(typeof c[a]=="string")return a;a=d(a);for(var g=0,h=e.length;g<h;g++){f=e[g]+a;if(typeof c[f]=="string")return f}}function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}var e="Moz Webkit Khtml O Ms".split(" "),g=f("transform"),h=document.documentElement,i=[{name:"csstransforms",getResult:function(){return!!g}},{name:"csstransforms3d",getResult:function(){var a=!!f("perspective");if(a){var b=document.createElement("style"),c=document.createElement("div"),d=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),e="@media ("+d.join("transform-3d),(")+"modernizr)";b.textContent=e+"{#modernizr{height:3px}}",(document.head||document.getElementsByTagName("head")[0]).appendChild(b),c.id="modernizr",h.appendChild(c),a=c.offsetHeight===3,b.parentNode.removeChild(b),c.parentNode.removeChild(c)}return!!a}},{name:"csstransitions",getResult:function(){return!!f("transitionProperty")}}],j,k=i.length;if(a.Modernizr)for(j=0;j<k;j++){var l=i[j];Modernizr.hasOwnProperty(l.name)||Modernizr.addTest(l.name,l.getResult)}else a.Modernizr=function(){var a={_version:"1.6ish: miniModernizr for Isotope"},b=[],c,d,e;for(j=0;j<k;j++)c=i[j],d=c.getResult(),a[c.name]=d,e=(d?"":"no-")+c.name,b.push(e);h.className+=" "+b.join(" ");return a}();if(Modernizr.csstransforms){var m=Modernizr.csstransforms3d?{translate:function(a){return"translate3d("+a[0]+"px, "+a[1]+"px, 0) "},scale:function(a){return"scale3d("+a+", "+a+", 1) "}}:{translate:function(a){return"translate("+a[0]+"px, "+a[1]+"px) "},scale:function(a){return"scale("+a+") "}},n=function(a,c,d){var e=b.data(a,"isoTransform")||{},f={},h,i={},j;f[c]=d,b.extend(e,f);for(h in e)j=e[h],i[h]=m[h](j);var k=i.translate||"",l=i.scale||"",n=k+l;b.data(a,"isoTransform",e),a.style[g]=n};b.cssNumber.scale=!0,b.cssHooks.scale={set:function(a,b){n(a,"scale",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.scale?d.scale:1}},b.fx.step.scale=function(a){b.cssHooks.scale.set(a.elem,a.now+a.unit)},b.cssNumber.translate=!0,b.cssHooks.translate={set:function(a,b){n(a,"translate",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.translate?d.translate:[0,0]}}}var o=b.event,p;o.special.smartresize={setup:function(){b(this).bind("resize",o.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",o.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize",p&&clearTimeout(p),p=setTimeout(function(){jQuery.event.handle.apply(c,d)},b==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Isotope=function(a,c){this.element=b(c),this._create(a),this._init()};var q=["overflow","position","width","height"];b.Isotope.settings={resizable:!0,layoutMode:"masonry",containerClass:"isotope",itemClass:"isotope-item",hiddenClass:"isotope-hidden",hiddenStyle:Modernizr.csstransforms&&!b.browser.opera?{opacity:0,scale:.001}:{opacity:0},visibleStyle:Modernizr.csstransforms&&!b.browser.opera?{opacity:1,scale:1}:{opacity:1},animationEngine:b.browser.opera?"jquery":"best-available",animationOptions:{queue:!1,duration:800},sortBy:"original-order",sortAscending:!0,resizesContainer:!0,transformsEnabled:!0,itemPositionDataEnabled:!1},b.Isotope.prototype={_create:function(c){this.options=b.extend(!0,{},b.Isotope.settings,c),this.styleQueue=[],this.elemCount=0;var d=this.element[0].style;this.originalStyle={};for(var e=0,f=q.length;e<f;e++){var g=q[e];this.originalStyle[g]=d[g]||null}this.element.css({overflow:"hidden",position:"relative"}),this._updateAnimationEngine(),this._updateUsingTransforms();var h={"original-order":function(a,b){return b.elemCount}};this.options.getSortData=b.extend(this.options.getSortData,h),this.reloadItems();var i=b(document.createElement("div")).prependTo(this.element);this.offset=i.position(),i.remove();var j=this;setTimeout(function(){j.element.addClass(j.options.containerClass)},0),this.options.resizable&&b(a).bind("smartresize.isotope",function(){j.resize()})},_getAtoms:function(a){var b=this.options.itemSelector,c=b?a.filter(b).add(a.find(b)):a,d={position:"absolute"};this.usingTransforms&&(d.left=0,d.top=0),c.css(d).addClass(this.options.itemClass),this.updateSortData(c,!0);return c},_init:function(a){this.$filteredAtoms=this._filter(this.$allAtoms),this._sort(),this.reLayout(a)},option:function(a){if(b.isPlainObject(a)){this.options=b.extend(!0,this.options,a);for(var c in a)this._updateOption(c)}},_updateOption:function(a){var b="_update"+d(a);this[b]&&this[b]()},_updateAnimationEngine:function(){var a=this.options.animationEngine.toLowerCase().replace(/[ _\-]/g,"");switch(a){case"css":case"none":this.isUsingJQueryAnimation=!1;break;case"jquery":this.isUsingJQueryAnimation=!0;break;default:this.isUsingJQueryAnimation=!Modernizr.csstransitions}this._updateUsingTransforms()},_updateTransformsEnabled:function(){this._updateUsingTransforms()},_updateUsingTransforms:function(){this.usingTransforms=this.options.transformsEnabled&&Modernizr.csstransforms&&Modernizr.csstransitions&&!this.isUsingJQueryAnimation,this.getPositionStyles=this.usingTransforms?this._translate:this._positionAbs},_filter:function(a){var b,c=this.options.filter===""?"*":this.options.filter;if(!c)b=a;else{var d=this.options.hiddenClass,e="."+d,f=a.not(e),g=a.filter(e),h=g;b=a.filter(c);if(c!=="*"){h=g.filter(c);var i=f.not(c).toggleClass(d);i.addClass(d),this.styleQueue.push({$el:i,style:this.options.hiddenStyle})}this.styleQueue.push({$el:h,style:this.options.visibleStyle}),h.removeClass(d)}return b},updateSortData:function(a,c){var d=this,e=this.options.getSortData,f,g;a.each(function(){f=b(this),g={};for(var a in e)g[a]=e[a](f,d);b.data(this,"isotope-sort-data",g),c&&d.elemCount++})},_sort:function(){var a=this.options.sortBy,b=this._getSorter,c=this.options.sortAscending?1:-1,d=function(d,e){var f=b(d,a),g=b(e,a);f===g&&a!=="original-order"&&(f=b(d,"original-order"),g=b(e,"original-order"));return(f>g?1:f<g?-1:0)*c};this.$filteredAtoms.sort(d)},_getSorter:function(a,c){return b.data(a,"isotope-sort-data")[c]},_translate:function(a,b){return{translate:[a,b]}},_positionAbs:function(a,b){return{left:a,top:b}},_pushPosition:function(a,b,c){b+=this.offset.left,c+=this.offset.top;var d=this.getPositionStyles(b,c);this.styleQueue.push({$el:a,style:d}),this.options.itemPositionDataEnabled&&a.data("isotope-item-position",{x:b,y:c})},layout:function(a,c){var d=this.options.layoutMode;this["_"+d+"Layout"](a);if(this.options.resizesContainer){var e=this["_"+d+"GetContainerSize"]();this.styleQueue.push({$el:this.element,style:e})}var f=this.isLaidOut?this.isUsingJQueryAnimation?"animate":"css":"css",g=this.options.animationOptions;b.each(this.styleQueue,function(a,b){b.$el[f](b.style,g)}),this.styleQueue=[],c&&c.call(a),this.isLaidOut=!0},resize:function(){this["_"+this.options.layoutMode+"ResizeChanged"]()&&this.reLayout()},reLayout:function(a){this["_"+this.options.layoutMode+"Reset"](),this.layout(this.$filteredAtoms,a)},addItems:function(a,b){var c=this._getAtoms(a);this.$allAtoms=this.$allAtoms.add(c),b&&b(c)},insert:function(a,b){this.element.append(a);var c=this;this.addItems(a,function(a){var b=c._filter(a);c.$filteredAtoms=c.$filteredAtoms.add(b)}),this._sort(),this.reLayout(b)},appended:function(a,b){var c=this;this.addItems(a,function(a){c.$filteredAtoms=c.$filteredAtoms.add(a),c.layout(a,b)})},reloadItems:function(){this.$allAtoms=this._getAtoms(this.element.children())},remove:function(a){this.$allAtoms=this.$allAtoms.not(a),this.$filteredAtoms=this.$filteredAtoms.not(a),a.remove()},_shuffleArray:function(a){var b,c,d=a.length;if(d)while(--d)c=~~(Math.random()*(d+1)),b=a[c],a[c]=a[d],a[d]=b;return a},shuffle:function(a){this.options.sortBy="shuffle",this.$allAtoms=this._shuffleArray(this.$allAtoms),this.$filteredAtoms=this._filter(this.$allAtoms),this.reLayout(a)},destroy:function(){var c=this.usingTransforms;this.$allAtoms.removeClass(this.options.hiddenClass+" "+this.options.itemClass).each(function(){this.style.position=null,this.style.top=null,this.style.left=null,this.style.opacity=null,c&&(this.style[g]=null)});var d=this.element[0].style;for(var e=0,f=q.length;e<f;e++){var h=q[e];d[h]=this.originalStyle[h]}this.element.unbind(".isotope").removeClass(this.options.containerClass).removeData("isotope"),b(a).unbind(".isotope")},_getSegments:function(a){var b=this.options.layoutMode,c=a?"rowHeight":"columnWidth",d=a?"height":"width",e=a?"Height":"Width",f=a?"rows":"cols",g=this.element[d](),h,i;i=this.options[b]&&this.options[b][c]||this.$filteredAtoms["outer"+e](!0)||g,h=Math.floor(g/i),h=Math.max(h,1),this[b][f]=h,this[b][c]=i},_checkIfSegmentsChanged:function(a){var b=this.options.layoutMode,c=a?"rows":"cols",d=this[b][c];this._getSegments(a);return this[b][c]!==d},_masonryReset:function(){this.masonry={},this._getSegments();var a=this.masonry.cols;this.masonry.colYs=[];while(a--)this.masonry.colYs.push(0)},_masonryLayout:function(a){var c=this,d=c.masonry;a.each(function(){var a=b(this),e=Math.ceil(a.outerWidth(!0)/d.columnWidth);e=Math.min(e,d.cols);if(e===1)c._masonryPlaceBrick(a,d.colYs);else{var f=d.cols+1-e,g=[],h,i;for(i=0;i<f;i++)h=d.colYs.slice(i,i+e),g[i]=Math.max.apply(Math,h);c._masonryPlaceBrick(a,g)}})},_masonryPlaceBrick:function(a,b){var c=Math.min.apply(Math,b),d=0;for(var e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}var g=this.masonry.columnWidth*d,h=c;this._pushPosition(a,g,h);var i=c+a.outerHeight(!0),j=this.masonry.cols+1-f;for(e=0;e<j;e++)this.masonry.colYs[d+e]=i},_masonryGetContainerSize:function(){var a=Math.max.apply(Math,this.masonry.colYs);return{height:a}},_masonryResizeChanged:function(){return this._checkIfSegmentsChanged()},_fitRowsReset:function(){this.fitRows={x:0,y:0,height:0}},_fitRowsLayout:function(a){var c=this,d=this.element.width(),e=this.fitRows;a.each(function(){var a=b(this),f=a.outerWidth(!0),g=a.outerHeight(!0);e.x!==0&&f+e.x>d&&(e.x=0,e.y=e.height),c._pushPosition(a,e.x,e.y),e.height=Math.max(e.y+g,e.height),e.x+=f})},_fitRowsGetContainerSize:function(){return{height:this.fitRows.height}},_fitRowsResizeChanged:function(){return!0},_cellsByRowReset:function(){this.cellsByRow={index:0},this._getSegments(),this._getSegments(!0)},_cellsByRowLayout:function(a){var c=this,d=this.cellsByRow;a.each(function(){var a=b(this),e=d.index%d.cols,f=~~(d.index/d.cols),g=(e+.5)*d.columnWidth-a.outerWidth(!0)/2,h=(f+.5)*d.rowHeight-a.outerHeight(!0)/2;c._pushPosition(a,g,h),d.index++})},_cellsByRowGetContainerSize:function(){return{height:Math.ceil(this.$filteredAtoms.length/this.cellsByRow.cols)*this.cellsByRow.rowHeight+this.offset.top}},_cellsByRowResizeChanged:function(){return this._checkIfSegmentsChanged()},_straightDownReset:function(){this.straightDown={y:0}},_straightDownLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,0,c.straightDown.y),c.straightDown.y+=d.outerHeight(!0)})},_straightDownGetContainerSize:function(){return{height:this.straightDown.y}},_straightDownResizeChanged:function(){return!0},_masonryHorizontalReset:function(){this.masonryHorizontal={},this._getSegments(!0);var a=this.masonryHorizontal.rows;this.masonryHorizontal.rowXs=[];while(a--)this.masonryHorizontal.rowXs.push(0)},_masonryHorizontalLayout:function(a){var c=this,d=c.masonryHorizontal;a.each(function(){var a=b(this),e=Math.ceil(a.outerHeight(!0)/d.rowHeight);e=Math.min(e,d.rows);if(e===1)c._masonryHorizontalPlaceBrick(a,d.rowXs);else{var f=d.rows+1-e,g=[],h,i;for(i=0;i<f;i++)h=d.rowXs.slice(i,i+e),g[i]=Math.max.apply(Math,h);c._masonryHorizontalPlaceBrick(a,g)}})},_masonryHorizontalPlaceBrick:function(a,b){var c=Math.min.apply(Math,b),d=0;for(var e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}var g=c,h=this.masonryHorizontal.rowHeight*d;this._pushPosition(a,g,h);var i=c+a.outerWidth(!0),j=this.masonryHorizontal.rows+1-f;for(e=0;e<j;e++)this.masonryHorizontal.rowXs[d+e]=i},_masonryHorizontalGetContainerSize:function(){var a=Math.max.apply(Math,this.masonryHorizontal.rowXs);return{width:a}},_masonryHorizontalResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_fitColumnsReset:function(){this.fitColumns={x:0,y:0,width:0}},_fitColumnsLayout:function(a){var c=this,d=this.element.height(),e=this.fitColumns;a.each(function(){var a=b(this),f=a.outerWidth(!0),g=a.outerHeight(!0);e.y!==0&&g+e.y>d&&(e.x=e.width,e.y=0),c._pushPosition(a,e.x,e.y),e.width=Math.max(e.x+f,e.width),e.y+=g})},_fitColumnsGetContainerSize:function(){return{width:this.fitColumns.width}},_fitColumnsResizeChanged:function(){return!0},_cellsByColumnReset:function(){this.cellsByColumn={index:0},this._getSegments(),this._getSegments(!0)},_cellsByColumnLayout:function(a){var c=this,d=this.cellsByColumn;a.each(function(){var a=b(this),e=~~(d.index/d.rows),f=d.index%d.rows,g=(e+.5)*d.columnWidth-a.outerWidth(!0)/2,h=(f+.5)*d.rowHeight-a.outerHeight(!0)/2;c._pushPosition(a,g,h),d.index++})},_cellsByColumnGetContainerSize:function(){return{width:Math.ceil(this.$filteredAtoms.length/this.cellsByColumn.rows)*this.cellsByColumn.columnWidth}},_cellsByColumnResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_straightAcrossReset:function(){this.straightAcross={x:0}},_straightAcrossLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,c.straightAcross.x,0),c.straightAcross.x+=d.outerWidth(!0)})},_straightAcrossGetContainerSize:function(){return{width:this.straightAcross.x}},_straightAcrossResizeChanged:function(){return!0}},b.fn.imagesLoaded=function(a){var b=this.find("img"),d=b.length,e=this;b.length||a.call(this),b.bind("load",function(){--d<=0&&a.call(e)}).each(function(){if(this.complete||this.complete===c){var a=this.src;this.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",this.src=a}});return this};var r=function(a){this.console&&console.error(a)};b.fn.isotope=function(a){if(typeof a=="string"){var c=Array.prototype.slice.call(arguments,1);this.each(function(){var d=b.data(this,"isotope");if(!d)r("cannot call methods on isotope prior to initialization; attempted to call method '"+a+"'");else{if(!b.isFunction(d[a])||a.charAt(0)==="_"){r("no such method '"+a+"' for isotope instance");return}d[a].apply(d,c)}})}else this.each(function(){var c=b.data(this,"isotope");c?(c.option(a),c._init()):b.data(this,"isotope",new b.Isotope(a,this))});return this}})(window,jQuery);
 .inv_item {
+  border: 10px solid #151515;
+  /*min-width: 100px;*/
+  /*min-height: 100px;*/
+  background: #2e2e2e;
+  padding: 5px;
+}
+
+.inv_item_name {
     padding-left: 21px;
     background-repeat: no-repeat;
-    cursor: pointer;
+    /*cursor: pointer;*/
+    margin-bottom: 5px;
+    font-size: 10px;
 }
 
 .item_li {
     cursor: pointer;
 }
 
-.texture {
+.inv_item_name.texture {
     background-image: url('texture.png');
 }
-.sound {
+.inv_item_name.sound {
     background-image: url('sound.png');
 }
-.landmark {
+.inv_item_name.landmark {
     background-image: url('landmark.png');
 }
-.clothing {
+.inv_item_name.clothing {
     background-image: url('clothing.png');
 }
-.object {
+.inv_item_name.object {
     background-image: url('object.png');
 }
-.notecard {
+.inv_item_name.notecard {
     background-image: url('notecard.png');
 }
-.script {
+.inv_item_name.script {
     background-image: url('script.png');
 }
-.bodypart {
+.inv_item_name.bodypart {
     background-image: url('bodypart.png');
 }
-.animation {
+.inv_item_name.animation {
     background-image: url('animation.png');
 }
-.clothing {
+.inv_item_name.clothing {
     background-image: url('clothing.png');
 }
-.gesture {
+.inv_item_name.gesture {
     background-image: url('gesture.png');
 }
 
 }
 
 body {
-    background-color: #2e2e2e;
+    background-color: #151515;
     font-family: 'Droid Sans', arial, serif;
     font-size: 15px;
     color: white;
 }
 
 .thumb {
-    float: right;
-    height: 75px;
-    margin-left: 5px;
+    /*float: right;*/
+    /*height: 75px;*/
+    /*margin-left: 5px;*/
+  display: block;
+  width: 75px;
+  height: 75px;
 }
 
 #item_send_status {
             return decodeURIComponent(results[1].replace(/\+/g, " "));
         }
     },
-
+    
 Schmarchive2 = {
     infoPath: '/info/',
     invPath: '/inv/',
+    itemTmpl: '<div class="inv_item ${type}"><div class="inv_item_name ${type}">${name}</div>{{if thumb}}<img class="thumb" src="http://secondlife.com/app/image/${thumb}/1" />{{/if}}</div>',
     init: function(frame_selector) {
               // store params, request initial data
               this.frame = $(frame_selector);
               console.log(this);
 
               // get some info about the prim
-              this.request(this.infoPath);
+              //this.request(this.infoPath);
 
               // get the inventory list
-              this.request(this.invPath);
+              this.request(this.invPath, this.listInventory);
           },
     
     _buildURL: function(path) {
-        var url = this.url + path + '?callback=?';
+      var url = this.url + path + '?callback=?';
         url += "&av=" + this.av;
         url += "&tok=" + this.tok;
         return url; 
     },
     
-    request: function(path) {
+    request: function(path, callback, context) {
         var url = this._buildURL(path);
-        $.getJSON(url, function(obj_data) {
-            console.log(obj_data);
+        $.ajax({
+          url: url,
+          dataType: 'jsonp',
+          success: callback,
+          context: this
         });
+    },
+
+    listInventory:  function(items) {
+      for ( var i=0, len=items.length; i<len; ++i ){
+        var item = items[i];
+        console.log(item);
+        $.tmpl(this.itemTmpl, item).appendTo(this.frame);
+      }
+      $(this.frame).isotope({
+        // options
+        itemSelector : '.inv_item',
+        layoutMode : 'fitRows'
+      });
     }
 };