var current_page = 0;
var num_pages = 0;
var current_range = 'all';
var logged_in = false;
var current_contacts = new Array();

function openLogin(){
	$('overlay').setStyle('display', 'block');
	$('loginPanel').setStyle('display', 'block');
	$('loginFeedback').setStyle('display', 'none');
	overlayFadeout.start(0,0.6);
	loginFadeout.start(0,1);
}

function closeLogin(){
	if (logged_in) {
		window.location = 'addressBook.php';
		return;
	}
	$('overlay').setStyle('display', 'none');
	$('loginPanel').setStyle('display', 'none');

	overlayFadeout.start(0);
	loginFadeout.start(0);
}

function populateContacts(contacts) {
	s ='';
	for (i in contacts) {
		s += '<div id="contact_' + contacts[i].contact_id + '"><div class="contactName"><input type="checkbox" id="cbContact_' + contacts[i].contact_id + '"> '
			+ contacts[i].name + '</div>'
			+ '<div class="contactMobile">' + contacts[i].mobile + '</div>'
			+ '<div class="contactEdit">[EDIT CONTACT]</div>'
			+ '</div><div style="clear:both"></div>';
	}
	$('listContactsInner').setHTML(s);
	$('listContacts').setStyle('display', 'block');	
}
/*
                    <div class="numberHolder">
						<div class="selectAllTick"><input name="" type="checkbox" value="" /></div>
                        <div class="nameHeader">Rodger Threlfall</div>
                        <div class="numberHeader">0948432957393</div>
						<div class="editEntry"><img src="images/editIcon.gif" width="20" height="18" /></div>
                    </div>

 */
function populateContactsList(data) {
	current_contacts = new Array();

	s ='';
	for (i in data.contacts) {
		current_contacts[current_contacts.length] = data.contacts[i].contact_id;

		s += '<div class="numberHolder" id="contact_' + data.contacts[i].contact_id + '"><div class="selectAllTick"><input type="checkbox" id="cbContact_' + data.contacts[i].contact_id + '"></div>'
			+ '<div class="nameHeader" id="name_' + data.contacts[i].contact_id + '">' + data.contacts[i].name + '</div>'
			+ '<div class="numberHeader" id="mobile_' + data.contacts[i].contact_id + '">' + data.contacts[i].mobile + '</div>'
			+ '<div class="editEntry"><a href="#"><img src="images/editIcon.gif" border="0" width="20" height="18" onClick="openEditContact(' + data.contacts[i].contact_id + ')"/></a></div>'
			+ '</div>';
	}
	$('contactsList').setHTML(s);

	s = '';
	for (i = data.num_pages; i > 0 ; i--) {
		if (i == current_page) pnh = 'pageNumHolderHi'; else pnh = 'pageNumHolder';
		s += '<div class="'+pnh+'"><a href="#" onClick="loadContactPage(' + i +')">' + i +'</a></div>';
	}
	$('paginationNumbers').setHTML(s);
	
	if (current_page == 1) {
		$('prevPageArrow').setStyle('display', 'none');	
	} else {
		$('prevPageArrow').setStyle('display', 'block');	
	}

	if ((current_page * 10) >= data.num_total_contacts) {
		$('nextPageArrow').setStyle('display', 'none');	
	} else {
		$('nextPageArrow').setStyle('display', 'block');	
	}
}
//========================================================================
function updateLogin(responseText) {
	var responseData = Json.evaluate(responseText);

	$('loginFeedback').setHTML('');
	$('loginFeedback').setStyle('display', 'block');
	if (responseData.response.status == false) {
		$('loginFeedback').setHTML(responseData.response.reason);
	} else {
		logged_in = true;
		$('loginFeedback').setHTML('Login successful! Please wait...');
		window.location = 'addressBook.php';
	}
	return false;
}

function doLogin() {
	logged_in = false;
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=loginUser'
			+ '&mobile=' + $('loginMobile').getValue()
			+ '&password=' + $('loginPassword').getValue(),
		onComplete: updateLogin
	}).request();
	return false;
}
//========================================================================
function updateSendEnquiry(responseText) {
	var responseData = Json.evaluate(responseText);

	$('helpFeedback').setHTML('');
	$('helpFeedback').setStyle('display', 'block');
	$('helpFeedback').setHTML(responseData.response.reason);

	return false;
}

function doSendEnquiry() {
	logged_in = false;
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=sendEnquiry'
			+ '&firstname=' + $('contactFirstName').getValue()
			+ '&lastname=' + $('contactLastName').getValue()
			+ '&mobile=' + $('contactMobile').getValue()
			+ '&email=' + $('contactEmail').getValue()
			+ '&text=' + $('contactEnquiry').getValue(),
		onComplete: updateSendEnquiry
	}).request();
	return false;
}
//========================================================================
function updateLogout(responseText) {
	window.location = 'index.php';
	return false;
}

function doLogout() {
	logged_in = false;
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=logoutUser',
		onComplete: updateLogout
	}).request();
	return false;
}
//========================================================================
function updateAddContact(responseText) {
	var responseData = Json.evaluate(responseText);

	/*
	if (responseData.response.status == false) {
		$('loginFeedback').setHTML(responseData.response.reason);
	} else {
		$('loginFeedback').setHTML('Contact added');
	}
	*/
	reloadContactPage();
	$('addContactMobile').setProperty('value', '');
	$('addContactName').setProperty('value', '');
	$('addContactFeedback').setStyle('display', 'block');
	$('addContactFeedback').setHTML(responseData.response.reason);	
	return false;
}

