var gotIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var gotNS = (navigator.appName == 'Netscape') ? true : false;
var ns=document.layers;
var ie=document.all;
var ns6=document.getElementById&&!document.all;
var flag=0;

function showselect(id){

	SDDM_deactivate(id);

}


function hideselect(id){

	SDDM_activate(id);

}

function checkEmailAddress() {

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/.test(document.TheForm.email.value))){
alert("Invalid E-mail Address")
document.TheForm.email.focus();
document.TheForm.email.select();
return false;
}

return true;
}



function popWin( url, name, width, height, scroller ) {

	if (gotIE) {
	var left = (screen.Width/2) - width/2;
	var top = (screen.Height/2) - height/2;
	} else if (gotNS) {
	var left = (screen.availWidth/2) - width/2;
	var top = (screen.availHeight/2) - height/2;
	} else {
	var left = (screen.Width/2) - width/2;
	var top = (screen.Height/2) - height/2;
	}

var outStr = 'left='+left+',top='+top+',height=' + height + ',width=' + width;

	if (scroller == true) {
		 outStr = outStr + ',menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=1,resizable=no';
	 } else {
		 outStr = outStr + ',menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=no,resizable=no';
	 }

window.open(url, name, outStr);

}

function checklogin(form)
{
    if (flag == 1)
       return false;

if (! form.email.value){
alert("Please Enter Your Email Address");
form.email.focus();
form.email.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value))){
alert("Invalid E-mail Address")
form.email.focus();
form.email.select();
return false;
}

if (! form.pass.value){
alert("Please Enter Your Password");
form.pass.focus();
form.pass.select();
return false;
}

flag = 1;
return true;
}


function contact_form_val(form)
{
	form = document.getElementById(form);
	if (flag == 1)
       return false;


if (! form.name.value){
alert("Please Enter Your Name");
form.name.focus();
form.name.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value))){
alert("Please Enter A valid E-mail Address")
form.email.focus();
form.email.select();
return false;
}

if (! form.phone.value){
alert("Please Enter Your Phone #");
form.phone.focus();
form.phone.select();
return false;
}

if (! form.subject.value){
alert("Please Enter A Subject");
form.subject.focus();
form.subject.select();
return false;
}

if (! form.message.value){
alert("Please Enter Your Message");
form.message.focus();
form.message.select();
return false;
}

flag = 1;
return true;
}



function search(form)
{
    if (flag == 1)
       return false;

if (! form.skeyword.value){
alert("Please Enter A Search Term");
form.skeyword.focus();
form.skeyword.select();
return false;
}

flag = 1;
return true;
}




function signup(form)
{
    if (flag == 1)
       return false;

if (! form.fname.value){
alert("Please Enter Your First Name");
form.fname.focus();
form.fname.select();
return false;
}

if (! form.lname.value){
alert("Please Enter Your Last Name");
form.lname.focus();
form.lname.select();
return false;
}

if (! form.email.value){
alert("Please Enter Your Email Address");
form.email.focus();
form.email.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value))){
alert("Invalid E-mail Address")
form.email.focus();
form.email.select();
return false;
}

if (! form.pass.value){
alert("Please Enter A Password");
form.pass.focus();
form.pass.select();
return false;
}


 str = form.pass.value
 var validChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-';
 if ((str.length < 3)) {
 alert("Your password must be at least 3 characters.")
 form.pass.focus();
 form.pass.select();
 return false;
 }
 for (var j = 0; j < str.length; j++){
   if(validChars.indexOf(str.charAt(j)) == -1) {
 alert("Your password can only contain letters and numbers.")
 form.pass.focus();
 form.pass.select();
 return false;
 }
 }
	Ctrl = form.pass2;
	if (Ctrl.value =="") {
		validatePromt(Ctrl,"Please Confirm Your Password");
		return false;
	}
	if (form.pass.value != form.pass2.value) {
		validatePromt(Ctrl,"Your passwords do not match");
 		form.pass2.focus();
 		form.pass2.select();
		return false;
	}


flag = 1;
return true;
}


function enewsletter(form)
{
    if (flag == 1)
       return false;

if (form.email_addr.value == ''){
alert("Please Enter Your Email Address");
form.email_addr.focus();
form.email_addr.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email_addr.value))){
alert("Invalid E-mail Address")
form.email_addr.focus();
form.email_addr.select();
return false;
}

