var fieldsToCheck = new Array();
fieldsToCheck.push("email", "iam1", "iam2", "interested1", "interested2", "for1", "for2", "for3", "for4", "birthday");
fieldsToCheck.push("birthmonth", "birthyear", "postalCode");

var fieldsToFill = new Array();
fieldsToFill.push("username", "state", "city");

var gPrefix = "";
var missingFields = new Array();
var gForm = false;	
function checkForm(theForm, isFromPopup)
{	
	missingFields = new Array();	
	gForm = theForm;
	
	//we have to change the ids on the templates so they are designated as from the popup	
	if(isFromPopup)
	{
		gPrefix = "pop_";
		
		var bdayTemplateContainer = document.getElementById('pop_birthday_templates');
		var bdayTemplates = bdayTemplateContainer.getElementsByTagName("select");
		for(i=0; i < bdayTemplates.length; i++) 
		{
			if(bdayTemplates[i].id.search(/pop_/) == -1)
			{
				bdayTemplates[i].id = gPrefix + bdayTemplates[i].id;
			}			
		}	
	}
	else 
	{
		gPrefix = "";
	}
		
	for(var i=0; i<fieldsToCheck.length; i++)
	{	
		switch(fieldsToCheck[i])
		{
			case "email":
			{
				var email = document.getElementById(gPrefix + "email");
				if(email.value != "")
				{
					var t = email.value.split("@")
					if(t.length < 2)
					{
						missingFields.push(fieldsToCheck[i])
					}
				}
				else
				{
					missingFields.push(fieldsToCheck[i]);
				}
				break;
			}
			
			case "iam1": case "iam2":
			{
				var cases = new Array("iam1", "iam2");
				if(!checkIfChecked(cases))
				{
					missingFields.push(fieldsToCheck[i])
				}
				break;
			}
			
			case "interested1": case "interested2":
			{
				var cases = new Array("interested1", "interested2");
				if(!checkIfChecked(cases))
				{
					missingFields.push(fieldsToCheck[i])
				}				
				break;
			}
			
			case "for1": case "for2": case "for3": case "for4":
			{
				var cases = new Array("for1", "for2", "for3", "for4");
				if(!checkIfChecked(cases))
				{
					missingFields.push(fieldsToCheck[i])
				}
				break;
			}
			
			case "birthday":
			{			
				if(!checkIfSelected(fieldsToCheck[i]))
				{
					missingFields.push(fieldsToCheck[i])
				}				
				break;
			}
			
			case "birthmonth":
			{
				if(!checkIfSelected(fieldsToCheck[i]))
				{
					missingFields.push(fieldsToCheck[i])
				}						
				break;
			}
			
			case "birthyear":
			{
				if(!checkIfSelected(fieldsToCheck[i]))
				{
					missingFields.push(fieldsToCheck[i])
				}						
				break;
			}
		
			case "country":
			{
				if(isFromPopup)
				{
					var countryTemplateContainer = document.getElementById("pop_country_templates");
					var countryTemplates = countryTemplateContainer.getElementsByTagName("select")
					for(j=0; j < countryTemplates.length; j++) 
					{
						if(countryTemplates[j].id.search(/pop_/) == -1) 
						{
							countryTemplates[j].id = gPrefix + countryTemplates[j].id;
						}		
					}		
				}				
				if(!checkIfSelected(fieldsToCheck[i]))
				{
					missingFields.push(fieldsToCheck[i])
				}						
				break;				
			}
		
			case "postalCode":
			{
				var postalCode = document.getElementById(gPrefix + fieldsToCheck[i]);
				var cityElement = document.getElementById(gPrefix + "city");
				var stateElement = document.getElementById(gPrefix + "state");
				doZip(postalCode, cityElement, stateElement);
				if(postalCode.value == "" && postalCode.value.length != 5)
				{
					missingFields.push(fieldsToCheck[i])
				}
				break;
			}
		}
	}//END fieldsToCheck
}

/*called from doZip.js dozip()*/
function checkFieldsToFill()
{
	for (var i = 0; i < fieldsToFill.length; i++) 
	{
		switch (fieldsToFill[i]) 
		{
			case "username":
			{
				var username = document.getElementById(gPrefix + fieldsToFill[i]);
				var email = document.getElementById(gPrefix + "email");
				var t = email.value.split("@");
				var zip = document.getElementById(gPrefix + "postalCode");
				username.value = t[0] + zip.value;
				
				break;
			}
			case "state":
			{
				var state = document.getElementById(gPrefix + fieldsToFill[i]);
				if(state.value == "")
				{
					missingFields.push(fieldsToFill[i]);
				}
				break;
			}
			case "city":
			{
				var city = document.getElementById(gPrefix + fieldsToFill[i]);
				if(city.value == "")
				{
					missingFields.push(fieldsToFill[i]);
				}				
				break;
			}						
		}
	}
	
	if(missingFields.length > 0)
	{
		hideLoadingDiv();
		var string = "Please fill in the following fields\n";
		for(i=0; i<missingFields.length; i++)
		{
			var string =  string + missingFields[i] + ", ";
		}
		string = string.substr(0, string.length -2)
		alert(string);
		return false;
	}
	
	showLoadingDiv();	
	
	gForm.submit();	
}

/*make sure we found at lease 1 case*/
function checkIfChecked(caseArray)
{
	var isChecked = false;
	for(var i=0; i<caseArray.length; i++)
	{
		var tCase = document.getElementById(gPrefix + caseArray[i]);
		if(tCase.checked)
		{
			isChecked = true;
			//alert(caseArray[i] + " was checked.");
			break;
		}
	}	
	return isChecked;
}

function checkIfSelected(elementId)
{
	var isChecked = false;
		
	var Element = document.getElementById(gPrefix + elementId)

	if(Element.options[Element.selectedIndex].value != "")
	{
		isChecked = true;
	}
		
	return isChecked;	
}

function getWindowSize() 
{
  	var myWidth = 0, myHeight = 0;
  	if( typeof( window.innerWidth ) == 'number' ) 
	{
		//Non-IE
    	myWidth = window.innerWidth;
    	myHeight = window.innerHeight;
	} 
  	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	{
    	//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
  	} 
  	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
  	{
		//IE 4 compatible
    	myWidth = document.body.clientWidth;
    	myHeight = document.body.clientHeight;
  	}
	
	var sizeObj = new Object();
	sizeObj.width = myWidth;
	sizeObj.height = myHeight;
	
	return sizeObj;
}

function showLoadingDiv()
{
	var loadingDiv = document.getElementById("preloader");
	loadingDiv.style.display = "block";
	/*loadingDiv.style.position = "absolute";
	
	var windowSizeObj = getWindowSize();
	newTop = windowSizeObj.height / 2;
	newLeft = windowSizeObj.width /2;
	
	loadingDiv.style.top = newTop + "px";
	loadingDiv.style.left = newLeft + "px";*/
}

function hideLoadingDiv()
{
	var loadingDiv = document.getElementById("preloader");
	loadingDiv.style.display = "none";	
}
