function GetEl(layer){if(document.getElementById) return document.getElementById(layer);else if(document.all) return document.all[layer];else if(document.layers) return document.layers[layer];}
function show(layer){GetEl(layer).style.display = "block";}
function isShown(layer){return GetEl(layer).style.display == "block";}
function hide(layer){GetEl(layer).style.display = "none";}
function isHidden(layer){return GetEl(layer).style.display == "none";}
function vis(layer){GetEl(layer).style.visibility = "visible";}
function invis(layer){GetEl(layer).style.visibility = "hidden";}
function getClass(layer){return GetEl(layer).className;}
function setClass(layer, className){GetEl(layer).className = className;}
function enable(layer){GetEl(layer).disabled="";}
function disable(layer){GetEl(layer).disabled="disabled";}
function getVal(layer){return GetEl(layer).value;}
function setVal(layer, val){GetEl(layer).value = val;}
function getHTML(layer){return GetEl(layer).innerHTML;}
function setHTML(layer, val){GetEl(layer).innerHTML = val;}
function setSrc(layer, val){GetEl(layer).src = val;}
function getSelectVal(layer){try{var o = GetEl(layer);return o[o.selectedIndex].value;}catch (e) {return "";}}

function ValidateUpdate()
{
	var valid = "";
	if(getSelectVal("title")=="") valid += "Please select a Title\r\n";
	if(getVal("fname")=="") valid += "Please enter a First Name\r\n";
	if(getVal("lname")=="") valid += "Please enter a Last Name\r\n";
	if(getVal("email")=="") valid += "Please enter an Email address\r\n";
	if(getVal("address")=="") valid += "Please enter a Street Address\r\n";
	if(getVal("city")=="") valid += "Please enter an Email Address\r\n";
	if(getSelectVal("state")=="") valid += "Please select a State\r\n";
	if(getVal("zip")=="") valid += "Please enter a ZIP\r\n";
	
	if(valid != "") {alert(valid); return false;}
	return true;
}

function ValidateContact()
{
	var valid = "";
	if(getSelectVal("contact")=="") valid += "Please select a Contact\r\n";
	if(getVal("fname")=="") valid += "Please enter a First Name\r\n";
	if(getVal("lname")=="") valid += "Please enter a Last Name\r\n";
	if(getVal("email")=="") valid += "Please enter an Email address\r\n";
	
	if(valid != "") {alert(valid); return false;}
	return true;
}

function AlertMe(val)
{
	alert(val);
}
function SubNavShow(topLayer, layer)
{
    setClass(topLayer, "TopNavOn");
    show(layer, "subNavOn");
}

function SubNavHide(topLayer, layer)
{
    setClass(topLayer, "TopNavOff");
    hide(layer, "subNavOff");
}

function SecSubNavShow(offLayer, onLayer, layer)
{
    show(onLayer);
    hide(offLayer);
    setClass(layer, "secSubNavOn");
}

function SecSubNavHide(offLayer, onLayer, layer)
{
    hide(onLayer);
    show(offLayer);
    setClass(layer, "secSubNavOff");
}

