var xmlHttp;

var userData = new Array();

var bookData = new Array();

var bookedData = new Array();

var serviceData = new Array();

var data;



/**

*	global organisation data

*/

var book_id;



var organisation;	

var orgnr;	

var note;	

var address2;	

var zip2;	

var city2;	

var phone2;	

var fax2;

var email2;





function GetXmlHttpObject() { 

  var objXMLHttp=null



	if (window.XMLHttpRequest) {

	  objXMLHttp=new XMLHttpRequest();

	  if (objXMLHttp.overrideMimeType) {

         	// set type accordingly to anticipated content type

            //objXMLHttp.overrideMimeType('text/xml');

            objXMLHttp.overrideMimeType('text/html');

         }

	}

	else if (window.ActiveXObject) {

 	  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");

	}



  return objXMLHttp

}



function stateChanged(xmlHttpObj, id)

{ 

	if (xmlHttpObj.readyState==4 || xmlHttpObj.readyState=="complete")

	{ 

		if(id == "list")

		{

		  document.getElementById("book_main").innerHTML = xmlHttpObj.responseText;

			document.getElementById('book_loading').style.display = 'none';

		}

		 

		if(id == "booked")

		{

			document.getElementById("book_main2").innerHTML = xmlHttpObj.responseText;

			document.getElementById('book_loading').style.display = 'none';

		}

		 

		if(id == "getbookedservice")

		{

			document.getElementById("book_bcourse").innerHTML = xmlHttpObj.responseText;

			document.getElementById('book_loading').style.display = 'none';

		}

		

		if(id == "getbookedservicesimple")

		{

			document.getElementById("book_bcoursesimple").innerHTML = xmlHttpObj.responseText;

			document.getElementById('book_loading').style.display = 'none';

		}

		

		if(id == "book_login")

		{

			eval(xmlHttpObj.responseText);

			document.getElementById('book_loading').style.display = 'none';

		}

		

		if(id == "book_finishbooking")

		{

			eval(xmlHttpObj.responseText);

			document.getElementById('book_loading').style.display = 'none';

		}

		

		if(id == "editbook")

		{

			document.getElementById("book_ebholder").innerHTML = xmlHttpObj.responseText;

			document.getElementById('book_loading').style.display = 'none';

		}

		

		if(id == "book_insertinvoice")

		{

			document.getElementById('book_loading').style.display = 'none';

			eval(xmlHttpObj.responseText);

		}

	}

}



/*

	gets and lists all services

*/

function sortList(listOrder, listSort)

{

	document.getElementById('book_loading').style.display = 'block';

	

	sortListXmlHttp = GetXmlHttpObject();

	

	if(sortListXmlHttp != null)

	{

		var url="../book.php";

		url = url+"?action=list&order=" + listOrder + "&sort=" + listSort + "&sessid=" + Math.random();	



		sortListXmlHttp.onreadystatechange = function() { stateChanged(sortListXmlHttp, 'list'); };

		sortListXmlHttp.open("GET", url, true);

		sortListXmlHttp.send(null);

	}

}



/*

	gets and lists the users bookings

*/

function sortBooked(userid, listOrder, listSort)

{

	document.getElementById('book_loading').style.display = 'block';

	

	sortBookedXmlHttp = GetXmlHttpObject();

	

	if(sortBookedXmlHttp != null)

	{

		var url="../book.php";

		url = url+"?action=booked&userid=" + userid + "&order=" + listOrder + "&sort=" + listSort + "&sessid=" + Math.random();



		sortBookedXmlHttp.onreadystatechange = function() { stateChanged(sortBookedXmlHttp, 'booked'); };

		sortBookedXmlHttp.open("GET", url, true);

		sortBookedXmlHttp.send(null);

	}

}



/*

	login

*/

function book_login()

