//vars set in page source:
//	storeRoot, siteDirectory, server_check
//	hasPremiumAccess, hasLimitedAccess, isLoggedIn (only true when user is signed in without IP Auth)

var theURL = escape(document.URL);
var promo= siteDirectory; //only change the exceptions
var homeURL = "/jsp/"+siteDirectory+"/index.jsp";
var siteName = "";

//save the user's state
var isSignedIn = false; //So we know when to let the form submit occur; must be a global variable
var displaySignIn = true;
var useremail = "";
useremail = get_cookie("useremail");

submitInactive = new Image;
submitInactive.src = "/img/universal/signin_submit_inactive.gif";
submitActive = new Image;
submitActive.src = "/img/universal/signin_submit_hover.gif";

/**************************/
/**** Start Global Nav ****/
/**************************/

if (siteDirectory=="ca") { 
	siteName="Cal Law"; 
	
} else if (siteDirectory=="cc09" || siteDirectory=="cc"){
	siteName="Corporate Counsel";
	promo="cc";
	
} else if (siteDirectory=="dailybusinessreview"){
	siteName="the Daily Business Review";
	
} else if (siteDirectory=="lawtechnologynews"){
	siteName="Law Technology News";	
	promo="IMLT";
	
		
} else if (siteDirectory=="mlj"){
	siteName="Minority Law Journal";
	displaySignIn = false;
	
} else if (siteDirectory=="nj"){
	siteName="New Jersey Law Journal";
	
} else if (siteDirectory=="nlj"){
	siteName="National Law Journal";
	promo="nl";
	
} else if (siteDirectory=="nylj") { 
	siteName="New York Law Journal";
	promo="ny";
	
} else if (siteDirectory=="law_firm_inc"){
	siteName="Law Firm Inc";
	promo="lfi";
	
} else if (siteDirectory=="nylj/nylawyer"){
	siteName="New York Lawyer";
	promo="ny";
	
} else if (siteDirectory=="pa" || siteDirectory=="pa_09"){
	siteName="The Legal Intelligencer";
	promo="pa";
	
} else if (siteDirectory=="tal"){
	if(theURL.search(/digestTAL/)>=0 || theURL.search(/litigation_daily/)>=0){
		siteName="The Am Law Litigation Daily";
		promo="lit";
		homeURL = "/jsp/tal/litigation_daily.jsp";
	}else{
		siteName="AmericanLawyer.com";
	}
	
} else if (siteDirectory=="nylitigator"){
	siteName="SmartLitigator.com";
	promo="li";
} else if (siteDirectory=="tx"){
	siteName="Texas Lawyer";
} else if (siteDirectory=="law"){
	siteName="Law.com";
	promo="lc";
	displaySignIn = false;
} else if (siteDirectory=="scm"){
	siteName="the U.S. Supreme Court Monitor";
	promo="USSupreme";
	displaySignIn = false;
}else if (siteDirectory=="iplawandbusiness"){
	siteName="I.P. Law and Business";
	promo="iplb";
	displaySignIn = false;
}
function globalNav() {
	if (!document.getElementById) return null;
	globalNav.display(siteDirectory);
	if(displaySignIn){
		globalNav.showSignIn(siteDirectory);
	}
	return true;
}//function globalNav(pub)

globalNav.display=function(siteDirectory){
	if(siteDirectory == "nylj/nylawyer"){
		siteDirectory = "law";
	}	
	
	/* Write global nav links */
	document.write("<ul id='globallinks'>");
	document.write("<li><a href='http://www.law.com'>Law.com Home</a></li>");
	document.write("<li><a href='http://www.law.com/newswire/'>Newswire</a></li>");
	document.write("<li><a href='http://www.lawjobs.com'>LawJobs</a></li>");
	document.write("<li><a href='http://www.clecenter.com'>CLE Center</a></li>");
	document.write("<li><a href='http://www.lawcatalog.com/default.cfm?affil=236722'>LawCatalog</a></li>");
	document.write("<li><a href='http://www.law.com/service/site_map.shtml'>Our Sites</a></li>");
	document.write("<li><a href='http://www.law.com/jsp/law/advertiseOpp.jsp?site="+siteDirectory+"'>Advertise</a></li>");
	document.write("</ul>");
}//GlobalNav.display

