/*fa l'lalert di un msg*/

function alertMessage(text){
doLoad("div#timetables");
alert(text);
}
/* Function : userReset
 * Description : resetta e distrugge la sessione
 * Return: no-return
 */

function userReset(){
makePostRedir("controller.php","action=userunset");
}

/* Function : setLanguages
 * Description : resetta e distrugge la sessione
 * Return: no-return
 */

function setLanguages(lang){

jQuery.ajax({
           type: "POST",
           url: "controller.php",
           data: "action=setlanguages&language="+lang+"",
           success: function(msg){

                      var result= new Array();
                      result=msg.split('|');
                      if(result[0]=='ok'){
                      	window.location.href= result[1];
                      }

                    }
});
//makePostRedir("controller.php","action=setlanguages&language="+lang+"");

}


/*DATE FUNCTIONS*/

// Customize two date pickers to work as a date range
function customRange(input) {
if(input.id == 't2_fromdate'){
jQuery('#t3_fromdate').val('');
jQuery('#t4_fromdate').val('');
return {minDate:  jQuery('#t1_fromdate').getDatepickerDate(),
		maxDate: '1y'
		}
}else if(input.id == 't3_fromdate'){
jQuery('#t4_fromdate').val('');
return {minDate:  jQuery('#t2_fromdate').getDatepickerDate(),
		maxDate: '1y'
		}
}else if(input.id == 't4_fromdate'){
return {minDate:  jQuery('#t3_fromdate').getDatepickerDate(),
		maxDate: '1y'
		}
}else{
if(input.id == 't1_fromdate'){
	jQuery('#t2_fromdate').val('');
	return {minDate: 0,
			maxDate: '1y'
			}
	}
}
}


function selectdate(string){
	switch(string){
	case 'a_fromdate':
	jQuery('#a_todate').val('');
	break;

	case 'a_todate':
	return jQuery('#a_fromdate').getDatepickerDate();
	break;

	case 'r_fromdate':
	jQuery('#r_todate').val('');
	return jQuery('#a_todate').getDatepickerDate();
	break;

	case 'r_todate':
	return jQuery('#r_fromdate').getDatepickerDate();
	break;


	default:
	return '1d';
	break;
	}
}

	function enableDate(){
	switch(this.id){

	case 'a_fromdate':
	if(jQuery('#a_fromdate').val()!=''){
	/*jQuery('#r_todate').attr("disabled","");*/
	/*jQuery('#r_fromdate').attr("disabled","");*/
	}
	break;

	case 'a_todate':
	if(jQuery('#a_todate').val()!=''){
	jQuery('#r_fromdate').attr("disabled","");
	jQuery('#r_todate').attr("disabled","");
	}
	break;

	}
}




/*END DATE FUNCTIONS*/


/* Function : findArrPort
 * Description : ritorna i porti corrispondenti al porto di andata selezionato
 * Return: aggiorna i porti corrispondenti per il ritorno relativamente all'andata
 */

function findArrPort(element){


var target=jQuery(element).val();
var name = jQuery(element).attr('name');

var tipotratta = name.split('_');

populateSelect('select#'+tipotratta[0]+'_tosel','controller.php','action=relport&target='+target+'&tratta='+tipotratta[0]);
jQuery("select#"+tipotratta[0]+"_tosel").attr("disabled","");

/*if(jQuery("input:radio[@name=ttype]:checked").val()=='ar'){

populateSelect('select#r_fromsel','controller.php','action=relport&target='+target);
jQuery("select#r_fromsel").attr("disabled","");
}
*/
}

function findArrPort2(target){


//var target = jQuery(element).val();
//var name = jQuery(element).attr('name');

//var tipotratta = name.split('_');

tipotratta='t1';

populateSelect('select#'+tipotratta+'_tosel','controller.php','action=relport&target='+target+'&tratta='+tipotratta);

jQuery("select#"+tipotratta+"_tosel").attr("disabled","");

/*if(jQuery("input:radio[@name=ttype]:checked").val()=='ar'){

populateSelect('select#r_fromsel','controller.php','action=relport&target='+target);
jQuery("select#r_fromsel").attr("disabled","");
}
*/
}


function findArrRetPort(target){


//var target = jQuery(element).val();
//var name = jQuery(element).attr('name');

//var tipotratta = name.split('_');


tipotratta='t2';

if(populateSelect('select#'+tipotratta+'_tosel','controller.php','action=relport&target='+target+'&tratta='+tipotratta)){

jQuery("select#"+tipotratta+"_tosel").attr("disabled","");

//setTimeout(jQuery('select#t2_tosel option:eq(1)').attr('selected','selected'),1);
setTimeout("jQuery(\"select#t2_tosel option:eq(1)\").attr('selected','selected')",1);
}

}


