var OS_var_lang = 2;
var OS_var_show_lang = true;
// se è invocato dall'orario dinamico
var OS_var_externcall = false;
var OS_var_i18nStrings = new Array();
var OS_var_i18nStrings_trans = 
{
	0 : new Array(),
	1 : { // italiano
		'OS-form-link-back' 			:'[Indietro]',
		'OS-label-sel-stazione' 		:'Seleziona la stazione:',
		'OS-station-of-label'			:'Stazione di:',
		'OS-value-sel-stazione' 		:'Scegli stazione',
		'OS-stazione-indirizzo-label'	:'Indirizzo:',
		'OS-stazione-telefono-label'	:'Telefono:',
		'OS-stazione-fax-label'			:'Fax:',
		'OS-stazione-email-label'		:'E_mail:',
		'OS-stazione-telefono2-label'	:'Circum Driin:',
		'OS-stazione-link-label'		:'Link:',
		'OS-orari-disponibili-label'	:'Orari disponibili',
		'OS-orario-label'				:'Orario: ',
		'OS-servizi-label'				:'Servizi attinenti alla stazione',
		'OS-tratte-label'				:'La stazione appartiene alle seguenti tratte',
		'OS-elenco-fermate-label'		:'[Elenco fermate]',
		'OS-info-tratta-label'			:'[Info tratta]',
		'OS-altre-info-label'			:'Informazioni turistiche e di pubblica utilit\340',
		'OS-mappa-label'				:'Dettaglio mappa',
		'OS-apri-label'					:'[APRI]',
		'OS-chiudi-label'				:'[CHIUDI]',
		'OS-no-info'					:'Nessuna informazione disponibile',
		'OS-attr-indirizzo-label'		:'Indirizzo:',
		'OS-attr-telefono-label'		:'Telefono:',
		'OS-attr-link-label'			:'Link:'
	},
	2 : { // inglese
		'OS-form-link-back' 			:'[Back]',
		'OS-label-sel-stazione' 		:'Select station:',
		'OS-station-of-label'			:'Station:',
		'OS-value-sel-stazione' 		:'Select station',
		'OS-stazione-indirizzo-label'	:'Address:',
		'OS-stazione-telefono-label'	:'Telephone:',
		'OS-stazione-fax-label'			:'Fax:',
		'OS-stazione-email-label'		:'E_mail:',
		'OS-stazione-telefono2-label'	:'Circum Driin:',
		'OS-stazione-link-label'		:'Link:',
		'OS-orari-disponibili-label'	:'Timetables available',
		'OS-orario-label'				:'Timetable: ',
		'OS-servizi-label'				:'Station Service',
		'OS-tratte-label'				:'Railway Station',
		'OS-elenco-fermate-label'		:'[Stop list]',
		'OS-info-tratta-label'			:'[Railway Info]',
		'OS-altre-info-label'			:'Other info',
		'OS-mappa-label'				:'Map detail',
		'OS-apri-label'					:'[OPEN]',
		'OS-chiudi-label'				:'[CLOSE]',
		'OS-no-info'					:'No info available',
		'OS-attr-indirizzo-label'		:'Address:',
		'OS-attr-telefono-label'		:'Telephone:',
		'OS-attr-link-label'			:'Link:'
	}
};

var OS_var_rootPath = '';
function OS_changeLang(l) {
	switch(parseInt(l)) {
	case 1: case 2:
		OS_var_lang = l;
		OS_var_i18nStrings = OS_var_i18nStrings_trans[l];
		break;
	default:
		break;
	} // switch
}

function OS_translate() {
	$('.translate').each( function() {
		var id = $(this).attr('id');
		if( typeof(OS_var_i18nStrings[id]) != 'undefined' )
			$(this).text(OS_var_i18nStrings[id]);
	});
	// $('.OS-chiudi-label').text( OS_var_i18nStrings['OS-chiudi-label'] );
	// $('.OS-apri-label').text( OS_var_i18nStrings['OS-apri-label'] );
}

function jquery_toggle( jthis, jqelem ) {
	var bResult = false;
	if(jqelem.is(':visible')) {
		jqelem.hide('slow');
		jqelem.find('object').hide('slow');
		if( ( jthis != null ) && ( OS_var_i18nStrings['OS-chiudi-label'] == jthis.text() ) ) {
			jthis.text( OS_var_i18nStrings['OS-apri-label'] );
		}
	} else {
		bResult = true;
		jqelem.show('slow');
		jqelem.find('object').show('slow');
		if( ( jthis != null ) && ( OS_var_i18nStrings['OS-apri-label'] == jthis.text() ) ) {
			jthis.text( OS_var_i18nStrings['OS-chiudi-label'] );
		}
	}
	return bResult;
}

