﻿$(document).ready(function() {
	$('#pricelist').tableDnD({
		onDrop: function(table, row) {
			$('#pricelist_order').val($.tableDnD.serialize());
		}
	});

	$('#wysiwyg').wymeditor({
        postInit: function(wym) {

        }	
	});
	var w_height = $(window).height();
	
	if (w_height > 600) {
		$('#logo').css('position','fixed');
		$('#menu').css('position','fixed');
		$('#navi').css('position','fixed');
	}

});

function validateReservation(f) {
	var resOk = false;

	var rePhoneMobileArea = new RegExp('^(04(0|1|2|3|4|5|6)[0-9]{0,2})|(050)$');
	var rePhoneArea = new RegExp('^[0-9]{2,4}$');
	var rePhoneNumber = new RegExp('^[0-9]+$');
	var reEmail = new RegExp('^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$');

	if (f.reminder != undefined) {
		for (var i=0;i<f.reminder.length;$i++) {
			if (f.reminder[i].checked) {
				var reminder = f.reminder[i].value;
			}
		}
	} else {
		var reminder = false;
	}
	if (f.name.value == '') {
		f.name.focus();
		alert('Nimi puuttuu!');	
	} else if (reminder == 'sms' && !rePhoneMobileArea.test(f.phone_area.value)) {
		f.phone_area.focus();
		alert('Halutessasi muistutuksen tekstiviestinä anna matkapuhelinnumero.');
	} else if (!rePhoneArea.test(f.phone_area.value)) {
		f.phone_area.focus();
		alert('Puhelinnumero puuttuu tai on virheellinen!');
	} else if (!rePhoneNumber.test(f.phone_number.value)) {
		f.phone_number.focus();
		alert('Puhelinnumero puuttuu tai on virheellinen!');
	} else if (reminder == 'email' && !reEmail.test(f.email.value)) {
		f.email.focus();
		alert('Halutessasi muistutuksen sähköpostiin anna sähköpostiosoite.');
	} else {
		$.ajax({
			type: 'GET',
			async: false,
			dataType: 'json',
			url: 'include/checkReservationSlot.php',
			data: { ts: f.timestamp.value, r: f.resource.value, s: f.service.value },
			success: function(data) {
				if (data.free == false) {
					alert('Varaamasi palvelu ei mahdu ajankohtaan. Valitse uusi aika kalenterista.');
				} else {
					resOk = true;
				}
			}
		});
	}
	return resOk;
}

function checkReservationSlot(f) {

	jQuery.ajax({
		type: 'GET',
		async: false,
		dataType: 'json',
		url: '../include/checkReservationSlot.php',

		data: { day: f.rsv_d.value, month: f.rsv_m.value, year: f.rsv_y.value, hour: f.rsv_hr.value, minute: f.rsv_min.value, resource: f.rsv_r.value, duration: f.duration.value, id: f.reservationid.value },

		success: function(data) {
			if (data.free == false) {
				alert('Varaus ei mahdu ajankohtaan. Valitse uusi aika.');
			} else {
				alert('Ajankohta ok.');
			}
		}
	});
	return false;
}

function validateReservationSlot(f) {
	var resOk = false;
	jQuery.ajax({
		type: 'GET',
		async: false,
		dataType: 'json',
		url: '../include/checkReservationSlot.php',
		data: { day: f.rsv_d.value, month: f.rsv_m.value, year: f.rsv_y.value, hour: f.rsv_hr.value, minute: f.rsv_min.value, resource: f.rsv_r.value, duration: f.duration.value, id: f.reservationid.value },
		success: function(data) {
			if (data.free == false) {
				alert('Varaus ei mahdu ajankohtaan. Valitse uusi aika.');
			} else {
				resOk = true;
			}
		}
	});
	return resOk;
}

function validateReservationCode(f) {
	var reNumeric = new RegExp('^[0-9]+$');
	if (f.c.value != '' && reNumeric.test(f.c.value)) {
		var code = f.c.value.replace(/^\s+|\s+$/g,'');
		var checksum = 0;
		var multiplier = 2;
		var n,p;
		for (p = code.length-2;p>=0;p--) {
			n = code.charAt(p) * multiplier;
			n = (n>9) ? n-9 : n;
			checksum += n;
			multiplier = 3 - multiplier;
		}
		checksum = checksum % 10;
		if (checksum == code.charAt(code.length-1)) {
			return true;
		} else {
			f.c.select();
			alert('Tarkista varausnumerosi.');
			return false;
		}
	} else {
		f.c.select();
		alert('Tarkista varausnumerosi.');
		return false;
	}
}

