﻿var doCheck = false;

$(document).ready(function() {
	$("#periodStart").datepicker({
		changeFirstDay: false,
		minDate: new Date(),
		showButtonPanel: true,
		showWeeks: true,
		defaultDate: $.datepicker.parseDate('dd-mm-yy', $("[id$='_txtPeriodStart']").val()),
		onSelect: function(dateText, inst) {
			$("[id$='_txtPeriodStart']").val(dateText);
		}
	});
	$("[id$='_txtPeriodStart']").val($("#periodStart").val());

	$("#periodEnd").datepicker({
		changeFirstDay: false,
		minDate: new Date(),
		showButtonPanel: true,
		showWeeks: true,
		defaultDate: $.datepicker.parseDate('dd-mm-yy', $("[id$='_txtPeriodEnd']").val()),
		onSelect: function(dateText, inst) {
			$("[id$='_txtPeriodEnd']").val(dateText);
			togglePeriodEnd();
		}
	});
	$("[id$='_txtPeriodEnd']").val($("#periodEnd").val());

	$("[name$='groupPeriodEnd']").click(function() {
		togglePeriodEnd();
	});
	$("[name$='groupMoreProducts']").click(function() {
		toggleMoreProducts();
	});
	$("[id$='_rlstSubject']").click(function() {
		changeSubject();
	});
	$("[id$='trPrivate']").click(function() {
		changeCompany();
	});

	changeCompany();
	changeSubject();
	togglePeriodEnd();
});

function changeCompany() {
	if ($("[id$='_radPrivate']").length > 0) {
		var isPrivate = $("[id$='_radPrivate']").get(0).checked;
		if (isPrivate) {
			$("[id$='trCompany']").hide();
		} else {
			$("[id$='trCompany']").show();
		}
	}
}
function changeSubject() {
	var subject = $("[name$='rlstSubject']:checked").val();
	if ($("[id$='_rlstSubject_0']").val() == "1") {
		if (subject == "1" || subject == "4") {
			doCheck = true;
			$("[id$='trProductToOrder']").show();
			$("[id$='trAmount']").show();
			$("[id$='trStreet']").show();
			$("[id$='trCity']").show();
			$("[id$='trPeriod']").show();
			$("[id$='trMoreProducts']").show();
			toggleMoreProducts();
		} else {
			doCheck = false;
			$("[id$='trProductToOrder']").hide();
			$("[id$='trAmount']").hide();
			$("[id$='trStreet']").hide();
			$("[id$='trCity']").hide();
			$("[id$='trPeriod']").hide();
			$("[id$='trMoreProducts']").hide();
			$("[id$='trProduct2']").hide();
			$("[id$='trAmount2']").hide();
		}
	}
}

function togglePeriodEnd() {
	var isPeriodEnd = $("[id$='_radPeriodEnd']").get(0).checked;
	if (isPeriodEnd) {
		$("#periodEnd").show();
		$("[id$='_txtPeriodEnd']").val($("#periodEnd").val());
	} else {
		$("#periodEnd").hide();
		$("[id$='_txtPeriodEnd']").val("");
	}
}

function toggleMoreProducts() {
	var hasMoreProducts = $("[id$='_radMoreProducts']").get(0).checked;
	if (hasMoreProducts) {
		$("[id$='trProduct2']").show();
		$("[id$='trAmount2']").show();
	} else {
		$("[id$='trProduct2']").hide();
		$("[id$='trAmount2']").hide();
	}
}

function customValidationRequiredIfVisible(source, args) {
	if (doCheck) {
		return customValidationRequired(source, args);
	} else {
		return args.IsValid;
	}
}
function customValidationPeriodStart(source, args) {
	if (doCheck) {
		return customValidationRequired(source, args);
	} else {
		return args.IsValid;
	}
}
function customValidationPeriodEnd(source, args) {
	if (doCheck) {
		var isPeriodEnd = $("[id$='_radPeriodEnd']").get(0).checked;
		if (isPeriodEnd) {
			return customValidationRequired(source, args);
		}
	}
	return true;
}
function customValidationPeriodOverlap(source, args) {
	if (doCheck) {
		var isPeriodEnd = $("[id$='_radPeriodEnd']").get(0).checked;
		if (isPeriodEnd) {
			//return customValidationRequired(source, args);
			//alert("Check!");
			var periodStart = $("[id$='_txtPeriodStart']").val();
			var periodEnd = $("[id$='_txtPeriodEnd']").val();
			if (periodEnd != "") {
				var dateStart = getDate(periodStart);
				var dateEnd = getDate(periodEnd);
				args.IsValid = (dateStart <= dateEnd);
			}
		}
	}
	return true;
}
function getDate(dateString) {
    var arr = null;

    if (dateString.indexOf('-') > 0) {
        arr = dateString.split('-');
    }
    else if (dateString.indexOf('/') > 0) {
        arr = dateString.split('/');
    }

    var date = new Date();

    if (arr != null) {
        date.setFullYear(arr[2], arr[1], arr[0]);
    }
	
	return date;
}


