var is_ie = document.all? true: false

function openDialog(url, modal, width, height, features) {
  top.DialogResult = null;
  if (!features) {
		features = ''
	}
	if (false) {
		var nWidth = width + 6
		var nHeight = height + 25
		var params = 'dialogWidth:'+nWidth+'px;dialogHeight:'+ nHeight + 'px;help:no;'
		features = features.replace(/\,/gi, ';')
		features = features.replace(/\=/gi, ':')
		features = features.replace(/scrollbars/gi, 'scroll')
		features = features.replace(/left/gi, 'dialogLeft')
		features = features.replace(/top/gi, 'dialogTop')
		features = features.replace(/width/gi, 'dialogWidth')
		features = features.replace(/height/gi, 'dialogHeight')
		if ((features.search('scroll')) == -1) {
			params += "scroll:no;"
		}
		if (features.search('status') == -1) {
			params += "status:no;"
		} 
		params += features
		if (modal == 'modeless') {
			var win = window.showModelessDialog(url, window, params)
		} else {
			var win = window.showModalDialog(url, window, params)
		}
	} else {
		var name = url.split('?');
		var params = ''
		if (features.search('left') == -1) {
			params = "left="+((screen.width/2)-(width/2))+","
		}
		if (features.search('top') == -1) {
			params += "top="+((screen.height/2)-(height/2))+","
		}
		if (modal == 'modeless') {
			var win = window.open(url, window, "dependent=yes,width="+width+"px,height="+height+"px,"+features+","+params)
		} else {
			var win = window.open(url, window, "modal=yes,width="+width+"px,height="+height+"px,"+features+","+params)
		}
		win.parent = window;
	}
	return win
}

function OnMouseOverClass(obj, classname) {
  obj.className = classname;
}

function FindObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function IsNumeric(sText) {
  var ValidChars = "0123456789 +/x";
  var IsNumber=true;
  var Char;
 
  for (i = 0; i < sText.length && IsNumber == true; i++) 
  { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) 
    {
      IsNumber = false;
    }
  }
  return IsNumber; 
}

function IsNumericCell(sText) {
  var ValidChars = "0123456789";
  var IsNumber=true;
  var Char;
 
  for (i = 0; i < sText.length && IsNumber == true; i++) 
  { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) 
    {
      IsNumber = false;
    }
  }
  return IsNumber; 
}

function IsNumericCurrency(sText) {
  var ValidChars = "0123456789.";
  var IsNumber=true;
  var Char;
 
  for (i = 0; i < sText.length && IsNumber == true; i++) 
  { 
    Char = sText.charAt(i); 
    if (ValidChars.indexOf(Char) == -1) 
    {
      IsNumber = false;
    }
  }
  return IsNumber; 
}

function NotNumericOrBlank(obj, oname ) {
  if( ! IsNumeric( obj.value ) && obj.value != '' ) 
  {
	alert( oname + ' must be numeric or blank.' );
	obj.focus();
    return true;
  }
  return false;
}


function NotNumeric(obj, oname) {
  if(  obj.value == '' || ! IsNumeric( obj.value ) ) 
  {
	alert( oname + ' must be a number or one of the following valid characters: space, +, /, x' );
	obj.focus();
    return true;
  }
  return false;
}

function NotNumericCell(obj, oname) {
  if(  obj.value == '' || ! IsNumericCell( obj.value ) ) 
  {
	alert( oname + ' must be a number with no spaces.' );
	obj.focus();
    return true;
  }
  return false;
}

function NotNumericCurrency(obj, oname) {
  if(  obj.value == '' || ! IsNumericCurrency( obj.value ) ) 
  {
	alert( oname + ' must be a number or one of the following valid characters: space OR .'  );
	obj.focus();
    return true;
  }
  return false;
}

function Blank(obj, oname) {
  if(  obj.value == '' ) 
  {
	alert( oname + ' must be filled.' );
	obj.focus();
    return true;
  }
  return false;
}

function BlankCheckBox(obj, oname) {
  if(  obj.checked == false ) 
  {
	alert( 'Please confirm that you have read our Terms and Conditions and Privacy Policy before proceeding.' );
	obj.focus();
    return true;
  }
  return false;
}

function BlankCountry(obj, oname) {
  if(  obj.value == 2 || obj.value == 4 ) 
  {
	alert( oname + ' must be filled.' );
	obj.focus();
    return true;
  }
  return false;
}

function BlankCounty(obj, oname) {
  if(  obj.value == 1) 
  {
	alert( oname + ' must be filled.' );
	obj.focus();
    return true;
  }
  return false;
}