{

	document.getElementById('book_loading').style.display = 'block';

	

	loginXmlHttp = GetXmlHttpObject();



	var str = "username=" + encodeURI( document.getElementById("loginUsername").value ) +

              "&password=" + encodeURI( document.getElementById("loginPassword").value );

			  

    loginXmlHttp.onreadystatechange = function() { stateChanged(loginXmlHttp, 'book_login'); };;

    loginXmlHttp.open('POST', "book.php?action=login", true);

    loginXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    loginXmlHttp.setRequestHeader("Content-length", str.length);

    loginXmlHttp.setRequestHeader("Connection", "close");

    loginXmlHttp.send(str);

}



function book_logout()

{

	userData.length = 0;

	bookData.length = 0;

	bookedData.length = 0;

	serviceData.length = 0;

	

	document.getElementById('book_horizontal_hide').style.display = 'none'; // "dölj mina kurser"

	document.getElementById('book_horizontal_show').style.display = 'none'; // "visa mina kurser"

	document.getElementById('book_simplebook').style.display = 'none'; // book without logging in

	document.getElementById('book_bholder').style.display = 'none'; // book when logged in

	document.getElementById('book_ebholder').style.display = 'none'; // edit book

	document.getElementById('book_main2').style.display = 'none'; // booked list 

	

	document.getElementById('book_tips').innerHTML = '<strong>TIPS!</strong> Klicka på rubrikerna för att sortera kurser efter vald kategori.';

	

	// login screen

	document.getElementById('book_login').style.display = 'block';

}



/*

	cancel a booking session

*/

function cancelBook()

{

	bookData.length = 0; // information about the booking session

	bookedData.length = 0; // booked persons

	

	// show the 'dölj mina kurser'-link

	document.getElementById('book_horizontal_hide').style.display = 'block';

	

	document.getElementById('book_bholder').style.display = 'none';

	document.getElementById('book_main2').style.display = 'block';

	

	// clears the person box in the book sesssion

	document.getElementById('book_bbooked_content').innerHTML = '';

}



/*

	start a booking session

*/

function book_go(service_id, service_name, service_seats)

{

	bookData.length = 0;

	

	goToTop();



	/* need to be logged in */

	if(userData.length == 0)

	{

		bookData.push(service_seats, service_id, service_name);

		getBookedService(service_id, 0);



		// hide the login window

		document.getElementById('book_login').style.display = 'none';

		

		// hide the 'dölj mina kurser'-link

		document.getElementById('book_horizontal_hide').style.display = 'none';

		document.getElementById('book_horizontal_show').style.display = 'none';

			

		// hide edit book session

		document.getElementById('book_ebholder').style.display = 'none';

			

		// show the booking session

		document.getElementById('book_main2').style.display = 'none';

		document.getElementById('book_simplebook').style.display = 'block';

	}

	else

	{

		/* check to see if the user has a booking session already */

		if(bookedData.length == 0)

		{

			bookData.push(service_seats, service_id, service_name);

			getBookedService(service_id, 1);

			

			// hide the 'dölj mina kurser'-link

			document.getElementById('book_horizontal_hide').style.display = 'none';

			document.getElementById('book_horizontal_show').style.display = 'none';

			

			// hide edit book session

			document.getElementById('book_ebholder').style.display = 'none';

			

			// show the booking session

			document.getElementById('book_main2').style.display = 'none';

			document.getElementById('book_bholder').style.display = 'block';

		}

		else

		{

			bookData.push(service_seats, service_id, service_name);

			getBookedService(service_id, 1);

		}

	}

	

	shadowSetHeight();

}



/*

	gets information about the service for the booking session

*/

function getBookedService(id, arg)

{

	document.getElementById('book_loading').style.display = 'block';

	

	listXmlHttp = GetXmlHttpObject();

	

	if(listXmlHttp != null)

	{

		var url="../book.php";

		url = url+"?action=getbookedservice&id=" + id + "&sessid=" + Math.random();

		

		if(arg == 1)

			listXmlHttp.onreadystatechange = function() { stateChanged(listXmlHttp, 'getbookedservice'); };

		else

			listXmlHttp.onreadystatechange = function() { stateChanged(listXmlHttp, 'getbookedservicesimple'); };

		

		listXmlHttp.open("GET", url, true);

		listXmlHttp.send(null);

	}

}