function createCookie(name,value,days) 
{
    var expires;
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	var c;
	for(var i=0;i < ca.length;i++) 
	{
		c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
var galleryImagePrefix;
var galleryImageID;
var galleryCount;
var galleryPosition = 0;
function swapGalleryImage(layer)
{
    hide(galleryImagePrefix + galleryImageID);
    galleryImageID = layer;
    show(galleryImagePrefix + galleryImageID);
}

function galleryPrevious(layer)
{
    if(galleryCount > 6)
    {
        if(galleryPosition == galleryCount - 6) setClass("NextBtn", "galleryBtn NextOn");
        if(galleryPosition > 0) 
        {
            galleryPosition--;
            GetEl(layer).style.marginLeft = -(galleryPosition * 156) + "px";
        }
        if(galleryPosition == 0) setClass("PreviousBtn", "galleryBtn PreviousOff");
    }
}

function galleryNext(layer)
{
    if(galleryCount > 6)
    {
        if(galleryPosition == 0) setClass("PreviousBtn", "galleryBtn PreviousOn");
        if(galleryPosition < galleryCount - 6) 
        {
            galleryPosition++;
            GetEl(layer).style.marginLeft = -(galleryPosition * 156) + "px";
        }
        if(galleryPosition == galleryCount - 6) setClass("NextBtn", "galleryBtn NextOff");
    }
}

function GalleryCycle(i)
{
    var iNew = galleryImageID + i;
    if(iNew == 0) swapGalleryImage(galleryCount);
    else if(iNew > galleryCount) swapGalleryImage(1);
    else swapGalleryImage(iNew);
}

function PhotoEnlarge(src, copy)
{
    setSrc("photo", "images/" + src);
    setHTML("photoCopy", copy);
    SizeOverlay(true);
    show("photoEnlarge");
}

function ClosePhotoEnlarge()
{
    hide("photoEnlarge");
    invis("overlay");
}

window.onresize = SizeOverlay;
function SizeOverlay(bShow)
{
    var overlay = GetEl("overlay");
    overlay.style.height = document.body.scrollHeight + "px";
    var width = document.body.scrollWidth;
    if(width < 1006) width = 1006;
    overlay.style.width = width + "px";
    if(bShow==true) overlay.style.visibility = "visible";
}

function changeSeq(id, seq, val)
{
	var params = "action=changeSeq&id=" + id + "&currSeq=" + seq + "&direction=" + val;
    Http.get("AJAX.php", params, AdminLoad);
}
function changeBoatImagesSeq(id, boatsid, seq, val)
{
	var params = "action=changeBoatImagesSeq&id=" + id + "&boatsid=" + boatsid + "&currSeq=" + seq + "&direction=" + val;
    Http.get("AJAX.php", params, BoatImagesLoad);
}
function BoatImagesLoad(xmlreply)
{
    if (xmlreply.status == Http.Status.OK)
	{
    	setHTML("EditImages", xmlreply.responseText);
	}
}
function LoadBoatImages(id)
{
	var params = "action=loadBoatImages&id=" + id;
    Http.get("AJAX.php", params, BoatImagesLoad);
}
function AdminLoad(xmlreply)
{
    if (xmlreply.status == Http.Status.OK)
	{
    	setHTML("adminContent", xmlreply.responseText);
	}
}
function LoadAdmin()
{
	var params = "action=loadAdmin";
    Http.get("AJAX.php", params, AdminLoad);
}

/////////////AJAX//////////////////
var Http = {
    ReadyState: {Uninitialized: 0,Loading: 1,Loaded:2,Interactive:3,Complete: 4},
    Status: {OK: 200,Created: 201,Accepted: 202,NoContent: 204,BadRequest: 400,Forbidden: 403,NotFound: 404,Gone: 410,ServerError: 500},
	Cache: {Get: 1,GetCache: 2,GetNoCache: 3,FromCache: 4},
	Method: {Get: "GET", Post: "POST", Put: "PUT", Delete: "DELETE"},
	enabled: true,
	logging: true,
	_get: null,
	_cache: new Object(),
	
	Init: function(){Http._get = Http._getXmlHttp();Http.enabled = (Http._get != null);},
	
	_getXmlHttp: function(){
	    try {
	        if (window.XMLHttpRequest) return new XMLHttpRequest();
            else if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {alert(e);}
        return null;},
	
	get: function(url, params, callback, callback_params){	
	    try{
		    if (!Http.enabled) throw "Http: XmlHttpRequest not available.";
		    if (!url) throw "Http: A URL must be specified";
		    var method = Http.Method.Post;
		    if(!params) method = Http.Method.Get;
		    else if(params=="") method = Http.Method.Get;
		    if ((Http._get.readyState != Http.ReadyState.Uninitialized) && (Http._get.readyState != Http.ReadyState.Complete)) this._get.abort();
    		
		    Http._get.open(method, url, true);
		    if(method==Http.Method.Post)
		    {
		        Http._get.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                Http._get.setRequestHeader("Content-length", params.length);
                Http._get.setRequestHeader("Connection", "close");
		    }
		    Http._get.onreadystatechange =  function() {
			    if (Http._get.readyState != Http.ReadyState.Complete) return;
			    var cb_params = new Array();
			    cb_params.push(Http._get);
			    if(callback_params) for(var i=0; i < callback_params.length; i++) cb_params.push(callback_params[i]);
			    callback.apply(null, cb_params);
		    }
		    Http._get.send(params || null);
		}
		catch(er){alert(er);}
	}	
}
Http.Init();

