﻿// -------------------------------------------------------------------
// copySelectedOptions(select_object,select_object[,autosort(true/false)])
//  This function copies options between select boxes instead of
//  moving items. Duplicates in the target list are not allowed.
// -------------------------------------------------------------------
function copySelectedOptions(from,to) {
	var options = new Object();
	for (var i=0; i<to.options.length; i++) {
		options[to.options[i].value] = to.options[i].text;
		}
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			if (options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text) {
				to.options[to.options.length] = new Option( o.text, o.value, false, false);
				}
			}
		}
	if ((arguments.length<3) || (arguments[2]==true)) {
		sortSelect(to);
		}
	from.selectedIndex = -1;
	to.selectedIndex = -1;
	}


// -------------------------------------------------------------------
// removeSelectedOptions(select_object)
//  Remove all selected options from a list
//  (Thanks to Gene Ninestein)
// -------------------------------------------------------------------
function removeSelectedOptions(from) {
	for (var i=(from.options.length-1); i>=0; i--) {
		var o=from.options[i];
		if (o.selected) {
			from.options[i] = null;
			}
		}
	from.selectedIndex = -1;
	}

// -------------------------------------------------------------------
// selectAllOptions(select_object)
//  This function takes a select box and selects all options (in a
//  multiple select object). This is used when passing values between
//  two select boxes. Select all options in the right box before
//  submitting the form so the values will be sent to the server.
// -------------------------------------------------------------------
function selectAllOptions(obj) {
	for (var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
		}
	}

// -------------------------------------------------------------------
// sortSelect(select_object)
//   Pass this function a SELECT object and the options will be sorted
//   by their text (display) values
// -------------------------------------------------------------------
function sortSelect(obj) {
	var o = new Array();
	if (obj.options==null) { return; }
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
		}
	if (o.length==0) { return; }
	o = o.sort( 
		function(a,b) { 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
			} 
		);

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
		}
	}
// -------------------------------------------------------------------
// removeAllOptions(select_object)
//  Remove all options from a list
// -------------------------------------------------------------------
function removeAllOptions(from) { 
	for (var i=(from.options.length-1); i>=0; i--) { 
		from.options[i] = null; 
		} 
	from.selectedIndex = -1; 
	}

