var al_status;
var al_loginForm, al_registerForm, al_lostPasswordForm;
var al_loginMessage, al_registerMessage, al_lostPasswordMessage;
var al_sack = new sack();

var al_otheronload = window.onload;
window.onload = al_init;
function al_init() {

	if (al_otheronload) al_otheronload();

	al_status = 0;

	al_loginForm = document.getElementById("al_loginForm");
	al_registerForm = document.getElementById("al_registerForm");
	al_lostPasswordForm = document.getElementById("al_lostPasswordForm");

	al_loginMessage = document.getElementById("al_loginMessage");
	al_registerMessage = document.getElementById("al_registerMessage");
	al_lostPasswordMessage = document.getElementById("al_lostPasswordMessage");

}


function al_showLogin() {

	document.getElementById("al_login").style.display = "none";
	document.getElementById("al_register").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showLogin2();', al_timeout);
	} else {
		al_showLogin2();
	}
}

function al_showLogin2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_login").style.display = "block";
	al_loginForm.log.focus();

}

function al_showRegister() {

	document.getElementById("al_login").style.display = "none";
	document.getElementById("al_register").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showRegister2();', al_timeout);
	} else {
		al_showRegister2();
	}
}

function al_showRegister2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_register").style.display = "block";

	al_registerForm.user_login.focus();
}


function al_showLostPassword() {

	document.getElementById("al_login").style.display = "none";
	document.getElementById("al_register").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "none";

	if (0 != al_timeout) {
		document.getElementById("al_loading").style.display = "block";
		setTimeout('al_showLostPassword2();', al_timeout);
	} else {
		al_showLostPassword2();
	}
}

function al_showLostPassword2() {

	document.getElementById("al_loading").style.display = "none";
	document.getElementById("al_lostPassword").style.display = "block";

	al_lostPasswordForm.user_login.focus();
}


function al_login() {

	if (0 != al_status) {
		return;
	}

	if (al_loginForm.log.value == '') {
		alert("Please enter username.");
		al_loginForm.log.focus();
		return;
	}

	if (al_loginForm.pwd.value == '') {
		alert("Please enter password.");
		al_loginForm.pwd.focus();
		return;
	}

	al_sack.setVar("log", al_loginForm.log.value);
	al_sack.setVar("pwd", al_loginForm.pwd.value);
	al_sack.setVar("rememberme", al_loginForm.rememberme.value);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/login.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_loginHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_loginHandleResponse() {


	al_status = 0;

	var responselines = al_sack.response.split("\n",2);

	if (responselines[0] == 0) {
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == 1) {
		
		if (al_redirectOnLogin == '')
			window.location.reload(true);
		else
			window.location.href = al_redirectOnLogin;
			
		return;
	}

	alert("Unknown login response.");

}

function al_register() {

	if (0 != al_status) {
		return;
	}

	if (al_registerForm.user_login.value == '') {
		alert("Please enter username.");
		al_registerForm.user_login.focus();
		return;
	}

	if (al_registerForm.user_email.value == '') {
		alert("Please enter e-mail address.");
		al_registerForm.user_email.focus();
		return;
	}

	al_sack.setVar("user_login", al_registerForm.user_login.value);
	al_sack.setVar("user_email", al_registerForm.user_email.value);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/register.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_registerHandleResponse;
	al_sack.runAJAX();
	al_status = 1;

}

function al_registerHandleResponse() {

	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == al_success) {
		alert("Registration complete. Please check your e-mail.");
		al_loginMessage.innerHTML = "Your password is in your mail.<br/>";
		al_loginForm.log.value = al_registerForm.user_login.value;
		al_registerForm.user_login.value = "";
		al_registerForm.user_email.value = "";
		al_showLogin();
		al_loginForm.pwd.focus();
		return;
	}

	alert("Unknown registration response.");

}

function al_retrievePassword() {
	if (0 != al_status) {
		return;
	}

	if (al_lostPasswordForm.user_login.value == '') {
		alert("Please enter username.");
		al_lostPasswordForm.user_login.focus();
		return;
	}

	if (al_lostPasswordForm.user_email.value == '') {
		alert("Please enter e-mail address.");
		al_lostPasswordForm.user_email.focus();
		return;
	}

	al_sack.setVar("user_login", al_lostPasswordForm.user_login.value);
	al_sack.setVar("user_email", al_lostPasswordForm.user_email.value);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/lostpassword.php";
	al_sack.method = "POST";
	al_sack.onError = al_ajaxError;
	al_sack.onCompletion = al_lostPasswordHandleResponse;
	al_sack.runAJAX();
	al_status = 1;
}

