
var ajaxcall = "././ajaxcall/";
var panel_id = null;
var checkbox_id = null;

function uncheckOldDefaultAddress()
{
	baseObj = document.getElementById("addressBookContainer");
	if( baseObj !== null ) {
		var eleTableRows = baseObj.getElementsByTagName("tr");  
		for (var i=0; i < eleTableRows.length - 1; i++)  
		{
			if (i != checkbox_id)
			{
	            document.getElementById("defaultCheckbox" + i).checked = false;
			}
		}
	}
}

function ProcessSetDefaultAddress( response )
{
	if( parseInt(response, 10) > 0) 
	{
		uncheckOldDefaultAddress();
		//alert('Address Deleted');
	}
	else
	{
		alert('Error occurred while setting default address.');
	}
}

function setDefaultAddress(id, addrid)
{
	checkbox_id = id;
	checked = document.getElementById("defaultCheckbox" + id).checked;
	var postContent = '';
	postContent += "id=" + addrid+ "&";
	postContent += "value=" + checked;
	jQuery.get(ajaxcall + "setdefaultaddress.php", postContent, ProcessSetDefaultAddress);
}

function updateAddressLabel(id, element)
{
	var postContent = '';
	postContent += "id=" + id+ "&";
	postContent += "value=" + element.value;
	jQuery.get(ajaxcall + "updateaddress.php", postContent, ProcessUpdateLabel);
	element.parentNode.childNodes[0].innerHTML = element.value;
	sortingTable.reSort();
}

function ProcessUpdateAddress(response)
{
	if(parseInt(response, 10) !== 0)
	{
		alert('Error occured while updating address.');
	}
}

function updateAddressText(id, element)
{
	var postContent = '';
	postContent += "id=" + id+ "&";
	postContent += "value=" + element.value;
	jQuery.get(ajaxcall + "updateaddresstext.php", postContent, ProcessUpdateAddress);
}

function ProcessUpdateLabel(response)
{
	if(parseInt(response, 10) !== 0)
	{
		alert('Error occured while updating label.');
	}
}

function getMaximumAddresses()
{
	var myAjax = new Ajax.Request( ajaxcall + "getMaximumAddresses.php", {
		method: 'get',
		parameters: '',
		asynchronous:false
	} );
	var max = myAjax.transport.responseText;
	return parseInt( max, 10 );
}

function resetStripping(eleTable)
{
	var eleTableRows = eleTable.getElementsByTagName("tr");  
	for (var i=1; i < eleTableRows.length; i++)  
	{
		eleTableRows[i].className = "rowodd";  
		i++;
		if (i < eleTableRows.length)
		{
		  eleTableRows[i].className = "roweven";
		}
	}
}

function deleteAddressElement() 
{
	baseObj = document.getElementById("addressBookContainer");
	baseObj.deleteRow(document.getElementById(panel_id).rowIndex);
	resetStripping(baseObj);
}

function ProcessDeleteAddress(response) 
{
	if(parseInt(response, 10) > 0) 
	{
		deleteAddressElement();
		//alert('Address Deleted');
	}
	else
	{
		alert('Error occured while deleting address.');
	}
}

function deleteAddress(addrid, id) 
{
	panel_id = 'addressPanel' + id;
	if (confirm("Are you sure you want to delete this address?")) 
	{ 
		var postContent = '';
		postContent += "id=" + addrid;
		jQuery.get(ajaxcall + "deleteaddress.php", postContent, ProcessDeleteAddress);
	}
}

function ProcessAddingAddress(response) 
{
	if(parseInt(response, 10) === 0) 
	{
		alert('Error occured while adding address to the address book.');
	}
}

function closeAddressBookDialog()
{
	jQuery("#addressbookdialog").dialog("close");
}

function addAddressToAddressBook(id)
{
  var label = '';
	var data = document.getElementById(id).value;
	var separator = data.indexOf(":");
	if (separator >= 0){
		label = data.substr(0, separator);
		data = data.substring(separator + 1)
	}
	// call backend to add address
	var postContent = '';
	postContent += "label="+ label + "&";
	postContent += "addr=" + data + "&";
	postContent += "lat=0" + "&";
	postContent += "lon=0";
	jQuery.get(ajaxcall + "addAddress.php", postContent, ProcessAddingAddress);
	closeAddressBookDialog();
}

var addressBookDialogOpened = false;

function openAddressBook(id)
{
  if( !addressBookDialogOpened ) {
   addressBookDialogOpened = true;

	 jQuery("#addressbookdialog").dialog({
      autoOpen:false, 
      resizable: false, 
      close: function(event, ui) { 
        addressBookDialogOpened = false;
      }
   });

   jQuery("#addressbookdialog").load("addressbookdialog", "", function(){
      jQuery("#addressBookContainer tr").mouseover(function(){
			   jQuery(this).toggleClass('highlight');
			   if( jQuery(this).hasClass('roweven') ) {
			      jQuery(this).toggleClass('roweven');
			   }
			});
      jQuery("#addressBookContainer tr").mouseout(function(){
				jQuery(this).toggleClass('highlight');
				if( jQuery(this).hasClass('isEvenRow') ) {
				   jQuery(this).toggleClass('roweven');
				}
			});

		jQuery("#addressBookContainer tr:even").addClass('roweven');
      jQuery("#addressBookContainer tr:even").addClass('isEvenRow'); // just a marker

		jQuery("#addressBookContainer tr").click(function() {
			// set address text for id
			var label = jQuery(this).children(':first').text() + ":";
			if (label == ":"){
				label = "";
			}
			document.getElementById(id).value = label + jQuery(this).children(':last').text();
			document.getElementById(id).onchange();
			document.getElementById(id).style.color = '#333333';

			closeAddressBookDialog();
		}
		);
		
		jQuery("#addAddressButton").click(function(){
			addAddressToAddressBook(id);
		});
		// validate not at limit
		var count = jQuery("#addressBookContainer tr").length;
		var limit = jQuery("#maxAddresses").attr("value");
		var data = document.getElementById(id).value;
		document.getElementById("addressToAdd").innerHTML = data;
		if (data.length < 5 || count > limit || data.indexOf("stop address") >= 0)
		{
			jQuery("#addAddressButton").hide();
			document.getElementById("addressToAdd").innerHTML = "";
		}
		else
		{
			jQuery("#addAddressButton").show();
		}
	}
	);
	jQuery("#addressbookdialog").data("height.dialog", 500);
	jQuery("#addressbookdialog").data("width.dialog", 550);
	jQuery("#addressbookdialog").dialog("open");
 }
}

function ProcessLoadDefaultAddress(response) 
{
	if( response !== '') 
	{
		jQuery("#routeA").attr("value", response);
		jQuery("#routeA").change();
		jQuery("#routeA").attr("style", "color:#333333");
		jQuery("#routeB").focus();
	}
}

function loadDefaultAddress()
{
	if( addList.length == 0 ){
		var postContent = '';
		jQuery.get(ajaxcall + "getDefaultAddress.php", postContent, ProcessLoadDefaultAddress);
	}
}
