//travel planner ajax functions
function selTravelOption(obj, page, loadContent){
	var travelOptions = document.getElementById('travelOptions');
	var imgSrc = obj.src;
	var urlString = '';
		
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    document.getElementById('travelOptions').innerHTML = '<img src="http://www.laketahoehotelswebsite.com/images/loadingAnimation.gif" border="0" class="travelPlannerLoader">';
	
    //loop through a reset the travel planner tabs
    var d = document.getElementsByTagName('*');
    for(var i = 0; i < d.length; i++){
    	if( d[i].id.indexOf('travelOptions_') != -1 ){
        	if( obj.id == d[i].id )
            	d[i].parentNode.className = 'bkbut_on';
            else
            	d[i].parentNode.className = 'bkbut_off';
        }        	
    }
    
    travelOptions.innerHTML = '<img src="http://www.laketahoehotelswebsite.com/images/loadingAnimation.gif" border="0" class="travelPlannerLoader">';
    
	var fnWhenDone = function (oXML) 
    { 
    	travelOptions.innerHTML = oXML.responseText; 
        if( document.getElementById('travelPlanner') && loadContent ) selTravelPage(document.getElementById('travelPlanner_hotel'), 'inc.travel_hotels.php'); 

		if( document.getElementById('checkIn') ) xmlCalendar('checkIn', 'checkInChild', getCalendar);
		if( document.getElementById('checkOut') ) xmlCalendar('checkOut', 'checkOutChild', getCalendar);
    };
	
	myConn.connect('http://www.laketahoehotelswebsite.com/_pages/'+page, "GET", urlString, fnWhenDone);
}

function selTravelPage(obj, page)
{
	var travelPlanner = document.getElementById('travelPlanner');
	var imgSrc = obj.src;
	var urlString = '';
		
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
    
    //loop through a reset the travel planner tabs
    var d = document.getElementsByTagName('*');
    for(var i = 0; i < d.length; i++){
    	if( d[i].id.indexOf('travelPlanner_') != -1 ){
        	if( obj.id == d[i].id )
            	d[i].src = 'http://www.laketahoehotelswebsite.com/images/' + d[i].getAttribute('imgOn');
            else
            	d[i].src = 'http://www.laketahoehotelswebsite.com/images/' + d[i].getAttribute('imgOff');
        }        	
    }
    
    travelPlanner.innerHTML = '<img src="http://www.laketahoehotelswebsite.com/images/loadingAnimation.gif" border="0" class="travelPlannerLoader">';
    
	var fnWhenDone = function (oXML) 
    { 
    	travelPlanner.innerHTML = oXML.responseText; 
    
        if( document.getElementById('checkIn') ) xmlCalendar('checkIn', 'checkInChild', getCalendar);
		if( document.getElementById('checkOut') ) xmlCalendar('checkOut', 'checkOutChild', getCalendar);
   	};
	
	myConn.connect('http://www.laketahoehotelswebsite.com/_pages/'+page, "GET", urlString, fnWhenDone);
}

var timeOut;

//calendar functions
function xmlCalendar(parent, child, callFunct){
	var p = document.getElementById(parent);
	var c = document.getElementById(child);

	if (typeof c.onmouseleave != 'undefined'){ //IE
		p.parentId      = p.id;
		p.childId       = c.id;
        p.callFunction	= callFunct;
        
		c.parentId      = p.id;
		c.childId       = c.id;
        c.callFunction	= callFunct;
		
        p.onclick 		= showCalendar;
        //p.onblur		= hideCalendar;
        p.onmouseleave	= hideCalendar;
        //c.onclick      = setDate;
        c.onmouseenter  = showCalendar;
		c.onmouseleave  = hideCalendar;
	}else{ //NON-IE
		p.parentId      = p.id;
		p.childId       = c.id;
        p.callFunction	= callFunct;
        
		c.parentId      = p.id;
		c.childId       = c.id;
        c.callFunction	= callFunct;
        
        p.onclick 		= showCalendar;
       	//p.onblur		= hideCalendar;
        p.onmouseout  	= hideCalendar;
        //c.onclick       = setDate;
        c.onmouseover  	= showCalendar;
		c.onmouseout  	= hideCalendar;
	}
}

