var
	fIsNavigator = false;

function cleanEntryFieldString( efEntryField ) 
{
	if( efEntryField == null ||
		('' + efEntryField) == 'Not Defined' )
		return;
		
	var
		sCleanFieldValue = '',
		sEntryFieldValue = efEntryField.value;
		
	if( sEntryFieldValue == null || sEntryFieldValue == 'Not Defined' )
		return;
		
	// alert( "Entry field value: \"" + sEntryFieldValue + "\"" );
		
	for( var iScanChar = 0; iScanChar < sEntryFieldValue.length; iScanChar++ )
		if( sEntryFieldValue.charAt( iScanChar ) == '\'' ||
			sEntryFieldValue.charAt( iScanChar ) == '\"' )
			sCleanFieldValue += '`';
		else
			if( sEntryFieldValue.charAt( iScanChar ) == '|' ||
				 sEntryFieldValue.charAt( iScanChar ) == '\\' )
				sCleanFieldValue += " ";
			else
				sCleanFieldValue += sEntryFieldValue.charAt( iScanChar );
				
	efEntryField.value = sCleanFieldValue;
}

	function determineBrowserType()
	{
		if( parseInt( navigator.appVersion.charAt( 0 ) ) >= 4 )
			fIsNavigator = (navigator.appName == "Netscape" ? true : false);	
	}	

		
	function cleanArgString( sArgStr )
	{
		if( sArgStr == null )
			return null;
			
		var
			reRegExp = new RegExp( "%20", "g" );
		var
			sTempStr = sArgStr != null ? sArgStr : "";
			
		return sTempStr.replace( reRegExp, " " );
	}

function getCookieVal (offset) 
{
	var
		endstr = document.cookie.indexOf (";", offset);

	if ( endstr == -1 )
		endstr = document.cookie.length;

	return unescape(document.cookie.substring(offset, endstr));
}

function showError(sErrMsg,sURL,sLine)
{
	alert( "Error " + sErrMsg + " in \"" + sURL + "\" at line " + sLine );
}


function getCookie (name) 
{

   var arg = name + "=";

   var alen = arg.length;

   var clen = document.cookie.length;

   var i = 0;

   while (i < clen) 
      {

      var j = i + alen;

      if (document.cookie.substring(i, j) == arg)

         return getCookieVal (j);

      i = document.cookie.indexOf(" ", i) + 1;

      if (i == 0) break; 

      }

   return null;

   }

function getCookieSubItem(name,subitemname)
{
	var
		sCurrentCookieValue = getCookie( name );

	if( sCurrentCookieValue == null )
		return null;
	
	var 
		asPairs = sCurrentCookieValue.split( "~" );

	for( var iScan = 0; iScan < asPairs.length; iScan++ )
	{

		if( asPairs[ iScan ].indexOf( subitemname + ":" ) != -1 )
		{				
			var
				sFoundValue = asPairs[ iScan ].substr( asPairs[ iScan ].indexOf( subitemname + ":" ) + subitemname.length + 1  );

			var
				re = new RegExp( "<sp>", "g"),
				sCleanerValue = sFoundValue.replace( re, " " );
			sFoundValue = sCleanerValue;

			sCleanerValue = sFoundValue.replace( /<c>/g, "," );
			sFoundValue = sCleanerValue;

			re = new RegExp("<t>", "g"),
			sCleanerValue = sFoundValue.replace( re, "~" );
			sFoundValue = sCleanerValue;

			re = new RegExp("<s>", "g"),
			sCleanerValue = sFoundValue.replace( re, ";" );
			sFoundValue = sCleanerValue;

			re = new RegExp("<co>", "g"),
			sCleanerValue = sFoundValue.replace( re, ":" );
			sFoundValue = sCleanerValue;

			return sFoundValue;
		}
	}

	return null;
}


