﻿document.onmousemove = on_MouseMove
var mouse_x = null;
var mouse_y = null;
var show_tooltip = false;
var mouse_out = null;

function on_MouseMove(e) 
{
//    var element_tooltip = document.getElementById("tooltip")
//    if (!e) var e = window.event;
//    mouse_x = e.clientX;
//    mouse_y = e.clientY;
//    
//    if(element_tooltip)
//    {
//        if(show_tooltip)
//        {
//            $('tooltip').setStyles(
//            {
//                top: mouse_y + 7,
//                left: mouse_x + 7,
//                visibility:'visible'
//            });
//        }
//        else
//        {
//            $('tooltip').setStyles(
//            {
//                visibility:'hidden'
//            });
//        }
//    }
//    return false;
}
function css(objTextbox, tipo_azione) {
    //alert(objTextbox.className)
    //alert($("#ctl00_body_input_destination").attr("class"));

    if (tipo_azione == 'blur') {
       if (objTextbox.value == '') {
           //alert("entro if blur")
           objTextbox.value = "città";
           
       }

       }    
       if (tipo_azione == "focus") {
           if (objTextbox.value == '') {
           objTextbox.value = "";
           //alert("entro if focus")
       }
       if (objTextbox.value == 'città') { objTextbox.value = ""; }
       }
   
    }

   


function toolTip(var_display,alias_id,str_language)
{
    if(var_display == 'show')
    {
        mouse_out = false;
        var myHTMLRequest = new Request.HTML({
            url: "ajax/result_tooltip_rooms.aspx?alias_id=" + alias_id + "&language=" + str_language,
            update: "tooltip",
            onComplete: function(){
                if(!mouse_out){
                    show_tooltip = true;
                    }
                
            }}).send();
    }
    else
    {
        mouse_out = true;
        show_tooltip = false;
    }
}

function controlliDate()
{
    var element_input_data_dal = document.getElementById("ctl00_body_data_dal");
    var element_input_data_al = document.getElementById("ctl00_body_data_al");
    var element_calendario_dal = document.getElementById("ctl00_body_img_calendar_dal");
    var element_calendario_al = document.getElementById("ctl00_body_img_calendar_al");
    var element_form = document.getElementById("aspnetForm")
    
    if((element_form) && (element_input_data_dal) && (element_input_data_al))
    {
        element_input_data_dal.onkeypress = function()
        {
            return false;
        }
        
        element_input_data_al.onkeypress = function()
        {
            return false;
        }
        
        element_form.onsubmit = function()
        {
            ary_dal = element_input_data_dal.value.split("/");
            ary_al = element_input_data_al.value.split("/");
            
            date_dal = new Date(ary_dal[2], ary_dal[1]-1, ary_dal[0]);
            date_al = new Date(ary_al[2], ary_al[1]-1, ary_al[0]);
            
            date_now = new Date();
            date_now.setHours(0);
            date_now.setMinutes(0)
            date_now.setSeconds(0);
            date_now.setMilliseconds(0);
            
            if((date_dal >= date_al) || (date_dal < date_now))
            {
                alert('il periodo impostato non è valido');
                return false;
            }
            else
            {
                return true;
            }
                    
        }
    }
}



function isDate(p_Expression){
	return !isNaN(new Date(p_Expression));		// <<--- this needs checking
}


//function dateDiff(p_Interval, p_Date1, p_Date2, p_firstdayofweek, p_firstweekofyear){
//	if(!isDate(p_Date1)){return "invalid date: '" + p_Date1 + "'";}
//	if(!isDate(p_Date2)){return "invalid date: '" + p_Date2 + "'";}
//	
////	    var dt1 = p_Date1;
////	    var dt2 = p_Date2;

//        var dt1 = new Date();
//        var arrdata= p_Date1.split("/");
//                
//        dt1.setDate(arrdata[0]);
//        dt1.setMonth(arrdata[1]-1);
//        dt1.setFullYear(arrdata[2]);
//        
//        
//        var dt2 = new Date();
//        var arrdata2= p_Date2.split("/");
//                
//        dt2.setDate(arrdata2[0]);
//        dt2.setMonth(arrdata2[1]-1);
//        dt2.setFullYear(arrdata2[2]);



////        alert(dt1);
////        alert(dt2);


//	// get ms between dates (UTC) and make into "difference" date
//	var iDiffMS = dt2.valueOf() - dt1.valueOf();
//	var dtDiff = new Date(iDiffMS);

