//Core JS file for the ARAMARK sites
//By Sean Fitzgerald
//Created 4/4/2008
//Last Updated 4/22/2008

//Index
/*
1. popup
	-generic(urlpath,params)
	-closeall()
2. unica
	-submitAddToCartData(data)
	-submitRemoveFromCartData(data)
3. form
	-  submitonce()
	A. address
		1. validate(passedInForm, elementsToBeChecked)
	B. style
		1. validate(passedInForm)
*/

/*(1)*/
var popup = {
	
	aWindow : null,
	
/**/generic : function(urlpath,params){/*params = i.e "width=650,height=630,screenX=0,screenY=0,left=20,right=20,resizable=yes,status=no,toolbar=no,scrollbars=yes"*/
		 if (popup.aWindow == null) {
			popup.aWindow = window.open (urlpath, "popup_generic", params);
		 }
     	 else
      	 {
          if (popup.aWindow.closed == false){
		  	popup.aWindow.close();
		  }
          popup.aWindow = window.open (urlpath, "popup_generic", params);
         }
         popup.aWindow.focus();
	},

/**/closeall : function(){
		if (popup.aWindow != null) {
            popup.aWindow.close();
        }
	
	}//End closeall

};//End stylePage

/*(2)*/
var unica = {
	
/*You can pass information on multiple products in a single call. NetInsight interprets the first three values
as the SKU, quantity, and price of the first product, the next three values as the SKU, quantity, and price of
the second product, and so forth.
ex. data = sSku + ";" + iQuantity + ";" + fPrice
*/

/**/submitAddToCartData : function(data){
		ntptAddPair( "rta", data );
		ntptEventTag( "ev=cartadd" );
	},//End SubmitAddToCartData

/**/submitRemoveFromCartData : function(data){
		ntptAddPair( "rtr", data );
		ntptEventTag( "ev=cartremove" );
	}//End SubmitAddToCartData

};//End Unica

/*(3)*/
var form = {

	clicked : false,
	listOfErrors : "The following fields are incorrect:\n\n",

/**/submitonce : function(){
		if (form.clicked ){
			alert("Please wait processing request");
			return false;
	    }
		else {
			form.clicked=true;
			return true;
		}
	},//End submitonce
	
/*(3A)*/
/**/address : {

		pass : true,
		listOfErrors : "Please enter the following required fields:\n\n",

	/**/validate : function(passedInForm, elementsToBeChecked) {
			for (i=0;i<passedInForm.length;i++) {
				for (x=0;x<elementsToBeChecked.length;x++){
					var tempobj=passedInForm.elements[i];
					if (tempobj.name==elementsToBeChecked[x]){

						var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,6})$/;
						var address = passedInForm.elements[i].value;
						if (tempobj.name =="email") {
							if ( reg.test(address) == false) {
								form.address.listOfErrors+="Email Address\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if ( tempobj.name =="company") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Company\n";
				 				tempobj.focus();
								form.address.pass=false;
							break;
							}
						}
         				if ( tempobj.name =="firstname") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="First Name\n";
				 				tempobj.focus();
								form.address.pass=false;
							break;
							}
						}
	     		 		if (tempobj.name =="lastname") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Last Name\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
		  				if (tempobj.name =="street") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Street Address\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if (tempobj.name =="city") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="City\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if (tempobj.name =="state") {
							if ( tempobj.selectedIndex==0 ) {
				 				form.address.listOfErrors+="State\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if (tempobj.name =="zip") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Zip/Postal Code\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if (tempobj.name =="workphone") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Work Phone\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if (tempobj.name =="homephone") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Home Phone\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
						if (tempobj.name =="fax") {
							if ( tempobj.value =="" ) {
				 				form.address.listOfErrors+="Fax Number\n";
				 				tempobj.focus();
								form.address.pass=false;
			   				break;
							}
						}
					}
				}
			}
		if (!form.address.pass) {
		 	alert(form.address.listOfErrors);
		 	form.address.listOfErrors = "The following fields are incorrect:\n\n";
         	return false;
      	}  
		else {
         	return  form.submitonce();
	  	}
	  }//End validate
	},//End address

/*(3B)*/
/**/style : {

		formHasPassedValidation : true,
		
	/**/validate : function(passedInForm) {
			for (i=0;i<passedInForm.length;i++) {
				var tempobj=passedInForm.elements[i];
				
				 if (tempobj.name == "color") {
						if (tempobj.selectedIndex==0) {
						 alert("Please select a color. ");
							tempobj.focus();
							form.style.formHasPassedValidation=false;
							break;
						}
					}
				 try{
					if(passedInForm.persoption[0].checked == true){	
					
						if (tempobj.name == "size") {
							if (tempobj.selectedIndex==0) {
							alert("Please select a size. ");
							tempobj.focus();
							form.style.formHasPassedValidation=false;
							break;
							}
						}
					 }
				 }
				catch(e){
				if (tempobj.name == "size") {
								if (tempobj.selectedIndex==0) {
								alert("Please select a size. ");
								tempobj.focus();
								form.style.formHasPassedValidation=false;
								break;
								}
							}
				}
				
				if (tempobj.name =="qty"){
					if (isNaN(tempobj.value)) {
							alert("A number value is required for a quantity "+tempobj.value+"");
							tempobj.select();
							tempobj.focus();
							form.style.formHasPassedValidation=false;
							break;
					}
				}
			}
		 
			if (!form.style.formHasPassedValidation) {
				form.style.formHasPassedValidation=true;
				return false;
			}
			else {
				return form.submitonce();
			}
		}//End validate
	
	}//End style
	
};//End form




