var rowIdxAddMore = 23;
var num_invite=3;

function noErrorinForm(){
var x=document.getElementById("register_formId");
for (var i=0;i<x.length;i++)
  {
    var elem = x.elements[i];
    if(elem.type=='submit' || elem.type =='reset') continue;
    var errID = elem.name+'_errID';
    var y = document.getElementById(errID);
  if(y)
    y.innerHTML="";
    elem.style.backgroundColor="white";
}
}

function validateForm(MyForm){

noErrorinForm();
errorCol="#FF9933";
var requiredFields = new Array("salutation","fname","lname","email","department","batch_year","city","country","captcha");
var errorFields =  new Array();
updateErrorFields(errorFields);

var x=document.getElementById("register_formId");
var res=true;

for (var i=0;i<x.length;i++)
  {
   if(ArrayContains(x.elements[i].name,requiredFields)){
    if(x.elements[i].value.length<=0){
      errorinForm(x.elements[i],errorFields,'none');
      res = false;
    }
   }
  }

/* Check E-Mail Format*/
if( MyForm.email.value.length>0){
  if(!EmailOK(MyForm.email.value)){
   errorinForm(MyForm.email,errorFields,'email_inv');
   res=false;
  }
}

/* Check First Name Format*/
if(MyForm.fname.value.length>0){
 if(!NameOK(MyForm.fname.value)){
  errorinForm(MyForm.fname,errorFields,'fname_inv');
  res=false;
 }
}

/* Check Last Name Format*/
if(MyForm.lname.value.length>0){
 if(!NameOK(MyForm.lname.value)){
  errorinForm(MyForm.lname,errorFields,'lname_inv');
  res=false;
 }
}

if (!res){
 var elem = document.getElementById("form_errID");
 elem.innerHTML="Errors in Form. Please correct the highlighted entries"
 }
if(res==false) return false;
else XMLrequest(errorFields);
return false;
}

function doSubmitforIE(){
var x = document.getElementById('register_formId');
x.action = "validate_login2.php";
x.onSubmit="return true";
x.submit();
return;
}

function XMLrequest(errorFields){
 if(!window.XMLHttpRequest){
 doSubmitforIE();
 return;
}
 var RequestString="validate_login.php";
 var req2;
 req2 = new XMLHttpRequest();
 req2.onreadystatechange = function(){
  if (req2.readyState == 4) {
   if (req2.status == 200) {

       noErrorinForm();
       var response = req2.responseXML;
//      var response = req2.responseText;
//	alert(response);
       var status = response.getElementsByTagName("STATUS")[0].firstChild.nodeValue;
       if(status=="error") 
        generateServerErrorOnClient(response,errorFields);
       else{ 
        displaySuccess();
       }
      }
	else displayServerConnectError(req2.status);
     }
    }
 req2.open("POST", RequestString, true);
 req2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
 req2.send(getFormPostData());
 } 
 

function getFormPostData(){
var data="";
var x=document.getElementById("register_formId");
for (var i=0;i<x.length;i++)
    data= data+x.elements[i].name+'='+x.elements[i].value+'&';
return data;
}

function generateServerErrorOnClient(response,errorFields){
 var empty = response.getElementsByTagName("EMPTY");
 for(i=0;i<empty.length;i++){
  var elem = document.getElementsByName(empty[i].firstChild.nodeValue)[0];
  errorinForm(elem,errorFields,'none');
 } 
 var invalid = response.getElementsByTagName("INVALID");
  for(i=0;i<invalid.length;i++){
   var elem = document.getElementsByName(invalid[i].firstChild.nodeValue)[0];
   errorinForm(elem,errorFields,invalid[i].firstChild.nodeValue+'_inv');
 }
 var dup = response.getElementsByTagName("DUPLICATE")[0];
 if(dup)  
   errorinForm(document.getElementsByName('email')[0],errorFields,'email_dup');

 var captchaErr = response.getElementsByTagName("CAPTCHAERROR")[0];
 if(captchaErr)  
   errorinForm(document.getElementsByName('captcha')[0],errorFields,'captcha_ne');

 var elem = document.getElementById("form_errID");
 elem.innerHTML="Errors in Form. Please correct the highlighted entries"
 
 reloadCaptcha(); 

}

