jQuery(function(){
	var tabPos = 0;
	var clonePos = 0;
	var defaultPanel = 0;
	var tabs = [];
	var clones = [];
	var panels = [];
	var activeTab ;
	var jTabs = jQuery('.tabTitle').css({ 'cursor' : 'pointer' });
	var jPanels =  jQuery('.tabPanel');
	var jTabContent = jQuery('.tabSection');
	var currentClass = 'tabCurrent';
	var sandwichClass = 'tabSandwich';
	
	if(param.t){ defaultPanel = jTabs.length-parseInt(param.t)-1; }

	var tabActivation = function(currentTab){
		jQuery(currentTab).removeClass(currentClass);
		var tabImg = currentTab.getElementsByTagName('img')[0];
		var tabSrc =  tabImg.src;
		if(tabSrc.lastIndexOf('_o.') != -1){ tabSrc = tabSrc.replace(/_o./i, '.'); }
		var dot = tabSrc.lastIndexOf('.');		
		var tabSrcHover = tabSrc.substr(0, dot) + '_o' + tabSrc.substr(dot);
		new Image().src = tabSrcHover;	
		tabImg.src = tabSrc;
		jQuery(tabImg).hover(
			function(){ tabImg.src = tabSrcHover; },
			function(){ tabImg.src = tabSrc; }
		);
	};
	var tabCurrently = function(currentTab){
		jQuery(currentTab).addClass(currentClass);
		var tabImg = currentTab.getElementsByTagName('img')[0];
		jQuery(tabImg).unbind();
		var tabSrc =  tabImg.src;
		if(tabSrc.lastIndexOf('_o.') != -1){ tabSrc = tabSrc.replace(/_o./i, '.'); }
		var dot = tabSrc.lastIndexOf('.');
		var tabSrcStay = tabSrc.substr(0, dot) + '_o' + tabSrc.substr(dot);
		new Image().src = tabSrcStay;
		tabImg.src = tabSrcStay;
	};
	
	jPanels.each(function(i){
		var currentPanel = jQuery(this);
		panels.push(currentPanel);
		if(i != defaultPanel){ currentPanel.css('display', 'none'); }
	});
	
	jTabContent.css({  'position' : 'relative', 'padding-top' : jTabs.height() + 4 + 'px' });
	var sandwichFlag = jTabContent.hasClass(sandwichClass);

	if(sandwichFlag){
		var jClones = jTabs.clone().attr('class', 'tabTitleBottom').appendTo(jTabContent);
		jClones.each(function(i){
			clones.push(this);
			var currentClone = jQuery(this).css({  'position' : 'absolute', 'bottom' :  - jClones.height() - 5 + 'px', 'left' : clonePos + 'px' });
			clonePos += currentClone.width();
		});
	}

	jTabs.each(function(i){
		tabs.push(this);
		var currentTab = jQuery(this).css({  'position' : 'absolute', 'top' : '0px', 'left' : tabPos + 'px' });
		tabPos += currentTab.width();
		if(i != defaultPanel){
			tabActivation(this);
			if(sandwichFlag){ tabActivation(clones[i]); }
		}
		else{
			tabCurrently(this);
			if(sandwichFlag){ tabCurrently(clones[i]); }
			activeTab = defaultPanel;
		}
		currentTab.click(function(e){
			jPanels.hide();
			panels[i].show();
			tabActivation(tabs[activeTab]);
			tabCurrently(this);
			if(sandwichFlag){
				tabActivation(clones[activeTab]);
				tabCurrently(clones[i]);
			}
			activeTab = i;
		});
		if(sandwichFlag){
			jQuery(clones[i]).click(function(e){
				jQuery.scrollFor('#mainContents',{},function(){
					jPanels.hide();
					panels[i].show();
					tabActivation(tabs[activeTab]);
					tabActivation(clones[activeTab]);
					tabCurrently(tabs[i]);
					tabCurrently(clones[i]);
					activeTab = i;
				});
			});
		}
	});
});
