var ajax = new sack();
var ajaxInUse = 0;
var imageName = "";

function whenLoading(){
/*	
	var e = document.getElementById('replaceme'); 
	e.innerHTML = "<p>Sending Data...</p>";
*/
}

function whenLoaded(){
/*
	var e = document.getElementById('replaceme'); 
	e.innerHTML = "<p>Data Sent...</p>";
*/
}

function whenInteractive(){
/*
	var e = document.getElementById('replaceme'); 
	e.innerHTML = "<p>getting data...</p>";
*/
}

function whenCompleted(){
/*
	var e = document.getElementById('sackdata'); 
	if (ajax.responseStatus){
		var string = "<p>Status Code: " + ajax.responseStatus[0] + "</p><p>Status Message: " + ajax.responseStatus[1] + "</p><p>URLString Sent: " + ajax.URLString + "</p>";
	} else {
		var string = "<p>URLString Sent: " + ajax.URLString + "</p>";
	}
	e.innerHTML = string;	
*/
}

function ajaxCompleted(){
//	alert("response="+ajax.response);
	ajaxInUse = 0;
}

function emptyCart()
{
	var lLanguage = document.general.Language.value;
	var lOwnDomain = document.general.InOwnDomain.value;
	var lStyle = document.general.Style.value;

	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "emptyCart()";
		setTimeout(lRetryStatement, 200);
		return;
	}

	var lSessionId = document.general.ArtAcumenId.value;

	ajaxInUse = 1;
	ajax.setVar("Language", lLanguage);
	ajax.setVar("OwnDomain", lOwnDomain);
	ajax.setVar("Style", lStyle);
	ajax.setVar("ArtAcumenId", lSessionId);
	ajax.requestFile = "/cgi-bin/emptycart.cgi";
	ajax.method = "POST";
	ajax.element = 'cartnumitems';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = emptyCartCompleted;
	ajax.runAJAX();
}

function emptyCartCompleted()
{
	var lForm = document.general;

	ajaxCompleted();

	lForm.Action.value = "/cgi-bin/index.cgi?Page=cart";
	lForm.ArtAcumenId.value = "";
	lForm.submit();
}

function addToCart(pGalleryId, pArtistId, pArtworkId, pIndex, pPrice, pCurrency)
{
	var elementQty = "document.sortedlist.Product"+pIndex+"Qty.value";
	var lLanguage = document.sortedlist.Language.value;
	var lOwnDomain = document.sortedlist.InOwnDomain.value;
	var lStyle = document.sortedlist.Style.value;
	var pQuantity = parseInt(eval(elementQty));

	if (pQuantity <= 0)
	{
		return;
	}

	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "addToCart('"+pGalleryId+"','"+pArtistId+"','"+pArtworkId+"','"+pIndex+"','"+pPrice+"','"+pCurrency+"')";
		setTimeout(lRetryStatement, 200);
		return;
	}

	var lSessionId = document.general.ArtAcumenId.value;

	ajaxInUse = 1;
	ajax.setVar("Gallery", pGalleryId);
	ajax.setVar("Artist", pArtistId);
	ajax.setVar("Artwork", pArtworkId);
	ajax.setVar("Quantity", pQuantity);
	ajax.setVar("Price", pPrice);
	ajax.setVar("Currency", pCurrency);
	ajax.setVar("Language", lLanguage);
	ajax.setVar("OwnDomain", lOwnDomain);
	ajax.setVar("Style", lStyle);
	ajax.setVar("ArtAcumenId", lSessionId);
	ajax.requestFile = "/cgi-bin/addtocart.cgi";
	ajax.method = "POST";
	ajax.element = 'noel';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = cartCompleted;
	ajax.runAJAX();
}

function cartCompleted()
{
	var response = ajax.response;

	ajaxCompleted();

	var re = ":";
	var params = response.split(re);

	if (params.length>1)
	{
		document.keywordsearch.ArtAcumenId.value = params[0];
		document.keywordsearch.DisplayCountItems.value = params[1];
	}
	var theid = document.keywordsearch.ArtAcumenId;
	if (theid)
	{
		if (theid.value)
		{
			if (document.general)
			{
				document.general.ArtAcumenId.value = theid.value;
			}
			if (document.specialisedsearch)
			{
				document.specialisedsearch.ArtAcumenId.value = theid.value;
			}
			if (document.sortedlist)
			{
				document.sortedlist.ArtAcumenId.value = theid.value;
			}
			if (document.artistedit)
			{
				document.artistedit.ArtAcumenId.value = theid.value;
			}
		}
	}
}


