/******************************************************************************/
/*  @name    vw drop menu javascript functions
/*  @date    Mar 5, 2008
/*  @version 2.0.0
/******************************************************************************/
//=============================================================================
// CONSTRUCTOR (create singleton instance of the vwTabNav object)
//=============================================================================
if(typeof vwTabNav=="undefined")
{
	var vwTabNav = {};
}
vwTabNav.build = function(inContainer, inConfig, inModel, inLang, inCountry) {

	if(vwTabNav.menu.hashing && location.hash.substring(2) != "") {
		//alert('getting hash');
		inConfig = location.hash.substring(2).replace(/_/g," ");
	}

	vwTabNav.data.init();
	vwTabNav.menu.init(inContainer, inConfig, inModel, inLang, inCountry);
	vwTabNav.menu.build();
}

//=============================================================================
// public methods
//=============================================================================
vwTabNav.menu =
{
	init : function(inContainer, inConfig, inModel, inLang, inCountry) {
		this.inContainer = inContainer;
		this.inConfig = inConfig;
		this.inModel = inModel;
		this.inLang = inLang;
		this.inCountry = inCountry;
		//preload images
		this.print_out = new Image();
		this.print_over = new Image();
		this.download_out = new Image();
		this.download_over = new Image();
		this.print_out.src = "/global/images/vwTabNav_v2/icon_print.jpg";
		this.print_over.src = "/global/images/vwTabNav_v2/icon_print_selected.jpg";
		this.download_out.src = "/global/images/vwTabNav_v2/icon_download.jpg";
		this.download_over.src = "/global/images/vwTabNav_v2/icon_download_selected.jpg";
		//detect the browser
		safariVersion = navigator.userAgent.split('Safari/')[1];
		//set hashing
		if(safariVersion<='419.3')
			this.hashing = false;
		else
			this.hashing = true;
		
		//alert('safari version:'+safariVersion+' hashing:'+this.hashing);
	},
	build : function() {
		this.setContainerModelClass();
		for(i=0;i<vwTabNav.data.nav.length;i++) {
			//alert('making ['+i+'/'+vwTabNav.data.nav.length+']'+vwTabNav.data.nav[i].type);
			if(vwTabNav.data.nav[i].type == "tab") {
				
				if(this.hashing && vwTabNav.data.nav[i].title == this.inConfig) 
					location.hash = "/"+this.inConfig.replace(/ /g,"_");
				
				this.addTab(
					vwTabNav.data.nav[i].title == this.inConfig,
					vwTabNav.data.nav[i].tab_id,
					vwTabNav.data.nav[i].title,
					vwTabNav.data.nav[i].width
				);
			}
			else if(vwTabNav.data.nav[i].type == "spacer") {
				this.addSpacer(vwTabNav.data.nav[i].width);
			}
			else if(vwTabNav.data.nav[i].type == "print") {
				this.addPrint(vwTabNav.data.nav[i].width,vwTabNav.data.nav[i].url);
			}
			else if(vwTabNav.data.nav[i].type == "download") {
				this.addDownload(vwTabNav.data.nav[i].width,vwTabNav.data.nav[i].url);
			}
		
		}
	},

	// Assign the containing element a class based on the Model string pased
	// to the constructor.
	setContainerModelClass: function() {
		var container = document.getElementById(this.inContainer);
		container.className += (" " + this.inModel + "_tabNav");
	},
	addTab : function(isActive,inTab,inName,inWidth) {
		
		//alert(inContainer+' '+isActive);
		var newTab = "";
		
		if(isActive) {
			newTab += "<div class=\"tabNav_v2_button\" style=\"width:"+inWidth+"px;\"><a id=\"tabNav\" class=\"selected\">";
			//save active tab
			this.active_tab = inTab;
			
			if(inTab == "show_all") {
				for(j=0;j<vwTabNav.data.nav.length;j++) {
					if(vwTabNav.data.nav[j].type == "tab" && vwTabNav.data.nav[j].tab_id != "show_all") {
						document.getElementById(vwTabNav.data.nav[j].tab_id).style.display = "block";
					}
				}
			}
			else {
				//make active tab visible (now show all)
				document.getElementById(inTab).style.display = 'block';
			}
		}
		else {
			newTab += "<div class=\"tabNav_v2_button\" style=\"width:"+inWidth+"px;\"><a id=\"tabNav\" href=";
			if(this.hashing) 
				newTab += "\"#/"+inName.replace(/ /g,"_")+"\"";
			else
				newTab += "\"#\"";
			newTab += " onClick=\"javascript:vwTabNav.control.selectTab('"+inName+"','"+inTab+"')\">";
		}
			//newTab += "<div class=\"tabNav_button\" style=\"width:"+inWidth+"px;\"><a id=\"tabNav\" href=\"javascript:vwTabNav.control.selectTab('"+inName+"')\">";
			
		newTab += "<div class=\"tabNav_label\" style=\"width:"+inWidth+"px;\"><center>"+inName.toUpperCase()+"</center></div>";
		newTab += "</a></div>";
		
		document.getElementById(this.inContainer).innerHTML += newTab;
	},
	addSpacer : function(inWidth) {
		var newSpacer = "";
		newSpacer += "<div class=\"tabNav_v2_spacer\" style=\"width:"+inWidth+"px;\"></div>";
		document.getElementById(this.inContainer).innerHTML += newSpacer;
	},
	addPrint : function(inWidth,inUrl) {
		var newPrint = "";
		newPrint += "<div class=\"print\" style=\"width:"+inWidth+"px;\"><center>";
		newPrint += "<a href=\""+inUrl+"\" target=\"_blank\">";
		newPrint += "<img id=\"print_page\" src=\"/global/images/vwTabNav_v2/icon_print.jpg\" height=\"12\" width=\"13\" alt=\"Print\" title=\"Print\" onMouseOver=\"this.src='/global/images/vwTabNav_v2/icon_print_selected.jpg'\" onMouseOut=\"this.src='/global/images/vwTabNav_v2/icon_print.jpg'\" />";
		newPrint += "</a></center></div>";
		document.getElementById(this.inContainer).innerHTML += newPrint;
	},
	addDownload : function(inWidth,inUrl) {
		var newDownload = "";
		newDownload += "<div class=\"download\" style=\"width:"+inWidth+"px;\"><center>";
		newDownload += "<a href=\""+inUrl+"\"><img id=\"download_page\" src=\"/global/images/vwTabNav_v2/icon_download.jpg\" height=\"12\" width=\"13\" alt=\"Download\" title=\"Download\" onMouseOver=\"this.src='/global/images/vwTabNav_v2/icon_download_selected.jpg'\" onMouseOut=\"this.src='/global/images/vwTabNav_v2/icon_download.jpg'\" />";
		newDownload += "</a></center></div>";	
		document.getElementById(this.inContainer).innerHTML += newDownload;		
	}
	
	//addTab : function(inMenu, inWidth, inDynamic, inDisplay, inDisplayColor) {
	//}
}
vwTabNav.control = 
{
	selectTab : function(inName,inTab) {
		
		//special case
		if(inTab == "show_all") {
			for(i=0;i<vwTabNav.data.nav.length;i++) {
				if(vwTabNav.data.nav[i].type == "tab" && vwTabNav.data.nav[i].tab_id != "show_all") {
					document.getElementById(vwTabNav.data.nav[i].tab_id).style.display = "block";
				}
			}
		}
		else if(vwTabNav.menu.active_tab == "show_all") {
			for(i=0;i<vwTabNav.data.nav.length;i++) {
				if(vwTabNav.data.nav[i].type == "tab" && vwTabNav.data.nav[i].tab_id != "show_all") {
					document.getElementById(vwTabNav.data.nav[i].tab_id).style.display = "none";
				}
			}
		}
		else {
			//hide current active tab
			document.getElementById(vwTabNav.menu.active_tab).style.display = 'none';
		}

		//set new active tab
		vwTabNav.menu.active_tab = inTab;

		//set new hash
		if(vwTabNav.menu.hashing) {
			//alert('setting hashing');
			location.hash = "/"+inName.replace(/ /g,"_");
		}

		vwTabNav.menu.inConfig = inName;
		document.getElementById(vwTabNav.menu.inContainer).innerHTML = "";
		vwTabNav.menu.build();
		
		//alert(vwTabNav.menu.inContainer);
		//alert('making '+inTarget+' visible');
		
	}
}
vwTabNav.util = 
{
	addCssClass : function(element, cssClassName) {
		element.className += ' ' + cssClassName;
	}
}
