// JavaScript Document

function sigup()
{
	try
	{
		var status = validation();				
		if(status == true)
		{			
			var userName = document.getElementById('eMail').value;
			document.getElementById('msg').innerHTML = "";
			var result=function(response) 
			{                     
				try
				{
					if(response == 'Available')
					{
						sigup_user()
					}
					else
					{
						document.getElementById('eMail').focus();
						document.getElementById('msg').innerHTML="E - Mail Id Alredy Exist";
					}
				}
				catch(err){app.raiseError('sigup:result',err)}
			}
		}
		var request = "/a/isUserAvailable?userName="+userName;
		app.ajaxGet(request,result);		
	}catch(err){app.raiseError('sigup',err)}
}

function validation()
{
	try
	{
		var val_userType = document.getElementById('userType').selectedIndex;
		if(val_userType == 0)
		{
			document.getElementById('userType').focus();
			document.getElementById('msg').innerHTML = "\"I am a\" is mandatory";
			return false;
		}
		
		var val_name = document.getElementById('name').value;
		if(val_name.length == 0)
		{
			document.getElementById('name').focus();
			document.getElementById('msg').innerHTML = "\"Name\" is mandatory";
			return false;
		}
		
		
		var val_eMail = document.getElementById('eMail').value;
		if(val_eMail.length == 0)
		{
			document.getElementById('eMail').focus();
			document.getElementById('msg').innerHTML = "\"Email Id\" is mandatory";
			return false;
		}
		
		else if (echeck(val_eMail)==false)
		{
			document.getElementById('eMail').focus();
			return false;
		}
		
		var passwd = document.getElementById('passwd').value;
		if(passwd.length == 0)
		{
			document.getElementById('passwd').focus();
			document.getElementById('msg').innerHTML = "\"Password\"  is mandatory";
			return false;
		}				
		
		var confirmPassWord = document.getElementById('confirmPassWord').value;
		if(confirmPassWord.length == 0)
		{
			document.getElementById('confirmPassWord').focus();
			document.getElementById('msg').innerHTML = "\"Confirm PassWord\"  is mandatory";
			return false;
		}
		if(passwd != confirmPassWord)
		{
			document.getElementById('confirmPassWord').focus();
			document.getElementById('msg').innerHTML = "\"Password\" and \"Confirm PassWord\" must be same";
			return false;
		}
		var val_country = document.getElementById('country').selectedIndex;
		if(val_country == 0)
		{
			document.getElementById('country').focus();
			document.getElementById('msg').innerHTML = "\"Country\" is mandatory";
			return false;
		}
		if( document.getElementById('terms')){
			var val_condition = document.getElementById('terms').checked;
			if(val_condition == false)
			{
				document.getElementById('terms').focus();
				document.getElementById('msg').innerHTML = "Agree Terms and Conditions";
				return false;
			}
		}
		return true;
		}catch(err){app.raiseError('validation',err)}
		return false;
}

function echeck(str) 
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		 document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		 return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		 document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		 return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		 document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		 return false;
	 }
	
	 if (str.indexOf(" ")!=-1){
		 document.getElementById('msg').innerHTML = "Invalid E-mail ID";
		 return false;
	 }

	 return true;					
}

function sigup_user()
{
	var result=function(response) 
	{                     
		try
		{
			var data = eval('(' + response + ')');
			if(data.error){
				app.raiseError('sigup_user:result',data.error)
			}else{
				eval(data.js);
			}
		}catch(err){app.raiseError('sigup_user:result',err)}
	}
	try
	{
		var val_userType = document.getElementById('userType').value;
		var val_name = document.getElementById('name').value;		
		var user = document.getElementById('eMail').value;		
		var passwd = hexMD5(document.getElementById('passwd').value);		
		var val_country = document.getElementById('country').value;
		//document.getElementById('bodyDiv').innerHTML = "Signing up, Please Wait...";	
		document.getElementById('msg').innerHTML = "Signing up, Please Wait...";	
		document.getElementById('createaccount').disabled = true;
		var request = "sigup_user?usr="+user+"&psw="+passwd+"&userType="+val_userType+"&name="+val_name+"&mail_id="+user+"&country="+val_country;
		app.ajaxGet(request,result);			
		
	}catch(err){app.raiseError('sigup_user',err)}
}

function isUserAvailable()
{
	try
	{
		var userName = document.getElementById('user_name').value;
		if(userName.length == 0)
		{
			document.getElementById('user_name').focus();
			document.getElementById('avail').innerHTML = 'Please Enter your User Name';
		}
		else
		{		
			var result=function(response) 
			{                     
				try
				{
					document.getElementById('avail').innerHTML = response;
				}catch(err){app.raiseError('isUserAvailable:result',err)}
			}	
			var request = "/a/isUserAvailable?userName="+userName;
			app.ajaxGet(request,result);
		}
	}catch(err){app.raiseError('isUserAvailable',err)}
}

