function doSubmitViewLarge(image, index){  
        document.getElementById("ViewLargerForm:indexOfImage").value=index;        
        document.getElementById("ViewLargerForm:images").value=image;
        document.getElementById("ViewLargerForm").submit();        
        return true;    
} 
//***pop up wrappers that delegate to openSupplPop in common.js***
function openViewSizePopup(param){ //delegate to generic popup management
	openSupplPop(param,"500","750")    
	return false;
}
    
function viewLarge(itemId,itemType){ //delegate to generic popup management
	openSupplPop("/agshop/html/ViewLarger.jsf?itemId=" + itemId + "&itemType=" + itemType + "&Flag=y","500","480")            
	return false;
}    

function openFriendPhpSPP(pageURL,itemName, itemIdField){//delegate to generic popup management
	var productTitle = escape(document.getElementById(itemName).value);
        var itemId = escape(document.getElementById(itemIdField).value);
  openSupplPop("/pls/ag/pc_forward.forward_page?p_page_type=P&p_url=" + pageURL + "&p_description=" + productTitle + "&p_opt_in=N&p_item_id=" + itemId,"400","600")   
	return false;
}      
//***end pop up wrappers***


//***single-product page functions***    
function getSelectedItemsSPP(param,event){ 
//add product wishlist or gift registry on single-product page
  var form = document.forms['ShowProduct']
  if(!validateOne(form)) return false; //validate that form is filled out correctly
  

  //**if gift registry, display add dialog
	var giftRegistryFlag = document.getElementById("ShowProduct:giftRegistryFlag").value;
  
  if(giftRegistryFlag == "true" && param != "wishlist"){
   	var itemId = document.getElementById("ShowProduct:itemId").value;  
    var webTemplateId = document.getElementById("ShowProduct:webTemplateId").value; 
   	var quickSellCheck = document.getElementById("ShowProduct:addon")   
   	var quickSellItemId = "";
   	var dropDownItemId = "";
    var radioId = "";
   	
    //store quicksell product
    if(quickSellCheck){
   		if(quickSellCheck.checked){
   			quickSellItemId = document.getElementById("ShowProduct:quickSellItemId").value;   
   		}
   	}
    
    //radio and dropdown selections
    for(var i=0;i < form.elements.length;i++){  
    	if(form.elements[i].type == "radio"){
        var radioButtons = document.getElementsByName(form.elements[i].name)
        for(var j=0;j < radioButtons.length;j++){
        	if(radioButtons[j].checked){
          	radioId = radioButtons[j].value;        	
            break
          }
        }
        i += radioButtons.length
      	continue
      }else if(form.elements[i].selectedIndex < 0){
    		if(dropDownItemId != "") dropDownItemId = form.elements[i].value
      }
  	}    

		openSupplPop("/agshop/html/giftRegistry.jsf?webTemplateId=" + webTemplateId + "&itemId=" + itemId + "&quickSellItemId=" + quickSellItemId + "&radioId=" + radioId + "&dropDownItemId=" + dropDownItemId,"500","480")           
    return false;
  }
  //**end registry stuff
  
  var myDate=new Date();
  document.getElementById("ShowProduct:timeCart").value=myDate;
  document.getElementById("ShowProduct:addtoBag").value="false";    
	document.getElementById("ShowProduct:phpFlag").value = param;      
	form.submit();       

	return true;
}

function addtoBag(obj){ 
//add product to bag on single-product page
  var form = document.forms["ShowProduct"]
  if(!validateOne(form)) return false; //validate that form is filled out correctly
  
  document.getElementById("ShowProduct:phpFlag").value = ""; 
  var colorid = null;
  var myDate=new Date();
  document.getElementById("ShowProduct:timeCart").value=myDate;
  document.getElementById("ShowProduct:addtoBag").value="true";
  if(document.getElementById("ShowProduct:Color")){
  	colorid = document.getElementById("ShowProduct:Color").value;
  	if (colorid.indexOf("~") == -1) addOptionText();
  }
  createCookie('addedAGshop','true',1)//drop cookie to prevent showing shopping bag drawer more than once
  form.submit();    
  return true;
}
  
  
function addOptionText(){//write color information to hidden fields
  var lst = document.getElementById("ShowProduct:Color");
  var txtHidden = document.getElementById("ShowProduct:colorDropdown");
  txtHidden.value = lst.options[lst.selectedIndex].text;
  var labelValue = txtHidden.value;
  document.getElementById("ShowProduct:colorDropdown").value=labelValue;
  return true;
}

