

var queryStr=null;
var xmlhttpObj=null;
var responseFromServer = null;

function isEmail(Ml)
{
  if(!Ml){return true}
  if(Ml.indexOf("@")<=0 || Ml.indexOf("@")==Ml.length-1 || Ml.indexOf(".")<=0 || Ml.indexOf(".")==Ml.length-1 || Ml.indexOf("..")!=-1 || Ml.indexOf(" ")!=-1 || Ml.indexOf("  ")!=-1 || Ml.indexOf("@@")!=-1 || Ml.indexOf("@.")!=-1 || Ml.indexOf(".@")!=-1)
  {
      return false
  }
  else
  {
      return true
  }
}


function trimAll(sString) 
{
 while (sString.substring(0,1) == ' ')
 {
  sString = sString.substring(1, sString.length);
 }
 while (sString.substring(sString.length-1, sString.length) == ' ')
 {
  sString = sString.substring(0,sString.length-1);
 }
 return sString;
} 

/*******************************************************************************************
* Function Name: ajaxDetect
* Objective: Detect the existence of AJAX Support in the browser : basic building block of any AJAX application.
* In Parameters: None
* Return Values: the xml Http Object that will be used by every script that will be using AJAX to handle some request.
* Comment : Handles most of the broswers available today (2007)
* Things to do in future : None.
*******************************************************************************************/

/*************** Strat of ajaxDetect method ***********************************************/
function ajaxDetect()
     {
      try
      {
       // Firefox, Opera 8.0+, Safari
       xmlhttpObj=new XMLHttpRequest();  
     //  alert("Firefox, Opera 8.0+, Safari"); 
      }
      catch (e)
      {
      // Internet Explorer version less than 7
       try
       {
        xmlhttpObj=new ActiveXObject("Msxml2.XMLHTTP");
       // alert("Internet Explorer version less than 7"); 
       }
       catch (e)
       {
        // Internet Explorer version 7 onwards...
        try
        {
          xmlhttpObj=new ActiveXObject("Microsoft.XMLHTTP");
         // alert("Internet Explorer version 7");
         }
         catch (e)
         {
          alert("Your browser does not support AJAX!");
          xmlhttpObj=null;
         }
        }
       }
       return xmlhttpObj;
      }
/*************** End of ajaxDetect method ************************************************/     
          
function validateLogin(rollnum,password)
{
 if(!rollnum || !password)
 {
  alert("Please enter both the rollnumber and the password !");
  document.loginFrm.username.focus();
 }
 else if(isNaN(rollnum))
 {
  alert("Roll Number must be numeric. Please enter it again!");
  document.loginFrm.username.select();
  document.loginFrm.username.focus();
 }
 else
 {
  var pageToCall = "ajax/loginValidateAjax.php?rollnum="+rollnum+"&password="+password;
  //alert(pageToCall);
  sendData(3,pageToCall,null);
 }
}

function validateLogout(firstName)
{
 var pageToCall = "ajax/loginValidateAjax.php?logout=true&firstName="+firstName;
 //alert(pageToCall);
 if(window.confirm("Hi "+firstName+" ! Are You surely want to logout?"))
 sendData(3,pageToCall,null);
}

function validateDataDuringReg(frmName)
{
 if(frmName.rollno.value!='')
 {
  frmName.stud_name.value='';
  frmName.stud_name.disabled=true;
  frmName.degree.disabled=true;
  frmName.passyear.disabled=true;
 }
 else
 {
  frmName.stud_name.disabled=false;
  frmName.degree.disabled=false;
  frmName.passyear.disabled=false;
 }
}

function validateRollDuringReg(frmName)
{
 if(!frmName.rollno.value && !frmName.stud_name.value)
 {
  alert("Please provide us your college roll number, or if you don't remember it, try entering your full name,degree and pass out year ");
 }
 else if(frmName.rollno.value && frmName.stud_name.value)
 {
  alert("Please provide EITHER your college roll number, OR the combination of full name,degree and pass out year! \n Don't provide both the combination!");
  document.form1.stud_name.select();
  document.form1.stud_name.focus();
 }
 else if(frmName.rollno.value && isNaN(frmName.rollno.value))
 {
  alert("Please enter a valid roll number. It must be numeric.");
 }
 else
 {
  if(frmName.rollno.value) {
  var pageToCall = "ajax/regValidateAjax.php?rollCheck="+frmName.rollno.value;
  }
  else {
  var pageToCall = "ajax/regValidateAjax.php?studNameCheck="+frmName.stud_name.value+"&degreeCheck="+frmName.degree.options[frmName.degree.selectedIndex].value+"&passYearCheck="+frmName.passyear.options[frmName.passyear.selectedIndex].value;
  }

  //alert(pageToCall);
  sendData(4,pageToCall,null);
 }
}


