// JavaScript Document
// FROM VALIDATION
//PHONE VALIDATION
// 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 minDigitsInPhoneNumber = 9;
//Holds an error message or empty if valid phone number
//var errorMsg="";
//fkag for international number
var isInternational=false;

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 trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if ((c != " ") && (c!="-") && (c!="+") && (c!="(") && (c!=")")) returnString += c
    }
    return returnString;
}
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){
	var bracket=3
	strPhone=trim(strPhone);
	if(strPhone.indexOf("+")>1) return false;
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1;
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false;
	var brchr=strPhone.indexOf("(");
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false;
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false;
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function checkIfValidNum(s, DigitsInPhoneNumber){
	if (!isInteger(s))
		return '* הטקסט שהוכנס הוא לא מספר';
	if (s.length !=DigitsInPhoneNumber)
		return '* מספר הספרות לא תואם מספר טלפון קיים';
/*	if (s.length < minDigitsInPhoneNumber){alert('local number check if min')
		return errorMsg='* מספר הספרות קטן מידי אנא הכנס מספר ספרות מתאים';}
*/
	return true;
}


function checkLocalPhone(strPhone){
//	strPhone=trim(strPhone);
//	strPrefix=trim(strPrefix);
	var validDigits = new Array();
	
	validDigits['0']='02'; //Jerusalem
	validDigits['1']='03'; // Tel-Aviv
	validDigits['2']='04'; // North
	validDigits['3']='08';//South
	validDigits['4']='09';//Sharon
	validDigits['5']='050';//Pelephone
	validDigits['6']='052';//Celcom
	validDigits['7']='054';//Orange
	validDigits['8']='057';//Mirs
	validDigits['9']='059';//Javell
//	validDigits['10']='0722';//012
	validDigits['10']='072';//Celcome
	validDigits['11']='073';//013
//	validDigits['12']='0737';//013
	validDigits['12']='074';//Bezeq International
//	validDigits['13']='0744';//Bezeq International
//	validDigits['14']='0747';//Partner
	validDigits['13']='077';//Hot
	
//	text=strPrefix;
//	for (i=0; i<validDigits.length; i++){
//		if (text.substring(0,3)=='972')
//			text='0'+text.substring(3);
//		
//		if (text.substring(0,4)=='+972')
//			text='0'+text.substring(4);
		
//		s=validDigits[i];
/*		if (s.length==1){
			if (validDigits[i]==text.substring(0,1) && text.charAt(1)!='0')
				return errorMsg=checkIfValidNum(text, '11');
			if (validDigits[i]==text.substring(0,1) && text.charAt(1)=='0')
				return errorMsg='* לא ניתן להכניס את הסיפרה 0 אחרי הקידומת';	
		}*/
//		if (s.length==2){
			if (strPhone.charAt(0)!='0')
				return errorMsg=checkIfValidNum(strPhone, '7');
			if (strPhone.charAt(0)=='0')
				return errorMsg='* לא ניתן להכניס את הסיפרה 0 אחרי הקידומת';	
//		}
//		if (s.length==3){
//			if (validDigits[i]==text && strPhone.charAt(0)!='0')
//				return errorMsg=checkIfValidNum(strPhone, '7');
//			if (validDigits[i]==text.substring(0,3) && strPhone.charAt(0)=='0')
//				return errorMsg='* לא ניתן להכניס את הסיפרה 0 אחרי הקידומת';	
//		}
/*		if (s.length==4){
			if (validDigits[i]==text && strPhone.charAt(0)!='0')
				return errorMsg=checkIfValidNum(strPhone, '8');
			if (validDigits[i]==text.substring(0,4) && text.charAt(4)=='0')
				return errorMsg='* לא ניתן להכניס את הסיפרה 0 אחרי הקידומת';	
		}
*///	}

	return false;
}

function ValidatePhone(Phone, phoneID){
	
	if (((Phone.value==null)||(Phone.value==""))){
		phoneID.innerHTML="* אנא הכנס מספר טלפון";
		ChangeStyle(phoneID);
		Phone.focus();
		return false;
	}
/*	if (checkInternationalPhone(Phone.value)==false){
		phoneID.innerHTML="* אנא הכנס מספר טלפון תקין";
		ChangeStyle(phoneID);
		Phone.value="";
		Phone.focus();
		return false;
	}*/
	errorMsg=checkLocalPhone(Phone.value);
	if (errorMsg!='' && errorMsg!=true){
		phoneID.innerHTML=errorMsg;
		errorMsg='';
		ChangeStyle(phoneID);
		Phone.value="";
		Phone.focus();
		return false;
	}
	if (errorMsg==false){
		phoneID.innerHTML="* אנא הכנס מספר טלפון תקין";
		ChangeStyle(phoneID);
		Phone.value="";
		prefix.value="";
		prefix.focus();
		return false;
	}
	

	phoneID.innerHTML="";
	return true;
 }
function ChangeStyle(tdlocation){
	tdlocation.style.color="#6FF";
	tdlocation.style.fontSize="11px";
	tdlocation.style.display="block";
	}

 function ValidateString(strVal, strID){
	if ((strVal.value==null)||(strVal.value=="")){
		strID.innerHTML="* אנא הכנס ערך בשדה זה";
		ChangeStyle(strID);
		//strVal.focus();
		return false;
	}
	else {
		strID.innerHTML="";
		return true; 
	}
 }



//VALIDATE EMAIL

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 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   	document.getElementById('email').innerHTML='* חסר סימן @ או נמצא במיקום לא נכון'; /*alert("Invalid E-mail ID")*/
	   		tdlocation=document.getElementById('email');
			ChangeStyle(tdlocation);
			return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   	document.getElementById('email').innerHTML='* חסרה נקודה או נמצאת במיקום לא נכון'; /*alert("Invalid E-mail ID")*/
	   		tdlocation=document.getElementById('email');
			ChangeStyle(tdlocation);
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		   	document.getElementById('email').innerHTML='* שדה הדואר האלקטרוני לא מוגדר כראוי 1'; /*alert("Invalid E-mail ID")*/
	   		tdlocation=document.getElementById('email');
			ChangeStyle(tdlocation);
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		   	document.getElementById('email').innerHTML='* שדה הדואר האלקטרוני לא מוגדר כראוי 2'; /*alert("Invalid E-mail ID")*/
	   		tdlocation=document.getElementById('email');
			ChangeStyle(tdlocation);
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		   	document.getElementById('email').innerHTML='* שדה הדואר האלקטרוני לא מוגדר כראוי 3'; /*alert("Invalid E-mail ID")*/
	   		tdlocation=document.getElementById('email');
			ChangeStyle(tdlocation);
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		   	document.getElementById('email').innerHTML='* שדה הדואר האלקטרוני לא מוגדר כראוי 4'; /*alert("Invalid E-mail ID")*/
	   		tdlocation=document.getElementById('email');
			ChangeStyle(tdlocation);
		    return false
		 }
		 document.getElementById('email').innerHTML="";
 		 return true;					
	}
