
//used for bookmarks and read
function changebuttonimg(imgname) {
	imgString = document [imgname].src;
	aOneIndex = imgString.indexOf ('ba.gif', 0);
	aTwoIndex = imgString.indexOf ('xa.gif', 0);
	imgStartString = (aOneIndex != -1) ? imgString.substring (0, aOneIndex) : imgString.substring (0, aTwoIndex);
	newSrc = (aOneIndex != -1) ? imgStartString + "xa.gif" : imgStartString + "ba.gif";
	toggleImage (imgname, newSrc);
	return true;
}

//used to toggle images/buttons
function toggleImage (button_name, newsrc) {
	document [button_name].src = newsrc;
	return true;
}

// this will preload images passed
function preloadImages (sources){ // pass this a list of image names to preload
	myImages = new Array ();
	for (i = 0; i < sources.length; i++) {
		myImages[i] = new Image();
		myImages[i].src = sources[i];
	}
}

function toggleButton(button_name) {
	buttonString = document [button_name].src;
	aDotIndex = buttonString.indexOf ('a.gif', 0);
	noADotIndex = buttonString.indexOf ('.gif', 0);
	buttonStartString = (aDotIndex != -1) ? buttonString.substring (0, aDotIndex) : buttonString.substring (0, noADotIndex);
	newSrc = (aDotIndex != -1) ? buttonStartString + ".gif" : buttonStartString + "a.gif";
	toggleImage (button_name, newSrc);
	return true;
}

function preloadButtons () {
	imagesToPreload = new Array ();
	for (i=0; i<document.images.length; i++) {
		if (document.images[i].name.indexOf('preload', 0) != -1) {
			thisString = document.images[i].src;
			dotIndex = thisString.indexOf('.gif', 0);
			imagesToPreload [imagesToPreload.length] = thisString;
			imagesToPreload [imagesToPreload.length] = thisString.substring (0, dotIndex) + 'a.gif';
		}
	}
	if (imagesToPreload.length) {preloadImages (imagesToPreload);}
}
//If there is an Error then send back a message
function form_onError(errorMessageText) {
	alert(errorMessageText);
       	return false;
}

function checkHaveValues (checkList) {
	loopLength = checkList.length / 3;
	for (x=0;x<loopLength;x++) {
		message = checkList[(x*3)];
		checkItem = checkList[(x*3)+1];
		type = checkList[(x*3)+2];
		if (!form_hasValue(checkItem,type)) {
			form_onError(message);
			//if (checkItem.type == "TEXT" || checkItem.type == "PASSWORD") {
				//checkItem.focus();
			//}
			return false;
		}
	}
	return true;
}

function form_hasValue(object, obj_type, optional_1, optional_2, optional_3) {
	switch (obj_type) {
		case "TEXT": 
			if (object.value.length == 0) {return false;}
			return true;
		case "PASSWORD":
			if (object.value.length == 0) {return false;}
			return true;
		case "EMAIL":
			if (object.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {return false;}
			return true;
		case "SELECT":
	        for (i=0; i < object.length; i++) {
				if (object.options[i].selected) { return true;}
			}
			return false;
		case "SINGLE_VALUE_RADIO":
			if (object.checked) {return true;}
			return false;
		case "SINGLE_VALUE_CHECKBOX":
			if (object.checked) {return true;}
			return false;
		case "RADIO":
	        for (i=0; i < object.length; i++) {
				if (object[i].checked) {return true;}
			}
	    	return false;
		case "CHECKBOX":
	        for (i=0; i < object.length; i++) {
				if (object[i].checked) {return true;}
			}
	    	return false;
		case "EURO_DATE":
			var firstSlash, secondSlash, month, day, year;
			if (object.value.search(/^\d{1,2}\/\d{1,2}\/\d{1,4}$/) == -1) {return false;}
			var firstSlash = object.value.indexOf('/');
			var month = object.value.substring(0, firstSlash);
			if (!((month >= 1) && (month <= 12))) {return false;}
			var secondSlash = object.value.indexOf('/', firstSlash + 1);
			var year = object.value.substring(secondSlash+1,object.value.length);
			if (!((year >= 1900) && (year <= 2100))) {return false;}
			var day = object.value.substring(firstSlash+1, secondSlash);
			if (!form_checkDayOfMonth(year,month,day)) {return false;}
			return true;
		case "CREDIT_DATE":
		    var firstSlash, month, year;
			if (object.value.length == 0) {return false;}
			if (object.value.search(/^\d{1,2}\/\d{1,2}$/) == -1) {return false;}
			var firstSlash = object.value.indexOf('/');
			var month = object.value.substring(0, firstSlash);
			if (!((month >= 1) && (month <= 12))) {return false;}
			var year = object.value.substring(firstSlash+1,object.value.length);
			if (!((year >= 0) && (year <= 99))) {return false;}
			return true;
		case "INTEGER":
			if (object.value.length == 0) {return false;}
			else {
				if (object.value.search(/^\d+$/) == -1) {return false;}
			}
			return true;
		case "NUMBER":
			if (object.value.search(/^\-?\+?\d*\.?\d+$/) == -1) {return false;}
			return true;
		case "PHONE_NUMBER":
			if (object.value.search(/^[ \+\-\(\)\d]{5,}$/) == -1) {return false;}
			return true;
		case "CREDITCARDNUMBER":
			if (object.value.search(/^[\d| ]+$/) == -1) {return false;}
			return true;
	}
}
