﻿
// ----------------------------------------------------------------------------------------------------------------
function fSetHidden(frmElementId,val)
{
	document.getElementById(frmElementId).value = val;	
}
// ----------------------------------------------------------------------------------------------------------------






// ----------------------------------------------------------------------------------------------------------------
function fPopulateDayDrop(dayFrmElement,monthFrmElement)
{
    var dayArray = new Array(31,28,31,30,30,31,31,31,30,31,30,31);
        
    // Clear drop
    for(var i=dayFrmElement.options.length-1; i >= 0;i--)
    {
        dayFrmElement.remove(i);
    }
    
    // Populate drop
    for (var i=1; i <= dayArray[(monthFrmElement.value-1)]; i++)
    {
        var optn = document.createElement("OPTION");
        optn.text = i;
        optn.value = i;
        dayFrmElement.options.add(optn);
    }
    
    dayFrmElement.selectedIndex = dayArray[(monthFrmElement.value-1)] - 1;
}
// ----------------------------------------------------------------------------------------------------------------



// ----------------------------------------------------------------------------------------------------------------
function fValidateSelectedIndex(arg_frmElement,arg_message)
{

}
// ----------------------------------------------------------------------------------------------------------------



// ----------------------------------------------------------------------------------------------------------------
function fSetSelectedValue(arg_frmElement,arg_value)
{
    // This is due to .NET 2.x controlls erroring unpredictably
    // Remove the .net control and place runat server html controls in
    // you loose selected abilities
    /*
    <input type="hidden" name="fSelectedCountryId" id="fSelectedCountryId"/>
    <input type="hidden" name="fSelectedRegionId" id="fSelectedRegionId" />
    <input type="hidden" name="fSelectedLocationId" id="fSelectedLocationId" />
    */
    
    
    var frmElement = document.getElementById(arg_frmElement);
    var optionValue = arg_value;
    
    
    var v = "";
    v += "frmElement: " + frmElement + "\n";
    v += "frmElement.length: " + frmElement.length + "\n";
    v += "optionValue: " + optionValue + "\n\n";
    
    for (var i=0; i < (frmElement.length); i++)
    {
        if (parseInt(frmElement.options[i].value) == parseInt(optionValue))
        {
           //frmElement.options[i].selected = true; // Safari doesnt like this
           frmElement.selectedIndex = frmElement.options[i].index;
        } else {
            frmElement.options[i].selected = false;
        }
        
        v += i + ") ";
        v += "text: " + frmElement.options[i].text + " ";
        v += "value: " + frmElement.options[i].value + "\n";
        v += "\t" + "index: " + frmElement.options[i].index + " ";
        v += "\t" + "selected: " + frmElement.options[i].selected + " ";
        
        v += "\n\n";
    }
    
    //alert(v);
    
    /*
    v = "";
    for (var x in fCdrop.options[1])
    {
     v += x + "\n";
    }
    //alert(v);
    */
}
// ----------------------------------------------------------------------------------------------------------------



// ----------------------------------------------------------------------------------------------------------------
function fLimitFormElementLength(arg_frmElement,arg_lengthLimit)
{
    arg_frmElement.value = fFormatString(arg_frmElement.value);
    if (arg_frmElement.value.length > parseInt(arg_lengthLimit))
    {
        arg_frmElement.value = arg_frmElement.value.substring((parseInt(arg_lengthLimit)), 0);
    }
}
// ----------------------------------------------------------------------------------------------------------------



// ----------------------------------------------------------------------------------------------------------------
function fClearDropDownList(formElementId)
{
    var frmElement = document.getElementById(formElementId);

    while (frmElement.hasChildNodes())
    {
        frmElement.removeChild(frmElement.childNodes[0]);
    } 
}
// ----------------------------------------------------------------------------------------------------------------



// ----------------------------------------------------------------------------------------------------------------
function fAddOptionToDropDownList(formElementId,sMessage,sValue)
{
    //alert("function(" + formElementId + "," + sMessage + "," + sValue + ")");
    var formElement = document.getElementById(formElementId);
    
    var newElement = document.createElement("OPTION");
    newElement.text = sMessage;
    newElement.value = sValue;
    formElement.options.add(newElement);
}
// ----------------------------------------------------------------------------------------------------------------







// ----------------------------------------------------------------------------------------------------------------
function fPopulateMonthDrop(monthFrmElement)
{
    var monthArray = new Array('January','February','March','April','May','June','July','August','September','October','November','December');

    // Clear drop
    for(var i=monthFrmElement.options.length-1; i >= 0;i--)
    {
        monthFrmElement.remove(i);
    }
    
    // Populate drop
    for (var i=1; i <= 12; i++)
    {
        var optn = document.createElement("OPTION");
        optn.text = monthArray[(i-1)] + " ("+i+")";
        optn.value = i;
        monthFrmElement.options.add(optn);
    }
}
// ----------------------------------------------------------------------------------------------------------------




