var a_fGzpEnbl = 1;
var g_fFcs = 1;

//Copyright (c) 2003-2006 Microsoft Corporation.  All rights reserved.
    function window_onload()
    {
        onld();
        
        if (chkCookies())
        {
			ldCookie('username', 'password');
	             
			var expl1 = document.getElementById('expl1');
			//expl1.style.display = "";
		    
			var lnkHidedSection = document.getElementById('lnkHdSec');
			//lnkHidedSection.style.display = "none";
	    	
			var lnkShowSection = document.getElementById('lnkShwSec');
			//lnkShowSection.style.display = "";
		}
    }

function onld()
{
}

function chkCookies()
{
	// Are cookies enabled?
	//
	var sCN = "cookieTest";

	// Get Date in the future so this will expire
	//
	var dt = new Date();
	dt.setSeconds(dt.getSeconds() + 2);

	document.cookie = sCN + "=1; expires=" + dt.toGMTString();
	var cookiesEnabled = document.cookie.indexOf(sCN + "=") != -1;

	if (cookiesEnabled == false)
	{
		shw(gbid("tblMid2"));
		hd(gbid("tblMid"));
	}
	
	return cookiesEnabled;
}

function ldCookie(un, next)
{
	// Check for username cookie
	//	
	var re = /(^|; )logondata=acc=([0|1])&lgn=([^;]+)(;|$)/;
	var rg = re.exec(document.cookie);
	
	if (rg)
	{
		// Fill in username, set security to private, and restore the "use basic" selection
		//
		
		gbid(un).value = rg[3];
		//gbid(next).focus();
		gbid("rdoPrvt").click();
	}
	else
	{
		// The variable g_fFcs is set to false when the password gains focus,
		// so that we don't accidentally set focus to the username field while
		// the user is typing their password
		//
		if (g_fFcs){
			//gbid(un).focus();
		}
	}
}

function clkExp(o)
{
    switch(o)
    {
        case lnkShwSec:
               hd(lnkShwSec);
               shw(lnkHdSec);
               shw(trPubExp);
               shw(trPrvtExp);
               //lnkHdSec.focus();
               break;
        case lnkHdSec:
                shw(lnkShwSec);
                hd(lnkHdSec);
                hd(trPubExp);
                hd(trPrvtExp);
                //lnkShwSec.focus();
                break;
    }
}

function clkExp2(o)
{
    switch(o)
    {
        case lnkShwSec2:
                hd(lnkShwSec2);
                shw(lnkHdSec2);
                shw(trPrvtExp2);
                //lnkHdSec2.focus();
                break;
        case lnkHdSec2:
                shw(lnkShwSec2);
                hd(lnkHdSec2);
                hd(trPrvtExp2);
                //lnkShwSec2.focus();
                break;
    }
}

function clkExp3(o)
{
    switch(o)
    {
        case lnkShwSec3:
            hd(lnkShwSec3);
            shw(lnkHdSec3);
            shw(trPrvtExp3);
            //lnkHdSec3.focus();
            break;
        case lnkHdSec3:
            shw(lnkShwSec3);
            hd(lnkHdSec3);
            hd(trPrvtExp3);
            //lnkShwSec3.focus();
            break;
    }
}

function clkExp4(o)
{
    switch(o)
    {
        case lnkShwExp4:
            hd(lnkShwExp4);
            shw(lnkHdExp4);
            shw(trPinSysExp);
            shw(trPinUserExp);
            //lnkHdExp4.focus();
            break;
        case lnkHdExp4:
            shw(lnkShwExp4);
            hd(lnkHdExp4);
            hd(trPinSysExp);
            hd(trPinUserExp);
            //lnkShwExp4.focus();
            break;
    }
}

function shw(o)
{
    o.style.display = "";
}

function hd(o)
{
    o.style.display = "none"
}

function clkLgn()
{
	// If security is set to private, add a cookie to persist username and basic setting
	// Cookie format: logondata=acc=<1 or 0>&lgn=<username>
	//
	if (gbid("rdoPrvt").checked)
	{
		// Calculate the expires time for two weeks
		//
		var oD = new Date();
		oD.setTime(oD.getTime() + 2*7*24*60*60*1000);
		var sA = "acc=" + 0;
		var sL = "lgn=" + getUser().value;
		document.cookie = "logondata=" + sA + "&" + sL + "; expires=" + oD.toUTCString();
	}
}