/*

	adds a person in the book session

*/

function addPerson()

{

	var name = document.getElementById('book_formName').value;

	document.getElementById('book_formName').value = '';

	

	var city = document.getElementById('book_formCity').value;

	document.getElementById('book_formCity').value = '';

	

	var company = document.getElementById('book_formCompany').value;

	

	var phone = document.getElementById('book_formPhone').value;

	document.getElementById('book_formPhone').value = '';

	

	var address = document.getElementById('book_formAddress').value;

	document.getElementById('book_formAddress').value = '';

	

	var email = document.getElementById('book_formEmail').value;

	document.getElementById('book_formEmail').value = '';

	

	var message = document.getElementById('book_formMessage').value;

	document.getElementById('book_formMessage').value = '';

	

	var zip = document.getElementById('book_formZip').value;

	document.getElementById('book_formZip').value = '';

	

	var mobile = document.getElementById('book_formMobile').value;

	document.getElementById('book_formMobile').value = '';

	

	// count current booked persons	

	if(bookData[0] <= bookedData.length)

	{

		alert('Kursen är nu fullbokad.');

	}

	else if(name.length == 0 || company.length == 0 || mobile.length == 0 || email.length == 0)

	{

		alert('Du måste fylla i För- och efternamn, organisation, mobil och e-post.');

	}

	else

	{

		// add person

		bookedData.push(new Array(name, city, company, phone, address, email, message, zip, mobile, bookData[2], bookData[1])); // servicename & serviceid

		//							0	  1 	2		3		4		5		6		7		8		9			10

	}

	

	// update the list

	updateBookedPersons();

	

	// set the height of the shadow layer

	shadowSetHeight();

}



function delPerson(name)

{

    for(e in bookedData)

	  if(bookedData[e][0] == name)

        bookedData.splice(e, 1);



  	updateBookedPersons();

}



function updateBookedPersons()

{

	var cBookedStr = '<ul>';

	

	var b;

	for(b in bookedData)

	{

		var a = b;

		a++;

		cBookedStr += '<li>' + a +'. '+ bookedData[b][0] +', '+ bookedData[b][9] + ' <img src="images/arrow_green.gif" alt="" /> <a href="javascript:delPerson(\''+ bookedData[b][0] +'\');" class="link_white"><strong>Radera</strong></a></li>';

	}

	

	if(bookedData.length == 0)

		cBookedStr += '<li>Inga anmälda ännu</li>';

	

	cBookedStr += '</ul>';



	document.getElementById('book_bbooked_content').innerHTML = cBookedStr;

}



/*

	finish booking session and save data to db

*/

function book_finish()

{

	if(bookedData.length == 0)

	{

		alert('Du måste lägga till en eller fler personer.');

		return;

	}

	

	document.getElementById('book_loading').style.display = 'block';

	

	bookXmlHttp = new Array();

	var x = 0; // counter

	for(b in bookedData)

	{

		bookXmlHttp[b] = GetXmlHttpObject();



		if(bookXmlHttp[b] != null)

		{

			var str = "serviceid=" + bookedData[b][10] + "&userid=" + encodeURI(userData[0][0]) + "&name=" + encodeURI(bookedData[b][0]) + "&city=" + encodeURI(bookedData[b][1]);

				str = str + "&company=" + encodeURI(bookedData[b][2]) + "&phone=" + encodeURI(bookedData[b][3]) + "&address=" + encodeURI(bookedData[b][4]) + "&email=" + encodeURI(bookedData[b][5]) + "&message=" + encodeURI(bookedData[b][6]) + "&zip=" + encodeURI(bookedData[b][7]) + "&mobile=" + encodeURI(bookedData[b][8]);



			bookXmlHttp[b].onreadystatechange = function() { stateChanged(bookXmlHttp[b], 'book_finishbooking'); };;

			bookXmlHttp[b].open('POST', "book.php?action=finishbooking", true);

			bookXmlHttp[b].setRequestHeader("Content-type", "application/x-www-form-urlencoded");

			bookXmlHttp[b].setRequestHeader("Content-length", str.length);

			bookXmlHttp[b].setRequestHeader("Connection", "close");

			bookXmlHttp[b].send(str);

		}

		x++;

	}

	

	// fetch data about the service and send a mail to lysandeutsikter

	mailServiceData(bookData[1], userData[0][0], bookedData.length)


	alert('Din anmälan har tagits emot av oss på Lysande Utsikter.');

	

	// end the booking session

	cancelBook();

	shadowSetHeight();

}



