//var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
var xmlDoc;
var messageNode;

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// ================ FUNCTION TO LOAD XML FILE FOR netscape OR ie =======================
function loadXMLnode(XmlFileFullPath)
{
	if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.async=false;
		xmlDoc.onload = getmessage;
		xmlDoc.load(XmlFileFullPath);
		msg=messageNode;
		return msg;
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.onreadystatechange=verify; 		
		xmlDoc.load(XmlFileFullPath);
		message=getmessage(ParentName,NodeName);
		msg = message;
		return msg;
 	}
	else
	{
		alert('Your browser can\'t handle this script');
		return;
	}

}
// ============================== END OF FUNCTION ==================================


// ============ FUNCTION TO RETRIEVE node value FROM THE LOADED XML FILE ==================
function getmessage()
{
//  x = xmlDoc.getElementsByTagName("greek");
var lang = Language;
  x = xmlDoc.getElementsByTagName(lang);
	for (j=0;j<x[0].childNodes.length;j++)
	{
	    if (x[0].childNodes[j].nodeName == ParentName)
		{
			for (k=0;k<x[0].childNodes[j].childNodes.length;k++)
			{
				if (x[0].childNodes[j].childNodes[k].nodeName == NodeName )
				nodeValue = (x[0].childNodes[j].childNodes[k].firstChild.nodeValue);
			}
		}
	}
	messageNode=nodeValue;	
	return nodeValue;
}

function verify() 
{ 
 // 0 Object is not initialized, 1 Loading object is loading data, 2 Loaded object has loaded data, 
 // 3 Data from object can be worked with, 4 Object completely initialized 
 if (xmlDoc.readyState != 4) 
 { 
   return false; 
 } 
}

// ================ FUNCTION TO CHECK IF REQUIRED FIELDS ARE BLANK =======================
function CheckRequiredFields(FormName,XmlFileFullPath,lang)
{
ParentName='UserMessages';
NodeName='FillAllFields';

  Language = lang;
    
  var blank_fields = false;
  this.formname = FormName;
  for (i=0; i<document.forms[this.formname].elements.length; i++)
  {
  switch (document.forms[this.formname].elements[i].type)
  {
     case "checkbox":
	   {
		 if ((document.forms[this.formname].elements[i].title == "required")  && (document.forms[this.formname].elements[i].checked==false))
		 {
		     blank_fields=true;
		 } 
	   }
     case "text":
	   {
		 if ((document.forms[this.formname].elements[i].title == "required")  && (document.forms[this.formname].elements[i].value==""))
		 {
		     blank_fields=true;
		 } 
	   }
     case "textarea":
	   {
		 if (document.forms[this.formname].elements[i].title == "required"  && (document.forms[this.formname].elements[i].value=="") )
		 {
		     blank_fields=true;
		 } 
	   }
  }

  }
  if (blank_fields)
  {
    alert (loadXMLnode(XmlFileFullPath));
    return false;
  }
  else
  {
   return true;
  }
}
// =============================== END OF FUNCTION ==================================


// =================== FUNCTION TO CONFIRM THE DELETE ACTION ==========================
function DeleteConfirmation(FormName,XmlFileFullPath,lang)
{
  var DeleteConfirmed = false;
  ParentName='UserMessages';
  NodeName='DeleteConfirmation';

  Language = lang;

  
  if (confirm(loadXMLnode(XmlFileFullPath))==true)
  {
     DeleteConfirmed=true;
  }
  else
  {
     DeleteConfirmed=false;
  }
  if (DeleteConfirmed)
  {
    return true;
  }
  else
  {
    return false;
  }
}
// =============================== END OF FUNCTION ==================================


// =================== FUNCTION TO CONFIRM THE UPDATE ACTION ==========================
function UpdateConfirmation(FormName,XmlFileFullPath,lang)
{
  var UpdateConfirmed = false;
  ParentName='UserMessages';
  NodeName='UpdateConfirmation';

  Language = lang;
  
  if (confirm(loadXMLnode(XmlFileFullPath))==true)
  {
     UpdateConfirmed=true;
  }
  else
  {
     UpdateConfirmed=false;
  }
  if (UpdateConfirmed)
  {
    return true;
  }
  else
  {
    return false;
  }
}
// =============================== END OF FUNCTION ==================================


