/*
released under Creative commons license ;)
http://creativecommons.org/licenses/by-nc-nd/2.0/
Test succesfully with:
Netscape 7.2,
Ie 6.0sp2,(it should work with 5 too)
FF1.5, (it should work on 1.0 too)
opera 8.51
Kentaromiura Crazy Corner Version 0.1 alpha preview (codename:Gatsu)
|-->from an idea of www.mswebpeople.com/krazy.html
|--------->from snazzy corner idea http://www.cssplay.co.uk/boxes/snazzy.html by Stu Nicholls
|---------------->from nifty corner idea http://pro.html.it/articoli/id_598/idcat_31/pro.html (grazie Alessandro Fulciniti;)
EDIT:
as Alessandro Fulciniti told me the original idea of Krazy Corners is of Stu Nicholls.(http://www.cssplay.co.uk/boxes/krazy.html)
TODO:
better support for bordercolors
a decornerize functi0n(it must search for boxcontent trashing all the rest ;) )
better support for divs width
*/
var d=document;
function ele(obj) {
return d.createElement(obj);
}
function app(pNode,cNode) {
pNode.appendChild(cNode);
return pNode;
}
function text(str) {
return d.createTextNode(str);
}
function set(obj,attr,val) {
obj.setAttribute(attr,val);
return obj
}
function cornerize(id,type,col){
if(type===undefined)
raised(id,"raised",col);
else
switch(type){
case "raised":raised(id,type,col);break;
case "inset":raised(id,type,col);break;
case "square":square(id,col);break;
case "curved":curved(id,type,col);break;
case "serif":curved(id,type,col);break;
case "pillar":curved(id,type,col);break;
case "chamfer":chamfer(id,type,col);break;
case "barrel":chamfer(id,type,col);break;
}
}
function curved(id,type,col){
var cn="class";
/*@cc_on
cn="className";
@*/
var box=set(d.getElementById(id),cn,"boxcontent");
var ext=set(ele("div"),cn,type);
if(!(col===undefined))
box.style.backgroundColor=col;
var top=set(ele("span"),cn,"top");
var t;
for(var i=1;i<5;i++){
app(top,t=set(ele("span"),cn,"b"+i));
if(!(col===undefined)&&i!=1)
t.style.backgroundColor=col;
}
app(ext,top);
box.parentNode.insertBefore(ext,box);
app(ext,box);//TRANSFER because it is already into the DOM
var down=set(ele("span"),cn,"bottom");
for(var i=4;i>0;i--){
app(down,t=set(ele("span"),cn,"b"+i));
if(!(col===undefined)&&i!=1)
t.style.backgroundColor=col;
}
app(ext,down);
}
function square(id,col){
var cn="class";
/*@cc_on
cn="className";
@*/
var box=set(d.getElementById(id),cn,"boxcontent");
var ext=set(ele("div"),cn,"square");
if(!(col===undefined))
box.style.backgroundColor=col;
var top=set(ele("span"),cn,"top");
var t;
app(top,t=set(ele("span"),cn,"b1t"));
if(!(col===undefined))
t.style.backgroundColor=col;
app(top,t=set(ele("span"),cn,"b2"));
if(!(col===undefined))
t.style.backgroundColor=col;
app(ext,top);
box.parentNode.insertBefore(ext,box);
app(ext,box);
var down=set(ele("span"),cn,"bottom");
app(down,t=set(ele("span"),cn,"b2"));
if(!(col===undefined))
t.style.backgroundColor=col;
app(down,t=set(ele("span"),cn,"b1b"));
if(!(col===undefined))
t.style.backgroundColor=col;
app(ext,down);
}
function chamfer(id,type,col){
var cn="class";
/*@cc_on
cn="className";
@*/
var box=set(d.getElementById(id),cn,"boxcontent");
var ext=set(ele("div"),cn,type);
if(!(col===undefined))
box.style.backgroundColor=col;
var top=set(ele("span"),cn,"top");
for(var i=1;i<6;i++){
app(top,t=set(ele("span"),cn,"b"+i));
if(!(col===undefined)&&i!=1)
t.style.backgroundColor=col;
}
app(ext,top);
box.parentNode.insertBefore(ext,box);
app(ext,box);
var down=set(ele("span"),cn,"bottom");
for(var i=5;i>0;i--){
app(down,t=set(ele("span"),cn,"b"+i));
if(!(col===undefined)&&i!=1)
t.style.backgroundColor=col;
}
app(ext,down);
}
function raised(id,type,col){
var cn="class";
/*@cc_on
cn="className";
@*/
var box=set(d.getElementById(id),cn,"boxcontent");
var ext=set(ele("div"),cn,type);
if(!(col===undefined))
box.style.backgroundColor=col;
var top=set(ele("span"),cn,"top");
for(var i=1;i<5;i++){
var t=set(ele("span"),cn,"b"+i);
if(!(col===undefined) && i!=1)
t.style.backgroundColor=col;
app(top,t);
}
app(ext,top);
box.parentNode.insertBefore(ext,box);
app(ext,box);
var down=set(ele("span"),cn,"bottom");
for(var i=4;i>0;i--){
var t=set(ele("span"),cn,"b"+i+"b");
if(!(col===undefined) && i!=1)
t.style.backgroundColor=col;
app(down,t);
}
app(ext,down);
}