/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

//Init date picker
$(function()
{
    Date.format = 'yyyy-mm-dd';
    $('.date-pick').datePicker({startDate:'1996-01-01'}).val(new Date().asString()).trigger('change');
});

var servDate, servClientClockDiff;

function getDetails(vessel,voyage)
{
    var sysmsg = document.getElementById('message');    
    var loading = document.getElementById('Loading');
    var output = document.getElementById('Display_Form');   
    
    loading.style.display = 'block';
    
    //Check the parameter
    vessel = $.trim(vessel);
    voyage = $.trim(voyage);
    if(vessel != '' || voyage != '')
    {
	//Send the request
	$.ajax({type:'GET' ,url:'backend.jsp',
	    dataType:'json' ,timeout:5000,
	    data:'&json=true&function=check&vessel='+vessel+'&voyage='+voyage,
	    cache:false , global:false,
	    success:function(data,status){
	        if(data.msg_type == 'server_error')
		{
			sysmsg.innerHTML = "An error "+data.msg_code+" was returned from server : "+data.msg;
		}
		else
		{
			sysmsg.innerHTML = data.msg;
			output.innerHTML = data.data;	
	        }		
	    },
	    error:function(xmlhttpobj,status,exception){
	        sysmsg.innerHTML = "Error : connection to server error";
	    },
	    complete:function(xmlhttpobj,status){
		loading.style.display = 'none';
		mainData.style.display = 'block';
	    }
	});
    }
    else
    {
	showDateRange();	
    }
    //Stop the form submitting
    return false;
}

function showDateRange()
{
    var timePicker = document.getElementById('time-pick-1');
    var output = document.getElementById('Display_Form');   
    var loading = document.getElementById('Loading');
    var mainData = document.getElementById('mainData');
    loading.style.display = 'none';
    timePicker.style.display = 'block';
    mainData.style.display = 'none';

    output.innerHTML = '';
}

function getDateDetails()
{
    var sysmsg = document.getElementById('message');
    var loading = document.getElementById('Loading');
    var output = document.getElementById('Display_Form');
    var date_from = document.getElementById('date-from');
    var date_to = document.getElementById('date-to');
    var timePicker = document.getElementById('time-pick-1');
    var mainData = document.getElementById('mainData');
    
    //Send the request
    $.ajax({type:'GET' ,url:'backend.jsp',
	dataType:'json' ,timeout:5000,
	data:'&json=true&function=checkAll&date_from='+date_from.value+'&date_to='+date_to.value,
	cache:false , global:false,
	success:function(data,status){
	    if(data.msg_type == 'server_error')
	    {
		    sysmsg.innerHTML = "An error "+data.msg_code+" was returned from server : "+data.msg;
	    }
	    else
	    {
		    sysmsg.innerHTML = data.msg;
		    output.innerHTML = data.data;
	    }
	},
	error:function(xmlhttpobj,status,exception){
	    sysmsg.innerHTML = "Error : connection to server error";
	},
	complete:function(xmlhttpobj,status){
	    loading.style.display = 'none';
	    timePicker.style.display = 'none';
	    mainData.style.display = 'block';
	}
    });
}

function Cancel_date()
{
    var output = document.getElementById('Display_Form');
    var timePicker = document.getElementById('time-pick-1');
    var mainData = document.getElementById('mainData');
    var loading = document.getElementById('Loading');

    loading.style.display = 'none';
    timePicker.style.display = 'none';
    mainData.style.display = 'block';
    output.innerHTML = '';
}

function js_clock()
{
    var clock_time = new Date();
    var year=clock_time.getYear();
    var month=clock_time.getMonth()+1;
    var daym=clock_time.getDate();
    var clock_hours = clock_time.getHours();
    var clock_minutes = clock_time.getMinutes();
    var clock_seconds = clock_time.getSeconds();
    var clock_suffix = "AM";
    if (year < 1000){year+=1900;}
    if (month<10){month="0"+month;}
    if (daym<10){daym="0"+daym;}
    if (clock_hours > 11){clock_suffix = "PM";clock_hours = clock_hours - 12;}
    if (clock_hours == 0){clock_hours = 12;}
    if (clock_hours < 10){clock_hours = "0" + clock_hours;}
    if (clock_minutes < 10){clock_minutes = "0" + clock_minutes;}
    if (clock_seconds < 10){clock_seconds = "0" + clock_seconds;}
    //Display the clock
    var clock_div = document.getElementById('js_clock');
    clock_div.innerHTML = year + "/" + month + "/" + daym + " " + clock_hours + ":" + clock_minutes + ":" + clock_seconds + " " + clock_suffix;
    setTimeout("js_clock()", 1000);
}

function serv_js_clock()
{
    var clock_time = new Date();
    var now = new Date();
    clock_time.setTime(now.getTime() + (servDate.getTime() - (servDate.getTime() + servClientClockDiff.getTime())));
    var year=clock_time.getYear();
    var month=clock_time.getMonth()+1;
    var daym=clock_time.getDate();
    var clock_hours = clock_time.getHours();
    var clock_minutes = clock_time.getMinutes();
    var clock_seconds = clock_time.getSeconds();
    var clock_suffix = "AM";
    if (year < 1000){year+=1900;}
    if (month<10){month="0"+month;}
    if (daym<10){daym="0"+daym;}
    if (clock_hours > 11){clock_suffix = "PM";clock_hours = clock_hours - 12;}
    if (clock_hours == 0){clock_hours = 12;}
    if (clock_hours < 10){clock_hours = "0" + clock_hours;}
    if (clock_minutes < 10){clock_minutes = "0" + clock_minutes;}
    if (clock_seconds < 10){clock_seconds = "0" + clock_seconds;}
    //Display the clock
    var clock_div = document.getElementById('serv_js_clock');
    clock_div.innerHTML = year + "/" + month + "/" + daym + " " + clock_hours + ":" + clock_minutes + ":" + clock_seconds + " " + clock_suffix;
    setTimeout("serv_js_clock()", 1000);
}

function getServTime()
{
    var serv_clock = document.getElementById('serv_js_clock');
    //Get Server Time
    $.ajax({type:'GET' ,url:'backend.jsp',
	dataType:'json' ,timeout:5000,
	data:'&json=true&function=time',
	cache:false , global:false,
	success:function(data,status){
	    if(data.msg_type == 'server_error')
	    {
		serv_clock.innerHTML = "Unable to get time from server";
	    }
	    else
	    {
		servDate = new Date(data.year,data.month,data.day,data.hour,data.minute,data.day);
		servClientClockDiff = new Date();
		var now = new Date();
		servClientClockDiff.setTime(now.getTime() - servDate.getTime());
		serv_js_clock();
	    }
	},
	error:function(xmlhttpobj,status,exception){
	    serv_clock.innerHTML = "Error : connection to server error";
	},
	complete:function(xmlhttpobj,status){
	    
	}
    }); 
}   
