//'ششششششششششיוסי כהןشششششششششش

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 dateAdd(datePartStr, intervalNumber, DateObj){ 
	if (typeof(DateObj)=="object"){
		try{ // if Is Date Obj
			var testDay = DateObj.getDate();
		}catch(err){
			return false;
		}
	}else{
		return false; 
	}
	if(!isNaN(intervalNumber)){ 
		intervalNumber = new Number(intervalNumber); 
	}else{
		return false; 
	}
	datePartStr = datePartStr.toLowerCase(); 
	switch(datePartStr){ 
		case "yyyy": case "yy": {	// year 
			DateObj.setFullYear(DateObj.getFullYear() + intervalNumber); 
			break; 
		}case "q": {	// quarter 
			DateObj.setMonth(DateObj.getMonth() + (intervalNumber*3)); 
			break; 
		}case "m": {	// month 
			DateObj.setMonth(DateObj.getMonth() + intervalNumber); 
			break; 
		}case "y": case "d": case "w": {	// day of year / day / weekday
			DateObj.setDate(DateObj.getDate() + intervalNumber); 
			break; 
		}case "ww": {	// week of year 
			DateObj.setDate(DateObj.getDate() + (intervalNumber*7)); 
			break; 
		}case "h": {	// hour 
			DateObj.setHours(DateObj.getHours() + intervalNumber); 
			break; 
		}case "n": {	// minute 
			DateObj.setMinutes(DateObj.getMinutes() + intervalNumber); 
			break; 
		}case "s": {	// second 
			DateObj.setSeconds(DateObj.getSeconds() + intervalNumber); 
			break; 
		}case "ms": {	// milisecond 
			DateObj.setMilliseconds(DateObj.getMilliseconds() + intervalNumber); 
			break; 
		}default: { 
			return false; 
		} 
	} 
	return DateObj; 
} 

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;
}

function addEventHandler(Obj, Event, Func){
	if (typeof Obj.addEventListener != "undefined"){
		Obj.addEventListener(Event, Func, false);
		return true;
	}else if (typeof Obj.attachEvent != "undefined"){
		var r=Obj.attachEvent("on"+Event, Func);
		return r;
	}else{
		return false;
	}
}
function removeEventHandler(Obj, Event, Func){
	if (typeof Obj.removeEventListener != "undefined"){
		Obj.removeEventListener(Event, Func, false);
		return true;
	}else if (typeof Obj.detachEvent != "undefined"){
		var r=Obj.detachEvent("on"+Event, Func);
		return r;
	}else{
		return false;
	}
}

function preventSubmitByEnter(e) {
	// HOW TO USE:  Field_Or_Form_Obj.onkeypress=preventSubmitByEnter;
    var evt = (e) ? e : ((event) ? event : null);
    var target = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if ((evt.keyCode == 13) && (target.type!="textarea") && (target.type!="submit") && (target.type!="button") && (target.tagName!="A")) {return false;}
}

function preventSubmitAllFormsByEnter(){
	if (document.forms.length>0){
		for (i=0; i<document.forms.length; i++){
			//addEventHandler(document.forms[i], "keypress", preventSubmitByEnter);// כך עדיף בד"כ...
			document.forms[i].onkeypress = preventSubmitByEnter; // Mac רק כך זה עובד על...
		}
	}
}

function setOpacity(obj, opacity) {
	opacity = Math.max(0, Math.min(100, opacity));
	var filterOpac = (opacity==100) ? "" : "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + opacity + ")";
	var Opac = (opacity==100) ? "" : opacity/100 ;
	obj.style.filter = filterOpac; /* ie */
	obj.style.KHTMLOpacity = Opac; /* Safari<1.2, Konqueror */
	obj.style.MozOpacity = Opac; /* Older Mozilla and Firefox */
	obj.style.opacity = Opac;	/* Safari 1.2, newer Firefox and Mozilla, CSS3 */
}