function checkForgotPass(rollnum)
{
 if(!rollnum || isNaN(rollnum))
 {
  alert("Please enter a valid roll number. It must be numeric.");
 //document.form1.rollno.focus();
 }
 else
 {
 var pageToCall = "ajax/passwordAjax.php?rollCheck="+rollnum;
  //alert(pageToCall);
  sendData(5,pageToCall,null);
 }
}


function changePassword(oldpass,newpass,newpass1)
{
 if(!oldpass || oldpass.length<6)
 {
  alert("Please enter your OLD password. It must be at least 6 characters.");
 }
 else if(!newpass || newpass.length<6)
 {
  alert("Please enter your NEW password. It must be at least 6 characters.");
 }
 else if(newpass!=newpass1)
 {
  alert("Your new passwords do not match. Pleae enter them again.");
 }
 else
 {
 var pageToCall = "ajax/passwordAjax.php?passCheck="+oldpass+"&newpass="+newpass;
  //alert(pageToCall);
  sendData(6,pageToCall,null);
 }
}


function submitSimpleSearch(mode,firstData)
{
 if(mode==1 && !firstData)
 {
  alert("Please enter firstname to conitnue!");
 }
 else
 {
  if(mode==1)
  var pageToCall = "ajax/simpleSearch.php?firstName="+firstData;
  else if(mode==2)
  var pageToCall = "ajax/simpleSearch.php?alphabet="+firstData;

  sendData(7,pageToCall,null);
 }
}

function ajaxFileUpload()
	{
		//starting setting some animation when the ajax starts and completes
		$("#studentPicUpload")
		.ajaxStart(function(){
			$(this).show();
		})
		.ajaxComplete(function(){
			$(this).hide();
		});
		//starting setting loading message when the ajax starts and completes
		$("#loading")
		.ajaxStart(function(){
			$(this).show();
		})
		.ajaxComplete(function(){
			$(this).hide();
		});
		/*
			prepareing ajax file upload
			url: the url of script file handling the uploaded files
                        fileElementId: the file type of input element id and it will be the index of  $_FILES Array()
			dataType: it support json, xml
			secureuri:use secure protocol
			success: call back function when the ajax complete
			error: callback function when the ajax failed
			
                */
		$.ajaxFileUpload
		(
			{
				url:'ajax/picUpload.php', 
				secureuri:false,
				fileElementId:'fileToUpload',
				dataType: 'json',
				success: function (data, status)
				{
					if(typeof(data.error) != 'undefined')
					{
						if(data.error != '')
						{
							alert(data.error);
						}else
						{
						    alert("Upload Successful!");
							document.getElementById("studentPic").innerHTML = data.msg;
						}
					}
				},
				error: function (data, status, e)
				{
					alert(e);
				}
			}
		)
		return false;
	}

function deletePicUploaded(fName,picPath)
{
  if(window.confirm("Hi "+fName+"! Are your surely want to delete your picture?")==true)
  {
  	var pageToCall = "ajax/picUpload.php?picPath="+picPath;
  	sendData(8,pageToCall,null);
  }
}


function updateEMAIL(roll,curEmail)
{
	form_id = document.editMailFrm;
	  if(trimAll(form_id.username.value) == curEmail)
		{
			alert("Old and new email addresses are identical. \n\n Please enter a new valid e-mail if you really want to continue!");
			form_id.username.value = trimAll(form_id.username.value);
			form_id.username.focus();
		}
		else if (form_id.username.value.indexOf('@',0)==-1 || form_id.username.value.indexOf('.',0)==-1)
        {
            alert(" \n Invalid E-Mail address.");
            form_id.username.focus();
        }
		else if (form_id.username.value.toLowerCase().indexOf('www.',0) != -1)
    	{
	    	alert("Email addresses do not contain 'www.'. Please remove this and resubmit.");
            form_id.username.focus();
	    }
	    else if (!isEmail(form_id.username.value))
	        	{
	    	    	alert("Email address is NOT valid. Please enter a valid email and resubmit.");
	                form_id.username.focus();
	    }
    	else if (form_id.username.value.indexOf("'",0)!= -1 )
        {
            alert("\nPlease do not enter a ( ' ) in your userid");
            form_id.username.focus();
        }
   		else
		{
	 		var pageToCall = "ajax/sent-change-mail.php?rollnum="+roll+"&email="+form_id.username.value;
  	        sendData(9,pageToCall,null);
		}
}
	