//--------------------------------------------------------------------
//Check if isInteger

  function isInteger(s){   
    var i;	
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
	
//--------------------------------------------------------------------
function validate(){
	var valid = true;
	var msg = 'Τα παρακάτω πεδία είναι υποχρεωτικά:\n';

	
	var myForm = document.insertPackage;
	if(myForm.title.value==''){valid = false; msg = msg + 'Τίτλος\n'}
	if(myForm.selectedLocations.options.length==0){valid = false; msg = msg + 'Προορισμός\n'}

	var count = 0;
  	for (i=0; i<myForm.selectedCategories.options.length; i++) {
    		if (myForm.selectedCategories.options[i].selected) {
      			count++;
    		}
  	}
	if(count<1){valid = false; msg = msg + 'Κατηγορία\n'}

	if(myForm.cost.value==''){valid = false; msg = msg + 'Τιμή\n'}
	if(myForm.duration.value==''){valid = false; msg = msg + 'Διάρκεια\n'}
	
	if(myForm.start_date.value==''){valid = false; msg = msg + 'Διαθέσιμη από\n'}
	if(myForm.end_date.value==''){valid = false; msg = msg + 'Διαθέσιμη εώς\n'}
	

	//check textarea length
	if(myForm.short_descr.value.length>150){valid = false; msg = msg + 'Η σύντομη περιγραφή δεν μπορεί να είναι μεγαλύτερη από 150 χαρακτήρες!\n'}
	
	if(!isInteger(myForm.cost.value)){valid = false; msg = msg + 'Η τιμή δεν είναι έγκυρη!\n'}
	if(!isInteger(myForm.duration.value)){valid = false; msg = msg + 'Η διάρκεια δεν είναι έγκυρη!\n'}
	
	if(!valid){alert(msg)}
	
	return valid;
	} 

//------------------------------------------------------------------------------
var dimages=new Array();
var numImages=10;

for (i=0; i<numImages; i++)
{
  dimages[i]=new Image();
  dimages[i].src="images/image"+(i+1)+".jpg";
}
var curImage=-1;

function swapPicture()
{
  if (document.images)
  {
    var nextImage=curImage+1;
    if (nextImage>=numImages)
      nextImage=0;
    if (dimages[nextImage] && dimages[nextImage].complete)
    {
      var target=0;
      if (document.images.myImage)
        target=document.images.myImage;
      if (document.all && document.getElementById("myImage"))
        target=document.getElementById("myImage");
  
      // make sure target is valid.  It might not be valid
      //   if the page has not finished loading
      if (target)
      {
        target.src=dimages[nextImage].src;
        curImage=nextImage;
      }

      setTimeout("swapPicture()", 10000);

    }
    else
    {
      setTimeout("swapPicture()", 500);
    }
  }
}

setTimeout("swapPicture()", 10000);

//--------------------------------------------------------

function fillLocationsSimple(index) {

var dest_obj = document.getElementById('sloid');
//removeAllOptions(document.getElementById('destination'));
//if(index==0){
	//dest_obj.disabled = true;
	//dest_obj.options.length = 0;
//}
//else{
dest_obj.disabled = false;
dest_obj.options.length = 0;
//}
for(ii = dest_obj.options.length - 1; ii > 0; ii--)
  dest_obj.options[ii] = null;
for(jj = 0; jj < opt[index].length; jj++) {
  dest_obj.options[jj] = new Option(opt[index][jj].text, opt[index][jj].value)
}

}

//-----------------------------------------------------------------

function copyDepartureDates(from,to) {
	var options = new Object();
	for (var i=0; i<to.options.length; i++) {
		options[to.options[i].value] = to.options[i].text;
		}
	
		
				to.options[to.options.length] = new Option( from.value, from.value, false, false);
				
	
	if ((arguments.length<3) || (arguments[2]==true)) {
		sortSelect(to);
		}
	to.selectedIndex = -1;
	}
	
	//------------------------------------------------------------------
	
	function disableArea(flag){
		
		if(flag=='rep'){
			document.getElementById("rep_depart").disabled=true;
			document.getElementById("rep_add").disabled=true;
			document.getElementById("departure_date").disabled=false;
			document.getElementById("dates_add").disabled=false;
			document.getElementById("departures_area").innerHTML = '<select id="departures" name="departures" class="text" style="width:170px;" multiple="multiple" size="4"></select>'+
						'<input type="button" value="remove" onclick="removeSelectedOptions(document.getElementById(\'departures\'))">';	
			}
		if(flag=='dates'){
			document.getElementById("rep_depart").disabled=false;
			document.getElementById("rep_add").disabled=false;
			document.getElementById("departure_date").disabled=true;
			document.getElementById("dates_add").disabled=true;
			document.getElementById("departures_area").innerHTML = '<select id="rep_flag" name="rep_flag" class="text" style="width:170px;" multiple="multiple" size="4"></select>'+
						'<input type="button" value="remove" onclick="removeSelectedOptions(document.getElementById(\'rep_flag\'))">';	
			}
		}
		
//--------------------------------------------------------

function fillLocations(index) {
var dest_obj = document.getElementById('city');
removeAllOptions(document.getElementById('city'));
if(index==0){
	dest_obj.disabled = true;
	dest_obj.options.length = 0;
}
else{
dest_obj.disabled = false;
dest_obj.options.length = 0;
}
for(ii = dest_obj.options.length - 1; ii > 0; ii--)
  dest_obj.options[ii] = null;
for(jj = 0; jj < opt[index].length; jj++) {
  dest_obj.options[jj] = new Option(opt[index][jj].text, opt[index][jj].value)
}

}

//--------------------------------------------------------

function fillLocationsAdmin(index) {
var dest_obj = document.getElementById('selectedLocations');
if(index==0){
	dest_obj.disabled = true;
	dest_obj.options.length = 0;
}
else{
dest_obj.disabled = false;
dest_obj.options.length = 0;
}
for(ii = dest_obj.options.length - 1; ii > 0; ii--)
  dest_obj.options[ii] = null;
for(jj = 0; jj < opt[index].length; jj++) {
  dest_obj.options[jj] = new Option(opt[index][jj].text, opt[index][jj].value)
}

}

function open_window(URL) {
	alert('');
alert(URL);
window.open(URL, 'popup_win', 'SCROLLBARS=YES,WIDTH=800,HEIGHT=450,screenX=100,screenY=75,left=100,top=75');
}


function CreateBookmarkLink() {
	title = "PamePaketo.gr Ταξίδια - διακοπές";
	url = "http://www.pamepaketo.gr";

	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
	return true; }
}
