//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("It's time to upgrade Your Browser don't you think?");
	}
}
//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();
var charCode =null;

//Starts the AJAX request.
function searchSuggest()
 {
   	if (searchReq.readyState == 4 || searchReq.readyState == 0)
  	{
		var strCase = escape(document.getElementById('txtSearch').value);
  	    var str=strCase.toUpperCase();
    	var strTrim=trim(str);
		   if(((strTrim.length)>0) && (isCompanyName()))
      	   {
		   	searchReq.open("POST", 'cpUserRegisterSub.jsp?cfoCompName=' + str, true);
			searchReq.onreadystatechange = newHandleSearchSuggest;

			  searchReq.send(null);
		   }
		   else
		  {
			      document.getElementById('search_suggest').innerHTML = '';
				  document.getElementById('search_suggest').style.border="0px solid #000000";
				  document.getElementById('search_suggest').style.width="0px";
          }
	 }
 }
function newHandleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var evntCd=charCode;
		var ss = document.getElementById('search_suggest');

        var str = searchReq.responseText.split("\n");
		if((str.length)>1){
			ss.innerHTML = '';
		    //ss.style.border="1px solid #000000";
		} else {
			ss.innerHTML = '';
		   // ss.style.border="0px solid #000000";
		}

		ss.style.width="10px";
		//ss.style.color="#DD6E00";

		//var suggest = "<table border=\"0\" width=\"100%\">";
		 var suggest = "<div><table border=\"0\" width=\"420\" "+
				"style=\"border-right-width: 1px;border-right-style: Solid;border-right-color: #C0C0C0;"+
				"border-bottom-width: 1px;border-bottom-style: Solid;border-bottom-color: #C0C0C0;"+
				"border-left-width: 1px;border-left-style: Solid;border-left-color: #C0C0C0;"+
		                "\">";
		for(i=0; i <= str.length - 1; i++){
			var arr = str[i].split("+");
		  	var company = arr[0];
			var ticker = arr[1];
			var exchange = arr[2];


			if(company!='' && ticker!=undefined && exchange!=undefined){
				var strFinal = company + ticker + exchange;
				suggest += "<div><tr "+
				"onmouseover='javascript:suggestOver(this);' "+
				"onmouseout='javascript:suggestOut(this);' "+
				"onclick='javascript:newSetSearch(this.innerHTML);'>"+
				"<td width=\"60%\" background=\"#FFFFFF\" nowrap style=\"color: #DD6E00;padding: 2px 6px 2px 6px; font-family: Tahoma; font-size: 8pt\">" + company + "</td>"+
				"<td width=\"20%\" background=\"#FFFFFF\" nowrap style=\"color: #DD6E00;padding: 2px 6px 2px 6px;\">" + ticker + "</td>"+
				"<td width=\"20%\" background=\"#FFFFFF\" nowrap style=\"color: #C0C0C0;padding: 2px 6px 2px 6px;\">" + exchange + "</td>"+
				"</tr>";
			}
  		 }
  		 suggest = suggest + "</table></div>";
  		 ss.innerHTML += suggest;
	}
}

//Click function
function newSetSearch123(value) {
	var arr = value.split("</TD>");
	var company = arr[0];
	var ticker = arr[1];

	var indexCompany = company.lastIndexOf('>');
	company = company.substring(indexCompany+1, company.length);
	var indexTicker = ticker.lastIndexOf('>');
	ticker = ticker.substring(indexTicker+1, ticker.length);

	document.getElementById('txtSearch').value = company;
	document.getElementById('txtSearch').value = document.getElementById('txtSearch').value.replace("&amp;","&");
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.border="0px solid #000000";
	document.getElementById('search_suggest').style.width="0px";
}
function newSetSearch(value) {
	var arr = value.split("</TD>");
	var test = value.substring(0,4);
	if(test.indexOf('<td') != -1){
		//alert("I am Mozilla or Apple Safari");
		arr = value.split("</td>");
	}else{
		//alert("I am IE or Opera");
		arr = value.split("</TD>");
	}
	var company = arr[0];
	var indexCompany = company.lastIndexOf('>');
	company = company.substring(indexCompany+1, company.length);

	document.getElementById('txtSearch').value = company;
	document.getElementById('txtSearch').value = document.getElementById('txtSearch').value.replace("&amp;","&");
	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.border="0px solid #000000";
	document.getElementById('search_suggest').style.width="0px";
}
function searchClear()
{
	var myVal1 = document.getElementById('search_suggest').innerHTML;
	//alert(myVal1 + "\n\n" + myVal2);
	if (myVal1 != "" && !myVal1.substring(0,4) == "<div")
	{
		document.getElementById('txtSearch').value = myVal1;
	}

    document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.border="0px solid #000000";
	document.getElementById('search_suggest').style.width="0px";



}


//Click function
function setSearch(value) {
	//document.getElementById('txtSearch').value = value;

	document.getElementById('txtSearch').value = value;

	document.getElementById('txtSearch').value = document.getElementById('txtSearch').value.replace("&amp;","&");

	document.getElementById('search_suggest').innerHTML = '';
	document.getElementById('search_suggest').style.border="0px solid #000000";
	document.getElementById('search_suggest').style.width="0px";
}


//Mouse over function
function suggestOver(div_value) {
 // alert("sug over called");
 div_value.className = 'suggest_link_over';
}


//Mouse out function
function suggestOut(div_value) {
  //  alert("sug out called");
	div_value.className = 'suggest_link';
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {

	  var evntCd=charCode;

		var ss = document.getElementById('search_suggest')
        var str = searchReq.responseText.split("\n");

       // var str = searchReq.responseText;

      if((str.length)>1)
      {
         ss.innerHTML = '';
		     ss.style.border="1px solid #000000";
		     ss.style.width="170px";
      }
      else
      {
         ss.innerHTML = '';
		     ss.style.border="0px solid #000000";
		     ss.style.width="170px";
      }

			for(i=0; i <= str.length - 1; i++)
				{
					//Build our element string.  This is cleaner using the DOM, but
					//IE doesn't support dynamically added attributes.

 					var suggest = "<div onmouseover='javascript:suggestOver(this);'";
					suggest += "onmouseout='javascript:suggestOut(this);'";
					suggest += "onclick='javascript:setSearch(this.innerHTML);'";
					suggest += "class='suggest_link'>" + str[i] + "</div>";
					ss.innerHTML += suggest;
				  // alert(ss.innerHTML);
  		 }

	}
}

function isCompanyName()
{
	var strTrim = document.forms[1].txtcompanyName.value;
	var str=trim(strTrim);
	if (str != "")
	{
	var ch = str.substring(0,1);
	//if ( ch == " " )
	if (( str.substring(0,1)=="$" || str.substring(0,1)=="%" || str.substring(0,1)=="_" || str.substring(0,1)=="^" || str.substring(0,1)=="<" || str.substring(0,1)==">"))
		{
			alert("Special Characters Are Not Allowed In your Company Name.");
			document.forms[1].txtcompanyName.value="";
			document.forms[1].txtcompanyName.focus();
			return false;
		}

	else{
	return true;
	}
	return true;

	}
	else{
	return true;
	}
}
//ends



// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function trim(str)
{	if(str != undefined){
      if(str.charAt(0) == " "){
       str = trim(str.substring(1));
	  }
	  if (str.charAt(str.length-1) == " "){
	      str = trim(str.substring(0,str.length-1));
	  }
	  }
	  return str;
}
function setFocus(){
document.forms[0].userlogin.focus();
}
function addUser(){
     var yesNo = true;
     yesNo = validate();
     if(yesNo){
   		 document.forms[1].emailreq.value="TRUE";
         document.forms[1].actionRequired.value="AddUser";
		 document.forms[1].submit();
	}
}

 function updateUser(){
     document.forms[1].emailreq.value="TRUE";
     document.forms[1].actionRequired.value="UpdateUser";
	 document.forms[1].submit();
}

function validate(){

		if((document.forms[1].txtSalutation[0].checked=="") && (document.forms[1].txtSalutation[1].checked=="") && (document.forms[1].txtSalutation[2].checked=="")){
		     alert("Please select salutation");
		     return false;
		}

        var fname = trim(document.forms[1].firstName.value);
    	fnamepat=new RegExp("^[a-zA-Z0-9,._ ]*$");
		if(fname==""){
			alert("Please enter first name");
			document.forms[1].firstName.focus();
			return false;
		}
		else{
	           if(fname.match(fnamepat) == null){
	             alert("Please enter valid First Name.\n");
	             return false;
	          }
	        }
		if(fname.length > 20){
			alert("First Name Is Too Large");
			document.forms[1].firstName.value="";
			document.forms[1].firstName.focus();
			return false;
		}

        var lname = trim(document.forms[1].lastName.value);
		lnamepat=new RegExp("^[a-zA-Z0-9,._ ]*$");
		if(lname==""){
			alert("Please enter Last Name");
			document.forms[1].lastName.focus();
			return false;
		}
		else{
	           if(lname.match(lnamepat) == null)
	          {
	           alert("Please enter valid Last Name.\n");
	           return false;
	          }
	        }
		if(lname.length > 20){
			alert("Last Name Is Too Large");
			document.forms[1].lastName.value="";
			document.forms[1].lastName.focus();
			return false;
		}

        var title = trim(document.forms[1].txtTitle.value);
		 if(title==""){
		     alert("Please enter job title");
		  	 document.forms[1].txtTitle.focus();
  		     return false;
	    }
	     var compName = trim(document.forms[1].txtComapany.value);
        if(compName==""){
            alert("Please enter company name");
			document.forms[1].txtComapany.focus();
			return false;
        }

       	var optionIndustry = document.forms[1].txtIndustry.options[document.forms[1].txtIndustry.selectedIndex].value;
        if(optionIndustry==""){
            alert("Please select industry");
			document.forms[1].txtIndustry.focus();
			return false;
        }


        var emailStr = document.forms[1].emailId.value;
		if(emailStr==""){
			alert("Please Enter Email");
			document.forms[1].emailId.focus();
			return false;
		}
		else{
			    /**if(emailStr.length > 30){
					alert("Email Is Too Large");
					document.forms[1].emailId.value="";
					document.forms[1].emailId.focus();
					return false;
				}**/
				var checkTLD=1;
				var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
				var emailPat=/^(.+)@(.+)$/;
				var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
				var validChars="\[^\\s" + specialChars + "\]";
				var quotedUser="(\"[^\"]*\")";
				var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
				var atom=validChars + '+';
				var word="(" + atom + "|" + quotedUser + ")";
				var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
				var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
				var matchArray=emailStr.match(emailPat);
				if (matchArray==null) {
					alert("Email address seems incorrect (check @ and .'s)");
					document.forms[1].emailId.value="";
					document.forms[1].emailId.focus();
				return false;
			  }
				var user=matchArray[1];
				var domain=matchArray[2];
				for (i=0; i<user.length; i++) {
					if (user.charCodeAt(i)>127) {
					alert("Ths username contains invalid characters.");
					return false;
					}
				}
				for (i=0; i<domain.length; i++) {
					if (domain.charCodeAt(i)>127) {
					alert("Ths domain name contains invalid characters.");
					return false;
					}
				}
				// See if "user" is valid
				if (user.match(userPat)==null) {
				// user is not valid
					alert("The username doesn't seem to be valid.");
					return false;
				}
				/* if the e-mail address is at an IP address (as opposed to a symbolic host name) make sure the IP address is valid. */
				var IPArray=domain.match(ipDomainPat);
				if (IPArray!=null) {
				// this is an IP address
					for (var i=1;i<=4;i++) {
						if (IPArray[i]>255) {
							alert("Destination IP address is invalid!");
							return false;
					   }
					}
				}
				// Domain is symbolic name.  Check if it's valid.
	 			var atomPat=new RegExp("^" + atom + "$");
				var domArr=domain.split(".");
				var len=domArr.length;
				for (i=0;i<len;i++) {
					if (domArr[i].search(atomPat)==-1) {
					alert("The domain name does not seem to be valid.");
					return false;
					}
				}
				if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
					alert("The address must end in a well-known domain or two letter " + "country.");
					return false;
				}
				// Make sure there's a host name preceding the domain.
				if (len<2) {
					alert("This address is missing a hostname!");
					return false;
				}
			}
			var password= document.forms[1].txtPassword.value;
			if(password==""){
			   alert("Please enter Password");
			   document.forms[1].txtPassword.focus();
			   return false;
			}
          var  phoneNO=trim(document.forms[1].txtPhone.value);
		 if(phoneNO==""){
			            alert("Please Enter your Phone Number");
						document.forms[1].txtPhone.focus();
						return false;
		   }else{
					if(checkInternationalPhone(document.forms[1].txtPhone.value)==false){
						alert("Please Enter a Valid Phone Number")
						document.forms[1].txtPhone.value=""
						document.forms[1].txtPhone.focus();
						return false
			        }
           }

			var optionCountry = document.forms[1].txtCountry.options[document.forms[1].txtCountry.selectedIndex].value;
	        if(optionCountry==""){
	            alert("Please select country");
				document.forms[1].txtCountry.focus();
				return false;
	        }

		return true;
}

function addCompany(){
 document.forms[1].submit();
}

function fillTextArea(){
var myTxtSrcValue = document.getElementById('txtSearch').value;
var myTxtDestValue = document.getElementsByName('cfo-textarea')[0].value;
	//document.getElementsByName('cfo-textarea')[0].value =  document.getElementById('txtSearch').innerHTML;
	if(myTxtDestValue != null && myTxtDestValue != undefined){

		//check count
		var count = 0;
		myTxtDestValue = document.getElementsByName('cfo-textarea')[0].value;
		if(myTxtDestValue.indexOf('\n') != -1){
			count = 1;
			for(i = 0; i < myTxtDestValue.length; i++){
				if(myTxtDestValue.charAt(i) == '\n'){
					count = count + 1;
				}
			}
		}

		//check if no same entry
		var compExist = false;
		if(myTxtDestValue.indexOf(myTxtSrcValue) != -1 && myTxtSrcValue != ''){
			alert("Company already exists in the list...");
			compExist = true;
		}



		if(count < 10 && !compExist){
			if(myTxtDestValue == ''){
				document.getElementsByName('cfo-textarea')[0].value =  myTxtSrcValue;
			}else{
				document.getElementsByName('cfo-textarea')[0].value =  myTxtDestValue + "\n" + myTxtSrcValue;
			}
		}else if(count >= 10){
			alert("You can add upto 10 companies max...");
		}
	}


document.getElementsByName('txtcompanyName')[0].value='';

}



function validateLogin(e){

		var eKey =(e.keyCode ? e.keyCode : e.which);


 		var ulogin="";
		ulogin = trim(document.forms[0].userlogin.value);
		if(ulogin==""){
			alert("Please enter User Id");
			document.forms[0].userlogin.focus();
			return false;
		}

         var userPass="";
		userPass = trim(document.forms[0].userpwd.value);
		if(userPass=="" && eKey==13){
			alert("Please enter Password");
			document.forms[0].userpwd.focus();
			return false;
		}

		document.forms[0].actionReq.value="LOGINUSER";

        if(eKey==13){
        document.forms[0].submit();
        }

}

function validateLogin1(){
 		var ulogin="";
		ulogin = trim(document.forms[0].userlogin.value);
		if(ulogin==""){
			alert("Please enter login id");
			document.forms[0].userlogin.focus();
			return false;
		}

         var userPass="";
		userPass = trim(document.forms[0].userpwd.value);
		if(userPass==""){
			alert("Please enter password");
			document.forms[0].userpwd.focus();
			return false;
		}

		document.forms[0].actionReq.value="LOGINUSER";

        document.forms[0].submit();
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