//***REH new funtion.
function validateOne(form){
//validate both add to bag and giftlist/registry for single-product pages
  var errors = new Array() //error storage
  //loop through form elements
  for(var i=0;i < form.elements.length;i++){
  	form.elements[i].className = "" //reset any error inidcators
    
    //create and store error message if no set type selected
    if(form.elements[i].type == "radio"){
    	var radioButtons = document.getElementsByName(form.elements[i].name)
      var radioChecked = false
      for(var j=0;j < radioButtons.length;j++){
      	if(radioButtons[j].checked){
        	radioChecked = true
          break
        }
      }
      if(!radioChecked) errors[errors.length] = "Please select an item."
      i += radioButtons.length
      continue
    }
    
    //create and store error messages if dropdowns NOT selected
    if(form.elements[i].selectedIndex == 0){
      var selectAttribute = "type" //generic message in case the select ID is not in the expected format
      var colonIndex = form.elements[i].id.indexOf(":")
      if(colonIndex != -1){
      	selectAttribute = form.elements[i].id.substring(colonIndex + 1,form.elements[i].id.length)
      }
      errors[errors.length] = "Please specify an item " + selectAttribute.toLowerCase() + "." 
      form.elements[i].className = "error" //set error indicator
		}
	}
    
  if(errors.length > 0){//errors exist
  	displayErrorMsg(errors)
    return false//errors exist, validation failed
  }
  return true//no errors
}

 var submitDropDown = false //to prevent double submission
function changeDropDownOne(obj){
//handle onChange event for attribute drop-downs
	if(submitDropDown) return false
   
  var form = obj.form	
	//if only one drop-down exists in the form, onChange shouldn't submit submit 
	var selectCount = 0
	for(var i=0;i < form.elements.length;i++){//loop through elements looking for drop-downs
		if(form.elements[i].type == "select-one") selectCount += 1		
		if(selectCount > 1) break //if there are multiple drop-downs, don't need to count anymore
	}
	if(selectCount <= 1) return //only one (or none) drop-down. bail...	
	
	//determine type by examinig the ID of the drop-down changed
	var dropdownType = ""
	var colonIndex = obj.id.indexOf(":")
  if(colonIndex != -1){//capitalize based on what Covansys back-end is expecting (title case)
		dropdownType = obj.id.substring(colonIndex + 1,colonIndex + 2).toUpperCase()
  	dropdownType += obj.id.substring(colonIndex + 2,obj.id.length).toLowerCase()
  }
	
  submitDropDown = true
	//write to hidden fields for submission
	document.getElementById("ShowProduct:dropdownType").value = dropdownType
	document.getElementById("ShowProduct:dropdownLabel").value = obj.options[obj.selectedIndex].text
	document.getElementById("ShowProduct:selectAnyDropDown").value = "true"
	document.getElementById("ShowProduct:addtoBag").value = ""
	document.getElementById("ShowProduct:phpFlag").value = ""
	
	form.submit()
}
//***end single-product page functions***


//***multiple-product page functions***  
function getSelectedItems(param,event) {
	var form = document.forms["multiSelectForm"]
  if(!validateMPP(form)) return false; //validate that form is filled out correctly
  
  
  //**if gift registry, display add dialog
	var giftRegistryFlag = document.getElementById("multiSelectForm:giftRegistryFlag").value;
  
  if(giftRegistryFlag == "true" && param != "wishlist"){
   	var itemSelected = document.getElementById("multiSelectForm:items").value;    
    var webTemplateId = document.getElementById("multiSelectForm:webTemplateId").value; 
		var displayGroup = document.getElementById("multiSelectForm:displayGroup").value;
		var itemId = document.getElementById("multiSelectForm:itemId").value;
   	

		openSupplPop("/agshop/html/giftRegistry.jsf?webTemplateId=" + webTemplateId + "&itemSelected=" + itemSelected + "&displayGroup=" + displayGroup + "&itemId=" + itemId,"500","480")           
    return false;
  }
  //**end registry stuff
  
  
  document.getElementById("multiSelectForm:addtoBag").value = ""
 	var myDate = new Date()
	document.getElementById("multiSelectForm:time").value = myDate
  document.getElementById("multiSelectForm:phpFlag").value = param;      
  
  form.submit();  
	return true
}



