function drawTicketsDotLine() {
	var content = new StringBuffer();
	content.append('<tr>');
	content.append('<td style="background-image:url(images/ticket_buy_dotline.gif); background-repeat:repeat-x" height="1"></td>');
	content.append('</tr>');
	return content.toString();                                                                         
};

function designTickets(index, ticketType, ticketTypeId, name, price) {
	var content = new StringBuffer();
	var _price = price;
	try{
		if(_price.length > 3 && _price.substring(_price.length - 3,_price.length) == ".00") {
			_price = _price.substring(0, _price.length - 3);
		} 
	}catch(e){;}	
	content.append('<tr>');
		content.append('<td id="ticketCell' + index + '" style="background-image:url(images/ticket_type_bg.gif); background-repeat:repeat-x" height="30" onmouseover="if (isNormalAlpha(this)) this.style.backgroundImage=\'url(images/ticket_type_bg_hover.gif)\';" onmouseout="this.style.backgroundImage=\'url(images/ticket_type_bg.gif)\';">');
			content.append('<table cellpadding="0" cellspacing="0" width="100%" border="0" height="30">');
				content.append('<tr>');
					content.append('<td><img src="images/empty.gif" width="10" height="20"><img src="images/ticketType0.gif" width="24" height="20" id="ticketIcon' + index + '">');
					content.append('</td>');
					content.append('<td id="title' + index + '" align="center" nowrap="nowrap" class="ticket-name" onmouseover="if (isNormalAlpha(document.getElementById(\'ticketCell' + index + '\'))) {this.style.cursor=\'pointer\';} else {this.style.cursor=\'not-allowed\';}" onclick="selectPlus(' + index + ',' + ticketType + ','+ ticketTypeId + ');">' + name + '&nbsp;-&nbsp;<b>' + _price + '</b>&nbsp;лв</td>');		
					content.append('<td align="right">');
						content.append('<table cellpadding="0" cellspacing="0" border="0">');
							content.append('<tr>');  
								content.append('<td><img src="images/empty.gif" border="0" width="5"></td>'); 
								content.append('<td>'); 
								if (ticketType != "-1" && ticketType != "-2") {
									content.append('<img src="images/ticket_minus.gif" border="0" width="9" height="9" id="ticketMinus' + index + '" onmouseover="if (!isNormalAlpha(document.getElementById(\'ticketCell' + index + '\'))) {this.style.cursor=\'not-allowed\';}" style="' + ((_ie) ? "filter:alpha(Opacity= 30);" : "-moz-opacity:.30;") + '" onclick="if (parseInt(document.getElementById(\'count' + index + '\').innerHTML,10) > 0) selectMinus(' + index + ',' + ticketTypeId + ')">'); 
								} else { 	
									content.append('<img src="images/ticket_minus.gif" border="0" width="9" height="9" id="ticketMinus' + index + '" onmouseover="if (!isNormalAlpha(document.getElementById(\'ticketCell' + index + '\'))) {this.style.cursor=\'not-allowed\';}" style="' + ((_ie) ? "filter:alpha(Opacity= 30);" : "-moz-opacity:.30;") + '" onclick="if (parseInt(document.getElementById(\'count' + index + '\').innerHTML,10) > 0) selectMinus(' + index + ',' + ticketType + ')">');
								}
								content.append('</td>');  
								content.append('<td id="count' + index + '" class="ticket-count">0</td>');
								if (ticketType != "-1" && ticketType != "-2") {
									content.append('<input type="hidden" id="' + ticketTypeId + '_' + index + '" />');
								} else { 
									content.append('<input type="hidden" id="' + ticketType + '_' + index + '" />');
								}
								content.append('<td>');
								content.append('<img src="images/ticket_plus.gif" border="0" width="9" height="9" id="ticketPlus' + index + '" onmouseover="if (isNormalAlpha(document.getElementById(\'ticketCell' + index + '\'))) {this.style.cursor=\'pointer\';} else {this.style.cursor=\'not-allowed\';}" onclick="selectPlus(' + index + ',' + ticketType + ',' + ticketTypeId + ');">');  
								content.append('</td>'); 
								content.append('<td><img src="images/empty.gif" width="10"></td>'); 
							content.append('</tr>'); 
						content.append('</table>');  
					content.append('</td>');
				content.append('</tr>');
			content.append('</table>');                
    	content.append('</td>'); 
    content.append('</tr>');                                              
    return content.toString();                                                                      	
};
function designEmptyTicket() {
	var content = new StringBuffer();	
	content.append('<tr style="cursor:not-allowed;">');
	content.append('<td height="31">');
	content.append('<table cellpadding="0" cellspacing="0" width="100%" border="0">');
	content.append('<tr>');
	content.append('<td><img src="images/empty.gif" width="10" height="20"><img src="images/empty.gif" width="24" height="20">');
	content.append('</td>');
	content.append('<td align="center" nowrap="nowrap" class="ticket-name">&nbsp;</td>');		
	content.append('<td align="right">');
	content.append('<table cellpadding="0" cellspacing="0" border="0">');
	content.append('<tr>');  
	content.append('<td><img src="images/empty.gif" border="0" width="5"></td>'); 
	content.append('<td>'); 
	content.append('<img src="images/empty.gif" border="0" width="9" height="9">'); 
	content.append('</td>');  
	content.append('<td>&nbsp;</td>');
	content.append('<td>');
	content.append('<img src="images/empty.gif" border="0" width="9" height="9">');  
	content.append('</td>'); 
	content.append('<td><img src="images/empty.gif" width="10"></td>'); 
	content.append('</tr>'); 
	content.append('</table>');  
	content.append('</td>');
	content.append('</tr>');
	content.append('</table>');                
    content.append('</td>'); 
    content.append('</tr>');                                              
    return content.toString();                                                                      	
};