// finish simple booking - booking without logging in

function book_simplefinish()

{

	document.getElementById('book_loading').style.display = 'block';

	

	// get all book user data

	var name = document.getElementById('simple_formName').value;

	var city = document.getElementById('simple_formCity').value;

	var company = document.getElementById('simple_formCompany').value;

	var phone = document.getElementById('simple_formPhone').value;	

	var address = document.getElementById('simple_formAddress').value;

	var zip = document.getElementById('simple_formZip').value;

	var email = document.getElementById('simple_formEmail').value;	

	var fax = document.getElementById('simple_formFax').value;	

	var title = document.getElementById('simple_formTitle').value;

	var mobile = document.getElementById('simple_formMobile').value;

	

	var message = document.getElementById('simple_formMessage').value;

	

	// get book invoice data

	organisation = document.getElementById('simple_formOrganisation').value;	

	orgnr = document.getElementById('simple_formOrgnr').value;	

	note = document.getElementById('simple_formNote').value;	

	address2 = document.getElementById('simple_formAddress2').value;	

	zip2 = document.getElementById('simple_formZip2').value;	

	city2 = document.getElementById('simple_formCity2').value;	

	phone2 = document.getElementById('simple_formPhone2').value;	

	fax2 = document.getElementById('simple_formFax2').value;

	email2 = document.getElementById('simple_formEmail2').value;

	

	// invoice address is the same as the persons address

	if(document.getElementById('sameAddress').checked == true)

	{

		address2 = address;

		zip2 = zip;

		city2 = city;

		phone2 = phone;

		fax2 = fax;

		email2 = email;

		organisation = company;

	}

	

	if(name.length == 0 || company.length == 0 || mobile.length == 0 || email.length == 0 || organisation.length == 0)

	{

		alert('Du måste fylla i För- och efternamn, organisation, mobil och e-post.');

		document.getElementById('book_loading').style.display = 'none';

		return;

	}



	// user data -- returns book_id for invoice and puts it in invoice_book_id

	var bookSimpleXmlHttp = GetXmlHttpObject();

	if(bookSimpleXmlHttp != null)

	{

		var str = "serviceid=" + encodeURI(bookData[1]) + "&userid=0&name=" + encodeURI(name) + "&city=" + encodeURI(city);

			str = str + "&company=" + encodeURI(company) + "&phone=" + encodeURI(phone) + "&address=" + encodeURI(address) + "&email=" + encodeURI(email);

			str = str + "&title=" + encodeURI(title) + "&mobile=" + encodeURI(mobile) + "&fax=" + encodeURI(fax) + "&message=" + encodeURI(message) + "&zip=" + encodeURI(zip);



		bookSimpleXmlHttp.onreadystatechange = function() { stateChanged(bookSimpleXmlHttp, 'book_finishbooking'); };;

		bookSimpleXmlHttp.open('POST', "book.php?action=finishbooking", true);

		bookSimpleXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

		bookSimpleXmlHttp.setRequestHeader("Content-length", str.length);

		bookSimpleXmlHttp.setRequestHeader("Connection", "close");

		bookSimpleXmlHttp.send(str);

	}

	

	// fetch data about the service and send a mail to lysande utsikter

	str = encodeURI(name) +','+ encodeURI(city) +','+ encodeURI(company) +','+ encodeURI(phone) +','+ encodeURI(address) +','+ encodeURI(email);

	str = str + ','+ encodeURI(title) +','+ encodeURI(mobile) +','+ encodeURI(fax) +','+ encodeURI(message);

	str = str + ','+ encodeURI(organisation) +','+ encodeURI(orgnr) +','+ encodeURI(note) +','+ encodeURI(address2) +','+ encodeURI(zip2) +','+ encodeURI(city2);

	str = str + ','+ encodeURI(phone2) +','+ encodeURI(fax2) +','+ encodeURI(email2) +','+ encodeURI(zip);



	mailServiceData(bookData[1], 0, bookedData.length, str);

}