function AddToBagMPP(obj) {
  var form = document.forms["multiSelectForm"]
	if(!validateMPP(form)) return false; //validate that form is filled out correctly
  
  document.getElementById("multiSelectForm:selectedPHP").value="";
  document.getElementById("multiSelectForm:phpFlag").value="";
  var myDate=new Date();   
  document.getElementById("multiSelectForm:time").value = myDate; 
  document.getElementById("multiSelectForm:addtoBag").value = "true";
  
  createCookie('addedAGshop','true',1)//drop cookie to prevent showing shopping bag drawer more than once        
 	form.submit();    
  return true;    
}


//***REH new funtion - validate both add to bag and giftlist/registry
function validateMPP(form){
	var inputElements = document.getElementsByTagName("input") //input array
  var selectedCount = 0 //number of selected products
  var checkboxIndex = 0 //used to build hidden field values
  var checkboxHidden = "-" //string submitted via hidden field
  var checkboxPHPHidden = "-" //string submitted via hidden field
  var errors = new Array() //error storage

  //loop through selection input elements, looking for checkboxes
  for(var i=0;i < inputElements.length;i++){
  	if(inputElements[i].type != "checkbox"){
      continue
    }    
    
    checkboxIndex += 1 //keep track of checkboxes for hidden-field submission
    
  	if(inputElements[i].checked){//if product selected
      selectedCount += 1 //add to count
      checkboxHidden += "*" + checkboxIndex //write to hidden field storage
      checkboxPHPHidden += "*" + checkboxIndex //write to hidden field storage      
      //build references to dropdowns based on checkbox
      var check = inputElements[i]
      var prodid = check.id.substring(9, check.id.length) //9 is the length of the prefix '_checkbox'
      var attrSelect = document.getElementById("_select" + prodid)	
      //var attrSelect1 = document.getElementById("_select1" + prodid)
      /*this is a TERRIBLE naming convention?!?
      Each set of dropdowns should share a name, name=" _select[PRODID]" for example, to link it to the product;
      as well as a unique ID identifying the type, id="_size_select[PRODID]" for example*/
      
      //create array storing all associated drop-downs (necessary because of the existing naming convention)
      var attrSelectArray = new Array()
      if(attrSelect){
      	attrSelectArray[attrSelectArray.length] = attrSelect
        var prodName = getProdName(check)
        for(var j=1;j<10;j++){
          var dropdown = document.getElementById("_select" + j + prodid)
          if(dropdown) attrSelectArray[attrSelectArray.length] = dropdown
          else break
        }
        //create and store error messages if dropdowns are NOT selected
        for(var k=0;k<attrSelectArray.length;k++){
        	var dropdown = attrSelectArray[k]
          if(dropdown.selectedIndex == 0){                   
            errors[errors.length] = dropdown.options[0].text + " for " + prodName + "."                
            dropdown.className = "error"
          }else{
          	checkboxHidden += "$" + dropdown.options[dropdown.selectedIndex].text
          }
        }
    	}
		}
	}

  //create and store error message if no products selected
  if(selectedCount == 0) errors[errors.length] = "Please select at least one item."
  
  if(errors.length > 0){//errors exist
  	displayErrorMsg(errors)
    return false//errors exist, validation failed
  }
  document.getElementById("multiSelectForm:items").value = checkboxHidden
  document.getElementById("multiSelectForm:selectedPHP").value = checkboxPHPHidden 
  return true//no errors
}

function getProdName(check){
	//traverse tree to find product name for error messaging
  //Yes this is ugly Ugly UGLY... we need appropriate IDs in the markup to facilitate this.   
  var prodName = null 
  //var prodName = check.parentNode.parentNode.parentNode.childNodes[1].firstChild.firstChild.nodeValue //Firefox
  //var prodName = check.parentNode.parentNode.parentNode.childNodes[1].firstChild.nodeValue //IE
  if(!prodName) prodName = "selected item"
  return prodName
}