function ValidateEmail(emailID){
	
	if ((emailID.value==null)||(emailID.value=="")){
		document.getElementById('email').innerHTML="* אנא הכנס כתובת דואר אלקטרוני";
		tdlocation=document.getElementById('email');
		ChangeStyle(tdlocation);
		emailID.focus();
		return false;
	}
	if (echeck(emailID.value)==false){
		emailID.value="";
		emailID.focus();
		return false;
	}
	return true
 } 
function ValidateForm(){
	var phoneVal=document.reservation.phone;
	var phoneID=document.getElementById('phone');
	//var prefixVal=document.reservation.prefix;
	var dateVal=document.reservation.PUDate;
	var dateID=document.getElementById('date');
	//var phoneID=document.getElementById('prefix');
	var nameVal=document.reservation.name;
	var nameID=document.getElementById('name');
	var emailVal=document.reservation.email;
	var retPhone, retName, retEmail, retDate;
	
	retPhone=ValidatePhone(phoneVal,phoneID);
	retName=ValidateString(nameVal,nameID);
	retEmail=ValidateEmail(emailVal);
	retName=ValidateString(dateVal,dateID);
	if ((retPhone==false) || (retName==false) || (retEmail==false) || (retDate==false)){
		return false;
	}
	else return true;

}

function ValidateFormComment(){
	var nameVal=document.commentForm.surfer_name;
	var nameID=document.getElementById('error');
	var titleVal=document.commentForm.comment_title;
	var titleID=document.getElementById('error');
	var retName, retTitle;
	
	retName=ValidateStringComment(nameVal,nameID);
	retTitle=ValidateStringComment(titleVal,titleID);
	if ((retName==false) || (retTitle==false)){
		return false;
	}
	else return true;

}
function ValidateFormCommentSub(cm_id){
surfer_nameElem = 'surfer_name'+cm_id;
comment_titleElem = 'comment_title'+cm_id;
errorElem = 'error'+cm_id;
	var nameVal=document.getElementById(surfer_nameElem);
	var nameID=document.getElementById(errorElem);
	var titleVal=document.getElementById(surfer_nameElem);
	var titleID=document.getElementById(errorElem);
	var retName, retTitle;
	
	retName=ValidateStringComment(nameVal,nameID);
	retTitle=ValidateStringComment(titleVal,titleID);
	if ((retName==false) || (retTitle==false)){
		return false;
	}
	else return true;

}

 function ValidateStringComment(strVal, strID){
	if ((strVal.value==null)||(strVal.value=="")){
		strID.innerHTML="* חובה למלא שם וכותרת תגובה";
		strID.style.color="#b11d1d";
		strID.style.fontSize="11px";
		strID.style.display="block";
//		ChangeStyle(strID);
		strVal.focus();
		return false;
	}
	else {
		strID.innerHTML="";
		return true; 
	}
 }

