/* fix form enter button */
function addInputSubmitEvent(form, input) {
    input.onkeydown = function(e) {
        e = e || window.event;
        if (e.keyCode == 13) {
            form.submit();
            return false;
        }
    };
}

window.onload = function() {
    var forms = document.getElementsByTagName('form');

    for (var i=0;i < forms.length;i++) {
        var inputs = forms[i].getElementsByTagName('input');

        for (var j=0;j < inputs.length;j++)
            addInputSubmitEvent(forms[i], inputs[j]);
    }
};


/************/


function makeSaved()	{
	var sp = document.getElementById('saveProgress');
	if (sp)
		sp.innerHTML = "Progress has been Saved";
}
function makeNotSaved()	{
	//var progressImg = "<img src='images/saveprogress.jpg' title='Save Progress'>";
	var progressImg = "<a href='#null' onClick=\"document.forms[0].submit(); makeSaved();\"><img src='images/save.gif' align='absmiddle'>&nbsp;Save Section Progress</a>";
	var sp = document.getElementById('saveProgress');
	if (sp && sp.innerHTML == "Progress has been Saved")
		sp.innerHTML = progressImg;

}

function enableAdditional(formName, toggle)	{
	myForm = document.getElementById(formName);

	//if we want to show it
	if (toggle == 0)	{
		myForm.style.display = "block";	
		myForm.style.height = "auto";
		myForm.style.overflow = "hidden";	
		
	}
	//otherwise we want to hide it
	else	{
		myForm.style.display = "none";	
		myForm.style.height = "auto";
		myForm.style.overflow = "hidden";	
		//var or = document.getElementsByTagName("*");
		var or = myForm.childNodes; 
		for (var i = 0; i < or.length; i++) {
				//alert(or[i].type);	
     		if (or[i].nodeName == "INPUT" && or[i].type == "radio")	{
				or[i].checked = false;
				//unCheck(or[i]);
			}
			/*if (or[i].nodeName == "DIV" && document.getElementById(or[i].id) )	{
				//enableAdditional(or[i].id, 1);
				//unCheck(or[i]);
				
			}*/
			if (or[i].nodeName == "DIV" && or[i] && or[i].id && or[i].id != "undefined" && document.getElementById(or[i].id) && or[i].id.substr(0,10) == "additional" )	{
				enableAdditional(or[i].id, 1);
				//unCheck(or[i]);
			}
			else if (or[i].nodeName == "DIV" && or[i] && or[i].id && or[i].id != "undefined" && document.getElementById(or[i].id) )	{
				//enableAdditional(or[i].id, 1);
				unCheck(or[i]);
				
			}
			//if there is a div, but no ID (probably a div class=indent), then lets do another uncheck
			else if (or[i].nodeName == "DIV" && (!or[i] || !or[i].id || or[i].id == "undefined" || !document.getElementById(or[i].id)) )	{
				unCheck(or[i]);
			}
					
				
     	}//end for
	
		
	}
	
}//end function enableAdditional

function unCheck(object)	{
	//myForm = document.getElementById(getID);
	//alert(getID);
	
	var or = object.childNodes; 
	
	for (var i = 0; i < or.length; i++) {
			//alert(or[i].type);	
		if (or[i].nodeName == "INPUT" && or[i].type == "radio")	{
			or[i].checked = false;
		}
		else {
			unCheck(or[i]);
		}
			
	}//end for
}

//expand elements above radio buttons
function expandRadio(form)	{
	//myObj = document.getElementById(object);
	var or = document.getElementById(form).elements;

	for (var i = 0; i < or.length; i++) {
		
		if (or[i].nodeName == "INPUT" && or[i].type == "radio" && or[i].checked && or[i].value > 1 )	{
			expandParent(or[i]);
			
			//New feature. If answer is > 1
			if (document.getElementById("additional_" + or[i].id))
				document.getElementById("additional_" + or[i].id).style.display = "block";

		}

	}//end for
}


function expandParent(object)	{
 	
	var object = object.parentNode;
	
	if (object.nodeName == "DIV" && object.id != "undefined")	{
		object.style.display = "block";
		expandParent(object);

	}
	//if there is a div, but no ID (probably a div class=indent), then lets do another uncheck
	else if (object.nodeName == "DIV" && !document.getElementById(object.id) )	{
		expandParent(object);
	}

}//end function




