// JavaScript Document
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function trim(str) {
  while (str.charAt(0) == " ")
    str = str.substring(1);
  while (str.charAt(str.length-1) == " ")
    str = str.substring(0,str.length-1);
  return str;
}

function AmericanMomentsMenu()
{
    var momentsString=document.frmMENUS.momentsarray.value;
    var cntmoments=document.frmMENUS.cntmoments.value;
	var y=0;
	var splitString = momentsString.split(";"); 
	for (y=0;y<cntmoments;y++)
	{	
		var momstring=splitString[y];
		x=0;
		var splitmomString = momstring.split(",");
		for (x=0;x<2;x++)
		{
		var momentdesc= splitmomString[0];
		var momentid=splitmomString[1];	
		momentid=trim(momentid);	
		}
		//alert(momentdesc);
		mm_menu_0817224925_0_1.addMenuItem(momentdesc,"location='amoments.php?idmfgcat="+momentid+"'");
	}	
}

function mmLoadMenus() {
  if (window.mm_menu_0817224925_0) return;
    window.mm_menu_0817224925_0_1 = new Menu("American&nbsp;Moments",110,21,"Verdana, Arial, Helvetica, sans-serif",9,"#ffffff","#ffffff","#cc0000","#999999","center","middle",6,0,750,-5,11,true,false,true,0,true,true);
     AmericanMomentsMenu();
     mm_menu_0817224925_0_1.bgImageUp="images/mmmenu1_110x21_up.gif";
     mm_menu_0817224925_0_1.bgImageOver="images/mmmenu1_110x21_over.gif";
     mm_menu_0817224925_0_1.fontWeight="bold";
     mm_menu_0817224925_0_1.hideOnMouseOut=true;
     mm_menu_0817224925_0_1.bgColor='#999999';     
  window.mm_menu_0817224925_0 = new Menu("root",110,21,"Verdana, Arial, Helvetica, sans-serif",9,"#ffffff","#ffffff","#cc0000","#999999","center","middle",6,0,750,-5,11,true,false,true,0,true,true);
  mm_menu_0817224925_0.addMenuItem("Event&nbsp;Products","location='eproducts.php'");
  mm_menu_0817224925_0.addMenuItem("Service&nbsp;Products","location='sproducts.php'");
  mm_menu_0817224925_0.addMenuItem(mm_menu_0817224925_0_1,"location=''");
   mm_menu_0817224925_0.bgImageUp="images/mmmenu1_110x21_up.gif";
   mm_menu_0817224925_0.bgImageOver="images/mmmenu1_110x21_over.gif";
   mm_menu_0817224925_0.fontWeight="bold";
   mm_menu_0817224925_0.hideOnMouseOut=true;
     mm_menu_0817224925_0.bgColor='#999999';
        
     mm_menu_0817224925_0.writeMenus();
} 

//-->
function Start(page) {
OpenWin = this.open(page, "CtrlWindow", "toolbar=no,width=650,height=500,top=150,left=250,menubar=no,location=no,scrollbars=yes,resizable=no");
}

function Start1(page) {
OpenWin = this.open(page, "CtrlWindow", "toolbar=no,width=650,height=500,top=150,left=250,menubar=no,location=no,scrollbars=yes,resizable=yes");
}

function isDateFormat(str)
	{
		// Get into string object
		var sTemp = new String(str);
		x = sTemp.search(/([0][1-9]|[1][012]|[1-9])[\/]([0][1-9]|[12]\d?|[3][01]|[1-9])[\/](\d{2}|\d{4})$/);	// all combos still have to chek month day combo validation
		return TrueorFalse(x);
	}
	
	function isDate(str)
	{
		var day;
		var pos1;
		var pos2;
		var month;
		var year;
		
		
		
		var sTemp = new String(str);
		if(!isDateFormat(sTemp))
			return false;
		
		// Now we know it is in a good format
		sTemp = trim(sTemp);
		
		// Get the month(position of first "/")
		pos1 = instr(1,sTemp,"/");
		month = left(sTemp,pos1-1);
		
				
		// Get day (position of second "/")
		sTemp = mid((pos1+1),sTemp,len(sTemp));
		pos2 = instr(1,sTemp,"/");
	
		day = left(sTemp,pos2-1);
		
		// Validate day month combo, need year to get leapyear possibility
		year = right(sTemp,len(sTemp)-pos2);
		
		
		if (isValidMonthDay(month,day,year))
		{
			// Now Check Safe SQL Year
						
			if (instr(1,right(sTemp,4),"/") == 0)
			{
				// This is a four digit year, check that it is greater than 1752
				if(	right(sTemp,4) > "1752")
				{
					
					return true; // OK SQL Date
				}
				else
				{
					return false; // Bad SQL Date
				}
			}
			else
				return true; // Good two digit year
		}
		else // Not a valid date
		{
			return false;
		}
		
		
		
			
		
		
	}	
	
	// Returns true if leapyear
function isLeapYear(year)
{
	return (year % 4 == 0 && (year % 100 !=0 || year % 400 ==0));
}

