<?php


	include_once(dirname(__FILE__) . '/protected/core/core.php');
	
	header('Content-type: text/xml');
	
	echo '<?xml version="1.0" encoding="utf-8"?>';
    echo '<urlset 	xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
   					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   					xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 	http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';

	$oPage = new Page();
	$aLanguages = $oPage->aLanguages;

	foreach($aLanguages as $aLanguage) {
	
		$_GET['q'] = strtolower($aLanguage['code']);
		$oPage = new Page();

		?><url><loc><?php echo $oPage->root ?></loc></url><?php
					
		$aMenu = Menu::get();
		if ($aMenu) {
			foreach ($aMenu as $aPage) {
				?><url><loc><?php echo $oPage->root . $aPage['url']; ?></loc></url><?php
			}
		}
		?><url><loc><?php echo Page::keyToUrl('disclaimer'); ?></loc></url><?php
		?><url><loc><?php echo Page::keyToUrl('terms'); ?></loc></url><?php
		?><url><loc><?php echo Page::keyToUrl('privacy'); ?></loc></url><?php
	
		$aEvents = DB::toArray("
	
			SELECT 
				`event`.*, 
				`event_language`. `url`, 
				IF(SUM(IF(ticket_status.id IS NOT NULL AND profile_status.id IS NOT NULL AND `ticket_file`.`id` IS NOT NULL, 1,0))>0, 1, 0) AS `has_available`
	
			FROM `event` 
				INNER JOIN `status` AS `event_status` ON `event_status`.`id` = `event`.`approved` 
					AND `event_status`.`event` = '1'
				INNER JOIN `location` ON `location`.`id` = `event`.`location_id` 
				INNER JOIN `status` AS `location_status` ON `location_status`.`id` = `location`.`approved` 
					AND `location_status`.`location` = '1'
	
			LEFT JOIN `ticket` ON `event`.`id` = `ticket`.`event_id` AND `ticket`.`buyer` = '0'
			LEFT JOIN `status` AS `ticket_status` ON `ticket_status`.`id` = `ticket`.`approved` AND `ticket_status`.`ticket` = '1'
			LEFT JOIN `profile` ON `profile`.`id` = `ticket`.`profile_id` 
			LEFT JOIN `status` AS `profile_status` ON `profile_status`.`id` = `profile`.`approved` AND `profile_status`.`profile_sell` ='1'
			LEFT JOIN `ticket_file` ON `ticket_file`.`batch_id` = `ticket`.`id` AND (`sold` = '0' OR `order_def` = '0') AND `attachment` = '0'
			
			LEFT JOIN `event_language` ON `event_language`.`eventid` = `event`.`id` AND `event_language`.`languageid` = '1' 
			
			WHERE " . TicketTack::QueryEventDate(date('Y-m-d')) . "
			
			GROUP BY `event`.`id` 
			ORDER BY has_available DESC, `event`.`date`
		");
		if ($aEvents) {
			foreach ($aEvents as $aEvent) {
				?><url><loc><?php echo $oPage->root . $aEvent['url']; ?></loc></url><?php
				$aTypes = DB::toArray("
					
					SELECT `ticket_type`.*, IF(`ticket_type_language`.`id`,`ticket_type_language`.`name`,`ticket_type`.`name`) AS `name`,
					SUM(IF(ticket_status.id IS NOT NULL AND profile_status.id IS NOT NULL AND `ticket_file`.`id`IS NOT NULL, 1,0)) AS `available`
	
					FROM `ticket_type` 
					
					LEFT JOIN `ticket_type_language`
						ON `ticket_type_language`.`ticket_typeid` = `ticket_type`.`id`
						AND `ticket_type_language`.`languageid` = '" . $oPage->aCurrentLanguage['id'] . "'
	
					LEFT JOIN `ticket` ON `ticket`.`type_id` = `ticket_type`.`id` AND `ticket`.`event_id` = `ticket_type`.`event_id` AND `ticket`.`buyer` = '0'
					LEFT JOIN `status` AS `ticket_status` ON `ticket_status`.`id` = `ticket`.`approved` AND `ticket_status`.`ticket` = '1'
					LEFT JOIN `profile` ON `profile`.`id` = `ticket`.`profile_id` 
					LEFT JOIN `status` AS `profile_status` ON `profile_status`.`id` = `profile`.`approved` AND `profile_status`.`profile_sell` ='1'
					LEFT JOIN `ticket_file` ON `ticket_file`.`batch_id` = `ticket`.`id` AND (`sold` <= '0' OR `order_def`='0') AND `attachment` = '0'
	
					WHERE `ticket_type`.`event_id` = '" . $aEvent['id'] . "'
					GROUP BY `ticket_type`.`id`  
					ORDER BY `ticket_type`.`order`
	
				");
				foreach($aTypes as $aType) {
					if (count($aTypes) > 1) {
						?><url><loc><?php echo $oPage->root . $aEvent['url']; ?>/<?php echo Format::Url($aType['name'])?>/<?php echo $aType['id']; ?></loc></url><?php
					}
					if ($aEvent['has_available']) {
						$aTickets = DB::toArray("
							SELECT `ticket`.*,
								COUNT(`ticket_file`.`id`) AS `available`, 
								`profile`.`name`, `profile`.`FB_id`
							FROM `ticket`
							" . TicketTack::joinStatus('ticket') . "
							INNER JOIN `ticket_file`
								ON `ticket_file`.`batch_id` = `ticket`.`id`
								AND (`ticket_file`.`sold` <= '0' OR `ticket_file`.`order_def`='0') 
								AND `ticket_file`.`attachment`='0'
							WHERE `ticket`. `type_id` = '" . $aType['id'] . "'
								AND `ticket`. `event_id` = '" . $aEvent['id'] . "'
								AND `ticket`. `buyer` = '0'
							GROUP BY `ticket`.`id`
							ORDER BY `ticket`.`price`
						");
						if ($aTickets) {
							foreach ($aTickets as $aTicket) {
								?><url><loc><?php echo Page::keyToUrl('ticket') . '/' . $aTicket['id'] . '/' . Format::Url($aEvent['name']); ?></loc></url><?php	
							}
						}
					}
				} 
			}
		}
	}

	 echo '</urlset>';