function doAddContact() {
	$('addContactFeedback').setHTML('Please wait...');
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=addContact'
			+ '&mobile=' + $('addContactMobile').getValue()
			+ '&name=' + $('addContactName').getValue(),
		onComplete: updateAddContact
	}).request();
	return false;
}
//========================================================================
function updateSaveContact(responseText) {
	var responseData = Json.evaluate(responseText);

	/*
	if (responseData.response.status == false) {
		$('loginFeedback').setHTML(responseData.response.reason);
	} else {
		$('loginFeedback').setHTML('Contact added');
	}
	*/
	reloadContactPage();
	$('editContactFeedback').setStyle('display', 'block');
	$('editContactFeedback').setHTML(responseData.response.reason);		
	return false;
}

function doSaveContact() {
	$('editContactFeedback').setHTML('Please wait...');
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=saveContact'
			+ '&contact_id=' + $('editContactId').getValue()
			+ '&mobile=' + $('editContactMobile').getValue()
			+ '&name=' + $('editContactName').getValue(),
		onComplete: updateSaveContact
	}).request();
	return false;
}
//========================================================================
function updatePwReminder(responseText) {
	var responseData = Json.evaluate(responseText);

	$('loginFeedback').setHTML('');
	$('loginFeedback').setStyle('display', 'block');
	if (responseData.response.status == false) {
		$('loginFeedback').setHTML(responseData.response.reason);
	} else {				
		$('loginFeedback').setHTML(responseData.response.reason);
	}
	return false;
}

function doPwReminder() {
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=sendTempPassword'
			+ '&mobile=' + $('pwReminderMobile').getValue(),
		onComplete: updatePwReminder
	}).request();
	return false;
}
//========================================================================
function updateLoadContacts(responseText) {
	var responseData = Json.evaluate(responseText);
	if (responseData.response.status == false) {
		/*flashNotification(responseData.response.reason);*/
	} else {				
		/*
		if (responseData.response.num_contacts > 0 && current_range == 'all') {
			// show "you've no contacts" div
		} else {
		*/
			//alert('Recovered ' + responseData.response.num_contacts + ' of ' +responseData.response.num_total_contacts + ' contacts');
		populateContactsList(responseData.response);
	}
	return false;
}

function loadContacts(range) {
	current_range = range;
	current_page = 1;

	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=getContacts'
			+ '&page=1&range=' + current_range,
		onComplete: updateLoadContacts
	}).request();
	return false;
}

function loadNextPage() {
	return loadContactPage(current_page + 1);
}

function loadPrevPage() {
	return loadContactPage(current_page - 1);
}

function reloadContactPage() {
	return loadContactPage(current_page);
}

function loadContactPage(page) {
	current_page = page;

	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=getContacts'
			+ '&page=' + page + '&range=' + current_range,
		onComplete: updateLoadContacts
	}).request();
	return false;
}

function toggleContactsCheckboxes() {
	for (i=0;i<current_contacts.length;i++) {
		sel = 'cbContact_' + current_contacts[i];
		//$(sel).setProperty('checked', $('contactsSelToggle').getProperty('checked'));
		$(sel).setProperty('checked', !$(sel).getProperty('checked'));
	}
}

function deleteSelectedContacts() {
	selected_contacts = new Array();
	for (i=0;i<current_contacts.length;i++) {
		sel = 'cbContact_' + current_contacts[i];
		if ($(sel).getProperty('checked')) {
			selected_contacts[selected_contacts.length] = current_contacts[i];
		}
	}

	contactsToDelete = '';
	for (i=0;i<selected_contacts.length;i++) {
		contactsToDelete += '&contacts[]=' + selected_contacts[i];
	}
	/*
	if (confirm('Are you sure you want to delete these contacts?\n\n' + selected)) {
		new Ajax('ajax.php', {
			method: 'post',
			postBody: 'function=deleteContacts'
				+ contactsToDelete,
			onComplete: reloadContactPage
		}).request();
	}
	*/
}

function updateDeleteContact(responseText) {
	var responseData = Json.evaluate(responseText);
	reloadContactPage();
	$('deleteContactFeedback').setStyle('display', 'block');
	$('deleteContactFeedback').setHTML(responseData.response.reason);	
	return false;
}

function doDeleteContact() {
	selected_contacts = new Array();
	for (i=0;i<current_contacts.length;i++) {
		sel = 'cbContact_' + current_contacts[i];
		if ($(sel).getProperty('checked')) {
			selected_contacts[selected_contacts.length] = current_contacts[i];
		}
	}

	contactsToDelete = '';
	for (i=0;i<selected_contacts.length;i++) {
		contactsToDelete += '&contacts[]=' + selected_contacts[i];
	}
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=deleteContacts'
			+ contactsToDelete,
		onComplete: updateDeleteContact
	}).request();
}
//========================================================================
function updateSavePreferences(responseText) {
	var responseData = Json.evaluate(responseText);
	$('prefsFeedback').setHTML('');
	$('prefsFeedback').setStyle('display', 'block');
	$('prefsFeedback').setHTML(responseData.response.reason);
	return false;
}

function doSavePreferences() {
	$('prefsFeedback').setHTML('Please wait...');
	new Ajax('ajax.php', {
		method: 'post',
		postBody: 'function=savePreferences'
			+ '&alwaysLowCalls=' + $('prefLowCalls').getProperty('checked')
			+ '&alwaysVeryLowCalls=' + $('prefVeryLowCalls').getProperty('checked')
			+ '&chargeAccount=' + $('prefChargeAccount').getProperty('checked'),
		onComplete: updateSavePreferences
	}).request();
	return false;	
}

function doSubmitPayPal() {
	$('paypalSubmit').setProperty('disabled', true);
	return true;
}