function clkSec()
{
    var rdoPrvt = document.getElementById('rdoPrvt');
    var c = rdoPrvt.checked;
    if (c)
    {
	    trPrvtWrn.style.display = "";
    } else
    {
		trPrvtWrn.style.display = "none";
		// Remove the cookie by expiring it
		//
		var oD = new Date();
		oD.setTime(oD.getTime() - 9999);
		document.cookie = "logondata=; expires=" + oD.toUTCString();
    }
}

function clkBsc()
{
    var chkBsc = document.getElementById('chkBsc');
    if (chkBsc.checked)
    {
        trBscExp.style.display = "";
        chkBsc.value = 1;
    } else {
        trBscExp.style.display = "none";
        chkBsc.value = 0;
    }
}

function clkChpwd()
{
    var chkChpwd = document.getElementById('chpwd');
    if (chkChpwd.checked)
    {
		trChpwdExp.style.display = "";
		chkChpwd.value = "on";
    } else
    {
		trChpwdExp.style.display = "none";
		chkChpwd.value = "";
    }
}

function optClkSec()
{
    var optClk = document.getElementById('optClk');
    var c = optClk.checked;
    var un = document.getElementById('un');
    un.style.display = c ? "" : "none";
}

function clkPin()
{
    var chkPin = document.getElementById('rdoCPinSys');
    var newPin = document.getElementById('newpin');
    var nextPrn = document.getElementById('nextprn');
    if (chkPin.checked)
    {
        newPin.disabled = true;
        nextPrn.disabled = true;
    }
    else
    {
        newPin.disabled = false;
        nextPrn.disabled = false;
    }
}

function clkRtry()
{
	window.location.reload();
}

function gbid(s)
{
	return document.getElementById(s);
}

function getUser()
{
	var un = gbid("userid");
	if (!un)
	{
		return gbid("username");
	}
	return un;
}

function IsIE()
{
	var iVO = navigator.appVersion.indexOf("MSIE ");  // Version offset

	// Check for IE-only property to thwart clients masquerading as IE
	//
	if (iVO != -1 && typeof window.external == "object")
	{
		var iVerT = parseInt(navigator.appVersion.substring(iVO + 5, iVO + 6), 10);

		if (!isNaN(iVerT))
		{
			return true;
		}
	}

	return false;
}

function CallWebMethod(methodType){
	switch(methodType){
		case "select":
			FirmService.GetFirms(FillFirmList,ErrorHandler,TimeOutHandler);
		break;
		case "selectone":
			var select=document.getElementById("Select1");
			var firmid=select.options[select.selectedIndex].value;
			FirmService.GetFirm(firmid,DisplayFirmDetails,ErrorHandler,TimeOutHandler);
		break;
		case "zipsearch":
			if(document.getElementById('Firms')){
				document.getElementById('Firms').innerHTML='<p><img src="../../cssimg/Spinner.gif" alt="" style=" display: inline;" />Retrieving Firm information...</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>';
				var aZip = document.getElementById("Form_Zip_Search").value;
				var bZip = getQueryVariable("Zip_Search");
				var alpha = getQueryVariable("Type");
				if (aZip && document.getElementById('Firms')){
					FirmService.GetFirms(aZip,FillFirmList,ErrorHandler,TimeOutHandler);
				} else if (bZip) {
					var zip = document.getElementById("Form_Zip_Search");
					zip.value = bZip;
					FirmService.GetFirms(bZip,FillFirmList,ErrorHandler,TimeOutHandler);   
				} else if (alpha=="1") {
					FirmService.GetFirms(0,FillFirmListAlphabetically,ErrorHandler,TimeOutHandler);   
				} else {
					result="";
					FillFirmList(result);   
				}
			}
		break;
		case "alphabetical":
 			document.getElementById('Firms').innerHTML='<p><img src="../../cssimg/Spinner.gif" alt="" style=" display: inline;" />Retrieving Firm information...</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>';
			FirmService.GetFirms(0,FillFirmListAlphabetically,ErrorHandler,TimeOutHandler);   
		break;
		case "bystate":
			document.getElementById('Firms').innerHTML='<p><img src="../../cssimg/Spinner.gif" alt="" style=" display: inline;" />Retrieving Firm information...</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>';
			FirmService.GetFirms(0,FillFirmListByState,ErrorHandler,TimeOutHandler);   
		break;
	}
}
	
