/*-----------------------------------------------------------General---------------*/
function getIt(thisId) {
	return xbGetElementById(thisId);
}

function getTags(thisTag) {
	return document.getElementsByTagName(thisTag);
}

/*-----------------------------------------------------------Interface-------------*/
var oldClass;
var oldCursor;
var oldColor;
function linkOn(thisId) {
	if (!thisId) thisId = window.event.srcElement;
	oldClass = thisId.className
	oldCursor = thisId.style.cursor;
	oldColor = thisId.style.color;
	//thisId.className += ' linkOn';
	//alert(window.event.type);
	if (thisId.style.cursor == 'pointer') {}
	else {thisId.style.cursor = 'pointer';}
	thisId.style.color = '#FF9900';
	return false;
}

function linkOff(thisId) {
	if (!thisId) thisId = window.event.srcElement;
	//thisId.className = oldClass;
	//window.status = '';
	thisId.style.cursor = oldCursor;
	thisId.style.color = oldColor;
	return false;
}

function fullSizeImage() {
	oWin = window.open('imagePreview.php?src='+top.currentImageSrc+'&', 'FullSizePreview', 'width=700,height=500,scrollbars=no,resizable=yes,menubar=yes,statusbar=no,toolbar=no');
}

function validateString(thisStr, type) {
	switch (type) {
	case 'phone':
		pattern = /[^0-9-.() ]/i;
		break;
	case 'email':
		pattern = /[@]/i
		result = thisStr.search(pattern);
		if (result == -1) {
			return 1; 
			break;
		}
		pattern = /[^a-z0-9.-_@]|www|http:|.[a-z]{2,3}\//i;
		break;
	case 'name':
		pattern = /[^a-z0-9.', ]/i;
		break;
	case 'url':
		patter = /(http:\/\/)?[a-z0-9.-_]*/i;
		break;
	default: //Suspicious characters
		pattern = /[`~|]/i;
	}
	result = thisStr.search(pattern);
	if (result == -1) return 0; // OK
	else return 1;				// Not OK
}

function validateLicenseForm() {
	oForm		= document.getElementById('stockRequestForm');
	aInputs 	= oForm.getElementsByTagName('input');
	aSelects 	= oForm.getElementsByTagName('select');
	aTextAreas 	= oForm.getElementsByTagName('textarea');
	
	usageType = document.getElementById('usageType').value;
	
	aRequired = new Array('name', 'address1', 'city', 'state', 'zipCode','country','phone','email','client','deadline','usageType','rights','duration','delivery');
	
	aPrint	= new Array('printSize', 'printCirculation', 'printDistribution');
	
	aOnline = new Array('onlineURL', 'onlineHeight', 'onlineWidth', 'onlinePlacement');

	for (i=0; i<aRequired.length; i++) {
		thisItem = document.getElementById(aRequired[i]);
		if (thisItem.tagName.toLowerCase() == 'input') {
			result = validateInput(thisItem);
		}
		else if (thisItem.tagName.toLowerCase() == 'select') {
			result = validateSelect(thisItem);
		}
		else {result = false;}
		
		if (!result) {return false;}
	}
	
	if (usageType == 'online') {
		for (i=0; i<aOnline.length; i++) {
			thisItem = document.getElementById(aOnline[i]);
			if (thisItem.tagName.toLowerCase() == 'input') {
				result = validateInput(thisItem);
			}
			else if (thisItem.tagName.toLowerCase() == 'select') {
				result = validateSelect(thisItem);
			}
			else {result = false;}
			
			if (!result) {return false;}
		}
	}
	else {
		for (i=0; i<aPrint.length; i++) {
			thisItem = document.getElementById(aPrint[i]);
			if (thisItem.tagName.toLowerCase() == 'input') {
				result = validateInput(thisItem);
			}
			else if (thisItem.tagName.toLowerCase() == 'select') {
				result = validateSelect(thisItem);
			}
			else {result = false;}
			
			if (!result) {return false;}
		}
	}
	
	
	if (document.getElementById('tocAgree').checked === false) {
		alert("You must agree to our terms and conditions");
		aInputs[i].focus();
		return false;
	}
	
	return true;
}

function validateInput(thisInput) {
	var result = 2;  // Denotes unchecked, 0 = String OK, 1 = Problem string
	switch(thisInput.name) {
	case 'name':
		result = validateString(thisInput.value, 'name');
		break;
	case 'phone':
		result = validateString(thisInput.value, 'phone');
		break;
	case 'email':
		result = validateString(thisInput.value, 'email');
		break;
	case 'onlineURL':
		result = validateString(thisInput.value, 'url');
		break;
	default:
		if (thisInput.type == 'text') {
			result = validateString(thisInput.value);
		}
		else {}
		break;
	}

	if (thisInput.type == 'text') {
		switch (result) {
		case 0:
			if (thisInput.value.length < 1) {
				switch(thisInput.name) {
				case 'address2': break;
				default:
					alert('Please enter a value for this field.');
					thisInput.focus();
					return false;
				}
			}
			else {
				return true;
			}
			break;
		case 1:
			alert('Invalid character entry.  If this messages persits\nplease contact us at the e-mail address below.');
			thisInput.focus();
			return false;
			break;
		default:
			alert("Input not checked.");
			return false;
			break;
		}
	}
	
	return true;
}

function validateSelect(thisSelect) {
	if (thisSelect.value.length < 1) {
		alert('Please make a selection.');
		thisSelect.focus();
		return false;
	}
	return true;
}

function showTOC() {
	window.open('company/information/faq.html', 'tocWindow', 'width=800,height=560,resizable=yes,scrollbars=yes');
}
