// JavaScript Document
//This code is Copyright 2012, BodrumBulletin.com. For more information please visit www.bodrumbulletin.com

 
function calculate(formObj) {
	var isMSIE = /*@cc_on!@*/0;

	puttodaydate("trip1_start");
	puttodaydate("trip1_end");
	puttodaydate("trip2_start");
	puttodaydate("trip2_end");
	puttodaydate("trip3_start");
	puttodaydate("trip3_end");
	puttodaydate("trip4_start");
	puttodaydate("trip4_end")
	puttodaydate("trip5_start");
	puttodaydate("trip5_end");
	
   	var error_message="", errorcount=0, totalduration=0, totaldurationin1st90=0, totaldurationin2nd90=0, visadaysused=0, visa2daysused=0;
	var trip1start=new Date(), trip1end=new Date(), trip1_duration=0, trip2start=new Date(), trip2end=new Date(), trip2_duration=0, trip3start=new Date(), trip3end=new Date(), trip3_duration=0, trip4start=new Date(), trip4end=new Date(), trip4_duration=0, trip5start=new Date(), trip5end=new Date(), trip5_duration=0;
	
	trip1start=parseDate(document.myform.trip1_start.value);

	var oneyearfromtrip1start=addDays(trip1start,365);
	if(trip1start>0){document.myform.trip1_end.disabled=false;}	
	
	rulingstartdate = new Date("February 1, 2012");
	if(trip1start<rulingstartdate){error_message=error_message+"WARNING: Your trip 1 start date is before the new rules apply (1st Feb 2012). Entries made prior to start date are not affected by the new visa rules. Please enter a start date after the 1st Feb 2012.<br>"; errorcount++;}
	
	if (!isMSIE) { putdate("trip1_end",trip1start.getDate(),trip1start.getMonth()+1,trip1start.getYear()+1900)};	
	trip1end=parseDate(document.myform.trip1_end.value);	
	if(trip1end>trip1start){document.myform.trip2_start.disabled=false;}else{document.myform.trip2_start.disabled=true;}	
	trip1_duration=days_between(trip1start,trip1end)+1;	
	totaldurationin1st90=trip1_duration;
	document.getElementById('trip1_duration').innerHTML ="";
	if(trip1_duration+1>0){		
		document.getElementById('trip1_duration').innerHTML = trip1_duration+" days";	
		document.getElementById('visastart').innerHTML = printdate(trip1start);
		
		var visaexpdate=addDays(trip1start,179);
		document.getElementById('visaend').innerHTML = printdate(visaexpdate);
		
		//document.getElementById('visadaysused').innerHTML =trip1_duration;
		totalduration=totalduration+trip1_duration;
		};
	if(trip1_duration<1){error_message=error_message+"Your Trip 1 end date must be later than your start date; please re-check dates.<br>"; errorcount++; document.myform.trip1_end.style.color = "red"; }else{document.myform.trip1_end.style.color = "black"};
		
		
	if(trip1end && !isMSIE){putdate("trip2_start",trip1end.getDate(),trip1end.getMonth()+1,trip1end.getYear()+1900)};
	trip2start=parseDate(document.myform.trip2_start.value);
	document.myform.trip2_start.style.color = "black";
	if(trip2start>oneyearfromtrip1start){error_message=error_message+"ERROR: Trip 2 start date is more than 1 year from your trip 1 start date.<br>";errorcount++};
	if(trip2start>trip1end){document.myform.trip2_end.disabled=false;}else if(trip2start>0){document.myform.trip2_end.disabled=true;error_message=error_message+"WARNING: Your trip 2 start date must be later than your trip 1 end date.<br>";errorcount++; document.myform.trip2_start.style.color = "red" };
	if(trip2start){putdate("trip2_end",trip2start.getDate(),trip2start.getMonth()+1,trip2start.getYear()+1900)};
	trip2end=parseDate(document.myform.trip2_end.value);		
	if(trip2end>trip2start){document.myform.trip3_start.disabled=false;}else{document.myform.trip3_start.disabled=true;}
	trip2_duration=days_between(trip2start,trip2end)+1;	
	document.getElementById('trip2_duration').innerHTML ="";
	if(trip2_duration+1>0){document.getElementById('trip2_duration').innerHTML = trip2_duration+" days";totalduration=totalduration+trip2_duration;	};
	if(trip2_duration<1){error_message=error_message+"Your Trip 2 end date must be later than your start date; please re-check dates.<br>"; errorcount++; document.myform.trip2_end.style.color = "red"; }else{document.myform.trip2_end.style.color = "black"};	


	
	if(trip2end && !isMSIE){putdate("trip3_start",trip2end.getDate(),trip2end.getMonth()+1,trip2end.getYear()+1900)};
	trip3start=parseDate(document.myform.trip3_start.value);
	document.myform.trip3_start.style.color = "black";
	if(trip3start>oneyearfromtrip1start){error_message=error_message+"ERROR: Trip 3 start date is more than 1 year from your trip 1 start date.<br>";errorcount++};
	if(trip3start>trip2end){document.myform.trip3_end.disabled=false;}else if(trip3start>0){document.myform.trip3_end.disabled=true;error_message=error_message+"WARNING: Your trip 3 start date must be later than your trip 2 end date.<br>";errorcount++; document.myform.trip3_start.style.color = "red"; };
	if(trip3start){putdate("trip3_end",trip3start.getDate(),trip3start.getMonth()+1,trip3start.getYear()+1900)};
	trip3end=parseDate(document.myform.trip3_end.value);	
	if(trip3end>trip3start){document.myform.trip4_start.disabled=false;}else{document.myform.trip4_start.disabled=true;}	
	trip3_duration=days_between(trip3start,trip3end)+1;
	document.getElementById('trip3_duration').innerHTML ="";
	if(trip3_duration+1>0){document.getElementById('trip3_duration').innerHTML = trip3_duration+" days";totalduration=totalduration+trip3_duration;	};
	if(trip3_duration<1){error_message=error_message+"Your Trip 3 end date must be later than your start date; please re-check dates.<br>"; errorcount++; document.myform.trip3_end.style.color = "red"; }else{document.myform.trip3_end.style.color = "black"};

	
	
	if(trip3end && !isMSIE){putdate("trip4_start",trip3end.getDate(),trip3end.getMonth()+1,trip3end.getYear()+1900)};
	trip4start=parseDate(document.myform.trip4_start.value);
	document.myform.trip4_start.style.color = "black";
	if(trip4start>oneyearfromtrip1start){error_message=error_message+"ERROR: Trip 4 start date is more than 1 year from your trip 1 start date.<br>";errorcount++};
	if(trip4start>trip3end){document.myform.trip4_end.disabled=false;}else if(trip4start>0){document.myform.trip4_end.disabled=true;error_message=error_message+"WARNING: Your trip 4 start date must be later than your trip 3 end date.<br>";errorcount++; document.myform.trip4_start.style.color = "red"; };
	if(trip4start){putdate("trip4_end",trip4start.getDate(),trip4start.getMonth()+1,trip4start.getYear()+1900)};
	trip4end=parseDate(document.myform.trip4_end.value);		
	if(trip4end>trip4start){document.myform.trip5_start.disabled=false;}else{document.myform.trip5_start.disabled=true;}
	trip4_duration=days_between(trip4start,trip4end)+1;	
	document.getElementById('trip4_duration').innerHTML ="";
	if(trip4_duration+1>0){document.getElementById('trip4_duration').innerHTML = trip4_duration+" days";totalduration=totalduration+trip4_duration;	};
	if(trip4_duration<1){error_message=error_message+"Your Trip 4 end date must be later than your start date; please re-check dates.<br>"; errorcount++; document.myform.trip4_end.style.color = "red"; }else{document.myform.trip4_end.style.color = "black"};

	
	if(trip4end && !isMSIE){putdate("trip5_start",trip4end.getDate(),trip4end.getMonth()+1,trip4end.getYear()+1900)};
	trip5start=parseDate(document.myform.trip5_start.value);
	document.myform.trip5_start.style.color = "black";
	if(trip5start>oneyearfromtrip1start){error_message=error_message+"ERROR: Trip 5 start date is more than 1 year from your trip 1 start date.<br>";errorcount++};
	if(trip5start>trip4end){document.myform.trip5_end.disabled=false;}else if(trip5start>0){document.myform.trip5_end.disabled=true;error_message=error_message+"WARNING: Your trip 5 start date must be later than your trip 4 end date.<br>";errorcount++; document.myform.trip5_start.style.color = "red"; };
	if(trip5start){putdate("trip5_end",trip5start.getDate(),trip5start.getMonth()+1,trip5start.getYear()+1900)};
	trip5end=parseDate(document.myform.trip5_end.value);		
	trip5_duration=days_between(trip5start,trip5end)+1;
	document.getElementById('trip5_duration').innerHTML ="";
	if(trip5_duration+1>0){document.getElementById('trip5_duration').innerHTML = trip5_duration+" days";	totalduration=totalduration+trip5_duration;};
	if(trip5_duration<1){error_message=error_message+"Your Trip 5 end date must be later than your start date; please re-check dates.<br>"; errorcount++; document.myform.trip5_end.style.color = "red"; }else{document.myform.trip5_end.style.color = "black"};

	var trip3_duration=0;
	


	visa2set=false;
	if(trip2start>visaexpdate){
		//trip2 occurs after visa1
		if(visa2set==false){
			//new visa
			document.getElementById('visa2start').innerHTML = printdate(trip2start);
			var visa2expdate=addDays(trip2start,179);
			document.getElementById('visa2end').innerHTML = printdate(visa2expdate);
			visa2set=true;
			}
		if(trip2_duration){totaldurationin2nd90=trip2_duration};
		document.getElementById('visa2daysused').innerHTML =totaldurationin2nd90;
		};
	if(trip2start<visaexpdate && trip2end<visaexpdate){
		//trip 2 occurs in visa1 period
		if(trip2_duration){totaldurationin1st90=trip1_duration+trip2_duration};
		visadaysused=totaldurationin1st90;
		}
		
	if(trip2start<visaexpdate && trip2end>visaexpdate){
		//trip 2 occurs across visa periods
		totaldurationin1st90=days_between(trip2start,visaexpdate);
		totaldurationin2nd90=days_between(visaexpdate,trip2end);
		visadaysused =totaldurationin1st90+trip1_duration;	
		visa2daysused =totaldurationin2nd90;
		error_message=error_message+"WARNING: Your 1st tourist visa expires during trip 2; you will need to leave Turkey on or before the "+printdate(visaexpdate)+" to renew your tourist visa. Or alternatively you should get a residency permit.<br>";errorcount++;
		};	
		
		
		
	trip3_duration=days_between(trip3start,trip3end)+1;
	if(trip3start>visaexpdate){
		//trip3 occurs after visa1
		if(visa2set==false){
			//new visa
			document.getElementById('visa2start').innerHTML = printdate(trip3start);
			var visa2expdate=addDays(trip3start,180);
			document.getElementById('visa2end').innerHTML = printdate(visa2expdate);
			visa2set=true;
			}
		if(trip3_duration){totaldurationin2nd90=totaldurationin2nd90+trip3_duration};
		visa2daysused =totaldurationin2nd90;
		};
	if(trip3start<visaexpdate && trip3end<visaexpdate){
		//trip 3 occurs in visa1 period
		if(trip3_duration){totaldurationin1st90=trip1_duration+trip2_duration+trip3_duration}; 
		visadaysused =totaldurationin1st90;
		};
		
	if(trip3start<visaexpdate && trip3end>visaexpdate){
		//trip 2 occurs across visa periods
		totaldurationin1st90=days_between(trip3start,visaexpdate);
		totaldurationin2nd90=days_between(visaexpdate,trip3end);
		visadaysused=totaldurationin1st90+trip1_duration+trip2_duration;	
		visa2daysused =totaldurationin2nd90;
		error_message=error_message+"WARNING: Your 1st tourist visa expires during trip 3; you will need to leave Turkey on or before the "+printdate(visaexpdate)+" to renew your tourist visa. Or alternatively you should get a residency permit.<br>";errorcount++;		};		
		
		
		
	trip4_duration=days_between(trip4start,trip4end)+1;
	if(trip4start>visaexpdate){
		//trip4 occurs after visa1
		if(visa2set==false){
			//new visa
			document.getElementById('visa2start').innerHTML = printdate(trip4start);
			var visa2expdate=addDays(trip4start,180);
			document.getElementById('visa2end').innerHTML = printdate(visa2expdate);
			visa2set=true;
			}
		if(trip4_duration){totaldurationin2nd90=totaldurationin2nd90+trip4_duration};
		visa2daysused =totaldurationin2nd90
		};
	if(trip4start<visaexpdate && trip4end<visaexpdate){
		//trip 3 occurs in visa1 period
		if(trip4_duration){totaldurationin1st90=trip1_duration+trip2_duration+trip3_duration+trip4_duration}; 
		visadaysused =totaldurationin1st90;
		};
		
	if(trip4start<visaexpdate && trip4end>visaexpdate){
		//trip 2 occurs across visa periods
		totaldurationin1st90=days_between(trip4start,visaexpdate);
		totaldurationin2nd90=days_between(visaexpdate,trip4end);
		visadaysused =totaldurationin1st90+trip1_duration+trip2_duration+trip3_duration;	
		visa2daysused =totaldurationin2nd90;
		error_message=error_message+"WARNING: Your 1st tourist visa expires during trip 4; you will need to leave Turkey on or before the "+printdate(visaexpdate)+" to renew your tourist visa. Or alternatively you should get a residency permit.<br>";errorcount++;
		};		
		
		trip5_duration=days_between(trip5start,trip5end)+1;
	if(trip5start>visaexpdate){
		//trip5 occurs after visa1
		if(visa2set==false){
			//new visa
			document.getElementById('visa2start').innerHTML = printdate(trip5start);
			var visa2expdate=addDays(trip5start,180);
			document.getElementById('visa2end').innerHTML = printdate(visa2expdate);
			visa2set=true;
			}
		if(trip5_duration){totaldurationin2nd90=totaldurationin2nd90+trip5_duration};
		visa2daysused =totaldurationin2nd90;
		};
	if(trip5start<visaexpdate && trip5end<visaexpdate){
		//trip 3 occurs in visa1 period
		if(trip5_duration){totaldurationin1st90=trip1_duration+trip2_duration+trip3_duration+trip4_duration+trip5_duration}; 
		visadaysused =totaldurationin1st90;
		};
		
	if(trip5start<visaexpdate && trip5end>visaexpdate){
		//trip 2 occurs across visa periods
		totaldurationin1st90=days_between(trip5start,visaexpdate);
		totaldurationin2nd90=days_between(visaexpdate,trip5end);
		visadaysused =totaldurationin1st90+trip1_duration+trip2_duration+trip3_duration+trip4_duration;	
		visa2daysused =totaldurationin2nd90;
		error_message=error_message+"WARNING: Your 1st tourist visa expires during trip 5; you will need to leave Turkey on or before the "+printdate(visaexpdate)+" to renew your tourist visa. Or alternatively you should get a residency permit.<br>";errorcount++;		
		};	
		



	if(visadaysused>0){document.getElementById('visadaysused').innerHTML =totaldurationin1st90};
	if(visa2daysused>0){document.getElementById('visa2daysused').innerHTML =totaldurationin2nd90};




	if(totaldurationin1st90>90){error_message=error_message+"WARNING: You are overstaying your 1st tourist visa; you should get residency, or change your travel dates.<br>"};
	if(totaldurationin2nd90>90){error_message=error_message+"WARNING: You are overstaying your 2nd tourist visa 2; you should get residency, or change your travel dates.<br>"};
	document.getElementById('totalduration').innerHTML = totalduration+" days";
	if(totalduration>90){error_message=error_message+"<font color='orange'>NOTE: If you are a UK citizen, then please be aware that staying out of the UK for more than 90 days in a 12 month period can affect your eligibility to NHS.</font><br>";errorcount++;};
	
	
	
  	if(errorcount==0){	
		error_message="<br>No errors or problems detected."
		document.getElementById('errors').style.color = "green";
		document.getElementById('errors').innerHTML = error_message;
	}
	else
		{;
		document.getElementById('errors').style.color = "red";
		document.getElementById('errors').innerHTML = error_message;
		}
	
	

}


function days_between(date1, date2) {	
	if(!date1){return};
	if(!date2){return};
	//alert(date1+"  .  "+date2);
    var ONE_DAY = 1000 * 60 * 60 * 24
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()
    var difference_ms = date2_ms - date1_ms    
    return Math.round(difference_ms/ONE_DAY)
}




function putdate(thetarget,d,m,y){
		//alert(d+"."+m+"."+y);
		new JsDatePick({
			useMode:2,
			target:thetarget,
			dateFormat:"%d-%M-%Y",
			selectedDate:{day:d,month:m,year:y}
		});
	};
	
	
function puttodaydate(thetarget){
		new JsDatePick({
			useMode:2,
			target:thetarget,
			dateFormat:"%d-%M-%Y",
		});
	};

function printdate(d)
{
	var m_names = new Array("January", "February", "March",	"April", "May", "June", "July", "August", "September", "October", "November", "December");	
	var curr_date = d.getDate();
	var curr_month = d.getMonth();
	var curr_year = d.getFullYear();
	return(curr_date + " " + m_names[curr_month] + ", " + curr_year);
}

function addDays(myDate,days) {
	//alert(days);
return new Date(myDate.getTime() + days*24*60*60*1000);
}