function insertServiceData()

{

	var bookSimpleInvoiceXmlHttp = GetXmlHttpObject();

	if(bookSimpleInvoiceXmlHttp != null)

	{

		var str = "organisation=" + encodeURI(organisation) + "&orgnr=" + encodeURI(orgnr);

			str = str + "&note=" + encodeURI(note) + "&address=" + encodeURI(address2) + "&zip=" + encodeURI(zip2) + "&city=" + encodeURI(city2);

			str = str + "&phone=" + encodeURI(phone2) + "&fax=" + encodeURI(fax2) + "&email=" + encodeURI(email2) + "&book_id=" + encodeURI(book_id);

			

		bookSimpleInvoiceXmlHttp.onreadystatechange = function() { stateChanged(bookSimpleInvoiceXmlHttp, 'book_insertinvoice'); };;

		bookSimpleInvoiceXmlHttp.open('POST', "book.php?action=insertinvoice", true);

		bookSimpleInvoiceXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

		bookSimpleInvoiceXmlHttp.setRequestHeader("Content-length", str.length);

		bookSimpleInvoiceXmlHttp.setRequestHeader("Connection", "close");

		bookSimpleInvoiceXmlHttp.send(str);

	}

}



function cancelSimpleBook()

{

	bookData.length = 0; // information about the booking session

	bookedData.length = 0; // booked persons

	

	document.getElementById('book_simplebook').style.display = 'none';

	document.getElementById('book_login').style.display = 'block';

}



function mailServiceData(id, userid, persons, data)

{

	serviceXmlHttp = GetXmlHttpObject();

	

	if(serviceXmlHttp != null)

	{

		var url = "id=" + id + "&userid=" + userid + "&persons=" + persons;

		

		url = url + "&data=" + data;



		serviceXmlHttp.onreadystatechange = function() { stateChanged(serviceXmlHttp, 'mailservicedata'); };;

		serviceXmlHttp.open('POST', "book.php?action=mailservicedata", true);

		serviceXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

		serviceXmlHttp.setRequestHeader("Content-length", url.length);

		serviceXmlHttp.setRequestHeader("Connection", "close");

		serviceXmlHttp.send(url);

	}

}



function book_edit(id)

{

	document.getElementById('book_loading').style.display = 'block';

	

	// hide the 'dölj mina kurser'-link

	document.getElementById('book_horizontal_hide').style.display = 'none';

	

	document.getElementById('book_main2').style.display = 'none';

	document.getElementById('book_ebholder').style.display = 'block';



	editBookXmlHttp = GetXmlHttpObject();

	

	if(editBookXmlHttp != null)

	{

		var url="../book.php";

		url = url+"?action=editbook&id=" + id + "&sessid=" + Math.random();

		

		editBookXmlHttp.onreadystatechange = function() { stateChanged(editBookXmlHttp, 'editbook'); };

		editBookXmlHttp.open("GET", url, true);

		editBookXmlHttp.send(null);

	}

}



function cancelBookEdit()

{

	// show the 'dölj mina kurser'-link

	document.getElementById('book_horizontal_hide').style.display = 'block';

	

	document.getElementById('book_ebholder').style.display = 'none';

	document.getElementById('book_main2').style.display = 'block';

}



function bookEditFinish(id)

