//------------------------------------------------------------------------------------------------//
// MAIN FUNCTIONS SECTION                                                                         //
//------------------------------------------------------------------------------------------------//
function GetMainFormName()
{
	var i;
	for (i=0;i<document.forms.length;i++)
	{
		// Framework v1.0.3705
		if (document.forms[i].name.indexOf("_ServerForm") != -1)
			return document.forms[i].name;
		// Framework v1.1.4322
		if (document.forms[i].name.indexOf("__aspnetForm") != -1)
			return document.forms[i].name;
		// Framework v2.0.50727
		if (document.forms[i].name.indexOf("aspnetForm") != -1)
		    return document.forms[i].name;		
	}
	return null;
}

function SaveElement(ElementObject,ElementValue)
{
	var mf = GetMainFormName();					
	if (mf==null) return;
	var element  = GetElement(ElementObject,mf);
	if (element!=null) 
		element.value = ElementValue;
}

function GetElementName(n,mf)
{
	if (n==null || n=="") return null;
	var i, s, j;
	for (i=0;i<document.forms[mf].elements.length;i++)
	{
		if (document.forms[mf].elements[i].name.toLowerCase().indexOf(n.toLowerCase()) != -1)
		{
			var strform = document.forms[mf].elements[i].name.toLowerCase();
			var strformname = strform.substr(strform.indexOf(n.toLowerCase()),n.length);
			if (strformname == n)
				return document.forms[mf].elements[i].name;
		}	
	}
	return null;
}

function GetElement(ElementName, formName)
{
	return document.forms[formName].elements[GetElementName(ElementName,formName)];
}

function OnClickDiagImage(queryIndex, answerIndex, queryType, templateType, prefixId, prefixName, currentAnswerText, defaultAnswerText, inputHiddenListConcat, imageListConcat, imageUrlNotClickedListConcat, imageUrlClickedListConcat)
{
	var inputHiddenList			= inputHiddenListConcat.split("#");
	var imageList				= imageListConcat.split("#");
	var imageUrlNotClickedList		= imageUrlNotClickedListConcat.split("#");
	var imageUrlClickedList			= imageUrlClickedListConcat.split("#");
					
	var currentInputHidden			= MM_findObj(prefixName + inputHiddenList[answerIndex-1]);
	var currentImage			= MM_findObj(imageList[answerIndex-1]);
	var currentLabel			= MM_findObj(prefixId + "AnswerTextLabel" + templateType + "_" + queryIndex);
	var currentImageUrlNotClicked		= imageUrlNotClickedList[answerIndex-1];
	var currentimageUrlClicked		= imageUrlClickedList[answerIndex-1];
	var lineAnswerImage			= MM_findObj("lineanswer_" + templateType);
						
	switch (queryType)
	{
		case (4):
			currentImage.src = currentimageUrlClicked;
			currentInputHidden.value = "true";
						
			if (currentLabel != null)
				currentLabel.innerHTML = currentAnswerText;
								
			for (i=0;i<inputHiddenList.length;i++)
			{
				var imputHidden = MM_findObj(prefixName + inputHiddenList[i]);
				var image	= MM_findObj(imageList[i]);
				
				if (imputHidden != null){			
					if (i != answerIndex-1)
					{
					
						//alert(imputHidden.value);
						imputHidden.value	= "false";
						image.src			= imageUrlNotClickedList[i];
					}
				}
			}
		break;
					
		case (5):
			if (currentInputHidden.value.toLowerCase() == "false")
			{
				currentImage.src			= currentimageUrlClicked;
				currentInputHidden.value	= "true";
			}
			else
			{
				currentImage.src			= currentImageUrlNotClicked;
				currentInputHidden.value	= "false";
			}
		break;
	}
	
	if (lineAnswerImage != null)
		lineAnswerImage.style.visibility = "visible";
}

//Return the reel ID of a control
function GetUniqueID(id)
{
	var mf = GetMainFormName();
	if (id==null || id=="") return null;
	id = id.toLowerCase();
	var i;
	for (i=0;i<document.forms[mf].elements.length;i++)
	{
		if (document.forms[mf].elements[i].id.toLowerCase().lastIndexOf(id) != -1)
		{
			var strform = document.forms[mf].elements[i].id.toLowerCase();
			var strformname = strform.substr(strform.lastIndexOf(id));
			if (strformname == id)
				return document.forms[mf].elements[i].id;
		}	
	}
	return id;
}

//Return the reel IDs of controls
function GetUniqueIDs(id)
{
  var IDs = new Array();
	var mf = GetMainFormName();
	if (id==null || id=="") return null;
	id = id.toLowerCase();
	var i;
	for (i=0;i<document.forms[mf].elements.length;i++)
	{
		if(document.forms[mf].elements[i].id.toLowerCase().lastIndexOf(id) != -1)
		{
			var strform = document.forms[mf].elements[i].id.toLowerCase();
			var strformname = strform.substr(strform.lastIndexOf(id));
			if (strformname == id)
				IDs.push(document.forms[mf].elements[i].id);
		}
	}
	return IDs;
}

//Return the element by reel ID
function GetElementUniqueID(id)
{
	return document.getElementById(GetUniqueID(id));
}

//Return child element with reel ID which are in an element
function GetElementUniqueIDInChild(id,element)
{
  id = id.toLowerCase();
  for(var i=0;i<element.childNodes.length;i++)
  {
    var child = element.childNodes[i];
    if(child.nodeType==1)
    {
      var childID = child.id.toLowerCase();
	    childID = childID.substr(childID.lastIndexOf(id));
	    if(childID == id)
	      return element.childNodes[i];
	  }
	  var el = GetElementUniqueIDInChild(id,child);
	  if(el) return el;
  }
  return null;
}


//Return child element with reel ID which are in an element, the reel ID only have to contain the id, ca end by others characters
function GetElementUniqueIDInChild2(id,element)
{
  id = id.toLowerCase();
  for(var i=0;i<element.childNodes.length;i++)
  {
    var child = element.childNodes[i];
    if(child.nodeType==1)
    {
      var childID = child.id.toLowerCase();
	    if ((childID.substr(childID.lastIndexOf(id)) != -1)&&(childID.length>40))
	      return element.childNodes[i];
	  }
	  var el = GetElementUniqueIDInChild2(id,child);
	  if(el) return el;
  }
  return null;
}