// ----------------------------------------------------------------------------------------------------------------
function fPopulateYearDrop(yearFrmElement)
{
    // Clear drop
    for(var i=yearFrmElement.options.length-1; i >= 0;i--)
    {
        yearFrmElement.remove(i);
    }
    
    // Populate drop
    for (var i=1930; i <= 1999; i++)
    {
        var optn = document.createElement("OPTION");
        optn.text = i;
        optn.value = i;
        yearFrmElement.options.add(optn);
    }
}
// ----------------------------------------------------------------------------------------------------------------




// ----------------------------------------------------------------------------------------------------------------
function fIsLengthGreateThan(arg_formElementId,arg_nLength)
{
    var nFieldLength = parseInt((document.getElementById(arg_formElementId).value.length));
    var nLength = parseInt(arg_nLength);
        
    if (nFieldLength > nLength)
    {
        //alert("TRUE: nFieldLength: "+ nFieldLength + " nLength: " + nLength);
        return true;
    } else {
        //alert("FALSE: nFieldLength: "+ nFieldLength + " nLength: " + nLength);
        return false;
    }
}
// ----------------------------------------------------------------------------------------------------------------




// ----------------------------------------------------------------------------------------------------------------
function fIsEmailValid(arg_formElementId)
{
    // Set variables
    var sEmail = document.getElementById(arg_formElementId).value;
    var bValidEmail = true;  

    if (sEmail.indexOf("@") == "-1")
    {
        bValidEmail = false;
    }
    
    if (sEmail.indexOf(".") == "-1")
    {
        bValidEmail = false;
    }
    
    if (sEmail.indexOf("@.") != "-1")
    {
        bValidEmail = false;
    }
    
    if (sEmail.indexOf(".@") != "-1")
    {
        bValidEmail = false;
    }
    
    //alert("bValidEmail: " + bValidEmail);
    return bValidEmail;   
}
// ----------------------------------------------------------------------------------------------------------------




// ----------------------------------------------------------------------------------------------------------------
function fFormatString(str)
{
	var newStr = str;
	var removeList = new Array();
	//"<*br>","<*p>","<[^]hr[^]>","<?hr?>" //eg
	
	removeList.push("<");
	removeList.push(">");
	removeList.push("  ");

		
	// Fix some more
	newStr = newStr.replace(/\\/g, "")
	newStr = newStr.replace(/\//g, "")
	newStr = newStr.replace(/\'/g, "`")
	//newStr = newStr.replace(/\  /g, " ")
	
	// Only letters except ` and ! and ,
	newStr = newStr.replace(/[^a-zA-Z0-9`, !?<>_]/gi, "")
	

	// No numbers (\d)
	//newStr = newStr.replace(/\d/g, "")

	
	for (x in removeList)
	{
		var rx = new RegExp(removeList[x],"gi");
		newStr = newStr.replace(rx,'');
	}
	
	//newStr = fTrim(newStr);
	
	return newStr;
}
// ----------------------------------------------------------------------------------------------------------------





// ----------------------------------------------------------------------------------------------------------------
function fFormInputNumberOnly(arg_FormElementId)
{
	// USAGE EG: onkeyup='fFormInputNumberOnly(this);'
	var newStr = arg_FormElementId.value;
	newStr = newStr.replace(/[^0-9]/gi, "");
	arg_FormElementId.value = newStr;
}
// ----------------------------------------------------------------------------------------------------------------




// ----------------------------------------------------------------------------------------------------------------
function fCleanFormString(arg_formElementId)
{
    document.getElementById(arg_formElementId).value = fFormatString(document.getElementById(arg_formElementId).value);
}
// ----------------------------------------------------------------------------------------------------------------





// ----------------------------------------------------------------------------------------------------------------
function fValidateIsInputFieldBlank(FormElementId,msg)
{
	if (document.getElementById(FormElementId))
	{
		if (document.getElementById(FormElementId).value == "")
		{
			alert(msg);
			document.getElementById(FormElementId).focus();
			return true;
		}	else {
			return false;
		}
	} else {
		alert("VALIDATION ERROR:\nThe element [" + FormElementId + "] cannot be found.");
		return true;
	}
}
// ----------------------------------------------------------------------------------------------------------------





// ----------------------------------------------------------------------------------------------------------------
function fValidateInputLength(FormElementId,fLen,msg)
{
	if (document.getElementById(FormElementId))
	{
		if (fLen > document.getElementById(FormElementId).value.length)
		{
			alert(msg);
			document.getElementById(FormElementId).focus();
			return true;
		}	else {
			return false;
		}
	} else {
		alert("VALIDATION ERROR:\nThe element [" + FormElementId + "] cannot be found.");
		return true;
	}
}
// ----------------------------------------------------------------------------------------------------------------