//
//-------------------------------------------------------------------
// Licensed Materials - Property of IBM
//
// WebSphere Commerce
//
// (c) Copyright IBM Corp. 2006
//
// US Government Users Restricted Rights - Use, duplication or
// disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//-------------------------------------------------------------------
//

var busy = false;
//
// ***
// * This javascript function is used by the 'Add to Shopcart' button.  Since the HTML form is shared by both 'Add to Shopcart' and 'Add to Wish List' button,
// * appropriate values are set using this javascript before the form is submitted.
// * The variable 'busy' is used to avoid submitting the same forms multiple times when users click the button more than once.
// ***
//

function checkAttributeSelected(form) {

	// loop through the quantity boxes on the form
	var i = 0;
	
	  
	while(form.elements['addToWishList_' + i] != null) {
	    if(form.elements['addToWishList_' + i].checked &&
	       form.elements['quantity_' + i].value.trim() != '' &&
	    	form.elements['quantity_' + i].value != '0') {
	
    		// check attributes
    		if(form.elements['attrName_' + i] != null) {
				// check if array or single value	
				if(form.elements['attrName_' + i].item == undefined) {
					if(form.elements['attrValue_' + i].selectedIndex <= 0) {
						alert(form.elements['attrValue_' + i].options[0].text + " " + form.elements['attrValue_' + i].options[0].value);
						return false;
					}
				}
				else {
					for(var j = 0; j < form.elements['attrName_' + i].length; j++) {
						if(form.elements['attrValue_' + i][j].selectedIndex <= 0) {
							alert(form.elements['attrValue_' + i][j].options[0].text + " " + form.elements['attrValue_' + i][j].options[0].value);
							return false;
						}
					}
				}		    		
    		}
		}
		
	  	i++;				
	}
	
	// got here ok
	return true;
	
}

function checkQtyEntered(form) {

	var qtyEntered = true;
	  
	// loop through the quantity boxes on the form
	var i = 0;
	
	// Ensure the qty is set for any selected items	  
	while(form.elements['addToWishList_' + i] != null) {
	    if(form.elements['addToWishList_' + i].checked) {
	    	if (form.elements['quantity_' + i].value.trim() == '' ||  form.elements['quantity_' + i].value == '0') {
		    	qtyEntered = false;
		    }
		}
		
	  	i++;				
	}
	
	return qtyEntered;

}

function Add2ShopCart(form)
{  
      //debugger;
       if (!busy) {
       
              // error if no qty
              if(!addToWishListSelected(form)) {
              	alert(noItemsSelected);
              	busy = false;
              	return false;
              }          
              if(!checkQtyEntered(form)) {
              	alert(noQtyEntered);
              	busy = false;
              	return false;
              }      
              
              // error if attributes not selected
              if(!checkAttributeSelected(form)) {
              	busy = false;
              	return false;
              }       
       
              busy = true;
                            
              // loop through the quantity boxes on the form
              var i = 0;

				// Only add those items selected with a qty > 0
              while(form.elements['addToWishList_' + i] != null) {
	            if(!form.elements['addToWishList_' + i].checked ||  
	                form.elements['quantity_' + i].value.trim() == '' || 
	            	form.elements['quantity_' + i].value == '0') {
	            
	            	if(form.elements['partNumber_' + i] == undefined) {
		            	form.elements['catEntryId_' + i].name = 'ignore_catEntryId_' + i;
		            }
		            else {	
		                //bug 4/71 addition
		                form.elements['catEntryId_' + i].name = 'ignore_catEntryId_' + i;
		                
		            	form.elements['partNumber_' + i].name = 'ignore_partNumber_' + i;
			    		if(form.elements['attrName_' + i] != null) {		            	
			            	if(form.elements['attrName_' + i].item == undefined) {
			            		form.elements['attrName_' + i].name = 'ignore_attrName_' + i;
			            	}
			            	else {
			            		for(var j = 0; j < form.elements['attrName_' + i].length; j++) {
			            			form.elements['attrName_' + i][j].name = 'ignore_attrName_' + i;
			            		}
			            	}
			            	if(form.elements['attrValue_' + i].item == undefined) {
			            		form.elements['attrValue_' + i].name = 'ignore_attrValue_' + i;
			            	}
			            	else {
			            		for(var j = 0; j < form.elements['attrValue_' + i].length; j++) {
			            			form.elements['attrValue_' + i][j].name = 'ignore_attrValue_' + i;
			            		}
			            	}	  
		            	}
	            	}          	
	            	form.elements['quantity_' + i].name = 'ignore_quantity_' + i;
	            	
	            }
	              
              	i++;
              }
                            
              form.action="/webapp/wcs/stores/servlet/OrderItemAdd";
              //form.URL.value='OrderCalculate?URL=/webapp/wcs/stores/servlet/ProductDisplay';
              // fixed for IE7
              form.URL.value='OrderCalculate?URL=ProductDisplay';
              form.submit();
       }
}

