if (typeof ThinkCo == "undefined") {
    var ThinkCo = {};
}

ThinkCo.namespace = function() {
    var a=arguments, o=null, i, j, d;
    for (i=0; i<a.length; i=i+1) {
        d=a[i].split(".");
        o=ThinkCo;
        for (j=(d[0] == "ThinkCo") ? 1 : 0; j<d.length; j=j+1) {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }
    return o;
};

ThinkCo.namespace ('ThinkCo.page');
fAddEvent (window, "load", function() {ThinkCo.page.Load()});
fAddEvent (window, "resize", function() {ThinkCo.page.Resize()});
function fAddEvent(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; }

ThinkCo.page.Load = function() {
	var root = document.getElementById("iRoot");
	if ( root ) {
		root.className = root.className + ' enhance'
	}

    ThinkCo.component.AddCornersInternal ("div", "panel");
	ThinkCo.component.AddCornersInternal ("div", "panelTop");
    ThinkCo.component.AddCornersInternal ("div", "container");
    ThinkCo.component.AddCornersInternal ("div", "highlight");
    ThinkCo.component.AddCornersInternal ("div", "blockquote");
    ThinkCo.component.AddCornersExternal ("div", "iBusinessTable");
    ThinkCo.component.AddCornersExternal ("div", "iPersonalTable");

	var ratesTables = ThinkCo.component.getElementsByClassName ('div', 'jsCornersRates');

	for ( var i = 0; i < ratesTables.length; i++ ) {
		var ref = ratesTables[i];
		var id	= ref.id ? ref.id : 'jsRates-' + i;
		ref.id	= id
		ThinkCo.component.AddCornersExternal ("div", id);
	}

	ThinkCo.component.Collapse()
	ThinkCo.page.InitScroller();
};

ThinkCo.namespace ('ThinkCo.component');
ThinkCo.component.AddCornersInternal = function(tg, cls){
   var nodes = ThinkCo.component.getElementsByClassName(tg, cls);

   for(var i=0;i<=nodes.length-1;i++){
        var node = nodes[i];
        if(node){
            var arr = ThinkCo.component.getCorners();
            for(var a=0;a<=arr.length-1;a++){
                   node.appendChild(arr[a]);
            }
        }
   }
}

ThinkCo.component.AddCornersExternal = function(tg, id){
    var node = document.getElementById(id);
    if(node){
        var arr = ThinkCo.component.getCorners();
        for(var a=0;a<=arr.length-1;a++){
            node.appendChild(arr[a]);
        }
    }
}

ThinkCo.component.AddCornersExternalRates = function(tg, cls){
    var nodes = ThinkCo.component.getElementsByClassName(tg, cls);
    for(var i=0;i<=nodes.length-1;i++){
        var node = nodes[i];
        if(node){
            var arr = ThinkCo.component.getCorners();
            for(var a=0;a<=arr.length-1;a++){
            node.appendChild(arr[a]);
            }
        }
    }

}

ThinkCo.component.getCorners = function(){
    var arrDiv = new Array();
    for(var i=0;i<=3;i++){
        var div = document.createElement("div");
		div.className = "jsCorner crn-" + (i+1);
        arrDiv[i]=div;
    }
    return arrDiv;
}

ThinkCo.component.getElementsByClassName = function($tag,$className,$node) {
  if (!document.getElementsByTagName) { return false; }
  $node      = $node || document;
  var matches = new Array;
  var elements = $node.getElementsByTagName($tag);
  var expression = new RegExp('(^| )' + $className + '( |$)');
  var j      = 0;

  for (var i = 0; i < elements.length; i++) {
    var ref = elements[i];
    if (ref.className) {
      if (expression.test (ref.className)) {
        matches[j++] = ref;
      }
    }
  }
  return matches;
}

ThinkCo.page.Resize = function () {
    var root = document.getElementById("iRoot");
    var tmp_width = document.documentElement.clientWidth;
    var cls = root.className;
    var b=navigator.appName;
    var max_width;

    if(b=="Microsoft Internet Explorer"){
        max_width = 1003
    }else{
        max_width = 1007
    }

    if((tmp_width > 0) && (tmp_width < max_width)){
        root.className= fRemoveWideClasses(cls);
    }else{
        root.className= fAddWideClasses(cls);
    }
	return;
}

function fRemoveWideClasses(cls){
	cls = cls.replace("wide-nav", "");
	cls = cls.replace("wide-fullwidth", "");
	cls = cls.replace("wide", "");
    return cls;
}

function hasClass(string, className) {
	var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
	return re.test(string);
}

function fAddWideClasses(cls){
	if ( !hasClass(cls, 'wide') ) {
		cls += ' wide'
	}
	if ( (hasClass(cls, 'nav')) && (!hasClass(cls,'wide-nav')) ) {
		cls += ' wide-nav'
	}

	if ( (hasClass(cls, 'fullwidth')) && (!hasClass(cls,'wide-fullwidth')) ) {
		cls += ' wide-fullwidth'
	}
    return cls;
}

ThinkCo.namespace ('ThinkCo.component');

ThinkCo.component.Collapse = function () {
    var nodes	= ThinkCo.component.getElementsByClassName("div", "jsCollapsor");
	var NodeID	= null;
	var spnNode, aNode, spnNodes;

    for(var i=0;i<nodes.length;i++){
        var node	= nodes[i];
		if ( node.id ) {
			NodeID	= node.id
		} else {
			NodeID	= "jsCollapsor" + i
		}
        node.id			= NodeID;
        node.className	= node.className + " jsToggleClosed";
        spnNodes		= ThinkCo.component.getElementsByClassName("span", "jsToggle",node);
        for ( var j = 0; j < spnNodes.length; j++ ) {
			spnNode			= spnNodes[j];
            aNode			= document.createElement("a");
			aNode.href		= '#' + NodeID;
			aNode.className	= spnNode.className;
            aNode.innerHTML	= spnNode.innerHTML;
			spnNode.parentNode.replaceChild(aNode, spnNode);
			aNode.onclick = function () {
				var node = document.getElementById ( this.hash.substring ( 1, this.hash.length ) )
				var cls = node.className;
				if(cls.match("jsToggleClosed")!=null){
				   cls = cls.replace("jsToggleClosed", "jsToggleOpen");
				}else{
					cls = cls.replace("jsToggleOpen", "jsToggleClosed");
				}
				node.className = cls;
				return false;
			};
        }
    }
}

ThinkCo.page.InitScroller = function(){oScroller = new Scroller("oScroller", "iHomepageTicker", 15, 1000);}

var IsScrollerPaused = false;

function Scroller(obj, id, speed, pause) {
	this._UL=null;
	this._LIs=null;
	this._height=null;
	this._currentLI=0;
	this._speed=speed;
	this._pause=pause;
	this._name=obj;
	this.init(id);
}
Scroller.moveLeft = function(obj, p) { obj.moveLeft(p); }
var w;
Scroller.prototype.init = function(id){
	var e = document.getElementById(id); if(e==null) return;
	var eLi = e.getElementsByTagName("LI"); if(e==null) return;
	this._UL = e; this._LIs = eLi; this._width = Number(this._UL.offsetWidth);
    if(e.nodeName=="UL"){
    //    alert(e.className); e.className="js"; alert(e.className);
        fApplyStyle(e, "white-space", "nowrap");
	    fApplyStyle(e, "overflow", "hidden");
	    fApplyStyle(e, "height", "1.5em");
    }
	for(i in this._LIs){
	    fApplyStyle(this._LIs[i], "position", "absolute");
	    fApplyStyle(this._LIs[i], "display", "block");
	    fApplyStyle(this._LIs[i], "left", this._width+"px");
	    if(this._LIs[i].innerHTML!=undefined){
	        w = setLiWidth(this._LIs[i]);
	    }
	    fApplyStyle(this._LIs[i], "width", w+"em");

	   if(this._LIs[i].nodeName=="LI"){
	        this._LIs[i].onmouseover = function() { pause(); }
	        this._LIs[i].onmouseout = function() { resume(); }
		}
	}
	this.moveLeft();
}
Scroller.prototype.moveLeft = function(move){
if ( !IsScrollerPaused ) {
	if(!move) this._LIs[this._currentLI]._x = this._width;
	var cL = this._LIs[this._currentLI];
	fApplyStyle(cL, "left", cL._x+"px");
	(--cL._x>-Number(cL.offsetWidth)) ? setTimeout("Scroller.moveLeft("+this._name+",true);", this._speed) : this.pause();
	} else {
		setTimeout("Scroller.moveLeft("+this._name+",true);", this._speed)
	}
}
Scroller.prototype.pause = function(){ setTimeout("Scroller.moveLeft("+this._name+");", this._pause); }
function setLiWidth(li){

        var noOfChar;
        var avW = "5";
        var noOfChar = li.innerHTML.length;
        return (avW * noOfChar)/10;

}
function fApplyStyle(id, style, prop)
{
    var e = (typeof(id)=="string")?document.getElementById(id):id;
    if(e==null) return;
    if(e.style) e = e.style; e[style] = prop;
}
function pause(){
   IsScrollerPaused=true
}

function resume(){
IsScrollerPaused=false;
}

function newWindow(url, height, width) {
	var nameW='feature';
	if (navigator.appVersion.indexOf('4') != -1) {
		// Vars for centering the new window on Version 4 Browsers
		xTop = screen.width/2 - (width/2);
		yTop = screen.height/2 - (height/2);
		window.open(url, nameW, 'height='+height+',width='+width+',scrollbars=1,resizable=0,menubar=0,toolbar=0,status=0,location=0,directories=0,left=' + xTop + ',top=' + yTop + '');
	} else {
		window.open(url, nameW, 'height='+height+',width='+width+',scrollbars=1,resizable=0,menubar=0,toolbar=0,status=0,location=0,directories=0,left=150,top=200');
	}
}