var getCountry = function()
{
	var result=function(response) 
	{                     
		try {	
			pushSelect(el,response,defalutValue);
		}
		catch(err) { app.raiseError('getCountry',err); }
	}
	try {
		var el = document.getElementById('country');
		var defalutValue = '';
		var request = "/a/getCountry";
		app.ajaxGet(request,result);
	}
	catch(err) { app.raiseError('getCountry',err); }
}

var pushSelect = function(el, list, defalutValue)
{	
	var lines = list.split("\n");	
	var opts = el.options;
	opts.length = lines.length-1;
	for(i=0;i<lines.length;i++) {
		var line = lines[i];
		var opt = line.split("\t");		
		if(opt.length == 2) {
			opts[i].text = opt[1];
			opts[i].value = opt[0];
			if(defalutValue && opt[0] == defalutValue){	
				opts[i].selected = true;
			}
		}		
	}
}

function addEvent(doc,key,escapekey)
{
	try
	{
		if(document.addEventListener) doc.addEventListener(key,escapekey,null);
		else if(document.attachEvent) doc.attachEvent('on'+key,escapekey);
		else doc['on'+key]=escapekey; 
	}catch(err){app.raiseError('addEvent',err)}
}
function catchEscape(e)
{ 	
	try
	{
		 e= (window.event)? window.event: e;
		 if(e.keyCode==13)
		 { 
			sigup();
		 }
		 return true;
	}catch(err){app.raiseError('catchEscape',err)}
}
function startcatching()
{
	try
	{
		addEvent(document,'keydown',catchEscape);
	}catch(err){app.raiseError('startcatching',err)}
}


var onCountrySelect = function(state_id, city_id)
{
	try	{
		var country_id = document.getElementById('country').value;		
		var el = document.getElementById('state');
		while(el.hasChildNodes()){
			el.removeChild(el.childNodes[0])
		}
		document.getElementById('state').options[0] = new Option("loading", "0");
		document.getElementById('state').style.background = '#EBEBEB';
		
		document.getElementById('city').options[0].text = 'Loading';
		document.getElementById('city').style.background = '#EBEBEB';
		getStates(el, country_id, state_id, city_id);
	}
	catch(err) { app.raiseError('onCountrySelect',err); }
}

var getStates = function(el,country_id,state_id, city_id)
{
	var result=function(response) 
	{                     
		try {	
			
			document.getElementById('state').style.background = '';
			pushSelect(el,response,state_id);
			onStateSelect(city_id);	
		}
		catch(err) { app.raiseError('getStates',err); }
	}
	try {
		var request = "/a/getStates?country_id="+country_id;
		app.ajaxGet(request,result);
	}
	catch(err) { app.raiseError('getStates',err); }
}

var pushSelect = function(el,list,defalutValue)
{	
	var result = function(response)
	{
		try {
			if(response.length) {
				app.msg(response);
			}
			else {
				document.getElementById('msg').innerHTML = "Available"
			}		
		}
		catch(err) { }
	}	
	var lines = list.split("\n");	
	var opts = el.options;
	opts.length = lines.length-1;
	for(i=0;i<lines.length;i++) {
		var line = lines[i];
		var opt = line.split("\t");		
		if(opt.length == 2) {
			opts[i].text = opt[1];
			opts[i].value = opt[0];
			if(defalutValue && opt[0] == defalutValue){	
				opts[i].selected = true;
			}
		}		
	}
}

var onStateSelect = function(city_id)
{
	var state_id = document.getElementById('state').value;
	var el = document.getElementById('city');
	while(el.hasChildNodes()){
			el.removeChild(el.childNodes[0])
		}
	document.getElementById('city').options[0] = new Option("loading", "0");
	document.getElementById('city').style.background = '#EBEBEB';
	getCities(el,state_id,city_id);	
}

var getCities = function(el,state_id,city_id)
{
	var result=function(response) 
	{                     
		try {	
			pushSelect(el,response,city_id);
			document.getElementById('city').style.background = '';
		}
		catch(err) { app.raiseError('getCities',err); }
	}
	try	{
		var request = "/a/getCities?state_id="+state_id;
		app.ajaxGet(request,result);
	}
	catch(err) { app.raiseError('getCities',err); }
}