function resendEmail(purpose,roll)
{
			var pageToCall = "ajax/resendEmailAjax.php?purpose="+purpose+"&rollnum="+roll;  	        
			sendData(10,pageToCall,null);
}

	
function sendData(methodToCall,pageToCall,parameterList)
{
 xmlhttpObj = ajaxDetect();
 if(xmlhttpObj!=null)
 {
  queryStr = setqueryString(pageToCall);
  if(methodToCall>=20)
  {
   xmlhttpObj.open("POST",queryStr,true);
   xmlhttpObj.setRequestHeader("Content-Type", "multipart/form-data");
   xmlhttpObj.setRequestHeader("Content-length", parameterList.length);
   xmlhttpObj.setRequestHeader("Connection", "close");
  }
  else
  {
   xmlhttpObj.open("GET",queryStr,true);
  }
 
  switch(methodToCall)
  {
   case 3:
   xmlhttpObj.onreadystatechange=studentLoginValidate;
   break;
   case 4:
   xmlhttpObj.onreadystatechange=studentRollCheck;
   break;
   case 5:
   xmlhttpObj.onreadystatechange=studentForgotPass;
   break;
   case 6:
   xmlhttpObj.onreadystatechange=studentChangePass;
   break;
   case 7:
   xmlhttpObj.onreadystatechange=studentSimpleSearch;
   break; 
   case 8:
   xmlhttpObj.onreadystatechange=deletePic;
   break; 
   case 9:
   xmlhttpObj.onreadystatechange=editEmailAction;
   break; 
   case 10:
   xmlhttpObj.onreadystatechange=resendEmailAction;
   break; 
   default:
   alert("Error in request - information not available - please contact administrator!");
  }
  xmlhttpObj.send(parameterList);
 } 
}

function dataForLoading(spanID)
{
 if(xmlhttpObj.readyState == 0) { document.getElementById(spanID).innerHTML = "<img align='absmiddle' src='img/black_busy.gif' border=0> <BR> Sending Request..."; } 
 if(xmlhttpObj.readyState == 1) { document.getElementById(spanID).innerHTML = "<img align='absmiddle' src='img/mozilla_blu.gif' border=0> Loading.. "; } 
 if(xmlhttpObj.readyState == 2) { document.getElementById(spanID).innerHTML = "<img align='absmiddle' src='img/mozilla_blu.gif' border=0> Loading...."; } 
 if(xmlhttpObj.readyState == 3) { document.getElementById(spanID).innerHTML = "<img align='absmiddle' src='img/mozilla_blu.gif' border=0> Loading......"; }
}

function setqueryString(pageToCall)
{
queryStr=pageToCall;
return queryStr;
}


function studentLoginValidate()
{
 dataForLoading('studentLoginValidate');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("studentLoginValidate").innerHTML = responseFromServer;
  responseFromServer = null;
  //document.getElementById("IDemailEdit").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}


function studentRollCheck()
{
 dataForLoading('RollNumRegPortion');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("RollNumRegPortion").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}


function studentForgotPass()
{
 dataForLoading('RollNumFPPortion');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("RollNumFPPortion").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}


function studentChangePass()
{
 dataForLoading('ChangePassPortion');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("ChangePassPortion").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}


function studentSimpleSearch()
{
 dataForLoading('simpleStudentSearch');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("simpleStudentSearch").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}

function deletePic()
{
 dataForLoading('studentPic');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("studentPic").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}


function editEmailAction()
{
 dataForLoading('IDemailEdit');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("IDemailEdit").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}

function resendEmailAction()
{
 dataForLoading('resendEM');
 
 if(xmlhttpObj.readyState==4 || xmlhttpObj.readyState=="complete")
 {
  if(xmlhttpObj.status==200) {
  responseFromServer = xmlhttpObj.responseText;
  responseFromServer = trimAll(responseFromServer);
  
  document.getElementById("resendEM").innerHTML = responseFromServer;
  }
  else if(xmlhttpObj.status==404) {
  alert("Error with Called page - information not available - please contact administrator!");
  }
 }
}