

function mapWindow(url) {

	var height = 450;
	var width = 950;
	if(screen.width == 800) {
		width = 800;
	}
	//var launch = "menubar=no,resizable=yes,scrollbars=yes,status=no,titlebar=no,height=" + height + ",width=" + width;
	
	var launch = "menubar=yes,resizable=yes,scrollbars=yes,status=no,titlebar=no,height=" + height + ",width=" + width;
	
    	var mapWin = window.open(url, 'mapPopup', launch);
    	if (window.focus) { mapWin.focus() }
}

function partner(url,linkCode) {
 	var newWin = window.open(url + "&linkCode=" + linkCode,"mywindow","toolbar=1,resizable=1,menubar=1,titlebar=1,location=1,status=1,scrollbars=1,width=790,height=400");
 	if (window.focus) newWin.focus();
}

function popup(url) {
 	popupWithNewWindow(url,"defaultwindow");
}
function popupWithNewWindow(url, whichWindow) {
 	popupWithNewWindowAndAttrs(url, whichWindow, "toolbar=1,resizable=1,menubar=1,titlebar=1,location=1,status=1,scrollbars=1,width=790,height=400");
}

function popupWithNewWindowAndAttrs(url, whichWindow, attrs) {
 	var newWin = window.open(url, whichWindow, attrs);
 	if (window.focus) newWin.focus();
}

function popupMaximized(url) {
 	var newWin = window.open(url,"mywindow","toolbar=1,resizable=1,menubar=1,titlebar=1,location=1,status=1,scrollbars=1");
 	if (window.focus) {
 		newWin.focus();
		newWin.resizeTo (screen.availWidth, screen.availHeight);
		newWin.moveTo (0, 0) 		
	}
}

function doHideShow(objectToHideId, objectToShowId) {
	hide(objectToHideId);
	show(objectToShowId);
    return true;
}

function changeVisibility(objId, state) {
    var object = document.getElementById(objId);
    if (object) {
	    object.style.display = state;
    }
}

function hide(objectToHideId) {
	changeVisibility(objectToHideId, "none");
	return true;
}

function show(objectToShowId) {
	changeVisibility(objectToShowId, "block");
	return true;
}

function countSelected(frm) {

	try {

		var selectCount = 0;

		for(i=0;i<frm.elements.length;i++) {

			var elem = frm.elements[i];
			if(elem.type == 'checkbox' && elem.checked)	 
				selectCount++;		

		}

      return selectCount;

	} catch(e) {
		return true;
	}


}

function checkBucketAndRebuild(size){

	var object = document.getElementById("bucketSize");
    
	var size = object.innerHTML;
	
	
	if(size == 0){
		var bucketWarning = document.getElementById('bucketWarning');
		if (bucketWarning)  {
			bucketWarning.innerHTML="Please add at least one item to your trip";
			bucketWarning.style.display = "block";
			bucketWarning.style.backgroundColor="yellow";
			bucketWarning.style.fontWeight="bold";
		}
		
	}
		
	if(size > 50){
		var bucketWarning = document.getElementById('bucketWarning');
		if (bucketWarning)  {
			bucketWarning.innerHTML="You cannot have more than 50 items in your Trip";
			bucketWarning.style.display = "block";
			bucketWarning.style.backgroundColor="yellow";
			bucketWarning.style.fontWeight="bold";
		}
	}
	if(size >0 && size < 50){
	
		document.location.href ="/nextBrowseSitesAction.ha";

		
	}
}


function checkBucketAndEdit(size){

	var object = document.getElementById("bucketSize");
    
	var size = object.innerHTML;
	
	
	if(size == 0){
		var bucketWarning = document.getElementById('bucketWarning');
		if (bucketWarning)  {
			bucketWarning.innerHTML="Please add at least one item to your trip";
			bucketWarning.style.display = "block";
			bucketWarning.style.backgroundColor="yellow";
			bucketWarning.style.fontWeight="bold";
		}
		
	}
		
	if(size > 50){
		var bucketWarning = document.getElementById('bucketWarning');
		if (bucketWarning)  {
			bucketWarning.innerHTML="You cannot have more than 50 items in your Trip";
			bucketWarning.style.display = "block";
			bucketWarning.style.backgroundColor="yellow";
			bucketWarning.style.fontWeight="bold";
		}
	}
	if(size >0 && size < 50){
	
		document.location.href ="/editSuggestedItinerary.ha";

		
	}
}