/* function jsonp_orariTratta(data) {

	var nOrari = data.orariTratta.length;
	if( nOrari <= 0 )
		return;

	var idTratta = data.orariTratta[0].id_tratta;
	var objOl = $('#OS-ol-orari-tratta-'+idTratta);
	objOl.empty();
	var i = 0;
	for ( ; i < nOrari; i++) {
		var nome_orario = data.orariTratta[i].nome_orario;
		var id_orario = data.orariTratta[i].id_orario;
		var id_tratta = data.orariTratta[i].id_tratta;
        objOl.append($('<li>'+OS_var_i18nStrings['OS-orario-label']+' <a href="'+OS_var_rootPath+'/ScaricaFile.asp?tipo=T&cod_orario='+id_orario+'&cod_tratta='+id_tratta+'" target="_blank">'+nome_orario+'</a></li>'));
    }
	if( 0 == i ) {
        objOl.append($('<li>'+OS_var_i18nStrings['OS-no-info']+'</li>'));
	}
}*/

/* function OS_OrariTratta_Load( idTratta ) {
	var jqObj = $('#OS-block-orari-tratta-'+idTratta);
	if( !jqObj.is(':visible') ) {
		var objOlFeramte = $('#OS-ol-orari-tratta-'+idTratta);
		var OS_var_jsonServerPath = OS_var_rootPath+'/FrontJS/jsonServer.asp';
		var url = OS_var_jsonServerPath+'?l='+OS_var_lang+'&v=orariTratta&r=orariTratta&idTratta='+idTratta+'&jsoncallback=?';
		$.getJSON( url, { async: false }, jsonp_orariTratta );
		OS_translate();
	}
	jquery_toggle(null, $('#OS-block-orari-tratta-'+idTratta));
    
	return false; 
}*/

function jsonp_fermateTratta(data) {
	var nFermate = data.fermateTratta.length;
	if( nFermate <= 0 )
		return;
	var idTratta = data.fermateTratta[0].id_tratta;
	var objOl = $('#OS-ol-fermate-'+idTratta);
	var i = 0;
	for ( ; i < nFermate; i++) {
        objOl.append($('<li>'+data.fermateTratta[i].nome_staz+'</li>'));
    }
	if( 0 == i ) {
        objOl.append($('<li>'+OS_var_i18nStrings['OS-no-info']+'</li>'));
	}
}

function OS_Fermate_Load( idTratta ) { 
	var objOlFeramte = $('#OS-ol-fermate-'+idTratta).empty();
	var OS_var_jsonServerPath = OS_var_rootPath+'/FrontJS/jsonServer.asp';
	var url = OS_var_jsonServerPath+'?l='+OS_var_lang+'&v=fermateTratta&r=fermateTratta&idTratta='+idTratta+'&jsoncallback=?';
	$.getJSON( url, { async: false }, jsonp_fermateTratta );
	jquery_toggle(null, $('#OS-block-fermate-'+idTratta));
	OS_translate();
	return false; 
}

function OS_jsonp_populateSelectStazioni(data) {
	var objSelect = $('#OS-form-search-select-stazione');
	for (i = 0; i < data.stazioni.length; i++) {
        objSelect.append($('<option value="'+data.stazioni[i].id_stazione+'">'+data.stazioni[i].nome_staz+'</option>'));
    }
}

