﻿// JScript File
var Website = new Admin();

//Event.observe(window, 'load', Website.startUp);

function Admin() {


    this.Warning = function(message) {
        this.lightsOff();
        $('alert_title').innerHTML = 'Warning';
        $('alert_message').innerHTML = message;
        Effect.Appear('alert', { from: 0, to: 1, duration: 0.2 });
    };

    this.Message = function(message) {
        this.lightsOff();
        $('alert_title').innerHTML = 'Information';
        $('alert_message').innerHTML = message;
        Effect.Appear('alert', { from: 0, to: 1, duration: 0.2 });
    };

    this.dismiss = function() {
        Effect.Fade('alert', { duration: 0.2 });
        this.lightsOn();
    };

    this.lightsOff = function() {
        Effect.Appear('blackout', { from: 0, to: 0.5, duration: 0.2 });
    };

    this.lightsOn = function() {
        Effect.Fade('blackout', { from: 0.5, to: 0, duration: 0.2 });
    };

    this.wait = function() {
        this.lightsOff();
        $('wait').show();
    };
};

//PAGING===================================================
var currentpage=1;

function ShowPage(page, totalpages)
{

    document.body.scrollIntoView(true);
    
    currentpage=page;
    
    for(var i=1; i<=totalpages; i++)
    {
        $('page_' + i).style.display='none';
    }
    
    $('page_' + page).style.display='';
    BuildPaging(totalpages);
}

function NextPage(totalpages)
{
    if(currentpage<totalpages)
    {
        currentpage++;
    }
    
    ShowPage(currentpage, totalpages);
    BuildPaging(totalpages);
}

function PreviousPage(totalpages)
{
    if(currentpage>1)
    {
        currentpage--;
    }
    
    ShowPage(currentpage, totalpages);
    BuildPaging(totalpages);
}
                
function BuildPaging(totalpages)
{
    var first=1;
    var last=totalpages;
    
    if(totalpages>5)
    {
        if(currentpage>3)
        {
            first=currentpage-2;            
        }
                
        last=currentpage+2;
        
        if(last>totalpages)
        {
            last=totalpages;
        }
        
        if(totalpages>5)
        {
            if(last<5)
            {
                last=5;
            }
        }
    }
    
    var s='page ';
    
    s += '<a href="javascript:ShowPage(1,' + totalpages + ');">..</a> ';
         
    for(var i=first; i<=last; i++)
    {
        if(i==currentpage)
        {
            s+= '<span class="bold">' + i + '</span>  ';
        }
        else
        {
            s+= '<a href="javascript:ShowPage(' + i + ',' + totalpages + ');">' + i + '</a> ';
        }
    }
        
    s += '<a href="javascript:ShowPage(' + totalpages + ',' + totalpages + ');">..</a> ';
        
    s += '&nbsp;&nbsp;&nbsp;';
    
    if(currentpage>1)
    {
        s += '<a href="javascript:PreviousPage(' + totalpages + ')">&lt; Previous</a>';
    }
    else
    {
        s += '&lt; Previous';
    }
    
    s += ' | ';
    
    if(currentpage<totalpages)
    {
        s += '<a href="javascript:NextPage(' + totalpages + ')">Next &gt;</a>';
    }
    else
    {
        s += 'Next &gt;';
    }
        
    $('pager').innerHTML=s;
}                
               

//================================================================
function getCal(m, y, ds, ms, ys, container, fn)
{
	var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	
	var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st
	
	var todaydate=new Date() //DD added
	
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	
	var t='<table cellpadding="0" cellspacing="1" border="0" class="calendar" cols="7"><tr>';
	
	var nm=m+1;
	var pm=m-1;
	var ny=y;
	var py=y;
	
	if(m==12) 
	{
		nm=1;
		pm=11;
		ny=y+1;
	}
	
	if(m==1) 
	{
		pm=12;	
		nm=2;
		py=y-1;
	}
	
	if(!fn)
	{
		fn='setDay';
	}
	
	t+='<td colspan="1" class="calhead">';
	t+='<a href="javascript: getCal(' + pm + ',' +  py + ',' +  ds + ',' +  ms + ',' +  ys + ' ,\'' + container + '\' ,\'' + fn + '\');"><img src="graphics/icons/resultset_previous.png" border="0"/></a>';
	t+='<td colspan="5" class="calhead">' + mn[m-1]+ '</td>';
	t+='<td colspan="1" class="calhead">';	
	t+='<a href="javascript: getCal(' + nm + ',' +  ny + ',' +  ds + ',' +  ms + ',' +  ys + ' ,\'' + container + '\' ,\'' + fn + '\');"><img src="graphics/icons/resultset_next.png" border="0"/></a>';	
	t+='</td></tr><tr>';
	
	t+='<td colspan="1" class="calhead">';
	t+='<a href="javascript: getCal(' + m + ',' +  (y-1) + ',' +  ds + ',' +  ms + ',' +  ys + ' ,\'' + container + '\' ,\'' + fn + '\');"><img src="graphics/icons/resultset_previous.png" border="0"/></a>';
	t+='<td colspan="5" class="calhead">' + y + '</td>';
	t+='<td colspan="1" class="calhead">';	
	t+='<a href="javascript: getCal(' + m + ',' +  (y+1) + ',' +  ds + ',' +  ms + ',' +  ys + ' ,\'' + container + '\' ,\'' + fn + '\');"><img src="graphics/icons/resultset_next.png" border="0"/></a>';	
	t+='</td></tr><tr>';
		
	for(s=0;s<7;s++)
	{
		t+='<td class="calhead">'+"SMTWTFS".substr(s,1)+'</td>';
	}
	
	t+='</tr><tr>';
	
	for(i=1;i<=42;i++)
	{
		if((i-oD.od>=0)&&(i-oD.od<dim[m-1]))
		{
			t+='<td class="';
			
			if((i-oD.od+1)==ds && m==ms && y==ys)
			{
				t+='calsel';
			}
			else
			{
				t+='calday';
			}
			
			t+='" onClick="' + fn + '(' + y + ',' + m + ',' + (i-oD.od+1) + ', \'' + container + '\' ,\'' + fn + '\');">';
			

			t+=(i-oD.od+1);


			t+='</td>';
		}
		else
		{
			t+='<td class="calday">&nbsp;</td>';
		}
		
		if(((i)%7==0)&&(i<36))
		{
			t+='</tr><tr>';
		}
	}
	
	t+='</tr></table>';
	
	$(container).innerHTML=t;
}

