//Common javascript functions
function setSelect(frmName,selName,nOption)
{
	var ddNumbers = document.forms[frmName][selName];
	for (var nCount = 0 ; nCount< ddNumbers.length ; nCount++ )
	{
		if( ddNumbers[nCount].value == nOption)
		{
			ddNumbers.selectedIndex = nCount;
			break;
		}
	}
}

function validateForm(whichForm) {
	validContent = true;
	var errorMessage = "The following problems occured with the form:\n";
	var separator = "______________________________________________________________";
	errorMessage += separator + "\n\n";
	for (i=0;i<theFields.length;i++) {
		//the current fields
		currField = eval("document." + whichForm + "." + theFields[i][0]);

		//--------------

		//check which type the field is		
		if (theFields[i][4] == "integer") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /\d+/;
				if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more digit(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][3] + " or less digit(s).\n";
				} else if (!re.exec(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain only digits.\n";
				}
			}
		} else if (theFields[i][4] == "decimal") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /[\d\.]+/;
				if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more digit(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][3] + " or less digit(s).\n";
				} else if (!re.exec(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain only digits or a period.\n";
				}
			}
		} else if (theFields[i][4] == "money") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /\$?\d+(\.\d{2})?/;
				if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more digit(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][3] + " or less digit(s).\n";
				} else if (!re.exec(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be a valid dollar amount ($123.45).\n";
				}
			}
		} else if (theFields[i][4] == "string") {
			if (theFields[i][5]) {
				if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "binary") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /[true,false,0,1]/;
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be either true or false.\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "hex") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /[A-Fa-f0-9]{6}$/
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be a hexidecimail color code (#AF614C).\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "email") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /^([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([a-zA-Z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\])$/
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be a properly formatted email address (you@yourserver.com).\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "phone") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /^1?\s*[-\.]?\s*(\d{3}|\(\s*\d{3}\s*\))\s*[-\.]?\s*\d{3}\s*[-\.]?\s*\d{4}$/
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be a properly formatted phone number (123)-456-7890.\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "zip") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /^\d{5}(-?\d{4})?$/
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be a 5 or 9 digit zip code (12345-6789).\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "date") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /^\d{1,2}\/|-\d{1,2}\/|-\d{4}$/
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be in date format (MM/DD/YYYY).\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4] == "file") {
			if (theFields[i][5]) {
				if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain the name of a file on your drive.\n";
				}
			}
		} else if (theFields[i][4] == "ssn") {
			if (theFields[i][5] || (!theFields[i][5] && currField.value != "")) {
				re = /^\d{3}[\-\. ]?\d{2}[\-\. ]?\d{4}$/
				if (!re.test(currField.value)) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must be a valid social security number (123-45-6789).\n";
				} else if (currField.value.length < theFields[i][2]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain " + theFields[i][2] + " or more character(s).\n";
				} else if (currField.value.length > theFields[i][3]) {
					validContent = false;
					errorMessage += "\"" + theFields[i][1] + "\" must contain less than " + theFields[i][3] + " or less character(s).\n";
				}
			}
		} else if (theFields[i][4].indexOf("cc-") == 0) {
			var types = theFields[i][4].substring((theFields[i][4].indexOf("(") + 1),theFields[i][4].indexOf(")")).split("|");
			validCC = false;
			for (j=0;j<types.length;j++) {
				if (types[j] == "visa") {
					// Visa: length 16, prefix 4, dashes optional.
					re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
				} else if (types[j] == "mc") {
					// Mastercard: length 16, prefix 51-55, dashes optional.
					re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
				} else if (types[j] == "discover") {
					// Discover: length 16, prefix 6011, dashes optional.
					re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
				} else if (types[j] == "amex") {
					// American Express: length 15, prefix 34 or 37.
					re = /^3[4,7]\d{13}$/;
				} else if (types[j] == "diners") {
					// Diners: length 14, prefix 30, 36, or 38.
					re = /^3[0,6,8]\d{12}$/;
				}
				if (re.test(currField.value)) {
					validCC = true;
				}
			}
			if (validCC) {
				// Checksum ("Mod 10")
				// Add even digits in even length strings or odd digits in odd length strings.
				var checksum = 0;
				var currCcNum = currField.value.replace(/\-/g,"");
				
				for (j=(2-(currCcNum.length % 2)); j<=currCcNum.length; j+=2) {
					checksum += parseInt(currCcNum.charAt(j-1));
				}
				// Analyze odd digits in even length strings or even digits in odd length strings.
				for (j=(currCcNum.length % 2) + 1; j<currCcNum.length; j+=2) {
					var digit = parseInt(currCcNum.charAt(j-1)) * 2;
					if (digit < 10) { 
						checksum += digit; 
					} else { 
						checksum += (digit-9);
					}
				}
				if ((checksum % 10) != 0) {
					validCC = false;
				}			
			}
			if (!validCC) {
				validContent = false;
				errorMessage += "\"" + currField.value + "\" is not a valid credit card number.\n";
			}
		}
	}
	errorMessage += separator;
	if (!validContent) alert(errorMessage);
	return validContent;
}

function storeCheckbox(checkbox, input)
{
	for (var i=0; i<checkbox.length; i++)
	{
    	if (checkbox[i].checked) 
		{
			if(input.value.length > 0)
				input.value = input.value + ', ';
        	input.value = input.value + checkbox[i].value;
		}
	}
}

function storeCheckboxes()
{
	storeCheckbox(document.register.purchaseResponsibility, document.register.hdnPurchaseResponsibility);
	storeCheckbox(document.register.modalities, document.register.hdnModalities);
	storeCheckbox(document.register.brands, document.register.hdnBrands);
}

function popWindow (url,winName,myWidth,myHeight,myScrollbars,myTop,myLeft,myMenubar,myResize) 
{

	myLeft= ((screen.width - myWidth) / 2);
	myTop = ((screen.height - myHeight) / 2);
	var popWin = window.open (url, winName,"width="+myWidth+",height="+myHeight+",scrollbars="+myScrollbars+",top="+myTop+",left="+myLeft+",menubar="+myMenubar+",resizable="+myResize+",location=no,bgcolor=#ffffff");
	self.name = "main";
	popWin.focus();
}
		
	  function matchEmails()
	  {
		var bMatch = false;
		
			if(document.register.email.value == document.register.email_verify.value && document.register.email.value)
				bMatch = true;
				
		else
		{
			alert("Please Verify the Email Address You Entered");
			document.register.email.focus();
		}
		return bMatch;
	  }



function setHeight(h)
	{
        var fObject = document.getElementById('flashID');
       		fObject.style.height = (h) + "px";
	};
	
function getSWF_artwork(file, w, h) {
				
			var so_hdr = new SWFObject("/flash/artwork.swf", "art_object", w, h, "8", "#ffffff");
				so_hdr.addVariable("image", file);//jpg or swf
				so_hdr.addParam("scale", "noscale");
				so_hdr.write("artwork");

}
function getSWF_image(file, w, h, name, linkto) {
				
			var so_hdr = new SWFObject("/flash/swfimage.swf", name, w, h, "8", "#ffffff");
				so_hdr.addVariable("image", file);//jpg or swf
				so_hdr.addVariable("linkto", linkto);//optional
				so_hdr.addParam("scale", "noscale");
				so_hdr.write(name);

}


function launch_donate() {
				
	var a=popWindow('/donate.php','donate','720','550','yes');//donate
	
}