function jsonp_schedaStazione(data) {
                
	$('#OS-stazione-nome').text(data.schedaStazione[0].nome_staz);
	$('#OS-stazione-indirizzo').text(data.schedaStazione[0].indirizzo);
	$('#OS-stazione-telefono').text(data.schedaStazione[0].telefono);
	$('#OS-stazione-telefono2').text(data.schedaStazione[0].telefono2);
	$('#OS-stazione-fax').text(data.schedaStazione[0].fax);
	$('#OS-stazione-email').text(data.schedaStazione[0].email);
	$('#OS-stazione-email-link').attr( 'href', 'mailto:'+data.schedaStazione[0].email );
	$('#OS-stazione-link').text('STRADARIO');
	$('#OS-stazione-link-link').attr( 'href', data.schedaStazione[0].linkfrct );
	$('#OS-mappa-link').click( function() {
		var flashUrl = OS_var_rootPath+'/Schede/pallino.swf';
    	var objFlash = $(
		  '  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="642" height="500">'+
		  '    <param name="movie" value="'+flashUrl+'?cod_x='+data.schedaStazione[0].ascissa+'&cod_y='+data.schedaStazione[0].ordinata+'" />'+
		  '    <param name="quality" value="high" />'+
		  '    <param name="wmode" value="transparent" />'+
		  '    <embed src="'+flashUrl+'?cod_x='+data.schedaStazione[0].ascissa+'&cod_y='+data.schedaStazione[0].ordinata+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="642" height="500"></embed>'+
		  '</object>');
		$('#OS-mappa-block').empty();
		$('#OS-mappa-block').append(objFlash);
		return jquery_toggle($(this), $('#OS-mappa-block'));
	});
	
	// orari associati alla stazione
	var nOrari = data.schedaStazione[0].orari.length;
	var nOrario = 0;
	for( ; nOrario < nOrari ; nOrario++ ) {
		var id_orario = data.schedaStazione[0].orari[nOrario].id_orario;
		var id_stazione = data.schedaStazione[0].orari[nOrario].id_stazione;
		var nome_orario = data.schedaStazione[0].orari[nOrario].nome_orario;
		var objLink = $('<a href="'+OS_var_rootPath+'/ScaricaFile.asp?tipo=S&cod_stazione='+id_stazione+'&cod_orario='+id_orario+'" target="_blank"></a>').text(nome_orario);
		var objLi = $('<li></li>');
		objLi.append( $('<span>'+OS_var_i18nStrings['OS-orario-label']+'</span>') );
		objLi.append( objLink );
		$('#OS-block-orari').append(objLi);
	}
	if( 0 == nOrario ) {
        $('#OS-block-orari').append($('<li>'+OS_var_i18nStrings['OS-no-info']+'</li>'));
	}
	
	// tratte cui la stazione appartiene
	var nTratte = data.schedaStazione[0].tratte.length;
	var nTratta = 0;
	for( ; nTratta < nTratte ; nTratta++ ) {
		var idTratta = data.schedaStazione[0].tratte[nTratta].id_tratta;
		var nomeTratta = data.schedaStazione[0].tratte[nTratta].nometratta;
		var url = OS_var_rootPath+'/ScaricaFile.asp?tipo=T&cod_orario=1&cod_tratta='+idTratta;
		var objLink = $('<a href="#" onclick="return OS_Fermate_Load('+idTratta+');"><span>'+OS_var_i18nStrings['OS-elenco-fermate-label']+'</span></a>');
		var objLink2 = $('<a href="'+url+'" target="_blank"><span>'+OS_var_i18nStrings['OS-info-tratta-label']+'</span></a>');
		var objLi = $('<li></li>');
		objLi.attr('id','OS-tratta-'+idTratta);
		var objDivFermate = $('<div style="display: none" id="OS-block-fermate-'+idTratta+'" class="OS-collasable intestazione"><ol id="OS-ol-fermate-'+idTratta+'"></ol></div>');
		// var objDivOrari = $('<div style="display: none" id="OS-block-orari-tratta-'+idTratta+'" class="OS-collasable intestazione"><ul id="OS-ol-orari-tratta-'+idTratta+'"><li>'+OS_var_i18nStrings['OS-no-info']+'</li></ul></div>');
		objLi.append( $('<span> '+nomeTratta+'</span>') );
		objLi.append( $('<span>&nbsp;&nbsp;&nbsp;</span>') );
		objLi.append( objLink );
		objLi.append( objLink2 );
		objLi.append( objDivFermate );
		// objLi.append( objDivOrari );
		$('#OS-block-tratte').append(objLi);
	} // for
	if( 0 == nTratta ) {
        $('#OS-block-tratte').append($('<li>'+OS_var_i18nStrings['OS-no-info']+'</li>'));
	}

	// servizi stazione
	var nServizi = data.schedaStazione[0].servizi.length;
	var idTipologia = 0;
	var divTipologia = null;
	var nServizio = 0;
	for( ; nServizio < nServizi ; nServizio++ ) {
		var idNewTipologia = data.schedaStazione[0].servizi[nServizio].id_tipologiaservizio;
		var descNewTipologia = data.schedaStazione[0].servizi[nServizio].desc_tip_servizi;
		if( idNewTipologia != idTipologia ) {
			if( divTipologia != null ) {
				$('#OS-servizi-block').append(divTipologia);
			}
			divTipologia = $('<div class="OS-tipologia"></div>');
			divTipologia.append($('<div class="OS-tipolgia-descrizione">'+descNewTipologia+'</div>')) 
		}
		idTipologia = idNewTipologia;
		var iconaServizio = OS_var_rootPath+'/Schede/iconeServizi/'+data.schedaStazione[0].servizi[nServizio].iconeservizi;
		var nomeServizio = data.schedaStazione[0].servizi[nServizio].desc_servizio;
		var objImg = $('<img class="OS-icona-servizio" src="'+iconaServizio+'" alt="'+nomeServizio+'" title="'+nomeServizio+'" />');
		divTipologia.append(objImg);
	} // for
	if( divTipologia != null ) {
		$('#OS-servizi-block').append(divTipologia);
	} else {
		$('#OS-servizi-block').append('<ul><li>'+OS_var_i18nStrings['OS-no-info']+'</li></ul>');
	}
	
	// attributi storico-culturali
	var nAttributi = data.schedaStazione[0].attributi.length;
	if( nAttributi > 0 ) {
		var jqParent = $('#OS-altre-info-ol');
		jqParent.empty();
		var nAttributo = 0;
		for( ; nAttributo < nAttributo ; nAttributo++ ) {
			var attrTitolo = data.schedaStazione[0].attributi[nAttributo].titolo;
			var attrDescrizione = data.schedaStazione[0].attributi[nAttributo].descrizione;
			var attrTelefono = data.schedaStazione[0].attributi[nAttributo].telefono;
			var attrLink = data.schedaStazione[0].attributi[nAttributo].link;
			var attrHtml = '<li><span>'+attrTitolo+'</span><p>'+attrDescrizione+'</p></li>';
			var attrOthers = '';
			if(attrTelefono) {
				attrOthers += '<li><span>'+OS_var_i18nStrings['OS-attr-telefono-label']+'</span>'+attrTelefono+'</li>';
			}
			if(attrLink) {
				attrOthers += '<li><span>'+OS_var_i18nStrings['OS-attr-link-label']+'</span>'+attrLink+'</li>';
			}
			if(attrOthers) {
				attrHtml += '<ol>'+attrOthers+'</ol>';
			}
			jqParent.append($(attrHtml));
		} // for
	}
//alert('dovrei aver disegnato la scheda');

}