function updateMyArtists(userid, artistid, action, language, owndomain, style, index, origin, useartistfororigin, origingallery, originartist, artistname)
{
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "updateMyArtists('"+userid+"','"+artistid+"','"+action+"','"+language+"','"+owndomain+"','"+style+"','"+index+"','"+origin+"','"+useartistfororigin+"','"+origingallery+"','"+originartist+"','"+artistname+"')";
		setTimeout(lRetryStatement, 200);
		return;
	}

	if (userid && userid != 0 && artistid && artistid != 0)
	{
		ajaxInUse = 1;
		ajax.setVar("User", userid);
		ajax.setVar("Artist", artistid);
		ajax.setVar("Action", action);
		ajax.setVar("Language", language);
		ajax.setVar("InOwnDomain", owndomain);
		ajax.setVar("Style", style);
		ajax.setVar("Index", index);
		ajax.setVar("Origin", origin);
		ajax.setVar("UseArtistForOrigin", useartistfororigin);
		ajax.setVar("OriginGallery", origingallery);
		ajax.setVar("OriginArtist", originartist);
		ajax.requestFile = "/cgi-bin/updatemyartists.cgi";
		ajax.method = "POST";
		ajax.element = 'updatemyartists'+index;
//		ajax.onLoading = whenLoading;
//		ajax.onLoaded = whenLoaded; 
//		ajax.onInteractive = whenInteractive;
		ajax.onCompletion = ajaxCompleted;
//		alert("calling ajax");
		ajax.runAJAX();
	}
	else
	{
		var lForm = document.general;
		var myString = new String(_RST["ADDTOFAVOURITES"]);

		lForm.Description.value = myString.replace(/REPLACEARTIST/g, artistname);

		if (owndomain == "" || owndomain == "0")
		{
			lForm.Page.value = "login";

			if (useartistfororigin == 0)
			{
				lForm.Artist.value = "";
				lForm.Gallery.value = "";
			}
			else
			{
				lForm.Artist.value = artistid;
			}
		}
		else
		{
			lForm.Page.value = "owndomainlogin";
			lForm.Gallery.value = origingallery;
			lForm.Artist.value = originartist;
		}


		lForm.Action.value = action+":"+origin+":"+userid+":"+artistid+":"+origingallery+":"+originartist;
		lForm.submit();
	}
}

function getNameFields(usertype, lang, owndomain, style, firstname, surname)
{
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "getNameFields('"+usertype+"','"+lang+"','"+owndomain+"','"+style+"','"+firstname+"','"+surname+"')";
		setTimeout(lRetryStatement, 200);
		return;
	}

	ajaxInUse = 1;

	ajax.setVar("UserType", usertype);
	ajax.setVar("Language", lang);
	ajax.setVar("InOwnDomain", owndomain);
	ajax.setVar("Style", style);
	ajax.setVar("FirstName", firstname);
	ajax.setVar("Surname", surname);
	ajax.requestFile = "/cgi-bin/loadnamefields.cgi";
	ajax.method = "POST";
	ajax.element = 'membername';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = ajaxCompleted;
//	alert("calling ajax");
	ajax.runAJAX();
}

function getWebsiteLayoutSchemesCompleted()
{
	var schemes = ajax.response;

	ajaxCompleted();

	// now populate the Schemes options from the list returned
//	alert(schemes);
	clearOptions(document.artistedit.Scheme);

	var re = "|";
	var re2 = ":";
	var paramList = schemes.split(re);
//	alert(paramList.length);

	var i;
	for (i=0; i<paramList.length; i++)
	{
		nameValue = paramList[i].split(re2);
		if (nameValue.length>1)
		{
//			alert("'"+nameValue[0]+"'="+nameValue[1]);
			addToOptionList(document.artistedit.Scheme, nameValue[0], nameValue[1]);
		}
	}
//	var e = document.getElementById('websitelayout'); 
//	e.innerHTML = "";
	var lRetryStatement = "getWebsiteSchemePreview()";
	setTimeout(lRetryStatement, 500);
}

function getWebsiteLayoutSchemes()
{
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "getWebsiteLayoutSchemes()";
		setTimeout(lRetryStatement, 200);
		return;
	}

	ajaxInUse = 1;

	var lang = document.artistedit.Language.value;
	var layoutob = document.artistedit.Layout;
	var layout = layoutob.options[layoutob.selectedIndex].value;

	ajax.setVar("Language", lang);
	ajax.setVar("Layout", layout);
	ajax.requestFile = "/cgi-bin/loadwebsitelayoutschemes.cgi";
	ajax.method = "GET";
	ajax.element = 'noel';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = getWebsiteLayoutSchemesCompleted;
