gCookie = function(){
  this.save = function(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
  }

  this.read = function(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
  }

  this.trash = function(name) {
	this.save(name,"",-1);
  }

}

var cookieMan = new gCookie();

function TabPanel(name, parent, width, height) {
    this.name   = name;
    this.width  = width;
    this.height = height;
    this.selectedTab = 0;
    this.paused = false;
    this.controls = true; // default set to true.. some pages dont need this controls
    if (parent==null) {
        this.parent=document.getElementsByTagName("body")[0];
    } else {
        this.parent=document.getElementById(parent);
    }
    this.tabs=[];
    this.addTab=function (name, label, htmlContent, ajaxPage, onActivate, selected) {
        this.tabs[this.tabs.length] = new TabView(name, label, htmlContent, ajaxPage, onActivate, selected);
        if (selected===true) {
            this.selectedTab = this.tabs.length - 1;
        }
    };
    this.writeHere=function(divId) {
	//if(this.selectedTab == -1){
	//   var tLast = cookieMan.read('selectedTab');
	//   if(tLast == null) tLast = 0;
	//   else tLast++;
	//   if(tLast >= this.tabs.length) tLast = 0;
	//   this.selectedTab = tLast;
        //   cookieMan.save('selectedTab',tLast,90);
	//}
        var txt = "";
        txt += "<div id='tabPanel_"+this.name+"' class='tabPanel' style='"+(this.width!=null?"width:"+this.width+";":"")+(this.height!=null?"height:"+this.height+";":"")+"'>";
        txt += "<div class='tabPanelControl'>";
        var i=0;
        txt += "<div class='leftCurve tabNotSelected' id='leftCurve'></div>";
        for (i=0;i<this.tabs.length;i++) {
            if (i>0) {
                txt += "<div class='devider' id='devider_"+i+"'></div>";
            }
            txt += "<div class='tabControl"+(this.selectedTab==i?"":" tabNotSelected")+"' id='tabControl_"+this.tabs[i].name+"_"+i+"' onclick='"+this.name+".tabChange("+i+")'>";
            txt += this.tabs[i].label;
            txt += "</div>";
        }
        txt += "<div class='rightCurve tabNotSelected' id='rightCurve'></div>";
        txt += "</div>";
        if(this.controls == true){
        txt += '<div class="tabNavControls"><ul class="controls">';
	  txt += '<li><img src="/images/blank.gif" class="left" onmouseover="this.className=\'left-active\'" onmouseout="this.className=\'left\'" onclick="'+this.name+'.prev();" /></li>';
	  txt += '<li><img src="/images/blank.gif" class="pause" id="controls.pause" onmouseover="if(this.className==\'pause\') this.className=\'pause-active\'" onmouseout="if(this.className==\'pause-active\') this.className=\'pause\'" onclick="'+this.name+'.pause();" /></li>';
	  txt += '<li><img src="/images/blank.gif" class="right" onmouseover="this.className=\'right-active\'" onmouseout="this.className=\'right\'" onclick="'+this.name+'.next();" /></li>';
	  txt += '</ul></div>';
	}
        txt += "<div class='tabViewContent' id='tabViewContent'></div>";
        txt += "</div>";
        if (divId) {
            document.getElementById(divId).innerHTML = txt;
        } else {
            document.write(txt);
        }
        this.tabChange(this.selectedTab);
    };
    this.pause = function(){
        if(this.paused == false){
	   if(this.timer) clearTimeout(this.timer);
           this.paused = this.delayTimer;
	   this.delayTimer = 0;
	   $('controls.pause').className = 'paused';
	}else{
	   this.delayTimer = this.paused;
	   this.paused = false;
  	   if(this.delayTimer > 0)
  	      this.timer = setTimeout('tb.animate()', this.delayTimer);
	   $('controls.pause').className = 'pause';
	}
    }
    this.prev = function(){
	i = this.selectedTab - 1;
   	if( i < 0 ) i = this.tabs.length - 1;
	this.tabChange(i);
    };
    this.next = function(){
	i = this.selectedTab + 1;
   	if( i >= this.tabs.length ) i = 0;
	this.tabChange(i);
    };
    this.animate = function(){
	i = this.selectedTab + 1;
   	if( i >= this.tabs.length ) i = 0;
	this.tabChange(i, true);
    };
    this.tabChange = function (index) {
        var i=0;
	//cookieMan.save('selectedTab',index,90);
        if (index==0) {
            document.getElementById('leftCurve').className="leftCurve";
        } else {
            document.getElementById('leftCurve').className+=" tabNotSelected";
        }
        if (index==this.tabs.length-1) {
            document.getElementById('rightCurve').className="rightCurve";
        } else {
            document.getElementById('rightCurve').className+=" tabNotSelected";
        }
        for (i=0;i<this.tabs.length;i++) {
            if (i==index) {
                document.getElementById('tabControl_'+this.tabs[i].name+"_"+i).className="tabControl";
                this.selectedTab = i;
            } else {
                document.getElementById('tabControl_'+this.tabs[i].name+"_"+i).className+=" tabNotSelected";
            }
        }
        var contnt=this.tabs[this.selectedTab].htmlContent;
        var func = this.tabs[this.selectedTab].onActivate;
        if (contnt===null || contnt=="") {
            var pg = this.tabs[this.selectedTab].ajaxPage;
            if (pg!=null && pg!="") {
                document.getElementById('tabViewContent').innerHTML = "<table align='right' valign='top' style='vertical-align:top;'><tr><td align='right'><img class='tabLoadingImage' src='images/tabimages/loading_lg.gif'></td><td><span class='tabLoadingText'>Loading...</span></td></tr></table>";
                setContent(pg);
            }
        } else {
            document.getElementById('tabViewContent').innerHTML = contnt;
        }
        if (func!=null) {
            if (typeof(func)=="function") {
                func();
            } else if(typeof(func)=="string") {
                try {
                    eval(func);
                } catch (e) {}
            }
        }
	if(this.timer) clearTimeout(this.timer);
	if(arguments.length > 1){
  	   if(this.delayTimer > 0)
  	      this.timer = setTimeout('tb.animate()', this.delayTimer);
	}else{
	   if(this.afterClick > 0)
	      this.timer = setTimeout('tb.animate()', this.afterClick);
	}
    };
}

function setContent(page) {
    var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange=function () {
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            document.getElementById('tabViewContent').innerHTML = xmlHttp.responseText;
        }
    };
    xmlHttp.open("GET", page, true);
    xmlHttp.send(null);
}

function TabView(name, label, htmlContent, ajaxPage, onActivate, selected) {
    this.name=name;
    this.label=label;
    this.htmlContent=htmlContent;
    this.onActivate=onActivate;
    this.selected=selected;
    this.ajaxPage=ajaxPage;
}