//***REH modified function	
var submitMulti = false; // for stopping  multiple submits
function changeDropDownMpp(itemid,itemtype,itemLabel,obj){ 
	setCheck(itemid,itemtype,itemLabel,obj)//check or uncheck associated checkbox

  if(submitMulti)return false //bail -- already submitted
   
  var addlSelect = document.getElementById("_select1" + itemid)//associated secondary drop down -- AGAIN... TERRIBLE naming convention
  if(!addlSelect) return false // bail because there is one (or none) associated drop down  
  
  var inputElements = document.getElementsByTagName("input") //input array   
  var checkBoxCounter = 0; 
  var checkbox = "-"; 
  var uncheckbox = "-";  
  
  //loop through selection input elements, looking for checkboxes
  for(var i=0;i < inputElements.length;i++){
  	if(inputElements[i].type != "checkbox"){
      continue
    }    
    
    checkBoxCounter += 1 //keep track of checkboxes for hidden-field submission
  	if(inputElements[i].checked){//if product selected
      checkbox += "*" + checkBoxCounter //write to hidden field storage   
    }else{//if product NOT selected
    	uncheckbox += "*" + checkBoxCounter //write to hidden field storage   
    }
      
    //build references to dropdowns based on checkbox
    var check = inputElements[i]
    var prodid = check.id.substring(9, check.id.length) //9 is the length of the prefix '_checkbox'
    var attrSelect = document.getElementById("_select" + prodid)	
    //var attrSelect1 = document.getElementById("_select1" + prodid)
    /*this is a TERRIBLE naming convention?!?
    Each set of dropdowns should share a name, name=" _select[PRODID]" for example, to link it to the product;
    as well as a unique ID identifying the type, id="_size_select[PRODID]" for example*/
    
    //create array storing all associated drop-downs (necessary because of the existing naming convention)
    var attrSelectArray = new Array()
    if(attrSelect){
    	attrSelectArray[attrSelectArray.length] = attrSelect
      var prodName = getProdName(check)
      for(var j=1;j<10;j++){
        var dropdown = document.getElementById("_select" + j + prodid)
        if(dropdown) attrSelectArray[attrSelectArray.length] = dropdown
        else break
      }
      //create and store error messages if dropdowns are NOT selected
      for(var k=0;k<attrSelectArray.length;k++){
      	var dropdown = attrSelectArray[k]
        if(inputElements[i].checked){//if product selected
         checkbox += "$" + dropdown.options[dropdown.selectedIndex].text 
        }else{//if product NOT selected
        	uncheckbox += "$" + dropdown.options[dropdown.selectedIndex].text  
        }
      }
  	}
	}

  document.getElementById("multiSelectForm:addtoBag").value = ""; // clearing value of the hidden variable.
  document.getElementById("multiSelectForm:selectedItemId").value = itemid;  //  itemid of the selected dropdown. 
  document.getElementById("multiSelectForm:selectedItemLabel").value = itemLabel;   // label of the dropdown like size or color. 
  document.getElementById("multiSelectForm:selectedItemValue").value = obj.options[obj.selectedIndex].text;    // the value selected from the dropdown.
  document.getElementById("multiSelectForm:selectedItemType").value = itemtype; //  itemtype of the selected dropdown. 
  document.getElementById("multiSelectForm:formSelectedValues").value = checkbox;
  document.getElementById("multiSelectForm:formUnSelectedValues").value = uncheckbox; 
  //document.getElementById("SelectSizeDropDown").value="true"; // for identifying the request type in the server.
 //THIS field doesn't exist. There is a field with the NAME SelectSizeDropDown associated with each dropdown. Create this field in the mess of hidden fields to make this work.
  
  submitMulti = true; // set to false to prevent double submission
  obj.form.submit();   
}



//***REH new function - set checkbox based on dropdown states
function setCheck(itemid,itemtype,itemLabel,obj){ 
	obj.className = ""
  //build references to checkbox and dropdown objects
  var check = document.getElementById("_checkbox" + itemid)                                                        
   
  if(obj.selectedIndex > 0){ //if user selects attribute, check item select checkbox
  	check.checked = true
  }else{ //if user deselects attribute, uncheck select checkbox only if all other drop-downs are unselected
    var dropSelectedCount = 0 //number of dropdowns with valid choices
    //create array storing all associated drop-downs (necessary because of the existing naming convention)
    var attrSelectArray = new Array()
  	attrSelectArray[attrSelectArray.length] = document.getElementById("_select" + itemid)
    for(var j=1;j<10;j++){
      var dropdown = document.getElementById("_select" + j + itemid)
      if(dropdown) attrSelectArray[attrSelectArray.length] = dropdown
      else break
    }
    //total number of dropdowns selected
    for(var k=0;k<attrSelectArray.length;k++){
      if(attrSelectArray[k].selectedIndex > 0) dropSelectedCount += 1
    }
    //set state of selection checkbox based on number of dropdowns selected
  	if(dropSelectedCount == 0) check.checked = false
  }
}

