

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//			VALIDATION                                                                                        ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function blnIsValidDateTime(strCheckDateTime, blnWithTime, blnDoTrim){
	var objRegExp
	var lngDateParts
	if (blnDoTrim) {
		strCheckDateTime = TrimInner(strCheckDateTime)
		objRegExp = /( *\/ *)/g
		strCheckDateTime = strCheckDateTime.replace(objRegExp, "/");
		objRegExp = /( *\: *)/g
		strCheckDateTime = strCheckDateTime.replace(objRegExp, ":");	
		}
	
	
		if (blnWithTime) objRegExp = /(^\d{1,2})\/(\d{1,2})\/(\d{2,4}) (\d{0,2}):(\d{0,2}$)/
		else objRegExp = /(^\d{1,2})\/(\d{1,2})\/(\d{2,4}$)/
		
		
		//alert(objRegExp.test(strCheckDateTime))
		
		if  (! objRegExp.test(strCheckDateTime)){
			return false;
		}else{
		objRegExp = /( *\/ *)/g
				lngDateParts = strCheckDateTime.match(objRegExp);
				
				//alert(lngDateParts)
				
				if (lngDateParts[2] < 1 || lngDateParts[2] > 12) { return false; }
				if (lngDateParts[1] < 1 || lngDateParts[1] > 31) { return false; }
				if ((lngDateParts[2]==4 || lngDateParts[2]==6 || lngDateParts[2]==9 || lngDateParts[2]==11) && lngDateParts[1]==31) { return false; }
				if (lngDateParts[2] == 2) { 
						var isleap = (lngDateParts[3] % 4 == 0 && (lngDateParts[3] % 100 != 0 || lngDateParts[3] % 400 == 0));
						if (lngDateParts[1]>29 || (lngDateParts[1]==29 && !isleap)) { return false; }
				}
				if  ((blnWithTime) && (((lngDateParts[4]>23)  || (lngDateParts[5]>59)))) { return false; }
				return true;
		}
}



function strGetValidDateTime(strCheckDateTime, strReplaceDate, blnWithTime, blnDoTrim){
	var objRegExp
	var lngDateParts
	if (blnDoTrim) {
		strCheckDateTime = TrimInner(strCheckDateTime)
		objRegExp = /( *\/ *)/g
		strCheckDateTime = strCheckDateTime.replace(objRegExp, "/");
		objRegExp = /( *\: *)/g
		strCheckDateTime = strCheckDateTime.replace(objRegExp, ":");	
	}
	if ( blnIsValidDateTime(strCheckDateTime, blnWithTime, false) ) {
		if (blnWithTime) {objRegExp = /(^\d{1,2})\/(\d{1,2})\/(\d{2,4}) (\d{0,2}):(\d{0,2}$)/}else{objRegExp = /(^\d{1,2})\/(\d{1,2})\/(\d{2,4}$)/}
		lngDateParts = strCheckDateTime.match(objRegExp);
		if (lngDateParts[1].length<2) {lngDateParts[1] = '0' + lngDateParts[1]}
		if (lngDateParts[2].length<2) {lngDateParts[2] = '0' + lngDateParts[2]}
		if (blnWithTime) {
			if (lngDateParts[4].length<2) {lngDateParts[4] = '0' + lngDateParts[4]}
			if (lngDateParts[5].length<2) {lngDateParts[5] = '0' + lngDateParts[5]}
			strCheckDateTime = lngDateParts[1] + "/" + lngDateParts[2] + "/" + lngDateParts[3] + " " + lngDateParts[4] + ":" + lngDateParts[5]
		}else{
			strCheckDateTime = lngDateParts[1] + "/" + lngDateParts[2] + "/" + lngDateParts[3]
		}
		return strCheckDateTime;
	}else{
		return strReplaceDate;
	}
}



