Lib = {
    _isOpera: (navigator.userAgent.toLowerCase().indexOf('opera') > -1),
    _isSafari: (navigator.userAgent.toLowerCase().indexOf('safari') > -1),
    _isGecko: (!this._isOpera && !this._isSafari && navigator.userAgent.toLowerCase().indexOf('gecko') > -1),
    _isIE: (!this._isOpera && navigator.userAgent.toLowerCase().indexOf('msie') > -1),
    getEventSrc: function(e){ 
        if(!e) e = window.event; 
        e = (e.target) ? e.target : e.srcElement || e; return e;
    },
    addEvent: function(obj, evType, fn){ 
        if(obj.addEventListener){ obj.addEventListener(evType, fn, false); return true; }
        else if(obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; }
        else return false;
    },
    removeEvent: function( obj, evType, fn ) { 
         if ( obj.detachEvent ) {
             obj.detachEvent( 'on'+evType, fn );
             obj[evType+fn] = null;
         } else
             obj.removeEventListener( evType, fn, false );
    },
    applyStyle: function(id, prop, val){ 
        var e = (typeof(id)=="string") ? document.getElementById(id) : id;
        if(e==null) return;
        if(e.style) e = e.style; e[prop] = val;
    },
    getElementsByClass: function(className, tag, node){ 
        node = node || document; var aa = new Array();
        var a = (tag) ? node.getElementsByTagName(tag) : (node.all || node.getElementsByTagName('*'));
        for(var i=0; i<a.length; i++)    if(a[i].className.match(eval("/\\b"+className+"\\b/"))) aa.push(a[i]); return aa;
    },
    getParentElementByTagName: function(e, tag){ 
        do{ e = e.parentNode; if(e.nodeName.toLowerCase()==tag) return e; }
        while(e!=document.body);
        return null;
    },
    getParentElementById: function(e, id){ 
        id = new RegExp(id);
        do{ e = e.parentNode; if(e.id && String(e.id).match(id)) return e;    }
        while(e!=document.body);
        return null;
    },
    getParentElementByClass: function(e, className, tag){ 
        className = new RegExp(className);
        do{ e = e.parentNode; if(tag && e.nodeName.toLowerCase()!=tag) continue; if(e.className.match(className)) return e; }
        while(e!=document.body);
        return null;
    },
    getViewportWidth: function(){ //YAHOO
        var width = self.innerWidth;
        var mode = document.compatMode;
        if (mode || Lib._isIE) width = (mode == 'CSS1Compat') ? document.documentElement.clientWidth : document.body.clientWidth;
        return width;
    },
    hasClass: function(el, className) { //YAHOO
        el = (typeof(el)=="string") ? document.getElementById(el) : el;
        var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
        return re.test(el.className);
    },
    addClass: function(el, className) { //YAHOO
        el = (typeof(el)=="string") ? document.getElementById(el) : el;
        if (this.hasClass(el, className)) { return; } // already present
        el.className = [el.className, className].join(' ');
    },
    removeClass: function(el, className) { //YAHOO
        el = (typeof(el)=="string") ? document.getElementById(el) : el;
        var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', 'g');
        if (!this.hasClass(el, className)) return; // not present
        var c = el.className;
        el.className = c.replace(re, ' ');
        if (this.hasClass(el, className)) this.removeClass(el, className); // in case of multiple adjacent
    },
    replaceClass: function(el, oldClassName, newClassName) { //YAHOO
        el = (typeof(el)=="string") ? document.getElementById(el) : el;
        if (oldClassName === newClassName) return false;// avoid infinite loop
        var re = new RegExp('(?:^|\\s+)' + oldClassName + '(?:\\s+|$)', 'g');
        if (!this.hasClass(el, oldClassName)){
            this.addClass(el, newClassName); // just add it if nothing to replace
            return; // note return
        }
        el.className = el.className.replace(re, ' ' + newClassName + ' ');
        if (this.hasClass(el, oldClassName)) this.replaceClass(el, oldClassName, newClassName); // in case of multiple adjacent
    },
    ready: true
}
Flow = {
    pageResize: function(){ // change css class on oage resize
        var wCur = Lib.getViewportWidth(), wDiv, s;
        if(wCur < 760) wDiv = 760;
        else if(wCur > 958) wDiv = 958;
        s = (wDiv) ? (wDiv + "px") : "";
        Lib.applyStyle("", "width", s);
        if (wCur < 860) Lib.replaceClass("iRoot", " widthNormal", "widthSmall");
        else Lib.replaceClass("iRoot", "widthSmall", "widthNormal");
    },
   

    initialise: function(){
        Flow.pageResize();
    }
} 
Lib.addEvent(window, "load", Flow.initialise);
Lib.addEvent(window, "resize", Flow.pageResize);
 