//XEBRAWEBSITE
function HeaderClicked()
{
	window.location="/xebraWebSite/salesAssistance.html";
}
//End XEBRAWEBSITE

var XWebPageManager=
{
	//The following pixel width gets set automatically based on the style width of the main container.
	//It is used to make sure that the content doesn't exceed the maximum size of the container.
	//Images in the content are generally resized when they would force the content to exceed the size of the container.
	ContentWidth: 0,

	//Browser window viewable area
	//Set automatically
	ClientHeight:0,
	ClientWidth:0,

	//This function is used to keep the container sized correctly and to draw the gradient on the sides of the content
	CheckContainer: function()
	{
		if(!this.processSettings)
			return;

		var mainObj=document.getElementById(this.processSettings.mainContainerID);

		if(mainObj)
		{
			//XEBRAWEBSITE
			var mainTableObj=document.getElementById("mainTable");

			if(mainTableObj)
			{
				if(mainTableObj.offsetHeight<this.ClientHeight)
				{
					var difference=this.ClientHeight-mainTableObj.offsetHeight;
					var height=mainObj.offsetHeight+difference;

					//mainObj.style.height=height+"px";
				}
			}
			//End XEBRAWEBSITE

			var self = this;
			setTimeout(function(){self.CheckContainer();}, 100);
		}
	},

	//This set of items is used to figure out the current location and if the current location should be highlighted in the menu system
	pageDomain: "",
	pageUrl: "",

	//The next object is used as an easy way to swap the standard vertical sub-catalog menu with the horizontal catalog menu.
	ProcessPage: function(params)
	{
		var headerBannerImage=document.getElementById("mainContentHeaderImage");
		if(headerBannerImage)
		{
		/*
			headerBannerImage.src="/xebraWebSite/banners/ppaiexpo-banner.png";
			headerBannerImage.onclick=function(){window.open('http://www.theppaiexpo.com','PPAI_EXPO','scrollbars=yes,resizable=yes,width=1000,height=800,left=10,top=10');};
			headerBannerImage.alt="Come see us at the PPAI Expo. January 10th through the 14th. Booth 54 59."
	   */
      /*
			headerBannerImage.src="/xebraWebSite/banners/PSDA_2011_xebra_banner.png";
			headerBannerImage.onclick=function(){window.open('http://www.psda.org/?page=PSConf','PSDA','scrollbars=yes,resizable=yes,width=1000,height=800,left=10,top=10');};
			headerBannerImage.alt="PSDA"	   
			headerBannerImage.style.display="inline";
      */
		  /*
         headerBannerImage.src = "/xebraWebSite/banners/promotions_east_banner_top.jpg";
		   headerBannerImage.onclick = function () { window.open('http://www.promotionseast.com/index.cfm', 'PromotionsEastBooth1239', 'scrollbars=yes,resizable=yes,width=1000,height=800,left=10,top=10'); };
		   headerBannerImage.alt = "Promotions East Booth 1239"
		   headerBannerImage.style.display = "inline";
		   headerBannerImage.style.cursor = "pointer";
		   //headerBannerImage.style.marginTop = "10px";
         */
		}
		
		this.processSettings=params;

		//XEBRAWEBSITE
		this.settings.catalogs=new Array();

		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"/index.html",
			'catalogText':"HOME"
		};

		/* removed 09/02/10
		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"http://www.xetexbusinesssystems.com/",
			'catalogText':"ABOUT XETEX"
		};
		*/
		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"/xebraWebsite/about.html",
			'catalogText':"ABOUT XETEX"
		};

		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"/xebraWebSite/product_overview.html",
			'catalogText':"PRODUCT OVERVIEW"
		};

		//10/01/10
		// Comment this section out to enable AZN reference linking and drop down menu
		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"/xebraWebSite/references.html",
			'catalogText':"REFERENCES"
		};
		
		
		/* 10/06/10 Uncomment to allow linking to AZN references
		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"/xebraWebSite/references.html",
			'catalogText':"REFERENCES",
			'subSections':[
				{'subSectionReference':"/xebraWebSite/references.html",'subSectionText':"<b>US/Canada</b>"},
				{'subSectionReference':"/xebraWebSite/referencesazn.html",'subSectionText':"<b>New Zealand/Australia</b>"},
				{}
			]
		};
		// End 10/01/10
		*/ // End 10/06/10 
		
		this.settings.catalogs[this.settings.catalogs.length]={
			'catalogReference':"",
			'catalogText':"CONTACT/SUPPORT",
			'subSections':[
				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>XETEX BUSINESS SYSTEMS, INC.</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>1103 Rocky Drive</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>Suite 103</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>West Lawn, PA 19609</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"&nbsp;"},

				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>CUSTOMER/TECH SUPPORT</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"P: 1-800-356-2772 x 1 &nbsp;&nbsp; F: 1-610-898-1564"},
				{'subSectionReference':"mailto:kathy@xebra.com?subject=Xebra Support Request",'subSectionText':"P: 1-610-898-1551 x 1 &nbsp;&nbsp; E-mail"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"&nbsp;"},

				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>SALES & MARKETING</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"P: 1-800-356-2772 x 2 &nbsp;&nbsp; F: 1-610-898-1564"},
				{'subSectionReference':"mailto:sales@xebra.com?subject=Xebra Sales Request",'subSectionText':"P: 1-610-898-1551 x 2 &nbsp;&nbsp; E-mail"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"&nbsp;"},

				{'subSectionReference':"javascript:void(null);",'subSectionText':"<b>BILLING</b>"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"P: 1-800-356-2772 x 3 &nbsp;&nbsp; F: 1-610-898-1564"},
				{'subSectionReference':"mailto:rhg@xebra.com?subject=Xebra Billing Request",'subSectionText':"P: 1-610-898-1551 x 3 &nbsp;&nbsp; E-mail"},
				{'subSectionReference':"javascript:void(null);",'subSectionText':"&nbsp;"},

				{}
			]
		};

		var displayCatalogsVertically=false;
		var displaySubCatalogsVertically=false;
		//End XEBRAWEBSITE 

		XCatalog().DisplayMainMenu({catalogs:this.settings.catalogs,objectID:this.processSettings.catalogsObjID,displayVertically:displayCatalogsVertically,showProductMenu:false});
		XCatalog().DisplaySubMenu({catalogs:this.settings.catalogs,objectID:this.processSettings.subCatalogsObjID,displayVertically:displaySubCatalogsVertically,showProductMenu:false});

		SizeWindow();
		this.CheckContainer();
	},

	OnLoadPage: function()
	{
	},
	Init: function(params)
	{
		this.settings=params;
		if(this.pageUrl=='' && window.location)
		{
			var offset=window.location.protocol.length;
			var Text="://";
			offset+=Text.length;
			offset+=window.location.hostname.length;
			this.pageDomain=window.location.hostname;
			this.pageUrl=XUrl(window.location.href.substring(offset-1,window.location.href.length));
		}

		{
			var StyleProperties=XStyle({styleClass:"#contentTable"});
			this.ContentWidth=StyleProperties.widthInPixels;
		}

		//XEBRAWEBSITE
		{//Set popup menu gradiant
			var styleClassName="menuEntry";
			var backgroundImage=XImageMaker();

			backgroundImage.AddHorizontalGradiant({startColor:"385D70",
																endColor:"8B8C8D",
																width:300,
																height:1
															});

			backgroundImage.AppendStyle({styleName:styleClassName});
		}

		{//set menu gradiant when not mouse over
			var styleClassName="menuHeader";
			var pixelHeight=30;
		
			var backgroundImage=XImageMaker();

			backgroundImage.AddVerticalGradiant({	startColor:"3B3C3D",
																endColor:"000000",
																width:1,
																height:pixelHeight
															});

			backgroundImage.AppendStyle({styleName:"menuHeaderTD"});
			backgroundImage.AppendStyle({styleName:styleClassName});
		}

		{//set menu gradiant when mouse over
			var styleClassName="menuHeader_hover";
			var styleClassNameHover="menuHeader:hover";
			var pixelHeight=30;
		
			var backgroundImage=XImageMaker();

			backgroundImage.AddVerticalGradiant({startColor:"385D70",
																endColor:"000000",
																width:400,
																height:pixelHeight
															});

			backgroundImage.AppendStyle({styleName:styleClassName});
			backgroundImage.AppendStyle({styleName:styleClassNameHover});
		}

		{//body
			var backgroundImage=XImageMaker();

			backgroundImage.AddVerticalGradiant({	startColor:"000000",
																endColor:"385D70",
																width:1,
																height:200});

			backgroundImage.AddVerticalGradiant({	startColor:"385D70",
																endColor:"385D70",
																width:1,
																height:10});

			backgroundImage.AddVerticalGradiant({	startColor:"385D70",
																endColor:"000000",
																width:1,
																height:500});

			backgroundImage.AssignStyle({object:document.body});
			//backgroundImage.AppendStyle({styleName:"body"});
		}

		{//xetexLocationInformation
			var styleClassName="xetexLocationInformation";
		
			var backgroundImage=XImageMaker();

			backgroundImage.AddHorizontalGradiant({startColor:"000000",
																endColor:"444541",
																width:480,
																height:1});

			backgroundImage.AddHorizontalGradiant({startColor:"444541",
																endColor:"000000",
																width:480,
																height:1});

			backgroundImage.AppendStyle({styleName:styleClassName});
		}

		{//xetexFooter
			var styleClassName="xetexFooter";
		
			var backgroundImage=XImageMaker();

			backgroundImage.AddHorizontalGradiant({startColor:"385D70",
																endColor:"000000",
																width:960,
																height:1
															});


			backgroundImage.AppendStyle({styleName:styleClassName});
		}
		//End XEBRAWEBSITE
	},
	SetBodyBackground:function()
	{
	},
	SizeWindow: function()
	{
		var size=GetWindowSize();
		this.ClientHeight=size.height;
		this.ClientWidth=size.width;

		this.SetBodyBackground();
	},
	end:0
};

