﻿//var iRoot=getElementsByTagName('result').item(0);

var ucCalName='';
function SetucCalName(name)
{
	ucCalName=name;
}


function SetSelectedDate(obj, date)
{
	if($(obj.id+'H'))
	{
		$(obj.id+'H').value=date;
		//alert('SET DATE!');
	}
	
	// Validate and SET Return date as 2 days Advance to This selected Date
	var txtName=obj.id.substring(obj.id.indexOf('_')+1);
	if(txtName=="txtStartDate")
	{
		// Get End Date and Check for date diff
		var endDate=toDate($(ucCalName+'_txtEndDate').value);
		
		// Validate Dates Diff
		var validDate=toDate(date);
		validDate.setDate(validDate.getDate()+2);

		if(validDate>endDate)
		{
			var d  = validDate.getDate();
			var day = (d < 10) ? '0' + d : d;
			var m = validDate.getMonth() + 1;
			var month = (m < 10) ? '0' + m : m;

			/// Change Date
			//$(ucCalName+'_txtEndDate').value=validDate.getDate();
			var newDate=day+'/'+month+'/'+validDate.getFullYear();
			$(ucCalName+'_txtEndDate').value=newDate;
			$(ucCalName+'_txtEndDateH').value=newDate;
		}
	}
	
	if(txtName=="txtCheckIn")
	{
		// Get End Date and Check for date diff
		var endDate=toDate($(ucCalName+'_txtCheckOut').value);
		
		// Validate Dates Diff
		var validDate=toDate(date);
		validDate.setDate(validDate.getDate()+1);

		if(validDate>endDate)
		{
			var d  = validDate.getDate();
			var day = (d < 10) ? '0' + d : d;
			var m = validDate.getMonth() + 1;
			var month = (m < 10) ? '0' + m : m;

			/// Change Date
			//$(ucCalName+'_txtEndDate').value=validDate.getDate();
			var newDate=day+'/'+month+'/'+validDate.getFullYear();
			$(ucCalName+'_txtCheckOut').value=newDate;
			$(ucCalName+'_txtCheckOutH').value=newDate;
		}
	}
	
}

function callCalendar(conf_name,target_field,ref_field,default_date,hoder_id,dx,dy,mode,startfield)
{
	// Convert to Object
	target_field=$(ucCalName+'_'+target_field);
	ref_field=$(ucCalName+'_'+ref_field);
	//alert(ucCalName);
	if(startfield!=null)
		startfield=$(ucCalName+'_'+startfield);
	//debugger;
	xcModPath="script";
	//xcWindowTemplate="../js/script/xc2_template.html";
	xcDateFormat ='dd/mm/yyyy';
	setRange("",daysAfter(7),"");
	
	//setting the start date
	var strDate = (startfield!=null && startfield.value!='')?startfield.value:0;
	if(strDate != 0 && target_field.id !=startfield.id)
	{
		setRange("",strDate,"");
	}
		
	showCalendar("",target_field,ref_field,default_date,hoder_id,dx,dy,mode);
}

function checkDate(txtBoxName, fieldName)
{
    //debugger;
    var dtStr =document.getElementById(txtBoxName).value;
    document.getElementById(txtBoxName).value =trim(dtStr);
    dtStr =trim(dtStr);
    if((fieldName =='EndDate'))
    {
	    document.getElementById(fieldName).value = "";
    }
	
    if(!isDate(dtStr.toString(), fieldName))
    {
	    return false;
    }else
    {
	    if(!isGreaterThanToday(txtBoxName)){
		    alert(fieldName+' is less than Today');
		    return false;
	    }
    }
	
}
function isDate(dtStr, fieldName){
var temp =new String(dtStr);
dtStr=temp.substring(0,10);
temp=temp.substring(10);
/*
if (temp.lenght!=0)
{
	if (temp!= " 00:00:00")
	{
		alert("Ilegal Charaters in "+fieldName);
	}
}*/
var daysInMonth = DaysArray(12)
var pos1=dtStr.indexOf(dtCh)
var pos2=dtStr.indexOf(dtCh,pos1+1)
var strDay=dtStr.substring(0,pos1)
var strMonth=dtStr.substring(pos1+1,pos2)
var strYear=dtStr.substring(pos2+1)
strYr=strYear
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
for (var i = 1; i <= 3; i++) {
	if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
}
month=parseInt(strMonth)
day=parseInt(strDay)
year=parseInt(strYr)
if (pos1==-1 || pos2==-1){
	alert("The date format should be : dd/mm/yyyy in "+fieldName )
	return false
}
if (strMonth.length<1 || month<1 || month>12){
	alert("Please enter a valid month for "+fieldName)
	return false
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
	alert("Please enter a valid day for "+fieldName)
	return false
}
if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear+" for "+fieldName)
	return false
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
{
	alert("Please enter a valid date for "+fieldName)
	return false
}
return true
}
function isGreaterThanToday(txtBoxName)
{
	
	var td = Today();
	var sd1 = td.split("/");
	var sd2 = document.getElementById(txtBoxName).value.split("/");
		
	var x = new Date(sd1[2] ,sd1[0] -1 ,sd1[1] );
	var y = new Date(sd2[2] ,sd2[1] -1 ,sd2[0] );

	var difference = Date.UTC(y.getYear(),y.getMonth(),y.getDate(),0,0,0) - Date.UTC(x.getYear(),x.getMonth(),x.getDate(),0,0,0);
	var nights = difference/1000/60/60/24;
	if( nights < 0)
	{
		alert("End date has to be greater than Start date");
		return false;
	}
	return true;
}