function al_lostPasswordHandleResponse() {

	al_status = 0;

	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == al_failure) {
		alert(responselines[1]);
		return;
	}
	if (responselines[0] == al_success) {
		alert("Check your e-mail for the confirmation link.");
		al_loginMessage.innerHTML = "Your confirmation link is in your mail.<br/>";
		al_loginForm.log.value = al_lostPasswordForm.user_login.value;
		al_lostPasswordForm.user_login.value = "";
		al_lostPasswordForm.user_email.value = "";
		al_showLogin();
		al_loginForm.pwd.focus();
		return;
	}

	alert("Unknown password retrieval response.");

}

function al_ajaxError() {
	alert("We are sorry, there was an error while sending the request.\nPlease try again!\nIf error persists, please contact the webmaster.");
	
	alert(al_sack.responseStatus[0] + ':\n' + al_sack.response);
	al_sack = new sack();
}

function al_loginOnEnter(e) {

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	else
		keynum = 0;

	if (keynum==13)
		al_login();

}
function al_registerOnEnter(e) {

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	else
		keynum = 0;

	if (keynum==13)
		al_register();

}
function al_retrievePasswordOnEnter(e) {

	if(window.event) // IE
		keynum = e.keyCode;
	else if(e.which) // Netscape/Firefox/Opera
		keynum = e.which;
	else
		keynum = 0;

	if (keynum==13)
		al_retrievePassword();

}



 

/* --------------- ExpenseMap ------------------- */


 var aform = '';
 function em_expense_save(the_form) {


  the_form = document.getElementById('em_form');

 

	if (the_form.title.value == '') {
		alert("Please enter Item name.");
		the_form.title.focus();
		return;
	}

	if (the_form.amount.value == '') {
		alert("Please enter Item name.");
		the_form.title.focus();
		return;
	}

 


 	if (document.getElementById("postid") !=null )  {
		al_sack.setVar("postid", document.getElementById("postid").value);
		//keep all values into temp
		t_vals = new Array();
		t_vals ['postid'] = document.getElementById("postid").value;
		t_vals ['title'] = document.getElementById("title").value;
		t_vals ['description'] = document.getElementById("description").value;
		t_vals ['amount'] = document.getElementById("amount").value;
		t_vals ['tags'] = document.getElementById("tags").value;
		var sel = document.getElementById("cat_id");
		t_vals ['cat'] = sel.options[sel.selectedIndex].value;

/*		t_vals ['location'] = document.getElementById("location").value;
		t_vals ['lat'] = document.getElementById("lat").value;
		t_vals ['lon'] = document.getElementById("lon").value;
*/		t_vals ['seller'] = document.getElementById("seller").value;
 

 	}
	
	al_sack.setVar("title", document.getElementById("title").value);

	al_sack.setVar("description", document.getElementById("description").value);
 
	al_sack.setVar("amount", document.getElementById("amount").value);
	al_sack.setVar("location", document.getElementById("q").value);
	al_sack.setVar("lat", document.getElementById("lat").value);
	al_sack.setVar("lon", document.getElementById("lon").value);
	al_sack.setVar("seller", document.getElementById("seller").value);
	al_sack.setVar("tags", document.getElementById("tags").value);




	


	al_sack.setVar("cat", sel.options[sel.selectedIndex].value);
	
 	if (document.getElementById("action").value == "update" )  {
		al_sack.onCompletion = em_updateExpenseHandleResponse;
		al_sack.setVar("action", "update");

	}	else {
		al_sack.onCompletion = em_saveExpenseHandleResponse;
		al_sack.setVar("action", "insert");
	}
 
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/expense-save.php";
	al_sack.method = "POST";
	al_sack.onError = em_ajaxError;

	document.getElementById('expense-info').innerHTML="<img align='center' valign = 'center' src = '/wp-content/plugins/ajax-login/al_loading.gif' /> <br/>"  ; 


	al_sack.runAJAX();
	em_status = 1;
	aform = document.getElementById ('expense-info').innerHTML;
	
	//alert ("to submit ...");
}

function em_saveExpenseHandleResponse() {

	em_status = 0;
 
 	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == 0) {
		alert(responselines[1]);
	 	 document.getElementById('expense-info').innerHTML= aform; 

		return;
	}
	if (responselines[0] == 1) {
		 
		document.getElementById ('expense-info').innerHTML  =  '<br/><br/><b>Expense successfully saved.</b>'    ; 
	 	setTimeout ('map.closeInfoWindow()',1000);
 
		return;
	}

	alert("Unknown save expense response.");
	// alert("Unknown save response:" + al_sack.response);

}


 


