	var TabsActiveTabId = null;
	var TabsUpdateParams = "&";
	var TabsCallBack = null;
	var TabsSelectedTabName = "";
	var TabsIsLoading = false;
	var TabsLoadType = "AJAX";//REFRESH,AJAXHISTORY
	
	var TabsIsUpdateCurrent = false;
	var TabsIsShowWait = 3;
	
	styles = new Object();
	styles.tab = "tabDim";
	styles.tabActive = "tab";
	
	function TabsCutBadParams(TabId)
	{
	  if (TabsActiveTabId == null) return false;
		if (TabsActiveTabId == TabId) return false;
		var bad_symbol = "p=";
		var arr = TabsUpdateParams.split("&");
		var res = "";
		for (var i=0; i<arr.length; i++) {
				if (arr[i].indexOf(bad_symbol)!=0) 
					res += arr[i] +"&";
		}
		if (res != "") TabsUpdateParams = res;
	}
	
	function TabsUpdateParamsValiable(params) {
		if (params) {
			var first_symbol = "";
			if (params.indexOf("&")!=0) first_symbol = "&";
			TabsUpdateParams = first_symbol + params;
		}	
		else
			TabsUpdateParams = "&";
	}

	function TabsTabOnClick(tabControlId,index,TabId,level,pageId,href,controlName,desId,onGetParams)
	{
		if (TabsIsLoading)
			return;
		var tabs = TabsGetTabs(tabControlId);
		for(var i = 0 ; i<tabs.length ; i++)
		{	
			if (tabs[i].className == styles.tabActive && i == index && !TabsIsUpdateCurrent)
				return false;
			tabs[i].className = styles.tab;
			var iconObj = document.getElementById(tabControlId+i+"Icon");
			if (iconObj!=null)
			iconObj.style.display = "none";
		}
		var updateCurrent = TabsIsUpdateCurrent;
		TabsIsUpdateCurrent = false;
		tabs[index].className = styles.tabActive;
		
		var iconObj = document.getElementById(tabControlId+index+"Icon");
		if (iconObj!=null)
			iconObj.style.display = "";

		TabsCutBadParams(TabId);
		TabsActiveTabId = TabId;
		if (controlName!="" && desId!="")
		{
			params = "";
			if (onGetParams)
				params = "&"+onGetParams();
			TabsIsLoading = true;
			if (TabsSelectedTabName != "")
			{
				params+="&CurrentObjectName="+TabsSelectedTabName
				TabsSelectedTabName = "";
			}

			while (params.length>0 && params.lastIndexOf("&") == params.length-1) {
				params = params.substring(0,params.length-1);
			}

			while (TabsUpdateParams.length>0 && TabsUpdateParams.lastIndexOf("&") == TabsUpdateParams.length-1) {
				TabsUpdateParams = TabsUpdateParams.substring(0,TabsUpdateParams.length-1);
			}


			var p = "&TabID="+TabId+"&LevelID="+level+"&PageID="+pageId+params+TabsUpdateParams;
			
			if (TabsLoadType=="AJAXHISTORY")
				Forward("&TabID="+TabId+"&LevelID=1&PageID="+pageId+params+TabsUpdateParams);
			else if (TabsLoadType=="REFRESH" && !updateCurrent)
			{
				Redirect("TabID="+TabId+"&LevelID=1&PageID="+pageId+params+(TabsUpdateParams != "&" ? TabsUpdateParams : ""));
				TabsUpdateParams = "&";
				return true;
			}
			UpdateControlEx(controlName,desId,p,function(){TabsIsLoading = false; if (TabsCallBack) TabsCallBack();TabsCallBack = null;},null,TabsIsShowWait,true);
			TabsIsShowWait = 3;
			TabsUpdateParams = "&";
			return true;
		}
		if (href!="")
			window.location.href=href+"&TabId="+TabId;
		return true;
	}
	function TabsActivateTab(tabName,params,selectedTabName)
	{	
		for (var i = 1; document.getElementById("Tabs_"+i)!=null; i++)
		{
			var tabs = TabsGetTabs("Tabs_"+i);
			for(var j = 0 ; j<tabs.length ; j++)
			{	
				if (tabs[j].id == "tdTab_"+tabName)
				{
					TabsUpdateParamsValiable(params);
					if (selectedTabName)
						TabsSelectedTabName = selectedTabName;
					else
						TabsSelectedTabName = "";
					TabsIsUpdateCurrent = false;
					tabs[j].onclick();
					return false;
				}
			}
		}
		return false;
	}
	
	function TabsUpdateCurrent(params,showWait,callBack)
	{	
		var activeTab = null;
		TabsCallBack = callBack;
		for (var i = 1; document.getElementById("Tabs_"+i)!=null; i++)
		{
			var tabs = TabsGetTabs("Tabs_"+i);
			for(var j = 0 ; j<tabs.length ; j++)
			{	
				if (tabs[j].className == styles.tabActive)
				{
					TabsUpdateParamsValiable(params);
					activeTab = tabs[j];
					break;
				}
			}
		}

		if (activeTab!=null)
		{
			TabsIsUpdateCurrent = true;
			TabsIsShowWait = showWait;
			activeTab.onclick();
		}
		return false;
	}
	
	function TabsGetTabs(tabControlId)
	{	
		var tabs = new Array();	
		var tabObj = document.getElementById(tabControlId);
		for(var i = 0; i < tabObj.rows[0].cells.length ; i++)
		{	
			var tab = tabObj.rows[0].cells[i];
			if (tab.id.substr(0,5)=="tdTab")
				tabs.push(tab);
		}
		return tabs;
	}

	function TabsGetCurrent(tabControlId)
	{
		var tabs = TabsGetTabs(tabControlId);
		for(var i = 0 ; i<tabs.length ; i++)
			if (tabs[i].className == styles.tabActive)
				return tabs[i].id.replace("tdTab_", "");
		return "";
	}

	function TabsNext(tabControlId)
	{
		var tabs = TabsGetTabs(tabControlId);
		for(var i = 0 ; i<tabs.length ; i++)
			if (tabs[i].className == styles.tabActive && i < tabs.length-1)
			{
				tabs[i+1].onclick();
				return false;
			}
		return false;
	}

	function TabsPrevious(tabControlId)
	{
		var tabs = TabsGetTabs(tabControlId);
		for(var i = 0 ; i<tabs.length ; i++)
			if (tabs[i].className == styles.tabActive && i > 0)
			{
				tabs[i-1].onclick();
				return false;
			}
		return false;
	}

	function TabsDisplayTab(selectedTab, numTabs, objectName)
	{
		for (var i = 0; i < numTabs; i ++) {
		 	var e = document.getElementById(objectName + i);
		 	e.style.display = (i == selectedTab) ? "" : "none";
		}
	}
	
	