function loadInlineFrame(iframeName,iframe1URL)
{
	parent.frames[iframeName].location.href=iframe1URL;
}



// ================ FUNCTION FOR MOVING UP AN ELEMENT OF THE LIST =======================
function moveUpList(MyForm,MyList,XmlFileFullPath,lang)
{
	ParentName='UserMessages';

	Language = lang;
	
	this.ListName = MyList;
	this.FormName = MyForm;

   if (( document.forms[this.FormName].elements[this.ListName].length == -0) || ( document.forms[this.FormName].elements[this.ListName].value == '-'))
   {  // If the list is empty
	  NodeName='EmptyList';
      alert (loadXMLnode(XmlFileFullPath));
   } else {
      var selected = document.forms[this.FormName].elements[this.ListName].selectedIndex;
      if (selected == -1) 
	  {
		 NodeName='SelectCategory';
	     alert (loadXMLnode(XmlFileFullPath));
      } else {  // Something is selected 
         if ( document.forms[this.FormName].elements[this.ListName].length == 0 ) 
		 {  // If there's only one in the list
		    NodeName='CannotMoveTheOnlyCategory';
            alert (loadXMLnode(XmlFileFullPath));
         } else {  // There's more than one in the list, rearrange the list order
            if ( selected == 0 ) 
			{
			    NodeName='CannotMoveUpTheFirstCategory';
	            alert (loadXMLnode(XmlFileFullPath));
            } else {
               // Get the text/value of the one directly above the hightlighted entry as
               // well as the highlighted entry; then flip them
               var moveText1 = document.forms[this.FormName].elements[this.ListName][selected-1].text;
               var moveText2 = document.forms[this.FormName].elements[this.ListName][selected].text;
               var moveValue1 = document.forms[this.FormName].elements[this.ListName][selected-1].value;
               var moveValue2 = document.forms[this.FormName].elements[this.ListName][selected].value;
               document.forms[this.FormName].elements[this.ListName][selected].text = moveText1;
               document.forms[this.FormName].elements[this.ListName][selected].value = moveValue1;
               document.forms[this.FormName].elements[this.ListName][selected-1].text = moveText2;
               document.forms[this.FormName].elements[this.ListName][selected-1].value = moveValue2;
               document.forms[this.FormName].elements[this.ListName].selectedIndex = selected-1; // Select the one that was selected before
            }  
         }  
      }  
   }  
}
// =================================== END OF FUNCTION ===================================


// ================ FUNCTION FOR MOVING DOWN AN ELEMENT OF THE LIST =======================
function moveDownList(MyForm,MyList,XmlFileFullPath,lang) {

	ParentName='UserMessages';

	this.ListName = MyList;
	this.FormName = MyForm;

	Language = lang;

   if (( document.forms[this.FormName].elements[this.ListName].length == -0) || ( document.forms[this.FormName].elements[this.ListName].value == '-'))
   {  // If the list is empty
	  NodeName='EmptyList';
      alert (loadXMLnode(XmlFileFullPath));
   } else {
      var selected = document.forms[this.FormName].elements[this.ListName].selectedIndex;
      if (selected == -1) 
	  {
		 NodeName='SelectCategory';
	     alert (loadXMLnode(XmlFileFullPath));
      } else {  // Something is selected 
         if ( document.forms[this.FormName].elements[this.ListName].length == 0 ) 
		 {  // If there's only one in the list
		    NodeName='CannotMoveTheOnlyCategory';
            alert (loadXMLnode(XmlFileFullPath));
         } else {  // There's more than one in the list, rearrange the list order
            if ( selected == document.forms[this.FormName].elements[this.ListName].length-1 ) 
			{
			    NodeName='CannotMoveDownTheLastCategory';
	            alert (loadXMLnode(XmlFileFullPath));
            } else {
               // Get the text/value of the one directly below the hightlighted entry as
               // well as the highlighted entry; then flip them
               var moveText1 = document.forms[this.FormName].elements[this.ListName][selected+1].text;
               var moveText2 = document.forms[this.FormName].elements[this.ListName][selected].text;
               var moveValue1 = document.forms[this.FormName].elements[this.ListName][selected+1].value;
               var moveValue2 = document.forms[this.FormName].elements[this.ListName][selected].value;
               document.forms[this.FormName].elements[this.ListName][selected].text = moveText1;
               document.forms[this.FormName].elements[this.ListName][selected].value = moveValue1;
               document.forms[this.FormName].elements[this.ListName][selected+1].text = moveText2;
               document.forms[this.FormName].elements[this.ListName][selected+1].value = moveValue2;
               document.forms[this.FormName].elements[this.ListName].selectedIndex = selected+1; // Select the one that was selected before
            }  
         }  
      }  
   }  
}
// =================================== END OF FUNCTION ===================================


