function showScreenshots(host)
{
	tb_show('Icon', host + '/images/screenshots/KidFlix/Version-1_0/Screenshot1.png', 'screenshots');
}

function showIDCScreenshots(host)
{
	tb_show('Main Window with To Do\'s', host + '/images/screenshots/iDeskCal/Version-2_0/iDeskCalScreenshot1.png', 'screenshots');
}

function showTPScreenshots(host)
{
	tb_show('Device UID', host + '/images/screenshots/TweetPush/Version-1_0/Screenshot1.png', 'screenshots');
}

function showIDCIcon(host)
{
	tb_show('iDeskCal', host + '/images/iDeskCalIconHuge.png', 'iDCIcon');
}

function appleLicenseFormCheck()
{
	var hasError = 0;

	if (document.getElementById("firstname").value == "" && hasError == 0)
	{
		alert("Please enter your first name before continuing");
		
		hasError = 1;
	}

	if (document.getElementById("lastname").value == "" && hasError == 0)
	{
		alert("Please enter your last name before continuing");
		
		hasError = 1;
	}

	if (document.getElementById("email").value == "" && hasError == 0)
	{
		alert("Please enter your email before continuing");
		
		hasError = 1;
	}

	var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(apple+\.|euro+\.apple+\.|asia+\.apple+\.|filemaker+\.|braeburncapital+\.)+(com)+$/i;

	if (!pattern.test(document.getElementById("email").value) && hasError == 0)
	{
		alert("The email address you entered does not appear to be a valid Apple (or Apple subsidiary) email address.\n\nIf you believe this is in error, please email support@hashbangind.com from your Apple email address and we will generate a license for you.");

		hasError = 1;
	}

	if (hasError == 0)
	{
		document.forms[0].submit();
	}
}

function licenseLookupFormCheck()
{
	var hasError = 0;

	var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/i;

	if (!pattern.test(document.getElementById("email").value) && hasError == 0)
	{
		alert("The email address you entered does not appear to be a valid email address.\n\nIf you believe this is in error, please email support@hashbangind.com and we will lookup your license for you.");

		hasError = 1;
	}

	if (hasError == 0)
	{
		document.forms[0].submit();
	}
}

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode

	if (charCode > 31 && (charCode < 48 || charCode > 57))
	   return false;

	return true;
}

function verifyPurchaseFrm()
{
	var Error = false;

	if (Number(document.getElementById("iDeskCalQty").value) < 1 && Number(document.getElementById("iDeskCalFamilyQty").value) < 1)
	{
		alert("Please enter a valid Quantity");

		document.getElementById("iDeskCalQty").focus();

		Error = true;
	}

	if (Error == false)
	{
		document.forms[0].submit();
	}
}

function removePlaceHolder(field)
{
	if ((field.id == "cc_month" && field.value == "mm") || (field.id == "cc_year" && field.value == "yyyy") || (field.id == "order_first_name" && field.value == "First Name") || (field.id == "order_last_name" && field.value == "Last Name"))
	{
		field.value = "";
		field.style.color = "#000";
	}
}

function placePlaceHolder(field)
{
	if (field.value == "")
	{
		if (field.id == "cc_month")
		{
			field.value = "mm"
			field.style.color = "#aaa";
		}
		else if (field.id == "cc_year")
		{
			field.value = "yyyy"
			field.style.color = "#aaa";
		}
		else if (field.id == "order_first_name")
		{
			field.value = "First Name"
			field.style.color = "#aaa";
		}
		else if (field.id == "order_last_name")
		{
			field.value = "Last Name"
			field.style.color = "#aaa";
		}
	}
}

function creditcardcheck(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode

	if (charCode > 31 && (charCode < 48 || charCode > 57))
	   return false;

	checkCardType();

	return true;
}