function fillTicketsTooltip() {
	if (showOneWayTickets && !showTwoWayTickets) {
		var ticketsTooltip = document.getElementById('ticketsTooltip');
		var	ticketMinus;
		var tickets = new StringBuffer();
		var orderedOneWayTicketsTypeArr = new Array();
    	var orderedOneWayTicketsTypeIdArr = new Array();
    	var orderedOneWayTicketsNameArr = new Array();
    	var orderedOneWayTicketsPriceArr = new Array();	
    	var orderedOneWayTicketsDirectionArr = new Array();            	
		
		var numberOfOneWayTickets = 0;	
		if (ticketsDirectionArr != null && ticketsDirectionArr != undefined) {		
			orderedOneWayTickets = new Array();
			for (var i = 0,j = 0; i < ticketsDirectionArr.length; i++) {
				if (ticketDirectionOneWay == parseFloat(ticketsDirectionArr[i])) {
					numberOfOneWayTickets++;
					orderedOneWayTicketsTypeArr[j] = ticketsTypeArr[i];
					orderedOneWayTicketsTypeIdArr[j] = ticketsTypeIdArr[i];
					orderedOneWayTicketsNameArr[j] = ticketsNameArr[i];
					orderedOneWayTicketsPriceArr[j] = ticketsPriceArr[i];
					orderedOneWayTicketsDirectionArr[j] = ticketsDirectionArr[i];
					j++;
				}
			}		
		}		
		if (ticketsTooltip != undefined && allTicketsCount > 0) {
			tickets.append('<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #E5CD91" height="156">');			
			var i = shownTicketIndex;
			var j = 0;			
			while (j < 5) {
				if (ticketsDirectionArr[i] != null && ticketsDirectionArr[i] != undefined) {					
					if (ticketDirectionOneWay == parseFloat(orderedOneWayTicketsDirectionArr[i])) {
						tickets.append(designTickets(i, orderedOneWayTicketsTypeArr[i], orderedOneWayTicketsTypeIdArr[i], orderedOneWayTicketsNameArr[i], orderedOneWayTicketsPriceArr[i]));
						if (j != 4) {
							tickets.append(drawTicketsDotLine());					
						}
						j++;
					}
					i++;					
				} else {
					tickets.append(designEmptyTicket());
					j++;
				}
			}			
			tickets.append('</table>');
			ticketsTooltip.innerHTML = tickets.toString();				
			if (shownTicketIndex == 0) {
				setDisabledAlphaNotAllowedCursor(document.getElementById('ticket_arrow_up'));
			} else {
				setNormalAlphaCursor(document.getElementById('ticket_arrow_up'));
			} if (numberOfOneWayTickets <= 5 || ((shownTicketIndex + 5) >= numberOfOneWayTickets)) {
				setDisabledAlphaNotAllowedCursor(document.getElementById('ticket_arrow_down'));
			} else {
				setNormalAlphaCursor(document.getElementById('ticket_arrow_down'));
			}
			getNumberOfSelectedTicketTypesForTravelList();	
		}
	} else if (showTwoWayTickets) {
		var ticketsTooltip = document.getElementById('ticketsTooltip');
		var	ticketMinus;
		var tickets = new StringBuffer();		
		if (ticketsTooltip != undefined && allTicketsCount > 0) {
			tickets.append('<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #E5CD91" height="156">');
			for (var i = shownTicketIndex, j = 0; i < (shownTicketIndex + 5); i++, j++) {								
				if (ticketsNameArr[i] != undefined && ticketsNameArr[i] != null) {				
					tickets.append(designTickets(i, ticketsTypeArr[i], ticketsTypeIdArr[i], ticketsNameArr[i], ticketsPriceArr[i]));						
					if (j != 4) {
						tickets.append(drawTicketsDotLine());					
					}
				} else {
					tickets.append(designEmptyTicket());
				}
			}				
			tickets.append('</table>');
			ticketsTooltip.innerHTML = tickets.toString();					
			if (shownTicketIndex == 0) {
				setDisabledAlphaNotAllowedCursor(document.getElementById('ticket_arrow_up'));
			} else {
				setNormalAlphaCursor(document.getElementById('ticket_arrow_up'));
			} if (allTicketsCount <= 5 || ((shownTicketIndex + 5) >= allTicketsCount)) {
				setDisabledAlphaNotAllowedCursor(document.getElementById('ticket_arrow_down'));
			} else {
				setNormalAlphaCursor(document.getElementById('ticket_arrow_down'));
			}
			getNumberOfSelectedTicketTypesForTravelList();	
		}		
	}	
	setDisabledAlphaCursorToAllTicketsExceptCurrentSelectTicketType();	
};
function manageTicketsAlpha(){
	for (var i = shownTicketIndex; i < allTicketsCount; i++) {
		if (document.getElementById('count' + i) != undefined && document.getElementById('ticketMinus' + i) != undefined) {
			if (parseFloat(document.getElementById('count' + i).innerHTML) == 0) {							
				setDisabledAlphaNotAllowedCursor(document.getElementById('ticketMinus' + i));				
			} else {
				setNormalAlphaCursor(document.getElementById('ticketMinus' + i));		
			}
		}
	}						
};

