function isBlank(str){
  var blankCheck = /^ *$/;
  return blankCheck.test(str);
}

function isEmail(str){
  var reEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
  return reEmail.test(str);
}

function isZip(str) {
  var re = /^\d{5}$/;
  return re.test(str)
}

function validateLogin(obj){
  if(isBlank(obj.txtUserName.value)){
    alert('Username is a required field!');
	obj.txtUserName.focus();
	return false;
  }
  if(isBlank(obj.txtPassword.value)){
    alert('Password is a required field!');
	obj.txtPassword.focus();
	return false;
  }  
  return true;
}

function validateChangePassword(obj){    

  if(isBlank(obj.txtOPassword.value)){
    alert('Current Password is a required field!');
	obj.txtOPassword.focus();
	return false;
  }

  if(isBlank(obj.txtPassword.value)){
    alert('New Password is a required field!');
	obj.txtPassword.focus();
	return false;
  }

  if(obj.txtPassword && obj.txtCPassword){
	if(!isBlank(obj.txtPassword.value) && obj.txtPassword.value!=obj.txtCPassword.value){
		alert('Cannot confirm password');
		obj.txtPassword.value = '';
	    obj.txtCPassword.value = '';
		obj.txtPassword.focus();
		return false;
	}
  }  

  return true;
}

function validateEmail(obj){
  if(isBlank(obj.txtTo.value)){
    alert('"To" is a required field!');
	obj.txtTo.focus();
	return false;
  }

  if(!isBlank(obj.txtTo.value) && !isEmail(obj.txtTo.value)){
    alert('"To" must be a valid email');
	obj.txtTo.focus();
	return false;
  }

  if(!isBlank(obj.txtCC.value) && !isEmail(obj.txtCC.value)){
    alert('"CC" must be a valid email');
	obj.txtCC.focus();
	return false;
  }

  if(isBlank(obj.txtSubject.value)){
    alert('"Subject" is a required field!');
	obj.txtSubject.focus();
	return false;
  }

  return true;
}

function validateMaintCodeDesc(obj){

  if(isBlank(obj.txtCode.value)){
    alert('Code is a required field!');
	obj.txtCode.focus();
	return false;
  }

  if(isBlank(obj.txtDescription.value)){
    alert('Description is a required field!');
	obj.txtDescription.focus();
	return false;
  }

  return true;
}

function validateRegister(obj){
  var reEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

  if(isBlank(obj.txtFirstName.value)){
    alert('First name is a required field!');
	obj.txtFirstName.focus();
	return false;
  }

  if(isBlank(obj.txtLastName.value)){
    alert('Last name is a required field!');
	obj.txtLastName.focus();
	return false;
  }

  if(isBlank(obj.txtUserName.value)){
    alert('Username is a required field!');
	obj.txtUserName.focus();
	return false;
  }

  if(isBlank(obj.txtPassword.value)){
    alert('Password is a required field!');
	obj.txtPassword.focus();
	return false;
  }

  if(obj.txtPassword && obj.txtCPassword){
	if(obj.txtPassword.value!=obj.txtCPassword.value){
	  alert('Cannot confirm password!');
	  obj.txtPassword.value = '';
	  obj.txtCPassword.value = '';
	  obj.txtPassword.focus();
	  return false;
	}
  }

  if(isBlank(obj.txtEmail.value)){
    alert('Email is a required field!');
	obj.txtEmail.focus();
	return false;
  }

  if (!reEmail.test(obj.txtEmail.value)){
    alert("Invalid email address!");
	obj.txtEmail.focus();
	return false;
  }

  return true;
}

function isDateGreater(date1, date2){
  date1Arr= date1.split('/');
  date2Arr= date2.split('/');
  var d1 = new Date(date1Arr[2].substr(3), (date1Arr[0]*1)- 1, date1Arr[1]*1);
  var d2 = new Date(date2Arr[2].substr(3), (date2Arr[0]*1)- 1, date2Arr[1]*1);
  return d1 > d2;
}

function validateSearch(obj){
  if(obj.txtDateSchedFrom.value != '' && obj.txtDateSchedTo.value != ''){
	  if(isDateGreater(obj.txtDateSchedFrom.value, obj.txtDateSchedTo.value)){
		alert('Date Change "From" cannot be later than "To" date!');		
		return false;
	  }
  }

  return true;
}

