var errors = 0;
var field_count = 0;
var checked_fields = 0;
var new_page = "";

function SendMetadataFormData()
{
	checked_fields = 0;
	errors = 0;
hidden = FindControl('ControlsToValidate');		
	CheckAllValues(hidden.value);
}

function ServerSideCheck_CallBack(response)
{	
	var pair = response.value.split("|");
	var name = pair[0];
	var message = pair[1];
		
	span = document.getElementById("Validation_"+name);
	span.innerHTML = message;
	checked_fields++;
		
	if(message != "")
	{
		errors++;
	}	
	if(checked_fields == field_count)
	{
		if(errors == 0)
		{	
			if(document.getElementById('pbar'))
			{
				HideCombos();
				ShowDiv();
			}
				
			document.forms[0].submit();
		}			
	}
}

function CheckAllValues(fields)
{
	var vars = fields.split(";");
	
	for (var i=0; i<vars.length; i++)
	{
		field_count = vars.length - 1;
		
		if(vars[i] != "")
		{
			var pair = vars[i].split("|");		
			var name = pair[0];
			var datatype = pair[1];
			var required = pair[2];
			var solo_name = name.split("_");
			
			// If the name of the criteria had '_' in it, we need to rebuild the name
			var realName = solo_name[1];
			for (var n = 2; n < solo_name.length; n++)
			{
				realName = realName + '_' + solo_name[n];
			}
		
			control = FindControl(name);	
			
			XWEB.Portal.UI.WebControls.FormGenerator.FormDataValidator.IsDataTypeCorrect(realName, control.value, datatype, required, ServerSideCheck_CallBack);
		}
	}
}

function CheckOnTheFly(control, name, datatype, required)
{
	box = FindControl(control);
	
	XWEB.Portal.UI.WebControls.FormGenerator.FormDataValidator.CheckOnTheFly(name, box.value, datatype, required, CheckOnTheFly_CallBack)
}

function CheckOnTheFly_CallBack(response)
{	
	var pair = response.value.split("|");
	var name = pair[0];
	var pic = pair[1];
		
	span = document.getElementById("OnTheFlyCheck_"+name);
	span.innerHTML = pic;
}


function ResetAllMessages()
{
	hidden = FindControl('ControlsToValidate');	
	var vars = hidden.value.split(";");
	
	for (var i=0; i<vars.length; i++)
	{
		field_count = vars.length - 1;
		
		if(vars[i] != "")
		{
			var pair = vars[i].split("|");
			var name = pair[0].split("_");
		
			onthefly = document.getElementById("OnTheFlyCheck_"+name[1]);
			message = document.getElementById("Validation_"+name[1]);
			
			onthefly.innerHTML = "";
			message.innerHTML = "";
		}
	}
}

function ClearAllMessages()
{
	hidden = FindControl('ControlsToValidate');	
	var vars = hidden.value.split(";");
	
	for (var i=0; i<vars.length; i++)
	{
		field_count = vars.length - 1;
		
		if(vars[i] != "")
		{
			var pair = vars[i].split("|");
			var name = pair[0].split("_");
		
			onthefly = document.getElementById("OnTheFlyCheck_"+name[1]);
			message = document.getElementById("Validation_"+name[1]);
			MetadataCriteria = document.getElementById("_ctl0_MetadataCriteria_"+name[1]);
			
			onthefly.innerHTML = "";
			message.innerHTML = "";
			MetadataCriteria.value="";
			
		}
	}

}

function SetClickedButton(button)
{
	hidden = FindControl('ClickedButtonHidden');
//hidden= document.getElementById('_ctl0_ClickedButtonHidden');
	hidden.value = button;

}

function StartRedirectTimer(page)
{
	new_page = page;
	setTimeout("Redirect()", 4000);
}

function Redirect()
{
	self.location = new_page;
}

/* TEMPLATE SELECTION STUFF */

function GUITemplate(id, image){
	this.id = id;
	this.image = image;
}

function ToggleSnapshot()
{
	var template_list = FindControl("DropDownListTemplates");
	var snapshot_div = document.getElementById("TemplateSnapshot");
	
	sel_index = template_list.selectedIndex;	
	sel_value = parseInt(template_list[sel_index].value);	
	
	for(i = 0; i < GUIArray.length; i++)
	{
		if(GUIArray[i].id == sel_value)
		{
			snapshot_div.innerHTML = "<img alt='' src='"+GUIArray[i].image+"'/>";
		}
	}
}