// Returns true if Day Month Combo is Legal
function isValidMonthDay(month,day,year)
{
		
	// Return Value to be assigned
	var  gooddate = true;
	
	
	// Months with thrity days
	var sThirty = " 09 9 04 4 06 6 11 "
		
	// Check for Feb First
	if ( month == "02" || month == "2" )
	{
		
		if(isLeapYear(year))
		{
			if(day <= 29) // If leap year and 29 or less date is good
				gooddate = true;
			else 
				gooddate = false;
			
		}
		else // Not a leap year check day less than equal to 28
		{
			if(day >= 29)
			 gooddate = false;
			
			
		}
				
	} // Not feb
	else
	{
		// If not Feb check if should have thirty days
		// Returns 0 if not found
		var index = instr(1,sThirty,month)
	
		if (index > 0) // This month must have thiry days 
		{
			if(day > 30)
				gooddate = false;
					
		}
		else
		{
			 if(day > 31)
				goodate = false;
		}
	}
		
	
	return gooddate;
}
	
	function isZipcode(str)
	{
		var sTemp = new String(str);
		x = sTemp.search(/(\d{5}$)|\d{5}-?\d{4}/); // Matches xxxxx or xxxxx-xxxx
		return TrueorFalse(x);
	}
	
	function reformat (s)

	{   var arg;
	    var sPos = 0;
	    var resultString = "";

	    for (var i = 1; i < reformat.arguments.length; i++) {
	       arg = reformat.arguments[i];
	       if (i % 2 == 1) resultString += arg;
	       else {
	           resultString += s.substring(sPos, sPos + arg);
	           sPos += arg;
	       }
	    }
	    return resultString;
	}

	function reformatSSN(str)
	{   
		newssn=(reformat(str, "", 3, "-", 2, "-", 4));
	}

	
	function isSocialSecurity(str)
	{
		var sTemp = new String(str);
		x = sTemp.search(/\d{3}-?\d{2}-?\d{4}$/); // Matches xxx-xx-xxxx or xxxxxxxx
		return TrueorFalse(x);
	}
	
	function isPhoneNumber(str)
	{
		
		var sTemp = new String(str);
		x = sTemp.search(/\d{3}-?\d{3}-?\d{4}$/); // Matches xxx-xxx-xxxx or xxxxxxxx 
		return TrueorFalse(x);
	}
	 
	
	
	
	// Returns a string as with vb
	function mid(start,str,length)
	{
		start = (start == 1) ? 0 : (start - 1);
		length = start + length;
		
		var sTemp = new String(str);
		
		// Get substring
		return sTemp.substring(eval(start),eval(length));
	}
	
	
	// Returns trimmed version of string
	function trim(str)
	{
		var sTemp = new String(str);
		var sReturn = new String();
		for(var i = 0;i<=sTemp.length;i++)
		{
			if(sTemp.charAt(i) != " ")
				sReturn = sReturn + sTemp.charAt(i);
		}
		return sReturn;
				
		
	}
	
	// Returns left part of string as with vb
	function left(str,length)
	{
		var sTemp = new String(str);
		
		// Get substring
		return sTemp.substring(0,eval(length));
	}
	
	// Returns left part of string as with vb
	function right(str,length)
	{
		var sTemp = new String(str);
		var endofstr = sTemp.length;
		var start = endofstr - length;
		
		// Get substring
		return sTemp.substring(start,endofstr);
	}
	
	
	// Returns index of a string or character within a string as with vb
	// Returns 0 if not found
	function instr(start,strToSearch,strToFind)
	{
		
		var sTemp = new String(strToSearch);
		
		start = (start == 1) ? 0 : (start - 1);
				
		// Get substring
		return (sTemp.indexOf(strToFind,start) + 1);
	}
	
	// Returns length of string
	function len(str)
	{
		sTemp = new String(str);
		return sTemp.length; 
		
	}
	
	// Returns upper case version of string
	function ucase(str)
	{
		sTemp = new String(str);
		sTemp = sTemp.toUpperCase();
		return sTemp; 
		
	}
	
	
	// Returns lower case version of string
	function lcase(str)
	{
		sTemp = new String(str);
		sTemp = sTemp.toLowerCase();
		return sTemp; 
		
	}
	
	
	// Validates numbers
	function isNumeric(val)
	{
		sTemp = new String(val);
		//Use reg expr digits only
		return(TrueorFalse(sTemp.search(/\d+$/)));
	}



	// Validates Currency
	function isCurrency(str)
	{
		
		var sTemp = new String(str);
		//x = sTemp.search( /(\d|\$)\d*\.?\d\d$/);  
		x = sTemp.search(/(\$)?(\d{1,3}((\,\d{3})*)|(\d+))?(\.\d\d)?$/) // Allows commas
		
		return TrueorFalse(x);
	}

	 function isTime(str)
	{
		// Get into string object
		var sTemp = new String(str);
		x = sTemp.search(/([0][1-9]|[1][012]|\d)[:][0-5]\d([:][0-5]\d)?\s?(AM|am|PM|pm)$/);  // also accept optional space before AM/PM
		return TrueorFalse(x);
	}

	
	// This function is a utility to use inside of other functions
	// False values are any non-zero values
	function TrueorFalse(val)
	{
		return (val == 0) ? true : false; 
	}