function checkBucketAndGoToTripHomePage(size){

	var object = document.getElementById("bucketSize");
    
	var size = object.innerHTML;
	
	
	if(size == 0){
		var bucketWarning = document.getElementById('bucketWarning');
		if (bucketWarning)  {
			bucketWarning.innerHTML="Please add at least one item to your trip";
			bucketWarning.style.display = "block";
			bucketWarning.style.backgroundColor="yellow";
			bucketWarning.style.fontWeight="bold";
		}
		
	}
		
	if(size > 50){
		var bucketWarning = document.getElementById('bucketWarning');
		if (bucketWarning)  {
			bucketWarning.innerHTML="You cannot have more than 50 items in your Trip";
			bucketWarning.style.display = "block";
			bucketWarning.style.backgroundColor="yellow";
			bucketWarning.style.fontWeight="bold";
		}
	}
	if(size >0 && size < 50){
	
		document.location.href ="/guide/index.ha";

		
	}
}



function checkForSelection(frm) {

	var selectCount = countSelected(frm);
	if(selectCount != 0) return true;
	
	alert('Selection required');
	
	return false;

}

function checkSingleSelect(frm) {


	try {

		var selectCount = countSelected(frm);

		if(selectCount == 1) return true;

		if(selectCount == 0) {
			alert('Select 1 item');
		} else if(selectCount > 1) {
			alert('Only 1 selection is permitted');				
		}		
		return false;


	} catch(e) {
		return true;
	}
}

function selectAll(frm) {

	try {

		for(i=0;i<frm.elements.length;i++) {

			var elem = frm.elements[i];
			if(elem.type == 'checkbox')	 
				elem.checked = !elem.checked;
		}

	} catch(e) {
		alert('ERROR: ' + e);
	}

}

function swapImage(imageId, src) {
	var img = document.getElementById(imageId);
	if (img) img.src = src;
}



function selectHotelImage(newImage) {

	var img = document.getElementById("smallHotelImage");
	var img2 = document.getElementById(newImage);
	img.innerHTML = img2.innerHTML;

}

function checkExpediaAvailability(frm) {
	

	var indate = frm.indate.value;
	var outdate = frm.outdate.value;

	if(indate == '' || indate == 'mm/dd/yyyy' || outdate == '' || outdate == 'mm/dd/yyyy') {
		alert('Select valid dates to check availability');
		return false;
	}
	
	var url = frm.url.value + '&indate=' + indate + '&outdate=' + outdate + '&type=r';
	partner(url,frm.linkCode);
	return false;
	
}

function Partner(name, displayName, emailDomain, partnerAppId, privateLabel) {
	this.name = name;
	this.displayName = displayName;
	this.emailDomain = emailDomain;
	this.partnerAppId = partnerAppId;
	this.privateLabel = privateLabel;
}

/* -------- COMMON ADD TO TRIP SCRIPTS 
This function is tied to the Add To Trip button on the site details, not the items on the tabs
*/
function addMainInfoParent(theMainInfoId){
				dojo.io.bind({

					url:'/addMainInfoToBucket.ha',
					content: {
						mainInfoId: theMainInfoId
					},
					method:'post',
						load: function(type, data, evt){
						  displayBucketAdd(data);
				
						},
						mimetype: "text/plain"
						});
			
					var addButtonForSite = document.getElementById('addButton');
					if (addButtonForSite)  {
						var addHolder = "<a href='javascript:;' ";
						addHolder += "class='tableButton' onclick='deleteMainInfo(" +theMainInfoId+ ", 0); '  return false;'>";
						addHolder += "<span>Remove</span></a>";
						addButtonForSite.innerHTML=addHolder;
					}

			}



// THIS USES PROTOTYPE WHICH IS WERE WE ARE MOVING TO
	function addMainInfo(theMainInfoId, theRank){
	
		new Ajax.Request('/addMainInfoToBucket.ha', 
		{ method:'get', parameters: {mainInfoId: theMainInfoId},
		 onComplete: function(transport) { 
			
			new Ajax.Updater('mySiteList', '/viewBucket.ha', { method: 'get' });
			
            }
		}
	
	);
	
	var addButtonForSite = document.getElementById('addButton-'+theMainInfoId);
		if (addButtonForSite)  {
			var addHolder = "<a href='javascript:;' ";
			addHolder += "onclick='deleteMainInfo(" +theMainInfoId+ ", 0); '  return false;'>";
			addHolder += "<span>Remove</span></a>";
			addButtonForSite.innerHTML=addHolder;
		}
		
		
		/* clear any possible error message */
		var object = document.getElementById("bucketWarning");
	    if (object) {
		    object.innerHTML = "";
	    }
}