function findRetPortEnable(target,portopartenza){

selectid='t2';
if(populateSelect('select#'+selectid+'_fromsel','controller.php','action=reldepport&target='+target+'&tratta='+selectid)){

jQuery("select#"+selectid+"_fromsel").attr('disabled','');

jQuery("select#"+selectid+"_fromsel option[@value="+portopartenza+"]").remove();


setTimeout("jQuery(\"select#"+selectid+"_fromsel option[@value=\'"+target+"\']\").attr('selected','selected')",1);

jQuery("select#t2_tosel").attr("disabled","");
}
return 1;

}


//alert(jQuery("select#t2_tosel").children().length);


/*if(jQuery("input:radio[@name=ttype]:checked").val()=='ar'){

populateSelect('select#r_fromsel','controller.php','action=relport&target='+target);
jQuery("select#r_fromsel").attr("disabled","");
}
*/
//}



/* Function : findRetPorts
 * Description : ritorna i porti corrispondenti al porto di arrivo selezionato all'andata
 * Return: aggiorna i porti corrispondenti per il ritorno relativamente all'andata
 */

function findRetPorts(element){

var target=jQuery(element).val();
var name = jQuery(element).attr('name');

var tipotratta ='';
var tipotratta = name.split('_');

var temp = tipotratta[0];

var portopartenza = jQuery('select#'+temp+'_fromsel').val();


var tratta= temp.slice(0,1);
var  newvalue = eval(temp.slice(1,2))+1;
var selectid = tratta+newvalue;

if((jQuery("input:radio[@name=ttype]:checked").val()=='ar' && newvalue<=2) || jQuery("input:radio[@name=ttype]:checked").val()=='m' ){



	if(findRetPortEnable(target,portopartenza)){

	findArrRetPort(target);

	}






	//if((jQuery("select#"+selectid+"_tosel").children()).size()==2){
	//alert('ciao');
	//jQuery("select#"+selectid+"_tosel option:eq(1)").attr('selected','selected');
	//}




    /*
    var target2=jQuery('select#'+selectid+'_fromsel').val();

    alert(target2);

    if(target2=jQuery('select#'+selectid+'_fromsel').val()){

    populateSelect('select#'+selectid+'_tosel','controller.php','action=relport&target='+target2);

    jQuery("select#"+selectid+"_tosel").attr('disabled','');

    }
    */






	//jQuery("select#"+selectid+"_tosel option[@value="+target+"]").remove();



	}



/*if(jQuery(element).attr('id')=='a_tosel'){
jQuery("select#r_fromsel option[@value='"+target+"']").attr("selected","selected");
}else{
jQuery("select#a_tosel option[@value='"+target+"']").attr("selected","selected");
}*/

}



/* Function : displayTimetable
 * Description : ritorna la timetable formattata.
 * Return: la timetable
 */
function displayTimetable(msg){

var result ='';
result=msg.split('|');
if(result[0]!= 'error'){
jQuery("div#timetables").html(msg);
jQuery("a#next").show();
}else{
alert(result[1]);
}
}

/* Function : setTimetable
 * Description : setta i campi hidden al click del checkbox della timetable.
 * Return: setta i dati all'interno dei value dei campi hidden
 */

function setTimetable(element,type){
<!--'table#myTable input[@type=radio]:checked'-->
var x=jQuery(element).parent().siblings();

jQuery('input#'+type+'_depdatetime').val(''+jQuery(x.eq(0)).html()+'');
jQuery('input#'+type+'_arrdatetime').val(''+jQuery(x.eq(1)).html()+'');
jQuery('input#'+type+'_ship').val(''+jQuery(x.eq(2)).html()+'');
jQuery('input#'+type+'_season').val(''+jQuery(x.eq(3)).html()+'');


}


/* Function : redirTimeTable
 * Description : fa il redirect dopo il corretto salvataggio della timetable.
 * Return: se ok fa il redir allo step2 altrimenti comunica l'errore.
 */
function redirTimeTable(msg){

var result ='';
result=msg.split('|');
if(result[0]=='ok'){
window.location.href= result[1];
}else{
alert(msg);
}
}


/* Function : disableTimetable per lopendate
 * Description : disabilita e abilita i checkbox della timetable
 * Return: disabilita e abilita i checkbox della timetable
 */

function disableTimetable(element,tableid){
var type= '';
var type = tableid.split('_');
var type = type[0];


if(jQuery(element).is(":checked")){
	disableInputs('table#'+tableid+'',1);
	jQuery('input#'+type+'_depdatetime').attr('disabled','disabled');
	jQuery('input#'+type+'_arrdatetime').attr('disabled','disabled');
	jQuery('input#'+type+'_ship').attr('disabled','disabled');
	jQuery('input#'+type+'_season').attr('disabled','disabled');
}else{
	disableInputs('table#'+tableid+'',0);
	jQuery('input#'+type+'_depdatetime').attr('disabled','');
	jQuery('input#'+type+'_arrdatetime').attr('disabled','');
	jQuery('input#'+type+'_ship').attr('disabled','');
	jQuery('input#'+type+'_season').attr('disabled','');
}
}


/* Function : enableAccOpt
 * Description : abilita le opzioni disponibili di uso
 * Return: abilita le opzioni disponibili di uso
*/