//***REH new function - reset dropdowns if selection checkbox is unchecked
function resetDropDown(itemid,check){ 
	if(check.checked) return //only interested in unchecked boxes
  
  //if no dropdowns, bail objects
  var attrSelect = document.getElementById("_select" + itemid)	
  if(!attrSelect) return
  attrSelect.selectedIndex = 0
  attrSelect.className = ""
  
  //loop through any remaining drop-downs and reset
  for(var j=1;j<10;j++){
    var dropdown = document.getElementById("_select" + j + itemid)
    if(dropdown){
    	dropdown.selectedIndex = 0
  		dropdown.className = ""
    }
    else break
  }
}

//Gift Card function added by Ravi - cognizant - change Starts

function addGiftCardtoBag(obj){ 
//add Gift Certificate to bag
  var form = document.forms["ShowProduct"]
  if(!validateGiftCard(form)) return false; //validate that form is filled out correctly
  
  document.getElementById("ShowProduct:phpFlag").value = ""; 
  var myDate=new Date();
  document.getElementById("ShowProduct:timeCart").value=myDate;
  document.getElementById("ShowProduct:addtoBag").value="true";
  createCookie('addedAGshop','true',1)//drop cookie to prevent showing shopping bag drawer more than once
  form.submit();   
  return true;
}
function validateGiftCard(form){
//validate Gift Certificate form fields
	var errors = new Array() //error storage
  //store field references in variables for convenience
  var amt = document.getElementById(form.name + ":amt")
  var toName = document.getElementById(form.name + ":to")
  var fromName = document.getElementById(form.name + ":from")
  var msg1 = document.getElementById(form.name + ":msgLine1")
  var msg2 = document.getElementById(form.name + ":msgLine2")
  var msg3 = document.getElementById(form.name + ":msgLine3")
  var msg4 = document.getElementById(form.name + ":msgLine4")
  
  //reset any error inidcators
  amt.className = ""
  toName.className = ""
  fromName.className = ""
  msg1.className = ""
  
  //validate amount
  if (trim(amt.value).length == 0) {
    errors[errors.length] = "Please enter the Gift Card amount."
    amt.className = "error" //set error indicator
  }else{
  //alert("formatted value  : "+formatCurrency(amt.value));
    if (amt.value <= 0) {
      errors[errors.length] = "Please enter a valid amount."
      amt.className = "error" //set error indicator
    }
  }
  //  amt.value = formatCurrency(amt.value);
  //validate TO name
  if(trim(toName.value).length == 0) {
  	errors[errors.length] = "Please enter the recipient's name."
    toName.className = "error" //set error indicator
  }
  //validate FROM name
  if(trim(fromName.value).length == 0) {
    errors[errors.length] = "Please enter your name."
    fromName.className = "error" //set error indicator
  }
  //validate Gift Message
  if(trim(msg1.value).length == 0 && trim(msg2.value).length == 0 &&
     trim(msg3.value).length == 0 && trim(msg4.value).length == 0){
    		errors[errors.length] = "Please enter at least one line for a Gift Message."
    		msg1.className = "error" //set error indicator
  }
  
  if(errors.length > 0){//errors exist
  	displayErrorMsg(errors)
    return false//errors exist, validation failed
  }
  return true//no errors
}


//Gift Card function added by Ravi - cognizant - change Ends

//***gift certificate page functions***  
function addGCtoBag(obj){ 
//add Gift Certificate to bag
  var form = document.forms["ShowProduct"]
  if(!validateGC(form)) return false; //validate that form is filled out correctly
  
  document.getElementById("ShowProduct:phpFlag").value = ""; 
  var myDate=new Date();
  document.getElementById("ShowProduct:timeCart").value=myDate;
  document.getElementById("ShowProduct:addtoBag").value="true";
  createCookie('addedAGshop','true',1)//drop cookie to prevent showing shopping bag drawer more than once
  form.submit();   
  return true;
}