function XCatalog(params)
{
	var newCatalog={
		DisplayMainMenu: function(params)
		{
			if(!params.catalogs)
				return;

			var object=document.getElementById(params.objectID);
			if(!object)
				return;

			var Html='';

			if(params.displayVertically)
			{
				Html+='<table class="subMenuContainer" cellpadding="0" cellspacing="0">';
			}
			else
				Html+='<table class="mainMenuContainer" cellpadding="0" cellspacing="0"><tr>';

			var haveCurrentCatalog=false;
			var otherCatalogCount=0;
			
			for(i=0;i<params.catalogs.length;i++)
			{
				var CatalogItem=params.catalogs[i];

				if(!CatalogItem)
					break;

				if(!CatalogItem.catalogText)
					break;

				var catalogSelected=false;
				
				if	(!haveCurrentCatalog)
				{
					//catalogSelected=this.IsCatalogTheCurrentPage(CatalogItem.catalogReference);
					haveCurrentCatalog=catalogSelected;
				}

				var catalogID='';

				catalogID="OtherCatalog"+otherCatalogCount;
				otherCatalogCount++;

				var CatalogHtml="";

				if(!catalogSelected)
				{
					var SubSections=CatalogItem.subSections;

					if(SubSections)
					{
						for(var subRowIndex=0;subRowIndex<SubSections.length;subRowIndex++)
						{
							var SubSection=SubSections[subRowIndex];

							if(!SubSection)
								break;

							var SubSectionReference=SubSection.subSectionReference;
							var SubSectionText=SubSection.subSectionText;

							if(!SubSectionReference || (!SubSectionText && !SubSection.imageUrl))
								break;

							if(SubSection.imageUrl)
							{
								CatalogHtml+=WriteSubMenuImage(SubSection.imageUrl,SubSectionReference,"");
							}
							else
							{
								CatalogHtml+=WriteSubMenuItem({'text':SubSectionText,'reference':SubSectionReference,allowTextWrap:true});
							}
						}
					}
				}

				Html+=WriteMenuItem({
													catalogIsSelected:	catalogSelected,
													catalogID:				catalogID,
													catalogUrl:				CatalogItem.catalogReference,
													displayText:			CatalogItem.catalogText,
													title:					CatalogItem.catalogText,
													menuClass:				"menuHeader",
													menuHtml:				CatalogHtml,
													paddingOnTop:			true,
													paddingOnBottom:		true,
													selectionText:			"",
													selectionUrl:			"",
													allowTextToWrap:		false,
													vertical:				params.displayVertically,
													createRightTD:			!params.displayVertically
												});
			}
			
			if(!params.displayVertically)
				Html+='</tr>';
			else
			{
				Html+='<tr>';
					Html+='<td style="height:1px;"></td>';
				Html+='</tr>';
			}
				
			Html+='</table>';

			object.innerHTML = Html;
		},
		DisplaySubMenu: function(params)
		{
			if(!params.catalogs)
				return;

			var object=document.getElementById(params.objectID);
			if(!object)
				return;

			var Html='';
			var SubCatalogHtml="";
			var catalogSelected;

			var searchText="#";
			
			for(i=0;i<params.catalogs.length;i++)
			{
				var CatalogItem=params.catalogs[i];

				if(!CatalogItem)
					break;
					
				var SubSections=CatalogItem.subSections;

				if(SubSections)
				{
					for(k=0;k<SubSections.length;k++)
					{
						var SubSection=SubSections[k];

						if(!SubSection)
							break;

						var SubSectionReference=SubSection.subSectionReference;
						var SubSectionText=SubSection.subSectionText;

						if(!SubSectionReference || !SubSectionText)
							break;

						if(SubSection.onlyDisplayInHiddenMenu)
							continue;

						catalogSelected=false;

						for(p=0;p<(SubSectionReference.length-searchText.length);p++)
						{
							var character=SubSectionReference.charAt(p);

							if(character==searchText.charAt(0))
							{
								var subString=SubSectionReference.substring(p,p+searchText.length);

								if(subString==searchText)
								{
									catalogSelected=true;
									break;
								}
							}
						}

						if(!catalogSelected)
						{
							var SizedString=XWebPageManager.pageUrl.substring(0,SubSectionReference.length);
							
							if(SizedString==SubSectionReference)
								catalogSelected=true;
							else
							if(this.IsCatalogTheCurrentPage(SubSectionReference))
								catalogSelected=true;
						}

						var topPadding=false;
						var allowTextWrap=true

						if(XWebPageManager.SubCatalog_ObjID && XWebPageManager.SubCatalog_ObjID!="")
							allowTextWrap=false

						if(!params.showProductMenu && Html=='')
						{
							if(!params.displayVertically)
							{
								Html+='<table class="mainMenuContainer" cellpadding="0" cellspacing="0">';
								Html+='<tr>';
							}
							else
							{
								Html+='<table class="subMenuContainer" cellpadding="0" cellspacing="0">';
							}

							topPadding=true;
						}

						if(!params.displayVertically)
							topPadding=true;

						if(params.showProductMenu)
						{
							SubCatalogHtml+=WriteSubMenuItem({'text':SubSectionText,'reference':SubSectionReference,allowTextWrap:true});
						}
						else
						{
							var catalogID="SubMenuCatalog"+k;

							Html+=WriteMenuItem({
																catalogIsSelected:	catalogSelected,
																catalogID:				catalogID,
																catalogUrl:				SubSectionReference,
																displayText:			SubSectionText,
																title:					SubSectionText,
																menuClass:				"menuHeader",
																menuHtml:				"",
																paddingOnTop:			topPadding,
																paddingOnBottom:		true,
																selectionText:			"",
																selectionUrl:			"",
																allowTextToWrap:		params.allowTextWrap,
																vertical:				params.displayVertically,
																createRightTD:			!params.displayVertically
															});
						}
					}
				}
			}

			if(params.showProductMenu && SubCatalogHtml!="")
			{
				Html='';

				if(params.displayVertically)
				{
					Html+='<table class="subMenuContainer" cellpadding="0" cellspacing="0">';
				}
				else
					Html+='<table class="mainMenuContainer" cellpadding="0" cellspacing="0"><tr>';

				Html+=WriteMenuItem({
													catalogIsSelected:	true,
													catalogID:				"ConsolidatedSubCatalogProductMenu",
													catalogUrl:				"javascript:void(null);",
													displayText:			XWebPageManager.Consolidated_SubCatalogs_Menu_Name,
													title:					XWebPageManager.Consolidated_SubCatalogs_Menu_Name,
													menuClass:				"menuHeader",
													menuHtml:				SubCatalogHtml,
													paddingOnTop:			true,
													paddingOnBottom:		true,
													selectionText:			"",
													selectionUrl:			"",
													allowTextToWrap:		false,
													vertical:				params.displayVertically,
													createRightTD:			!params.displayVertically
												});
			}

			if(Html!='')
			{
				if(!params.displayVertically)
					Html+='</tr>';
				else
				{
					Html+='<tr>';
						Html+='<td style="height:1px;"></td>';
					Html+='</tr>';
				}
				Html+='</table>';
			}

			object.innerHTML = Html;
		},
		IsCatalogTheCurrentPage: function(Catalog)
		{
			var returnValue=false;
			
			var CatalogUrl=XUrl(String(Catalog));
			//Remove these standard things to allow a better match
			{
				CatalogUrl.RemoveParameterFromUrl("searchType");
				CatalogUrl.RemoveParameterFromUrl("keywords");
			}

			var SizedString=XWebPageManager.pageUrl.substring(0,CatalogUrl.url.length);
			
			if(SizedString==CatalogUrl.url)
				returnValue=true;

			return returnValue;
		}
	};

	return newCatalog;
}