function enableAccOpt(element,tot){

var elname= jQuery(element).attr('name');

var temp = new Array();
temp = elname.split('_');
//andata o ritorno
ttype = temp[0];

var temp = new Array();
temp = elname.split('-');
//numero corrente del passeggero
passnum = eval(temp[1]);

//codice accomodation
var accode= jQuery(element).val();

//setto il valore dell'accomodation
jQuery('input[@name='+ttype+'_inputaccom-'+passnum+']').val(accode);



//disabilito i successivi
var x= passnum + 1 ;
for(var i=x;i<tot;i++){
populateSelectPass('select#'+ttype+'_type-'+i+'','controller.php','action=rettype&infant=1');
jQuery('select[@name='+ttype+'_acc-'+i+'] option[@value=\'\']').attr('selected','selected');
jQuery('select[@name='+ttype+'_acc-'+i+']').attr('disabled','');
jQuery('input[@name='+ttype+'_pref-'+i+']').attr('disabled','disabled');
}

jQuery('input[@name='+ttype+'_pref-'+passnum+']').attr('checked','');
jQuery('input[@name='+ttype+'_pref-'+passnum+']').attr('disabled','disabled');


if(accode!= 'VIP' && accode!= 'ATS' && accode!= 'DECK' && accode!= ''){

	var minuse = makePostAdv('controller.php','action=retminpass&accode='+accode+'&selection=1');
    var numposti = makePostAdv('controller.php','action=retminpass&accode='+accode+'&selection=2');
    var rimanenti = tot - (passnum ) ;


    if(rimanenti >= minuse && rimanenti >= numposti && numposti!=1){

	jQuery('input[@name='+ttype+'_pref-'+passnum+']').attr('disabled','');
	if(accode == 'LD' || accode == 'L2'){
    jQuery('input[@name='+ttype+'_pref-'+passnum+']').eq(2).attr('disabled','disabled');
    }

    }else if( rimanenti < numposti  && rimanenti >= minuse && numposti!=1){

    // jQuery('input[@name='+ttype+'_pref-'+passnum+']').eq(1).siblings().attr('disabled','');
    // jQuery('input[@name='+ttype+'_pref-'+passnum+']').not(':eq(1)').attr('disabled','');
    // jQuery('input[@name='+ttype+'_pref-'+passnum+']').slice(0,2).attr('disabled','');
    jQuery('input[@name='+ttype+'_pref-'+passnum+'][@value!=2]').attr('disabled','');

    if(accode == 'LD' || accode == 'L2'){
    jQuery('input[@name='+ttype+'_pref-'+passnum+']').eq(2).attr('disabled','disabled');
    }


    }else{



	 jQuery('input[@name='+ttype+'_pref-'+passnum+']').eq(2).attr('disabled','');
	 jQuery('input[@name='+ttype+'_pref-'+passnum+']').eq(2).attr('checked','checked');
	 jQuery('input[@name='+ttype+'_useaccom-'+passnum+']').val(3);
	 jQuery('input[@name='+ttype+'_inputaccom-'+passnum+']').val(accode);

	/*if((accode == 'LD' || accode == 'L2') && !jQuery(element).is(':disabled')){
    jQuery('input[@name='+ttype+'_pref-'+passnum+']').eq(2).attr('disabled','disabled');
    var lang = makePostAdv('controller.php','action=getlang');
	if(lang!='IT'){
	var msg ='There are not enough remainings travellers to book this accomodation' ;
	}else{
	var msg ='Il numero dei passeggeri rimanenti insufficiente per prenotare questa sistemazione' ;
	}
	alert(msg);
	jQuery('select[@name='+ttype+'_acc-'+passnum+'] option[@value=\'\']').attr('selected','selected');



    }*/

	}
}else{


jQuery('input[@name='+ttype+'_pref-'+passnum+']').attr('disabled','disabled');
jQuery('input[@name='+ttype+'_useaccom-'+passnum+']').val(3);
jQuery('input[@name='+ttype+'_inputaccom-'+passnum+']').val(accode);
}
}


/* Function : retMinPass
 * Description : ritorna il numero minimo di passeggeri per quell'accomodation
 * Return: disabilita e abilita i checkbox della timetable
 */
