var agent = navigator.userAgent.toLowerCase()
var is_ns  = ((agent.indexOf('mozilla') != -1) && (agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1)
                && (agent.indexOf('opera') == -1) && (agent.indexOf('webtv') == -1) && (agent.indexOf('hotjava') == -1))
var is_ie = ((agent.indexOf("msie") != -1) && (agent.indexOf("opera") == -1))
var is_opera = (agent.indexOf("opera") != -1);
var is_gecko = (agent.indexOf('gecko') != -1);

//IMAGES
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_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_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

function areYouSure() {
    if (confirm("Are You Sure?"))
        return true;
    return false;
}



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];}
   }

function MM_nbGroup(event, grpName) { //v3.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    if ((nbArr = document[grpName]) != null)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = args[i+1];
      nbArr[nbArr.length] = img;
  } }
}   

//POPUP WINDOWS
function MM_openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}


//ADD TO FAVOURITES
function AddToFaves_hp(){
    var is_4up = parseInt(navigator.appVersion);
    var is_mac   = navigator.userAgent.toLowerCase().indexOf("mac")!=-1;
    var is_ie   = navigator.userAgent.toLowerCase().indexOf("msie")!=-1;
    var thePage = location.href;
    if (thePage.lastIndexOf('#')!=-1)
        thePage = thePage.substring(0,thePage.lastIndexOf('#'));
    if (is_ie && is_4up && !is_mac) 
        window.external.AddFavorite(thePage,document.title);
    else if (is_ie || document.images)
        booker_hp = window.open(thePage,'booker_','menubar,width=325,height=100,left=140,top=60');
    //booker_hp.focus();
    }                                       
                                                        

//************************************************
function email_is_valid(_email) {
    email_re1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(\.$)/
    email_re2 = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
    if (_email == "" || email_re1.exec(_email) || !email_re2.exec(_email))
        return false
    return true
}
//************************************************
function donothing()
{
// do nothing
}
//************************************************
function region(CIDJ,RIDJ)
{
    optionDelete(RIDJ,0)
	var country =CIDJ.options[CIDJ.selectedIndex].value
    // optionAdd(RIDJ,"Please Select","Please Select")
    for (var i=0; i<regionlist.length ; i=i+3)
     {
      if (country==regionlist[i])
       {
        var optioni = new Option(regionlist[i+1],regionlist[i+2])
        optionAdd(RIDJ,regionlist[i+2],regionlist[i+1])
   	}
     }
}
function regionT(CIDJ,RIDJ,country)
{   optionDelete(RIDJ,0)
    for (var i=0; i<regionlist.length ; i=i+3)
     {
      if (country==regionlist[i])
       {
        var optioni = new Option(regionlist[i+1],regionlist[i+2])
        optionAdd(RIDJ,regionlist[i+2],regionlist[i+1])
   	   }
     }
}
//************************************************

function optionAdd(_objSelect,_text,_value) {
    if (is_ie) {
        var _objOption = document.createElement("OPTION");
        _objOption.text = _text;
        _objOption.value = _value;
        _objSelect.add(_objOption);
    }else if (is_ns || is_opera) {
        var _nextOption = _objSelect.options.length;
        _objOption = new Option(_text,_value);
        _objSelect.options[_nextOption] = _objOption
    }
}
function optionInsert(_objSelect,_text,_value,_position) {
    _itemsTextsBackup = new Array()
    _itemsValuesBackup = new Array()
    for (i=_position;i<_objSelect.length;i++) {
        _itemsTextsBackup.push(_objSelect[i].text)
        _itemsValuesBackup.push(_objSelect[i].value)
    }

    optionDelete(_objSelect,_position)
    optionAdd(_objSelect,_text,_value)

    for (i=0;i<_itemsValuesBackup.length;i++)
        optionAdd(_objSelect,_itemsTextsBackup[i],_itemsValuesBackup[i])
}

function optionDelete(_objSelect,_start,_length) {
    if (_start == null || _start < 0)
        _start = 0;
    if (_length == null || _length < 0 || _length == 0)
        _elements = _objSelect.length;
    else
        _elements = (_length > (_objSelect.length - _start))?_objSelect.length - _start:_start + _length;
    for (i=_start;i<_elements;i++)
        _objSelect.options[_start] = null;
}

function optionSelect(_objSelect,_index) {
    _index = (_index == null || _index >= _objSelect.length)?0:_index;
    if (is_ie || is_opera)
        _objSelect.selectedIndex = _index
    if (is_ns)
        _objSelect.options[_index].selected = true
}
function optionSelectValue(_objSelect,_value) {
	_elements = _objSelect.length
    for (i=0;i<_elements;i++)
	 {
	  if (_objSelect.options[i].value == _value)
	   {
	    _objSelect.options[i].selected = true
		return
	   }
	 }
}
//************************************************
function MultiOptionDetecter(_objSelect) {
	if (_objSelect == null) return false;
	for (var i = 0; i < _objSelect.options.length; i++)
		if (_objSelect.options[i].selected)
		  return true;
	return false;	
}
//************************************************
function fillDates() {
    objEl = document.application
	today = new Date();
	fillDate(myform.BYear,myform.BMonth,myform.BDate,today.getFullYear(),today.getMonth(),today.getDate())
}