function openWindow(){
  var w = 900;
  var h= 700;
  var top = (screen.width - w) / 2;
  var left = (screen.height - h) / 2;
  var properties = 'width=' + w + ', height=' + h + ', top=' + top + ', left=' + left + ', screenX=' + top + ', screenY=' + left + ', scrollbars=yes,status=yes';
//  alert(properties);
  newwin = window.open('about:blank', 'newwin', properties);
  newwin.focus();
}

function clearFields(obj){
	for(var i=0; i<obj.length; i++){
	  if(obj.elements[i].type=='text' || obj.elements[i].type=='password'){
		  obj.elements[i].value = '';
	  }
	}
}

function subpop(m, y, d, myfield){
  addWindow = window.open("PopUpCalendar2.asp?Month=" + m + "&Year=" + y + "&myField=" + myfield + "&Day=" + d,"cal","width=350,height=200,resizable=1,status=1,menubar=0,scrollbars=0,fullscreen=0");
  addWindow.focus()
}

var xmlHttp;

function toggleAgentList(bid, flag){ 
	if(flag){
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null){
		  alert ("Your browser does not support AJAX!");
		  return;
		  } 
		var url="admin_loanagents_list.asp?bid=" + bid;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4){ 
			    document.getElementById("td_" + bid).innerHTML = "<a href='#' onclick='toggleAgentList(" + bid + ", false);'>Hide Loan Officers</a>";
				document.getElementById("agents_" + bid).innerHTML = xmlHttp.responseText;
			}
		}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else{
	  document.getElementById("td_" + bid).innerHTML = "<a href='#' onclick='toggleAgentList(" + bid + ", true);'>Show Loan Officers</a>";
	  document.getElementById("agents_" + bid).innerHTML = "";
	}
}

function toggleLeadList(aid, flag){ 
	if(flag){
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null){
		  alert ("Your browser does not support AJAX!");
		  return;
		  } 
		var url="broker_loanagents_list.asp?aid=" + aid;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4){ 
			    document.getElementById("td_" + aid).innerHTML = "<a href='#' onclick='toggleLeadList(" + aid + ", false);'>Hide Leads</a>";
				document.getElementById("leads_" + aid).innerHTML = xmlHttp.responseText;
			}
		}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else{
	  document.getElementById("td_" + aid).innerHTML = "<a href='#' onclick='toggleLeadList(" + aid + ", true);'>Show Leads</a>";
	  document.getElementById("leads_" + aid).innerHTML = "";
	}
}


function stateChanged(bid){ 
  
}

function updateLeadStatus(id, loanStatus, loanStatusList){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="admin_updatelead_status.asp?id=" + id + '&loanstatus=' + loanStatus + '&list=' + loanStatusList;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
		  if(xmlHttp.responseText=="ok"){
			alert('Status update was successful! Press ok to reload the page.');
			if((loanStatus == 'Back To Broker') || (loanStatus == 'Back To Janus')){
			  window.location = 'leads.asp';
			}
			else{
			  window.location.reload(true);
			}
//			toggleTabs('tabHist', id)
		  }
		  else{
		    alert('Status update failed!');
//			alert(xmlHttp.responseText);
		  }
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}


function assignBroker(id, bid){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="admin_updatelead_assign_broker.asp?id=" + id + '&bid=' + bid;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
		  if(xmlHttp.responseText=="ok"){
			alert('Broker assignment was successful!');
			toggleTabs('tabHist', id)
		  }
		  else{
		    alert('Broker assignment failed!');
			//alert(xmlHttp.responseText);
		  }
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}


