-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
var Builder = {
NODEMAP: {AREA: 'map', CAPTION: 'table', COL: 'table', COLGROUP: 'table', LEGEND: 'fieldset', OPTGROUP: 'select', OPTION: 'select', PARAM: 'object', TBODY: 'table', TD: 'table', TFOOT: 'table', TH: 'table', THEAD: 'table', TR: 'table'},
// note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
// due to a Firefox bug
node: function(elementName) {elementName = elementName.toUpperCase(); // try innerHTML approach var parentTag = this.NODEMAP[elementName] || 'div'; var parentElement = document.createElement(parentTag); try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 parentElement.innerHTML = "<" + elementName + "></" + elementName + ">"; } catch(e) {} var element = parentElement.firstChild || null; // see if browser added wrapping tags if(element && (element.tagName != elementName)) element = element.getElementsByTagName(elementName)[0]; // fallback to createElement approach if(!element) element = document.createElement(elementName); // abort if nothing could be created if(!element) return; // attributes (or text) if(arguments[1]) if(this._isStringOrNumber(arguments[1]) || (arguments[1] instanceof Array)) { this._children(element, arguments[1]); } else { var attrs = this._attributes(arguments[1]); if(attrs.length) { try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 parentElement.innerHTML = "<" +elementName + " " + attrs + "></" + elementName + ">"; } catch(e) {} element = parentElement.firstChild || null; // workaround firefox 1.0.X bug if(!element) { element = document.createElement(elementName); for(attr in arguments[1]) element[attr == 'class' ? 'className' : attr] = arguments[1][attr]; } if(element.tagName != elementName) element = parentElement.getElementsByTagName(elementName)[0]; } } // text, or array of children if(arguments[2]) this._children(element, arguments[2]); return element;},
_text: function(text) {return document.createTextNode(text);},
_attributes: function(attributes) {var attrs = []; for(attribute in attributes) attrs.push((attribute=='className' ? 'class' : attribute) + '="' + attributes[attribute].toString().escapeHTML() + '"'); return attrs.join(" ");},
_children: function(element, children) {if(typeof children=='object') { // array can hold nodes and text children.flatten().each( function(e) { if(typeof e=='object') element.appendChild(e) else if(Builder._isStringOrNumber(e)) element.appendChild(Builder._text(e)); }); } else if(Builder._isStringOrNumber(children)) element.appendChild(Builder._text(children));},
_isStringOrNumber: function(param) {return(typeof param=='string' || typeof param=='number');}
} -
It's is designed to put the rider's weight further to the front of the frame, to increase power transfer to the rear wheel due to less resistance, and also to increase aerodynamics. I think it looks really cool..... I've always wanted one..... I've only ever ridden one on the road that was comfortable.
Roberto, remember that ridiculous sloping Argos that I wanted off you..... I road around Kennington in the pissing rain with tubs pumped to 190psi or something on a bike fitted with massive aero bars and the most ridiculous angle of top-tube..... just staring at tarmac.
That Argos above looks so nice and plain..... + much better to ride brakeless as there is little weight put on the back, making it much easier to skid and do stuff with back wheel.... one of the advantages of having a track frame and/or a sloping TT/LoPro frame.
-
-

cool, thanks man