function load2(page) {
//parent.window.frames["main"].document.location = page;
	parent.window.frames["main"].textFrame.document.location = page;
 //parent.window.frames["main"].document.location = page;
 //window.frames["main"].textFrame.document.location = page;
}

function alreadytobasket() {
	document.getElementById("thickboxdiv").innerHTML="<p style='text-align:center'>Item already in basket!!!<br><br><input type='submit' id='Login' value='&nbsp;&nbsp;Ok&nbsp;&nbsp;' onclick='tb_remove()' /></p>";
 
}
function Delayer()
{
	window.setTimeout('delayer()',5000);
}
	
function thickboxmessage(msg)
	{
	document.getElementById("thickboxdiv").innerHTML="<p style='text-align:center'>"+msg+"<br><br><input type='submit' i	d='Login' value='&nbsp;&nbsp;Ok&nbsp;&nbsp;' onclick='tb_remove()' /></p>";	
	}		

function OnPrint()
{
	document.all("printbtn").style.visibility = 'hidden';
	alert('Για καλύτερα αποτελέσματα επιλέξτε "οριζόντια εκτύπωση".');
	window.print();
	document.all("printbtn").style.visibility = 'visible';
	//opener.location.href(url);
}


function win(mypage) {
    window.open(mypage,"Εκτύπωση","menubar=yes,scrollbars=yes,width=800,height=600,toolbar=no,screenX=300,screenY=300,resizable=yes");
}

function win_popup(mypage,name) {
    window.open(mypage,name,"menubar=no,scrollbars=yes,width=800,height=600,toolbar=no,screenX=300,screenY=300,resizable=yes");
}

function openWin(url)
{
	popupWindow=window.open(url,'windowName','scrollbars=yes,resizable=yes,width=500,height=400,screenX=300,screenY=300');
	if (popupWindow.opener == null) {
		popupWindow.opener = self;
		popupWindow.focus();
	}
}


function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;
    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;
    var newstr = string.substring(0,i) + by;
    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);
    return newstr;
}


function CheckRequiredFields(frm,msg)
{
	result = true;
	for (i=0,n=frm.elements.length;i<n;i++)
	{		
		if (frm.elements[i].getAttribute('required') == 1)
		{
			if (isNaN(frm.elements[i].value)) {
				if (frm.elements[i].value == 0) {
					alert(msg);
					return false;
				}
			} else {
				if (frm.elements[i].value == '') {
					alert(msg);
					return false;
				}
			}
		}
	}
	return result;
}

function DisableObj(frm,str,val)
{
	for (i=0,n=frm.elements.length;i<n;i++)
	{
		if (frm.elements[i].name == str)
		{
			frm.elements[i].disabled = val;
		}
	}
}

function SetFocusByName(frm,str)
{
	for (i=0,n=frm.elements.length;i<n;i++)
	{
		if (frm.elements[i].name == str)
		{
			if (frm.elements[i].type == 'select-one') {
			 	frm.elements[i].focus();
		 	} else {
				frm.elements[i].focus();
				frm.elements[i].select();
			}
		}
	}
}


function checkNumber(obj)
{
	if (obj.value != '')
	{
	  num = parseInt(obj.value,10);
	  if (num != obj.value) {
  		alert('Λάθος σύνταξη αριθμού');
  		obj.value = 0;
  		obj.focus();
  		return false;
  	 	}
  	 }
	return true;
}



	function GetValueByName(frm,str)
	{

		for (i=0,n=frm.elements.length;i<n;i++)
		{
			if (frm.elements[i].name == str)
				return parseInt(frm.elements[i].value,10);
		}
		return 0;
	}

	function GetNonIntValueByName(frm,str)
	{

		for (i=0,n=frm.elements.length;i<n;i++)
		{
			if (frm.elements[i].name == str)
			 return frm.elements[i].value;
		}
		return '';
	}

	function SetValueByName(frm,str,val)
	{

		for (i=0,n=frm.elements.length;i<n;i++)
		{
			if (frm.elements[i].name == str)
			 frm.elements[i].value = val;
		}
	}


	function RoundNum(num)
	{
		r = parseFloat(num);
		if (r == num) {
			return Math.round(num * Math.pow(10, 2)) /Math.pow(10, 2);
		} else {
			return 0;
		}
	}




function checkDateTime(myDate)
{
	if (myDate.value.length !=0) {
	    if (myDate.value.length <= 10)	{
			return isValidDate(myDate);
		} else {
			return isValidDateTime(myDate);
		}
	}
	return true;
}

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isValidDate (myDate) {
	sep ='/';

if (myDate.value.length !=0) {
    if (myDate.value.length == 10) {
        if (myDate.value.substring(2,3) == sep && myDate.value.substring(5,6) == sep) {
            var date  = myDate.value.substring(0,2);
            var month = myDate.value.substring(3,5);
            var year  = myDate.value.substring(6,10);
            var test = new Date(year,month-1,date);
            if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
                return true;
            }
            else {
                alert('Η ημερομηνία δεν είναι σωστή');
	        myDate.select();
	        myDate.focus();
                return false;
            }
        }
        else {
	        alert('Η ημερομηνία μπορεί να περιέχει τον χαρακτήρα /');
	        myDate.select();
	        myDate.focus();
            return false;
        }
    }
    else {
        alert('Η ημερομηνία πρέπει να είναι της μορφής ΗΗ/ΜΜ/ΕΕΕΕ');
        myDate.select();
        myDate.focus();
        return false;
    }
 }
}


function isValidDateTime (myDate) {
	sep ='/';

if (myDate.value.length !=0) {
    if (myDate.value.length <= 16) {
        if (myDate.value.substring(2,3) == sep && myDate.value.substring(5,6) == sep) {
            var date  = myDate.value.substring(0,2);
            var month = myDate.value.substring(3,5);
            var year  = myDate.value.substring(6,10);
            var h = myDate.value.substring(11,13);
            var m = myDate.value.substring(14,16);
            var hsep = myDate.value.substring(13,14);

            var test = new Date(year,month-1,date);
            if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
            if (hsep != ':') {
		        alert('Η ημερομηνία πρέπει να είναι της μορφής ΗΗ/ΜΜ/ΕΕΕΕ ΩΩ:ΛΛ');
	        	myDate.select();
		        myDate.focus();
	            return false;
			}

			if ((h > 23) || (h<0) || (m>59) || (m<0))
			{
                alert('Η Ώρα δεν είναι σωστή');
	        	myDate.select();
	       		myDate.focus();
                return false;
			}

                return true;
            }
            else {
                alert('Η ημερομηνία δεν είναι σωστή');
	        	myDate.select();
	       		myDate.focus();
                return false;
            }

        }
        else {
	        alert('Η ημερομηνία πρέπει να είναι της μορφής ΗΗ/ΜΜ/ΕΕΕΕ ΩΩ:ΛΛ');
	        myDate.select();
	        myDate.focus();
            return false;
        }
    }
    else {
        alert('Η ημερομηνία πρέπει να είναι της μορφής ΗΗ/ΜΜ/ΕΕΕΕ ΩΩ:ΛΛ');
        myDate.select();
        myDate.focus();
        return false;
    }
 }
}


//like isValidDate, but doesn't display an alert. Also doesn't require month and day to have 2 digits
function isValidDateNoMsg(myDate) {
	if (myDate.value=="") return true;

	sep ='/';
	var arr = myDate.value.split(sep);
	if (arr.length == 3) {
		var date = arr[0];
		var month = arr[1];
		var year = arr[2];

		if (date.length > 2 || month.length > 2 || year.length > 4){
	        	myDate.select();
	        	myDate.focus();
		        return false;
		}

	        var test = new Date(year,month-1,date);
        	if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
        		return true;
	        } else {
        		myDate.select();
		        myDate.focus();
		        return false;
	        }
	} else {
        	myDate.select();
        	myDate.focus();
	        return false;
	}//if length

}



function onSelectRadioButton(obj)
{
	if (obj.length >1) {
			for (var i=0; i<obj.length; i++) {
			  if (obj[i].checked)  {
				return	obj[i].value;  	
			  }
			}
	}
}

//upload answers javascript functions

function GetSelectedIndex(obj)
{

	if (obj.length >1)
	{
		for (var i=0; i<obj.length; i++) {
			  if (obj[i].checked)  return obj[i].value;
				
	    }
	} 
	if (obj.checked) 
		return obj.value;

	return 0;
}



function validateAFM (obj)
   {      
       str = obj.value;
	   if (str.length =='') return true;
       if (str.length != 9) {
           alert('Το ΑΦΜ πρέπει να έχει 9 ψηφία ');
           obj.focus();
           return false;
	   }

       if (str.length == 9) {
           A1 = parseInt(str.charAt(0),10);
           A2 = parseInt(str.charAt(1),10);
           A3 = parseInt(str.charAt(2),10);
           A4 = parseInt(str.charAt(3),10);
           A5 = parseInt(str.charAt(4),10);
           A6 = parseInt(str.charAt(5),10);
           A7 = parseInt(str.charAt(6),10);
           A8 = parseInt(str.charAt(7),10);
           A9 = parseInt(str.charAt(8),10);
           S  = (256*A1)+(128*A2)+(64*A3)+(32*A4)+(16*A5)+(8*A6)+(4*A7)+(2*A8);
           Y = (S%11);
           if (Y == 10) {
               if (A9 != 0) {
                   alert('Το ΑΦΜ που δηλώσατε δεν είναι έγκυρο ');
                   obj.focus();
                   return false;
               }
           } else {
			   	if (A9 != Y)  {
                   alert('Το ΑΦΜ που δηλώσατε δεν είναι έγκυρο ');
                   obj.focus();
                   return false;
                 }
           }
       }
       return true;
     }

function InArray(array,item)
{
    var i = 0;
    while (i < array.length) 
	{
        if (array[i] == item) {
            return i;
        } else {
            i++;
        }
    } 
	return -1;
}


function SelectField(curfield,totalField,val)
{
	if (curfield.value != '') {
		SelectedFieldsIn(totalField,val);
	} else {
		SelectedFieldsOut(totalField,val);
	}
}

function SelectedFieldsIn(obj,val)
{
	if (obj.value != '') {
		var array = StrToArray(obj.value,',');
		if (InArray(array,val) == -1) {
			array[array.length] = val;
		}
			
		obj.value = array;		
	} else {
		obj.value = val;			
	}
}

function SelectedFieldsOut(obj,val)
{
	if (obj.value != '') {
		var array = StrToArray(obj.value,',');
		if (InArray(array,val) != -1) {
			array = removeItems(array, val);
		} 
		obj.value = array;		
	} 
}


function StrToArray(str,delimeter)
{
	var array = str.split(delimeter);
	if (array.length >0){
		removeItems(array, '');		
		return array;
	} else {
		return null;
	}
}


function removeItems(array, item) 
{
    var i = 0;
    while (i < array.length) 
	{
        if (array[i] == item) {
            array.splice(i, 1);
        } else {
            i++;
        }
    } 
	return array;
}



function moveSelected(fromList,toList){
	for (i = 0; i < fromList.length;){
		if (fromList.options[i].selected){
			var newElem = document.createElement("OPTION");
			newElem.value = fromList.options[i].value;
			newElem.text = fromList.options[i].text;
			try {
				toList.add(newElem,null);
			} catch (ex){
				toList.add(newElem);
			}

			fromList.remove(i);
		} else {
			//counter is only increased when current item hasn't been moved (was unselected),
			//because if the current item is removed then the index of the next item decreases by one
			i++;
		}
	}
}


function comboEmpty(mycombo){
	if (mycombo.length > 0){
		return false;
	} else {
		return true;
	}
}


function arrayContains(arr, val){
	for (x in arr){
		if (arr[x]==val){
			return true;
		}
	}
	//alert(arr.toString()+'\n'+val);
	return false;
}

/* Used to add functions to the onload attribute of the body tag
	Example: addEvent(window, 'load', myfunc)
	or addEvent(window, 'load', function() {myfunc('str')}) for functions with parameters
*/
function addEvent(obj, evType, fn){
  if (obj.addEventListener){
  	//firefox
    obj.addEventListener(evType, fn, false);
    return true;
  } else if (obj.attachEvent){
  	//ie
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  }
}

function onKeyValidate(e,reg,msg){
   var key;
   pattern = new RegExp(reg);
   if (document.layers)
     var key = e.which;
   else if (document.all)
     var key = e.keyCode;
   else
     var key = e.charCode;
   if (isNaN(key)) return true;

 // check for backspace or delete, or if Ctrl was pressed
  if(e.ctrlKey){ //|| e.shiftKey
    return true;
  }
  if ( (key == 0) || (key == 8) || (key == 9) || (key == 10) || (key == 13) || (key == 16) || (key == 17) || (key == 27) || (key == 127))//(key == 37) || (key == 40) ||(key == 46)
  {
     return true;
  }

 keychar = String.fromCharCode(key);

 var t = pattern.test(keychar);
    if(!t) alert(msg);

 return t;
}
