﻿var loadingText = '{$lang.ajax.train.loading1}';


function getStationFromAndTo()
{
	var params = 'f=get_routetable&from_st_name=' + $('#from_st_name').val()
		+'&to_st_name=' + $('#to_st_name').val()
		+ '&train_date=' + $('#train_date').val() ;


	$.ajax({'url':'/ajax_functions/train.php',
		    'type': 'post',
		    'data': params,
			'beforeSend': function ()
				{
					ShowLoadingDiv();
					$('#resultDiv').html('');
				}
			,
			'error': function ()
				{
					HideLoadingDiv();
				}
			,
			'success': function(transport) {
							if (transport != '-error-') {
								$('#resultDiv').html(transport);
							}
							HideLoadingDiv();
							sortColumn_($('th#sortTh').get(0));
						}
			});

}

function getStationTimetableOnPortal()
{
	var params = 'f=get_stationtimetable&stationName=' + $('#station_input').val()
		+ '&train_date=' + $('#train_date').val();

	$.ajax ({'url':'/ajax_functions/train.php',
			'type': 'post',
			'data': params,
			'beforeSend': function ()
				{
					$('#resultDiv').html( $('#loadingStateDiv').html());
				}
			,
			'error': function ()
				{
					HideLoadingDiv();
				}
			,
			'success': function(transport) {
							if (transport != '-error-') {
								$('#resultDiv').html(transport);
								//setStyleOnTheTable("result-table");

							}
							HideLoadingDiv();
							sortColumn_($('th#sortTh').get(0));
						}
			});

}
function getStationTimetable()
{

	var params = 'f=get_stationtimetable&stationName=' + $('#station_input').val()
		+ '&train_date=' + $('#train_date').val();

	$.ajax({'url':'/ajax_functions/train.php',
			'type': 'post',
			'data': params,
			'beforeSend': function ()
				{
					ShowLoadingDiv();
					$('#resultDiv').html('');
				}
			,
			'error': function ()
				{
					HideLoadingDiv();
				}
			,
			'success': function(transport) {
							if (transport != '-error-') {
								$('#resultDiv').html(transport);
							}
							HideLoadingDiv();
							sortColumn_($('th#sortTh').get(0));

						}
			});
}
function getStationTimetableOnDialog(stationCode)
{
	var temp = 'http://www.nezabarom.com.ua/ajax_functions/train.php?f=get_stationtimetableOnDialog&stationCode=' + stationCode + "&train_date=" + $('#train_date').val();
    window.open('http://www.nezabarom.com.ua/ajax_functions/train.php?f=get_stationtimetableOnDialog&stationCode=' + stationCode + "&train_date=" + $('#train_date').val(),'html','status=yes,scrollbars=no,resizable=no,width=700,height=600');

}


function getTrainTimeTableByCode(trainCode)
{
    window.open('http://www.nezabarom.com.ua/ajax_functions/train.php?f=get_trainbycode&trainCode=' + trainCode,'html','status=yes,scrollbars=no,resizable=no,width=700,height=600');

}


function getTrainTimetableByNumber(trainNumber)
{
	var params = "f=get_trainbynumber&trainNumber=" + trainNumber;

	$.ajax ({'url':'/ajax_functions/train.php',
			 'type': 'post',
			 'data': params,
			 'beforeSend': function ()
				{
					ShowLoadingDiv();
				}
			 ,
			 'error': function ()
				{
					HideLoadingDiv();
				}
			 ,
			 'success': function(transport) {
							if (transport != '-error-') {
								$('#resultDiv').html(transport);
							}
							HideLoadingDiv();
							sortColumn_($('th#sortTh').get(0));

			 			}
			});
}

function setStyleOnTheTable(tableName)
{
	Ext.grid.GridView.prototype.handleWheel = function() { };
    var grid = new Ext.grid.TableGrid(tableName);
    grid.render();
}

function showDialog(objectId)
{
	var dialog = new trainDialog(objectId);
	dialog.init(objectId);
	dialog.showDialog();
}

function ShowLoadingDiv()
{
	$('#loadingStateDiv').css('display','');
}


function HideLoadingDiv()
{
	$('#loadingStateDiv').css('display','none');
}

function changeTrainMode(divName, mode)
{
	var params = "f=get_train_mode&mode=" + mode;
	$.ajax ({'url':'/ajax_functions/train.php',
			'type': 'post',
			 'data': params,
			 'success': function(transport) {
		 	 				$('#'+divName).html(transport);
		 	 				sortColumn_($('th#sortTh').get(0));
		 				}
			});
	initSuggestionType(mode);
}
function initSuggestionType(mode)
{
	var params = "f=get_suggestInitFunction&name=" + mode;

	$.ajax({'url':'/ajax_functions/train.php',
			'type': 'post',
			'data': params,
			'success': function(transport) {

			 		if(transport != '-error-')
			 		{
			 			eval(transport);
			 		}
			 }}
	);
}

function toSuggestSearch(divName, word)
{
	var params = "f=get_suggest&word=" + word;

	$.ajax ({'url':'/ajax_functions/train.php',
			 'type': 'post',
			 'data': params,
			 'success': function(transport) {
		 	 				$('#'+divName).html(transport);
		 				}
			});
}

function splitTextValues ( text, len, regExp ) {
	  var result = null;
    var startPos  = text.search(regExp);
    if (startPos>=0){

	      var matchText = text.substring( startPos, startPos + len );
	      var startText = startPos == 0 ? "" : text.substring(0, startPos);
	      var endText   = text.substring( startPos + len);
	      result = { start: startText, mid: matchText, end: endText };
    }

    return result;
}