function setCookieSubItem (name, subitemname,value) 
{
	value = "" + value;

	if( value != null )
	{
		value = value.replace( /,/g, "<c>" );
		value = value.replace( /~/g, "<t>" );
		value = value.replace( /;/g, "<s>" );
		value = value.replace( / /g, "<sp>" );
		value = value.replace( /:/g, "<co>" );
	}

	var
		sCurrentCookieValue = getCookie( name );

	if( sCurrentCookieValue == null )
	{
		var
			sNewCookieValue = subitemname + ":" + value;

		setCookie( name, sNewCookieValue );
		return;
	}
	else
	{
		var 
			fFound = false,
			asPairs = sCurrentCookieValue.split( "~" );

		// See if it's already in list
		for( var iScan = 0; iScan < asPairs.length; iScan++ )
		{
			if( asPairs[ iScan ].indexOf( subitemname + ":" ) != -1 )
			{
				fFound = true;
			}
		}

		// If found and only one cookie and we're removing it, set it to null
		if( fFound && value == null && asPairs.length == 1 )
		{
			// No more pairs, remove cookie
			setCookie( name, "" );
			return;
		}

		// If not found and no value, do nothing
		if( !fFound && value == null )
			return;

		var
			sResultCookie = "";
		for( var iScan = 0; iScan < asPairs.length; iScan++ )
		{
			if( asPairs[ iScan ].indexOf( subitemname + ":" ) != -1 )
			{
				if( value == null )
				{
					continue;
				}

				if( sResultCookie.length > 1 )
					sResultCookie += "~";

				sResultCookie += subitemname + ":" + value;
			}
			else
			{
				if( sResultCookie.length > 1 )
					sResultCookie += "~";

				sResultCookie += asPairs[ iScan ];
			}
		}

		// If we're just adding it to the list
		if( !fFound )
		{
			if( sResultCookie.length > 1 &&
			   sResultCookie.charAt( sResultCookie.length - 1 ) != '~' )
				sResultCookie += "~";

			sResultCookie += subitemname + ":" + value;
		}

		setCookie( name, sResultCookie );
	}
}

function setPermCookie (name, value) 
{
	var
		argv = setPermCookie.arguments;
	var 
		argc = setPermCookie.arguments.length;

	var
		expires = new Date();

  	var
		path = (argc > 3) ? argv[3] : "/";

	var
		domain = (argc > 4) ? argv[4] : null;

	var
		secure = (argc > 5) ? argv[5] : false;

   	expires.setTime (expires.getTime() + (365 * 24 * 60 * 60000) );  // 1 year in advance

	document.cookie = name + "=" + escape (value) +

 	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +

	((path == null) ? "" : ("; path=" + path)) +

	((domain == null) ? "" : ("; domain=" + domain)) +

	((secure == true) ? "; secure" : "");

}

function setCookie (name, value) 
{
	var
		argv = setCookie.arguments;
	var 
		argc = setCookie.arguments.length;

	var
		expires = (argc > 2) ? argv[2] : null;

  	var
		path = (argc > 3) ? argv[3] : "/";

	var
		domain = (argc > 4) ? argv[4] : null;

	var
		secure = (argc > 5) ? argv[5] : false;

	document.cookie = name + "=" + escape (value) +

 	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +

	((path == null) ? "" : ("; path=" + path)) +

	((domain == null) ? "" : ("; domain=" + domain)) +

	((secure == true) ? "; secure" : "");

}
function clearCookie()
{
	if( confirm( "Are you sure you want to erase everything in your Shopping Cart?" ) )
	{
		setCookie( "Items", "" );
		location.reload();
	}
}

function deleteCookie () 
{

   var exp = new Date();

   exp.setTime (exp.getTime() - 1000000000);  // This cookie is history (changed -1 to make it previous time)

   var cval = getCookie ('DemoName');

   document.cookie ='DemoName' + "=" + cval + "; expires=" + exp.toGMTString();
}

function cleanDollarAmount( amount )
{
	if( amount == null )
		return "0.00";
	
	var
		iDollars = Math.floor( amount ),
		fpCents = amount - iDollars;

	if( Math.abs( fpCents ) < 0.01 )
		fpCents = 0;
	fpCents = fpCents * 100.0;

	var
		iCents = Math.floor( fpCents );
	if( fpCents - iCents > 0.5 && iCents < 99 )
		iCents++;

	return "" + iDollars + "." + (iCents < 10 ? "0" : "") + iCents;
}

function openShoppingCart()
{
	determineBrowserType();

 	if( getCookieSubItem( "CompanyInfo", 'CompanyName' ) != null )
	{
		var 
			wndPurchase = window.open( "https://www.repdirect.net/ProductOrderRequestSubmitShoppingCart.html", "WCTProductDetails", "toolbar=no,directories=no,titlebar=yes,status=no,scrollbars=yes,resizable=no,location=no,height=460,width=600,top=0,left=20" );

		wndPurchase.focus();
	}
	else
		alert( "Your Order Request List is empty." );
}