function ticket_next() {
	if ((shownTicketIndex + 5) < allTicketsCount) {
		shownTicketIndex = shownTicketIndex + 5;
		setShownTicketIndex(showNextTickets, shownTicketIndex);		
	} else {
		return false;
	}
};
function ticket_prev() {
	if (shownTicketIndex > 4) {
		shownTicketIndex = shownTicketIndex - 5;
		setShownTicketIndex(showPreviousTickets, shownTicketIndex);		
	} else {
		return false;	
	}
};
function selectPlus(index, ticketPriceType, ticketTypeId) {	 
	var isCurrentClicked = false;
	if (currentSelectTicketType == noCurrentTicketSelected) {
		isCurrentClicked = true;
	} else {
		if (ticketPriceType != ticketTypeDiscount && currentSelectTicketType == ticketPriceType) {
			isCurrentClicked = true;
		} else if (ticketTypeId == currentSelectTicketType) {
			isCurrentClicked = true;
		}
	}
	if (ticketLeftDepartureCount == 0 && ticketLeftReturnCount == 0 || isCurrentClicked) {   	        
	    var ticketCounter = document.getElementById('count' + index);
	    var minusButton = document.getElementById('ticketMinus' + index);
	    var XMLHttpRequestObject = getXMLHttpRequestObject();
		if (XMLHttpRequestObject) {   
	        var url = encodeURI(contextRoot + 'ticket-mgr?a=a&tTPr=' + ticketPriceType + '&tTId=' + ticketTypeId + '&trId=1&sId=' + sessionId + '&sync=' + Math.random());    
			XMLHttpRequestObject.open("GET", url);
	        XMLHttpRequestObject.onreadystatechange = function() {
	        var response = null;
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
    			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
    				moduleCloseOperation();    	
    			} else if (XMLHttpRequestObject.responseText == sessionTimeOut) {
    				sessionTimeOutOperation();  
    			} else if (XMLHttpRequestObject.responseText == priceNotFound) {
    				killXML(XMLHttpRequestObject);		
    				alert('Системата беше актуализирана! Цената вече не е налична!');
    				clearAll();
    				return true;
    			} else if (XMLHttpRequestObject.responseText == '-4') {
    				alert('Максималният брой на билетите за една продажба е достигнат!');
    			} else if (XMLHttpRequestObject.responseText == systemError) {
	                alert('Възникна грешка в системата!');
    			} else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                    alert('Некоректни параметри!');                    				               
					invalidParametersOperation();
	            } else {           		
	            	if (_ie) XMLHttpRequestObject.responseXML.loadXML(XMLHttpRequestObject.responseText);	            		            		
	            	response = XMLHttpRequestObject.responseXML.documentElement;	            	          			            	
	            	if (response != null) {
	            		if (response.childNodes[0] != undefined && response.childNodes[0].firstChild != undefined) {
	            			try {
	            				if (parseFloat(response.childNodes[0].firstChild.data) >= 0) {
					           		ticketCounter.innerHTML = parseFloat(response.childNodes[0].firstChild.data);					           		
					           		if (ticketPriceType != ticketTypeDiscount) {
					           			currentSelectTicketType = ticketPriceType;
					           		} else {
					           			currentSelectTicketType = ticketTypeId;
					           		}
					           		setDisabledAlphaCursorToAllTicketsExceptCurrent(index);
					           	} else {
					           		alert('Възникна грешка в системата!');	
					           	}
				           	} catch (e) {;}	
			            	if (parseFloat(response.childNodes[0].firstChild.data) > 0) {
			                    setNormalAlphaCursor(minusButton);                    	
			                } else {
			                	setDisabledAlphaNotAllowedCursor(minusButton); 
			                }
				        }																										           				        
		            }                   
	            }    			
    			setPointerCursor('ticketPlus' + index);   			
				setPointerCursor('title' + index);  
				killXML(XMLHttpRequestObject);					    							
				managefilterAccordingSelectedTicketType();
				getTotalTicketsCountAndPrice();
			} else if (XMLHttpRequestObject.readyState != 0) {			
	            setWaitCursor('ticketPlus' + index); 
				setWaitCursor('ticketMinus' + index);
				setWaitCursor('title' + index);                 	                	                			
			} else {
				alert('There was a problem retrieving the XML data!');		
			}
		};
		XMLHttpRequestObject.send(null);
		}
	} else {
		alert("Моля изберете място/места за вече избрания от вас тип билет(и)!");
	}	            
};
function selectMinus(index, ticketTypeId) {	    	        
    var ticketCounter = document.getElementById('count' + index);
    var minusButton = document.getElementById('ticketMinus' + index);
    var _loadSeats = false;
    var _loadReturnSeats = false;
    var _error = false;
    var _trId = "";
    var _rTrId = "";
    var XMLHttpRequestObject = getXMLHttpRequestObject();
	if (XMLHttpRequestObject) {   
        var url = encodeURI(contextRoot + 'ticket-mgr?a=r&tTId=' + ticketTypeId + '&trId=1&sId=' + sessionId + '&sync=' + Math.random());    

		XMLHttpRequestObject.open("GET", url);
        XMLHttpRequestObject.onreadystatechange = function() {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {   
			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
				moduleCloseOperation();    						
			} else if (XMLHttpRequestObject.responseText == sessionTimeOut) {
				sessionTimeOutOperation();  
			} else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                alert('Некоректни параметри!');
	 			_error = true; 	
				invalidParametersOperation();               			
			} else if (XMLHttpRequestObject.responseText == systemError) {
                alert('Възникна грешка в системата!');
                _error = true; 
			} else if (XMLHttpRequestObject.responseText == communicationError) {
				 alert('Възникна комуникационна грешка!');
				_error = true; 
			} else if (XMLHttpRequestObject.responseText == invalidCommunicationParameter) {
				 alert('Некоректни комуникационни параметри!');
				_error = true;                   
            } else {
           		var response = null;
            	if (_ie) XMLHttpRequestObject.responseXML.loadXML(XMLHttpRequestObject.responseText);	            		            		
            	response = XMLHttpRequestObject.responseXML.documentElement;	            	          			            	
            	if (response != null) {            		
            		var _seatNumber = -1;
            		var _returnSeatNumber = -1;
            		 
					if (response.childNodes[0] != undefined && response.childNodes[0].firstChild != undefined) {
						try{
							if (!isNaN(parseFloat(response.childNodes[0].firstChild.data))) {
								numberOfLockedSeats = parseFloat(response.childNodes[0].firstChild.data);
							} else {
								numberOfLockedSeats = 0;	
							}
						}catch (e) {;}	
					}
					if (response.childNodes[1] != undefined && response.childNodes[1].firstChild != undefined) {
						try{
							if (!isNaN(parseFloat(response.childNodes[1].firstChild.data))) {
								numberOfLockedReturnSeats = parseFloat(response.childNodes[1].firstChild.data);
							} else {
								numberOfLockedReturnSeats = 0;	
							}
						}catch (e) {;}								
					}
            		            			
            		if (response.childNodes[2] != undefined && response.childNodes[2].firstChild != undefined) {
            			try {
			           		ticketCounter.innerHTML = parseFloat(response.childNodes[2].firstChild.data);			           		
			           	} catch (e) {;}	
		            	if (parseFloat(response.childNodes[2].firstChild.data) > 0) {
		                    	setNormalAlphaCursor(minusButton);                    	
		                } else {
		                	setDisabledAlphaNotAllowedCursor(minusButton); 
		                }
			        }
			        
      				if (response.childNodes[3] != undefined && response.childNodes[3].firstChild != undefined) {
       					if (!isNaN(parseFloat(response.childNodes[3].firstChild.data))) {
        					_seatNumber = parseFloat(response.childNodes[3].firstChild.data);
        					document.getElementById('seat_' + _seatNumber).className = 'free'; 
        				}	
       				}
       				
       				if (response.childNodes[4] != undefined && response.childNodes[4].firstChild != undefined) {
       					if (!isNaN(parseFloat(response.childNodes[4].firstChild.data))) {
        					_returnSeatNumber = parseFloat(response.childNodes[4].firstChild.data);
        					document.getElementById('_seat' + _returnSeatNumber).className = 'free'; 
        				}	
       				}            				
			        	
            		if (response.childNodes[5] != undefined && response.childNodes[5].firstChild != undefined) {
            			if (response.childNodes[5].firstChild.data == "true") {            				
			           		setNormalAlphaCursorToAllTickets();               	
		                } 
			        }																										           				        																									           	            						        	            																							           				        																									           	
	            }                                          		                	                
            }
            killXML(XMLHttpRequestObject);	
            managefilterAccordingSelectedTicketType();
            if (_error) {
	            setPointerCursor('ticketPlus' + index);   			
				setPointerCursor('title' + index);  				            
            } else {
	            setPointerCursor('ticketPlus' + index);   			
				setPointerCursor('title' + index);  				
				getInitStateTimerState();					
				getTotalTicketsCountAndPrice();
			} 
		} else if (XMLHttpRequestObject.readyState != 0) {			
            setWaitCursor('ticketPlus' + index); 
			setWaitCursor('ticketMinus' + index);
			setWaitCursor('title' + index);                 	                	                			
		} else {
			alert('There was a problem retrieving the XML data!');		
		}
	};
	XMLHttpRequestObject.send(null);
	}	            
};
function getTickets() {
	var XMLHttpRequestObject = getXMLHttpRequestObject();
	if (XMLHttpRequestObject) {        	           
        var url = encodeURI(contextRoot + 'ticket-mgr?a=g&sId=' + sessionId + '&sync=' + Math.random());        

		XMLHttpRequestObject.open("GET", url);
        XMLHttpRequestObject.onreadystatechange = function() {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {   
			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
				moduleCloseOperation();    																
			} else if (XMLHttpRequestObject.responseText == sessionTimeOut) {
				sessionTimeOutOperation();
            } else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                alert('Некоректни параметри!');	  
				invalidParametersOperation();
 			} else {
           		var response = null;
            	if (_ie) XMLHttpRequestObject.responseXML.loadXML(XMLHttpRequestObject.responseText);	            		            		
            	response = XMLHttpRequestObject.responseXML.documentElement;	            	          			            	
            	if (response != null) {            	
            		if (response.childNodes[0].firstChild.data == "-1") {
            			document.getElementById('ticketsTooltip').innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #E5CD91" height="156"><tr><td class="filters" align="center" height="100%">Няма дефинирани билети!</td></tr></table>';
            			setNormalAlphaDefaultCursor(document.getElementById('ticketsTooltip'));
            		} else {
		            	var i = 0;	
		            	currentTravelListId = response.childNodes[0].firstChild.data;
		            	if ("1" == response.childNodes[1].firstChild.data) {
		            		hasTwoWay = true;
		            	} else {
		            		hasTwoWay = false;	
		            	}
		            	try { 
		            		if (!isNaN(parseFloat(response.childNodes[2].firstChild.data))) {
			            		shownTicketIndex = parseFloat(response.childNodes[2].firstChild.data);
		            		} else {
		            			shownTicketIndex = 0;	
		            		}
		            	}catch(e) {shownTicketIndex = 0;}
		            	if (!isNaN(parseFloat(response.childNodes[3].firstChild.data))) {
		            		currentSelectTicketType = parseFloat(response.childNodes[3].firstChild.data);	
		            	} else {
		            		currentSelectTicketType = noCurrentTicketSelected;		            		
		            	}	
		            	managefilterAccordingSelectedTicketType();
		            	var tickets = null; 
		            	ticketsTypeArr = new Array();
		            	ticketsTypeIdArr = new Array();
		            	ticketsNameArr = new Array();
		            	ticketsPriceArr = new Array();	
		            	ticketsDirectionArr = new Array();            	
		            	allTicketsCount = 0;
	            		while (i >= 0) { 	            			
	            			if (i < 4){i++; continue;}           			         			
	            			tickets = response.childNodes[i];		            															            						          	            									            						          	            					            			
							if (tickets != null) {													
								allTicketsCount++;							
								ticketsTypeArr[i-4] = tickets.childNodes[0].firstChild.data;
								ticketsTypeIdArr[i-4] = tickets.childNodes[1].firstChild.data;
								ticketsNameArr[i-4] = tickets.childNodes[2].firstChild.data;
								ticketsPriceArr[i-4] = tickets.childNodes[3].firstChild.data;
								ticketsDirectionArr[i-4] = tickets.childNodes[4].firstChild.data;																													  							  							  						 				            
							  	i++;
							} else {
							  i = -1;
							}
			        	}			        		        	
			        	if (allTicketsCount > 0) {			        		
			        		showOneWayTickets = true;
			        		if (!allSpaces(_returnHour) && document.getElementById('checkboxTwoWay').checked) {
			        			showTwoWayTickets = true;
			        		} else {
			        			showTwoWayTickets = false;			        		
			        		}
			        		fillTicketsTooltip();
			        		if (hasTwoWay) {
			        			if (currentSelectTicketType == noCurrentTicketSelected && !summaryIncludeTooltipShown) {
			        				enableReturnFilter();
			        			}
			        		} else {
			        			disableAndClearReturnFilter();
			        		}
			        	} else {
			        		showOneWayTickets = false;	        			        	        					        	
			        	}
					}
				}								                 					     													                 					     					
            }
			killXML(XMLHttpRequestObject);	
			if (numberOfLockedSeats > 0) {
				getInitStateTimerState();		
			}
			getCurrentAndLeftTicketsCount();	
		} else if (XMLHttpRequestObject.readyState != 0) {		
			setNormalAlphaDefaultCursor(document.getElementById('ticketsTooltip'));
            document.getElementById('ticketsTooltip').innerHTML = ticketsAjaxLoader();                	                	                			
		} else {
			alert('Възникна грешка с извличането на XML данните!');		
		}
	};
	XMLHttpRequestObject.send(null);
	}		
};
function getCurrentAndLeftTicketsCount() {	
    var XMLHttpRequestObject = getXMLHttpRequestObject();
	if (XMLHttpRequestObject) {   
        var url = encodeURI(contextRoot + 'ticket-mgr?a=gCaLtC&sId=' + sessionId + '&sync=' + Math.random());    

		XMLHttpRequestObject.open("GET", url);
        XMLHttpRequestObject.onreadystatechange = function() {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
				moduleCloseOperation();    				
			} else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                alert('Некоректни параметри!');               						
				invalidParametersOperation();
			} else if (XMLHttpRequestObject.responseText == systemError) {
                alert('Възникна грешка в системата!');
            } else {  
                var response = null;
            	if (_ie) XMLHttpRequestObject.responseXML.loadXML(XMLHttpRequestObject.responseText);	            		            		
            	response = XMLHttpRequestObject.responseXML.documentElement;	            	          			            	
            	if (response != null) {
            		if (response.childNodes[0] != undefined && response.childNodes[0].firstChild != undefined) {
            			try {
            				if (!isNaN(parseFloat(response.childNodes[0].firstChild.data))) {
            					currentSelectOneWayTicketsCount = parseFloat(response.childNodes[0].firstChild.data);
            				} else {
            					currentSelectOneWayTicketsCount = 0;
            				}
            			} catch (e) {;}
            		}
           			if (response.childNodes[1] != undefined && response.childNodes[1].firstChild != undefined) {
            			try {
            				if (!isNaN(parseFloat(response.childNodes[1].firstChild.data))) {
            					currentSelectTwoWayTicketsCount = parseFloat(response.childNodes[1].firstChild.data);
            				} else {
            					currentSelectTwoWayTicketsCount = 0;
            				}
            			} catch (e) {;}
            		}
            		if (response.childNodes[2] != undefined && response.childNodes[2].firstChild != undefined) {
            			try {
            				if (!isNaN(parseFloat(response.childNodes[2].firstChild.data))) {
            					ticketLeftDepartureCount = parseFloat(response.childNodes[2].firstChild.data);
				            	if (ticketLeftDepartureCount > 0) {
				            		setNormalAlphaDefaultCursor(document.getElementById('ticketLeftDepartureTooltip'));
					            	document.getElementById('ticketLeftDeparture').innerHTML = ticketLeftDepartureCount;
					            } else {
					            	if (currentSelectOneWayTicketsCount > 0) {
					            		document.getElementById('ticketLeftDeparture').innerHTML = "OK";	
				            			setNormalAlphaDefaultCursor(document.getElementById('ticketLeftDepartureTooltip'));
				            		} else {
				            			document.getElementById('ticketLeftDeparture').innerHTML = "";
				            			setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftDepartureTooltip'));
				            		}	
				            	}	
            				} else {
			            		ticketLeftDepartureCount = 0;
			            		document.getElementById('ticketLeftDeparture').innerHTML = "";
			            		setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftDepartureTooltip'));		            		         	
	            			}
            			} catch (e) {
            				document.getElementById('ticketLeftDeparture').innerHTML = "";
	            			setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftDepartureTooltip'));
            			}
            		}
            		if (response.childNodes[3] != undefined && response.childNodes[3].firstChild != undefined) {
            			try {
            				if (!isNaN(parseFloat(response.childNodes[3].firstChild.data))) {
            					ticketLeftReturnCount = parseFloat(response.childNodes[3].firstChild.data);
				            	if (ticketLeftReturnCount > 0) {
				            		setNormalAlphaDefaultCursor(document.getElementById('ticketLeftReturnTooltip'));
					            	document.getElementById('ticketLeftReturn').innerHTML = ticketLeftReturnCount;
					            } else {
					            	if (currentSelectTwoWayTicketsCount > 0) {
					            		document.getElementById('ticketLeftReturn').innerHTML = "OK";	
				            			setNormalAlphaDefaultCursor(document.getElementById('ticketLeftReturnTooltip'));
				            		} else {
				            			document.getElementById('ticketLeftReturn').innerHTML = "";
				            			setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftReturnTooltip'));
				            		}	
				            	}	
            				} else {
			            		ticketLeftReturnCount = 0;
			            		document.getElementById('ticketLeftReturn').innerHTML = "";
			            		setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftReturnTooltip'));		            		         	
	            			}
            			} catch (e) {
            				document.getElementById('ticketLeftReturn').innerHTML = "";
	            			setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftReturnTooltip'));
            			}
            		}            		
					if (response.childNodes[4] != undefined && response.childNodes[4].firstChild != undefined) {
						try{	
							if (!isNaN(parseFloat(response.childNodes[4].firstChild.data))) {
								if (parseFloat(response.childNodes[4].firstChild.data) == 1) {
									showSummaryBtn = true;
								} else {
									showSummaryBtn = false;			
								}
							}
						} catch (e) {;}								
					}																					
            			
            	}
            }	
			killXML(XMLHttpRequestObject);
			if (showSummaryBtn) {
				showSummaryButton();
			} else {
				hideSummaryButton();								
			}
		} else if (XMLHttpRequestObject.readyState != 0) {	
			document.getElementById('ticketLeftDeparture').innerHTML = '<img src="images/progress-anim.gif" width="16" style="padding-top:1px">';
			if (showTwoWayTickets) {
				document.getElementById('ticketLeftReturn').innerHTML = '<img src="images/progress-anim.gif" width="16" style="padding-top:1px">';
			}
		} else {
			alert('Възникна грешка с извличането на XML данните!');		
		}
	};
	XMLHttpRequestObject.send(null);
	}	             
};
function getNumberOfSelectedTicketTypesForTravelList() {
    var totalTicketCount = document.getElementById('ticketCount');
    var totalTicketPrice = document.getElementById('ticketSum');
    var XMLHttpRequestObject = getXMLHttpRequestObject();
	if (XMLHttpRequestObject) {   
        var url = encodeURI(contextRoot + 'ticket-mgr?a=cSTtfTr&sId=' + sessionId + '&sync=' + Math.random());    

		XMLHttpRequestObject.open("GET", url);
        XMLHttpRequestObject.onreadystatechange = function() {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
				moduleCloseOperation();    						
			} else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                alert('Некоректни параметри!');               										
				invalidParametersOperation();
			} else if (XMLHttpRequestObject.responseText == systemError) {
                alert('Възникна грешка в системата!');
            } else if (XMLHttpRequestObject.responseText == '1') {           
            	manageTicketsAlpha();    
            } else {
		        var response = null;
            	if (_ie) XMLHttpRequestObject.responseXML.loadXML(XMLHttpRequestObject.responseText);	            		            		
            	response = XMLHttpRequestObject.responseXML.documentElement;	            	          			            	
            	if (response != null) { 	            	     		      	 	            		        		            		
	            	var i = 0;	            	
	            	var content = null;  
	            	currentTypesIdArr = new Array(); 
	            	currentTypesCountArr = new Array();         	
	            		while (i >= 0) {	            			    			
	            			content = response.childNodes[i];	            				            															            						          	            									            						          	            					            			
							if (content != null) {	
								currentTypesIdArr[i] = content.childNodes[0].firstChild.data;
								currentTypesCountArr[i] = content.childNodes[1].firstChild.data;																													  							  							  						 				            
							  	i++;
							} else {
							  i = -1;
							}
			        	}
			        updateCurrentTicketTypesCount(currentTypesIdArr, currentTypesCountArr);				        					        	
			    }				                 					     					
            }        					            	            	                        
			killXML(XMLHttpRequestObject);				
		} else if (XMLHttpRequestObject.readyState != 0) {			
						        	                	                			
		} else {
			alert('Възникна грешка с извличането на XML данните!');		
		}
	};
	XMLHttpRequestObject.send(null);
	}	            	
};
function getTotalTicketsCountAndPrice() {
    var totalTicketCount = document.getElementById('ticketCount');
    var totalTicketPrice = document.getElementById('ticketSum');
    var XMLHttpRequestObject = getXMLHttpRequestObject();
	if (XMLHttpRequestObject) {   
        var url = encodeURI(contextRoot + 'ticket-mgr?a=tCaP&sId=' + sessionId + '&sync=' + Math.random());    

        XMLHttpRequestObject.open("GET", url);                 
        XMLHttpRequestObject.onreadystatechange = function() {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {  
			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
				moduleCloseOperation();    								
			} else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                alert('Некоректни параметри!');               										
				invalidParametersOperation();
			} else if (XMLHttpRequestObject.responseText == systemError) {
                alert('Възникна грешка в системата!');
            } else {
            	var data = XMLHttpRequestObject.responseText.split(',');
            	if (data != undefined && data.length == 2) {
           			totalTicketCount.innerHTML = data[0];
           			totalTicketPrice.innerHTML = data[1];          	
           		}          			            	            	
            }            
			killXML(XMLHttpRequestObject);
			getCurrentAndLeftTicketsCount();				
		} else if (XMLHttpRequestObject.readyState != 0) {			
            totalTicketCount.innerHTML = '<img src="images/progress-anim.gif" width="16" style="padding-top:1px">'; 
            totalTicketPrice.innerHTML = '<img src="images/progress-anim.gif" width="16" style="padding-top:1px>';              	                	                			
		} else {
			alert('Възникна грешка с извличането на XML данните!');		
		}
	};
	XMLHttpRequestObject.send(null);
	}	            	
};
function setShownTicketIndex(action, index) {	    	        
    var XMLHttpRequestObject = getXMLHttpRequestObject();
	if (XMLHttpRequestObject) {   
        var url = encodeURI(contextRoot + 'ticket-mgr?a=aSt&val=' + index + '&sId=' + sessionId + '&sync=' + Math.random());    

        XMLHttpRequestObject.open("GET", url);                 
        XMLHttpRequestObject.onreadystatechange = function() {
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
			if (XMLHttpRequestObject.responseText == moduleClosedErrCode) {
				moduleCloseOperation();    		
			} else if (XMLHttpRequestObject.responseText == invalidParameters) {
//                alert('Некоректни параметри!');               										
				invalidParametersOperation();
			} else if (XMLHttpRequestObject.responseText == systemError) {
                alert('Възникна грешка в системата!');
            } else {;}
			if (action == showNextTickets) {	
	            setPointerCursor('ticket_arrow_down');
			} else {      
				setPointerCursor('ticket_arrow_up');
			}
			fillTicketsTooltip();	
			killXML(XMLHttpRequestObject);				
		} else if (XMLHttpRequestObject.readyState != 0) {	
			if (action == showNextTickets) 	
	            setWaitCursor('ticket_arrow_down');
	        else     
				setWaitCursor('ticket_arrow_up');
		} else alert('There was a problem retrieving the XML data!');		
	};
	XMLHttpRequestObject.send(null);
	}	            
};
function updateCurrentTicketTypesCount(currentTypesIdArr, currentTypesCountArr) {
	if (currentTypesIdArr != null && currentTypesIdArr != undefined && currentTypesCountArr != null && currentTypesCountArr != undefined && currentTypesIdArr.length == currentTypesCountArr.length) {
		for (var i = 0; i < currentTypesIdArr.length; i++) {
			for (var j = 0; j < allTicketsCount; j++) {
				if (document.getElementById(currentTypesIdArr[i] + '_' + j) != undefined) {
					document.getElementById('count' + j).innerHTML = currentTypesCountArr[i];
				}
			}
		}
	}
	manageTicketsAlpha();
};
function ticketsAjaxLoader() {
	var content = new StringBuffer();
	content.append('<table cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #E5CD91" height="156" border="0">');
    content.append('<tr valign="bottom">');
    content.append('<td width="100%" height="50%" align="center"><img src="images/ajax-loader.gif" width="32" height="32" border="0"></td>');                   		
    content.append('</tr>');
    content.append('<tr>');
    content.append('<td width="100%" height="5%" align="center"></td>');
    content.append('</tr>');
    content.append('<tr valign="top">');
    content.append('<td width="100%" height="45%" align="center" id="returnSeats_loading_msg" class="filters" nowrap="nowrap">Зареждане на билетите...</td>');
    content.append('</tr>');                    			
    content.append('</table>');
    return content.toString();
};
function clearAndDisabledTickets(){
	var content = new StringBuffer();
	content.append('<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #E5CD91" height="156">');
	content.append('<tr>');
    content.append('<td height="100%"></td>'); 
    content.append('</tr>');
    content.append('</table>');                   	
	document.getElementById('ticketsTooltip').innerHTML = content.toString();
	setDisabledAlphaNotAllowedCursor(document.getElementById('ticketsTooltip'));
	setDisabledAlphaNotAllowedCursor(document.getElementById('ticket_arrow_up'));
	setDisabledAlphaNotAllowedCursor(document.getElementById('ticket_arrow_down'));
	showOneWayTickets = false;
	showTwoWayTickets = false;
};
function setNormalAlphaCursorToAllTickets() {
	for(var i = 0; i < allTicketsCount; i++){
		if (document.getElementById('ticketCell' + i) != undefined) {
			setNormalAlphaCursor(document.getElementById('ticketCell' + i));
		}
	}		                	
	currentSelectTicketType = noCurrentTicketSelected;
};
function setDisabledAlphaCursorToAllTicketsExceptCurrent(index) {
	for(var i = 0; i < allTicketsCount; i++){
		if (document.getElementById('ticketCell' + i) != undefined && i != index) {
			setDisabledAlphaNotAllowedCursor(document.getElementById('ticketCell' + i));
		}
	}
};
function setDisabledAlphaCursorToAllTicketsExceptCurrentSelectTicketType() {
	if (currentSelectTicketType != noCurrentTicketSelected) {
		for (var i = 0; i < allTicketsCount; i++) {
			if (document.getElementById(currentSelectTicketType + "_" + i) != undefined) {
				setNormalAlphaCursor(document.getElementById('ticketCell' + i));
			} else {
				if (document.getElementById('ticketCell' + i) != undefined)
					setDisabledAlphaNotAllowedCursor(document.getElementById('ticketCell' + i));
			}
		}				
	}
};
function hideTicketLeftReturnTooltip(){
	setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftReturnTooltip'));
};
function showTicketLeftReturnTooltip(){
	setNormalAlpha(document.getElementById('ticketLeftReturnTooltip'));
};
function stopFlashSummaryButton() {
	clearInterval(intervalSummaryButtonFlash);
	document.getElementById('tableSummaryButtonID').className = '';
};
function flashSummaryButton() {	
	if (document.getElementById('tableSummaryButtonID').className == 'table-red-border') {
		document.getElementById('tableSummaryButtonID').className = '';
	} else {
		document.getElementById('tableSummaryButtonID').className = 'table-red-border';
	}
};
function showSummaryButton() {		
	setNormalAlphaCursor(document.getElementById('summary_button'));
	clearInterval(intervalSummaryButtonFlash);
	intervalSummaryButtonFlash = setInterval( 'flashSummaryButton()', 400 );
};
function hideSummaryButton() {
	stopFlashSummaryButton();
	setDisabledAlphaNotAllowedCursor(document.getElementById('summary_button'));		
};
function clearChosenTickets() {
	if (!allSpaces(_fromHour)) {
		getTickets();
	}
	getTotalTicketsCountAndPrice();		
};
function initTicketsCount() {
	try {
		document.getElementById('ticketCount').innerHTML = 0;
	} catch (e) {}
	try {
		document.getElementById('ticketSum').innerHTML = '00.00';
	} catch (e) {}
	try {
		document.getElementById('ticketLeftDeparture').innerHTML = "";
		setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftDepartureTooltip'));
	} catch (e) {}
	try {
		document.getElementById('ticketLeftReturn').innerHTML = "";
		setDisabledAlphaNotAllowedCursor(document.getElementById('ticketLeftReturnTooltip'));
	} catch (e) {}
	
};