//	alert("calling ajax");
	ajax.runAJAX();
}

function getWebsiteSchemePreview()
{
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "getWebsiteSchemePreview()";
		setTimeout(lRetryStatement, 200);
		return;
	}

	ajaxInUse = 1;

	var lang = document.artistedit.Language.value;
	var owndomain = document.artistedit.InOwnDomain.value;
	var style = document.artistedit.Style.value;
	var layoutob = document.artistedit.Layout;
	var layout = layoutob.options[layoutob.selectedIndex].value;
	var schemeob = document.artistedit.Scheme;
	var scheme = schemeob.options[schemeob.selectedIndex].value;

//	alert("get scheme preview layout="+layout+", scheme="+scheme);

	ajax.setVar("Language", lang);
	ajax.setVar("InOwnDomain", owndomain);
	ajax.setVar("Style", style);
	ajax.setVar("Layout", layout);
	ajax.setVar("Scheme", scheme);
	ajax.requestFile = "/cgi-bin/loadwebsiteschemepreview.cgi";
	ajax.method = "POST";
	ajax.element = 'websitelayout';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = ajaxCompleted;
//	alert("calling ajax");
	ajax.runAJAX();
}

function getManagedOption()
{
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "getManagedOption()";
		setTimeout(lRetryStatement, 200);
		return;
	}

	ajaxInUse = 1;

	var usertype = getCheckedValue(document.registerform.UserType);
	var membership = getCheckedValue(document.registerform.MembershipIndex);
	var servicetype = getCheckedValue(document.registerform.ServiceType);
	var lang = document.registerform.Language.value;
	var owndomain = document.registerform.InOwnDomain.value;
	var style = document.registerform.Style.value;

//	alert("usertype="+usertype+", membership="+membership+", servicetype="+servicetype+", language="+lang);

	ajax.setVar("UserType", usertype);
	ajax.setVar("MembershipIndex", membership);
	ajax.setVar("ServiceType", servicetype);
	ajax.setVar("Language", lang);
	ajax.setVar("InOwnDomain", owndomain);
	ajax.setVar("Style", style);
	ajax.requestFile = "/cgi-bin/getmanagedoption.cgi";
	ajax.method = "POST";
	ajax.element = 'servicetype';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = ajaxCompleted;
//	alert("calling ajax");
	ajax.runAJAX();
}

function getLogoOptions(thisform)
{
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "getLogoOptions('"+thisform+"')";
		setTimeout(lRetryStatement, 200);
		return;
	}

	ajaxInUse = 1;

	var artist = document.uploadform.Artist.value;
	var lang = document.general.Language.value;
	var owndomain = document.general.InOwnDomain.value;
	var style = document.general.Style.value;
	var logoposition = getCheckedValue(document.uploadform.LogoPosition);
	var showname = getCheckedValue(document.uploadform.ShowName);
	if (showname == "")
	{
		showname = 0;
	}
	else
	{
		showname = 1;
	}

//	alert("logoposition="+logoposition+", showname="+showname+", artist="+artist+", language="+lang);

	ajax.setVar("Artist", artist);
	ajax.setVar("LogoPosition", logoposition);
	ajax.setVar("ShowName", showname);
	ajax.setVar("Language", lang);
	ajax.setVar("InOwnDomain", owndomain);
	ajax.setVar("Style", style);
	ajax.requestFile = "/cgi-bin/getlogooptions.cgi";
	ajax.method = "POST";
	ajax.element = 'logooptions';
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = ajaxCompleted;
//	alert("calling ajax");
	ajax.runAJAX();
}

function getUserDetailsCompleted()
{
	ajaxCompleted();
	if (document.orderdetails.Surname.disabled)
	{
		if (document.orderdetails.Comments)
		{
			document.orderdetails.Comments.focus();
		}
		else if (document.orderdetails.continueShopping)
		{
			document.orderdetails.continueShopping.focus();
		}
	}
	else
	{
		document.orderdetails.FirstName.focus();
	}
}