function FillFirmListByState (result) {
	result = MoveTheToEnd(result);
	result.sort(function(a, b) { 
		if(a.Dba && b.Dba) {
			return a.Dba < b.Dba ? -1 : a.Dba > b.Dba ? 1 : 0;
		} else if(a.Dba && !b.Dba) {
			return a.Dba < b.CompanyName ? -1 : a.Dba > b.CompanyName ? 1 : 0;
		} else if (!a.Dba && b.Dba) {
			return a.CompanyName < b.Dba ? -1 : a.CompanyName > b.Dba ? 1 : 0;
		} else if (!a.Dba && !b.Dba){
			return a.CompanyName < b.CompanyName ? -1 : a.CompanyName > b.CompanyName ? 1 : 0;
		}
	}); 
	result = MoveTheToFront(result);
	result.sort(function(a, b) { 
		return a.State < b.State ? -1 : a.State > b.State ? 1 : 0;
	}); 
	FillFirmList(result, 1);
}

function FillFirmListAlphabetically (result) {
	result = MoveTheToEnd(result);
	result.sort(function(a, b) { 
		if(a.Dba && b.Dba) {
			return a.Dba < b.Dba ? -1 : a.Dba > b.Dba ? 1 : 0;
		} else if(a.Dba && !b.Dba) {
			return a.Dba < b.CompanyName ? -1 : a.Dba > b.CompanyName ? 1 : 0;
		} else if (!a.Dba && b.Dba) {
			return a.CompanyName < b.Dba ? -1 : a.CompanyName > b.Dba ? 1 : 0;
		} else if (!a.Dba && !b.Dba){
			return a.CompanyName < b.CompanyName ? -1 : a.CompanyName > b.CompanyName ? 1 : 0;
		}
	}); 
	result = MoveTheToFront(result);
	FillFirmList(result, 2);
}

