


var globalToolTip = new Kiji.ToolTip("gblToolTip");
var quickToolTip =  new Kiji.ToolTip("quickToolTip");

var loadFuncs = new Array();
var loginMenu = new Kiji.MenuWindow("loginMenu");
var infoMsgWindow = new Kiji.MessageWindow('infoMsgWindow');
var timeoutWindow = new Kiji.MessageWindow('TimeoutWindow');
var takenTicketsWindow = new Kiji.MessageWindow('takenTicketsWindow');
var nopolsWindow = new Kiji.MessageWindow('nopolsWindow');
var dropOrderWindow = new Kiji.MessageWindow('dropOrderWindow');
var policiesWindow = new Kiji.MessageWindow('policiesWindow');
var policiesCheckoutWindow = new Kiji.MessageWindow('policiesCheckoutWindow');
var policiesDeliveryWindow = new Kiji.MessageWindow('policiesDeliveryWindow');
var waitingWindow = new Kiji.MessageWindow('waitingWindow');
var waitingCount = 0;
var tooltipShowed = false;

function showEventToolTip(event, id_img, description, functions, prices)
{
	var str = '';
	if (id_img > 0)
		str += '<table><tr><td><img src="' + img_src + '?img=' + id_img + '" width="150" height="100" />';
	str += '</td><td valign="top">' + description + '</td></tr></table>';
	functions = functions.split('*');
	var i = 0;
	var len = functions.length;
	while (i < len)
	{
		if (functions[i].length > 0)
			str += functions[i] + ' ';
		i++;
	}
	str += '<br />';
	prices = prices.split('*');
	var i = 0;
	var len = prices.length;
	var cat = null;
	str += '<table>';
	while (i < len)
	{		
		if (prices[i].length > 0)
		{
			cat = prices[i].split(':');
			str += '<tr><td><span class="sits" style="border-color:#' + cat[0] + ';"></span></td><td>' + cat[1] + '</td><td> ' + cat[2] + '</td></tr>';
		}
		i++;
	}
	str += '</table>';
	showToolTip(str, event);
}

function showToolTip(info, title)
{
	globalToolTip.showToolTip(info, title);
}

function killToolTip()
{
	globalToolTip.hideToolTip();
}

function showQuickTip(info, bgcolor)
{
	quickToolTip.setWindowStyle('backgroundColor', bgcolor);
	quickToolTip.setWindowStyle('border', '1px solid #555555');
	quickToolTip.showToolTip(info);
}

function showSitTip(row, sit, price, color)
{
	var str = row + ': ' + sit + '<br />';
	str += price;
	showQuickTip(str, color);
}

function killQuickTip()
{
	quickToolTip.hideToolTip();
}

function showTicketTip(html_row, title, event, funct, place, locality, section, row, sit, table)
{
	var str = '<center><table cellpading="0" cellspacing="0"><tr><td class="titleBar" colspan="2">' + title + '</td></tr>';
	str += '<tr><td>Evento: </td><td>' + event + '</td></tr>';
	str += '<tr><td>Funci&oacute;n: </td><td>' + funct + '</td></tr>';
	str += '<tr><td>Lugar: </td><td>' + place + '</td></tr>';
	
	str += '<tr><td>Localidad:&nbsp;&nbsp;</td><td>' + locality + '</td></tr>';
	str += '<tr><td>Secci&oacute;n: </td><td>' + section + '</td></tr>';
	if (row != '')
		str += '<tr><td>Fila: </td><td>' + row + '</td></tr>';
	if (table!='')
		str += '<tr><td>Mesa: </td><td>' + table + '</td></tr>';
	str += '<tr><td>Asiento: </td><td>' + sit + '</td></tr>';
	
	
	str += '</table>';
	html_row.style.backgroundColor = '#F5F5F5';
	showQuickTip(str, '#FFFFFF');
}

function killTicketTip(row)
{
	row.style.backgroundColor = '#FFF';
	quickToolTip.hideToolTip();
}