function retMinPass(element,tot){

//opzione selezionata corrente Exclusive.....
var selopt= jQuery(element).val();

var elname = jQuery(element).attr("name");

var temp = new Array();
temp = elname.split('_');
//andata o ritorno
ttype = temp[0];

var temp = new Array();
temp = elname.split('-');
//numero corrente del passeggero
passnum = eval(temp[1]);

//setto l'opzione cliccata
jQuery('input[@name='+ttype+'_useaccom-'+passnum+']').val(selopt);


accode = jQuery('select#'+ttype+'_acc-'+passnum+'').val();

if(accode!=''){
var minnum = makePostAdv('controller.php','action=retminpass&accode='+accode+'&selection='+selopt+'');



var x= passnum +1 ;
for(var i=x;i<tot;i++){
jQuery('select#'+ttype+'_acc-'+i+' option[@value=\'\']').attr('selected','selected');
jQuery('select#'+ttype+'_acc-'+i+'').attr('disabled','');
jQuery('input[@name='+ttype+'_inputaccom-'+i+']').val('');
}

var x= passnum+1;
var limit= passnum + eval(minnum);

for(var i=x;i<limit;i++){
jQuery('select#'+ttype+'_acc-'+i+' option[@value='+accode+']').attr('selected','selected');
jQuery('input[@name='+ttype+'_inputaccom-'+i+']').val(accode);

jQuery('select#'+ttype+'_acc-'+i+'').attr('disabled','disabled');
jQuery('input[@name='+ttype+'_pref-'+i+']').attr('disabled','disabled');
if(selopt!=3){
populateSelectPass('select#'+ttype+'_type-'+i+'','controller.php','action=rettype&infant=0');
}
}

for(var i=limit;i<tot;i++){
if(selopt!=3){
populateSelectPass('select#'+ttype+'_type-'+i+'','controller.php','action=rettype&infant=1');
}
}


if(selopt==3){
for(var i=x;i<tot;i++){
populateSelectPass('select#'+ttype+'_type-'+i+'','controller.php','action=rettype&infant=1');
}
}
}
else{
return 0;
}
}

/* Function : redirTimeTable
 * Description : fa il redirect dopo il corretto salvataggio della timetable.
 * Return: se ok fa il redir allo step2 altrimenti comunica l'errore tramite alert.
 */
function redirAccomodation(msg){

var result ='';
result=msg.split('|');
if(result[0]=='ok'){
window.location.href= result[1];
}else{
alert(msg);
}
}

/* Function : checkVehicle
 * Description : verifica se il veicolo è un trailer,e se il primo elemnto è una macchina,altrimenti restiruisce errore
 * Return: verifica se l'elemento è un trailer.
 */
function checkVehicle(element){
var elname = jQuery(element).attr("name");
var temp = new Array();
temp = elname.split('-');
//controllo il tipo di veicolo
num = temp[1];
var temp = new Array();
temp = elname.split('_');
//controllo il tipo di veicolo
tratta = temp[0];
vehicle = jQuery('select#'+tratta+'_vtype-0 option:selected').attr('rel');

if(num==1 && vehicle =='M'){
jQuery('select#'+tratta+'_vtype-0  option[@value=\'\']').attr('selected','selected');
}else if(jQuery('select#'+tratta+'_vtype-1').is(':visible') && vehicle =='M'){
jQuery('select#'+tratta+'_vtype-1  option[@value=\'\']').attr('selected','selected');
}
}

/* Function : checkInfant
 * Description : verifica se si tratta di un Infant e seleziona Deck,altrimenti fa l'enable sulla select.
 * Return: seleziona il Deck e lo disabilita.
 */
function checkInfant(element,tot){

var selopt= jQuery(element).val();

var elname = jQuery(element).attr("name");

var temp = new Array();
temp = elname.split('_');
//andata o ritorno
ttype = temp[0];



var temp = new Array();
temp = elname.split('-');
//numero corrente del passeggero
passnum = eval(temp[1]);

rel = jQuery('select#'+ttype+'_type-'+passnum+' option:selected').attr('name');
if(rel=='Infant' && !jQuery('select#'+ttype+'_acc-'+passnum+'').is(':disabled')){
jQuery('select#'+ttype+'_acc-'+passnum+' option[@value=\'D\']').attr('selected','selected');
jQuery('select#'+ttype+'_acc-'+passnum+' ').attr('disabled','disabled');
selopt='D';
jQuery('input[@name='+ttype+'_inputaccom-'+passnum+']').val(selopt);
jQuery('input[@name='+ttype+'_useaccom-'+passnum+']').val(3);
jQuery('input[@name='+ttype+'_pref-'+passnum+']').attr('disabled','disabled');

var start = passnum+1;
for(var i=start;i<tot;i++){
populateSelectPass('select#'+ttype+'_type-'+i+'','controller.php','action=rettype&infant=1');

jQuery('select#'+ttype+'_acc-'+i+'').attr('disabled','');
jQuery('select#'+ttype+'_acc-'+i+' option[@value=\'\']').attr('selected','selected');

jQuery('input[@name='+ttype+'_pref-'+i+']').attr('disabled','disabled');

}

}else if(jQuery('select#'+ttype+'_acc-'+passnum+'').is(':disabled') && jQuery('select#'+ttype+'_acc-'+passnum+'').val()=='D'){
jQuery('select#'+ttype+'_acc-'+passnum+'').attr('disabled','');

jQuery('select#'+ttype+'_acc-'+passnum+' option[@value=\'\']').attr('selected','selected');


jQuery('input[@name='+ttype+'_useaccom-'+passnum+']').val('');
jQuery('input[@name='+ttype+'_inputaccom-'+passnum+']').val('');
}




}

/* Function : changeOfferRedir
 * Description : nel caso l'offerta selezionata non fosse più disponibile,salva la nuova offerta selezionata
 * Return: ritorna allo step 3.
 */