function validateGC(form){
//validate Gift Certificate form fields
	var errors = new Array() //error storage
  //store field references in variables for convenience
  var amt = document.getElementById(form.name + ":amt")
  var toName = document.getElementById(form.name + ":to")
  var fromName = document.getElementById(form.name + ":from")
  var msg1 = document.getElementById(form.name + ":msgLine1")
  var msg2 = document.getElementById(form.name + ":msgLine2")
  var msg3 = document.getElementById(form.name + ":msgLine3")
  var msg4 = document.getElementById(form.name + ":msgLine4")
  
  //reset any error inidcators
 	amt.className = ""
  toName.className = ""
  fromName.className = ""
  msg1.className = ""
  
  //validate amount
  if (trim(amt.value).length == 0) {
		errors[errors.length] = "Please enter the gift-certificate amount."
    amt.className = "error" //set error indicator
  }else{
    amt.value = formatCurrency(amt.value);
    if (amt.value <= 0) {
      errors[errors.length] = "Please enter a valid amount."
      amt.className = "error" //set error indicator
    }
  }
  //validate TO name
  if(trim(toName.value).length == 0) {
  	errors[errors.length] = "Please enter the recipient's name."
    toName.className = "error" //set error indicator
  }
  //validate FROM name
  if(trim(fromName.value).length == 0) {
    errors[errors.length] = "Please enter your name."
    fromName.className = "error" //set error indicator
  }
  //validate Gift Message
  if(trim(msg1.value).length == 0 && trim(msg2.value).length == 0 &&
     trim(msg3.value).length == 0 && trim(msg4.value).length == 0){
    		errors[errors.length] = "Please enter at least one line for a Gift Message."
    		msg1.className = "error" //set error indicator
  }
  
  if(errors.length > 0){//errors exist
  	displayErrorMsg(errors)
    return false//errors exist, validation failed
  }
  return true//no errors
}

function trim(inputString) {
  // rather than return a non-string, convert the input to a string.
  s = inputString.toString();
  // the space in the patterns below is important! The two patterns mean:
  // one or more spaces at the beginning,
  // one or more spaces at the end.
  s = s.replace(/^ +/, '').replace(/ +$/, '');
  return s;
}

function formatCurrency(strnum) {
  num = parseFloat(strnum.toString().replace(/\$|\,/g,''));
  if(isNaN(num)) num = "0";
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
  if(cents < 10) cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
  	num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
  return (((sign)?'':'-') + num + '.' + cents);
}


function tabMsg(field){
	var charCount = field.value.length
  var msgIndex = parseInt(field.name.substring(field.name.length-1,field.name.length)) + 1
  var nextMsg = document.getElementById("ShowProduct:msgLine" + msgIndex)
  if(charCount == 28 && nextMsg.value.length == 0){
    var lastSpace = field.value.lastIndexOf(" ")
    var lastWord = field.value.substring(lastSpace+1,field.value.length)
    var currentMsg = field.value.substring(0,lastSpace+1)
    field.value = currentMsg
    nextMsg.focus()
    nextMsg.value = lastWord 
  }
}
//***END gift certificate page functions***



  
//***error handling functions***
//*REH new function.*
function displayErrorMsg(errors){
//write error messages to page 
	if(document.createElement){//show errorMsg block for browsers that can handle it
  	//get element references
    var container = document.getElementById("imageCrossSellBlock")
    var errorMsg = document.getElementById("errorMsg")
    if(!errorMsg){//if the page doesn't already have an errorMsg block, create one and add to page
      var errorContainer = document.createElement("div")
      errorContainer.id = "errorMsg"
      errorContainer.className = "errorMsg"
      for(var i=0;i < container.childNodes.length;i++){
      	if(container.childNodes[i].nodeName.toLowerCase() == "div"){
        	container.insertBefore(errorContainer,container.childNodes[i])
          break
        }
      }
      errorMsg = document.getElementById("errorMsg")
    }
    
    //assemble the errorMsg and markup
    var errorListHTML = ""
    for(var i= 0;i < errors.length;i++){
			errorListHTML += "<li>" + errors[i] + "</li>"
    }
    errorMsg.innerHTML = "<ul>" + errorListHTML + "</ul>"
    errorMsg.scrollIntoView()
  }else{//for older browsers, just show an alert
  	var errorAlert = ""
    for(var i= 0;i < errors.length;i++){
			errorAlert += errors[i] + "\n"
    }
    alert(errorAlert)
  }
}
  