// ======== FUNCTION FOR MAKING ALL VALUES OF A LIST AS AN ARRAY SEPERATED BY COMMA (,)=======
function MakeTheListValuesAnArray(MyForm,MyList,MyHidden)
{
	this.ListName = MyList;
	this.FormName = MyForm;
	this.HiddenName = MyHidden;

  for (i=0; i<document.forms[this.FormName].elements[this.ListName].length; i++)
	{
		document.forms[this.FormName].elements[this.HiddenName].value=document.forms[this.FormName].elements[this.HiddenName].value+","+document.forms[this.FormName].elements[this.ListName][i].value;
	}
}
// ===================================== END OF FUNCTION =====================================

// ==================== FUNCTION TO INFORM IF DELETE IS SUCCESS  ==============================
function InformIfDeleteActionIsDone(XmlFileFullPath,MyNodeName,lang)
{
  Language = lang;

  ParentName='UserMessages';
  NodeName=MyNodeName;
  Message=loadXMLnode(XmlFileFullPath);
  return Message;
}
// ===================================== END OF FUNCTION =====================================


// ========================== FUNCTION TO ENABLE BUTTONS  ====================================
function EnableButton(MyForm,MyButton)
{
	this.FormName = MyForm;
	this.Button = MyButton;
	document.forms[this.FormName].elements[this.Button].disabled=false;	
}
// ===================================== END OF FUNCTION =====================================

function YpologismosTimhs()
{
var ValidChars = ":"; 
   for (i = 0; i < document.forma.package_select.value.length; i++) 
   {
       Char = document.forma.package_select.value.charAt(i);
       if (ValidChars.indexOf(Char) != -1) 
	   {
		  document.forma.package_id.value = document.forma.package_select.value.substring(0,i);
		  document.forma.price.value = document.forma.package_select.value.substring(i+1);
		  document.forma.price.value = ' '+document.forma.price.value*document.forma.duration.value;
       }
    }

}


// ============ FUNCTION FILL ALL VALUES OF A FROM ACCORDING TO A SELECTED LIST ITEM ===========
function AssignValuesFromList(FormNameTarget,ListItemID)
{
	this.FormNameTarget = FormNameTarget;

	this.ListItemID = ListItemID;
	
	document.forms[this.FormNameTarget].address_firstname.value=document.getElementById(this.ListItemID+'_firstname').title;
	document.forms[this.FormNameTarget].address_lastname.value=document.getElementById(this.ListItemID+'_lastname').title;
	document.forms[this.FormNameTarget].address_address.value=document.getElementById(this.ListItemID+'_address').title;
	document.forms[this.FormNameTarget].address_postal_code.value=document.getElementById(this.ListItemID+'_postal_code').title;
	document.forms[this.FormNameTarget].address_city.value=document.getElementById(this.ListItemID+'_city').title;
	document.forms[this.FormNameTarget].address_phone.value=document.getElementById(this.ListItemID+'_phone').title;
	document.forms[this.FormNameTarget].address_mobile.value=document.getElementById(this.ListItemID+'_mobile').title;
}
// ============================== END OF FUNCTION =========================================


