scriptLib =
{
  addEvent:function(elm,evType,fn,useCapture)
  {
    if(elm.addEventListener)
    {  // IE branch
      elm.addEventListener(evType,fn,useCapture);
      return true;
    }
    else if (elm.attachEvent)
    {
      elm.attachEvent("on" + evType,fn);
      return true;
    }
    else
    {
      elm["on" + evType]=fn;
    }
  },

  // Set up listener on rfqForm submit event
  // Can probably abstract this function and pass
  // in the form object as a parameter. Would need
  // a logic structure to pass in an object with
  // form objects as properties. Then attach the 
  // submit listener to them.
  attachSubmitListener:function()
  {
    var rfqFormElement = document.getElementById('rfqForm');
    if(!rfqFormElement)
    {
      return;
    }
    else
    {
      scriptLib.addEvent(rfqFormElement,'submit',processRFQForm.checkForm,false);
    }
  },

  cancelClick:function(e)
  {
    if(window.event)
    { // IE branch
      window.event.cancelBubble = true;
      window.event.returnValue = false;
      return;
    }
    if (e && e.stopPropagation && e.preventDefault)
    {
      e.stopPropagation();
      e.preventDefault();
    }
  },
    
  getTarget:function(e){
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target){return false;}
    while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body')
    {
    	target=target.parentNode;
    }
    return target;
  }
}

// Contains specifications for page redirects from products dropdown in sidebar
newPage =
{
  initTarget:function()
  {
    var formElement = document.getElementById("subnav");
    if (!formElement)
    {
      return;
    }
    else
    {
      scriptLib.addEvent(formElement, "submit", newPage.redirect, false);
    }
  },
  
  redirect:function(e)
  {
    var little_T = scriptLib.getTarget(e);
    var select_element = little_T.elements["product_url"];
    var selected_url = select_element.options[select_element.selectedIndex].value;
    if (selected_url === "select_product")
    {
      scriptLib.cancelClick(e);   
      return;
    }
    else
    {
      var url = "http://www.awe-east.com/" + selected_url + ".shtml";
      // var url = "http://www.awe-east.com/part2/" + selected_url + ".shtml";    
      // var url = "http://localhost/xampp/awe-east/part2/website/" + selected_url + ".shtml";
      scriptLib.cancelClick(e);  
      window.location.href = url;
    }
  }
}


processRFQForm =
{
  // Form validation function. 
  checkForm:function(e)
  {
    var alertStr ="";
    var CompanyValue = (document.getElementById('companyname')).value;
    var NameValue = (document.getElementById('name')).value;
    var PhoneValue = (document.getElementById('phone')).value;
    var EmailValue = (document.getElementById('mailrfq')).value;
    var MsgValue = (document.getElementById('msg')).value;    
    // The regular expression to check for whitespace
    // was adapted from The Javascript Anthology
    // by James Edwards and Cameron Adams
    // Site Point, isbn 0-9752402-6-9 chapter 6 pg 114.
    if (CompanyValue == "" || /^\s+$/.test(CompanyValue))
    {
      alertStr += ("Please enter your company name.\n");
    }
    if (NameValue == "" || /^\s+$/.test(NameValue))
    {
      alertStr += ("Please enter your name.\n");
    }
    if (PhoneValue == "" || /^\s+$/.test(PhoneValue))
    {
      alertStr += ("Please enter your phone number.\n");
    }
    
    if ((EmailValue == "") || (/^\s+$/.test(EmailValue)))
    {
      alertStr += ("Please enter your email address.\n");
    }     
    else if (!/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/.test(EmailValue))  
    {
      alertStr += ("The email address you entered appears to be invalid.\n");
    }
    
    if (MsgValue == "" || /^\s+$/.test(MsgValue))
    {
      alertStr += ("Please enter a message.");
    }
        
    if (alertStr == "")  
    {
      // alert ("Form will be submitted.");
      return true; // Return true to submit the form.
    } 
    else
    {
      alert (alertStr);
      scriptLib.cancelClick(e);
      return false; // Display an alert and return false.
    }
  }
}
scriptLib.addEvent(window,'load',scriptLib.attachSubmitListener,false);
scriptLib.addEvent(window,'load',newPage.initTarget,false);