function FillFirmList(result, flag){
	var ni = document.getElementById('Firms');
	ni.innerHTML = '';
 	var currentState = '';
 	var currentBusinessNameFirstLetter = '';
	if(result==""){
		ni.innerHTML = "<p>Please select an option on the right to find a Member Firm near you.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>";
	} else if(result.length==1){
		ni.innerHTML = "<p>Sorry, we couldn't find that zip code in our database, please try another.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>";
	} else {
		if(flag==1){
			var QuickJump = document.createElement("div");
			var divIDName = "QuickJump";
			QuickJump.setAttribute("id",divIDName);
			QuickJump.innerHTML="Quick Jump:&nbsp";
			ni.appendChild(QuickJump);

			var QuickJumpSelect = document.createElement('select');
			var divIDName = "QuickJumpSelect";
			QuickJumpSelect.setAttribute("id",divIDName);
			QuickJumpSelect.onchange=function(){myScrollTo(this.value);};
			QuickJump.appendChild(QuickJumpSelect);
		} else if (flag==2) {
			var QuickJump = document.createElement('div');
			var divIDName = 'QuickJump';
			QuickJump.setAttribute('id',divIDName);
			QuickJump.innerHTML="Quick Jump:&nbsp";
			ni.appendChild(QuickJump);
		}

		for(var i=0;i<result.length;i++){
			if(blacklist(result[i].CompanyName)){
			var newdiv = document.createElement('div');
			var divClassName = 'IndividualFirm';
			newdiv.setAttribute("class",divClassName);
			var divIdName = 'Firm'+[i];
			newdiv.setAttribute('id',divIdName);
			if(currentState == result[i].State.trim()) {
			} else {
				if(flag==1){
					newdiv.innerHTML += '<a id="'+StateName(result[i].State.trim())+'" name="'+StateName(result[i].State.trim())+'" ></a><h1 class="State">'+StateName(result[i].State.trim())+'</h1>';
					var QuickJumpOption = document.createElement('option');
					QuickJumpOption.setAttribute('value', StateName(result[i].State.trim()));
					QuickJumpOption.innerHTML = StateName(result[i].State.trim());
					QuickJumpSelect.appendChild(QuickJumpOption);
				}
			}
			var BusinessNameDistance = '';
			if(result[i].Dba){
				BusinessNameDistance = result[i].Dba;
			} else {
				BusinessNameDistance = result[i].CompanyName;
			}
			if(currentBusinessNameFirstLetter == BusinessNameDistance.charAt(0)) {
			} else if(currentBusinessNameFirstLetter == BusinessNameDistance.charAt(4) && BusinessNameDistance.substring(4,0)=='The ') {
			} else {

				if(flag==2){
					if(BusinessNameDistance.charAt(0)==1){
					}else{
						QuickJump.innerHTML+="<a href=javascript:myScrollTo('"+BusinessNameDistance.charAt(0)+"');>"+BusinessNameDistance.charAt(0)+"</a>&nbsp;";
						if(BusinessNameDistance.substring(4,0)=='The '){
							newdiv.innerHTML += '<a id="'+BusinessNameDistance.charAt(4)+'" name="'+BusinessNameDistance.charAt(4)+'" ></a>';
						} else {
							newdiv.innerHTML += '<a id="'+BusinessNameDistance.charAt(0)+'" name="'+BusinessNameDistance.charAt(0)+'" ></a>';
						}
					}
				}
			}
			newdiv.innerHTML += '<h1>'+BusinessNameDistance+'</h1>';
			var contact = '';
			contact += '<h3>';
			contact += result[i].Phone.substring(0,14);
			if(result[i].WebAddress){
				contact += ' / <a href="'+result[i].WebAddress+'" target=_blank">Website</a>';
			}
			contact += ' / <a href="http://maps.google.com/maps?saddr=&daddr='+result[i].Address1+', '+result[i].City+', '+result[i].State+' '+result[i].Zip+'" target=_blank">Map</a>';
			contact += '</h3>';
			newdiv.innerHTML += contact;
			var address = '';
			address += '<p>';
			address += result[i].Address1;
			if(result[i].Address2){
				address += ', '+result[i].Address2;
			}
			if(result[i].Address3){
				address += ', '+result[i].Address3;
			}
			address += '<br />'+result[i].City+', '+result[i].State+' '+result[i].Zip;
			if(result[i].Distance){
				if(flag==1 || flag==2){
				} else {
					address +=  ' ('+numberFormat(result[i].Distance)+' miles away)';
				}
			}
			address += '</p>';
			newdiv.innerHTML += address;
			ni.appendChild(newdiv);
			currentState=result[i].State.trim();
			if(BusinessNameDistance.substring(4,0) == 'The '){
				currentBusinessNameFirstLetter = BusinessNameDistance.charAt(4);
			} else {
				currentBusinessNameFirstLetter = BusinessNameDistance.charAt(0);
			}
		}
		}
	}
	flag=0;
}

function blacklist(firmName) {
	switch(firmName){
		//add firms to this list that should not be shown on website "Find a Firm" 
		case "Legacy Advisors, LLC":
	  		return false;
	  		break;
		// end
		case "MC Insurance Agency Services Holding, LLC":
	  		return false;
	  		break;
		case "Paul L. MacCaskill":
	  		return false;
	  		break;
		default:
	  		return true;
	  }
}

function TimeOutHandler(result){
	alert("Timeout :" + result);
}
function ErrorHandler(result){
	var msg=result.get_exceptionType() + "\r\n";
	msg += result.get_message() + "\r\n";
	msg += result.get_stackTrace();
	alert(msg);
}
function getQueryVariable(variable) {
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
			return pair[1];
		}
	} 
}

function myScrollTo(element){
	var myObj = document.getElementById(element);
	window.scroll(0, myObj.offsetTop);
} 

function focus_on(elem){
	document.getElementById(elem).focus();
}

function numberFormat(nStr){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1))
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	return x1;
}

function MoveTheToFront (result) {
for(var i=0;i<result.length;i++){
	if(result[i].Dba && result[i].Dba.substring(result[i].Dba.length,(result[i].Dba.length-5)) == ', The'){
		result[i].Dba = result[i].Dba.replace(", The","");
		result[i].Dba = "The " + result[i].Dba;
	} 
	if(result[i].CompanyName && result[i].CompanyName.substring(result[i].CompanyName.length,(result[i].CompanyName.length-5)) == ', The'){
		result[i].CompanyName = result[i].CompanyName.replace(", The","");
		result[i].CompanyName = "The " + result[i].CompanyName;
	} 
}	
return result;
}