function fillDate(_objSelectYear,_objSelectMonth,_objSelectDate,_year,_month,_date,_afterpost) {
    today = new Date();
    if (_year == null || _month == null || _date == null) {
        today_year = today.getFullYear()
        today_month = today.getMonth()
        today_date = today.getDate()
    }else{
        today_year = _year
        today_month = _month
        today_date = _date
    }
    months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

    objSelect = _objSelectYear;
    optionDelete(objSelect,1)
    count = 1
    defaultIndex = 0
    if(_afterpost==-1)
	 {
	  p1=today.getFullYear()-80;
	  p2=today.getFullYear();
	 }
    if(_afterpost==1)
	 {
	  p1=today.getFullYear();
	  p2=today.getFullYear()+6;
	 }
    if(_afterpost==null || _afterpost==0)
	 {
	  p1=today.getFullYear()-80;
	  p2=today.getFullYear()+6;
	 }
	 
	for (i=p1;i<=p2;i++) {
        optionAdd(objSelect,i,i)
        if (i == today_year)
            defaultIndex = count
        count++;
    }

    optionSelect(objSelect,defaultIndex)

    objSelect = _objSelectMonth;
    optionDelete(objSelect,1)
    defaultIndex = 0
    for (i=0;i<=11;i++) {
        optionAdd(objSelect,months[i],i+1)
        if (i == today_month)
            defaultIndex = i + 1
    }
    optionSelect(objSelect,defaultIndex)

    objSelect = _objSelectDate;
    optionDelete(objSelect,1)
    defaultIndex = 0
    for (i=1;i<=(31);i++) {
        test_date = new Date(today_year,today_month,i)
        if (i == test_date.getDate())
            optionAdd(objSelect,i,i)
        if (i == today_date)
            defaultIndex = i
    }
    optionSelect(objSelect,defaultIndex)
}

function fixDate(_year,_month,_date) {
    date_year = _year[_year.selectedIndex].value
    date_month = _month[_month.selectedIndex].value-1
    date_date = _date[_date.selectedIndex].value
    
    objSelect = _date;
    optionDelete(objSelect,1)

    defaultIndex = 0
    for (i=1;i<=31;i++) {
        test_date = new Date(date_year,date_month,i)
        if (i == test_date.getDate())
            optionAdd(objSelect,i,i)
        if (i == date_date)
            defaultIndex = i
    }
    optionSelect(objSelect,defaultIndex)
}

function betweenData(date1,date2,accuracy){
	// return  1  if date1 < date2
	// return  0  if date1 = date2
	// return  -1 if date1 > date2
	if(accuracy == null)
		accuracy=''
	if(date1.getFullYear() < date2.getFullYear())
		return  1
	if(date1.getFullYear() > date2.getFullYear())
		return  -1
	if(accuracy == 'Year')
		return 0
	if(date1.getMonth() < date2.getMonth())
		return  1
	if(date1.getMonth() > date2.getMonth())
		return  -1
	if(accuracy == 'Month')
		return 0
	if(date1.getDate() < date2.getDate())
		return  1
	if(date1.getDate() > date2.getDate())
		return  -1
	if(accuracy == 'Date')
		return 0
	if(date1.getHours() < date2.getHours())
		return  1
	if(date1.getHours() > date2.getHours())
		return  -1
	if(accuracy == 'Hours')
		return 0
	if(date1.getMinutes() < date2.getMinutes())
		return  1
	if(date1.getMinutes() > date2.getMinutes())
		return  -1
	if(accuracy == 'Minutes')
		return 0
	if(date1.getSeconds() < date2.getSeconds())
		return  1
	if(date1.getSeconds() > date2.getSeconds())
		return  -1
	if(accuracy == 'Seconds')
		return 0
	if(date1.getMilliseconds() < date2.getMilliseconds())
		return  1
	if(date1.getMilliseconds() > date2.getMilliseconds())
		return  -1
    return 0
}
//************************************************
// alert( readCookie("myCookie") );
function readCookie(name) {
	var cookieValue = "";
	var search = name + "=";
	if(document.cookie.length > 0) { 
		offset = document.cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = document.cookie.indexOf(";", offset);
			if (end == -1) end = document.cookie.length;
			cookieValue = unescape(document.cookie.substring(offset, end))
		}
	}
	return cookieValue;
}
// writeCookie("myCookie", "my name", 24);
// Stores the string "my name" in the cookie "myCookie" which expires after 24 hours.
function writeCookie(name, value, hours) {
	var expire = "";
	if(hours != null) {
		expire = new Date((new Date()).getTime() + hours * 3600000);
		expire = "; expires=" + expire.toGMTString();
	}
	document.cookie = name + "=" + escape(value) + expire;
}
//************************************************
function oes_newsletter() {
	if (readCookie('Oes_Cookie_Newsletter') == '')
		open('oes_newsletter.php', 'oes_newsletter', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=210');
}
//************************************************
function AllChecked( bCheck,_obj) {
	var len = _obj.elements.length;
	for( var i=0; i < len; i++ ) {
		var chbox = _obj.elements[i];
		if( chbox.type == "checkbox" )
			chbox.checked = bCheck;
	}
}
//************************************************
function setStatusText(szText) {
	window.status = szText;
	return true;
}
function clearStatusText() {
	window.status = '';
	return true;
}