


var errMessages = "";

var emptyString = /^\s*$/;

var global_valfield;



function trim(str)

{

  return str.replace(/^\s+|\s+$/g, '');

}



function setFocusDelayed()

{

  global_valfield.focus();

}



function setfocus(valfield)

{

  // save valfield in global variable so value retained when routine exits

  global_valfield = valfield;

  setTimeout( 'setFocusDelayed()', 100 );

}



function isEmpty(fieldVal) {
	
	if (emptyString.test(fieldVal)) {
		
		return true;
		
	}
	
	return false;
}


function validateRequired(field, fieldName) {
	
	fieldVal = trim(field.value);
	
	if (isEmpty(fieldVal)) {
		
		errMessages += "Lütfen " + fieldName + " alanını boş bırakmayınız.\n";
		
		setfocus(field);
		
		return false;
		
	}
	
	return true;
}




function validateEmail(emailField, required) {
	
	fieldVal = trim(emailField.value);
	
	if (emptyString.test(fieldVal)) {

		if (required) { 
	
		  errMessages += "Lütfen e-posta adresinizi giriniz.\n";
		  
		  setfocus(emailField);
	
		  return false;
	
		}
	
	}
	
	emailExp = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
	
	if (!emailExp.test(fieldVal)) {

		errMessages += "Lütfen geçerli bir e-posta adresi giriniz.\n";
		
		setfocus(emailField);
	
		return false;

	}
	
	return true;
	
}




function validateTelephone(field, required) {
	
	fieldVal = trim(field.value);
	
	if (emptyString.test(fieldVal)) {

		if (required) { 
	
		  errMessages += "Lütfen telefonunuzu giriniz.\n";
		  
		  setfocus(field);
	
		  return false;
	
		}
	
	}
	
	telephoneExp = /[^\d\s\(\)\+]/;
	
	if (telephoneExp.test(fieldVal)) {

		errMessages += "Lütfen 'Telefon' alanında sadece rakam, parantez ve + kullanınız.\n";
		
		setfocus(field);
	
		return false;

	}
	
	return true;
	
}



function validateRoomType(field, required) {
	
	fieldVal = trim(field.value);
	
	if (emptyString.test(fieldVal)) {

		if (required) { 
	
		  errMessages += "Lütfen oda tipini seçiniz.\n";
		  
		  setfocus(field);
	
		  return false;
	
		}
	
	}
	
	switch(fieldVal) {
		
		case "Standart":
		case "Engelli":
		case "Suite":
		case "Balayı":
		case "Executive":
		case "Kral":
		case "standart":
		case "engelli":
		case "suite":
		case "balayı":
		case "executive":
		case "kral":
			return true;
			break;
	}
	
	errMessages += "Geçersiz oda tipi. Lütfen geçerli bir oda tipi seçiniz.\n";
		  
	setfocus(field);
	
	return false;
	
}



function validateRoomNum(field, field2, required) {
	
	fieldVal = trim(field.value);
	field2Val = trim(field2.value);
	
	if (emptyString.test(fieldVal)) {

		if (required) { 
	
		  errMessages += "Lütfen oda sayısını giriniz.\n";
		  
		  setfocus(field);
	
		  return false;
	
		}
	
	}
	
	twoDigitExp = /^\d{1,2}$/;
	zeroExp = /^0+$/;
	
	if (!twoDigitExp.test(fieldVal) || zeroExp.test(fieldVal)) {
		
		errMessages += "Geçersiz oda sayısı. Lütfen geçerli bir oda sayısı giriniz.\n";
		
		setfocus(field);
		
		return false;
		
	}
	
	switch(field2Val) {
		
		case "Standart":
		case "standart":
			
			if (fieldVal > 76) {
				
				errMessages += "Standart oda sayısı 76'dan büyük olmamalıdır. Lütfen kontrol ediniz.\n";
				
				setfocus(field);
				
				return false;
				
			}
			
			break;
			
		case "Engelli":
		case "engelli":
		
			if (fieldVal > 1) {
				
				errMessages += "Engelli özel odası sayısı 1'den büyük olmamalıdır. Lütfen kontrol ediniz.\n";
				
				setfocus(field);
				
				return false;
				
			}
			
			break;
			
		case "Suite":
		case "suite":
		
			if (fieldVal > 5) {
				
				errMessages += "Suite oda sayısı 5'den büyük olmamalıdır. Lütfen kontrol ediniz.\n";
				
				setfocus(field);
				
				return false;
				
			}
			
			break;
			
		case "Balayı":
		case "balayı":
		
			if (fieldVal > 1) {
				
				errMessages += "Bayalı odası sayısı 1'den büyük olmamalıdır. Lütfen kontrol ediniz.\n";
				
				setfocus(field);
				
				return false;
				
			}
			
			break;
			
		case "Executive":
		case "executive":
		
			if (fieldVal > 1) {
				
				errMessages += "Executive oda sayısı 1'den büyük olmamalıdır. Lütfen kontrol ediniz.\n";
				
				setfocus(field);
				
				return false;
				
			}
			
			break;
			
		case "Kral":
		case "kral":
		
			if (fieldVal > 1) {
				
				errMessages += "Kral Dairesi oda sayısı 1'den büyük olmamalıdır. Lütfen kontrol ediniz.\n";
				
				setfocus(field);
				
				return false;
				
			}
			
			break;
	}
	
	return true;
	
}




