///// FROM STYLING /////

function forms(){
	$('.inputWrap input, .textareaWrap textarea').each(function(){
		if($(this).val() == $(this).attr('title')){
			$(this).addClass('unselected');
		}
	});
	$('.inputWrap input, .textareaWrap textarea').focus(function(){
		if($(this).val() == $(this).attr('title')){
			$(this).val('').removeClass('unselected');
		}
	});
	$('.inputWrap input, .textareaWrap textarea').blur(function(){
		if($(this).val().length <= 0){
			$(this).addClass('unselected').val($(this).attr('title'));
		}
	});
	$('.selectWrap').each(function(){
		$(this).find('select').fadeTo(0,0);
		$(this).find('label').append('<span>' + $(this).find('select').val() + '</span>');
		$(this).find('span').width($(this).width() - 30);
		if($(this).find('select').val() == $(this).find('select').attr('title')){
			$(this).find('span').addClass('unselected');
		}
	});
	$('.selectWrap select').change(function(){
		$(this).parent().find('span').text($(this).find(':selected').text());
		if($(this).val() == $(this).attr('title')){
			$(this).parent().find('span').addClass('unselected');
		}
		else{
			$(this).parent().find('span').removeClass('unselected');
		}
	});
}


///// DATE PICKER /////

var theDate = new Date();
var theDay = theDate.getDate();
var theMonth = theDate.getMonth() + 1;
var theYear = theDate.getFullYear();
var months = [theDay, theMonth, theYear];
var monthArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];


function createDatePicker(iDay, iMonth, iYear, selector){
	$('.pickerWrap').remove();
	var newDate = new Date(iYear, iMonth - 1, 32);
	var dayMargin = new Date(iYear, iMonth - 1).getDay();
	var daysNo = (32 - newDate.getDate());
	var total = (daysNo + dayMargin)*7;
	var highest = Math.ceil((daysNo + dayMargin)/7);
	var difference = (highest*7) - (daysNo + dayMargin);
	$(selector).append('<div class="pickerWrap"><div class="datePicker"><div class="pointer"></div><div class="month"><span class="monthLeft">&lsaquo;</span><span class="title">' + monthArray[iMonth - 1] + '</span><span class="monthRight">&rsaquo;</span><span class="year">' + iYear + '</span></div><div class="dayNames"><div>S</div><div>M</div><div>T</div><div>W</div><div>T</div><div>F</div><div>S</div></div><div class="days"></div><div class="key"><span class="close">close</span><span class="available">Available</span><span class="unavailable">Unavailable</span></div></div></div>');
	$('.pickerWrap:last').css('left', Math.round($(selector).width() + 6) + 'px');
	for(i=0; i<dayMargin; i++){
		$('.pickerWrap .days:last').append('<div class="noDay">&nbsp;</div>');
	}
	for(i=1; i<(daysNo + 1); i++){
		if(i < day && month2 == month && year2 == year ){
			$('.pickerWrap .days:last').append('<div class="past">' + i + '</div>');
		}
		else{
			$('.pickerWrap .days:last').append('<div class="avail">' + i + '</div>');
		}
	}
	for(i=0; i<difference; i++){
		$('.pickerWrap .days:last').append('<div class="noDay">&nbsp;</div>');
	}
}

$('.pickerWrap .close').live('click', function(){
	$('.pickerWrap').remove();
	return false;
});

$('.pickerWrap .monthLeft').live('click', function(){
	if(month2 <= month && year2 == year){
	}
	else{
		month2 -= 1;
	}
	if(month2 <= 0){
		month2 = 12;
		year2 -= 1;
	}
	createDatePicker(1,month2,year2,$(this).closest('.pickerWrap').parent());
	return false;
});
$('.pickerWrap .monthRight').live('click', function(){
	month2 += 1;
	if(month2 >= 13){
		month2 = 1;
		year2 += 1;
	}
	createDatePicker(1,month2,year2,$(this).closest('.pickerWrap').parent());
	return false;
});

function checkDate(array1, array2){
	var resetDate = false;
	if(array1.length != 3 || parseInt(array1[0]) < 1 || parseInt(array1[0]) > 31 || parseInt(array1[1]) < 1 || parseInt(array1[1]) > 12 ||  parseInt(array1[2]) < parseInt(array2[2])){
		resetDate = true;
	}
	else if(parseInt(array1[2]) == parseInt(array2[2])){
		if(parseInt(array1[1]) < parseInt(array2[1])){
			resetDate = true;
		}
		else if(parseInt(array1[1]) == parseInt(array2[1])){
			if(parseInt(array1[0]) < parseInt(array2[0])){
				resetDate = true;
			}
		}
	}
	if(resetDate === true){
		array1[0] = array2[0];
		array1[1] = array2[1];
		array1[2] = array2[2];
	}
	if(parseInt(array1[0]) < 10){
		array1[0] = '0' + parseInt(array1[0]);
	}
	if(parseInt(array1[1]) < 10){
		array1[1] = '0' + parseInt(array1[1]);
	}
	return array1;
}

$('.pickerWrap .days .avail').live('click',function(){
	var array = [];
	array.push($(this).text());
	array.push(month2);
	array.push(year2);
	array = checkDate(array, months);
	$(this).closest('.datePos').find('input').val(array[0] + '/' + array[1] + '/' + array[2]);
	$('#date input').val(array[0] + '/' + array[1] + '/' + array[2]);
	$('.pickerWrap').remove();
})

function arrivals(){
	var date = $('#date input').val().split('/');
	date = checkDate(date, months);
	$('#date input').val(date[0] + '/' + date[1] + '/' + date[2]);
	window.day = parseInt(months[0]);
	window.month = parseInt(months[1]);
	window.year = parseInt(months[2]);
	window.day2 = parseInt(date[0]);
	window.month2 = parseInt(date[1]);
	window.year2 = parseInt(date[2]);
	createDatePicker(date[0],date[1],date[2],'#date');
}

$('#date img').live('click', function(){
	arrivals();
});
$('#date input').live('focus', function(){
	if($(this).val() == $(this).attr('title')){
		var date = $(this).val().split('/');
		date = checkDate(date, months);
		$(this).val(date[0] + '/' + date[1] + '/' + date[2]);
		$('#date input').val(date[0] + '/' + date[1] + '/' + date[2]);
		
	}
	setTimeout(function(){
		arrivals();
	},0);
});




$(document).ready(function(){
	forms();
});