function formatItem(row,q) {

	var item;
	 //var class_name  = 'suggestion';
	 var startRegExp = "^";
	 var regExpFlags = "i";
     var regExp  = new RegExp( startRegExp + q, regExpFlags );
	 var textValues  = splitTextValues(row.text, q.length, regExp);
     var ms_className= 'match';

     if ((textValues!=null)&&(textValues.mid!=null)){
         item = '<span id="'+row.value+'">'+textValues.start+ '<span class="'+ms_className+'">'+textValues.mid+'</span>'+textValues.end+'</span>';
     }
     else
    	 item = '';

	return item;
}

function itemSelect (li) {
	$('#'+this.input.attr('id')+'_hidden').val(li.extra);
	this.input.focus();

}


function initSuggestByTwoStation(stationFromName, stationToName, secondIndexControlName, thirdIndexControlName)
{

	      var suggestOptions = {
        matchAnywhere      : true,
        ignoreCase         : true
      };

	 var logger=null;

	 $("#"+stationFromName).autocomplete("/ajax_functions/train.php", { minChars:2, matchSubset:1, matchContains:1, cacheLength:10, onItemSelect:itemSelect, maxItemsToShow:10, formatItem:formatItem, selectOnly:1 });
	 $("#"+stationToName).autocomplete("/ajax_functions/train.php", { minChars:2, matchSubset:1, matchContains:false, cacheLength:10, onItemSelect:itemSelect, maxItemsToShow:10, formatItem:formatItem, selectOnly:1 });
	 $("#"+stationFromName).after('<input type="hidden" name="'+stationFromName+'_hidden'+'" id="'+stationFromName+'_hidden'+'"/>');
	 $("#"+stationToName).after('<input type="hidden" name="'+stationToName+'_hidden'+'" id="'+stationToName+'_hidden'+'"/>');

}

function initSuggestByStation(stationName, secondIndexControlName)
{
	     var suggestOptions = {
        matchAnywhere      : true,
        ignoreCase         : true
      };

	 var logger=null;

	 $("#"+stationName).autocomplete("/ajax_functions/train.php", { minChars:2, matchSubset:1, matchContains:false, cacheLength:10, onItemSelect:itemSelect, maxItemsToShow:10, formatItem:formatItem, selectOnly:1 });
	 $("#"+stationName).after('<input type="hidden" name="'+stationName+'_hidden'+'" id="'+stationName+'_hidden'+'"/>');
}


function setClassName(objectName, className)
{
	$('#'+objectName).className = className;
}

function setTubsClassName(objectNameLeftElement, objectNameRightElement, classNameLeft, classNameRight)
{
	$('#'+objectNameLeftElement).removeClass().addClass(classNameLeft);
	$('#'+objectNameRightElement).removeClass().addClass(classNameRight);
}

function onMouseOverControl(objectName, classNameTrue, classNameNew)
{
	$('#'+objectName+' .'+classNameTrue).removeClass().addClass(classNameNew);

}

function setState(msg) {

	$('#resultDiv').html( msg);

}

/////////////////////////
//var LoadingDIV = getLoadingDIVForElement($(''));   on
//LoadingDIV.parentNode.removeChild(LoadingDIV);     off
function _toAbsolute(element) {
	var x = 0;
	var y = 0;
	var parent = element;
	while ( parent ) {
		var borderXOffset = 0;
		var borderYOffset = 0;
		if ( parent != element ) {
			var borderXOffset = parseInt(parent.currentStyle["borderLeftWidth"]);
            var borderYOffset = parseInt(parent.currentStyle["borderTopWidth"]);
            borderXOffset = isNaN(borderXOffset) ? 0 : borderXOffset;
            borderYOffset = isNaN(borderYOffset) ? 0 : borderYOffset;
        }

        x += parent.offsetLeft + borderXOffset;
        y += parent.offsetTop + borderYOffset;
        parent = parent.offsetParent;
	}

	return { x:x, y:y };
}

function _toAbsoluteMozilla(element) {
	var x = 0;
	var y = 0;
	var parent = element;
	while ( parent ) {
		x += parent.offsetLeft;
		y += parent.offsetTop;
		parent = parent.offsetParent;
	}
    parent = element;
    while ( parent &&
			parent != document.body &&
			parent != document.documentElement ) {
		if ( parent.scrollLeft  ) {
			x -= parent.scrollLeft;
		}
		if ( parent.scrollTop ) {
			y -= parent.scrollTop;
		}
		parent = parent.parentNode;
	}


	return { x:x, y:y };
}

function getBounds(element) {
	if ( navigator.userAgent.toLowerCase().indexOf("msie") == -1 ) {
		return _toAbsoluteMozilla(element);
	} else {
		return _toAbsolute(element);
	}

}

function getLoadingDIVForElement(element) {
	var div = $('#LoadingProccessDIV').cloneNode(true);
	element.parentNode.appendChild(div);
	elementBounds = getBounds(element);
	//div.innerHTML = element.id;
	div.show();
	var textPos = getBounds(element);
	div.style.top  = textPos.y + "px";
	div.style.left = textPos.x + "px";
	return div;
}


function ShowLoadingDivOnDialog()
{
	$('#loadingStateDivDialog').show();
}
function HideLoadingDivOnDialog()
{
	$('#loadingStateDivDialog').hide();
}

function show_md() {
	document.getElementById('back_opacity').style.display = "block";
	document.getElementById('calculate').style.display = "block";
}

function close_md() {
	document.getElementById('back_opacity').style.display = "none";
	document.getElementById('calculate').style.display = "none";
}