/* Check the cookie for user state */
function get_cookie ( cookie_name){
	var results = document.cookie.match ( cookie_name+ '=(.*?)(;|$)' );
	if ( results )
		return ( unescape ( results[1] ) );
	else
		return null;
}
globalNav.showSignIn=function(siteDirectory){
	
	var site_limited = promo+":LIMITED";
	var subscribe_page = 'https://'+storeRoot+'/Registration/Default.aspx?promoCode='+promo+'&source=' + theURL;

	useremail = get_cookie ("useremail");
	var products = get_cookie ("prodlist");
	var hasAccess=new Boolean()

	var userAccount = get_cookie ("userAccount");
	var userAccess = get_cookie ("userAccess");
	
/* signed in if they have a userAccount cookie */
		document.write("<div id='loginbar'>");
	if (userAccount!=null) {
		document.write("<a href='javascript:signOut()'>Sign Out</a>");
	} else {
		document.write("<a style=\"cursor: pointer;\" onclick=\"addForm();\" class=\"overlayMore\">SIGN IN</a>")
	}
			document.write("</div>"); // End loginbar div
		
}//globalNav.showSignIn=function(siteDirectory)

globalNav.showSignInDeprecated=function(siteDirectory){
	
	var site_limited = promo+":LIMITED";
	var subscribe_page = 'https://'+storeRoot+'/Registration/Default.aspx?promoCode='+promo+'&source=' + theURL;

	useremail = get_cookie ("useremail");
	var products = get_cookie ("prodlist");
	var hasAccess=new Boolean()

	var userAccount = get_cookie ("userAccount");
	var userAccess = get_cookie ("userAccess");
	
	
	if (promo!="") {
		/* Write the login state and links */
		document.write("<div id='loginbar'>");
		if (hasPremiumAccess == true  && isLoggedIn == true) { //user does not have ip auth
			document.write("<a href='javascript:signOut()'>Sign Out</a>");
		} else if(hasPremiumAccess == true  && isLoggedIn == false) {//user has ip auth, let them sign in again
			document.write("<a style=\"cursor: pointer;\" onclick=\"addForm();\" class=\"overlayMore\">SIGN IN</a>");
		} else if ((hasLimitedAccess == true))  { 
			if (siteDirectory!="nylj"){
				document.write('<a href="' + subscribe_page + '">Upgrade</a> | ');
			}
			if(isLoggedIn == true){//user does not have ip auth
				document.write("<a href='javascript:signOut()'>Sign Out</a><br>");
			}else{
				document.write("<a style=\"cursor: pointer;\" onclick=\"addForm();\" class=\"overlayMore\">SIGN IN</a>")
			}

		} else if ((hasLimitedAccess == false) && (isLoggedIn == true))  {
			document.write("<a href='"+subscribe_page+"'>Subscribe</a> | <a href='javascript:signOut()'>Sign Out</a><br>")
		
		} else {
			document.write("<a style=\"cursor: pointer;\" onclick=\"addForm();\" class=\"overlayMore\">SIGN IN</a>");
		}
		document.write("</div>"); // End loginbar div
	}//is a registered site
		
}//globalNav.showSignIn=function(siteDirectory)

function signOut()
{
    document.location = "http://" + storeRoot + '/Registration/Logout.aspx?source=' + theURL;
}

/********************************************/
/**** End Global Nav, Start Registration ****/
/********************************************/

  
//Sign in functions

var signInTop = '<div id="lightbox_box">';
signInTop += '<form name="Form1" method="POST" action="http://'+storeRoot+'/Registration/Login.aspx" id="login-form" ';

var xButton = 'onsubmit="return localSignIn(this, 1);"><p id="lightbox_login_close"><a id="xbox" onClick="document.getElementById(\'lightbox_login\').style.display=\'none\';">X</a></p>';

var premiumText = "";

if(useremail == null || useremail == ""){
	premiumText = 'onsubmit="return localSignIn(this, 2);"><p id="lightbox_login_close"><a id="xbox" href="'+homeURL+'">X</a></p>';
	premiumText += '<p class="access">The content you have requested requires a premium subscription.</p>';
}else{
	premiumText = 'onsubmit="return localSignIn(this, 2);"><p id="lightbox_login_close"><a id="xbox" href="'+homeURL+'">X</a></p> <p class="access">The content you have requested requires a premium subscription.</p> <p class="access">'+useremail+' does not have premium access. <a href="https://'+storeRoot+'/Registration/Default.aspx?promoCode='+promo+'&source=' + theURL + '">Click Here To Upgrade.</a></p>';
}