//	// calc various diffs
//	var nYears  = dt2.getUTCFullYear() - dt1.getUTCFullYear();
//	var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears!=0 ? nYears*12 : 0);
//	var nQuarters = parseInt(nMonths/3);	//<<-- different than VBScript, which watches rollover not completion
//	
//	var nMilliseconds = iDiffMS;
//	var nSeconds = parseInt(iDiffMS/1000);
//	var nMinutes = parseInt(nSeconds/60);
//	var nHours = parseInt(nMinutes/60);
//	var nDays  = parseInt(nHours/24);
//	var nWeeks = parseInt(nDays/7);


//	// return requested difference
//	var iDiff = 0;		
//	switch(p_Interval.toLowerCase()){
//		case "yyyy": return nYears;
//		case "q": return nQuarters;
//		case "m": return nMonths;
//		case "y": 		// day of year
//		case "d": return nDays;
//		case "w": return nDays;
//		case "ww":return nWeeks;		// week of year	// <-- inaccurate, WW should count calendar weeks (# of sundays) between
//		case "h": return nHours;
//		case "n": return nMinutes;
//		case "s": return nSeconds;
//		case "ms":return nMilliseconds;	// millisecond	// <-- extension for JS, NOT available in VBScript
//		default: return "invalid interval: '" + p_Interval + "'";
//	}
//}

function dateDiff(p_Interval, p_Date1, p_Date2, p_firstdayofweek, p_firstweekofyear) {
    if (!isDate(p_Date1)) { return "invalid date: '" + p_Date1 + "'"; }
    if (!isDate(p_Date2)) { return "invalid date: '" + p_Date2 + "'"; }
    var dt1 = new Date(p_Date1);
    var dt2 = new Date(p_Date2);

    // get ms between dates (UTC) and make into "difference" date
    var iDiffMS = dt2.valueOf() - dt1.valueOf();
    var dtDiff = new Date(iDiffMS);

    // calc various diffs
    var nYears = dt2.getUTCFullYear() - dt1.getUTCFullYear();
    var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears != 0 ? nYears * 12 : 0);
    var nQuarters = parseInt(nMonths / 3); //<<-- different than VBScript, which watches rollover not completion

    var nMilliseconds = iDiffMS;
    var nSeconds = parseInt(iDiffMS / 1000);
    var nMinutes = parseInt(nSeconds / 60);
    var nHours = parseInt(nMinutes / 60);
    var nDays = parseInt(nHours / 24);
    var nWeeks = parseInt(nDays / 7);


    // return requested difference
    var iDiff = 0;
    switch (p_Interval.toLowerCase()) {
        case "yyyy": return nYears;
        case "q": return nQuarters;
        case "m": return nMonths;
        case "y": 		// day of year
        case "d": return nDays;
        case "w": return nDays;
        case "ww": return nWeeks; 	// week of year	// <-- inaccurate, WW should count calendar weeks (# of sundays) between
        case "h": return nHours;
        case "n": return nMinutes;
        case "s": return nSeconds;
        case "ms": return nMilliseconds; // millisecond	// <-- extension for JS, NOT available in VBScript
        default: return "invalid interval: '" + p_Interval + "'";
    }
}

//per loading
function UpdateImg(ctrl, imgsrc) {
    var img = document.getElementById(ctrl);
    document.getElementById('container').style.display = 'none';
    document.getElementById('splashScreen').style.display = 'block';
    img.src = imgsrc;
    //alert(img.src);
}