function showWaitingWindow(count)
{
	if ( (waitingCount == 0) && (count > 0) )
	{
		waitingCount += count;
		var str = '<img src="' + loading_anim + '" />'
		waitingWindow.showMessage('Cargando', str);
	}
	else
	{
		waitingCount += count;
		if (waitingCount <= 0)
		{
			waitingWindow.hideMessage();
			waitingCount = 0;
		}
	}	
}

function showInfoMsg(title, msg)
{
	infoMsgWindow.showMessage(title, msg);
}

function ShowMessage(msg)
{
	showInfoMsg('Mensaje', msg);
}

function showTakenTickets(title, msg)
{
	takenTicketsWindow.showMessage(title, msg);
}

function ShowTimeout()
{
	timeoutWindow.showMessage('Tiempo Culminado', 'Ha concluido el tiempo maximo de reservacion. Los boletos han sido liberados.');
}

function ShowNoPolicies()
{
	nopolsWindow.showMessage('Alerta', 'Ha escogido no aceptar las politicas del servicio, usted retornar&aacute; al sitio principal y perder&aacute; los boletos que tiene apartados, ¿Desea continuar?.');
}

function ShowDropOrder()
{
	nopolsWindow.showMessage('Alerta', 'Se cancelar&aacute;n todas las ordenes y se perder&aacute;n los boletos reservados, Desea continuar?');
}

function info_callback(btnId)
{
	switch(btnId)
	{
		case "btnOkInfo":
			break;
	}
	infoMsgWindow.hideMessage();
}

function taken_callback(btnId)
{
	takenTicketsWindow.hideMessage();
	switch(btnId)
	{
		case "btnOkTakenSits":
			taber.changeTab('sit');
			break;
	}
}

function nopols_callback(btnId)
{
	switch(btnId)
	{
		case "btnYes":
			componentBlock.actions.cancelOrders();
			break;
		case "btnNo":
			break;
	}
	nopolsWindow.hideMessage();
}

function dropOrder_callback(btnId)
{
	switch(btnId)
	{
		case "btnDoYes":
			componentBlock.actions.cancelOrders();
			break;
		case "btnDoNo":
			break;
	}
	dropOrderWindow.hideMessage();
}

function timeoutdialog_callback(btnId)
{
	switch(btnId)
	{
		case "btnOkTime":
			componentBlock.actions.cancelOrders();
			break;
	}
	timeoutWindow.hideMessage();
}

function showLoginMenu(event)
{
	loginMenu.showMenu('login', event);
}

function login_callback(opt, id, event)
{
	switch (opt)
	{
		case 'about':
			showInfoMsg('Acerca de', 'Whoa!!');
			break;
	}
}

function showPolicies(checkout)
{

	if (checkout)
		policiesCheckoutWindow.showMessage('Politicas de Compra', agreement);
	else
		policiesWindow.showMessage('Politicas de Compra', agreement);
}

function showDeliveryPolicies()
{
	policiesDeliveryWindow.showMessage('Politicas de Servicio a Domicilio', delivery_service_agreement);
}


function pol_callback(btnId)
{
	switch(btnId)
	{
		case "btnOkPol":
			break;
	}
	policiesWindow.hideMessage();
}

function checkout_pol_callback(btnId)
{
	policiesCheckoutWindow.hideMessage();
	switch(btnId)
	{
		case "btnOkPol":
			trycheckout($('checkoutButton'));
			break;
		case "btnNoPol":
			break;
	}
}

function delivery_pol_callback(btnId)
{
	policiesDeliveryWindow.hideMessage();
	switch(btnId)
	{
		case "btnOkPol":
			taber.changeTab('delivery');
			break;
		case "btnNoPol":
			break;
	}
}

/*
function togglePriceTable(obj)
{
	var table = document.getElementById('priceTable');
	if (table.style.display == 'none')
	{
		table.style.display = '';
		obj.innerHTML = '-';
	}
	else
	{
		table.style.display = 'none';
		obj.innerHTML = '+';
	}
}
*/