function changeOfferRedir(element){

val = jQuery(element).val();
makePostRedir('controller.php','action=saveoffer&code='+val);
}

/*Fdesc: copia il contenuto dei campi input text select di un contenitore  in un altro corrispondente
answrtype= cancella la form(splitta il nome all_ e ricerca la secoda parte nel nome
*/

function copyFieldsEregMod(containerfrom,containerto,num) {
 // iterate over all of the inputs for the form
 // element that was passed in
	jQuery(':input', containerfrom).each(function() {

	var name = jQuery(this).attr('name');
	var temp ='';
	var temp = name.split('_');
	name= temp[1];
	var value = jQuery(this).val();
	var type = this.type;
	var tag = this.tagName.toLowerCase();
	var disabled=0;

	if(jQuery(this).is(':disabled')){
	disabled=1;
	}

	// it's ok to reset the value attr of text inputs,
	// password inputs, and textareas
	if (type == 'text' || type == 'password' || tag == 'textarea'){

	if(disabled == 1){jQuery(containerto+' input[@name$='+name+']').attr('disabled','disabled');}
	else{jQuery(containerto+' input[@name$='+name+']').attr('disabled','');}

	jQuery(containerto+' input[@name$='+name+']').val(value);
	}
	else if(type == 'checkbox' || type == 'radio') {
	    if(disabled == 1){jQuery(containerto+' input[@name$='+name+'][@value='+value+']').attr('disabled','disabled');}
		else{jQuery(containerto+' input[@name$='+name+'][@value='+value+']').attr('disabled','');}

		if(jQuery(this).is(':checked')){

		jQuery(containerto+' input[@name$='+name+'][@value='+value+']').attr('checked','checked');


		if(name.search(/pref/) != -1){

		retMinPass(jQuery(containerto+' input[@name$='+name+'][@value='+value+']'),num);
		}

		}else{
		jQuery(containerto+' input[@name$='+name+'][@value='+value+']').attr('checked','');
		}
	}

	// select elements need to have their 'selectedIndex' property set to -1
	// (this works for both single and multiple select elements)
	else if (tag == 'select'){


	jQuery(containerto+' select[@name$='+name+'] option[@value='+value+']').attr('selected','selected');



	if(disabled == 1){jQuery(containerto+' select[@name$='+name+']').attr('disabled','disabled');}
	else{jQuery(containerto+' select[@name$='+name+']').attr('disabled','');}

	if(name.search(/type-/) != -1){
	//var temp = jQuery(containerto+' input[@name$='+name+']').attr('name');

	checkInfant(jQuery(containerto+' select[@name$='+name+']'),num);
	}

	if(name.search(/acc-/) != -1){
	enableAccOpt(jQuery(containerto+' select[@name$='+name+']'),num);
	}

	}
	});
};







/*Fdesc: testa se i passeggeri all'andata e al ritorno sono gli stessi.
answrtype= restituisce un alert e false se non matchano
*/

function checkPass(traveltype) {
var firstarr = new Array(9,2);
var secondarr = new Array(9,2);
var thirdarr = new Array(9,2);
var fourtharr = new Array(9,2);

var temparray = new Array(2);
var total =0;
  	switch(traveltype){
	case 'AR':
    var limit=2;
	break;
	case 'M':
	var limit=4;
	break;
	default:
	return 1;
	break;
}

for(var i=1;i<=limit;i++){

var pass= -1;

jQuery(':input','table#t'+i+'_passtable tr').each(function() {
var name = jQuery(this).attr('name');
var value = jQuery(this).val();
var tag = this.tagName.toLowerCase();
var type = this.type;
var temp= '';
var temp = name.split('-');
var count = eval(temp[1]);


if(pass!=count){
temparray = new Array();
pass=count;
total++;
}


if(type == 'radio' && jQuery(this).is(':checked') && (name.search(/sex/) != -1)){

if(i==1){

temparray[0] = value;
firstarr[count]=temparray;
}else if(i==2){
temparray[0] = value;
secondarr[count]=temparray;
}else if(i==3){
temparray[0] = value;
thirdarr[count]=temparray;
}else if(i==4){
temparray[0] = value;
fourtharr[count]=temparray;
}

}

if(tag == 'select' && (name.search(/type/) != -1)){
if(i==1){

temparray[1] = value;
firstarr[count]=temparray;
}else if(i==2){
temparray[1] = value;
secondarr[count]=temparray;
}else if(i==3){
temparray[1] = value;
thirdarr[count]=temparray;
}else if(i==4){
temparray[1] = value;
fourtharr[count]=temparray;
}

}

});
}



if(traveltype=='AR' && (firstarr.sort()).toString()==(secondarr.sort()).toString()){
return 1;
}else if(traveltype=='M' && (firstarr.sort()).toString()==(secondarr.sort()).toString() && (firstarr.sort()).toString()==(thirdarr.sort()).toString() && (firstarr.sort()).toString()==(fourtharr.sort()).toString()){
return 1;
}else{
var lang = makePostAdv('controller.php','action=getlang');

switch(lang)
{
	case 'IT':
		alert('I passeggeri devono essere dello stesso tipo.');
	break;
	case 'EN':
		alert('Passengers must be the same type.');
	break;
	case 'AL':
		alert('Pasagjeret duhet te jene te te njejtit tip.');
	break;
	default:
		alert('Passergiere muessen vom gleichen Typ sein.'); //tedesco
	break;
}



return false;
}
}