var limitedText = "";
if(useremail == null || useremail == ""){
	limitedText = 'onsubmit="return localSignIn(this, 1);"><p id="lightbox_login_close"><a id="xbox" href="'+homeURL+'">X</a></p>';
	limitedText += '<p class="access">This free content is only available with registration.</p>';
}else{
	limitedText = 'onsubmit="return localSignIn(this, 1);"><p id="lightbox_login_close"><a id="xbox" href="'+homeURL+'">X</a></p> <p class="access">This free content is only available with registration.</p> <p class="access">'+useremail+' does not have an active registration to this publication. <a href="https://'+storeRoot+'/Registration/Default.aspx?promoCode='+promo+'&source=' + theURL + '">Click Here to Register.</a></p>';
}

var signInMiddle1 = '<div class="formStatusMessages">';
signInMiddle1 += '<span id="emailCheckStatus"></span>';
signInMiddle1 += '</div>';
signInMiddle1 += '<h3>Sign In</h3>';
signInMiddle1 += '<table id="formLogin">';
signInMiddle1 += '<tr>';
signInMiddle1 += '<td>Email:</td>';
signInMiddle1 += '<td><input type="text" name="uid" id="uid" size="20" class="required email" /></td>';
signInMiddle1 += '</tr>';
signInMiddle1 += '<tr>';
signInMiddle1 += '<td>Password:</td>';

var premiumPassword = '<td><input type="password" name="upass" id="upass" size="20" class="required" onKeyPress="return submitenter(this,event,2)" /></td>';
var limitedPassword = '<td><input type="password" name="upass" id="upass" size="20" class="required" onKeyPress="return submitenter(this,event,1)" /></td>';

var signInMiddle2 = '</tr>';
signInMiddle2 += '<tr>';
signInMiddle2 += '<td>&nbsp;</td>';
signInMiddle2 += '<td class="rememberMe"><input name="rememberme" value="true" checked="true" type="checkbox" /> Remember me</td>';
signInMiddle2 += '</tr>';
signInMiddle2 += '<tr>';
signInMiddle2 += '<td colspan="2">';
signInMiddle2 += '<input type="hidden" name="mode" value="logon" />';
signInMiddle2 += '<input type="hidden" name="source" id="source" value="" />';

var premiumPromo = '<input type="hidden" name="promocode" value="'+promo+'" />';
var limitedPromo = '<input type="hidden" name="promocode" value="'+promo+':LIMITED" />';

var signInBottom = '<input type="image" id="loginSubmit" src="/img/universal/signin_submit_inactive.gif" width="80px" height="20px" alt="Submit" name="submit" value="submit" onmouseover="img_change(\'active\')" onmouseout="img_change(\'inactive\')" />';
signInBottom += '</td>';
signInBottom += '</tr>';
signInBottom += '</table>';
signInBottom += '<p class="forgetPass"><a onclick="sendPassword();">Forgot your password?</a></p>';
signInBottom += '<p class="newUserRegister">';

var premiumSubscribe = '<a id="subscribelink" href="https://'+storeRoot+'/Registration/Default.aspx?promoCode='+promo+'&source=' + theURL + '">Click here to Subscribe to '+siteName+'! >></a>';
premiumSubscribe += '</p>';
premiumSubscribe += '</form>';
premiumSubscribe += '</div>';

var limitedSubscribe = '<a id="subscribelink" href="https://'+storeRoot+'/Registration/Default.aspx?promoCode='+promo+'&source=' + theURL + '">Click here to Register for '+siteName+'! >></a>';
limitedSubscribe += '</p>';
limitedSubscribe += '</form>';
limitedSubscribe += '</div>';

var formSubmitInProgress = false;

