/*
formvalidate.js
form validation routines for worldgovegandays.org
Author: Mark Middleton
October 2007
*/


function id2elem(id) {
	if (typeof(id) != 'string') {
		return id;
	}
	if (document.getElementById) {
		id = document.getElementById(id);
	} else if (document.all) {
		id=document.all[id];
	} else {
		id = null;
	}
	return id;
}

function highlight_field(f,fieldname,s){
    if (s=='on'){
       eval(fieldname+'.style.border="1px solid #f00";');
		}else{
			 eval(fieldname+'.style.border="2px inset #808080";');
		}
}

function trim(str,character) 
{  
    if(str.charAt(0) == character){  
        str = trim(str.substring(1));
    }
    if (str.charAt(str.length-1) == character){  
        str = trim(str.substring(0,str.length-1));
    }
    return str;
}

function textCounter(field, maxlimit) {
    fieldElem = id2elem(field);
    if (fieldElem.value.length > maxlimit) 
        fieldElem.value = fieldElem.value.substring(0, maxlimit);
}

function checkForm(f){
      var f="x";
      firstname = id2elem('firstname');
      lastname = id2elem('lastname');
      email = id2elem('email');
      friends = id2elem('friends');
      error = id2elem('form_error');
      
      var AtSym = email.value.indexOf('@');
	 	  var dot = email.value.lastIndexOf('.');
		  var space = email.value.indexOf(' ');
		  var eLength = email.value.length;
		  
      //first name---------------------------
      if (firstname.value == ''){
				    highlight_field(f,'firstname','on');
            error.style.display = "block";
            error.innerHTML = "Please enter your first name.";
            firstname.focus();
						return false;
			}else{
				    highlight_field(f,'firstname','off');
            error.style.display = "none";
			}
		  //last name---------------------------
      if (lastname.value == ''){
				    highlight_field(f,'lastname','on');
						error.style.display = "block";
            error.innerHTML = "Please enter your last name.";
            lastname.focus();
						return false;
			}else{
			     highlight_field(f,'lastname','off');
				    	
			}
		  
      //email---------------------------
		  if((email.value=='')||     
				   (AtSym < 1 ) ||   
    	     (dot <= AtSym +1 ) || 
	         (dot == eLength - 1 ) ||  
	         (space  != -1)) 
					 {
				       highlight_field(f,'email','on');
               error.style.display = "block";
               error.innerHTML = "Please enter a valid email address";
               email.focus();
               return false;
			}else{
				    highlight_field(f,'email','off');
            error.style.display = "none";
			}
        
			//friends---------------------------
      var friendVal = friends.value;
      //get rid of trailing commas and spaces.
      friendVal = trim(friendVal," ");
      friendVal = trim(friendVal,",");
      friendVal = trim(friendVal," ");
      var friendArr = friendVal.split(",");
      //make sure all friend addresses are formatted properly
      if(friendArr[0] == ""){ // not filled in, highlight field
          highlight_field(f,'friends','on');
          error.style.display = "block";
          error.innerHTML = "Please enter at least one address to send to.";
          friends.focus();
          return false;
      }else{
          //check each address
          for(i=0;i<friendArr.length;i++){
              address = friendArr[i];
              address = trim(address," ");
              AtSym = address.indexOf('@');
	 	          dot = address.lastIndexOf('.');
		          space = address.indexOf(' ');
		          eLength = address.length;
              if((address == '')||     
				          (AtSym < 1 ) ||   
    	            (dot <= AtSym +1 ) || 
	                (dot == eLength - 1 ) ||  
	                (space  != -1)) 
					        {
                  highlight_field(f,'friends','on');
                  error.style.display = "block";
                  error.innerHTML = "Please make sure all of your friend addresses are valid.";
                  friends.focus();
                  return false;
              }else{
                  highlight_field(f,'friends','off');
                  error.style.display = "none";
              }    
          }
          highlight_field(f,'friends','off');
          error.style.display = "none";
      }
      
      formEl = id2elem('ecard1');
      formEl.submit();
}