function checkCardType()
{
	var ccnum = document.getElementById("cc_number").value;
	
	if (ccnum.substr(0, 1) == 4)
	{
		//Visa
		document.getElementById("visa").src = "/images/visa.gif";
		document.getElementById("mc").src = "/images/mastercard-gray.png";
		document.getElementById("amex").src = "/images/amex-gray.png";
		document.getElementById("discover").src = "/images/discover-gray.png";
		document.getElementById("ccType").value = "Visa";
	}
	else if (ccnum.substr(0, 2) == 51 || ccnum.substr(0, 2) == 52 || ccnum.substr(0, 2) == 53 || ccnum.substr(0, 2) == 54 || ccnum.substr(0, 2) == 55)
	{
		//Master Card
		document.getElementById("visa").src = "/images/visa-gray.png";
		document.getElementById("mc").src = "/images/mc.gif";
		document.getElementById("amex").src = "/images/amex-gray.png";
		document.getElementById("discover").src = "/images/discover-gray.png";
		document.getElementById("ccType").value = "MasterCard";
	}
	else if (ccnum.substr(0, 4) == 6011)
	{
		//Discover
		document.getElementById("visa").src = "/images/visa-gray.png";
		document.getElementById("mc").src = "/images/mastercard-gray.png";
		document.getElementById("amex").src = "/images/amex-gray.png";
		document.getElementById("discover").src = "/images/discover.gif";
		document.getElementById("ccType").value = "Discover";
	}
	else if (ccnum.substr(0, 2) == 34 || ccnum.substr(0, 2) == 37)
	{
		//AMEX
		document.getElementById("visa").src = "/images/visa-gray.png";
		document.getElementById("mc").src = "/images/mastercard-gray.png";
		document.getElementById("amex").src = "/images/amex.gif";
		document.getElementById("discover").src = "/images/discover-gray.png";
		document.getElementById("ccType").value = "Amex";
	}
	else
	{
		document.getElementById("visa").src = "/images/visa-gray.png";
		document.getElementById("mc").src = "/images/mastercard-gray.png";
		document.getElementById("amex").src = "/images/amex-gray.png";
		document.getElementById("discover").src = "/images/discover-gray.png";
		document.getElementById("ccType").value = "";
	}
}

function Mod10(ccNumb)
{
	var valid = "0123456789"  // Valid digits in a credit card number
	var len = ccNumb.length;  // The length of the submitted cc number
	var iCCN = parseInt(ccNumb);  // integer of ccNumb
	var sCCN = ccNumb.toString();  // string of ccNumb
	sCCN = sCCN.replace (/^\s+|\s+$/g,'');  // strip spaces
	var iTotal = 0;  // integer total set at zero
	var bNum = true;  // by default assume it is a number
	var bResult = false;  // by default assume it is NOT a valid cc
	var temp;  // temp variable for parsing string
	var calc;  // used for calculation of each digit

	// Determine if the ccNumb is in fact all numbers
	for (var j=0; j<len; j++)
	{
		temp = "" + sCCN.substring(j, j+1);

		if (valid.indexOf(temp) == "-1"){bNum = false;}
	}

	// if it is NOT a number, you can either alert to the fact, or just pass a failure
	if(!bNum)
	{
		bResult = false;
	}

	// Determine if it is the proper length 
	if((len == 0)&&(bResult))
	{
		// nothing, field is blank AND passed above # check
		bResult = false;
	}
	else
	{
		// ccNumb is a number and the proper length - let's see if it is a valid card number
		if(len >= 15)
		{
			// 15 or 16 for Amex or V/MC
			for (var i = len; i > 0; i--)
			{
				// LOOP throught the digits of the card
				calc = parseInt(iCCN) % 10;  // right most digit
				calc = parseInt(calc);  // assure it is an integer
				iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
				i--;  // decrement the count - move to the next digit in the card
				iCCN = iCCN / 10; // subtracts right most digit from ccNumb
				calc = parseInt(iCCN) % 10; // NEXT right most digit
				calc = calc *2; // multiply the digit by two

				// Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
				// I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
				switch(calc)
				{
					case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
					case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
					case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
					case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
					case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
					default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
				}

				iCCN = iCCN / 10;  // subtracts right most digit from ccNum
				iTotal += calc;  // running total of the card number as we loop
			}

			if ((iTotal%10) == 0)
			{
				// check to see if the sum Mod 10 is zero
				bResult = true;  // This IS (or could be) a valid credit card number.
			}
			else
			{
				bResult = false;  // This could NOT be a valid credit card number
			}
		}
	}

	return bResult; // Return the results
}