function checkInfant2(traveltype) {

	var total =0;
	var limit = 0;

	switch(traveltype){
	case 'A':
    limit=1;
	break;
	case 'AR':
    limit=2;
	break;
	default:
	return 1;
	break;
	}

	for(var i=1;i<=limit;i++){
	total=0;

	jQuery(':input','table#t'+i+'_passtable').each(function() {
	var name = jQuery(this).attr('name');
	var value = jQuery(this).val();
	var tag = this.tagName.toLowerCase();
	var type = this.type;

	if(tag == 'select' && (name.search(/type/) != -1)){

	if(value != 'I'){
	total++;
	}

	}
	});
	if(total == 0){

	var lang = makePostAdv('controller.php','action=getlang');
	switch(lang)
	{
		case 'IT':
			alert('Il passeggero di tipo Infant non può viaggiare da solo.');
		break;
		case 'AL':
			alert('Pasagjeret te tipit infant(bebe)nuk mund te udhetojne vetem.');
		break;
		case 'EN':
			alert('Infant cannot travel alone.');
		break;
		default:
			alert('Kleinkinder duerfen nicht alleine  reisen.'); //tedesco
		break;
	}


	/*jQuery('select#'+ttype+'_type-'+passnum+' option:eq(0)').attr('selected','selected');*/

	return false;
	}
	}
	return true;
}


/*Fdesc:Valida la form passata per nome è una mod

formid="form#formid"
param="action=xxx"
errdiv="div#errors"
*/
function formvalidateMod(formid,param,errdiv,successfunc,loadingdiv,traveltype){

       var v = jQuery(formid).validate({

       errorLabelContainer: jQuery(errdiv),

    //   beforeSubmit: checkPass(traveltype),

       submitHandler: function(form) {

       if(checkInfant2(traveltype)){
       if(1){
       if(loadingdiv.length!=0)
       doLoad(loadingdiv);

       jQuery(form).ajaxSubmit({

       url: 'controller.php?'+param,

 	   success: function(responseText) {

 	                                var v= eval(successfunc);

									v(responseText);

								}

       	 				});
       	 			}}else
       	 			{return false;}

				}
		});
}




/*Fdesc: copia il contenuto dei campi dei nomi dei passeggeri in base al rel
answrtype= no-answer
*/

function copyFieldsEregPassnames(containerfrom,containerto) {
 // iterate over all of the inputs for the form
 // element that was passed in
	jQuery(':input', containerfrom).each(function() {
	var name = jQuery(this).attr('name');
	var rel = jQuery(this).attr('rel');
	var temp ='';
	var temp = name.split('_');
	name= temp[1];
	var value = jQuery(this).val();
	var type = this.type;
	var tag = this.tagName.toLowerCase();
	var disabled=0;


	// it's ok to reset the value attr of text inputs,
	// password inputs, and textareas
	if (type == 'text' || type == 'password' || tag == 'textarea'){

	jQuery(containerto+' input[@name$='+name+'][@rel='+rel+']').val(value);
	}
	// select elements need to have their 'selectedIndex' property set to -1
	// (this works for both single and multiple select elements)
	else if (tag == 'select'){

	jQuery(containerto+' select[@name$='+name+'][@rel='+rel+'] option[@value='+value+']').attr('selected','selected');
	}
	});
};


/*Fdesc: copia il contenuto dei campi input text select di un contenitore  in un altro corrispondente
answrtype= cancella la form(splitta il nome all_ e ricerca la secoda parte nel nome
*/
function copyFieldsMod(containerfrom,containerto) {
 // iterate over all of the inputs for the form
 // element that was passed in
	jQuery(':input', containerfrom).each(function() {
	var name = jQuery(this).attr('name');
	var temp ='';
	var temp = name.split('_');
	name= temp[1];
	var temp ='';
	var temp = name.split('-');
	name= temp[0];
	var value = jQuery(this).val();
	var type = this.type;
	var tag = this.tagName.toLowerCase();
	var rel =  jQuery(this).attr('rel');
	rel= eval(rel);

	// it's ok to reset the value attr of text inputs,
	// password inputs, and textareas
	if (type == 'text' || type == 'password' || tag == 'textarea'){

	jQuery(containerto+' input[@name*='+name+'][@rel='+rel+']').val(value);

	}
	else if(type == 'checkbox' || type == 'radio') {
		if(jQuery(this).is(':checked')){

		jQuery(containerto+' input[@name*='+name+'][@rel='+rel+']').attr('checked','checked');
		}else{
		jQuery(containerto+' input[@name*='+name+'][@rel='+rel+']').attr('checked','');
		}
	}
	// select elements need to have their 'selectedIndex' property set to -1
	// (this works for both single and multiple select elements)
	else if (tag == 'select'){
	jQuery(containerto+' select[@name*='+name+'][@rel='+rel+'] option[@value=\''+value+'\']').attr('selected','selected');
	}
	});
};

