﻿/*\ GraphicsInfo Bookmarklet (IE5.5+Win, Moz, IE5+Mac)
 *  by: Liorean <http://liorean.web-graphics.com/> <mailto:liorean@user.bip.net>
 *  url: <http://liorean.web-graphics.com/graphicsinfo.js>
\*/
function getimages() {
if (typeof(testvar) == "undefined"){

 setTimeout ('getimages()', 500);
}

else {
if(!'push' in [])
  Array.prototype.push=function(){
    var i=0,b=this.length,a=arguments;
    for(i;i<a.length;i++)
      this[b+i]=a[i];
    return this.length
  }
;
var d=(document.getElementsByTagName&&document.getElementsByTagName('*'))||document.all,images={
  raw:{
    cssBg:[],attrBg:[],input:[],lsi:[]
  }
  ,sorted:{
  }
}
,i=0,r='',ud='undefined',re=[/\i*url\i*\i/,/\i$/],x=screen.availWidth/1.2,y=screen.availHeight/1.2,j,k,l,n,p,t,z,u,v,c=0;
l=(1.2*x-x)/2;
p=(1.2*y-y)/2;
function li(a){
  var j,l,k=a.childNodes,i=0,r='<dl>';
  l=k.length;
  for(;i<l;i++)
    if('tagName' in k[i]&&k[i].tagName=='LI'){
      r+='<dt>&lt;li';
      for(j=0;j<k[i].attributes.length;j++)
        if(typeof k[i].attributes[j].specified!=ud?k[i].attributes[j].specified:1)
          r+=' '+k[i].attributes[j].name+'="'+(k[i].attributes[j].value!='null'||k[i].attributes[j].name!='style'?k[i].attributes[j].value:k[i].style.cssText)+'"';
      r+='&gt;</dt>';
    }
  return r+'</dl>';
}
images.raw.img=document.getElementsByTagName('img');
images.raw.object=document.getElementsByTagName('object');
t=document.getElementsByTagName('input');
for(;i<t.length;i++)
  if(t[i].type=='image')
    images.raw.input.push(t[i]);
for(i=0;i<d.length;i++){
  if(typeof d[i].tagName!=ud&&d[i].tagName!='!'&&typeof d[i].attributes!=ud&&typeof d[i].attributes.background!=ud&&(typeof d[i].attributes.background.specified!=ud?d[i].attributes.background.specified:d[i].attributes.background!=''))
    images.raw.attrBg.push(d[i]);
  if(d[i].style.backgroundImage!='')
    images.raw.cssBg.push(d[i]);
  if(d[i].style.listStyleImage!='')
    images.raw.lsi.push(d[i]);
}
for(i=0;i<images.raw.img.length;i++)
  switch(typeof images.sorted[images.raw.img[i].src]){
    case 'object':images.sorted[images.raw.img[i].src].push([0,images.raw.img[i]]);
    break;
    default:images.sorted[images.raw.img[i].src]=[[0,images.raw.img[i]]]
  }
for(i=0;i<images.raw.input.length;i++)
  switch(typeof images.sorted[images.raw.input[i].src]){
    case 'object':images.sorted[images.raw.input[i].src].push([1,images.raw.input[i]]);
    break;
    default:images.sorted[images.raw.input[i].src]=[[1,images.raw.input[i]]]
  }
for(i=0;i<images.raw.object.length;i++)
  switch(typeof images.sorted[images.raw.object[i].data]){
    case 'object':images.sorted[images.raw.object[i].data].push([2,images.raw.object[i]]);
    break;
    default:images.sorted[images.raw.object[i].data]=[[2,images.raw.object[i]]]
  }
for(i=0;i<images.raw.attrBg.length;i++)
  switch(typeof images.sorted[images.raw.attrBg[i].background]){
    case 'object':images.sorted[images.raw.attrBg[i].background].push([3,images.raw.attrBg[i]]);
    break;
    default:images.sorted[images.raw.attrBg[i].background]=[[3,images.raw.attrBg[i]]]
  }
for(i=0;i<images.raw.cssBg.length;i++){
  n=(images.raw.cssBg[i].style.backgroundImage).replace(re[0],'').replace(re[1],'');
  switch(typeof images.sorted[n]){
    case 'object':images.sorted[n].push([4,images.raw.cssBg[i]]);
    break;
    default:images.sorted[n]=[[4,images.raw.cssBg[i]]]
  }
}
for(i=0;i<images.raw.lsi.length;i++){
  n=(images.raw.lsi[i].style.listStyleImage).replace(re[0],'').replace(re[1],'');
  switch(typeof images.sorted[n]){
    case 'object':images.sorted[n].push([5,images.raw.lsi[i]]);
    break;
    default:images.sorted[n]=[[5,images.raw.lsi[i]]]
  }
}
for(i in images.sorted){
  if(i=='push')
    continue;
  (t=new Image()).src=i;
  z=0;
  for(j=0;j<images.sorted[i].length;j++){
    if(images.sorted[i][j][0]<5)
      z++;
    else {
      v=(u=images.sorted[i][j][1].childNodes).length;
      for(k=0;k<v;k++)
        if('tagName' in u[k]&&u[k].tagName=='LI')
          z++;
    }
  }
  
  r+='<dt style="border-width:1px 0px 0px 0px;border-style:solid;border-color:#999;padding-top:5px;"><ul><li><a href="'+i+'"><img src="'+i+'" alt="'+imgl1+t.nameProp+'"  /></a> ('+z+ imgl2+'.)</li><li>寬度: '+t.width+' 像素&nbsp;&nbsp; 高度: '+t.height+' 像素</li>'
  v=images.sorted[i].length;
  for(j=0;j<1;j++){
    u=images.sorted[i][j];
   if (isNaN(u[1].fileSize)){r+='</ul>'}
   else {
    r+='<li>'+docp7+(parseInt((parseInt(u[1].fileSize)) /10.24)/100)+docp8+'</li></ul>';
}
   r+=' <div style="border :1px solid #191970;padding:5px;margin:5px">&lt;'+ String(u[1].tagName).toLowerCase();
    for(k=0;k<u[1].attributes.length;k++)
      if(typeof u[1].attributes[k].specified!=ud?u[1].attributes[k].specified:1)
        r+=' '+u[1].attributes[k].name+'="'+(u[1].attributes[k].value!='null'||u[1].attributes[k].name!='style'?u[1].attributes[k].value:u[1].style.cssText)+'"';
   r+='&gt;</div>';
  }
 
  for(j=1;j<v;j++){
    u=images.sorted[i][j];
   
   // r+='Filesize:'+(parseInt((parseInt(u[1].fileSize))/10.24)/100)+' KB';

   r+=' <div style="border :1px solid #191970;padding:5px;margin:5px">&lt;'+ String(u[1].tagName).toLowerCase();
    for(k=0;k<u[1].attributes.length;k++)
      if(typeof u[1].attributes[k].specified!=ud?u[1].attributes[k].specified:1)
        r+=' '+u[1].attributes[k].name+'="'+(u[1].attributes[k].value!='null'||u[1].attributes[k].name!='style'?u[1].attributes[k].value:u[1].style.cssText)+'"';
   r+='&gt;</div>';
  }
 
  c++;
}
d=window.open('','','screenX=20,left=20,screenY=20,top=20,resizable=yes,scrollbars=yes,menubar=yes,toolbar=yes,status=yes,location=yes');
try{
d.document.open();}
catch(e) {
		if (d){d.close();
		alert(errortxt5);

return;
		}
		else{
		alert(errortxt1);
return;
}
}
d.document.write('<html><title>'+imgl3+'"'+self.document.title+'" ('+self.location+')</title><link rel="Stylesheet" href="http://wat2.z6i.org/resources/WAT/scripts/css/graphicsinfo.css" type="text/css" /></head><body><a href="javascript:window.close();">'+docp2+'</a><h1>'+imgl4+'</h1><h2 style=\'display:inline\'>'+imgl5+self.document.title+' </h2> (<a href="'+self.location+'">'+self.location+'</a>)<dl>'+r+'</dl><div class="author">'+imgl6+'<a href="http://liorean.web-graphics.com/">Liorean</a>\'s Graphics Info Bookmarklet</div></body></html>');
d.document.close();
}
}
getimages();