
//GLOBALS
var http_request = false;

var monthArray = Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
var daysPerMonth = Array (31,28,31,30,31,30,31,31,30,31,30,31)
var ordinalArray = Array ('st','nd','rd','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','st','nd','rd','th','th','th','th','th','th','th','st')
var daysOfWeek = Array ('Su','Mo','Tu','We','Th','Fr','Sa')

var rollbake = 1
var rollweight = 2

var breadbake = 1

var croissantweight = 3
var danishweight = 3

var productCode = ''

var productCategory = ''
var productDescription = ''
var productSize = ''					
var productWeight = ''
var productPackaging = ''
var productUnitPrice = 0
var productBoxPrice = 0
var preparationHeader = ''
var preparationInstructions = ''

var totalPrice = 0
var quantityOrdered = 0
var date = ''
var month = ''
var deliveryMonth = ''
var deliveryDate = ''

var cartStr = ''
var cartArray = ''
var cartArrayLength = ''
var totalOrderPrice = 0



function welcome()
{	
	var remember = readCookie('remember')
	if (remember != null)
	{
		document.getElementById('loggedIn').value = 'true'
		document.getElementById('customerName').value = remember
	}

	if (document.getElementById('loggedIn').value == 'true')
	{
		//Value is 'true' if........
		//1. 'remember' cookie has seen set; or
		//2. Customer has logged in on this session
		document.getElementById('welcome').innerHTML = 'Welcome back ' + document.getElementById('customerName').value
	}
}

//AJAX Routine
function XHR(method)
{
	http_request = false;
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (method == 'post')
		{
			if (http_request.overrideMimeType)
			{
				http_request.overrideMimeType('text/html')
			}
		}
	}
	else if (window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject('Msxml2.XMLHTTP')
		}
		catch (e)
		{
			try
			{
				http_request = new ActiveXObject('Microsoft.XMLHTTP')
			}
			catch (e){}
		}
	}
	else return false
}

//AJAX Post
function ajaxPost(url, str, postingThrobber)
{
	document.getElementById(postingThrobber).style.display = 'block'
	XHR('post')
	http_request.onreadystatechange = function()
	{
		if (http_request.readyState == 4 && http_request.status == 200)
		{
			document.getElementById(postingThrobber).style.display = 'none'
			document.getElementById('success').style.display = 'block'
		}
	}
	http_request.open('POST', url, true)
	http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
	http_request.setRequestHeader('Content-length', str.length)
	http_request.setRequestHeader('Connection', 'close')
	http_request.send(str)
}

//AJAX Get
function ajaxGet(url, holdingDiv, loadingThrobber)
{
	document.getElementById(loadingThrobber).style.visibility = 'visible'
	XHR('get')
	http_request.onreadystatechange=function() {loadPage(http_request, holdingDiv, loadingThrobber)}
	http_request.open('GET', url, true)
	http_request.send(null)
}

function loadPage(http_request, holdingDiv, loadingThrobber)
{
	if (http_request.readyState == 4 && (http_request.status==200 || window.location.href.indexOf('http')==-1))
	{
		document.getElementById(loadingThrobber).style.visibility = 'hidden'
		
		document.getElementById(holdingDiv).innerHTML = http_request.responseText			
		
		if (holdingDiv == 'customerName')
		{
			if (document.getElementById('customerName').value != '') //ie, if login.php has "echoed" customer's first name 
			{
				document.getElementById('loggedIn').value = 'true'
				loginProcess('true')
			}
			else
			{
				document.getElementById('loggedIn').value = 'false'
				loginProcess('false')
			}
		}
		if (holdingDiv == 'product-code')
		{
			var agentLogin = http_request.responseText
			if (agentLogin.length > 200) 
			{
				document.getElementById('login').style.display = 'none'
			}
		}								
	}
}

//Login
function login()
{
	if (document.getElementById('loggedIn').value != 'true')
	{
		var name = document.getElementById('username').value
		name = name.toLowerCase()
		var nameLength = name.length

		//strip white space
		nameLength --
		while (nameLength > 0)
		{
			if (name.charAt(nameLength) == ' ')
			{
				name = name.substring(0,nameLength)
			}
			nameLength --
		}
		
		var password = document.getElementById('password').value;

		//Encrypt
		var hash = name + password;
		hash = sha1Hash(hash);

		var URL = 'program-files/login.php?q='
		URL += hash;

		ajaxGet(URL, 'customerName', 'throbber')
	}
	document.getElementById('username').value = ''
	document.getElementById('password').value = ''
}

//Login process
function loginProcess(status)
{
	if (status == 'true')
	{
		document.getElementById('loginMessage').style.display = 'block'
		document.getElementById('loginMessageError').style.display = 'none'
		document.getElementById('loginMessage').innerHTML = 'Welcome back ' + document.getElementById('customerName').value
		remember()
	}
	else
	{
		document.getElementById('loginMessageError').style.display = 'block'
		document.getElementById('loginMessage').style.display = 'none'
	}
}

//Read cookies
function readCookie(name)
{
	var nameEQ = name + "="
	var ca = document.cookie.split(';')
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i]
		while (c.charAt(0)==' ') c = c.substring(1,c.length)
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length)
	}
	return null
}

//Write cookies
function setCookie(name, value, expires)
{
	document.cookie = name + "=" + escape(value) + "; path=/" + ((expires == null) ? "" : "; expires=" + expires.toGMTString())
}

//Set expiry day for cookies 1 year ahead
var exp = new Date()
exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 365))

//Variable to delete cookies
var del = new Date()
del.setTime(del.getTime() - (1))

//Remember language checkbox
function remember()
{
	if (document.getElementById('remember').checked == 1 && document.getElementById('loggedIn').value == 'true')
	{
		setCookie('remember',document.getElementById('customerName').value, exp)
	}
	else
	{
		setCookie('remember',document.getElementById('customerName').value, del)
	}
}

//Configure links for rolls
function rolls(rollCode)
{
	var URL = "products.php?q=ro-" + rollweight + rollCode
	rollbake == 1 ? URL += 'b' : URL +=''
	location.href = URL
}

//Configure links for breads
function breads(breadCode)
{
	var URL = "products.php?q=br-" + breadCode
	breadbake == 1 ? URL += 'b' : URL +=''
	location.href = URL
}

//Configure links for croissants
function croissants(croissantCode)
{
	var URL = "products.php?q=cr-00"
	if (croissantweight == 5)
	{
		croissantCode +=2
	}
	URL += croissantCode
	location.href = URL
}

//Configure links for danish pastries
function danish(danishCode)
{
	var URL = "products.php?q=da-0"
	if (danishweight == 5)
	{
		danishCode +=1
		danishCode == 13 ? danishCode = 14: danishCode += 0
	}
	URL += danishCode
	location.href = URL
}

