function Trim(s) {
	// Remove leading spaces and carriage returns
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
		s = s.substring(1,s.length);
	}

	// Remove trailing spaces and carriage returns
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
		s = s.substring(0,s.length-1);
	}

	return s;
}

function isEnglish(str) {
	if (str.search(/^([A-Za-z0-9]|\s|-|\,|\.|\&|\%|\!|\?|\(|\)|\[|\]|\+|\=|\$|\{|\}|\#|\;|\:|\@|\||\*|\/|\\|\<|\>|\~|\^|\'|\|")*$/)==-1 ) return false;
	return true;
}

function isGreek(str) {
	if (str.search(/^([��-���0-9]|\s|-|\,|\.|\&|\%|\!|\?|\(|\)|\[|\]|\+|\=|\$|\{|\}|\#|\;|\:|\@|\||\*|\/|\\|\<|\>|\~|\'|\")*$/)==-1 ) return false;
	return true;
}

function isFloat(str) {
	if (str.search(/^(-)?([0-9])*((\.)([0-9])+)?$/)==-1) return false;
	return true;
}

function isDigit(str) {
	if (str.search(/^(-)?([0-9])*$/)==-1) return false;
	return true;
}

function isTelephone(str) {
	if (str.search(/^([0-9]|\s|-|\+|\(|\)|\/)*$/)==-1) return false;
	return true;
}

function isEmail(str) {
	if (str.search(/^[A-Za-z0-9_]+((-[A-Za-z0-9_]+)|(\.[A-Za-z0-9_]+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)==-1) return false;
	return true;
}

function validRequired(formField, fieldLabel, lang) {
	if (Trim(formField.value) == "") {
		if (lang=='gr') alert('Παρακαλώ εισάγετε ' + fieldLabel +'.');
		else alert('Please Enter ' + fieldLabel +'.');
		formField.focus();
		return false;
	}
	return true;
}

function isDisecton (y) {

	q1 = y%4;
	q2 = y%100;
	q3 = y%400;

	if (q3==0) return true;
	if (q2==0) return false;
	if (q1==0) return true;
	return false;
}

function datesIsWeekend(datess){
	myDate=new Date(eval('datess'));
	myDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
	return myDays[myDate.getDay()];
}

function datesBeforeNow(day_expired,month_expired,year_expired){
	
	current = new Date(); // a new instance
	vday_cur=current.getDate();
	vmonth_cur=current.getMonth();
	vyear_cur=current.getFullYear();
	
	date_start_stamp = mktime(0, 0, 0, month_expired, day_expired, year_expired);
	period_start_stamp = mktime(0, 0, 0, vmonth_cur, vday_cur, vyear_cur);
 	
 	if (date_start_stamp >= period_start_stamp){
 		return true;
 	}else{
 		 return false;
 	}
}

function dateDoesNotExist(d,m,y) {

	if (d>30 && ( m==4 || m==6 || m==9 || m==11 )) return true;
	if (d>31) return true;

	if (isDisecton(y)) {
		if (m==2 && d>29) return true;
	} else {
		if (m==2 && d>28) return true;
	}
	return false;

}

function datesAfterTwoDays(day_expired,month_expired,year_expired){

	current = new Date(); // a new instance
	vday_cur=current.getDate();
	vmonth_cur=current.getMonth();
	vyear_cur=current.getFullYear();
	
	if (vday_cur>30 && ( vmonth_cur==3 || vmonth_cur==5 || vmonth_cur==8 || vmonth_cur==10 )){
		newdate=2;
		vmonth_cur++;
	}else if (vday_cur>31){
		newdate=2;
		vmonth_cur++;
	}else if (isDisecton(vyear_cur)) {
		if (vmonth_cur==1 && vday_cur>29) {
			newdate=2;
			vmonth_cur++;
		}
	} else {
		if (vmonth_cur==1 && vday_cur>28){
			newdate=2;
			vmonth_cur++;
		}else{
			newdate=current.getDate() + 2;
		}
	}
	
	date_start_stamp = mktime(0, 0, 0, month_expired, day_expired, year_expired);
	period_start_stamp = mktime(0, 0, 0, vmonth_cur, newdate, vyear_cur);
 	
 	if (date_start_stamp < period_start_stamp){
 		return true;
 	}else{
 		 return false;
 	}
}

function mktime() {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: baris ozdil
    // +      input by: gabriel paderni 
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: FGFEmperor
    // +      input by: Yannoo
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: jakes
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: mktime(14, 10, 2, 2, 1, 2008);
    // *     returns 1: 1201871402
    // *     example 2: mktime(0, 0, 0, 0, 1, 2008);
    // *     returns 2: 1196463600
    
    var no, ma = 0, mb = 0, i = 0, d = new Date(), argv = arguments, argc = argv.length;
    d.setHours(0,0,0); d.setDate(1); d.setMonth(1); d.setYear(1972);
 
    var dateManip = {
        0: function(tt){ return d.setHours(tt); },
        1: function(tt){ return d.setMinutes(tt); },
        2: function(tt){ set = d.setSeconds(tt); mb = d.getDate() - 1; return set; },
        3: function(tt){ set = d.setMonth(parseInt(tt)-1); ma = d.getFullYear() - 1972; return set; },
        4: function(tt){ return d.setDate(tt+mb); },
        5: function(tt){ return d.setYear(tt+ma); }
    };
    
    for( i = 0; i < argc; i++ ){
        no = parseInt(argv[i]*1);
        if (isNaN(no)) {
            return false;
        } else {
            // arg is number, let's manipulate date object
            if(!dateManip[i](no)){
                // failed
                return false;
            }
        }
    }
 
    return Math.floor(d.getTime()/1000);
}

function validEmail(formField, fieldLabel, required, lang) {
	if (required && !validRequired(formField, fieldLabel, lang)) return false;
	if ( !isEmail(Trim(formField.value)) ) {
		if (lang=='gr') alert("Η διεύθυνση Email δέν ειναι σωστή ");
		else alert("Please Enter a Correct E-mail Address");

		formField.focus();
		return false;
	}
	return true;
}

function NewWindow(mypage, myname, w, h, myscroll) {
	var winl = (screen.width - w) / 4;
	var wint = (screen.height - h) / 4;
	var newWindow
	winprops = 'height='+h+',width='+w+',top=0,left=0,scrollbars='+myscroll;
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
	win.focus();
}

function SumbitOrderForm(){
	document.OrderForm.submit();
}