function em_updateExpenseHandleResponse() {

	em_status = 0;
 
 
 	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == 0) {
		alert(responselines[1]);
	 	 document.getElementById('expense-info').innerHTML= aform; 
			
		return;
	}
	if (responselines[0] == 1) {
		 
		document.getElementById ('expense-info').innerHTML  =  '<br/><br/><b>&nbsp;&nbsp;'+'Expense successfully updated' +' </b>'    ; 
		//update back the table
		//document.getElementById("postid").value  = t_vals ['postid'] ;
		postid = responselines[1];

		document.getElementById('title_'.concat (postid) ).innerHTML= t_vals ['title']  ;
		document.getElementById("tags_" +  postid  ).innerHTML=t_vals ['tags'] ;
		document.getElementById('content_' +  postid).innerHTML=t_vals ['description'] ; 
		document.getElementById("amt_" + postid  ).innerHTML= '$' + t_vals ['amount']  ;
		document.getElementById("cat_" + postid  ).innerHTML= t_vals ['cat']  ;


/*		document.getElementById("title_" +  postid  ).innerHTML=t_vals ['location'] ; 
		document.getElementById("title_" +  postid ).innerHTML=t_vals ['lat']  ;
		document.getElementById("title_" +  postid  ).innerHTML=t_vals ['lon']  ;
		document.getElementById("seller_" +  postid  ).innerHTML=t_vals ['seller'] ;  
	
*/
 
		

	 	setTimeout ('map.closeInfoWindow()',1000);

 
		return;
	}

	alert("Unknown save expense response.");
	// alert("Unknown save response:" + al_sack.response);





}



function IsNumeric(str)
{
    mystring = str;
    if (mystring.match(/^\d+$|^\d+\.\d{2}$/ ) )
    {
        return true;
    }
    else
    {
        return false;
    }
}



 
 

var index2cat = [12,14,8,9,5,3,13,15,11,6,4,10];
var t_vals  = new Array(); 
 


function setBudget (x,amt) {
	var bn =  "budget_" + index2cat[x];
	al_sack.setVar( bn ,amt);
	t_vals[bn] = amt;
}
function setAlarm (x,amt) {
	var an = "alarm_" + index2cat[x]; 
	al_sack.setVar(an,amt);
	t_vals[an] = amt;
}

 function em_budget_save(the_form) {

 
	var updcnt = 0
 	var budgets = document.getElementsByName ('budget');

 
	for ( var x=0; x<budgets.length; x++)
   	{
 		if (budgets[x].value.length >0 && !isNaN (budgets[x].value)) {
 	 
			setBudget (x, budgets[x].value) ;	 
			updcnt++;
		}
 	 
   	 } 

 	var alarms = document.getElementsByName ('alarm');

 
	for ( var x=0; x<alarms.length; x++)
   	{
 		if (alarms[x].value.length >0 && !isNaN (alarms[x].value)) {
 	 
			setAlarm (x, alarms[x].value) ;	 
			updcnt++;
		}
 	 
   	 } 



	if (updcnt==0) { 
		alert ('Please fill up in the column you want to change.') ;
		return;
	}
 
   
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/budget-save.php";
	al_sack.method = "POST";
	al_sack.onError = em_ajaxError;
	al_sack.onCompletion = em_saveBudgetHandleResponse;
	al_sack.runAJAX();
	em_status = 1;
 
		for(var key in t_vals) {
	 	var ele = document.getElementById (key);
		ele.innerHTML =  "<img src = '/wp-content/plugins/ajax-login/al_loading_small.gif'>"; 
 
		}	 
 
}

 

function em_saveBudgetHandleResponse() {

	em_status = 0;

 	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == 0) {
		alert(responselines[1]);
		
		return;
	}
	if (responselines[0] == 1) {
 		alert (responselines[1]);
		
	for(var key in t_vals) {
		var value = t_vals[key];
		var ele = document.getElementById (key);
		ele.innerHTML = '$' + value; 
		ele.style.backgroundColor = "#EEEEEE";
 


	}
	//clear text now
			

		return;
	}

	alert("Unknown save expense response.");
	// alert("Unknown save response:" + al_sack.response);

}

 var t_friend = '';
 function em_add_friend(friendID) {

 
	var updcnt = 0
 
	 al_sack.setVar("u",friendID);
	 al_sack.setVar("a","add");

 
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/friend-save.php";
	al_sack.method = "GET";
	al_sack.onError = em_ajaxError;
	al_sack.onCompletion = em_saveFriendHandleResponse;
	al_sack.runAJAX();
	em_status = 1;
	t_friend = document.getElementById ("em_friend").innerHTML ;
	document.getElementById ("em_friend").innerHTML = "<img src='/wp-content/plugins/ajax-login/al_loading_small.gif' />"
 
 
  
 
}

 

 function em_remove_friend(friendID) {

 
	var updcnt = 0
 
	 al_sack.setVar("u",friendID);
	 al_sack.setVar("a","remove");

   
	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/friend-save.php";
	al_sack.method = "GET";
	al_sack.onError = em_ajaxError;
	al_sack.onCompletion = em_saveFriendHandleResponse;
	al_sack.runAJAX();
	em_status = 1;
	t_friend = document.getElementById ("em_friend").innerHTML ;

	document.getElementById ("em_friend").innerHTML = "<img src='/wp-content/plugins/ajax-login/al_loading_small.gif' />"
   
 
}
 