flag = 1;
return true;


}


function showStatus(sMsg) {
    window.status = sMsg ;
    return true ;
}


function add_email() {

var fobj = new Array("fname", "lname");
var cmdoutput = "";
   for(var i = 0;i < fobj.length;i++)
   {

	cmdoutput += fobj[i] + "=" + escape(eval("document.enewsletter."+fobj[i]+".value")) + "&";
   }

	var email = document.enewsletter.email_addr.value;
    	var strURL = "/inc_js/add_email.php";
        var querystring = cmdoutput + "email="+email;
	var xmlHttpReq = false;

    if (enewsletter(document.enewsletter)){

    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            updatenewsletter(xmlHttpReq.responseText);
        }
    }

    xmlHttpReq.send(querystring);


   }
}

function showads(sec){

    	var strURL = "/inc_js/showad.php";
        var querystring = "sec="+sec;
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
	  if (sec=='2'){
			var strarray = xmlHttpReq.responseText.split("~~~~");
    			document.getElementById("adslot1").innerHTML = strarray[0];
    			document.getElementById("adslot3").innerHTML = strarray[1];
	  }

	  if (sec=='3'){
			var strarray = xmlHttpReq.responseText.split("~~~~");
    			document.getElementById("adslot1").innerHTML = strarray[0];
	  }

	  if (sec=='4'){
			var strarray = xmlHttpReq.responseText.split("~~~~");
    			document.getElementById("adslot1").innerHTML = strarray[0];
    			document.getElementById("adslot2").innerHTML = strarray[1];
    			document.getElementById("adslot3").innerHTML = strarray[2];
	  }

	  if (sec=='5' || sec=='6' || sec=='7'){
			var strarray = xmlHttpReq.responseText.split("~~~~");
    			document.getElementById("adslot1").innerHTML = strarray[0];
    			document.getElementById("adslot2").innerHTML = strarray[1];
	  }

        }
    }

    xmlHttpReq.send(querystring);



}

function updatenewsletter(str){

	var strarray = str;

    document.getElementById("newslettersignup").innerHTML = strarray;


}


function handlecartResponse () {
	if(http.readyState == 4){
		var response = http.responseText;
		var update = new Array();
		if (response){
			//document.getElementById("bagvol").style.display="none";

			//oldvol=document.getElementById("rbagvol").innerHTML;
			//newvol=oldvol-(-quant);
			//document.getElementById("rbagvol").innerHTML=newvol;
			//if (newvol==1) newcontent='<center>1 item in <strong>my bag</strong></center>';
			//else if (newvol<10) newcontent='<center>'+newvol+' items in <strong>my bag</strong></center>';
			//else newcontent='<center>'+newvol+' items</center>';
			//document.getElementById("bagvol").innerHTML = newcontent;
			//Effect.Appear('bagvol');
			iscomplete=1;
		}
	}
}


function addtocart(pid){
var cmdoutput = '';
var fobj2 = new Array("qty", "oid");
   for(var i = 0;i < fobj2.length;i++) 
   { 
	var bulk = eval("document.formaddcart"+pid+"."+fobj2[i]+".options[document.formaddcart"+""+pid+"."+fobj2[i]+".options.selectedIndex].value");

	if (fobj2[i]=='oid' && bulk<1){
		alert("Please choose a photo format");
		return false;
	}

	if (fobj2[i]=='qty' && bulk<1){
		alert("Please choose a quantity");
		return false;
	}


	cmdoutput += fobj2[i] + "=" + escape(bulk) + "&";
   }

    	var strURL = "/inc_js/carttop.php";
        var querystring = "pid="+pid+"&"+cmdoutput;
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {

			var strarray = xmlHttpReq.responseText.split("~~~~");

			if (strarray[0]=='1'){
    			document.getElementById("cartitemsamt").innerHTML = '<span class="ddcartsmwhtb">&nbsp;'+strarray[0]+' item</span> in your cart';
			} else {
			document.getElementById("cartitemsamt").innerHTML = '<span class="ddcartsmwhtb">&nbsp;'+strarray[0]+' items</span> in your cart';
			
			}
			

			var cartdiv=document.getElementById("carttop");
			cartdiv.innerHTML=strarray[1];
			cartdiv.style.position="absolute";
			closeimagebuy('thumbimage'+pid, 'explode'+pid)
			location.href='#viewcarttopbook';
			Effect.SlideDown(cartdiv.id);
        }
    }

    xmlHttpReq.send(querystring);


}