function OS_mainContent_Load( $snipHTML ) {
	$('#OS-main-content').empty().append( $( $snipHTML ) );
	OS_translate();
}

function OS_formCard_Load()
{
	OS_mainContent_Load( 
'<div>'+
((!OS_var_externcall)?'<div><a id="OS-form-link-back" href="#" class="translate">Indietro</a></div>':'')+
'</div>'+
'<div id="OS-info-stazione">'+
'  <div class="intestazione"><span class="translate" id="OS-station-of-label">Stazione di:</span> <span id="OS-stazione-nome"></span>&nbsp;<a href="#" class="OS-chiudi-label" id="OS-servizi-link" onclick="jquery_toggle($(this), $(\'#OS-block-info\')); return false;">'+OS_var_i18nStrings['OS-chiudi-label']+'</a></div>'+
'  <ul id="OS-block-info">'+
'    <li><span class="translate" id="OS-stazione-indirizzo-label">Indirizzo:</span> <span id="OS-stazione-indirizzo"></span></li>'+
'    <li><span class="translate" id="OS-stazione-telefono-label">Telefono:</span> <span id="OS-stazione-telefono"></span></li>'+
'    <li><span class="translate" id="OS-stazione-fax-label">Fax:</span> <span id="OS-stazione-fax"></span></li>'+
'    <li><span class="translate" id="OS-stazione-email-label">E_mail:</span> <a id="OS-stazione-email-link" href="#" accesskey="E" ><span id="OS-stazione-email"></span></a></li>'+
'    <li><span class="translate" id="OS-stazione-telefono2-label">Circum Driin:</span> <span id="OS-stazione-telefono2"></span></li>'+
'    <li><span class="translate" id="OS-stazione-link-label">Link:</span> <a id="OS-stazione-link-link" href="#" onclick="window.open(this.href); return false" accesskey="S"  target="_new"><span id="OS-stazione-link"></span></a></li>'+ 
'  </ul>'+
'</div>'+
'<div id="OS-info-orari">'+
'  <div class="intestazione"><span id="OS-orari-disponibili-label" class="translate">Orari disponibili</span>&nbsp;<a href="#" class="OS-chiudi-label" id="OS-orari-link" onclick="jquery_toggle($(this), $(\'#OS-block-orari\')); return false;">'+OS_var_i18nStrings['OS-chiudi-label']+'</a></div>'+
'  <ul id="OS-block-orari">'+
'  </ul>'+
'</div>'+
'<div id="OS-info-tratte">'+
'  <div class="intestazione"><span id="OS-tratte-label" class="translate">La stazione appartiene alle seguenti tratte</span>&nbsp;<a href="#" class="OS-chiudi-label" id="OS-servizi-link" onclick="jquery_toggle($(this), $(\'#OS-block-tratte\')); return false;">'+OS_var_i18nStrings['OS-chiudi-label']+'</a></div>'+
'  <ul id="OS-block-tratte">'+ 
'  </ul>'+
'</div>'+
'<div id="OS-servizi">'+
'  <div class="intestazione"><span id="OS-servizi-label" class="translate">Servizi attinenti alla stazione</span>&nbsp;<a href="#" id="OS-servizi-link" onclick="jquery_toggle($(this), $(\'#OS-servizi-block\')); return false;">'+OS_var_i18nStrings['OS-apri-label']+'</a></div>'+
'  <div id="OS-servizi-block" style="display: none"></div>'+
'</div>'+
'<div id="OS-altre-info">'+
'  <div class="intestazione"><span id="OS-altre-info-label" class="translate">Informazioni turistiche e di pubblica utilit&agrave;</span>&nbsp;<a href="#" id="OS-altre-info-link" onclick="jquery_toggle($(this), $(\'#OS-altre-info-block\')); return false;">'+OS_var_i18nStrings['OS-apri-label']+'</a></div>'+
'  <div id="OS-altre-info-block" class="OS-collasable" style="display: none">'+
'    <ul id="OS-altre-info-ol"><li>'+OS_var_i18nStrings['OS-no-info']+'</li></ol>'+
'  </div>'+
'</div>'+
'<div id="OS-info-mappa">'+
'  <div class="intestazione"><span id="OS-mappa-label" class="translate">Dettaglio mappa</span>&nbsp;<a onclick="return false;" href="#OS-mappa-label" id="OS-mappa-link">'+OS_var_i18nStrings['OS-apri-label']+'</a></div>'+
'  <div id="OS-mappa-block" class="OS-collasable" style="display: none"></div>'+
'</div>' );
    $('#OS-form-link-back').click( OS_formSearch_Load );
    return false;
}