if (typeof(jQuery)!="undefined")
{
	window.historyStack = new Array();
	window.asdasdasd=0;
	window.pageload = function (hash) {
		if (hash.substring(0,3) == "TAB")
			location.href=historyStack[hash.substring(3)];
		//alert(hash.substring(3)+"---"+historyStack[hash.substring(3)]);
	}
	
	jQuery(document).ready(function(){
		if(typeof(jQuery.historyLoad)!="undefined")
			jQuery.historyInit(pageload);
	});
}	
window.Forward = function (params)
{
	if (typeof(jQuery)!="undefined" && typeof(jQuery.historyLoad)!="undefined")
	{
		historyStack.push(location.pathname + "?" + params);
		jQuery.historyLoad("TAB" + asdasdasd++);
	}
}

window.Redirect = function (params)//iip_pmanager_index.aspx?trace=1#
{
	var i =0;
	for( i =params.length -1;i>=0 && (params[i]=="&" || params[i]=="#");i--);
	var p = params.substr(0,i+1);	
	location.href = location.pathname + "?" + p;
}

function TabsGetCurrentTabIndex(tabControlId){
	var tabs = TabsGetTabs(tabControlId);
	for(var i = 0 ; i<tabs.length ; i++)
	{	
		if (tabs[i].className == styles.tabActive)
		      	return i;
	}
	return -1;
}