function showCalendar(ev){
	var e = ev || event;
	var el = e.target || e.srcElement;
	var rel = e.relatedTarget || e.fromElement;

	if( el.childId )
		var p = el;  
    else
    	var p = el.parentNode
    
	if( p.childId ){      
		if( document.getElementById(p.childId).style.display == 'none' && this.callFunction ) this.callFunction(p.parentId, p.childId, p.thisDate);

		aLayer(p.parentId, p.childId);
		
        // check if other calendar is open, if so close it
        if( p.childId.indexOf('In') != -1 ){
        	document.getElementById('checkOutChild').innerHTML = '';
        	document.getElementById('checkOutChild').style.display = 'none';
        }else if( p.childId.indexOf('Out') != -1 ){
        	document.getElementById('checkInChild').innerHTML = '';
        	document.getElementById('checkInChild').style.display = 'none';
        }
        
		document.getElementById(p.childId).style.display = '';
		window.clearTimeout(timeOut);
	}
}

function getCalendar( parentId, childId, thisDate ){
	var p = document.getElementById(parentId);
    var c = document.getElementById(childId);
    var i = document.getElementById(parentId+'Date');    
    var d = (thisDate != undefined ? thisDate : i.value);
    
	var urlString = 'parentId='+parentId+'&childId='+childId+'&date='+d;
		
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
	
	var fnWhenDone = function (oXML) { 		
		c.innerHTML = oXML.responseText;
	};
	
	myConn.connect("http://www.laketahoehotelswebsite.com/includes/xml.calendar.php", "GET", urlString, fnWhenDone);
}

function hideCalendar(ev){
	var e = ev || event;
	var el = e.target || e.srcElement;
	var rel = e.relatedTarget || e.fromElement;

	if( el.childId ){
        var closeLayer = function(){ 
        	var p = document.getElementById(el.parentId);
            var c = document.getElementById(el.childId);
            	c.style.display = 'none'; 
                c.innerHTML = '';
            
            //p.onblur = hLayer;
            //p.blur();
             
            return; 
        };
        
        var p = document.getElementById(el.parentId);
        if( p.value == '' && p.getAttribute('defaultValue'))
        	p.value = p.getAttribute("defaultValue");
            
        timeOut = window.setTimeout(closeLayer , 1000);
	}
}

function setDate(obj, thisDate){
	var p = obj.getAttribute('parentId');
    	pI = document.getElementById(p+'Date');
	    pI.value = thisDate;
    
    var c = document.getElementById( obj.getAttribute('childId') )
      	c.style.display = 'none';
        c.innerHTML = '';
}

function aLayer(parent, child){
	var p = document.getElementById(parent);
	var c = document.getElementById(child);
	
	var top  = p.offsetHeight;
	var left = 0;
	
	for (; p; p = p.offsetParent){
		top  += p.offsetTop;
		left += p.offsetLeft;
	}
	
	c.style.position   = 'absolute';
	c.style.top        = top + 'px';
	c.style.left       = left + 'px';
}
 
function sLayer(ev){
	var e = ev || event;
	var el = e.target || e.srcElement;
	var rel = e.relatedTarget || e.fromElement;

	if( el.childId ){      
        if( (document.getElementById(el.parentId).value == document.getElementById(el.parentId).getAttribute("defaultValue")) && document.getElementById(el.parentId).getAttribute("defaultValue") )
        	document.getElementById(el.parentId).value = '';
        
		if( (document.getElementById(el.childId).style.display == 'none' || e.type == 'keyup') && this.callFunction ) this.callFunction(el.parentId, el.childId, 1);      

		aLayer(el.parentId, el.childId);
		
		document.getElementById(el.childId).style.display = '';
		window.clearTimeout(timeOut);
	}
}
 
function hLayer(ev){
	var e = ev || event;
	var el = e.target || e.srcElement;
	var rel = e.relatedTarget || e.fromElement;

	//alert(el.id+' - '+el.childId);

	if( el.childId && el.id == el.childId ){
        var closeLayer = function(){ 
            var c = document.getElementById(el.childId);
            
            for(var i = 0; i < c.childNodes.length;){
            	if( c.childNodes[i] )
            		c.removeChild(c.childNodes[i]);
            }
            
            document.getElementById(el.childId).style.display = 'none'; 
            
            document.getElementById(el.parentId).onblur = hLayer;
            document.getElementById(el.parentId).blur();
             
            return; 
        };
        
        //if( document.getElementById(el.parentId).value == '' && document.getElementById(el.parentId).getAttribute('defaultValue'))
        	//document.getElementById(el.parentId).value = document.getElementById(el.parentId).getAttribute("defaultValue");
            
        timeOut = window.setTimeout(closeLayer , 1000);
	}
}  

if(window.attachEvent)
{
    window.attachEvent("onload",function(){
	selTravelOption(document.getElementById('travelOptions_travel'), 'inc.travel_options.php', 1);
    });
}
else
{
    window.addEventListener("load", function(){ 
	selTravelOption(document.getElementById('travelOptions_travel'), 'inc.travel_options.php', 1);
    },false);
}