function instituteSignup()
{
	try
	{
		var status = instituteValidation();				
		if(status == true)
		{			
			var userName = document.getElementById('adminEmail').value;
			document.getElementById('msg').innerHTML = "";
			var result=function(response) 
			{                     
				try
				{
					if(response == 'Available')
					{
						sigup_institute()
					}
					else
					{
						document.getElementById('adminEmail').focus();
						document.getElementById('msg').innerHTML="E - Mail Id Alredy Exist";
					}
				}
				catch(err){app.raiseError('instituteSignup:result',err)}
			}
		}
		var request = "/a/isUserAvailable?userName="+userName;
		app.ajaxGet(request,result);		
	}catch(err){app.raiseError('instituteSignup',err)}
}

function sigup_institute()
{
	var result=function(response) 
	{                     
		try
		{
			var data = eval('(' + response + ')');
			if(data.error){
				app.raiseError('sigup_institute:result',data.error)
			}else{
				eval(data.js);
			}
		}catch(err){app.raiseError('sigup_institute:result',err)}
	}
	try
	{
		var val_userType = document.getElementById('userType').value;
		var val_instituteName = document.getElementById('instiName').value;		
		var val_adminName = document.getElementById('instiAdminName').value;			
		var user = document.getElementById('adminEmail').value;		
		var passwd = hexMD5(document.getElementById('passwd').value);		
		var val_country = document.getElementById('country').value;
		var val_state = document.getElementById('state').value;
		var val_city = document.getElementById('city').value;		
		document.getElementById('msg').innerHTML = "Signing up, Please Wait...";	
		document.getElementById('createaccount').disabled = true;
		var request = "sigup_institute?usr="+user+"&psw="+passwd+"&userType="+val_userType+"&instituteName="+val_instituteName+"&adminName="+val_adminName+"&mail_id="+user+"&country="+val_country+"&state="+val_state+"&city="+val_city;
		app.ajaxGet(request,result);
		
	}catch(err){app.raiseError('sigup_institute',err)}
}

function instituteValidation()
{
	try
	{
		var val_userType = document.getElementById('userType').selectedIndex;
		if(val_userType == 0)
		{
			document.getElementById('userType').focus();
			document.getElementById('msg').innerHTML = "\"I am a\" is mandatory";
			return false;
		}
		
		var val_name = document.getElementById('instiName').value;
		if(val_name.length == 0)
		{
			document.getElementById('instiName').focus();
			document.getElementById('msg').innerHTML = "\"Institute Name\" is mandatory";
			return false;
		}
		
		var val_name = document.getElementById('instiAdminName').value;
		if(val_name.length == 0)
		{
			document.getElementById('instiAdminName').focus();
			document.getElementById('msg').innerHTML = "\"Admin Name\" is mandatory";
			return false;
		}
		
		
		var val_eMail = document.getElementById('adminEmail').value;
		if(val_eMail.length == 0)
		{
			document.getElementById('adminEmail').focus();
			document.getElementById('msg').innerHTML = "\"Admin Email Id\" is mandatory";
			return false;
		}
		
		else if (echeck(val_eMail)==false)
		{
			document.getElementById('adminEmail').focus();
			return false;
		}
		
		var passwd = document.getElementById('passwd').value;
		if(passwd.length == 0)
		{
			document.getElementById('passwd').focus();
			document.getElementById('msg').innerHTML = "\"Password\"  is mandatory";
			return false;
		}				
		
		var confirmPassWord = document.getElementById('confirmPassWord').value;
		if(confirmPassWord.length == 0)
		{
			document.getElementById('confirmPassWord').focus();
			document.getElementById('msg').innerHTML = "\"Confirm PassWord\"  is mandatory";
			return false;
		}
		if(passwd != confirmPassWord)
		{
			document.getElementById('confirmPassWord').focus();
			document.getElementById('msg').innerHTML = "\"Password\" and \"Confirm PassWord\" must be same";
			return false;
		}
		var val_country = document.getElementById('country').selectedIndex;
		if(val_country == 0)
		{
			document.getElementById('country').focus();
			document.getElementById('msg').innerHTML = "\"Country\" is mandatory";
			return false;
		}
		var val_state = document.getElementById('state').selectedIndex;
		if(val_country == 0)
		{
			document.getElementById('state').focus();
			document.getElementById('msg').innerHTML = "\"State\" is mandatory";
			return false;
		}
		var val_city = document.getElementById('city').selectedIndex;
		if(val_city == 0)
		{
			document.getElementById('city').focus();
			document.getElementById('msg').innerHTML = "\"City\" is mandatory";
			return false;
		}
		if( document.getElementById('terms')){
			var val_condition = document.getElementById('terms').checked;
			if(val_condition == false)
			{
				document.getElementById('terms').focus();
				document.getElementById('msg').innerHTML = "Agree Terms and Conditions";
				return false;
			}
		}
		return true;
		}catch(err){app.raiseError('instituteValidation',err)}
		return false;
}