function XHex()
{
	var newHex=
	{
		toDec: function(hex) 
		{	
			return parseInt(hex,16);
		},
		longHexToDec: function(longHex) 
		{
			if(!longHex)
				return new Array(0,0,0);	

			//converts ffffff to rgb(255,255,255) returns an array - {255,255,255}
			return new Array(this.toDec(longHex.substring(0,2)),this.toDec(longHex.substring(2,4)),this.toDec(longHex.substring(4,6)));	
		},
		toHex: function(N)
		{
			if (N==null) 
				return "00";
			 
			 N=parseInt(N); 
			 if (N==0 || isNaN(N)) 
				return "00";
			 
			 if(N<0)
				N=0;
			 if(N>255)
				N=255;
			 
			 N=Math.round(N);
			 
			 var hexChars="0123456789ABCDEF";
			 
			 return hexChars.charAt((N-N%16)/16) + hexChars.charAt(N%16);
		},
		RGBtoHex: function(R,G,B) 
		{
			return this.toHex(R)+this.toHex(G)+this.toHex(B);
		}
	}

	return newHex;
}

function XStyle(params)
{
	var newXStyle=
	{
		convertColor: function(color)
		{
			var rtrnColor;
			
			var rgbColors=new Array();
			if (color.substring(0,1)=="r")
			{
				color=color.substring(color.indexOf('(')+1, color.indexOf(')'));
				rgbColors=color.split(',', 3);
				rgbColors[0]=parseInt(rgbColors[0]);
				rgbColors[1]=parseInt(rgbColors[1]);
				rgbColors[2]=parseInt(rgbColors[2]);
				rtrnColor=XHex().RGBtoHex(rgbColors[0],rgbColors[1],rgbColors[2]);
			}
			// IE returns the color in this  '#RRGGBB' format
			else
			if (color.substring(0,1)=="#")
			{
				rtrnColor=color.substring(1);
			}
			return rtrnColor;
		},
		SetStyleFromHtmlElement: function(ref)
		{
			this.backgroundColor=0;
			this.textColor=0;
			this.fontSize=0;
			this.fontSizeInPixels=0;
			this.width=0;
			this.widthInPixels=0;
			this.display="inline";

			if(ref)
			{
				if (ref.currentStyle)
				{			
					this.backgroundColor=ref.currentStyle.backgroundColor;
					this.textColor=ref.currentStyle.color;
					this.fontSize=ref.currentStyle.fontSize;
					this.width=ref.currentStyle.width;
					this.display=ref.currentStyle.display;
				}
				else if(document.defaultView.getComputedStyle)
				{		
					var elementStyle=document.defaultView.getComputedStyle(ref,null);		
					if (elementStyle)
					{
						this.backgroundColor=elementStyle.getPropertyValue("background-color");
						this.textColor=elementStyle.getPropertyValue("color");
						this.fontSize=elementStyle.getPropertyValue("font-size");
						this.width=elementStyle.getPropertyValue("width");
						this.display=elementStyle.getPropertyValue("display");
					}						
				}

				if(this.fontSize && this.fontSize.length)
				{
					var sizeString="";

					for(var i=0;i<this.fontSize.length;i++)
					{
						var character=this.fontSize.charAt(i);

						if(character>='0' && character<='9')
							sizeString+=character;
					}

					this.fontSizeInPixels=Number(sizeString);
				}

				if(this.width && this.width.length)
				{
					var sizeString="";

					for(var i=0;i<this.width.length;i++)
					{
						var character=this.width.charAt(i);

						if(character>='0' && character<='9')
							sizeString+=character;
					}

					this.widthInPixels=Number(sizeString);
				}

				//convert the style colors to hex without the #
				this.backgroundColor=this.convertColor(this.backgroundColor);
				this.textColor=this.convertColor(this.textColor);
			}
		},
		SetStyleFromClass: function(styleClass)
		{
			var ref=document.createElement('div');

			if(ref)
			{
				ref.className=styleClass;
				document.body.appendChild(ref);

				this.SetStyleFromHtmlElement(ref);
			
				document.body.removeChild(ref);						
			}
			else
			{
				this.backgroundColor=0;
				this.textColor=0;
				this.fontSize=0;
				this.fontSizeInPixels=0;
				this.width=0;
				this.widthInPixels=0;
				this.display=0;
			}
		}
	};

	if(params.obj)
		newXStyle.SetStyleFromHtmlElement(params.obj);
	else
	if(params.styleClass)
		newXStyle.SetStyleFromClass(params.styleClass);

	return newXStyle;
}

