var tabs={
server : document.location.hostname,
servlet : 'iwmanager',
fieldWidth:null,
json : '',
"iWidget" : 
{
	"method" :""
},
init:function(id){
	this.selectTab(id);
},
openEdit:function(id){
	var select=document.getElementById('select_'+id);
	select.className='tabSelectHidden';
	var text=((select.innerHTML.length)* 6)+8;
	var deleteAction=document.getElementById('delete_'+id);
	deleteAction.className='tabDeleteHidden';
	var edit=document.getElementById('edit_'+id);
	edit.className='tabEdit';
	var field=eval('document.forms[0].field_'+id);
	field.focus();
	field.style.width=(text)+'px';
	
},
addTab : function()
{
	this.iWidget.method = 'CREATETAB';
	this.iWidget.environment = Session.environment;
	this.json = JSON.stringify(this.iWidget, this.replacer);
	dojo.xhrGet(
			{
				url : "http://" + this.server + "/servlet/" + this.servlet,
				handleAs : "text",
				timeout : 2500,
				content :
				{
				json : this.json
				},

				load : function(response, ioArgs)
				{
					//document.location.reload();
					var jsonObject = eval("(" + unescape(response) + ")");
					var tabList=document.getElementById('tabsList');
					var ul=tabList.lastChild;
					var newLi=document.createElement('li');
					newLi.className='dojoDndItem';
					newLi.id='tab_'+jsonObject.id;					
					var spanLeft=document.createElement('span');
					spanLeft.className='tabLeftSelect';
					spanLeft.id='left_'+jsonObject.id;
					newLi.appendChild(spanLeft);
					var spanRight=document.createElement('span');
					spanRight.className='tabRightSelect';
					spanRight.id='right_'+jsonObject.id;
					spanLeft.appendChild(spanRight);
					var spanTitle=document.createElement('span');
					spanTitle.className='tabTitle';
					spanTitle.id='title_'+jsonObject.id;
					spanRight.appendChild(spanTitle);
					var text=document.createTextNode(jsonObject.title);
					spanTitle.appendChild(text);
					ul.appendChild(newLi);					
					var li=ul.lastChild;					
					var spanLeft=document.getElementById('left_'+li.id.substring(4));
					var left=(640-(li.offsetLeft)-1)-spanLeft.clientWidth;
					if(left < 0){
					tabList.style.left=left+'px';
					}
					var location="/"+Session.dbList.current+'/mypage.xsp?action=openDocument&documentId='+jsonObject.id;
					if(left < 0){
					location+='&left='+tabList.style.left;
					}
					document.location=location;					
					return response;

				},

				// The ERROR function will be called in an error case.
				error : function(response, ioArgs)
				{
					// console.error("HTTP status code: ",response);
					//console.debug(response + ' from error function');
					return response;
				}
			});
},
blurTab:function(id,value){
	var current=document.getElementById('title_'+id);
	var field=eval('document.forms[0].field_'+id);
	if(current.innerHTML==field.value){
		var edit=document.getElementById('edit_'+id);
		edit.className='tabEditHidden';
		var select=document.getElementById('select_'+id);
		select.className='tabSelect';
		var deleteAction=document.getElementById('delete_'+id);
		deleteAction.className='tabDelete';
	}
	else{
		this.editTab(id,field.value);
	}
},
editTab:function(id,value){
	var title=document.getElementById('title_'+id);
	title.innerHTML=value;
	var select=document.getElementById('select_'+id);
	select.className='tabSelect';
	select.innerHTML=value;
	var deleteAction=document.getElementById('delete_'+id);
	deleteAction.className='tabDelete';
	var edit=document.getElementById('edit_'+id);
	edit.className='tabEditHidden';
	// Ajax Edit Action
	this.iWidget.method = 'EDITTAB';
	this.iWidget.id = id;
	this.iWidget.title = escape(value);
	this.iWidget.environment = Session.environment;
	this.json = JSON.stringify(this.iWidget, this.replacer);
	dojo.xhrGet(
			{
				url : "http://" + this.server + "/servlet/" + this.servlet,
				handleAs : "text",
				timeout : 1500,
				content :
				{
				json : this.json
				},

				load : function(response, ioArgs)
				{
					//document.location=location.protocol+'//'+location.hostname;
					// return response;

				},

				// The ERROR function will be called in an error case.
				error : function(response, ioArgs)
				{
					// console.error("HTTP status code: ",response);
					// console.debug(response + ' from error function');
					return response;
				}
			});
},
deleteTab:function(id){
	if (confirm("Are you sure you wish to delete this tab!!")) {

		this.iWidget.method = 'DELETETAB';
		this.iWidget.id = id;
		this.iWidget.environment = Session.environment;
		this.json = JSON.stringify(this.iWidget, this.replacer);
		dojo.xhrGet(
				{
					url : "http://" + this.server + "/servlet/" + this.servlet,
					handleAs : "text",
					timeout : 1500,
					content :
					{
					json : this.json
					},

					load : function(response, ioArgs)
					{
						document.location=location.protocol+'//'+location.hostname+"//"+Session.dbList.main+"//index.xsp";
						// return response;

					},

					// The ERROR function will be called in an error case.
					error : function(response, ioArgs)
					{
						// console.error("HTTP status code: ",response);
						console.debug(response + ' from error function');
						return response;
					}
				});
	}
},
openTab:function(page,id,area){ //Used to open tab /pages
	var tabsList=document.getElementById('tabsList');
	var left=tabsList.style.left;
	
	if(page=='index.xsp'){
		
		this.setInsiteCookie(startpage,'home');
		document.location="/"+Session.dbList.current+'/index.xsp'
		
	}
	else{
		var location="/"+Session.dbList.current+'/'+page
		if(page=='mypage.xsp'){
		location+='?action=openDocument&documentId='+id;
		}
		else if(page=='main.xsp'){
		location+='?action=openDocument&documentId='+id
		if(area==null){
		 area='company';
		}
		this.setInsiteCookie(id,area);
		}
		else if(page=='changeSite'){
		location=Session.dbList.changeSite;
		}
		else if(page=='admin.xsp'|| page=='administration.xsp'){
		location+='?action=openDocument&documentId='+id
		if(area==null){
		 area='admin';
		}
		this.setInsiteCookie(id,area);
		}
		else if(page.indexOf('crm.xsp')!=-1){
		location+='&documentId='+id;
		}
		else if(page.indexOf('documents.xsp')!=-1){
		location+='&documentId='+id;
		}
		else if(page.indexOf('iframe.xsp')!=-1){
		location+='&documentId='+id;
		}
		else if(page.indexOf('mac.xsp')!=-1){
		location+='&documentId='+id;
		}
		if(left){
		location+='&left='+left;
		console.debug(left);
		}
		document.location=location;
	}
},
selectTab:function(id){ //Select function runs when page opens to hightlight opened tabs tab
dojo.require("dojo.cookie");
var tabList=document.getElementById('tabsList');
if(tabLeft){
tabList.style.left=tabLeft;
}
var selTab=null;
var tabID=id;
var action=null;
if(id=='index'){
	var parent=document.getElementById('tabsDefault');
	selTab=parent.childNodes[0];
	tabID=selTab.id.substring(4,selTab.id.length);	
}
if(dojo.cookie("insite")!=undefined){
var insite=dojo.fromJson(dojo.cookie("insite"));
if(insite.area=='corp'){
tabID=language.getStartPage(insite.lang);
}
}
try{
var li=document.getElementById('tab_'+tabID);
if(li.getAttribute('role')=='admin'||li.getAttribute('role')=='user'){
	var current=document.getElementById('tab_'+tabID);
	current.className='selected';

}
}
catch(e){

}

},
slideTab:function(direction){
var tabCont = document.getElementById("tabsContainer");
		var tabContWidth = tabCont.getBoundingClientRect().right;
		var tabL = document.getElementById("tabsList");
		if(direction=='LEFT'){
			tabL.style.left = 0;
			return;
		}
		var ulist = document.getElementById("tabsDefault");
		var lpos = ulist.getBoundingClientRect().left;
		var listNodes = ulist.getElementsByTagName("li");
		var stop = false;
		var tabLength = new Array();
		//console.debug('lpos'+ lpos);
	if (lpos < tabCont.offsetLeft)
			tabContWidth = tabContWidth + 1 - lpos;
		else
			tabContWidth = tabCont.clientWidth+1;
			//console.debug(listNodes.length+' listNodeLength');
		for ( var i = 0; i < listNodes.length; i++)
			{
				var cNodes = listNodes[i].childNodes;
				for ( var y = 0; y < cNodes.length; y++)
					{
						if (cNodes[y].nodeName == 'SPAN')
							{
var tabWidthTot = (document.all) ?cNodes[y].parentNode.offsetLeft+cNodes[y].clientWidth:cNodes[y].offsetLeft + cNodes[y].clientWidth;
								tabLength[i] = tabWidthTot;
								//alert('tabWidthTot:'+tabWidthTot+' tabContWidth:'+ tabContWidth);
								if (tabWidthTot > tabContWidth)
									{
										var prevTab = tabLength[i - 1];
									//console.debug(prevTab + 'prevtab'+tabLength);
										var subt = tabContWidth - prevTab;
									//console.debug(subt + 'subt');
										tabL.style.left = (tabL.offsetLeft - cNodes[y].clientWidth + subt) + 'px';
										
										stop = true;
										break;
									}
							}
					}
				if (stop)
					break;
			}	
},
createTab:function(response){

},
setInsiteCookie:function(tabID,area){
dojo.require("dojo.cookie");
if(dojo.cookie("insite")==undefined){
		insite={
		lang:Session.lang.defaultLang,
		tab:tabID,
		area:area
		}
		}
		else{
		insite=dojo.fromJson(dojo.cookie("insite"));
		insite.tab=tabID;
		insite.area=area;
		dojo.cookie("insite", "", {
			expires : -1
		});
		}
		
		dojo.cookie("insite", dojo.toJson(insite), {
			expires : 35,
			path:'/'
		});
}
}
