[ Index ]
 

Code source de b2evolution 2.1.0-beta

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/blogs/skins/nifty_corners/rsc/ -> nifty_corners.js (source)

   1  /*

   2   * Nifty corners

   3   * http://pro.html.it/articoli/id_599/idcat_31/pag_1/pag.html

   4   */
   5  function NiftyCheck(){
   6  if(!document.getElementById || !document.createElement)
   7      return(false);
   8  isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);
   9  if(Array.prototype.push==null){Array.prototype.push=function(){
  10        this[this.length]=arguments[0]; return(this.length);}}
  11  return(true);
  12  }
  13  
  14  function Rounded(selector,wich,bk,color,opt){
  15  var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false;
  16  
  17  if(color=="transparent"){
  18      cn=cn+"x";
  19      ecolor=bk;
  20      bk="transparent";
  21      }
  22  else if(opt && opt.indexOf("border")>=0){
  23      var optar=opt.split(" ");
  24      for(i=0;i<optar.length;i++)
  25          if(optar[i].indexOf("#")>=0) ecolor=optar[i];
  26      if(ecolor=="") ecolor="#666";
  27      cn+="e";
  28      edges=true;
  29      }
  30  else if(opt && opt.indexOf("smooth")>=0){
  31      cn+="a";
  32      ecolor=Mix(bk,color);
  33      }
  34  if(opt && opt.indexOf("small")>=0) cn+="s";
  35  prefixt=cn;
  36  prefixb=cn;
  37  if(wich.indexOf("all")>=0){t=true;b=true}
  38  else if(wich.indexOf("top")>=0) t="true";
  39  else if(wich.indexOf("tl")>=0){
  40      t="true";
  41      if(wich.indexOf("tr")<0) prefixt+="l";
  42      }
  43  else if(wich.indexOf("tr")>=0){
  44      t="true";
  45      prefixt+="r";
  46      }
  47  if(wich.indexOf("bottom")>=0) b=true;
  48  else if(wich.indexOf("bl")>=0){
  49      b="true";
  50      if(wich.indexOf("br")<0) prefixb+="l";
  51      }
  52  else if(wich.indexOf("br")>=0){
  53      b="true";
  54      prefixb+="r";
  55      }
  56  var v=getElementsBySelector(selector);
  57  var l=v.length;
  58  for(i=0;i<l;i++){
  59      if(edges) AddBorder(v[i],ecolor);
  60      if(t) AddTop(v[i],bk,color,ecolor,prefixt);
  61      if(b) AddBottom(v[i],bk,color,ecolor,prefixb);
  62      }
  63  }
  64  
  65  function AddBorder(el,bc){
  66  var i;
  67  if(!el.passed){
  68      if(el.childNodes.length==1 && el.childNodes[0].nodeType==3){
  69          var t=el.firstChild.nodeValue;
  70          el.removeChild(el.lastChild);
  71          var d=CreateEl("span");
  72          d.style.display="block";
  73          d.appendChild(document.createTextNode(t));
  74          el.appendChild(d);
  75          }
  76      for(i=0;i<el.childNodes.length;i++){
  77          if(el.childNodes[i].nodeType==1){
  78              el.childNodes[i].style.borderLeft="1px solid "+bc;
  79              el.childNodes[i].style.borderRight="1px solid "+bc;
  80              }
  81          }
  82      }
  83  el.passed=true;
  84  }
  85      
  86  function AddTop(el,bk,color,bc,cn){
  87  var i,lim=4,d=CreateEl("b");
  88  
  89  if(cn.indexOf("s")>=0) lim=2;
  90  if(bc) d.className="artop";
  91  else d.className="rtop";
  92  d.style.backgroundColor=bk;
  93  for(i=1;i<=lim;i++){
  94      var x=CreateEl("b");
  95      x.className=cn + i;
  96      x.style.backgroundColor=color;
  97      if(bc) x.style.borderColor=bc;
  98      d.appendChild(x);
  99      }
 100  el.style.paddingTop=0;
 101  el.insertBefore(d,el.firstChild);
 102  }
 103  
 104  function AddBottom(el,bk,color,bc,cn){
 105  var i,lim=4,d=CreateEl("b");
 106  
 107  if(cn.indexOf("s")>=0) lim=2;
 108  if(bc) d.className="artop";
 109  else d.className="rtop";
 110  d.style.backgroundColor=bk;
 111  for(i=lim;i>0;i--){
 112      var x=CreateEl("b");
 113      x.className=cn + i;
 114      x.style.backgroundColor=color;
 115      if(bc) x.style.borderColor=bc;
 116      d.appendChild(x);
 117      }
 118  el.style.paddingBottom=0;
 119  el.appendChild(d);
 120  }
 121  
 122  function CreateEl(x){
 123  if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));
 124  else return(document.createElement(x));
 125  }
 126  
 127  function getElementsBySelector(selector){
 128  var i,selid="",selclass="",tag=selector,f,s=[],objlist=[];
 129  
 130  if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
 131      s=selector.split(" ");
 132      var fs=s[0].split("#");
 133      if(fs.length==1) return(objlist);
 134      f=document.getElementById(fs[1]);
 135      if(f) return(f.getElementsByTagName(s[1]));
 136      return(objlist);
 137      }
 138  if(selector.indexOf("#")>0){ //id selector like "tag#id"
 139      s=selector.split("#");
 140      tag=s[0];
 141      selid=s[1];
 142      }
 143  if(selid!=""){
 144      f=document.getElementById(selid);
 145      if(f) objlist.push(f);
 146      return(objlist);
 147      }
 148  if(selector.indexOf(".")>0){  //class selector like "tag.class"
 149      s=selector.split(".");
 150      tag=s[0];
 151      selclass=s[1];
 152      }
 153  var v=document.getElementsByTagName(tag);  // tag selector like "tag"

 154  if(selclass=="")
 155      return(v);
 156  for(i=0;i<v.length;i++){
 157      if(v[i].className.indexOf(selclass)>=0){
 158          objlist.push(v[i]);
 159          }
 160      }
 161  return(objlist);
 162  }
 163  
 164  function Mix(c1,c2){
 165  var i,step1,step2,x,y,r=new Array(3);
 166  if(c1.length==4)step1=1;
 167  else step1=2;
 168  if(c2.length==4) step2=1;
 169  else step2=2;
 170  for(i=0;i<3;i++){
 171      x=parseInt(c1.substr(1+step1*i,step1),16);
 172      if(step1==1) x=16*x+x;
 173      y=parseInt(c2.substr(1+step2*i,step2),16);
 174      if(step2==1) y=16*y+y;
 175      r[i]=Math.floor((x*50+y*50)/100);
 176      }
 177  return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16));
 178  }


Généré le : Thu Nov 29 23:58:50 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics