﻿<!--

// Check whether string s is empty.
function isEmpty(s)	{   
   return ((s == null) || (s.length == 0) || s=="");
}

// isFilename (STRING s [, BOOLEAN emptyOK])
// 
// Returns true if string s is a suitable Filename.
// Without HTML tags.
function isFilename(s)	{
	var filetypes =  /[^*?"<>|\f\n\r]+\.(xls|txt|xml)$/;
	var htmltags =  /(<|>|&nbsp;|&lt;|&gt;)/;
	if (isEmpty(s)) 
		if (isFilename.arguments.length == 1) return false;
	else return (isFilename.arguments[1] == true);

	if ( s.match(htmltags) )	{
		return false;
	}
	else	{
		if (! filetypes.test(s)) 	{
		return false;
		}
	}
	return true;
}


// Decimal to Hexadecimal Convertion//
String.prototype.hex = function ()
	{
	var hexPattern = "0123456789ABCDEF";
	var mask = 0xf;	
	var returnString = "";
	for ( var i = 0 ; i < this.length ; i++)
		{
		var str = "";
		var n = this.charCodeAt(i);
		
		if (this.indexOf("&#0;")==i)
			{
			str = "0000";
			i = i + 3
			}
		else
			{
			while(n != 0)
				{
					str = hexPattern.charAt(n&mask) + str;
					n>>>=4;
				}
			
			while (str.length < 4)
				{
				str = 0 + str 
				}
			}
		
		returnString  +=  str.length == 0 ? "" : str;
		}
	return returnString;
	}
// Decimal to Hexadecimal Convertion//

// Returns true or false (integer or not)
function isInteger(theData) { return (theData.search(/^\d+$/) != -1); }

// Returns true or false (decimal or not)
function isDecimal(theData) { return (theData.search(/\d*\.\d+/) != -1); }

function isDecimal2(theData,prec,scale)
{
//prec = synoliko mikos
//scale = dekadika psifia, xwris tin telia
	var ipart=prec-scale;
	
	if(isDecimal(theData))
	{
		if (theData.indexOf('.') <= ipart)   
		{
			if ( theData.length-theData.indexOf('.')-1 <= scale )
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}


// string to have leading/trailing whitespace removed	
function trim(sString) { return sString.replace(/\s+$|^\s*/gi, ""); }

// Check eMail
function isMail(sString) 
{
	 var emailEXP = /^[a-z_0-9\.]+@[a-z_0-9\.\-]+\.[a-z]{2,3}$/i
     if (!sString.match(emailEXP)){
	 	return false;
	 }else{
	 	return true;
	 }
}// end eMail

//Check Required Fields of a form 
function CheckRequiredFields(FormName,FormFields)
{
	var RFByte=0;
	var RFArray=FormFields.split(',')
	for (var i=0;i<RFArray.length;i++){
		if (trim(eval(FormName+'.'+RFArray[i]+'.value'))=='') {
			RFByte=1;
		}
	}
	if (RFByte==0){return true}else{return false}
}//End check	

//Replace Single Quotes with 2 single quotes
function ReplaceSingleQuotes(FormName){ 
	var FormLength = eval(FormName).length;
	for (var i=0;i<FormLength;i++){
		{
		if (eval(FormName).elements[i].value)
			{
			FormFieldValue=eval(FormName).elements[i].value;
			FormFieldValue=FormFieldValue.replace(/\'/g, "''");
			eval(FormName).elements[i].value=FormFieldValue;
			}
		}	
	}
}//ReplaceSingleQuotes

//Validate if has typed a number of format 0.000,00 (Not accepts 0000.00 and 0000)
function isEuro(PriceValue){ 
	 var EuroPattern =/^\d{1,3}(.\d{3})*\,\d{2}$/;
	 var matchArray = EuroPattern.exec(PriceValue);
     if (!matchArray) return false;
	 return true;
}//end isEuro

// Check Date Function
function isDate(strDate,DateFormat) 
{
	 DateFormat=DateFormat.toLowerCase()
	 if (DateFormat=='dd/mm/yyyy'){var DatePattern = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;}
	 else if (DateFormat=='mm/dd/yyyy'){var DatePattern = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;}
	 else if (DateFormat=='yyyy/mm/dd'){var DatePattern = /^(\d{2}|\d{4})(\/|-)(\d{1,2})\2(\d{1,2})$/;}
	 
     var matchArray = strDate.match(DatePattern);
     if (matchArray == null) return false;
     
	 if (DateFormat=='dd/mm/yyyy'){var day = matchArray[1];var month = matchArray[3];var year = matchArray[4];}
	 else if (DateFormat=='mm/dd/yyyy'){var day = matchArray[3];var month = matchArray[1];var year = matchArray[4];}
	 else if (DateFormat=='yyyy/mm/dd'){var day = matchArray[4];var month = matchArray[3];var year = matchArray[1];}
	 else{return false;}
	 	
     if (month < 1 || month > 12) return false;
     if (day < 1 || day > 31) return false;
	 if (year < 1900) return false;
     if ((month == 4 || month == 6 || month==9 || month == 11) && day == 31) return false;
     if (day>=29 && month == 2 && parseInt(year) % 4 !== 0) {return false;}
     if (day>=30 && month == 2 && parseInt(year) % 4 == 0) {return false;}
     return true;
}
// End Check Date Function

function openPopUpWindow(theURL,winName,features) 
{ 
  window.open(theURL,winName,features);
}

function CheckSelectedRow(FieldName, tr_index)
{
	var DeleteLength = FieldName.length
	if (DeleteLength>0)
	 {
	 elementDescr=FieldName[tr_index];
	 }
	 else
	   {
		elementDescr=FieldName;
	   }
	
	if (elementDescr.checked==true)
	 {
      eval('tr'+tr_index+'.style.backgroundColor=\''+tr_bgColor_selected+'\'');
     }
	else
	   {
        eval('tr'+tr_index+'.style.backgroundColor=\'\'');
       }
}
	
function CheckAllRows(FieldName,ActionName)
{
 var count=FieldName.length

	if	(count>0){
		if (ActionName=='SelectAll'){
			for (var i=0;i<count;i++){
					if (FieldName[i].disabled==false){
						FieldName[i].checked=true;
		        		eval('tr'+i+'.style.backgroundColor=\''+tr_bgColor_selected+'\'');
					}
				}
		}
		if (ActionName=='DeSelectAll'){
		    for (var i=0;i<count;i++){
					if (FieldName[i].disabled==false){	
						FieldName[i].checked=false;
		        		eval('tr'+i+'.style.backgroundColor=\'\'');
					}
				}
	    }
	}else{
		if (ActionName=='SelectAll'){
				if (FieldName.disabled==false){
					FieldName.checked=true
					tr0.style.backgroundColor=''+tr_bgColor_selected+''
				}
		}
		if (ActionName=='DeSelectAll'){
				if (FieldName.disabled==false){
					FieldName.checked=false;
		    		tr0.style.backgroundColor=''
				}
		}
	}    
}

//+++++++++++++++++++ Delete Selected Records ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function DeleteAllRecords()
{
 	var count_length=document.DeleteAll.CheckDel.length  //Check if has checked any value
	
	var checked_Elements=0;
	if (count_length>0) {
		for (var i=0;i<count_length;i++){
			if (document.DeleteAll.CheckDel[i].checked==true){
				checked_Elements=1;
			}
		}
	}else{
		if (document.DeleteAll.CheckDel.checked==true){
				checked_Elements=1;
		}
	}//---
	if (checked_Elements==0){
		//alert("Πρέπει να επιλέξετε τουλάχιστον μία εγγραφή")
		alert(DELSELECTEDMSG_ITEM);

		return;
	}
//	var question = confirm("Είστε βέβαιος/η πως θέλετε να διαγράψετε τις επιλεγμένες εγγραφές;\rΟτιδήποτε σχετικό με αυτή την εγγραφή στη βάση θα διαγραφεί.")
	var question = confirm(CONFSELECTEDMSG_ITEM)
	if (question == true) {	document.DeleteAll.submit(); }
} //end


//++++++++++++++++++++ Add Edit Record ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function AddEditRecord(FormName,id)
{
    document.UpdateForm.record_id.value=id
	document.UpdateForm.submit();
}//end PageNavigator



//+++++++++++++++++++++ Navigation Function +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function PageNavigator(FormName,page)
{
  if (FormName=='forward')
	{
		document.NavigationForm.page.value=page
		document.NavigationForm.submit();
	}
 else if (FormName=='backward')
	{
		document.NavigationForm.page.value=page
		document.NavigationForm.submit();
	}
 else (FormName=='exact')
	{
		document.NavigationForm.page.value=page
		document.NavigationForm.submit();
	}	
}// end of PageNavigator


//++++++++++++++++ The Following Two Functions Create Headers in the list Page ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function OrderFunction(order_type_value,order_by_value)
{
	document.OrderForm.order_by.value=order_by_value
	document.OrderForm.order_type.value=order_type_value
	document.OrderForm.submit()
}

function WriteHeaders(order_type_asp,order_by_asp,order_by_var,order_by_title)
{
	//Write Headers
	if (order_type_asp.toUpperCase()=='ASC' && order_by_asp.toUpperCase()==order_by_var.toUpperCase()){
		document.write("<a href=\"javascript:OrderFunction('DESC','"+order_by_var+"')\" class=\"link\">"+order_by_title+"</a>")
	}else if(order_type_asp.toUpperCase()=='DESC' && order_by_asp.toUpperCase()==order_by_var.toUpperCase()){
		document.write("<a href=\"javascript:OrderFunction('ASC','"+order_by_var+"')\" class=\"link\">"+order_by_title+"</a>")
	}else{
		document.write("<a href=\"javascript:OrderFunction('ASC','"+order_by_var+"')\" class=\"link\">"+order_by_title+"</a>")
	}
	//
	document.write("&nbsp;")
	//Write common/images/
	if (order_type_asp.toUpperCase()=='ASC' && order_by_asp.toUpperCase()==order_by_var.toUpperCase()){
		document.write("<img src=\"../common/images//order_type_asc_checked.gif\" width=8 height=7 border=0>")
	}else{
		document.write("<a href=\"javascript:OrderFunction('ASC','"+order_by_var+"')\"><img src=\"../common/images//order_type_asc.gif\" width=8 height=7 border=0></a>")
	}
	document.write("&nbsp;")
	if (order_type_asp.toUpperCase()=='DESC' && order_by_asp.toUpperCase()==order_by_var.toUpperCase()){
		document.write("<img src=\"../common/images//order_type_desc_checked.gif\" width=8 height=7 border=0>")
	}else{
		document.write("<a href=\"javascript:OrderFunction('DESC','"+order_by_var+"')\"><img src=\"../common/images//order_type_desc.gif\" width=8 height=7 border=0></a>")
	}
}


function  mergeValuefields(ValA, ValB, Merged)
{
	if ((ValA.value !=null) && (ValB.value !=null)) 
	 {
	  Merged.options[Merged.options.length] = new Option(ValA.value +'|'+ ValB.value, ValA.value +'|'+ ValB.value);
	 }

	if (ValB.value == null)  
	 {
	  Merged.options[Merged.options.length] = new Option(ValA.value, ValA.value);
	 }
ValA.value='';
ValB.value='';
}//end mergeValuefields


function  editSelectedRow(ValA, Merged, UseOfQuotes)
{
 if (Merged.options.selectedIndex>-1)  //There is at least one row selected
 { 
	var theValue = Merged.options[Merged.options.selectedIndex].value;
	js_frm_elements_Value = Merged.options[Merged.options.selectedIndex].text;
	var _s = js_frm_elements_Value;
	var _p = 0; // Pipe count
	var stringlength;
	
	if (UseOfQuotes == 0)
	 { var stringlength = _s.length;   /* alert(UseOfQuotes) */ }
	else
	  { var stringlength = _s.length-2;  /* alert(UseOfQuotes) */ }

	ValA.value = _s.substr(0,stringlength);
	Merged.options[Merged.options.selectedIndex] = null;
return theValue
 }
}//end editSelectedRow


function  DeleteSelectedRow(obj)
{
	if (obj.options.selectedIndex>-1){//There is at least one row selected
		obj.options[obj.options.selectedIndex] = null;
	}
}//end DeleteSelectedRow


// This Functions Adds 3 Select Fields In Order to Create A full Time element.
function createTimeList(Hour,Mimute,Second,v1,v2,v3) 
{ 
	document.write('<select name="'+Hour+'" class="login">');
	for(i=0;i<=23;i++){
		if (i<=9){
			if(v1==i){document.write('<option value="0'+i+'" selected>0'+i+'</option>');}
			else{document.write('<option value="0'+i+'">0'+i+'</option>');}
		}else{
			if(v1==i){document.write('<option value="'+i+'" selected>'+i+'</option>');}
			else{document.write('<option value="'+i+'">'+i+'</option>');}}}		
	document.write('</select>');
	document.write('  <strong>:</strong>  ');
	document.write('<select name="'+Mimute+'" class="login">');
	for(i=0;i<=59;i++){
		if (i<=9){
			if(v2==i){document.write('<option value="0'+i+'" selected>0'+i+'</option>');}
			else{document.write('<option value="0'+i+'">0'+i+'</option>');}
		}else{
			if(v2==i){document.write('<option value="'+i+'" selected>'+i+'</option>');}
			else{document.write('<option value="'+i+'">'+i+'</option>');}}}		
	document.write('</select> ');
	document.write('  <strong>:</strong>  ');
	document.write('<select name="'+Second+'" class="login">');
	for(i=0;i<=59;i++){
		if (i<=9){
			if(v3==i){document.write('<option value="0'+i+'" selected>0'+i+'</option>');}
			else{document.write('<option value="0'+i+'">0'+i+'</option>');}
		}else{
			if(v3==i){document.write('<option value="'+i+'" selected>'+i+'</option>');}
			else{document.write('<option value="'+i+'">'+i+'</option>');}}}		
	document.write('</select> ');
}

function FileModalDialog(obj)	
{
	var arr = showModalDialog("../FileBrowser/browse.asp","","font-family:Verdana; font-size:12; dialogWidth:45em; dialogHeight:24em; scroll:yes; status: No;" );
	if (arr) obj.value=arr;	
	arr=null;
}

function FolderModalDialog(obj)	//for exportData: select only folders
{
	//alert(event.screenX + ' -- ' + event.screenY);
	var arr = showModalDialog("../FileBrowser/browseFolders.asp","","font-family:Verdana; font-size:12; dialogLeft:"+(event.screenX-100)+"px; dialogTop:"+(event.screenY+10)+"px; dialogHeight: 350px; dialogWidth: 500px; scroll:yes; status: No;" );
	//var arr = window.open("../FileBrowser/browseFolders.asp","");
	if (arr) obj.value=arr;	
	arr=null;
}

function ImageModalDialog(obj)	
{
	var arr = showModalDialog("../FileBrowser/images_browser.asp","","font-family:Verdana; font-size:12; dialogWidth:45em; dialogHeight:24em; scroll:yes" );
	if (arr) obj.value=arr;	
	arr=null;
}


function LinkModalDialog(obj)
{
	var arr=showModalDialog("../FileBrowser/articles_browser.asp","","dialogHeight: 600px; dialogWidth: 450px; dialogTop: 150px; dialogLeft:"+(event.screenX+50)+"px; edge: Raised; center: No; resizable: Yes; status: Yes; scroll: Yes;");
	//var arr = window.open("../FileBrowser/articles_browser.asp","");
	if (arr) obj.value=arr;	
	arr=null;
}

function MinimizeMaximize(obj,maxSize)
{
	var iframeEditable=eval('document.all.iframeEditable_'+obj.id.substring(obj.id.indexOf('_')+1,obj.id.length))
	if (obj.id.substring(0,obj.id.indexOf('_'))=='maximize' && obj.disabled==false)
		{
		iframeEditable.style.height=maxSize;
		obj.disabled=true;
		eval('document.images.minimize_'+obj.id.substring(obj.id.indexOf('_')+1,obj.id.length)).disabled=false;
		//eval('iframeEditable_'+obj.id.substring(obj.id.indexOf('_')+1,obj.id.length)+'.ToolBars').style.display='block';
		}
	else if (obj.id.substring(0,obj.id.indexOf('_'))=='minimize' && obj.disabled==false)
		{
		iframeEditable.style.height='200px';
		obj.disabled=true;
		eval('document.images.maximize_'+obj.id.substring(obj.id.indexOf('_')+1,obj.id.length)).disabled=false;
		//eval('iframeEditable_'+obj.id.substring(obj.id.indexOf('_')+1,obj.id.length)+'.ToolBars').style.display='none';
		}
	}
	
function GetHelp(Lang,PageName)
{
/*
	PageName=String(PageName);
	page=PageName.substring((PageName.lastIndexOf("/")+1),PageName.length);
	pagenoextension=page.substring(0,page.lastIndexOf("."));
	helpPage=pagenoextension+"_help_" + Lang + ".html";
	parent.frames.help.LoadNewFile(helpPage);
*/	
}
	
function ChangeSessionValues(SessionVariableName,SessionValue)
{
		var httpObjSessions = 	new ActiveXObject("MSXML2.XMLHTTP");
		httpObjSessions.Open("POST", ("../common/scripts/change_session_values.asp"), false);
		httpObjSessions.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		httpObjSessions.Send ("SessionVariableName="+SessionVariableName+"&SessionValue="+SessionValue);
}

// Functions For Communication with Web Server with XML	
var domObj_WebService 	=	new ActiveXObject("MSXML2.DOMDocument");
var httpObj_WebService 	= 	new ActiveXObject("MSXML2.XMLHTTP");

function WebService(sTarget,sData)
	{
	httpObj_WebService.Open("POST", sTarget, false);
	httpObj_WebService.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	httpObj_WebService.Send (sData);
	return WebService_wait()
	}

function WebService_wait()
	{
    if (httpObj_WebService.readyState == 4)
		{
		domObj_WebService.loadXML(httpObj_WebService.ResponseXML.xml);
		return domObj_WebService.xml;
        }
    else
		{
        window.setTimeout("WebService_wait()", 50);
        }
	}
// Functions For Communication with Web Server with XML	

function left(String, Length)
{
	if (String == null)
		return (false);

	return String.substr(0, Length);
}

function len(string)
{
	if (string == null)
		return (false);

	return String(string).length;
}

function instr(String1, String2)
{
	var a = 0;

	if (String1 == null || String2 == null)
		return (false);

	String1 = String1.toLowerCase();
	String2 = String2.toLowerCase();

	a = String1.indexOf(String2);
	if (a == -1)
		return 0;
	else
		return a + 1;
}


//-->