function checkWishListAttributeSelected(form) {

	// loop through the quantity boxes on the form
	var i = 0;
	
	while(form.elements['addToWishList_' + i] != null) {
	
		// 
	    if(form.elements['addToWishList_' + i].checked) {
	
    		// check attributes
    		if(form.elements['attrName_' + i] != null) {
				// check if array or single value	
				if(form.elements['attrName_' + i].item == undefined) {
					if(form.elements['attrValue_' + i].selectedIndex <= 0) {
						alert(form.elements['attrValue_' + i].options[0].text + " " + form.elements['attrValue_' + i].options[0].value);
						return false;
					}
				}
				else {
					for(var j = 0; j < form.elements['attrName_' + i].length; j++) {
						if(form.elements['attrValue_' + i][j].selectedIndex <= 0) {
							alert(form.elements['attrValue_' + i][j].options[0].text + " " + form.elements['attrValue_' + i][j].options[0].value);
							return false;
						}
					}
				}			    		
			}
	    		
		}
		
	  	i++;				
	}
	
	// got here ok
	return true;
	
}

function addToWishListSelected(form) {

	//
	var oneSelected = false;
  
	// loop through the check boxes to add to wishlist	              
	var i = 0;
	 
	while(form.elements['addToWishList_' + i] != null) {
	
		// 
	    if(form.elements['addToWishList_' + i].checked) {
	    	oneSelected = true;
	    }
	      
  		i++;
	}   
	
	return oneSelected;           

}

// This javascript function is used by the 'Add to Wish List' button to set appropriate values before the form is submitted
function Add2WishList(form)
{

       if (!busy) {
			  // error if none selected
              if(!addToWishListSelected(form)) {
              	alert(wishListNonSelected);
              	busy = false;
              	return false;
              }          
              
              // error if attributes not selected
              if(!checkWishListAttributeSelected(form)) {
				busy = false;
              	return false;
              }
       
              busy = true;

			  // loop through the check boxes to add to wishlist	              
              var i = 0;
             
              while(form.elements['addToWishList_' + i] != null) {

              	//need to eliminate the unchecked records.
	            if(!form.elements['addToWishList_' + i].checked) {	            
                    form.elements['catEntryId_' + i].name = 'ignore_catEntryId_' + i;
   	            	if(form.elements['partNumber_' + i] != undefined && form.elements['partNumber_' + i]!=null) {
		            	form.elements['partNumber_' + i].name = 'ignore_partNumber_' + i;
		            }	            	
	            }

				// set all the other field to ignore regardless of selected
            	form.elements['quantity_' + i].name = 'ignore_quantity_' + i;
	              
              	i++;
              }              
              
              form.action="/webapp/wcs/stores/servlet/InterestItemAdd";
              form.URL.value='ProductDisplay';
              //form.URL.value='InterestItemDisplay'
              form.submit()
       }
}