function load()
{
	Kiji.initialize('includes/js/blank.html');
	var buttonList = new Array;
	var buttonListt = new Array;
	var buttonListnp = new Array;
	var buttonListdo = new Array;
	var buttonListp = new Array;
	var elementList = new Array;
	globalToolTip.createToolTip(
									{
										messageClassName: "windowMessageBody",
										titleClassName: "windowMessageTitle",
										showTitle: true
									}
								);

	quickToolTip.createToolTip(
									{
										messageClassName: "windowMessageBody",
										showTitle: false,
										alphaLimit: 0.6
									}
								);

	waitingWindow.createMessageWindow([], function dummy(opt, id, event) {}, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns",
													width: '50',
													height: '50',
													showTitle: 'false'
												}
											);

	buttonList[0] = {btnName: 'Aceptar', btnId: 'btnOkInfo', btnClassName: 'button' };
	infoMsgWindow.createMessageWindow(buttonList, info_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns"
												}
											);

	buttonList[0] = {btnName: 'Aceptar', btnId: 'btnOkTakenSits', btnClassName: 'button' };
	takenTicketsWindow.createMessageWindow(buttonList, taken_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns"
												}
											);

	buttonListt[0] = {btnName: 'Aceptar', btnId: 'btnOkTime', btnClassName: 'button' };
	timeoutWindow.createMessageWindow(buttonListt, timeoutdialog_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns"
												}
											);

	buttonListnp[0] = {btnName: 'Si', btnId: 'btnYes', btnClassName: 'button' };
	buttonListnp[1] = {btnName: 'No', btnId: 'btnNo', btnClassName: 'button' };
	nopolsWindow.createMessageWindow(buttonListnp, nopols_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns"
												}
											);
											
	buttonListdo[0] = {btnName: 'Si', btnId: 'btnDoYes', btnClassName: 'button' };
	buttonListdo[1] = {btnName: 'No', btnId: 'btnDoNo', btnClassName: 'button' };
	dropOrderWindow.createMessageWindow(buttonListnp, dropOrder_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns"
												}
											);
											
	buttonListp[0] = {btnName: 'Aceptar', btnId: 'btnOkPol', btnClassName: 'button' };
	policiesWindow.createMessageWindow(buttonListp, pol_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns",
													width: '450',
													height: '270'
												}
										);

	buttonListp[1] = {btnName: 'No Aceptar', btnId: 'btnNoPol', btnClassName: 'button' };
	policiesCheckoutWindow.createMessageWindow(buttonListp, checkout_pol_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns",
													width: '450',
													height: '270'
												}
										);
	policiesDeliveryWindow.createMessageWindow(buttonListp, delivery_pol_callback, 
												{
													styleClassName: "windowMessage",
													titleClassName: "windowMessageTitle",
													bodyClassName: "windowMessageBody",
													buttonAreaClassName: "windowMessageBtns",
													width: '550',
													height: '470'
												}
										);

	elementList[0] = { mnClassName: "windowMenuOut", mnOverClassName: "windowMenuOver", mnClickClassName: "windowMenuClick", mnName: "Acceder", mnId: "login"};
	elementList[1] = { mnClassName: "windowMenuOut", mnOverClassName: "windowMenuOver", mnClickClassName: "windowMenuClick", mnName: "Olvido la clave?", mnId: "forgot"};
	elementList[2] = { mnClassName: "windowMenuOut", mnOverClassName: "windowMenuOver", mnClickClassName: "windowMenuClick", mnName: "Registrarse", mnId: "register"};
	elementList[3] = { mnClassName: "windowMenuOut", mnOverClassName: "windowMenuOver", mnClickClassName: "windowMenuClick", mnName: "Acerca de TT", mnId: "about"};
    loginMenu.createMenuWindow(elementList, login_callback, { styleClassName: "windowMenu"});
}


loadFuncs.push(load);
//Event.observe(window, 'load', load, false);


function loadSystem()
{
	var i = 0;
	var len = loadFuncs.length;
	while (i < len)
	{
		loadFuncs[i]();
		i++;
	}
}

Event.observe(window, 'load', loadSystem, false);