function em_saveFriendHandleResponse() {

	em_status = 0;

 	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == 0) {
		alert(responselines[1]);
		document.getElementById ("em_friend").innerHTML  = t_friend  ;
	
		return;
	}
 	if (responselines[0] == 1) {  
		var as = responselines[1].split(";",2);
		

		       document.getElementById ("em_friend").innerHTML =  as[0];
 			document.getElementById('em_friend').href=as[1];

		return;
	}

	alert("Unknown save friend response.");
	// alert("Unknown save response:" + al_sack.response);

}



function em_ajaxError() {
	alert("We are sorry, there was an error while sending the request.\nPlease try again!\nIf error persists, please contact the webmaster.");
	
	//alert(al_sack.responseStatus[0] + ':\n' + al_sack.response);
	al_sack = new sack();
}

var postid='';

function deleteExpense (id) {
	postid = id;
	var title = document.getElementById ("title_" + postid ).innerHTML;
	var yes = confirm ("Are you sure you want to delete '" + title + "'?" ) ;
	if (yes) {
			
	al_sack.setVar("id",postid);

	al_sack.requestFile = al_base_uri + "/wp-content/plugins/ajax-login/expense-save.php";
	al_sack.method = "GET";
	al_sack.onError = em_ajaxError;
	al_sack.onCompletion = em_deleteExpenseHandleResponse;
	al_sack.runAJAX();
	em_status = 1;

	} else return;
}


function em_deleteExpenseHandleResponse() {

	em_status = 0;

 	var responselines = al_sack.response.split("\n",2);
	if (responselines[0] == 0) {
		alert(responselines[1]);
		
		return;
	}
	if (responselines[0] == 1) {
  		
		//success remove the row
		alert(responselines[1]);
		removeRow (document.getElementById ("tr_" + postid));
		return;
	
	}
	 		
	 

	alert("Unknown delete expense response.");
	 

}

 
   function addRow()
   {
    //add a row to the rows collection and get a reference to the newly added row

    var newRow = document.all("tblGrid").insertRow();
    
    //add 3 cells (<td>) to the new row and set the innerHTML to contain text boxes

    
    var oCell = newRow.insertCell();
    oCell.innerHTML = "<input type='text' name='t1'>";
    
    oCell = newRow.insertCell();
    oCell.innerHTML = "<input type='text' name='t2'>";
    
    oCell = newRow.insertCell();
    oCell.innerHTML = "<input type='text' name='t3'>  <input type='button' value='Delete' onclick='removeRow(this);'/>";   
   }
   
   //deletes the specified row from the table

   function removeRow(oRow)
   {
    /* src refers to the input button that was clicked. 
       to get a reference to the containing <tr> element,
       get the parent of the parent (in this case <tr>)
    */   
  //  var oRow = src.parentElement.parentElement;  
    
    //once the row reference is obtained, delete it passing in its rowIndex   

    document.getElementById("tblExpense").deleteRow(oRow.rowIndex);  


   }

function savePref (name, value) {

	setCookie (name,value,7);
}

function getPref (name,def ) {

	return getCookie (name,def);
}
function getCookie( check_name , def) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return def;
	}
}

function setCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString();
}


function init_blocking()
{

	//do each element one by one
	setCurrentDisplay ('esummary');
	setCurrentDisplay ('eprofile');	
	setCurrentDisplay ('emap');
	setCurrentDisplay ('elist');
	setCurrentDisplay ('eform'); 
 
 
	

}

function setCurrentDisplay (id) {
 

		if (document.getElementById(id)) {
			var current = getPref (id,'NA')
 			if (current != 'NA')
				document.getElementById(id).style.display = current;
	//		return true;
		}
/*		else if (id=="emap" && first_emap) {
			var current = getPref (id,'NA')
			first_emap = false;
			document.getElementById(id).style.display = current;
			return true;
		}
		else if (id=="elist" && first_elist) {
			var current = getPref (id,'NA')
			first_elist = false;
			document.getElementById(id).style.display = current;
			return true;
		}

		else if (id=="eform" && first_eform) {
			var current = getPref (id,'NA')
			first_eform = false;
			document.getElementById(id).style.display = current;
			return true;
		}
		else return false;

*/
 
 
}