function addMainInfo_on_browse(theMainInfoId, theRank){
	
		new Ajax.Request('/addMainInfoToBucket.ha', 
		{ method:'get', parameters: {mainInfoId: theMainInfoId},
		 onComplete: function(transport) { 
			
			new Ajax.Updater('mySiteList', '/viewBucket.ha', { method: 'get' });
			
            }
		}
	
	);
	
	var addButtonForSite = document.getElementById('addButton-'+theMainInfoId);
		if (addButtonForSite)  {
			var addHolder = "<a href='javascript:;' ";
			addHolder += "onclick='deleteMainInfo_on_browse(" +theMainInfoId+ ", 0); '  return false;'>";
			addHolder += "<span>Remove</span></a>";
			addButtonForSite.innerHTML=addHolder;
		}
		
		
		/* clear any possible error message */
		var object = document.getElementById("bucketWarning");
	    if (object) {
		    object.innerHTML = "";
	    }
}

function addMainInfoSite(theMainInfoId, theRank){
	
		new Ajax.Request('/addMainInfoToBucket.ha', 
		{ method:'get', parameters: {mainInfoId: theMainInfoId},
		 onComplete: function(transport) { 
			
			new Ajax.Updater('mySiteList', '/viewBucket.ha', { method: 'get' });
			new Ajax.Updater('reCreateItineraryButton', '/browseShowReCreateButton.ha', { method: 'get' });
            new Ajax.Updater('editItineraryButton', '/browseShowEditButton.ha', { method: 'get' });
            new Ajax.Updater('itineraryButtonText', '/browseShowButtonText.ha', { method: 'get' }); 
            }
		}
	
	);
	
	var addButtonForSite = document.getElementById('addButton-'+theMainInfoId);
		if (addButtonForSite)  {
			var addHolder = "<a href='javascript:;' ";
			addHolder += "onclick='deleteMainInfo(" +theMainInfoId+ ", 0); '  return false;'>";
			addHolder += "<span>Remove</span></a>";
			addButtonForSite.innerHTML=addHolder;
		}
		
		
		/* clear any possible error message */
		var object = document.getElementById("bucketWarning");
	    if (object) {
		    object.innerHTML = "";
	    }
}

function deleteMainInfo(theMainInfoId, theRank){
	
		new Ajax.Request('/deleteMainInfoFromBucketWidget.ha', 
		{ method:'get', parameters: {mainInfoId: theMainInfoId},
		 onComplete: function(transport) { 
			
			new Ajax.Updater('mySiteList', '/viewBucket.ha', { method: 'get' });
			} 
		}
	
	);
	
	var addButtonForSite = $('addButton-'+theMainInfoId);
		if (addButtonForSite)  {
			var addHolder = "<a href='javascript:;'";
			addHolder += " onclick='addMainInfo(" +theMainInfoId+ ", 0);'  return false;'>";
			addHolder += "ADD TO TRIP</a>";
			addButtonForSite.innerHTML=addHolder;
		}
		var upsellRow = $('upsellRow_'+theMainInfoId);
		if(upsellRow){
			upsellRow.hide();
		}
}


// This is the common add to trip.  THIS USES DOJO WHICH WE ARE MOVING AWAY FROM
function addMainInfo_old(theMainInfoId, theRank){

	dojo.io.bind({
		url:'/addMainInfoToBucket.ha',
		content: {
			mainInfoId: theMainInfoId,
			rank: theRank
		},
		method:'post',
		load: function(type, data, evt){
		  displayBucketAdd(data);

		},
		mimetype: "text/plain"
		});

		var addButtonForSite = document.getElementById('addButton-'+theMainInfoId);
		if (addButtonForSite)  {
			var addHolder = "<a href='javascript:;' ";
			addHolder += "class='tableButton' onclick='deleteMainInfo(" +theMainInfoId+ ", 0); '  return false;'>";
			addHolder += "<span>Remove</span></a>";
			addButtonForSite.innerHTML=addHolder;
		}
		
		
		/* clear any possible error message */
		var object = document.getElementById("bucketWarning");
	    if (object) {
		    object.innerHTML = "";
	    }

}


// This is only valid on pages with the bucket
function displayBucketAdd(data){
	var siteList = document.getElementById('mySiteList');

	if (siteList) {
		siteList.innerHTML = data;
	}
}

// This is only valid on pages with the bucket
function displayBucketRemove(data){
	var siteList = document.getElementById('mySiteList');
	if (siteList) {
		siteList.innerHTML = data;
	}
}