function MoveTheToEnd (result) {
for(var i=0;i<result.length;i++){
	if(result[i].Dba && result[i].Dba.substring(4,0) == 'The '){
		result[i].Dba = result[i].Dba.replace("The ","");
		result[i].Dba = result[i].Dba + ", The";
	} 
	if(result[i].CompanyName && result[i].CompanyName.substring(4,0) == 'The '){
		result[i].CompanyName = result[i].CompanyName.replace("The ","");
		result[i].CompanyName = result[i].CompanyName + ", The";
	} 
}	
return result;
}		

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
function StateName(stateAbbreviation){
	switch(stateAbbreviation){
		case "AL": return  "Alabama"; break;
		case "AK": return "Alaska"; break;
		case "AZ": return "Arizona"; break;
		case "AR": return "Arkansas"; break;
		case "CA": return "California"; break;
		case "CO": return "Colorado"; break;
		case "CT": return "Connecticut"; break;
		case "DE": return "Delaware"; break;
		case "FL": return "Florida"; break;
		case "GA": return "Georgia"; break;
		case "HI": return "Hawaii"; break;
		case "ID": return "Idaho"; break;
		case "IL": return "Illinois"; break;
		case "IN": return "Indiana"; break;
		case "IA": return "Iowa"; break;
		case "KS": return "Kansas"; break;
		case "KY": return "Kentucky"; break;
		case "LA": return "Louisiana"; break;
		case "ME": return "Maine"; break;
		case "MD": return "Maryland"; break;
		case "MA": return "Massachusetts"; break;
		case "MI": return "Michigan"; break;
		case "MN": return "Minnesota"; break;
		case "MS": return "Mississippi"; break;
		case "MO": return "Missouri"; break;
		case "MT": return "Montana"; break;
		case "NE": return "Nebraska"; break;
		case "NV": return "Nevada"; break;
		case "NH": return "New Hampshire"; break;
		case "NJ": return "New Jersey"; break;
		case "NM": return "New Mexico"; break;
		case "NY": return "New York"; break;
		case "NC": return "North Carolina"; break;
		case "ND": return "North Dakota"; break;
		case "OH": return "Ohio"; break;
		case "OK": return "Oklahoma"; break;
		case "OR": return "Oregon"; break;
		case "PA": return "Pennsylvania"; break;
		case "RI": return "Rhode Island"; break;
		case "SC": return "South Carolina"; break;
		case "SD": return "South Dakota"; break;
		case "TN": return "Tennessee"; break;
		case "TX": return "Texas"; break;
		case "UT": return "Utah"; break;
		case "VT": return "Vermont"; break;
		case "VA": return "Virginia"; break;
		case "WA": return "Washington"; break;
		case "WV": return "West Virginia"; break;
		case "WI": return "Wisconsin"; break;
		case "WY": return "Wyoming"; break;
		case "Ontario": return "Ontario"; break;
	}
}

function emailobs (email) { 
	var string1 = email;
	var string2 = "@";
	var string3 = "mfin.com";
	var string4 = string1 + string2 + string3;
	document.location="mail" + "to:" + string4 +"?subject=M%20Financial%20Website%20Inquiry";
}

function handleSubmit()
    {
        
        //name is required
        if (document.getElementById("txtName").value == "") 
        {
            alert("Name is a required field. Please enter your name and try again.");
            document.getElementById("txtName").focus();
            return false;
        }

        if (document.getElementById("txtE-Mail").value == "")
        {
            alert("Please enter a valid E-Mail address.")
            document.getElementById("txtE-Mail").focus();
            return false;
        }   
        
        document.getElementById("hAction").value = "Clicked";
        document.frmContactUs.submit();
        return true;
    }

$(document).ready(
	function(){
		$("#Show-Login").toggle(
			function(){
				var temp = document.getElementById("Find-Member-Firm-Wrapper");
				if(temp.style.display == "block"){
					$("#Firm-Finder").click();
				}
			$("#Login-Wrapper").slideDown('slow');
		}, function(){
			$("#Login-Wrapper").slideUp('slow');
		}
	);
  
	$("#Firm-Finder").toggle(
		function(){
			var temp = document.getElementById("Login-Wrapper");
			if(temp.style.display == "block"){
				$("#Show-Login").click();
			}
			$("#Find-Member-Firm-Wrapper").slideDown('slow')
		}, function(){
			$("#Find-Member-Firm-Wrapper").slideUp('slow');
		}
	);
	
	window_onload();
	
	CallWebMethod("zipsearch");
});