function getUserDetails(language, owndomain, style, emailfield, page)
{
//	alert("getUserDetails");
	if (emailfield)
	{
		if (emailfield == document.orderdetails.FromEmail)
		{
			var email = emailfield.value;

			// check for multiple updates requested and schedule access to the ajax resource
			if (ajaxInUse == 1)
			{
				var lRetryStatement = "getUserDetails('"+language+"','"+owndomain+"','"+style+"','"+emailfield+"','"+page+"')";
				setTimeout(lRetryStatement, 200);
				return;
			}

			ajaxInUse = 1;

			ajax.setVar("Language", language);
			ajax.setVar("InOwnDomain", owndomain);
			ajax.setVar("Style", style);
			ajax.setVar("FromEmail", email);
			ajax.setVar("Page", page);
			ajax.requestFile = "/cgi-bin/loadmembereditdetails.cgi";
			ajax.method = "POST";
			ajax.element = 'membereditdetails';
//			ajax.onLoading = whenLoading;
//			ajax.onLoaded = whenLoaded; 
//			ajax.onInteractive = whenInteractive;
			ajax.onCompletion = getUserDetailsCompleted;
//			alert("calling ajax");
			ajax.runAJAX();
		}
	}
}

function rotate(pImageId, pDirection, pImageElement, pImageElementName)
{
	var lForm = document.general;
	var lOk = ValidateArtistEditForm(document.artistedit);

	if (lOk)
	{
		if (document.artistedit && (document.artistedit.OriginPage.value == "artisteditartwork" || document.artistedit.OriginPage.value == "artistediteventwork" || document.artistedit.OriginPage.value == "artistediteventphoto" || document.artistedit.OriginPage.value == "artisteditnewsphoto") && document.sortedlist)
		{
			lForm = document.sortedlist;
		}
		else if (document.artistedit)
		{
			lForm = document.artistedit;
		}
		lForm.Action.value = ("rotate"+pDirection+pImageId);
//		lForm.submit();
		var lArtist;
		if (lForm.OriginArtist.value != 0)
		{
			lArtist = lForm.OriginArtist.value;
		}
		else
		{
			lArtist = lForm.Artist.value;
		}
//		alert("before rotateImage in sack");
//		alert("rotateImage("+lForm.UserName.value+", "+lForm.SessionId.value+", "+lForm.Page.value+", "+lArtist+", "+lForm.Action.value+", "+lForm.PhotoId.value+", "+lForm.Artwork.value+", "+lForm.PressReleaseId.value+", "+lForm.EventId.value+", "+lForm.Language.value+", "+lForm.InOwnDomain.value+", "+lForm.Style.value+");");
		rotateImage(lForm.UserName.value, lForm.SessionId.value, lForm.Page.value, lArtist, lForm.Action.value, lForm.PhotoId.value, lForm.Artwork.value, lForm.PressReleaseId.value, lForm.EventId.value, lForm.Language.value, lForm.InOwnDomain.value, lForm.Style.value, pImageElement, pImageElementName, lForm.ArtAcumenId.value);
//		alert("after rotateImage in sack");
	}
}

function rotateImageCompleted()
{
	ajaxCompleted();

	var now = new Date();
	if (document.images)
	{
		var lImage = "document.images."+imageName
		var lTheImage = eval(lImage);

		lTheImage.src = lTheImage.src + '?' + now.getTime();
	}
}

function rotateImage(username, sessionid, page, artist, action, photoid, artworkid, pressreleaseid, eventid, language, owndomain, style, imageelement, imageelementname, artacumenid)
{
//	alert("rotateImage");
	// check for multiple updates requested and schedule access to the ajax resource
	if (ajaxInUse == 1)
	{
		var lRetryStatement = "rotateImage('"+username+"','"+sessiond+"','"+page+"','"+artist+"','"+action+"','"+photoid+"','"+artworkid+"','"+pressreleaseid+"','"+eventid+"','"+language+"','"+owndomain+"','"+style+"','"+imageelement+"','"+imageelementname+"','"+artacumenid+"')";
		setTimeout(lRetryStatement, 200);
		return;
	}

	ajaxInUse = 1;
	imageName = imageelementname;

	ajax.setVar("Language", language);
	ajax.setVar("InOwnDomain", owndomain);
	ajax.setVar("Style", style);
	ajax.setVar("UserName", username);
	ajax.setVar("SessionId", sessionid);
	ajax.setVar("Page", page);
	ajax.setVar("Artist", artist);
	ajax.setVar("Action", action);
	ajax.setVar("PhotoId", photoid);
	ajax.setVar("Artwork", artworkid);
	ajax.setVar("PressReleaseId", pressreleaseid);
	ajax.setVar("EventId", eventid);
	ajax.setVar("ImageElementName", imageelementname);
	ajax.setVar("ArtAcumenId", artacumenid);
	ajax.requestFile = "/cgi-bin/rotateimage.cgi";
	ajax.method = "POST";
	ajax.element = imageelement;
//	ajax.onLoading = whenLoading;
//	ajax.onLoaded = whenLoaded; 
//	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = rotateImageCompleted;
//	alert("calling ajax");
	ajax.runAJAX();
}