//'ششششششششششיוסי כהןشششششششششش

function eventCancel(e){
	if(!e)e=window.event;
	if (e.preventDefault){
		e.preventDefault();//FF
	}else{
		e.returnValue=false;//IE
	}
}

function getEventSrcElement(e){
	if (!e) e = window.event;
	return (e.target) ? e.target : e.srcElement;
}

function validateNumPress(e){
	if(window.event){
		var k = window.event.keyCode;
	}else if(e.which){
		var k = e.which;
	}
	if (!((k>47 && k<58) || (k==null) || (k==0) || (k==8) ||  (k==9) || (k==13) || (k==27))){  // only Numbers || Controll
		eventCancel(e);
	}
}

function isOnlySpaces(string){
	return (string.search(/^[\s]+$/) != -1);
}

function isEmptyOrSpaces(string) {
	return (string.search(/^[\s]*$/) != -1);
}

function isAnyText(string){
	return (!isEmptyOrSpaces(string));
}

function isValidMakat(string){
	return (!isEmptyOrSpaces(string) && string.length<=10);
}

function isEmail(string){
    return (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

function isValidUrl(string,canSkipProtocol){
//	return (string.search(/(ftp|https?):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/) != -1);
	canSkipProtocol =  (typeof(canSkipProtocol)=="boolean") ? canSkipProtocol : false;
	if (canSkipProtocol){
		return (string.search(/^(?:(?:ht|f)tp(?:s?)\:\/\/)?(?:\w+:\w+@)?(?:[-\w]+\.)+(?:[-\w]+)(?::[\d]{1,5})?(?:(?:(?:\/(?:\S)+)+|\/)+(?:\?(?:[\S])*)?(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?)?$/) != -1);
	}else{
		return (string.search(/^(?:(?:ht|f)tp(?:s?)\:\/\/)(?:\w+:\w+@)?(?:[-\w]+\.)+(?:[-\w]+)(?::[\d]{1,5})?(?:(?:(?:\/(?:\S)+)+|\/)+(?:\?(?:[\S])*)?(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?)?$/) != -1);
	}
}

function isUsername(string){
    return (string.search(/^(\w|-|_|[-])+$/) != -1  && string.length>4 && string.length<16);
}

function isCSNumbers(string){ 
	// coma seperated int-numbers
	return (string.search(/^([0-9]{1,}(\,)?[0-9]{0,}){1,}$/) != -1);
} 

function isCreditCardChars(string){
	return (string.search(/^(?:\d[ -]*){8,16}$/) != -1);
}

function isNumber(string){
	return (string.search(/^((\+|-)?)[0-9]{0,}(([0-9]\.([0-9]+))|[0-9])$/) != -1);
} 

function isPositivNumber(string){
	return (string.search(/^[0-9]{0,}(([0-9]\.([0-9]+))|[0-9])$/) != -1);
}   

function isIntNumber(string){
	return (string.search(/^((\+|-)?)[0-9]+$/) != -1);
}

function isPositivIntNumber(string){
	return (string.search(/^[0-9]+$/) != -1);
}    

function isHexNumber(string){
	return (string.search(/^[0-9A-Fa-f]+$/) != -1);
}

function isHexColor(string){
	return (string.search(/^(#)?[0-9A-Fa-f]{6}$/) != -1);
}

function isTel(string){
	return (string.search(/^[-0-9]+$/) != -1);
}

function haveDigits(string){
	return (string.match(/[0-9]+/g) != null);
}

function isMcode(string){
	return (string.search(/^[0-9]{5}$/) != -1);
}    

function isName(string){
    return (string.search(/^([a-zA-Z]|[-])([a-zA-Z]|-|\'|\"|\x20|[-])+$/) != -1  && string.length>1 && string.length<20);
}

function isFileName(string){
	return (string.search(/^([^\/\\\:\|\x22\?\*\<\>]+)$/) != -1  && string.length>1 && string.length<=50);
}

function fileExtension(fnam){
	var fileExtn="";
	if (!isEmptyOrSpaces(fnam) && fnam.indexOf(".")>-1){
		fileExtn=fnam.substring(fnam.lastIndexOf(".")+1,fnam.length).toLowerCase();
	}
	return fileExtn;
}

function isImageFile(fnam){
	return (fileExtension(fnam).toLowerCase()=="jpg" || fileExtension(fnam).toLowerCase()=="gif");
}

function isIdNumber(string){
	// Israeli ID number including the "sifrat bikoret"
	if (isIntNumber(string) && string.length>=7 && string.length<=9){
		while (string.length<9){
			string="0"+string;
		}
		var str="";
		for (i=0; i<9; i++){
			a=eval(string.substr(i,1));
			str += a*((i%2)+1);
		}
		var num=0;
		for (i=0; i<str.length; i++){
			num += eval(str.substr(i,1));
		}
		return !(num%10);
    }else{
        return false;
	}
}

function isDate(date1, doNotFixDate){ 
	//if doNotFixDate = true            -> function returns false OR true
	//if doNotFixDate = false/undefined -> function returns false OR the Fiexed/Formated Date (DD/MM/YYYY)
	if (date1=="" || isEmptyOrSpaces(date1)){
		return false;
	}else{
		var days=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31); 
		//date1=date1.replace(/\./g, "/");
		//date1=date1.replace(/\,/g, "/");
		//date1=date1.replace(/\s/g, "/");
		//date1=date1.replace(/-/g, "/");
		var slash1=date1.indexOf("/");
		var slash2=date1.lastIndexOf("/");
		if ((slash1<1) || (slash1==slash2) || (slash1+1==slash2) || (slash2==date1.length-1) || ((date1.substring(slash1+1,slash2)).indexOf("/")!=-1) || ((date1.substring(slash1+1,slash2)).indexOf("-")!=-1)){
			return false;
		}else{
			var dd="0"+date1.substring(0,slash1);
			dd=dd.substring(dd.length-2,dd.length);
			var mm="0"+date1.substring(slash1+1,slash2);
			mm=mm.substring(mm.length-2,mm.length);
			var yy=date1.substring(slash2+1,date1.length);
			if (isPositivIntNumber(dd)){
				var dd1=eval(dd);
			}else{
				return false;
			}
			if (isPositivIntNumber(mm)){
				var mm1=eval(mm);
			}else{
				return false;
			}
			if (isPositivIntNumber(yy)){
				var yy1=eval(yy);
			}else{
				return false;
			}
			if (yy1%4==0) days[2]=29; // Shana meuberet
			if (mm1>0 && mm1<=12 && dd1>0 && dd1<=days[mm1] && (yy1<100 || (yy1>1900 && yy1<2100))){
				if (yy1<50){
					yy1+=2000;
				}else if (yy1<100){
					yy1+=1900;
				}
				return doNotFixDate ? true : dd+"/"+mm+"/"+yy1 ; 
			}else{
				return false;
			}
		}
	}
}

function inputCorrection(b){
	b=""+b;
	b=noTags(b);
	b=noQuots(b);
	return b;
}
function noTags(b){
	b=""+b;
	b=b.replace(/</g, "&lt;");
	b=b.replace(/>/g, "&gt;");
	return b;
}
function noQuots(b){
	b=""+b;
	b=b.replace(/\x22/g, "&quot;");
	b=b.replace(/\'/g, "&#39;");
	return b;
}