function validateDates(checkinDateField, checkoutDateField, required) {
	
	checkinDateVal = trim(checkinDateField.value);
	
	checkoutDateVal = trim(checkoutDateField.value);
	
	
	if (emptyString.test(checkinDateVal) && emptyString.test(checkoutDateVal)) {

		if (required) { 
	
		  errMessages += "Lütfen giriş ve çıkış tarihlerini seçiniz.\n";
		  
		  setfocus(checkinDateField);
	
		  return false;
	
		} 
	
	} else if (emptyString.test(checkinDateVal)) {
			
		if (required) { 
	
		  errMessages += "Lütfen giriş tarihini seçiniz.\n";
		  
		  setfocus(checkinDateField);
	
		  return false;
	
		} 
			
	} else if (emptyString.test(checkoutDateVal)) {
			
		if (required) { 
	
		  errMessages += "Lütfen çıkış tarihini seçiniz.\n";
		  
		  setfocus(checkoutDateField);
	
		  return false;
	
		} 
			
	}
	
	dateExp = /^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{2,4})$/;
	
	if (!dateExp.test(checkinDateVal) && !dateExp.test(checkoutDateVal)) {
		
		errMessages += "Geçersiz giriş ve çıkış tarihleri. Lütfen giriş ve çıkış tarihlerini kontrol ediniz.\n";
		  
		setfocus(checkinDateField);
	
		return false;
		
	} else if (!dateExp.test(checkoutDateVal)) {
		
		errMessages += "Geçersiz çıkış tarihi. Lütfen çıkış tarihini kontrol ediniz.\n";
		  
		setfocus(checkoutDateField);
	
		return false;
		
	} else if (!dateExp.test(checkinDateVal)) {
		
		errMessages += "Geçersiz giriş tarihi. Lütfen giriş tarihini kontrol ediniz.\n";
		  
		setfocus(checkinDateField);
	
		return false;
		
	}
	
	today = new Date();
	weekLater = new Date();
	weekLater.setDate(today.getDate()+7);
	
	checkinArray = checkinDateVal.split(".", 3);
	checkoutArray = checkoutDateVal.split(".", 3);
	
	if (checkinArray[2].length == 2) {
		
		checkinArray[2] = "20" + checkinArray[2];
		
	}
	
	if (checkoutArray[2].length == 2) {
		
		checkoutArray[2] = "20" + checkoutArray[2];
		
	}
	
	checkinDate = new Date();
	checkinDate.setFullYear(checkinArray[2], checkinArray[1]-1, checkinArray[0]);
	checkinDate.setHours(23);
	checkinDate.setMinutes(59);
	checkinDate.setSeconds(59);
	
	checkoutDate = new Date();
	checkoutDate.setFullYear(checkoutArray[2], checkoutArray[1]-1, checkoutArray[0]);
	checkoutDate.setHours(23);
	checkoutDate.setMinutes(59);
	checkoutDate.setSeconds(59);
	
	if (checkinDate < today) {
		
		errMessages += "Giriş tarihi geçmiş bir tarih olamaz. Lüfen giriş tarihini kontrol ediniz.\n";
		  
		setfocus(checkinDateField);
	
		return false;
		
	}
	
	if (checkoutDate <= checkinDate) {
		
		errMessages += "Çıkış tarihi, giriş tarihinden ileriki bir tarih olmalıdır. Lüfen kontrol ediniz.\n";
		  
		setfocus(checkinDateField);
	
		return false;
		
	}
	
	return true;
	
}



function validateOnSubmit() {
    var elem;
    var errs=0;
    // execute all element validations in reverse order, so focus gets
    // set to the first one in error.
	
    if (!validateTelephone(document.forms.form_rezrv1.telefon, false)) errs += 1;
	if (!validateEmail(document.forms.form_rezrv1.eposta, true)) errs += 1;
	if (!validateRequired(document.forms.form_rezrv1.soyad, "\'Soyadınız\'", true)) errs += 1;
	if (!validateRequired(document.forms.form_rezrv1.isim, "\'Adınız\'", true)) errs += 1;
	if (!validateRoomType(document.forms.form_rezrv1.oda_tipi, true)) errs += 1;
	if (!validateRoomNum(document.forms.form_rezrv1.oda_sayisi, document.forms.form_rezrv1.oda_tipi, true)) errs += 1;
	if (!validateDates(document.forms.form_rezrv1.giris_tarihi, document.forms.form_rezrv1.cikis_tarihi, true)) errs += 1;

    if (errs >= 1)  alert(errMessages);
	
	errMessages = "";

    return (errs==0);
}