function validateUserKey(f) {
	var reNumeric = new RegExp('^[0-9]+$');
	if (f.u.value != '' && reNumeric.test(f.u.value)) {
		var key = f.u.value.replace(/^\s+|\s+$/g,'');
		var checksum = 0;
		var multiplier = 2;
		var n,p;
		for (p = key.length-2;p>=0;p--) {
			n = key.charAt(p) * multiplier;
			n = (n>9) ? n-9 : n;
			checksum += n;
			multiplier = 3 - multiplier;
		}
		checksum = checksum % 10;
		if (checksum == key.charAt(key.length-1)) {
			return true;
		} else {
			f.u.select();
			alert('Tarkista käyttäjäavaimesi.');
			return false;
		}
	} else {
		f.u.select();
		alert('Tarkista käyttäjäavaimesi.');
		return false;
	}
}


function validateQuickFill(f) {
	var resOk = false;
	if (f.resource.value == '' || f.timestamp.value == '' || f.view.value == '' || f.code.value == '') {
		alert('Perustietoja puuttuu');
	} else {
		if (f.duration.value == '') {
			alert('Valitse kesto!');
		} else {
			$.ajax({
				type: 'GET',
				async: false,
				dataType: 'json',
				url: '../include/checkReservationSlot.php',
				data: { ts: f.timestamp.value, r: f.resource.value, d: f.duration.value },
				success: function(data) {
					if (data.free == false) {
						alert('Varaamasi palvelu ei mahdu ajankohtaan. Valitse uusi aika kalenterista.');
					} else {
						resOk = true;
					}
				}
			});
		}
	}
	return resOk;
}

var rowcount = 0;
var interval = 0;

function setServiceRowCount(cv) {
	rowcount = cv;
}

function setRowcount(cv) {
	rowcount = cv;
}

function setTimetableInterval(i) {
	interval = i;
}

function setPricelistItemIndex(pl) {
	pricelistindex = pl - 1;
}

function addVacationDate() {
	rowcount++;
	var HTML = '<div id="vacationDate'+rowcount+'">' + 
			   '<input name="vacationStart'+rowcount+'" value="" type="text" size="10">' + 
			   ' - <input name="vacationEnd'+rowcount+'" value="" type="text" size="10">' +
			   ' <a name="vacationDate'+rowcount+'" onclick="return deleteVacationDate(\'vacationDate'+rowcount+'\');" href="#" class="button">' +
			   '<img src="../include/minus-icon.gif" width="16" height="16" alt="-" /></a></div>';			   
	$('#vacations').append(HTML);
	return false;
}


function deleteVacationDate(div) {
	$('#'+div).empty();
	return false;
}

function min2hr(min) {
	var str = '';
	var hr = Math.floor(min/60);
	if (hr != 0) {
		str = hr + 'h ';
		min = min - hr * 60;
	}
	if (min != 0) {
		str = str + min + 'min';
	}
	return str;
}

function addService() {
	rowcount++;
	var HTML = '<tr id="service'+rowcount+'"><td><input name="serviceName'+rowcount+'" value="" type="text" /></td>' +
			   '<td><select name="serviceDuration'+rowcount+'"><option value="">- valitse -</option>';
	for (min=interval;min<180;min = min + interval) {
		HTML += '<option value="'+min+'">'+min2hr(min)+'</option>';
	}
	for (min=180;min<=600;min = min + 60) {
		HTML += '<option value="'+min+'">'+min2hr(min)+'</option>';
	}
	HTML += '</select></td><td><input name="serviceShowCustomer'+rowcount+'" checked="checked" type="checkbox" /></td>' +
			'<td colspan="2"></td></tr>';
	$('#services').append(HTML);
	return false;
}

function pricelistItemHTML(pl_index) {

	var HTML = '<tr id="'+pl_index+'"><td>&nbsp;</td><td><input type="text" name="item_title_'+pl_index+'" value="" style="width:30em;" /></td>';
	HTML += '<td><select name="item_type_'+pl_index+'"><option value="1">Palvelu</option><option value="2">Alakohta</option><option value="3">Otsikko</option></select></td>';
	HTML += '<td><input type="text" name="item_price_'+pl_index+'" value="" style="width:5em;" /></td><td>&nbsp;</td></tr>\n';
	return HTML;
}

var item_index = 0;

function addPricelistItem() {
	item_index++;
	$('#pricelist').append(pricelistItemHTML('new'+item_index));
	return false;
}