// ======== FUNCTION FOR MAKING ALL VALUES AS AN ARRAY SEPERATED BY COMMA (,)=======
function MakeTheValuesAnArray(MyForm,FieldsTitles,FieldsValues)
{
	this.FormName = MyForm;
	this.FieldsTitles = FieldsTitles;
	this.FieldsValues = FieldsValues;

document.forms[this.FormName].elements[this.FieldsTitles].value='';
document.forms[this.FormName].elements[this.FieldsValues].value='';

for (i=0; i<document.form1.elements.length; i++)
{
	if (document.form1.elements[i].name.indexOf('pro_')>-1)
	{
		document.forms[this.FormName].elements[this.FieldsTitles].value=document.forms[this.FormName].elements[this.FieldsTitles].value+'My_Divider_Sign'+document.forms[this.FormName].elements[i].name;
		document.forms[this.FormName].elements[this.FieldsValues].value=document.forms[this.FormName].elements[this.FieldsValues].value+'My_Divider_Sign'+document.forms[this.FormName].elements[i].value;
		//alert(document.forms[this.FormName].elements[this.FieldsValues].value);
	}

}
//alert (document.forms[this.FormName].elements[this.FieldsTitles].value);
//alert (document.forms[this.FormName].elements[this.FieldsValues].value);

}
// ===================================== END OF FUNCTION =====================================
// ======= FUNCTION TO CHECK IF THE LENGTH OF THE VALUE OF THE FIELD IS GREATER THAN 5============
function CheckLength(MyForm,MyTextField,minimumLength,XmlFileFullPath,lang)
{

 Language = lang;

 Length="";
 this.FormName = MyForm;
 this.TextField = MyTextField;
 if (document.forms[this.FormName].elements[this.TextField].value.length<minimumLength)
 {
	 //alert('length < ' + minimumLength);
	 Length = "lessThanMinimum";
 }
 if ( (Length == "lessThanMinimum") )
 {
	 ParentName='UserMessages';
	 NodeName=MyTextField;
     alert(loadXMLnode(XmlFileFullPath)+ minimumLength) ;
 	return false;
 }
 else
 {
 	return true;
 }
}
// ===================================== END OF FUNCTION =====================================
// ======================== FUNCTION TO CHECK IF INPUT IS NOT A NUMBER  ======================
function CheckIfIsNaN(MyForm,MyInput,XmlFileFullPath,lang)
{
    Language = lang;

	this.FormName = MyForm;
	this.InputName = MyInput;
	 ParentName='UserMessages';
	 NodeName='NotArithmeticValue';
     
	if (isNaN(parseFloat(document.forms[this.FormName].elements[this.InputName].value)))	
	{
		alert(loadXMLnode(XmlFileFullPath));
		document.forms[this.FormName].elements[this.InputName].value='';
	}
	
//alert(parseFloat(document.forms[this.FormName].elements[this.InputName].value));	
}
// ===================================== END OF FUNCTION =====================================

// =============================== FUNCTION TO CHECK EMAIL FORMAT ============================
function CheckMailFormat(MyForm,MyInput,XmlFileFullPath,lang)
{
    Language = lang;

	this.FormName = MyForm;
	this.InputName = MyInput;
	 ParentName='UserMessages';
	 NodeName='NotCorrectEmailFormat';
     
	var email_value = document.forms[this.FormName].elements[this.InputName].value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email_value)) 
	{
		return true;
	}
	else 
	{
		alert(loadXMLnode(XmlFileFullPath));
		return false;
	}	
}
// ===================================== END OF FUNCTION =====================================
function IsNumeric(MyForm,MyInput,XmlFileFullPath,lang) 
{ 
    Language = lang;

	this.FormName = MyForm;
	this.InputName = MyInput;
	 ParentName='UserMessages';
	 NodeName='NotArithmeticValue';

   var ValidChars = "0123456789."; 
   var Char;
   var Numeric = true;	  

   for (i = 0; i < document.forms[this.FormName].elements[this.InputName].value.length; i++) 
   {
       Char = document.forms[this.FormName].elements[this.InputName].value.charAt(i);
       if (ValidChars.indexOf(Char) == -1) 
	   {
		  Numeric=false;	  
       }
    }
	
	if (Numeric)
	{
		 return true;
	}
	else
	{
		 ParentName='UserMessages';
		 NodeName='NotArithmeticValue';   
		 alert(loadXMLnode(XmlFileFullPath));
		return false;
	}
}
