/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}

function validate_form(form) {
	var alerts = ""
	var allClear = true
	var elemToFocus = new Array
	var dateDone = false
	for (i = 0; i < form.elements.length; i++ ){
		switch(form.elements[i].name) {
			case 'classes_first_choice':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "ilk tercihinizi doldurmalisiniz. | please enter your first choice.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'name':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "isim alanini doldurmalisiniz. | please enter your name.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'lastname':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "soyisim alanini doldurmalisiniz. | please enter your lastname.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'street_adress':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "Adres alanini doldurmalisiniz. | please enter your address.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'city':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "Sehir alanini doldurmalisiniz. | please enter your city.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'country':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "Ulke alanini doldurmalisiniz. | please enter your country.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'phone_number':
				if (form.elements[i].value == '' || form.elements[i].value == null || checkInternationalPhone(form.elements[i].value)==false) {
				alerts = alerts + "Telefon numaraniz gerekli. | please enter your phone number. \n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'email':
				if (form.elements[i].value == '' || form.elements[i].value == null || echeck(form.elements[i].value) == false) {
				alerts = alerts + "Lutfen gecerli bir e-posta adresi belirtin. | please enter your e-mail.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'date_of_birth_day':
			case 'date_of_birth_month':
			case 'date_of_birth_year':
				if ((form.elements[i].value == '' || form.elements[i].value == null) && !dateDone) {
				alerts = alerts + "Dogum tarihinizi giriniz. | please enter your DOB.\n";
				dateDone = true
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'occupation':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "Mesleginizi belirtin.| please enter your occupation. \n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
			case 'food':
				if (form.elements[i].value == '' || form.elements[i].value == null) {
				alerts = alerts + "Yemek tercihinizi belirtin. | please enter your food preference.\n";
				allClear =  false;
				elemToFocus.push(i)
				}
				break;
		}
	}
	if ( alerts != '' ) {
		alert(alerts);
	}
	form.elements[elemToFocus[0]].focus();
	return allClear;
}

function numbersonly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1)) {
   return true;
}
// decimal point jump
else if (dec && (keychar == ".")) {
   myfield.form.elements[dec].focus();
   return false;
   }
else return false;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address. /\n  verilen adres geçerli bir e-posta adresi degil.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number. / rakamlardan olusmali\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required / doldurulmasi gerekli.\n'; }
  } if (errors) alert('The following error(s) occurred / Asagidaki hata(lar) olustu:\n'+errors);
  document.MM_returnValue = (errors == '');
}