function blnDateInRange(dtmCheck, dtmMin, dtmMax, blnWithTime, blnDoTrim){
	var dtmObjCheck, dtmObjMin, dtmObjMax
	var objRegExp, lngDateParts
	dtmCheck = strGetValidDateTime(dtmCheck, '', blnWithTime, blnDoTrim)
	if ( dtmCheck == '') { return false;}
	if ( dtmMin == '') { dtmMin = dtmCheck	} else {	dtmMin =  strGetValidDateTime(dtmMin, '', blnWithTime, blnDoTrim);	if ( dtmMin == '') { return false;	}	}
	if ( dtmMax == '') { dtmMax = dtmCheck	} else {	dtmMax =  strGetValidDateTime(dtmMax, '', blnWithTime, blnDoTrim);	if ( dtmMax == '') { return false;	}	}
	if (blnWithTime) {
		objRegExp = /(^\d{1,2})\/(\d{1,2})\/(\d{2,4}) (\d{0,2}):(\d{0,2}$)/
			lngDateParts = dtmCheck.match(objRegExp);
			dtmObjCheck = new Date(lngDateParts[3], lngDateParts[2]-1, lngDateParts[1],  lngDateParts[4] , lngDateParts[5], 0);
			lngDateParts = dtmMin.match(objRegExp);
			dtmObjMin = new Date(lngDateParts[3], lngDateParts[2]-1, lngDateParts[1],  lngDateParts[4] , lngDateParts[5], 0);
			lngDateParts = dtmMax.match(objRegExp);
			dtmObjMax = new Date(lngDateParts[3], lngDateParts[2]-1, lngDateParts[1],  lngDateParts[4] , lngDateParts[5], 0);																	
	}else{
		objRegExp = /(^\d{1,2})\/(\d{1,2})\/(\d{2,4}$)/
			lngDateParts = dtmCheck.match(objRegExp);
			dtmObjCheck = new Date(lngDateParts[3], lngDateParts[2]-1, lngDateParts[1],  0 , 0, 0);
			lngDateParts = dtmMin.match(objRegExp);
			dtmObjMin = new Date(lngDateParts[3], lngDateParts[2]-1, lngDateParts[1],  0 , 0, 0);
			lngDateParts = dtmMax.match(objRegExp);
			dtmObjMax = new Date(lngDateParts[3], lngDateParts[2]-1, lngDateParts[1],  0 , 0, 0);
	}
	return (dtmObjMin<=dtmObjCheck && dtmObjCheck <= dtmObjMax);
}



function strGetValidDouble(strCheckDouble, strReplaceDouble, blnWithPlusOrMinus, blnDoTrim){
	var objRegExp
	if (blnDoTrim) {strCheckDouble = TrimInnerFull(strCheckDouble)}
	if ( blnIsValidDouble(strCheckDouble, blnWithPlusOrMinus, false)) {
		var chrClientDigit = 1/2 + '';
		chrClientDigit = chrClientDigit.substring(2,1);
		strCheckDouble = strCheckDouble + '';
		strCheckDouble = strCheckDouble.replace(',', chrClientDigit );
		strCheckDouble = parseFloat(strCheckDouble) + '';
		strCheckDouble = strCheckDouble.replace(chrClientDigit, ',');
		return strCheckDouble;
	}else { 
		return strReplaceDouble;
	}
}



function blnDoubleInRange(dblCheck, dblMin, dblMax, blnWithPlusOrMinus, blnDoTrim){
	dblCheck = strGetValidDouble(dblCheck, '', blnWithPlusOrMinus, blnDoTrim)
	if ( dblCheck == '') { return false;}
	if ( dblMin == '') { dblMin = dblCheck	} else {	dblMin =  strGetValidDouble(dblMin, '', blnWithPlusOrMinus, blnDoTrim);	if ( dblMin == '') { return false;	}	}
	if ( dblMax == '') { dblMax = dblCheck	} else {	dblMax =  strGetValidDouble(dblMax, '', blnWithPlusOrMinus, blnDoTrim);	if ( dblMax == '') { return false;	}	}
	return (dblMin<=dblCheck && dblCheck <= dblMax);
}



function blnIsValidDouble(strCheckDouble, blnWithPlusOrMinus, blnDoTrim){
	var objRegExp
	if (blnDoTrim) {strCheckDouble = TrimInnerFull(strCheckDouble)}
	//if (blnWithPlusOrMinus) {objRegExp = /(^([+-])?\d+(\,\d*)?$)|(^([+-])?(\d*\,)?\d+$)/}else{objRegExp = /(^\d+(\,\d*)?$)|(^(\d*\,)?\d+$)/}
	
	if (blnWithPlusOrMinus) {objRegExp = /(^([+-])?\d+(\.\d+)?(\,\d*)?$)|(^([+-])?(\d*\,)?\d+$)/}else{objRegExp = /(^\d+(\.\d+)?(\,\d*)?$)|(^(\d*\,)?\d+$)/}
	return objRegExp.test(strCheckDouble);
}



function blnIsValidLong(strCheckLong, blnWithPlusOrMinus, blnDoTrim){
	var objRegExp
	if (blnDoTrim) {strCheckLong = TrimInnerFull(strCheckLong)}
	if (blnWithPlusOrMinus) {objRegExp = /^([+-])?\d+$/}else{objRegExp = /^\d+$/}
	return objRegExp.test(strCheckLong);
}



function strGetValidLong(strCheckLong, strReplaceLong, blnWithPlusOrMinus, blnDoTrim){
	var objRegExp
	if (blnDoTrim) {strCheckLong = TrimInnerFull(strCheckLong)}
	if ( blnIsValidLong(strCheckLong, blnWithPlusOrMinus, false)) {
		strCheckLong = parseFloat(strCheckLong)
		return strCheckLong;
	}else { 
		return strReplaceLong;
	}
}



function blnLongInRange(lngCheck, lngMin, lngMax, blnWithPlusOrMinus, blnDoTrim){
	lngCheck = strGetValidLong(lngCheck, '', blnWithPlusOrMinus, blnDoTrim)
	if ( lngCheck == '') { return false;}
	if ( lngMin == '') { lngMin = lngCheck	} else {	lngMin =  strGetValidLong(lngMin, '', blnWithPlusOrMinus, blnDoTrim);	if ( lngMin == '') { return false;	}	}
	if ( lngMax == '') { lngMax = lngCheck	} else {	lngMax =  strGetValidLong(lngMax, '', blnWithPlusOrMinus, blnDoTrim);	if ( lngMax == '') { return false;	}	}
	return (lngMin<=lngCheck && lngCheck <= lngMax);
}