function XImageMaker()
{
	var newImage = {
		gradiants: new Array(),
		gradiantFunction: "",
		resourceImage: null,
		AddVerticalGradiant: function (params)
		{
			if (this.gradiantFunction == "")
			{
				this.gradiantFunction = "VerticalGradiantImage";
			}
			this.gradiants[this.gradiants.length] = params;
		},
		AddHorizontalGradiant: function (params)
		{
			if (this.gradiantFunction == "")
			{
				this.gradiantFunction = "HorizontalGradiantImage";
			}
			this.gradiants[this.gradiants.length] = params;
		},
		CreateFunctionUrl: function ()
		{
			var url = "";

			//url+="https://commerce.xebra.com";
			url += "/cgi-bin/ImageMaker.exe?";
			url += this.gradiantFunction;

			url += "&domain=" + XWebPageManager.pageDomain;
			url += "&masterCustomer=" + escape(XWebPageManager.settings.masterCustomer);

			if (this.resourceImage != null)
			{
				if (this.resourceImage.imageName)
				{
					url += "&imageName=" + this.resourceImage.imageName;
				}
				if (this.resourceImage.paddingTop)
				{
					url += "&paddingTop=" + this.resourceImage.paddingTop;
				}
				if (this.resourceImage.paddingBottom)
				{
					url += "&paddingBottom=" + this.resourceImage.paddingBottom;
				}
				if (this.resourceImage.paddingLeft)
				{
					url += "&paddingLeft=" + this.resourceImage.paddingLeft;
				}
				if (this.resourceImage.paddingRight)
				{
					url += "&paddingRight=" + this.resourceImage.paddingRight;
				}
			}

			for (var i = 1; i <= this.gradiants.length; i++)
			{
				var gradiant = this.gradiants[i - 1];

				if (!gradiant)
					break;

				var width = 1;
				var height = 1;
				var startColor = "";
				var startColorPercentage = "";
				var endColor = "";
				var endColorPercentage = "";

				var imageColor = "";

				if (gradiant.width)
					width = gradiant.width;

				if (gradiant.height)
					height = gradiant.height;

				if (gradiant.startColorPercentage)
					startColorPercentage = gradiant.startColorPercentage;

				if (gradiant.endColorPercentage)
					endColorPercentage = gradiant.endColorPercentage;

				if (gradiant.startColor)
				{
					startColor = gradiant.startColor;
				}
				else
					if (gradiant.startColorStyle || gradiant.startColorObject)
					{
						var colorStyle = 0;

						if (gradiant.startColorObject)
							colorStyle = XStyle({ obj: gradiant.startColorObject });
						else
							colorStyle = XStyle({ styleClass: gradiant.startColorStyle });

						if (gradiant.startColorFieldName == "color")
						{
							startColor = colorStyle.textColor;
						}
						else
						{
							startColor = colorStyle.backgroundColor;
						}
					}

				if (gradiant.endColor)
				{
					endColor = gradiant.endColor;
				}
				else
					if (gradiant.endColorStyle || gradiant.endColorObject)
					{
						var colorStyle = 0;

						if (gradiant.endColorObject)
							colorStyle = XStyle({ obj: gradiant.endColorObject });
						else
							colorStyle = XStyle({ styleClass: gradiant.endColorStyle });

						if (gradiant.endColorFieldName == "color")
						{
							endColor = colorStyle.textColor;
						}
						else
						{
							endColor = colorStyle.backgroundColor;
						}
					}

				if (gradiant.imageColor)
				{
					imageColor = gradiant.imageColor;
				}
				else
					if (gradiant.imageColorStyle || gradiant.imageColorObject)
					{
						var colorStyle = 0;

						if (gradiant.imageColorObject)
							colorStyle = XStyle({ obj: gradiant.imageColorObject });
						else
							colorStyle = XStyle({ styleClass: gradiant.imageColorStyle });

						if (gradiant.imageColorFieldName == "color")
						{
							imageColor = colorStyle.textColor;
						}
						else
						{
							imageColor = colorStyle.backgroundColor;
						}
					}

				if (gradiant.imageType)
					url += "&imageType=" + gradiant.imageType;

				if (gradiant.imageIndex)
					url += "&imageIndex=" + gradiant.imageIndex;

				if (gradiant.paddingTop)
					url += "&paddingTop=" + gradiant.paddingTop;

				if (gradiant.paddingBottom)
					url += "&paddingBottom=" + gradiant.paddingBottom;

				if (gradiant.paddingLeft)
					url += "&paddingLeft=" + gradiant.paddingLeft;

				if (gradiant.paddingRight)
					url += "&paddingRight=" + gradiant.paddingRight;

				url += "&width" + i + "=" + width;
				url += "&height" + i + "=" + height;

				url += "&startColor" + i + "=" + startColor;
				url += "&startColorPercentage" + i + "=" + startColorPercentage;

				url += "&endColor" + i + "=" + endColor;
				url += "&endColorPercentage" + i + "=" + endColorPercentage;

				url += "&imageColor" + i + "=" + imageColor;
			}

			url += "&imageType=.png";

			return url;
		},
		AppendStyle: function (params)
		{
			var html = '<style type="text/css">\r\n';

			html += "." + params.styleName;
			html += "{";
			html += "background-image:url(" + this.CreateFunctionUrl() + ");"
			if (this.gradiantFunction == "VerticalGradiantImage")
				html += "background-repeat:repeat-x;";
			else
				html += "background-repeat:repeat-y;";
			html += "margin:0 auto;";
			html += "}\r\n";

			html += "</style>";

			document.write(html);
		},
		AssignStyle: function (params)
		{
			var obj = 0;

			if (params.object)
				obj = params.object;
			else
				if (params.objectID)
					obj = document.getElementById(params.objectID);

			if (obj)
			{
				obj.style.backgroundImage = "url(" + this.CreateFunctionUrl() + ")";
				if (this.gradiantFunction == "VerticalGradiantImage")
					obj.style.backgroundRepeat = "repeat-x";
				else
					obj.style.backgroundRepeat = "repeat-y";
				obj.style.margin = "0 auto"

			}
		}
	};

	return newImage;
}