function setDay(y,m,d,c)
{
	getCal(m,y,d,m,y,c);
	if(document.getElementById(c + '_displaydate'))
	{
		document.getElementById(c + '_displaydate').value=(d+'/'+m+'/'+y);
		document.getElementById(c).style.display='none';
	}
	
	document.getElementById(c + '_selecteddate').value=(y+'-'+m+'-'+d);
}


function wait(title, message)
{
     Website.lightsOff();
    title = title || 'Searching';
    message = message || 'Please wait a moment whilst we search for holidays that match your requirements.';
        
    document.body.scrollIntoView(true);
   
    
    $('layout_wait_title').innerHTML=title;
    $('layout_wait_message').innerHTML=message;

   // $('layout_menu').hide();
  //  $('layout_content').hide();    
   // $('layout_foot').hide();
    $('layout_wait').show();
    
    return true;
}

function show(elementid)
{
    $(elementid).style.display='';
}

function hide(elementid)
{
    $(elementid).style.display='none';
}

function RestrictInput(evt)
{	
	var charCode = (evt.which) ? evt.which : window.event.keyCode;

	if (charCode <= 13)
	{
		return true;
	}
	else
	{
		var keyChar = String.fromCharCode(charCode);
		var re = /[\sa-zA-Z0-9.,_@'-]/;
		return re.test(keyChar);			
	}	
}

var SelectedCacheID='';

function AddToBasket(CacheID, Adults, Children, Infants, What)
{
    if(CacheID.length>0)
    {
        wait('Adding','Please wait while we add your ' + What + ' to your basket');    
    
        document.location.href='/AddToBasket.aspx?CacheID=' + CacheID + '&Adults=' + Adults + '&Children=' + Children + '&Infants=' + Infants;
    }
}

function RemoveFromBasket(CacheID, What)
{
    if(CacheID.length>0)
    {
        if(confirm('Remove ' + What + '.\nAre You Sure?'))
        {
            wait('Removing','Please wait while we remove your ' + What + ' from the basket');    

            document.location.href='/RemoveFromBasket.aspx?CacheID=' + CacheID;
        }
    }
}

function FitToContent(iframe)
{
    if(!window.opera && !document.mimeType && document.all && document.getElementById)
    {
        iframe.style.height=this.document.body.offsetHeight+"px";
    }
    else if(document.getElementById) 
    {
        iframe.style.height=this.document.body.scrollHeight+"px"
    }
} 

function EnterPrint()
{
    if($('layout_upper'))
    {
        hide('layout_upper');
    }
    
    if($('layout_head'))
    {
        hide('layout_head');
    }
    
    if($('layout_trail'))
    {    
        hide('layout_trail');
    }
    
    if($('layout_menu2'))
    {    
        hide('layout_menu2');
    }    
    
    hide('layout_menu');        
    hide('layout_foot');
    show('layout_print');
    
    window.print();            
}

function ExitPrint()
{
    if($('layout_upper'))
    {
        show('layout_upper');
    }
    
    if($('layout_head'))
    {
        show('layout_head');
    }
    
    if($('layout_trail'))
    {    
        show('layout_trail');
    }
    
    if($('layout_menu2'))
    {    
        show('layout_menu2');
    }    
    
    show('layout_menu');        
    show('layout_foot');
    hide('layout_print');        
}
    
    
function warning(m)
{
    document.body.scrollIntoView(true);
    show('blackout');
    show('warning');
    $('warningtext').innerHTML=m;
}

function message(m)
{
    document.body.scrollIntoView(true);
    show('blackout');
    show('message');
    $('messagetext').innerHTML=m;
}    