function verifyPaymentInfo(qty, totalAmt, famQty)
{
	var Error = false;

	if ((document.getElementById("order_first_name").value == "" || document.getElementById("order_first_name").value == "First Name") && Error == false)
	{
		alert("Please enter a First Name");
		
		document.getElementById("order_first_name").focus();
		
		Error = true;
	}
	
	if ((document.getElementById("order_last_name").value == "" || document.getElementById("order_last_name").value == "Last Name") && Error == false)
	{
		alert("Please enter a Last Name");
		
		document.getElementById("order_last_name").focus();
		
		Error = true;
	}
	
	if (document.getElementById("order_address1").value == "" && Error == false)
	{
		alert("Please enter an Address");
		
		document.getElementById("order_address1").focus();
		
		Error = true;
	}
	
	if (document.getElementById("order_city").value == "" && Error == false)
	{
		alert("Please enter a City");
		
		document.getElementById("order_city").focus();
		
		Error = true;
	}
	
	if (document.getElementById("order_state").selectedIndex == 0 && (document.getElementById("country").selectedIndex == 0 || document.getElementById("country").selectedIndex == 1) && Error == false)
	{
		alert("Please enter a State");
		
		document.getElementById("order_state").focus();
		
		Error = true;
	}

	if (document.getElementById("order_state").selectedIndex != 0 && document.getElementById("country").selectedIndex != 0 && document.getElementById("country").selectedIndex != 1 && Error == false)
	{
		document.getElementById("order_state").selectedIndex = 0;
	}

	if (document.getElementById("order_zipcode").value == "" && Error == false)
	{
		alert("Please enter a Zip Code/Postal Code");
		
		document.getElementById("order_zipcode").focus();
		
		Error = true;
	}
	
	if (document.getElementById("email").value == "" && Error == false)
	{
		alert("Please enter an Email Address");
		
		document.getElementById("email").focus();
		
		Error = true;
	}
	
	var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/i;

	if (!pattern.test(document.getElementById("email").value) && Error == false)
	{
		alert("Please enter a valid email address");
		
		document.getElementById("email").focus();

		Error = true;
	}

	if (totalAmt > 0)
	{
		if (document.getElementById("cc_number").value == "" && Error == false)
		{
			alert("Please enter a Credit Card Number");
		
			document.getElementById("cc_number").focus();
		
			Error = true;
		}
	
		if (!Mod10(document.getElementById("cc_number").value) && Error == false)
		{
			alert("Please enter a valid Credit Card Number");
		
			document.getElementById("cc_number").focus();
		
			Error = true;
		}
	
		if ((document.getElementById("cc_month").value == "" || document.getElementById("cc_month").value == "mm" || document.getElementById("cc_month").value < 1 || document.getElementById("cc_month").value > 12) && Error == false)
		{
			alert("Please enter a valid Expiration Month");
		
			document.getElementById("cc_month").focus();
		
			Error = true;
		}
	
		if (document.getElementById("cc_month").value.length < 2 && Error == false)
		{
			document.getElementById("cc_month").value = "0" + document.getElementById("cc_month").value;
		}

		var today = new Date();
		var currentYear = today.getFullYear();

		if ((document.getElementById("cc_year").value == "" || document.getElementById("cc_year").value == "yyyy" || document.getElementById("cc_year").value < currentYear) && Error == false)
		{
			alert("Please enter a valid Expiration Year");
		
			document.getElementById("cc_year").focus();

			Error = true;
		}

		if (document.getElementById("ccType").value == "Amex" && document.getElementById("cc_code").value.length != 4 && Error == false)
		{
		    alert("Please enter a valid CVV Number");
		
			document.getElementById("cc_code").focus();

			Error = true;
		}
		else if (document.getElementById("ccType").value != "Amex" && document.getElementById("cc_code").value.length != 3 && Error == false)
		{
		    alert("Please enter a valid CVV Number");
		
			document.getElementById("cc_code").focus();

			Error = true;
		}
	}

	for (var index = 0; index < qty; index++)
	{
		if (trim(document.getElementById("registerTo" + index).value) == "" && Error == false)
		{
			alert("Please enter a name to Register as");
		
			document.getElementById("registerTo" + index).focus();
		
			Error = true;
		}
	}
	
	for (var index = 0; index < famQty; index++)
	{
		if (trim(document.getElementById("regToFam" + index).value) == "" && Error == false)
		{
			alert("Please enter a name to Register as");
		
			document.getElementById("regToFam" + index).focus();
		
			Error = true;
		}
	}

	if (Error == false)
	{
		document.forms[0].submit();
	}
}

function doCompletePPPayment(qty, elem, famQty)
{
	var Error = false;

	for (var index = 0; index < qty; index++)
	{
		if (trim(document.getElementById("registerTo" + index).value) == "" && Error == false)
		{
			alert("Please enter a name to Register as");

			document.getElementById("registerTo" + index).focus();
		
			Error = true;
		}
	}

	for (var index = 0; index < famQty; index++)
	{
		if (trim(document.getElementById("regToFam" + index).value) == "" && Error == false)
		{
			alert("Please enter a name to Register as");

			document.getElementById("regToFam" + index).focus();
		
			Error = true;
		}
	}
	
	if (Error == false)
	{
		elem.disabled = true;

		document.forms[0].submit();
	}
}

function doCompletePayment(elem)
{
	elem.disabled = true;

	document.forms[0].submit();
}

function doCancelOrder()
{
	document.location.href="cancelOrder.php";
}

function iDCUpgradeVerify()
{
	if (document.getElementById("email").value == "")
	{
		alert("Please enter an email address");
	
		document.getElementById("email").focus();
	}
	else
	{
		document.forms[0].submit();
	}
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}