function expandChildren(object)	{

	myObj = document.getElementById(object);
	
	var or = myObj.childNodes; 
	for (var i = 0; i < or.length; i++) {
		
		if (or[i].nodeName == "DIV" && or[i].style.display == "none")	{
			or[i].style.display = "block";
		}
		else if (or[i].nodeName == "DIV")
			expandChildren(or[i].id);
		
	}//end for

}//end function


function saveAsk()	{
	
	var sp = document.getElementById('saveProgress');
	if (sp && sp.innerHTML.substr(0,1) == "<")	{

		var answer = confirm("Without saving you will lose any un-saved progress.  Would you like to save now?")
		if (answer){
			document.forms[0].submit();
			return true;
		}
		else{
			return true;
		}
	
	}
}


function logoutConfirmation() {
	var answer = confirm("If you log out now, any unsaved progress will be lost.  To save your work, press cancel, and click 'Save Progress' on the left.")
	if (answer){
		return true;
	}
	else{
		return false;
	}
}

function finalizeConfirmation() {
	var answer = confirm(" Creating PWG TechCheck PDF now.")
	if (answer){
		return true;
	}
	else{
		return false;
	}
}



//checkone_check
//this checks the value onChange of the 'logged out', register form, for 'what type of fund'
function checkone_check(element)	{
	
	var content;
	
	switch (element.value)	{
		case "Hedge Fund":
			content = "<select name='type_size'>                	<option value='small'>Small (under $200m)</option>                    <option value='medium'>Medium ($200m - $1b)</option>                    <option value='large'>Large (over $1b)</option>                </select>";
				
				
		break;
		
		case "Fund of Funds":
			content = "<select name='type_size'>                	<option value='small'>Small (under $500m)</option>                    <option value='medium'>Medium ($500m - $1.5b)</option>                    <option value='large'>Large (over $1.5b)</option>                </select>";
		break;
		
		case "Other":
		default:
			content = "<input type='text' name='type_size' id='type_size'>";
		break;
		
		
	}//end switch
	
	document.getElementById('check_one_option').innerHTML = content;
}


function org_type_check(element)	{
	if (element.value == "Other")	{
		document.getElementById('type_other_td').style.display = "inline";
	}
	else
		document.getElementById('type_other_td').style.display = "none";
	
}



function ScrollToElement(theElement){

  var selectedPosX = 0;
  var selectedPosY = 0;
              
  while(theElement != null){
    selectedPosX += theElement.offsetLeft;
    selectedPosY += theElement.offsetTop - 10;
    theElement = theElement.offsetParent;
  }
                        		      
 window.scrollTo(selectedPosX,selectedPosY);

}



//show qtip
function toggleQtip(elementID)	{
	
	var element;
	var toggleElement;
	
	if (document.getElementById(elementID) && document.getElementById('sign_' + elementID))	{
		element = document.getElementById(elementID);
		toggleElement = document.getElementById('sign_' + elementID);
		
		
		if (element.style.display == "block")	{
			element.style.display = "none";
			toggleElement.innerHTML = "[+]";
		}
			
		else	{
			element.style.display = "block";
			toggleElement.innerHTML = "[-]";
			
		}
	}// end if
	
	
	//return false;
	
}


//show the help page
function showHelp()	{
	window.open('help.php','Help','width=800,height=220,scrollbars=yes, status=0, toolbar=0, location=0, menubar=0');	
}



//Update slider text depending on answer
//Params: Target element, new value, lookup in array for context
function updateSliderText(targetDiv,newValue)	{
	
	var textArray = Array("Not Applicable", "No/Does Not Meet Requirement","Partially Meets Requirement", "Yes, Meets Basic Requirement", "Yes.  Exceeds Requirement", "Yes.  Demonstrates Excellence");
	
	if (targetDiv)
		document.getElementById(targetDiv).innerHTML = textArray[newValue];
	
}


function resetConfirmation() {
	var answer = confirm("Are you sure you want to reset these results?  Doing so will delete your answers, and comments.")
	if (answer){
		return true;
	}
	else{
		return false;
	}
}


//File upload errors
function ExtensionsOkay(formElement) {
var extension = new Array();

// Step 1 of 2:
// Replace MyForm with the name of your form and 
//    replace FieldName with the upload field name.

var fieldvalue = formElement.value;


// Step 2 of 2:
// Add the file name extensions that are okay (with 

extension[0] = ".php";
extension[1] = ".exe";
extension[2] = ".js";
extension[3] = ".sql";


// No other customization needed.
var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));
for(var i = 0; i < extension.length; i++) {
	if(thisext == extension[i]) { return true; }
	}
alert("Your upload contains an unapproved file type");
return false;
}
