// logo_scroller.js
var flag=0, timer=null, scrwidth, scrleft=0, speed=7, speeddelay=10, inner, innerwidth;
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function scrollit(dir) {
  if(dir=='left' && scrleft*1>=scrwidth-innerwidth) {
     scrleft-=speed;
     inner.style.left=scrleft+'px';
  }
  if(dir=='right' && scrleft*1<=0) {
     scrleft+=speed;
     inner.style.left=scrleft+'px';
  }
  timer=window.setTimeout("scrollit('"+dir+"');",speeddelay);
}

function scrclear() {
  window.clearTimeout(timer);
}
function getParams() {
  scrwidth=document.getElementById('scrcontainer').offsetWidth;
  innerwidth=document.getElementById('scrinner').offsetWidth;
  inner=document.getElementById('scrinner');
  var arrup=document.getElementById('arrup');
  var arrdown=document.getElementById('arrdown');
}




/**
 * SWFObject v1.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formarly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey){
	if (!document.createElement || !document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	if(swf) { this.setAttribute('swf', swf); }
	if(id) { this.setAttribute('id', id); }
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute('version'), useExpressInstall);
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', useExpressInstall);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},
	getAttribute: function(name){
		return this.attributes[name];
	},
	addParam: function(name, value){
		this.params[name] = value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] = value;
	},
	getVariable: function(name){
		return this.variables[name];
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs.push(key +"="+ variables[key]);
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType", "PlugIn");
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += '/>';
		} else { // PC IE
			if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType", "ActiveX");
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";
		}
		return swfNode;
	},
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(reqVer, xiInstall){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else{
		try{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			for (var i=3; axo!=null; i++) {
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
				PlayerVersion = new deconcept.PlayerVersion([i,0,0]);
			}
		}catch(e){}
		if (reqVer && PlayerVersion.major > reqVer.major) return PlayerVersion; // version is ok, skip minor detection
		// this only does the minor rev lookup if the user's major version
		// is not 6 or we are checking for a specific minor or revision number
		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		if (!reqVer || ((reqVer.minor != 0 || reqVer.rev != 0) && PlayerVersion.major == reqVer.major) || PlayerVersion.major != 6 || xiInstall) {
			try{
				PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
			}catch(e){}
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
	this.major = parseInt(arrVersion[0]) != null ? parseInt(arrVersion[0]) : 0;
	this.minor = parseInt(arrVersion[1]) || 0;
	this.rev = parseInt(arrVersion[2]) || 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
	getRequestParameter: function(param){
		var q = document.location.search || document.location.hash;
		if(q){
			var startIndex = q.indexOf(param +"=");
			var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
			if (q.length > 1 && startIndex > -1) {
				return q.substring(q.indexOf("=", startIndex)+1, endIndex);
			}
		}
		return "";
	}
}

/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;


// crsline2ships.js
// JavaScript Document

function emptySelect (selectObj) {
	for (var i=0; i < selectObj.options.length; i++) {
			selectObj.options[i] = null;
	}
	selectObj.options.length = 0;
}

function populateSelect (selectObj, optionsArray) {
	var start = selectObj.length;
	for (var i = start; i < optionsArray.length + start; i++) {
		selectObj.options[i] = optionsArray[i-start];
	}
}

function makeSelectedByValue (selectObj, optionValue) {
	for (var i=0; i < selectObj.options.length; i++) {
			if (selectObj.options[i].value == optionValue) selectObj.options[i].selected = true;
	}
}

function showShipsByCrsline (crslineSID, crsshipSID, addOther) {
	var selectObj, crsLineID, optionsArray, selected;
	if (!(selectObj = document.getElementById(crslineSID))) return false;
	crsLineID = parseInt(selectObj.options[selectObj.selectedIndex].value);
	if (!(selectObj = document.getElementById(crsshipSID))) return false;
	emptySelect (selectObj);
	//if (!crsLineID) return false;
	if (crsLineID) {
		if (typeof(crsShips[crsLineID]) != 'undefined') {
			optionsArray = new Array();
			optionsArray[0] = new Option (labels['choose_ship'], '0');
			populateSelect (selectObj, optionsArray);
			optionsArray = crsShips[crsLineID];
		} else {
			optionsArray = new Array();
			if (crsLineID != -1) optionsArray[0] = new Option (labels['no_ships'], '0');
		}
	}
	else
	{
		optionsArray = new Array();
		optionsArray[0] = new Option (labels['choose_ship'], '0');
		populateSelect (selectObj, optionsArray);
		optionsArray = new Array();
		var tmpArray1 = new Array();
		var tmpArray2 = new Array();
		var j=0;
		for (key in crsShips)
		{
			//alert(key);
			//continue;
			for (var i=0; i < crsShips[key].length; i++)
			{
				tmpArray1[crsShips[key][i].text] = crsShips[key][i].value;
				tmpArray2[j] = crsShips[key][i].text;
				j++;
			}
		}
		tmpArray2.sort();
		var i=0;
		for (myKey in tmpArray2)
		{
			optionsArray[i] = new Option (tmpArray2[myKey], tmpArray1[tmpArray2[myKey]]);
			i++;
		}
	}

	if (addOther) optionsArray[optionsArray.length] = new Option (labels['other_specify'], "-1");

	populateSelect (selectObj, optionsArray);
	makeSelectedByValue (selectObj, defaultShipID);
}

var mainPanelID, deckPanelID;

function toggleDisplay (objID, status) {
    var tmpObj = document.getElementById(objID);
    if (!tmpObj) return false;
    tmpObj.style.display = (status == 'on' ? 'block' : 'none');
}

function toggleCssClass (objID, className) {
    var tmpObj = document.getElementById(objID);
    if (!tmpObj) return false;
    tmpObj.className = className;
}


function setCurrentDeck (deckID, deckFileName) {
    var tmpObj, imgObj, tmpImg;

    if (mainPanelID != 'ship_deckplans' ) {
        toggleDisplay(mainPanelID, 'off');
        toggleDisplay('ship_deckplans', 'on');
        mainPanelID = 'ship_deckplans';
    }

    if (deckPanelID != deckID) {
        imgObj = document.images['deckplan_holder'];
        tmpImage = new Image();
        tmpImage.src = deckFileName;
        if (deckFileName) {
            var deckObj = document.getElementById('deck_name'); 
            if (deckObj) {
                deckObj.innerHTML = '<br><h2>Loading deck plan...</h2>';
            }
            tmpObj = document.getElementById('link_deck_' + deckID);
            if (tmpObj) tmpObj = tmpObj.title;

            imgObj.title = tmpObj;
            imgObj.src = tmpImage.src;
        }

        toggleCssClass("bullet_deck_" + deckPanelID, 'bullet-off');
        toggleCssClass("bullet_deck_" + deckID, 'bullet-on');

        deckPanelID = deckID;
    }
}

function changeDeckHeader(obj) {
    if (document.getElementById('deck_name')) document.getElementById('deck_name').innerHTML = '<br><h2>' + obj.title + '</h2>';
}

mainPanelID = 'ship_description';
deckPanelID = null;

var arr = new Image();
arr.src="/images/deck_link_bullet.gif";



// calendar.js
// JavaScript Document

function toggleCalendar () {
	if (!calendar) return false;
	if (calendar.style.display == 'block')
		calendar.style.display = 'none';
	else calendar.style.display = 'block';
}

function setCDate (day, month, year) {
	var dayObj = document.getElementById('date_day');
	var monthObj = document.getElementById('date_month');
	var yearObj = document.getElementById('date_year');

	if (dayObj)
		for (var i=0;i<dayObj.options.length; i++)
			if (dayObj.options[i].value == day)  dayObj.options[i].selected = true;

	if (monthObj)
		for (var i=0;i<monthObj.options.length; i++)
			if (monthObj.options[i].value == month)  monthObj.options[i].selected = true;

	if (yearObj)
		for (var i=0;i<yearObj.options.length; i++)
			if (yearObj.options[i].value == year)  yearObj.options[i].selected = true;
}


// imgpopup.js
function imgpopup (theURL) {
	window.open("/showbigimage.php?src="+theURL,
		"Image",
		"toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=200,height=200");
}

function popUpImageCustom (theURL, str_type) {
	window.open("/showbigimage.php?type=" + str_type + "&src="+theURL,
		"ImageGallery",
		"toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=200,height=200");
}

// ship_gallery.js

// JavaScript Document

function changePhotos (direction) {
	var tmpObj;


	if (direction == 'next') {
		if (imgIndex == imgArrImgs.length -1)  {
			imgIndex = 0;
		} else imgIndex++;
	}
	else {
		if (direction == 'prev') {
			if (imgIndex == 0) {
				imgIndex = imgArrImgs.length - 1;
			} else imgIndex--;
		}
	}
	if (tmpObj = document.getElementById('ship_image')) {
		tmpObj.src = imgArrImgs[imgIndex];
		tmpObj.alt = imgArrAlts[imgIndex];
	}

	if (tmpObj = document.getElementById('mg_symbol')) {
		//tmpObj.src = 'images/zoom2.gif';
	}

	if (tmpObj = document.getElementById('ship_image_count')) {
		tmpObj.innerHTML = 'Photo ' + (imgIndex+1) + ' / ' + imgTotal;

	}
}

function changePhotosCruise (direction) {
	var tmpObj;


	if (direction == 'next') {
		if (imgIndex == imgArrImgs.length -1)  {
			imgIndex = 0;
		} else imgIndex++;
	}
	else {
		if (direction == 'prev') {
			if (imgIndex == 0) {
				imgIndex = imgArrImgs.length - 1;
			} else imgIndex--;
		}
	}
	if (tmpObj = document.getElementById('ship_image1')) {
		tmpObj.src = imgArrImgs[imgIndex];
		tmpObj.alt = imgArrAlts[imgIndex];
	}

	if (tmpObj = document.getElementById('mg_symbol')) {
		//tmpObj.src = 'images/zoom2.gif';
	}

	if (tmpObj = document.getElementById('ship_image1_count')) {
		tmpObj.innerHTML = 'Photo ' + (imgIndex+1) + ' / ' + imgTotal;

	}
}

function openGalleryPopup () {
	var getImg = document.getElementById('ship_image');
	if (getImg.src.indexOf(imgDefault) != -1) return false;
	var tmpObj = getImg.src.split('&img=');
	tmpObj = tmpObj[1];

	//obj.onclick = function () {
	window.open('/showbigimage.php?type=ship&src=' + tmpObj,'shipgallery','width=100,height=100');
	//}
}

function openItineraryMapPopup () {
	var getImg = document.getElementById('itinerary_map');
	if (getImg.src.indexOf(imgDefault) != -1) return false;
	var tmpObj = getImg.src.split('&img=');
	tmpObj = tmpObj[1];
	//obj.onclick = function () {
	window.open('/showbigimage.php?type=itinerary&src=' + tmpObj,'itinerarymap','width=100,height=100');
	//}
}

function openGalleryPopupCruise () {
	var getImg = document.getElementById('ship_image1');
	if (getImg.src.indexOf(imgDefault) != -1) return false;
	var tmpObj = getImg.src.split('&img=');
	tmpObj = tmpObj[1];

	//obj.onclick = function () {
	window.open('/showbigimage.php?type=ship&src=' + tmpObj,'shipgallery','width=100,height=100');
	//}
}

// Tabs.js

function selectTab(idTabLink, idArrTabsLinks){
  var objTabLink = document.getElementById(idTabLink);
  var arrTabsLinks = document.getElementById(idArrTabsLinks).getElementsByTagName("a");

  for (var i=0; i<arrTabsLinks.length; i++ ){
    if (arrTabsLinks[i].id && (arrTabsLinks[i].id).indexOf("Tab")!= -1) {
      if(arrTabsLinks[i].id == objTabLink.id){
        arrTabsLinks[i].className = arrTabsLinks[i].className + " Selected";
        document.getElementById(arrTabsLinks[i].id + "Content").style.display = "block";
      } else {
        arrTabsLinks[i].className = (arrTabsLinks[i].className).replace(" Selected", "");
        document.getElementById(arrTabsLinks[i].id + "Content").style.display = "none";
      }
    }
  }

  mainPanelID = 'ship_description';
  deckPanelID = null;

}
function getXMLHTTP() { //fuction to return the xml http object
		var xmlhttp=false;
		try{
			xmlhttp=new XMLHttpRequest();
		}
		catch(e)	{
			try{
				xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				try{
				req = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch(e1){
					xmlhttp=false;
				}
			}
		}

		return xmlhttp;
	}
function getShipDetails(shipID, cruiseID, cruiseDate) {
		if (typeof(cruiseID) == "undefined") cruiseID = 0;
		if (typeof(cruiseDate) == "undefined") cruiseDate = 0;
		var req = getXMLHTTP();
		var url = 'shipDetails.php?getShipDetails=1&shipID='+shipID+"&cruiseID="+cruiseID+"&date="+cruiseDate;
		if (req) {

			req.onreadystatechange = function() {
				if (req.readyState == 4) {
					// only if "OK"
					if (req.status == 200) {
						document.getElementById('ShipDetailsTabContent').innerHTML=req.responseText;
					} else {
						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
					}
				}
			}
			req.open("GET", url , true);
			req.send(null);
		}

}

function getCruiseLineDetails(crslineID) {
		var req1 = getXMLHTTP();
		var url = 'crslineDetails.php?getCrslineDetails=1&crslineID='+crslineID;
		if (req1) {

			req1.onreadystatechange = function() {
				if (req1.readyState == 4) {
					// only if "OK"
					if (req1.status == 200) {
						document.getElementById('CruiseLineTabContent').innerHTML=req1.responseText;
					} else {
						alert("There was a problem while using XMLHTTP:\n" + req1.statusText);
					}
				}
			}
			req1.open("GET", url , true);
			req1.send(null);
		}

}


function setContextOpen(clickArr, showArr, changeArr) {
	var i, j, k, m;
	for (j in clickArr) {
		for(i=1; i<200; i++) {
		    var Obj = document.getElementById(clickArr[j] + i);
		    if (!Obj) break;
		    for(k in showArr) {
			    var sObj = document.getElementById(showArr[k] + i);
			    if (!sObj) break;
			    Obj.showObj = sObj;
			    Obj.openView = false;
			    for(m in changeArr) {
			        var cElemFir = document.getElementById(changeArr[m][0]+i);
			        var cElemSec = document.getElementById(changeArr[m][1]+i);
				    if (cElemFir && cElemSec) {
				        Obj.cElemFir = cElemFir;
				        Obj.cElemSec = cElemSec;
				    }
				}
			    Obj.onclick = function() {
			        if (this.openView) {
			           this.showObj.style.display = "none";
			           this.openView = false;
			           if (this.cElemFir) {
			           	   this.cElemFir.style.display = "block";
			           	   this.cElemSec.style.display = "none";
			           }
			        } else {
			           this.showObj.style.display = "block";
			           this.openView = true;
			           if (this.cElemFir) {
			           	   this.cElemFir.style.display = "none";
			           	   this.cElemSec.style.display = "block";
			           }
			        }
			    }
			}
		}
    }
}


// main.html
function CreateBookmarkLink() {

 title =  document.title ;

 url = location.href;


	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
}

var minF=11;
var maxF=14;
function increaseFontSize() {
   var p = document.getElementsByTagName('p');

   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=maxF) {
         s += 1;
      }
      p[i].style.fontSize = s+"px"
   }
}
function decreaseFontSize() {
   var p = document.getElementsByTagName('p');

   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=minF) {
         s -= 1;
      }
      p[i].style.fontSize = s+"px"
   }   
}