function XUrl(Url)
{
	var newUrl=
	{
		url: Url,
		RemoveAmpFromUrl:	function()
		{
			this.url=StringReplace(this.url,"&amp;","&");
		},
		RemoveParameterFromUrl:	function(Parameter)
		{
			if(this.url)
			{
				var findString=Parameter+"=";
				var parameterArray=this.url.split("&");
				this.url='';

				for(var i=0;i<parameterArray.length;i++)
				{
					var param=parameterArray[i];

					if(param.substring(0,findString.length)!=findString)
					{
						if(this.url.length>0)
							this.url+="&";

						this.url+=param;
					}
				}
			}
		},
		GetParameterValueFromUrl: function(Parameter)
		{
			if(this.url)
			{
				var findString=Parameter+"=";
				var parameterArray=this.url.split("&");

				for(var i=0;i<parameterArray.length;i++)
				{
					var param=parameterArray[i];

					if(param.substring(0,findString.length)==findString)
					{
						return param.substring(findString.length);
					}
				}
			}
		},
		GetXebraFunction: function()
		{
			var Function="";

			if(this.url)
			{
				var findString="/cgi-bin/Xebra?";
				var index=this.url.indexOf(findString);
				if(index>=0)
				{
					var i;
					var UrlLength=this.url.length;
					for(i=index+findString.length;i<UrlLength;i++)
					{
						var character=this.url.charAt(i);

						if(character=="&")
							break;

						Function+=character;
					}
				}
			}

			return Function;
		},
		SetSearchFormAction: function(FormId)
		{
			var Form=document.getElementById(FormId);

			if(Form && this.url)
			{
				this.RemoveParameterFromUrl("searchType");
				this.RemoveParameterFromUrl("keywords");

				Form.action=this.url;
			}
		},
		SetImageSrc: function(imageObj)
		{
			if(imageObj)
			{
				imageObj.src=this.url;
			}
		},
		substring: function(param1,param2)
		{
			if(this.url)
			{
				if(param2)
					return this.url.substring(param1,param2);
				else
					return this.url.substring(param1);
			}
			else
				return "";
		}
	};

	newUrl.RemoveAmpFromUrl();

	return newUrl;
}