function Trim(strInputString){
	strInputString = strInputString + ' '
	objRegExp = /(^ +)|( +$)/g
	return strInputString.replace(objRegExp, "");
}



function TrimInner(strInputString){
	strInputString = strInputString + ' '
	strInputString = Trim(strInputString)
	var objRegExp = /( {2,})/g;
	return strInputString.replace(objRegExp, " ");
}



function TrimInnerFull(strInputString){
	strInputString = strInputString + ' '
	var objRegExp = /( *)/g;
	return strInputString.replace(objRegExp, "");
}



function ValidForQueryString(strInputString){
	var objRegExp = /\?*&*;*%*/g
	return strInputString.replace(objRegExp, "");
}



function ValidForSQL(strInputString){
	var objRegExp = /\?*&*\'*\"*\+*,*\#*/g
	return strInputString.replace(objRegExp, "");
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//			CHECKING                                                                                          ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function blnValidPhone(strInputString){
	var objRegExp = /(^(2)\d{9}$)|(^(69)\d{8}$)/g
	if (objRegExp.test(strInputString)) {return true;} else {return false;}
}



function blnValidAFM(strInputString){
	var objRegExp = /(^\d{9}$)/g
	if (objRegExp.test(strInputString)) {return true;} else {return false;}
}



function blnValidEmail(strInputString){
//	var objRegExp = /(^[a-z]+[a-z_\-\.]*@[a-z_\-]+\.[a-z_\-\.]*[a-z]+$)/gi
	var objRegExp = /(^[a-z0-9]+[a-z_\-\.]*@[a-z_\-]+\.[a-z_\-\.]*[a-z]+$)/gi
	if (objRegExp.test(strInputString)) {return true;} else {return false;}
}



function blnInvalidLongEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
	if ( blnIsValidLong(strValue, false, false)) {return false} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidDateEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
	if ( blnIsValidDateTime(strValue, false, false)) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidDateEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
	if ( blnIsValidDateTime(strValue, false, false)) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidStringEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
		if ( strValue.length>0) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidAFMEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	if (typeof(objElement)!='object') {return false;}
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
		if ( blnValidAFM(strValue)) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidPhoneEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	if (typeof(objElement)!='object') {return false;}
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
		if ( blnValidPhone(strValue)) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidEmailEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
		if ( blnValidEmail(strValue)) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}



function blnInvalidCurrencyEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ((!(blnRequired)) && (strValue.length==0)) {return false;  }
		if ( blnIsValidDouble(strValue, false, true)) {return false;} else { alert(strDisplayMessage); objElement.focus(); return true;}
}




function blnInvalidLUEntry(strElementName, blnRequired, strDisplayMessage){
	var objElement		= eval('frmMain.' + strElementName)
	var strValue		= TrimInnerFull(objElement.value + '') + ''
		objElement.value= strValue
		if ( blnIsValidLong(strValue, false, false)) {
			if (blnRequired) { 
				if (strValue<1) {alert(strDisplayMessage); objElement = eval('frmMain.' + strElementName.replace('ID', 'Btn') ); objElement.focus(); return true;}
			}
		} else {
			if ((!(blnRequired)) && (strValue.length==0)) {
				return false;  
			} else {
				alert(strDisplayMessage); objElement = eval('frmMain.' + strElementName.replace('ID', 'Btn') ); objElement.focus(); return true;
			}
		}
		return false;
}

function setPagePath(strId, strPath) {
	var objTitle = document.getElementById(strId);
	
	try{
		objTitle.innerHTML = strPath;
	}
	catch(e){}	
}


function AddStatmanCode(lngWorkSpaceID) {
	kw = ''; 
	rnd = Math.floor(Math.random()*9000000)+1000000;
	ref = escape(document.referrer);
	bn = navigator.appName; if (bn.substring(0,9) == "Microsoft") bn = "MSIE";
	sc = screen.width+'x'+screen.height+'x'+(bn == "MSIE" ? screen.colorDepth : screen.pixelDepth);
	ja = (navigator.javaEnabled() == true ? "y" : "n");
	ln = (bn == "MSIE" ? navigator.userLanguage : navigator.language);
	document.write('<img src="http://switch.statman.gr/counter?ws='+lngWorkSpaceID+'&id='+rnd+'&js=y&sc='+sc+'&ref='+ref+'&kw='+kw+'&ja='+ja+'&ln='+ln+'" border=0 width=1 height=1 /><br />');
}

function fixImageSize(oImage, nWidth){
	if (oImage != null) {
		if (oImage.width > 146) oImage.width = 146;
	}
}

function wndOpen(strURL, strName, strParameters) {
	window.open(strURL, strName, strParameters);
}