﻿/*--------------------------------------------------------------------
    * File Name             :   validatorRF.js
    * Created on            : 	February 02 2009
    * Created by            : 	Senthil Kumar L
    * Description           : 	Validate the Renewal form and send mail functionality
    * Modification History  : 
* --------------------------------------------------------------------
*/


         function validateForm() {
          
          var errmsg = '';
          var errmsgfull = '';
          var str = '';
          var d,e, q, j, m, f, b, i, di, typ, y, z, nmv, nmv2, u, chkd, startcount;
          
          if (document.getElementById && document.createElement) {
            f = document.getElementById('formerrormessage');
            if (f.hasChildNodes()) {
              for (i = 0; i < f.childNodes.length; i++) {
                f.removeChild(f.firstChild);
              }
            }
            di = document.createElement('div'); 
            di.className = 'formerrormessage';
            for(i=0;i<document.forms.length;i++){

            e = document.forms[i].elements;
            for (j = 0; j < e.length; j++) {
              if(e[j].className == 'required') {
                e[j].style.backgroundColor='white';
                m = e[j].nodeName;
                errmsg = '';
                switch  (m) {
                  case 'INPUT':
			        typ = e[j].getAttribute('type');
                    if ((typ == 'radio') || (typ == 'checkbox')) {
                      chkd = 'no';
                      u = 0;
                      startcount = j;
                      nmv = e[j].getAttribute('name');
                      nmv2 = e[j+1].getAttribute('name');               
                      while (nmv == nmv2) {
                        u = u + 1;
                        nmv = e[j].getAttribute('name');
                        nmv2 = e[j+1].getAttribute('name');              
                        if (e[j].checked) {
                          chkd = 'yes';
                        } 
                        if (nmv == nmv2) {
                          j = j + 1;
                        }
                      }  
                      if (u > 0) {
                        for (y = 0; y < u; y++) {
                          if (chkd == 'no') {
                            e[startcount].style.backgroundColor='#ffff66';
                          }
                          else {
                            e[startcount].style.backgroundColor='transparent';
                          }
                          startcount = startcount + 1;
                        }
                        if (chkd == 'no') {
                          errmsg += 'Please select an option from the ' + nmv + ' ' + typ + ' buttons.';
                          errmsgfull += 'i,';              
                        }                
                      }
                    }
                    else {
                      if (e[j].value == '') {
                        errmsg = 'Please enter text in the ' + e[j].getAttribute('name') + ' field.';
                        e[j].style.backgroundColor='#ffff66';
                        errmsgfull += 'i,';
                      }
                      else {
                        if (e[j].getAttribute('name') == 'Email') {
                          if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(e[j].value)) { }
                          else {
                            errmsg += 'Please enter a valid email address in the Email field.';
                            e[j].style.backgroundColor='#ffff66';
                            errmsgfull += 'i,';
                          }
                        }
                      }            
                    }
                    break;
                  case 'TEXTAREA':
                    if (e[j].value == '') {
                      errmsg = 'Please enter text in the ' + e[j].getAttribute('name') + ' textfield.';
                      e[j].style.backgroundColor='#ffff66';
                      errmsgfull += 't,';
                    }
                    break;
                  case 'SELECT':
                    if (e[j].options[e[j].selectedIndex].value == '') {
                      errmsg = 'Please select an option from the ' + e[j].getAttribute('name') + ' drop down list.';
                      e[j].style.backgroundColor='#ffff66';
                      errmsgfull += 's,';
                    }
                    break;
                  default:
                    break;
                }
                if (errmsg!='') { 
                  str = document.createTextNode(errmsg);
                  b = document.createElement('br');
                  di.appendChild(str);
                  di.appendChild(b);       
                }       
              }
            }
            }
            if (errmsgfull!='') { 
              f.appendChild(di);
              return false;
            }
            else {
                    return true;
               }
          }  
          else {
                  return false;
          }
        } 
       

        //Renewal Form submission       
                  
        function BuildAndSendMessageRF()
        {	    
	        var oForm=document.forms[0];
	        if(!validateForm())	
	        {	         
	         return false;
	        }
	        else
	        {
	          var emailTo = "cs-factsrenewals@wolterskluwer.com";
			  var emailFrom = "cs-factsrenewals@wolterskluwer.com";
			  var emailCC = "senthilkumar.lakshma@wolterskluwer.com";
			  var emailSubject = "Product Renewal Request";  
	          
	          var message = '<table><tr><td>The following person has requested for Product Renewal :</td></tr>';
              message += '<tr><td>Email Address: ' + Trim(oForm.tbEmail.value) + '</td></tr>';
              message += '<tr><td>Telephone: ' + oForm.tbPhone.value + '</td></tr>';
              message += '<tr><td>Fax: ' + Trim(oForm.tbFax.value) + '</td></tr>';
              message += '<tr><td>Name: ' + oForm.tbName.value + '</td></tr>';
              message += '<tr><td>Product name to renew : ' + oForm.tbProductName.value + '</td></tr>';
              message += '<tr><td>Account number: ' + Trim(oForm.tbAccountNo.value) + '</td></tr>';
              message += '<tr><td>Preferred method of contact: ' + oForm.tbMethodOfContact.value + '</td></tr>';
              message += '<tr><td>Preferred time to contact (by phone): ' + Trim(oForm.tbPrefTime.value)+ '</td></tr>';          
              message +='</table>';      
		
		      createFormNode('fromAddr','fromAddr','hidden',emailFrom,'input',oForm);
		      createFormNode('toAddr','toAddr','hidden',emailTo,'input',oForm);
              createFormNode('ccAddr','ccAddr','hidden',emailCC,'input',oForm);
              createFormNode('subject','subject','hidden',emailSubject,'input',oForm);
              createFormNode('message','message','hidden',message,'input',oForm);
              createFormNode('desitinationUrl','desitinationUrl','hidden',"product-renewal-request-Confirmation.aspx",'input',oForm);
		   
	          document.forms[0].action='SendEmail.aspx';
              document.forms[0].method='post';
              document.forms[0].submit();
            }
        }
            
        function createFormNode(name,id,type,value,elementTag,form)
        {          
           Node = document.createElement(elementTag); 
           Node.name = name;
           Node.type = type;
           Node.id = id;
           Node.value = value;
           form.appendChild(Node);
        }

       //funtion used to trim the given string
        function Trim(txtVal) {

	        var i;
	        var newText;
	        newText="";
	        for(i=txtVal.length;i>0;i--)
		        if(txtVal.charAt(i-1)==" ")	newText= "";
		        else {
			        newText=txtVal.substring(0,i);
			        break;
		        }
	        txtVal=newText;
	        newText=""
	        for(i=0;i<=txtVal.length-1;i++)
		        if(txtVal.charAt(i)==" ") newText= "";
		        else {
			        newText=txtVal.substring(i,txtVal.length);
			        break;
		        }
	        return newText;
        }
         