function StringReplace(currentString,oldString,newString)
{
	var returnString="";

	if(currentString)
	{
		returnString=currentString.replace( new RegExp( oldString, "g" ), newString);
	}

	return returnString;
}

function GetWindowSize()
{
	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' )
	{
	 //Non-IE
	 myWidth = window.innerWidth;
	 myHeight = window.innerHeight;
	} 
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
	 //IE 6+ in 'standards compliant mode'
	 myWidth = document.documentElement.clientWidth;
	 myHeight = document.documentElement.clientHeight;
	}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
	{
	 //IE 4 compatible
	 myWidth = document.body.clientWidth;
	 myHeight = document.body.clientHeight;
	}

	return {width:myWidth,height:myHeight};
}

function SizeWindow()
{
	XWebPageManager.SizeWindow();
	window.onresize=SizeWindow;
}

function addSpaceSeparatorsToTextForWordWrap(Text)
{
	var NewText="";

	if(Text)
	{
		var lastCharNeedsSpace=false;
		var charPos;
		for(charPos=0;charPos<Text.length;charPos++)
		{
			var character=Text.charAt(charPos);
			if(lastCharNeedsSpace && character!=' ')
				NewText+=' ';

			NewText+=character;

			if(character==',' || character=='/' || character==':')
				lastCharNeedsSpace=true;
			else
				lastCharNeedsSpace=false;
		}
	}

	return NewText;
}

var G_MenusNeedClosing=new Array();