function assignAgent(id, aid){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="broker_updatelead_assign_agent.asp?id=" + id + '&aid=' + aid;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
		  if(xmlHttp.responseText=="ok"){
			alert('Loan Officer assignment was successful!');
			toggleTabs('tabHist', id)
		  }
		  else{
		    alert('Loan Officer assignment failed!');
		  }
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function validateSched(obj, id){
	if(obj.selSchedAction.selectedIndex == 0){
		alert('Action is a required field!');
		obj.selSchedAction.focus();
		return false;
	}

	if(obj.memSchedDetails.value == ""){
		alert('Details is a required field!');
		obj.memSchedDetails.focus();
		return false;
	}

	addInteraction(id, obj.txtSchedDate.value, obj.selSchedAction.value, obj.memSchedDetails.value);

	obj.selSchedAction.selectedIndex = -1;
	obj.memSchedDetails.value = '';
}

function validateActual(obj, id, lhid){
	if(obj.memSchedDetails.value == ""){
		alert('Details is a required field!');
		obj.memSchedDetails.focus();
		return false;
	}

	updateInteraction(id, lhid, obj.txtSchedDate.value, obj.selSchedAction.value, obj.memSchedDetails.value);

	obj.selSchedAction.selectedIndex = -1;
	obj.memSchedDetails.value = '';
}

function addInteraction(intLeadID, strDate, strAction, strDetails){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="admin_viewlead_interactions_add.asp?id=" + intLeadID + "&sdate=" + strDate + '&saction=' + strAction + '&sdetails=' + strDetails;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
		  if(xmlHttp.responseText=="ok"){
			alert('Add new schedule was successful!');
			toggleTabs('tabSched', intLeadID)
		  }
		  else{
		    alert('Add new schedule failed!');
			//alert(xmlHttp.responseText);
		  }
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function updateInteraction(intLeadID, lhid, strDate, strAction, strDetails){ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="admin_viewlead_interactions_update.asp?id=" + intLeadID + "&lhid=" + lhid + "&sdate=" + strDate + '&saction=' + strAction + '&sdetails=' + strDetails;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
		  if(xmlHttp.responseText=="ok"){
			alert('Update schedule was successful!');
			window.location = 'tasklist.asp';
//			toggleTabs('tabHist', intLeadID)
		  }
		  else{
		    alert('Update schedule failed!');
			//alert(xmlHttp.responseText);
		  }
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function toggleTabs(tabID, leadID){
	document.getElementById('tabHist').className = 'leadHeadLight';
	document.getElementById('tabSched').className = 'leadHeadLight';
	//document.getElementById('tabAll').style.backgroundColor = '#DBEEA8';

	document.getElementById(tabID).className = 'leadHead';

	getInteractions(leadID, tabID)
}

function getInteractions(leadID, tabID){
    xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="admin_viewlead_interactions.asp?id=" + leadID + "&tid=" + tabID;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
			document.getElementById('td_Interactions').innerHTML = xmlHttp.responseText;
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function getEmailTemplate(tdID, obj){
	var ID = obj.options[obj.selectedIndex].value;
	if(ID==""){
		document.getElementById(tdID).innerHTML = "";
		obj.form.txtPresetEmailBody.value = "";
		return;
	}
	else if(ID=="add"){
		window.location = 'mailtemplates.asp';
		return;
	}
    xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="mailtemplates_get_template.asp?id=" + ID;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange= function(){
		if (xmlHttp.readyState==4){ 	
			var origText = xmlHttp.responseText;
			obj.form.txtPresetEmailBody.value = origText;

			origText = '<div style="border: 1px solid #000">' + origText.split('\n').join('<br>') + '</div>';
			document.getElementById(tdID).innerHTML = origText;
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function annotate(memoID, str){
  if(document.getElementById(memoID)){
	document.getElementById(memoID).value += '\n' + str + ' ';
	document.getElementById(memoID).focus();
  }
}

function getLastSelected(obj){
  var currSelectedItems = obj.getAttribute('currSelectedItems');
  var newItems = '';
  var newItem = '';
  var deletedItems = '';
  var newSelected = '';
  if(currSelectedItems==''){
    newItems += ((newItems=='')?'':',') + obj.options[obj.selectedIndex].value;
    newItem = obj.options[obj.selectedIndex].value;
  }
  else{
    var currSelectedItemsArr = currSelectedItems.split(',');
    for(var i=0; i<obj.options.length; i++){
	  if(obj.options[i].selected){
		var temp = ',' + currSelectedItems;
	    if(temp.indexOf(',' + obj.options[i].value)==-1){
		  newItem = obj.options[i].value;
		}
		newItems += ((newItems=='')?'':',') + obj.options[i].value;
	  }
    }
  }

  if(newItems.indexOf(',')==-1 && newItem==''){
	  newItem = newItems;
  }
  obj.setAttribute('currSelectedItems', newItems);
  obj.setAttribute('lastSelected', newItem);
 // alert(obj.getAttribute('currSelectedItems'));
//  alert('last selected *' + obj.getAttribute('lastSelected') + '*');
}

function restoreOrigSelected(obj){
	var lastVal =  ',' + obj.getAttribute('lastVal');
	for(var i=0; i<obj.length; i++){
	  obj.options[i].selected = lastVal.indexOf(',' + obj.options[i].value) != -1;
	}
}

function GetXmlHttpObject(){
  var xmlHttp=null;
  try{
	// Firefox, Opera 8.0+, Safari
	xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	// Internet Explorer
	try
	{
	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	}
	return xmlHttp;
}