function loading(http_path){
    setTimeout("UpdateImg('img_loading','" + http_path + "img/circle.gif')", 30);
    return true;
}
function controlloDataInserita(http_path, text, text1, text2, text3, text4) {
    document.getElementById("ctl00_body_data_dal").value = document.getElementById("ctl00_body_data_dal").value.replace(/-/g, "/");
    document.getElementById("ctl00_body_data_al").value = document.getElementById("ctl00_body_data_al").value.replace(/-/g, "/");
    var element_input_data_dal = document.getElementById("ctl00_body_data_dal");
    var element_input_data_al = document.getElementById("ctl00_body_data_al");
    var element_input_citta = document.getElementById("ctl00_body_input_destination")
    var errori = 0
    var errori_finale = 0

    if (element_input_citta.value == "" || element_input_citta.value == "città") {
        errori_finale = 1;
        errori = 1;
        alert(text4);
        return false;
    }

    if (element_input_data_dal.value == "") {
        errori_finale = 1;
        errori = 1;
        alert(text);
        return false;
    }


    var gg = ((element_input_data_dal.value).split("/"));
    var data = new Date(gg[2], gg[1] - 1, gg[0])

    if (!isDate(data)) {
        errori_finale = 1;
        errori = 1;
        alert(text1);
        return false;
    }
    
    var gg_al = ((element_input_data_al.value).split("/"));
    var data_al = new Date(gg_al[2], gg_al[1] - 1, gg_al[0])

    if (!isDate(data_al)) {
        errori_finale = 1;
        errori = 1;
        alert(text1);
        return false;
    }

    if (errori == 0) {
        ary_dal = element_input_data_dal.value.split("/");
        date_dal = new Date(ary_dal[2], ary_dal[1] - 1, ary_dal[0]);

        date_now = new Date();
        date_now.setHours(0);
        date_now.setMinutes(0)
        date_now.setSeconds(0);
        date_now.setMilliseconds(0);

        if (date_dal < date_now) {
            errori_finale = 1;
            alert(text2);
            return false;
        }
    }


    if (errori == 0) {
        ary_al = element_input_data_al.value.split("/");
        date_al = new Date(ary_al[2], ary_al[1] - 1, ary_al[0]);

        ary_dal = element_input_data_dal.value.split("/");
        date_dal = new Date(ary_dal[2], ary_dal[1] - 1, ary_dal[0]);


        if (date_dal > date_al) {
            errori_finale = 1;
            alert(text3);
            return false;
        }
    }
    if (errori_finale == 0) {
        loading(http_path);
        return true;
    }
}


function InserisciDataAl(http_path){
    //alert(document.getElementById("ctl00_body_data_dal").value);
    document.getElementById("ctl00_body_data_dal").value=document.getElementById("ctl00_body_data_dal").value.replace(/-/g,"/");
    var element_input_data_dal = document.getElementById("ctl00_body_data_dal");
            
    var gg = ((element_input_data_dal.value).split("/"));
    var data = new Date(gg[2], gg[1] - 1, gg[0]);
    
    //alert('facciamo il dateadd');
    //alert(dateAdd('d',1,element_input_data_dal.value));
    
    document.getElementById('ctl00_body_data_al').value=dateAdd('d',1,element_input_data_dal.value);
}

function dateAdd(p_Interval, p_Number, p_Date){
		

	//alert(p_Date);
	p_Number = new Number(p_Number);
	
	//var dt = new Date(p_Date);
	
    var arrdata=p_Date.split('/'); 
	
	var dt = new Date(arrdata[2],arrdata[1]-1,arrdata[0]); 
	if(!isDate(dt)){return "invalid date: '" + p_Date + "'";}
	if(isNaN(p_Number)){return "invalid number: '" + p_Number + "'";}
	//alert(dt);
   
	switch(p_Interval.toLowerCase()){
		case "yyyy": {// year
			dt.setFullYear(dt.getFullYear() + p_Number);
			break;
		}
		case "q": {		// quarter
			dt.setMonth(dt.getMonth() + (p_Number*3));
			break;
		}
		case "m": {		// month
			dt.setMonth(dt.getMonth() + p_Number);
			break;
		}
		case "y":		// day of year
		case "d":		// day
		case "w": {		// weekday
			//alert(dt);
			dt.setDate(dt.getDate() + p_Number);
			//alert(dt);
			break;
		}
		case "ww": {	// week of year
			dt.setDate(dt.getDate() + (p_Number*7));
			break;
		}
		case "h": {		// hour
			dt.setHours(dt.getHours() + p_Number);
			break;
		}
		case "n": {		// minute
			dt.setMinutes(dt.getMinutes() + p_Number);
			break;
		}
		case "s": {		// second
			dt.setSeconds(dt.getSeconds() + p_Number);
			break;
		}
		case "ms": {		// second
			dt.setMilliseconds(dt.getMilliseconds() + p_Number);
			break;
		}
		default: {
			return "invalid interval: '" + p_Interval + "'";
		}
	}
	
	//alert(dt.getDate());
	
	
	var new_day=dt.getDate();
	if (new_day<10){
	    new_day='0'+new_day
	}
	
	var new_month=parseInt(dt.getMonth()+1);
	if (new_month<10){
	    new_month='0'+new_month
	}
	
	
	var new_date=new_day + '/' + new_month + '/' + dt.getFullYear();
		
	return new_date;
}