function BlankSelect(obj, oname) {
  if(  obj.value == 1 ) 
  {
	alert( oname + ' must be filled.' );
	obj.focus();
    return true;
  }
  return false;
}

function isEmail(sText) {
   var strField = sText;
   var i;

   i = strField.indexOf("@");
   j = strField.lastIndexOf(".");
   if(i < 1) return(false);
   if(j < i + 2 || j == strField.length - 1)
      return(false);
   return(true);
}

function checkMail(obj)
{
	var x = obj.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) 
	{
		return false;
	}
	else 
	{
		alert( 'The email address you entered is not a valid email address.' );
		obj.focus();
    	return true;
	}
}


function CheckCell(obj, oname) {

  var str = obj.toString();
  var whitespace = new RegExp("\\s","g");
  var newstring = str.replace(whitespace,"");
  var len = newstring.length;

  if(  obj.value == '' || ! IsNumeric( obj.value )) 
  {
	alert( oname + ' must be a number.' );
	obj.focus();
    return true;
  }
  return false;
}

function CheckAge(obj, oname) {

	var dob = document.trip.DateOfBirth.value;
	var today = new Date().getDate() + "/" + (new Date().getMonth() + 1) + "/" + new Date().getFullYear();
	
	d1 = dob.split('/');
	d2 = today.split('/');
	tdate1 = new Date(d1[2],d1[1],d1[0],0,0,0);
	tdate2 = new Date(d2[2],d2[1],d2[0],0,0,0);
	tdateMS1 = tdate1.getTime();
	tdateMS2 = tdate2.getTime();
	diff = (tdateMS1 < tdateMS2) ? tdateMS2 - tdateMS1 : tdateMS1 - tdateMS2;
	var difference = (diff/(1000*60*60));
	
	if (difference < 148920)
	{
		alert( 'We can only sell packages to people older than 17 years old.' );
		obj.focus();
		return true;
	}
}

function CheckArrival(obj, oname) {
     var theForm = obj.form;
     var arrival = theForm.ArrivalDate.value; //arrival date
     var today = new Date();
     today.setHours(0,0,0,0);

     var d1 = arrival.split('/');
     tdate1 = new Date(d1[2],d1[1]-1,d1[0]);
     tdateMS1 = tdate1.getTime();
     tdateMS2 = today.getTime();
     diff = tdateMS1 - tdateMS2;
     var difference = (diff/(1000*60*60));
     //alert(difference);
     if (difference < 48){
          alert( 'We cannot sell packages within 48 hours of Arrival in the UK.' );
          obj.focus();
          return true;
     }
}


function timeFormat(field) {
    field.value = field.value.replace(/[^0-9]/g, '');
    field.value = field.value.substring(0, field.value.length - 2) + ":" + field.value.substring(field.value.length - 2);
}

function cellFormat(field) {
    field.value = field.value.replace(/[^0-9]/g, '');
}

function noteFormat(field) {
    field.value = field.value.replace(/\'/g, '');
}

function emailFormat(field) {
	if (field.value.length == 0) {
		var Name = document.trip.FirstName.value.replace(/\s+/g, "");
		var Surname = document.trip.LastName.value.replace(/\s+/g, "");
		var Fullname = Name + '.' + Surname;
		field.value = Fullname;
	}
} 

function defaultCountry(field) {
	if (field.value.length == 0) {
		var Country = document.trip.BirthCountry.value;
		field.value = Country;
	}
} 

function emailSpace(field) {
    field.value = field.value.replace(/\s+/g, "");
}

function passwordLength(obj, oname) {
  
  var str = obj.value;
  var len = str.length;
  if( len < 8 ) 
  {
	alert( oname + ' must be at least 8 characters long.' );
	obj.focus();
    return true;
  }
  return false;
}

function maxLength(obj, oname, varlen) {
  
  var str = obj.value;
  var len = str.length;
  var intvalue = parseInt(varlen);
  
  if( len > intvalue ) 
  {
	alert( oname + ' must be less than ' + intvalue + ' characters long.' );
	obj.focus();
    return true;
  }
  return false;
}

function minLength(obj, oname, varlen) {
  
  var str = obj.value;
  var len = str.length;
  var intvalue = parseInt(varlen);
  
  if( len < intvalue ) 
  {
	alert( oname + ' must be more than ' + intvalue + ' characters long.' );
	obj.focus();
    return true;
  }
  return false;
}

function hasNumbers(t)
{
  return /\d/.test(t);
}

function checkPassword(obj, oname) {

  var strng = obj.value;

  if ( ! hasNumbers(strng) ) 
  {
	alert( oname + ' must contain at least one (1) number.' );
	obj.focus();
    	return true;
  }
  return false;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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 MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}