{

	document.getElementById('book_loading').style.display = 'block';

	

	var name = document.getElementById('book_eformName').value;	

	var city = document.getElementById('book_eformCity').value;

	var company = document.getElementById('book_eformCompany').value;

	var zip = document.getElementById('book_eformZip').value;

	var phone = document.getElementById('book_eformPhone').value;

	var mobile = document.getElementById('book_eformMobile').value;

	var address = document.getElementById('book_eformAddress').value;

	var email = document.getElementById('book_eformEmail').value;



	bookEditXmlHttp = GetXmlHttpObject();

		

	if(bookEditXmlHttp != null)

	{

		var str = "id=" + id + "&name=" + encodeURI(name) + "&city=" + encodeURI(city) + "&company=" + encodeURI(company) + "&phone=" + encodeURI(phone) + "&address=" + encodeURI(address) + "&email=" + encodeURI(email) + "&zip=" + encodeURI(zip) + "&mobile=" + encodeURI(mobile);



		bookEditXmlHttp.onreadystatechange = function() { stateChanged(bookEditXmlHttp, 'book_finishbooking'); };;

		bookEditXmlHttp.open('POST', "book.php?action=finisheditbooking", true);

		bookEditXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

		bookEditXmlHttp.setRequestHeader("Content-length", str.length);

		bookEditXmlHttp.setRequestHeader("Connection", "close");

		bookEditXmlHttp.send(str);

	}

}



// not used

function sendmail(to_email, from_name, from_email, subject, message)

{

	mailXmlHttp = GetXmlHttpObject();



	var str = "to_email=" + encodeURI(to_email) + "&from_name=" + encodeURI(from_name) + "&from_email=" + encodeURI(from_email) + "&subject=" + encodeURI(subject) + "&message=" + encodeURI(message);

			  

    mailXmlHttp.onreadystatechange = function() { stateChanged(mailXmlHttp, 'sendmail'); };;

    mailXmlHttp.open('POST', "book.php?action=sendmail", true);

    mailXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    mailXmlHttp.setRequestHeader("Content-length", str.length);

    mailXmlHttp.setRequestHeader("Connection", "close");

    mailXmlHttp.send(str);

}



// pushes the site up

function goToTop()

{

	window.scrollTo(0,0);

}



// open the book window and show a specific book session

function goBook(service_id, service_name, service_seats)

{

	book_go(service_id, service_name, service_seats);

	book(true);

}



function disableInvoice()

{

	if(document.getElementById('sameAddress').checked)

	{

		document.getElementById('simple_formAddress2').style.background = '#ccc';

		document.getElementById('simple_formAddress2').disabled = true;

		

		document.getElementById('simple_formZip2').style.background = '#ccc';

		document.getElementById('simple_formZip2').disabled = true;

		

		document.getElementById('simple_formCity2').style.background = '#ccc';

		document.getElementById('simple_formCity2').disabled = true;

		

		document.getElementById('simple_formPhone2').style.background = '#ccc';

		document.getElementById('simple_formPhone2').disabled = true;

		

		document.getElementById('simple_formFax2').style.background = '#ccc';

		document.getElementById('simple_formFax2').disabled = true;

		

		document.getElementById('simple_formEmail2').style.background = '#ccc';

		document.getElementById('simple_formEmail2').disabled = true;

		

		document.getElementById('simple_formOrganisation').style.background = '#ccc';

		document.getElementById('simple_formOrganisation').disabled = true;

	}

	else

	{

		document.getElementById('simple_formAddress2').style.background = '#fff';

		document.getElementById('simple_formAddress2').disabled = false;

		

		document.getElementById('simple_formZip2').style.background = '#fff';

		document.getElementById('simple_formZip2').disabled = false;

		

		document.getElementById('simple_formCity2').style.background = '#fff';

		document.getElementById('simple_formCity2').disabled = false;

		

		document.getElementById('simple_formPhone2').style.background = '#fff';

		document.getElementById('simple_formPhone2').disabled = false;

		

		document.getElementById('simple_formFax2').style.background = '#fff';

		document.getElementById('simple_formFax2').disabled = false;

		

		document.getElementById('simple_formEmail2').style.background = '#fff';

		document.getElementById('simple_formEmail2').disabled = false;

		

		document.getElementById('simple_formOrganisation').style.background = '#fff';

		document.getElementById('simple_formOrganisation').disabled = false;

	}

}