/*Fdesc: popola le opzioni del tipo di passeggero tenendo conto dell'Infant o meno
answrtype=
*/

function populateSelectPass(selectid,controller,params){

var options = makePostAdv(controller,params);
var value = jQuery(selectid).val();
jQuery(selectid).html(options);
if(value!='B'){

jQuery(selectid+" option[@value="+value+"]").attr("selected","selected");
}else{
jQuery(selectid+" option[@value=A]").attr("selected","selected");
}
}


/*Fdesc:Valida la form per i contatti per la conferma finale

formid="form#formid"
param="action=xxx"
errdiv="div#errors"
*/
function formvalidateContacts(formid,param,errdiv,successfunc,loadingdiv){

		var msg='';
		var lang = makePostAdv('controller.php','action=getlang');

		switch(lang)
		{
			case 'IT':
		         msg ='Stai per essere rediretto verso il gateway di pagamento online.\n' ;
				 msg =msg+'Sei sicuro di voler confermare il viaggio?';
			break;
			case 'EN':
			     msg ='You are going to be redirect to the online payment gateway.\n' ;
			     msg =msg+'Are you sure to confirm this voyage?';
			break;
			case 'AL':
			     msg ='Po drejtohesh drejt sportelit te pageses  online.\n' ;
			     msg =msg+'Je I sigurt per te konfirmuar udhetimin?';
			break;
			default:
				 msg ='Sie werden fuer die Bezahlung in die on-line Buchung umgeleitet.\nBestaetigen Sie die Reservierung?' ; //tedesco
			break;
		}



       var v = jQuery(formid).validate({

       errorLabelContainer: jQuery(errdiv),

       submitHandler: function(form) {

       if(confirm(msg)){

       if(loadingdiv.length!=0)
      jQuery('div#load').html('<center>loading.....Payment Gateway</center>');

       jQuery(form).ajaxSubmit({

       url: 'controller.php?'+param,

 	   success: function(responseText) {

 	                                var v= eval(successfunc);

									v(responseText);

								}

       	 				});
       	 			}

				}
		});
}


/*Fdesc:richiama la funziona che fa il redirect al gateway
answrtype=
*/
function redirAnsGateway(msg){

   	var result= new Array();
	result=msg.split('|');
	if(result[0]=='ok'){
	var page = makePostAdv('controller.php','action=redirgateway');
	window.location.href = page;
	}else{
	alert(msg);
	}
	//potrei mettere anche un alert con jqmodal

}



/*Fdesc:controlla se per un veicolo è necessario specificare la lunghezza
answrtype=
*/
function askLen(element,inputid){
var code=jQuery(element).val();
var minlen = makePostAdv('controller.php','action=getlenvehic&code='+code+'');
if(minlen!=0){
jQuery('input#'+inputid+'').attr('disabled','');
}else{
jQuery('input#'+inputid+'').attr('disabled','disabled');
}
}

/*Fdesc:ritorna la minima lunghezza per un veicolo
answrtype=
*/
function retMinLen(element,selectid){
var len=eval(jQuery(element).val());
var code=jQuery('select#'+selectid+'').val();

var minlen = eval(makePostAdv('controller.php','action=getminlenvehic&code='+code+''));

if(len < minlen){
var lang = makePostAdv('controller.php','action=getlang');
switch(lang)
{
	case 'IT':
		msg ='Valore minimo accettato per la lunghezza:' ;
	break;
	case 'EN':
		msg ='The minimum value for the length admitted is' ;
	break;
	case 'AL':
		msg ='vlera minimale e pranuar per gjatesine' ;
	break;
	default:
		msg ='Der minimale Wert fuer die zugelassene Laenge ist:' ; //tedesco
	break;
}



alert(msg+' '+minlen);
jQuery(element).val('');
}
}

/*Fdesc:disabilita o abilita la data
answrtype=
*/
function retopendate(element){
if(jQuery(element).is(':checked')){
jQuery('span#tratta2 img.datepicker_trigger').css('visibility','hidden');

jQuery('input#t2_fromdate').attr('disabled','disabled');
jQuery('input#t2_fromdate').fadeOut('slow');
}else{
jQuery('input#t2_fromdate').attr('disabled','');
jQuery('span#tratta2 img.datepicker_trigger').css('visibility','visible');
jQuery('input#t2_fromdate').fadeIn('slow');
}

}


function toggleTables(element,div){

if(jQuery(element).is(':checked')){
jQuery(div).fadeIn(400);
}
else{
jQuery(div).fadeOut(400);
}
}