function ToggleSubMenu(CatalogID,Class,autoEnable,enable,closeOtherMenus)
{
	if(closeOtherMenus)
	{
		var haveIt=false;

		for(var i=0;i<G_MenusNeedClosing.length;i++)
		{
			if(G_MenusNeedClosing[i]==CatalogID)
			{
				haveIt=true;
				continue;
			}

			var subObj=document.getElementById(G_MenusNeedClosing[i]+"Catalogs");

			if(subObj)
			{
				subObj.style.display='none';
			}
		}

		if(!haveIt)
			G_MenusNeedClosing[G_MenusNeedClosing.length]=CatalogID;
	}

	var mainObj=document.getElementById(CatalogID+"Header");
	var mainAnchorObj=document.getElementById(CatalogID+"HeaderAnchor");
	var subObj=document.getElementById(CatalogID+"Catalogs");

	if(subObj)
	{
		if((autoEnable && subObj.style.display=='none') || enable)
		{
			subObj.style.display='inline';

			if(Class && Class!='')
			{
				if(mainObj)
				{
					mainObj.className=Class+"_hover";
				}
				if(mainAnchorObj)
				{
					mainAnchorObj.className=Class+"_hover";
				}
			}
		}
		else
		{
			subObj.style.display='none';

			if(Class && Class!='')
			{
				if(mainObj)
				{
					mainObj.className=Class;
				}
				if(mainAnchorObj)
				{
					mainAnchorObj.className=Class;
				}
			}
		}
	}
}

function WriteMenuItem(params)
{
	/*
	params:
		catalogIsSelected: true/false
		catalogID:	Unique element ID for menu item
		catalogUrl:	url for click
		displayText: text to display for the item in the menu
		title: text to display during mouse over
		menuClass: name of style class to use for the menu item
		menuHtml: the html that gets display when clicked in horizontal layout or mouse over for vertical
		paddingOnTop: true / false this will normally be used to display a border
		paddingOnBottom: true / false this will normally be used to display a border
		selectionText: text that represents the selected value for the menu item
		selectionUrl: url to call when the selection is removed
		allowTextToWrap: allow text wrapping
		vertical: true / false
		createRightTD: true / false create an empty TD to the right of menu item for padding
		rightTD_Html: html for right TD
	*/

	if(!params.title)
		params.title=params.displayText;

	if(params.title==params.displayText)
		params.title="";

	var toggleClass=params.menuClass;
	if(params.catalogIsSelected)
	{
		if(!params.selectionText || params.selectionText=='')
			params.menuClass+="_hover";
		toggleClass='';
	}

	if(!params.catalogUrl || params.catalogUrl=='')
	{
		var closeOtherMenus=false;
		if(params.onlyExpandOnClick==true)
			closeOtherMenus=true;

		params.catalogUrl="javascript:ToggleSubMenu('" + params.catalogID + "','" + toggleClass  + "',true,false,"+closeOtherMenus+");";
	}

	if(params.allowTextToWrap)
	{
		params.displayText=addSpaceSeparatorsToTextForWordWrap(params.displayText);
	}

	var Html='';
	var Style="";
	var MouseOver="";
	var MouseOut="";

	if(params.vertical)
		Html+='<tr>';

	if(!params.paddingOnTop)
	{
		Style+='padding-top:0px;';
	}
	if(!params.paddingOnBottom)
	{
		Style+='padding-bottom:0px;';
	}

	if(!params.onlyExpandOnClick && params.menuHtml!='' && !params.vertical)
	{
		//Mouse over will show submenu
		MouseOver+='ToggleSubMenu(\'' + params.catalogID + '\',\'' + toggleClass  + '\',false,true);';
		//Mouse over will hide submenu
		MouseOut+='ToggleSubMenu(\'' + params.catalogID + '\',\'' + toggleClass  + '\',false,false);';
	}

	var Class="";

	if(params.classOverride && params.classOverride!="")
	{
		Class+=params.classOverride;
	}
	else
	if(params.vertical)
	{
		Class+="verticalMenuTD";
	}
	else
	{
		Class+="horizontalMenuTD";
	}

	//Class+=" menuSubSectionHeader";
	var menuHeaderStyle=XStyle({styleClass:"menuHeader"});
	Style+="background-color:#"+menuHeaderStyle.backgroundColor+";";

	Html+='<td class="'+Class+'" style="'+Style+'" onmouseover="'+MouseOver+'" onmouseout="'+MouseOut+'" id="'+params.catalogID+'MainTD">';

		Html+='<div id="'+params.catalogID+'Header" class="'+params.menuClass+'">';

			if(!params.selectionText || params.selectionText=='')
			{
				Html+='<a style="background-color:transparent;" id="'+params.catalogID+'HeaderAnchor" class="'+params.menuClass+'" title="'+params.title+'" href="'+params.catalogUrl+'">';
			}

			Style="";
			if(params.allowTextToWrap)
			{
				Style+='white-space:normal;';
			}

			MouseOver="";
			if(params.mouseOverEvent && params.mouseOverEvent!="")
			{
				MouseOver+=params.mouseOverEvent;
			}

			MouseOut="";
			if(params.mouseOutEvent && params.mouseOutEvent!="")
			{
				MouseOut+=params.mouseOutEvent;
			}

			Class="mainMenuDiv2 ";

			if(params.classOverride && params.classOverride!="")
			{
				Class+=params.classOverride;
			}
			else
			if(params.vertical)
			{
				Class+="verticalMenuTD";
			}
			else
			{
				Class+="horizontalMenuTD";
			}

			Html+='<div class="'+Class+'" style="'+Style+'" + id="'+params.catalogID+'Text" onmouseover="'+MouseOver+'" onmouseout="'+MouseOut+'">'+params.displayText+'</div>';

			if(params.selectionText && params.selectionText!='')
			{
				Style="";
				if(params.allowTextToWrap)
				{
					Style+='white-space:normal;';
				}
				Html+='<div class="mainMenuDiv2" style="'+Style+'">';
					Html+=params.selectionText + ' ';
					Html+='<a class="' + params.menuClass + '" href="' + params.selectionUrl + '">';
					Html+='[';
					Html+='remove';
					Html+=']';
					Html+='</a>';
				Html+='</div>';
			}

			if(!params.selectionText || params.selectionText=='')
				Html+='</a>';

			if(params.menuHtml!='')
			{
				Style="display:none;padding-top:0px;";
				if(!params.vertical || params.onlyExpandOnClick)
					Style+='position:absolute;z-index:30;margin-top:-2px;';
				MouseOver="";
				MouseOut="";
				if(!params.vertical)
				{
					//Mouse over will show submenu
					MouseOver+='ToggleSubMenu(\'' + params.catalogID + '\',\'' + toggleClass  + '\',false,true);';
					//Mouse over will hide submenu
					MouseOut+='ToggleSubMenu(\'' + params.catalogID + '\',\'' + toggleClass  + '\',false,false);';
				}
				Html+='<div style="'+Style+'" onmouseover="'+MouseOver+'" onmouseout="'+MouseOut+'" id="'+params.catalogID+'Catalogs">';
				Style="";
				if(params.vertical)
				{
					Style+='width:100%;';
				}
				Class="subMenu";

				Html+='<table id="'+params.catalogID+'SubMenuTable" class="' + Class + '" style="'+Style+'">';
				Class="";
				Style="";
				if(!params.vertical || params.onlyExpandOnClick)
				{
					//Class+=' menuSubSectionHeader';
					//Style+='padding-top:0px;';
					Style+="background-color:#"+menuHeaderStyle.backgroundColor+";";
				}
				Html+='<tr class="'+Class+'" style="'+Style+'"><td>';
				Html+=params.menuHtml;
				Html+='</td></tr></table>';
				Html+='</div>';
			}				
		Html+='</div>';
	Html+='</td>';	

	if(params.createRightTD)
	{
		Html+='<td>';
		if(params.rightTD_Html)
		{
			Html+=params.rightTD_Html;	
		}
		Html+='</td>';	
	}

	if(params.vertical)
		Html+='</tr>';
	
	return Html;
}