function rewritePage(reqAccess, userAccess){
	if(userAccess == 2){
		hasPremiumAccess = true;
		return;
	}
	if(reqAccess == "r" && userAccess == 1){
		hasLimitedAccess = true;
		return;
	}
		
	if(reqAccess == "" || reqAccess == "u" || reqAccess == "null"){ //user has access
		return;
	}
	if(userAccess == 1){
		hasLimitedAccess = true;
	}
	
		
	var articleSignIn = "";
	var browser = navigator.appName;
	var theHeight = "";
	
	if(reqAccess == "r" && userAccess == 0){
		articleSignIn = '<div id="lightbox_login">'+signInTop + limitedText + signInMiddle1 + limitedPassword + signInMiddle2 + limitedPromo + signInBottom + limitedSubscribe+'</div>';
	}else{ //reqAccess == p && userAccess is 0 or 1
		articleSignIn = '<div id="lightbox_login">'+signInTop + premiumText + signInMiddle1 + premiumPassword + signInMiddle2 + premiumPromo + signInBottom + premiumSubscribe+'</div>';
	}

	if(browser == "Microsoft Internet Explorer"){
		document.execCommand('Stop');
	}else{
		window.stop();//non-IE
	}
	document.body.innerHTML = articleSignIn;
	document.getElementById('lightbox_login').style.display = 'block';
	document.getElementById("uid").focus();
	return;
}


//Submit the form if the enter key is pressed
function submitenter(myfield,e,mylevel){
	
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13){
	   if(localSignIn(myfield.form, mylevel)){
	   	myfield.form.submit();
	  	return false;
	   }else{
	   	return true;
	   }
	}else{
	   return true;
	}
	
}


function addForm(){
	var lightbox = document.getElementById("lightbox_login");
	lightbox.innerHTML = signInTop + xButton + signInMiddle1 + limitedPassword + signInMiddle2 + premiumPromo + signInBottom + premiumSubscribe;
	lightbox.style.display='block';
	document.getElementById("uid").focus();
}

function localSignIn(theForm, theLevel){
	document.getElementById("source").value = document.URL;
	var theEmail = theForm.uid;
	var thePassword =theForm.upass;
	var rememberMe = 0;
	
	if (theForm.rememberme.checked){
	    rememberMe = 1;
	}
	if (!validField(theEmail,"Email Address")){
		return false;
	}
	if (!validField(thePassword,"Password")){
		return false; 
	}
	if (!validUser(theEmail, thePassword, rememberMe, theLevel)) {
		return false;
	}
	return true;
}