function reloadCaptcha(){
var frame = document.getElementById('captchaFrameID').src="captcha.php";
}

function displaySuccess(response){
var sal = document.getElementsByName('salutation')[0].value;
var lname = document.getElementsByName('lname')[0].value;
var x=document.getElementById("register_formId");
x.innerHTML="";
var y = document.getElementById('content');
y.className="prop"
y.innerHTML="<br><br>Thank You<b> "+ sal +" "+ lname + "</b><br>Your Details have been added"; 

}

function displayServerConnectError(req){

 var elem = document.getElementById("form_errID");
 elem.innerHTML="COULD NOT CONNECT TO SERVER. PLEASE TRY AFTER SOME TIME."
}


function updateErrorFields(errorFields){
errorFields['lname']="Last Name not Entered";
errorFields['fname']="First Name not Entered";
errorFields['email']="E-Mail not Entered";
errorFields['department']="Department not Selected";
errorFields['batch_year']="Graduating Year not Selected";
errorFields['city']="City not Entered";
errorFields['country']="Country not Selected";
errorFields['captcha']="Image Characters not Entered";
errorFields['salutation']="Salutation not Selected";
errorFields['email_inv']="Invalid E-Mail Address";
errorFields['fname_inv']="Invalid First Name, It can contain only characters, dot and underscore";
errorFields['lname_inv']="Invalid Last Name, It can contain only characters, dot and underscore";
errorFields['email_dup']="Email already in use";
errorFields['captcha_ne']="Letters on Image Did not Match";

}

function errorinForm(elem,errorFields,type){
var errID = elem.name+'_errID';
var y = document.getElementById(errID);
if(type == 'none')
y.innerHTML=errorFields[elem.name];
else
y.innerHTML=errorFields[type];
elem.style.backgroundColor=errorCol;
}


function EmailOK(elem){
var emailPattern = /^(.*)(@)(.*)(\.)(.*)$/;
if(elem.search(emailPattern)==-1)
  return false;
return true;
 
}

function NameOK(elem){
var NamePattern=/^([a-zA-Z])([a-zA-Z0-9_|\.]*)$/;
if(elem.search(NamePattern)==-1)
 return false;
return true;
}


function  ArrayContains(elem, mArray){
 for(i=0;i<mArray.length;i++)
  if(elem==mArray[i]) return true;
 return false;
}

function AddMoreFriends(){
  var tbl=document.getElementById('RegisterTableID');
  for(var i=0;i<3;i++){
   var row = tbl.insertRow(rowIdxAddMore);
   rowIdxAddMore++;
  var y=row.insertCell(0)
  var z=row.insertCell(1)
  y.innerHTML='<input type ="text" name="inv_name'+num_invite+'"  size=30>';
  z.innerHTML='<input type ="text" name="inv_email'+num_invite+'"  size=30>';
  num_invite++;
 }
}

function checkOther(){
var elem =  document.getElementById('cur_occupationID');
var option = elem.options[elem.selectedIndex].value;
var tbl=document.getElementById('RegisterTableID');
if(option == 'other' && !document.getElementById('other_occID')){
 var row1 = tbl.insertRow(rowIdxAddMore+4)
 var row2 = tbl.insertRow(rowIdxAddMore+5)
 var y=row1.insertCell(0);
 var z=row1.insertCell(1);
 y.innerHTML="";
 z.innerHTML="If Other, Please specify";

 y=row2.insertCell(0);
 z=row2.insertCell(1);
 z.innerHTML='<input type ="text" name="other_cur_occupation" id="other_occID" name="other_occ" size=30>';
 }

if(option != 'other' && document.getElementById('other_occID')){
 tbl.deleteRow(rowIdxAddMore+4);
 tbl.deleteRow(rowIdxAddMore+4);
}  

}


/* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Created by: Dustin Diaz :: http://www.dustindiaz.com/ */




function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}
  