function OS_formSearch_Load()
{
	$.ajaxSetup({async: true}); 
	OS_changeLang( OS_var_lang );
	var html = '';
	if( OS_var_show_lang )
		html += 
'<a href="#"><img border="0" src="'+OS_var_rootPath+'/FrontJS/flags/it.png" onclick="OS_changeLang(1); OS_translate(); return false;"></a>'+
'<a href="#"><img border="0" src="'+OS_var_rootPath+'/FrontJS/flags/en.png" onclick="OS_changeLang(2); OS_translate(); return false;"></a>';
	html += 
'<form id="OS-formSearch" class="OS-form" action="#">'+
'    <fieldset>'+
'        <ul>'+
'            <li>'+
'                <label id="OS-label-sel-stazione" for="idStazione" class="translate">Seleziona la stazione:</label>'+
'               <select name="idStazione" id="OS-form-search-select-stazione" size="1">'+
'                    <option  value="0" selected="selected" id="OS-value-sel-stazione" class="translate">Scegli stazione</option>'+
'                </select>'+
'            </li>'+
'        </ul>'+
'    </fieldset>'+
'</form>';
	OS_mainContent_Load( html );
	$('#OS-form-search-select-stazione').change( function() {
		var strIdStazione = $(this).val();
		var nIdStazione = parseInt(strIdStazione);
		if( nIdStazione > 0 ) {
			OS_load_stazione( nIdStazione, '' );
			
		}
		return false;
	});
	
	var OS_var_jsonServerPath = OS_var_rootPath+'/FrontJS/jsonServer.asp';
	var url = OS_var_jsonServerPath+'?l='+OS_var_lang+'&v=stazioni&r=listaStazioni&jsoncallback=?';
	$.getJSON( url, { async: false }, OS_jsonp_populateSelectStazioni );
	OS_translate();
    return false;
}


function OS_load_stazione( id_stazione, cod_esterno )
{
        if (id_stazione == 0)
           id_stazione='';
  
   
	$.ajaxSetup({async: true}); 
	OS_changeLang( OS_var_lang );
	OS_formCard_Load();
	var OS_var_jsonServerPath = OS_var_rootPath+'/FrontJS/jsonServer.asp';
			var url = OS_var_jsonServerPath+'?l='+OS_var_lang+'&v=schedaStazione&r=schedaStazione&idStazione='+id_stazione+'&codEsterno='+cod_esterno+'&jsoncallback=?';

	$.getJSON( url, { async: false }, jsonp_schedaStazione );
}