function validField(formField,fieldLabel){
	var result = true;
	var theValue = formField.value;

	if (theValue == ""){
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	return result;
}

function validUser(pEmail, pPassword, rememberMe, theLevel) {
	if (isSignedIn){
        	return true; //Validation already done, quit now
        }
	var theEmail = pEmail.value;
	var thePassword = pPassword.value;

	var dataString = 'http://'+storeRoot+'/Registration/DataWebservice.asmx/CheckLoginAndGetAccessList&queryString=' + 'email%3D' + theEmail + '%26' + 'password%3D' + thePassword;

	dataString= "http://"+server_check+"/jsp/utils/serviceProxy.jsp?server="+dataString;
	$("#emailCheckStatus").html('<p class="going">Processing...</p>');
	
        if (formSubmitInProgress)
            return false; //Block form submissions while the prior request is still in progress
        formSubmitInProgress = true; //To block any future requests while this one is in progress

	$.ajax({
	    type: "GET",
	    url: dataString,
	    dataType: "xml",
	    timeout: 60000,
	    success: function(data) {

                formSubmitInProgress = false; //Remove blocking
	        var result = $('string', data).text();
	        
	        //make everything lowercase so that it doesn't matter what we get, it still works
	        result = ";"+result.toLowerCase(); //make all promo codes have a semi-colon at the beginning
	        var promoLocal = promo.toLowerCase();
	        
	        var premiumReg=new RegExp(";"+promoLocal+";");
	        var limitedReg=new RegExp(";"+promoLocal+":limited;");
	        
	        var premiumAccess = premiumReg.test(result);
	        var limitedAccess = limitedReg.test(result);
	        		
		if (isLoggedIn == false && (hasPremiumAccess == true || hasLimitedAccess == true)){ //already signed in with IP Auth
	            $("#emailCheckStatus").html('<p class="going">Login successful, please wait...</p>');
	            isSignedIn = true;
	            $('#loginSubmit').click();
	        } else if (limitedAccess == true && theLevel == 1) { //user has limited access
	            $("#emailCheckStatus").html('<p class="going">Login successful, please wait...</p>');
	            isSignedIn = true;
	            $('#loginSubmit').click();
	        } else if (limitedAccess == false && premiumAccess == true) { //user has premium access
	            $("#emailCheckStatus").html('<p class="going">Login successful, please wait...</p>');
	            isSignedIn = true;
	            $('#loginSubmit').click();
	        } else if (limitedAccess == true && theLevel == 2) { //user has limited access, content is premium
	            $("#emailCheckStatus").html('<p>The content you have requested is available only to premium access subscribers. <span class="user">'+theEmail+'</span> only has limited access. <a href="http://' + storeRoot + '/Registration/Login.aspx?mode=logon&uid=' + theEmail + '&upass=' + thePassword + '&rememberme=' + rememberMe + '&promoCode=' + promoLocal + '&returnUrl=' + theURL + '">Click Here To Upgrade.</a></p>');
	            	            
	            document.getElementById("subscribelink").href='http://'+storeRoot + '/Registration/Login.aspx?mode=logon&uid=' + theEmail + '&upass=' + thePassword + '&rememberme=' + rememberMe + '&promoCode=' + promoLocal + '&returnUrl=' + theURL;
	            
	            document.getElementById("xbox").href='http://'+storeRoot + '/Registration/Login.aspx?mode=logon&uid=' + theEmail + '&upass=' + thePassword + '&rememberme=' + rememberMe + '&promoCode=' + promoLocal + '&source=http://' + server_check + homeURL;
	        } else {
	            $("#emailCheckStatus").html('<p><span class="user">'+theEmail+'</span> does not have an active registration to this publication. <a href="http://' + storeRoot + '/Registration/Login.aspx?mode=logon&uid=' + theEmail + '&upass=' + thePassword + '&rememberme=' + rememberMe + '&promoCode=' + promoLocal + '&returnUrl=' + theURL + '">Click Here to Register.</a></p>');
	            	            
	            document.getElementById("subscribelink").href='http://'+storeRoot + '/Registration/Login.aspx?mode=logon&uid=' + theEmail + '&upass=' + thePassword + '&rememberme=' + rememberMe + '&promoCode=' + promoLocal + '&returnUrl=' + theURL;
	            
	            document.getElementById("xbox").href='http://'+storeRoot + '/Registration/Login.aspx?mode=logon&uid=' + theEmail + '&upass=' + thePassword + '&rememberme=' + rememberMe + '&promoCode=' + promoLocal + '&source=http://' + server_check + homeURL;
	        }

	    }, //End success function

	    error: function(xhr, textStatus, errorThrown) {
	        formSubmitInProgress = false; //Remove blocking
	    	if (textStatus == 'timeout'){
			$("#emailCheckStatus").html('<p>The server did not respond in a timely fashion - please try again</p>');
		}else{
			$("#emailCheckStatus").html('<p>The login credentials are incorrect - please try again</p>');
			document.getElementById("xbox").href=homeURL;
		}
	    } //End error function 
	});

	return false; //To stop the form from submitting

}//End validUser function

//End Sign in fucntions

// Password Reminder
function sendPassword(){
	var emailField = document.getElementById("uid");
	var theEmail = emailField.value;
	if(theEmail == ""){
		$("#emailCheckStatus").html('<p>Please enter your email address.</p>');
		emailField.focus();
		return false;
	}
	var dataString = 'http://'+ storeRoot+'/Registration/DataWebservice.asmx/SendPasswordReminder&queryString=' + escape('Email=' + theEmail + '&PromotionCode=' + promo);
	dataString= "http://"+server_check+"/jsp/utils/serviceProxy.jsp?server="+dataString;
	$("#emailCheckStatus").html('<p class="going">Processing...</p>');
	$.ajax({
		type: "GET",
		url: dataString,
		dataType: "xml",
	    	timeout: 60000,
		success: function(data) {
			$("#emailCheckStatus").html('<p>Email sent, please check your inbox.</p>');
		}, //End success function
		error: function(xhr, textStatus, errorThrown) {
			if (textStatus == 'timeout'){
				$("#emailCheckStatus").html('<p>The server did not respond in a timely fashion - please try again</p>');
			}else{
				$("#emailCheckStatus").html('<p>There was an error processing your request. Please check your email address.</p>');
			}
			emailField.focus();
		} //End error function
	}); //End ajax call
	return false;
}


function img_change(imgName) {
	if(imgName == "active"){
		document.getElementById("loginSubmit").src = submitActive.src;
	}else{
		document.getElementById("loginSubmit").src = submitInactive.src;
	}
}

/**************************/
/**** End Registration ****/
/**************************/