function deleteMainInfo_on_browse(theMainInfoId){
	new Ajax.Request('/deleteMainInfoFromBucketWidget.ha', 
		{ method:'get', parameters: {mainInfoId: theMainInfoId},
		 onComplete: function(transport) { 
			
			new Ajax.Updater('mySiteList', '/viewBucket.ha', { method: 'get' });
			} 
		}
	
	);

		var addButtonForSite = $('addButton-'+theMainInfoId);
		if (addButtonForSite)  {
			var addHolder = "<div class='commonBtns'><a href='javascript:;'";
			addHolder += " class='tableButton' onclick='addMainInfo_on_browse(" +theMainInfoId+ ", 0); suggestProducts_prototype(" +theMainInfoId+ ");'  return false;'>";
			addHolder += "<span>Add +</span></a></div>";
			addButtonForSite.innerHTML=addHolder;
		}
		var upsellRow = $('upsellRow_'+theMainInfoId);
		if(upsellRow){
			upsellRow.hide();
		}
}

var previousUpsellId;

function doUpsell(id, type, destId, show) {

	if(show){
	
	closePreviousUpsellRow()
	previousUpsellId = id; //store this so we can close it later.
	var upsellRow = "upsellRow_" + id;
	var updateDiv = "upsellDiv_" + id;
	var progressDiv = "progressDiv_" + id;
    var url = "/browse/ajax/upsell.ha";
    var params =  "mainInfoId=" + id + "&upsellType=" + type + "&destId=" + destId;
	var ajaxParams = { method: 'post', parameters: params };
	$(upsellRow).show();
	//new Ajax.Updater( updateDiv , url, ajaxParams);
	new Ajax.Request(url, {   
		method: 'post', parameters: params, onSuccess: function(transport) {
			//Effect.BlindUp( progressDiv, { duration: 1 } );
			$(progressDiv).hide();
			$(updateDiv).innerHTML=transport.responseText;
			Effect.BlindDown( updateDiv, { queue: 'end' } );
		}
	});
	}
}

function closePreviousUpsellRow() {
	if (previousUpsellId != null) {
		var upsellRow = "upsellRow_" + previousUpsellId;
		var updateDiv = "upsellDiv_" + previousUpsellId;
		$(upsellRow).hide();
		//Effect.Fade( updateDiv, { queue: 'front' } );
		//Effect.Fade( upsellRow, { queue: 'end' } );
	}
}

function toggleBucketItems(element) {
	$(element).toggle();
}		











/*
This javascript deals with showing and hiding the widget layers
and making sure that only one is open at a time.
*/
//These vars track which widgets are open.
var isWidgetOpen=false;
var lastHiddenObject=null;
var lastShowObject = null;
var disableWidgetChecking = false;//When validation returns, a widget is open, so just disable checking completely.

function setVisibility(objectToHideID, objectToShowID) {
	
	
	if (disableWidgetChecking) return doHideShow(objectToHideID, objectToShowID);//Short Circuit.
	if (isWidgetOpen) {
	
	    if (lastHiddenObject == objectToShowID) { //Are we dealing with the same widget layer that was just hidden?
	    	isWidgetOpen = false;
	    	lastHiddenObject = null;//Alright, we closing the same one so let's reset everything.
	    	//alert("reset lastHiddenObject to null: "+lastHiddenObject);
	    	return doHideShow(objectToHideID, objectToShowID);
	    
	    }
	} else { //No widget was open so lets open one and track which one it was.
		lastHiddenObject = objectToHideID;
		lastShownObject = objectToShowID;
		isWidgetOpen = true;
		return doHideShow(objectToHideID, objectToShowID);
	}
}

function doHideShow(objectToHideId, objectToShowId) {
	hide(objectToHideId);
	show(objectToShowId);
    return true;
}

function changeVisibility(objId, state) {
    var object = document.getElementById(objId);
    if (object) {
	    object.style.display = state;
    }
}

function doToggle(objId1, objId2){
	var object1 = document.getElementById(objId1);
	var object2 = document.getElementById(objId2);
	var state1 = object1.style.display;
	var state2 = object2.style.display;
	//alert(state1);
	//alert(state2)
	   
	 if(state1 == 'none'){
	 	object1.style.display = 'block';
	 	//alert('object 1 going block');
	 }else{
	 	object1.style.display = 'none';
	 	//alert('object 1 going none');
	 }
	 
	 if(state2 == 'block'){
	 	object2.style.display = 'none';
	 	//alert('object 2 going none');
	 }else{
	 	object2.style.display = 'block';
	 	//alert('object 2 going block');
	 }
	 
}

function hide(objectToHideId) {
	changeVisibility(objectToHideId, "none");
	return true;
}

function show(objectToShowId) {
	changeVisibility(objectToShowId, "block");
	return true;
}

		