function WriteSubMenuItem(params)
{
	/*
	params:
	text
	reference
	allowTextWrap
	mouseOverEvent
	mouseOutEvent
	*/

	var Html="";
	var text="";

	if(params.allowTextWrap)
	{
		text=addSpaceSeparatorsToTextForWordWrap(params.text);
	}
	else
	{
		text=params.text;
	}

	var title="";

	if(params.title)
		title=params.title;

	var mouseOverHtml="";

	if(params.mouseOverEvent && params.mouseOverEvent!="")
	{
		mouseOverHtml+=' onmouseover="'+params.mouseOverEvent+'" ';
	}

	var mouseOutHtml="";

	if(params.mouseOutEvent && params.mouseOutEvent!="")
	{
		mouseOutHtml+=' onmouseout="'+params.mouseOutEvent+'" ';
	}

	Html+='<div class="menuEntry"' + mouseOverHtml + mouseOutHtml + '>';
	Html+='<a class="menuEntry" title="' + title + '" href="' + params.reference + '">';

			var Style="";
			if(params.allowTextWrap)
			{
				Style+='white-space:normal;';
			}
			if(text=="")
			{
				var styleClassName="menuEntry";
				var menuStyle=XStyle({styleClass:styleClassName});
				Style+='height:'+menuStyle.fontSize;
			}
			Html+='<div class="mainMenuDiv2" style="'+Style+'">';
			Html+=text;
			Html+='</div>';

	Html+='</a>';
	Html+='</div>';

	return Html;
}

function WriteSubMenuImage(imageSrc,Reference,overrideWidth)
{
	var Html="";

	Html+='<div>';
	Html+='<a href="' + Reference + '">';
		var Style="padding:0px;margin:0px;border:0px;";
		if(overrideWidth)
		{
			Style+='width:'+overrideWidth+';';
		}

		Html+='<img src="'+imageSrc+'" class="mainMenuDiv2" style="'+Style+'">';

	Html+='</a>';
	Html+='</div>';

	return Html;
}

function WriteSubMenuPrompt(params)
{
	/*
	params:
	text
	reference
	allowTextWrap
	inputName
	inputSize
	title
	inputID
	onChangeEvent
	onKeyUpEvent
	value
	*/

	if(!params.value)
		params.value="";

	var onchange="";

	if(params.onChangeEvent)
		onchange+=params.onChangeEvent;

	var onkeyup="";

	if(params.onKeyUpEvent)
		onkeyup+=params.onKeyUpEvent;

	var Html="";
	var text="";
	var title="";

	var Readonly="";

	if(params.readOnly)
		Readonly="readonly=1";

	if(params.title)
		title=params.title;

	if(params.allowTextWrap)
	{
		text=addSpaceSeparatorsToTextForWordWrap(params.text);
	}
	else
	{
		text=params.text;
	}

	Html+='<div class="menuEntry" title="'+title+'">';
		var Style="";
		if(params.allowTextWrap)
		{
			Style+='white-space:normal;';
		}
		Html+='<div class="mainMenuDiv2" style="'+Style+'" align="right">';
		Html+=text+' ';
		Html+='<input '+Readonly+' size="'+params.inputSize+'" type="text" id="'+params.inputID+'" name="'+params.inputName+'" value="'+params.value+'" onchange="'+onchange+'" onkeyup="'+onkeyup+'" onkeydown="if((event.keyCode==13 || event.keyCode==10)){'+params.reference+'}">';
		Html+='</div>';

	Html+='</div>';

	return Html;
}