function showthisweek(){
			var cartdiv=document.getElementById("thisweekevents");
			//cartdiv.style.position="absolute";
			Effect.SlideDown(cartdiv.id);
}

function populareventlisting(){
			var cartdiv=document.getElementById("populareventlisting");
			//cartdiv.style.position="absolute";
			Effect.SlideDown(cartdiv.id);
}

function slidecartup(){
			var cartdiv=document.getElementById("carttop");
			cartdiv.style.position="absolute";
			Effect.SlideUp(cartdiv.id);

}


	var blockroll = "no"

	function closeimagebuy(start, olay){
		dojo.lfx.implode(olay, start, 250).play();
		blockroll = "no"
	}

function showimagebuy(start, olay, pid){

  if (blockroll!='yes'){

	blockroll = "yes"

	//var email = document.enewsletter.email_addr.value;
    	var strURL = "/inc_js/popup.php";
        var querystring = "pid="+pid;
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
 			document.getElementById(olay).innerHTML = xmlHttpReq.responseText;
			dojo.lfx.explode(start, olay, 250).play();
		}
        }

    xmlHttpReq.send(querystring);

    }


}


function addgallery(pid){

    	var strURL = "/inc_js/add_gallery.php";
        var querystring = "photo="+pid;
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
 			//alert(xmlHttpReq.responseText);
 			alert("Photo has been added to your gallery");
		}
        }

    xmlHttpReq.send(querystring);


}

function addbookmark(pid){

    	var strURL = "/inc_js/add_bookmark.php";
        var querystring = "photo="+pid;
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
 			//alert(xmlHttpReq.responseText);
 			alert("Calendar Event has been added to your bookmarks");
		}
        }

    xmlHttpReq.send(querystring);


}

function show_events_results(keyword, page){

    	var strURL = "/inc_js/searchgallery.php";
        var querystring = "keyword="+escape(keyword)+"&page="+page;
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
			var strarray = xmlHttpReq.responseText.split("~~~~");

			document.getElementById("galleryshowing").innerHTML = strarray[1];
			document.getElementById("galleryresults").innerHTML = strarray[0];
			var cartdiv=document.getElementById("galleryresults");
			Effect.SlideDown(cartdiv.id);
			
		}
        }

    xmlHttpReq.send(querystring);


}


function add_share(page, id, pid){

    	var strURL = "/inc_js/"+page+".php";
        var querystring = 'id='+id+'&pid='+pid+'&emails='+escape(eval("document.formshare"+pid+".femails"+pid+".value"))+'&comments='+escape(eval("document.formshare"+pid+".fcomments"+pid+".value"));
	var xmlHttpReq = false;


    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
 			//alert(xmlHttpReq.responseText);
 			alert("Emails have been sent.");
			eval("document.formshare"+pid+".femails"+pid+".value = ''");
			eval("document.formshare"+pid+".fcomments"+pid+".value = ''");
		}
        }

    xmlHttpReq.send(querystring);


}


function showvoyage(trip){

if (trip=='0'){
	location.href='/voyage14.html';
} else if (trip=='5'){
	location.href='/voyage15.html';
} else if (trip=='6'){
	location.href='/voyage15-2.html';
} else if (trip=='13'){
	location.href='/voyage15-2.html';
} else if (trip=='19'){
	location.href='/voyage17.html';
} else if (trip=='20'){
	location.href='/voyage17-2.html';
} else {
	location.href='/viewtrip.html?tid='+trip;
}

}/*
 
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.

Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->

*/

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

if ((version >= 5.5) && (document.body.filters)) 
{
   for(var i=0; i<document.images.length; i++)
   {
      var img = document.images[i]
      var imgName = img.src.toUpperCase()
      if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
      {
         var imgID = (img.id) ? "id='" + img.id + "' " : ""
         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
         var imgStyle = "display:inline-block;" + img.style.cssText 
         if (img.align == "left") imgStyle = "float:left;" + imgStyle
         if (img.align == "right") imgStyle = "float:right;" + imgStyle
         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
         var strNewHTML = "<span " + imgID + imgClass + imgTitle
         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
         + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
         img.outerHTML = strNewHTML
         i = i-1
      }
   }
}
/**
 * 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;