/*Fdesc:copia le accomodations,gli accessori e i veicoli
answrtype=
*/
function copyAllFields(prevtype,type,passnum,vehicnum,accessnum){


copyFieldsEregMod('table#'+prevtype+'_passtable','table#'+type+'_passtable',passnum)


if(vehicnum!=0){
copyFieldsEregMod('table#'+prevtype+'_vehictable','table#'+type+'_vehictable',vehicnum)
}

if(jQuery('input#'+prevtype+'_access-show').is(':checked')){
jQuery('input#'+type+'_access-show').attr('checked','checked');
jQuery('div#'+type+'_accessdiv').fadeIn(400);
copyFieldsEregMod('table#'+prevtype+'_accesstable','table#'+type+'_accesstable',accessnum)
}else{
jQuery('input#'+type+'_access-show').attr('checked','');
jQuery('div#'+type+'_accessdiv').fadeOut(400);
}


}

/*Fdesc:aggiorna i veicoli e le auto
answrtype=
*/
function updateVehic(tratta,value){

makePostAdv('controller.php','action=updatevehic&value='+value+'&tratta='+tratta);
}
function updatePass(tratta,value){
makePostAdv('controller.php','action=updatepass&value='+value+'&tratta='+tratta);
}


	function unsharpenDiv(divs,cornerRadius) {
	/*
		Adds rounded corners to a div, with a specified radius.
	*/

		if (typeof(divs) == 'string') {
			divs = [divs];
		}

		for (var i=0; i<divs.length; i++) {
			var divName = divs[i];
			var settings = { tl: { radius: cornerRadius}, tr: { radius: cornerRadius}, bl: { radius: cornerRadius}, br: { radius: cornerRadius}, antiAlias: true, autoPad: true, validTags: ["div"] };
			var framecorners = new curvyCorners(settings, divName);
			framecorners.applyCornersToAll();
		}
	}

/*Fdesc:mostra le accomodations disponibili;
answrtype=
*/
function availableAccom(){

jQuery("a.checkacc").click(function() {


    if(jQuery("table.availbox").length>0){
    jQuery("table.availbox").remove();
    }

    var left = jQuery(this).offset().left  -300;

	var screenwidth = (jQuery.browser.msie) ? document.documentElement.offsetWidth : window.innerWidth;

	/*if(left + 200  > screenwidth){*/

	/*left = jQuery(this).offset().left -200 -10;*/

	/*}*/


	var top = jQuery(this).offset().top -30;

    var facebox_html  = ' \
      <table class=\'availbox\'> \
        <tbody> \
          <tr> \
            <td class="tl"/><td class="btop"/><td class="tr"/> \
          </tr> \
          <tr> \
            <td class="bleft"/> \
            <td class="body"> \
              <div class="content"> \
              </div> \
              <div class="footer"> \
                <a href="#" class="close" onclick="jQuery(\'table tr.mytr\').removeClass();jQuery(\'table.availbox\').remove();" id="close"> \
                  <img src="img/closelabel.gif" title="close" class="close_image" /> \
                </a> \
              </div> \
            </td> \
            <td class="bright"/> \
          </tr> \
          <tr> \
            <td class="bl"/><td class="bbottom"/><td class="br"/> \
          </tr> \
        </tbody> \
      </table>'

  //  jQuery('body').append("<div class='availbox' style='display:none;font-weight:normal;z-index:90;background:#FFF;opacity:0.8;filter:alpha(opacity=80);position:absolute;top:0px;left:0px;color:#666666;text-align:right;width:290px;' ></div>");

  	jQuery('body').append(facebox_html);

    jQuery("table.availbox").css('top',top-50);


    jQuery("table.availbox").css('left',left-70);

    var x = jQuery(this).parent().parent();

    jQuery('table tr.mytr').removeClass();

    jQuery(x.eq(0)).addClass('mytr');



    var data = jQuery(this).attr('rel');


    var table = gettable(data);



    });


}

function gettable(data){

jQuery.ajax({
           type: "POST",
           url: 'controller.php',
           data: 'action=getavailacc&data='+data+'',
           async: true,
           success: function(message){

               if(message!=''){

    			jQuery("table.availbox div.content").empty().append(message);
   			//	jQuery('table#accomavailable').show();
                jQuery.unblockUI();
   				jQuery('table.availbox').fadeIn('slow');
   				jQuery('table.availbox').easydrag();
   				jQuery('table.availbox').bgiframe();
   				jQuery.ifixpng('images/pixel.gif');
   				jQuery('table.availbox tr td.tr,td.tl,td.br,td.bl').ifixpng();

    			}
           }
           });



}


function showOfferBari(elem,tratta)
{
	var value = jQuery(elem).val();
	if(jQuery('input#'+tratta+'_offermessage').length > 0 && jQuery('input#msg_showed').val() != 1 && jQuery(elem).val() == 'DECK')
	{
		var msg = jQuery('input#'+tratta+'_offermessage').val();
		alert(msg);
		jQuery('input#msg_showed').val(1);
		jQuery('option[value=\'ATS\']',elem).attr('selected','selected');
	}
}

