/** copyright 2005 erowid.org.  http://www.erowid.org/

If you use this code, include a link back and either leave this copyright message alone or include something like:

based on e_form_lib.js by http://www.erowid.org/

Thanks!

*/

	function GetCheckboxCurrentValue(Object, DefaultVal)
	{
	  var Rval = DefaultVal;
	  if (Object.checked == true) Rval = Object.value;
	  return Rval;
	}
	function GetRadioCurrentValue(RadioObject) {
	    var mRval = null;
    for (var i = 0; i < RadioObject.length; i++) {
       	var rchecked = RadioObject[i].checked;
	if (rchecked == true) {
	    mRval = RadioObject[i].value;
	    break;
	}
    }
	    return mRval;
	}
function eroIsRadioChecked(RadioObject) {
    var mRval = false;
    for (var i = 0; i < RadioObject.length; i++) {
       	var rchecked = RadioObject[i].checked;
	if (rchecked == true) {
	    mRval = true;
	    break;
	}
    }
    return mRval;
}

	function SetRadioChecked(RadioObject, TargetValue)
	{       var Rval = false;
                for (var i = 0; i < RadioObject.length; i++)  
                {       var v1 = RadioObject[i].value;
                        if (v1 == TargetValue)
                        {       RadioObject[i].checked = true;
				Rval = true;
                                break;
                        }
                }
                return Rval;
	}

	function Select_GetSelectedValue(SelectObject, DefaultValue) {
		var Rval = (SelectObject.selectedIndex >= 0) ? SelectObject.options[SelectObject.selectedIndex].value : DefaultValue;
		return Rval;
	}
	function Select_GetSelectedText(SelectObject, DefaultValue) {
		var Rval = (SelectObject.selectedIndex >= 0) ? SelectObject.options[SelectObject.selectedIndex].text : DefaultValue;
		return Rval;
	}

	function Select_GetStringFromValue(SelectObject,Value, NotFoundValue)
	{
	  	var Rval = NotFoundValue;
		var Index = GetSelectIndexByVal(SelectObject,Value);
		if (Index >= 0 )
		{	Rval = SelectObject.options[Index].text;
		}
		return Rval;
	}
	
	/**
	@return -1 on failure, index of selected on success
	*/
	function Select_SetSelectedByVal(SelectObject, Value) {
	  	var Rval = -1;
		var Len = SelectObject.length;
		for (var i = 0 ; i < Len ; i++)
		{	if (SelectObject.options[i].value == Value)
		  	{	SelectObject.options[i].selected = true;
			  	SelectObject.options[i].scrollIntoView();
				Rval = i;
				break;
			}
		}
//alert("Found: " + Rval);
		return Rval;

	}
	function Select_GetIndexByVal(SelectObject,Value)
	{
	  	var Rval = -1;
		var Len = SelectObject.length;
		for (var i = 0 ; i < Len ; i++)
		{	if (SelectObject.options[i].value == Value)
		  {	Rval = i; 
				break;
		  }
		}
		return Rval;
	}

	/**
	@return -1 on failure, index of selected on success
	*/
	function Select_SetSelectedByText(SelectObject, mText) {
	  	var Rval = -1;
		var Len = SelectObject.length;
		for (var i = 0 ; i < Len ; i++)
		{	if (SelectObject.options[i].text == mText)
		  	{	SelectObject.options[i].selected = true;
			  	SelectObject.options[i].scrollIntoView();
				Rval = i;
				break;
			}
		}
//alert("Found: " + Rval);
		return Rval;

	}



function eroPageQuery(q) {
 if(q.length > 1) this.q = q.substring(1, q.length);
 else this.q = null;
 this.keyValuePairs = new Array();
 if(q) {
  for(var i=0; i < this.q.split("&").length; i++) {
    this.keyValuePairs[i] = this.q.split("&")[i];
     }
     }
     this.getKeyValuePairs = function() { return this.keyValuePairs; }
     this.getValue = function(s, mDefault) {
	  var mRval = mDefault;
	     for(var j=0; j < this.keyValuePairs.length; j++) {
		     if(this.keyValuePairs[j].split("=")[0] == s) {
			     mRval = this.keyValuePairs[j].split("=")[1];
				break;
			}
    		}	
	     return mRval;
     }
     this.getParameters = function() {
     var a = new Array(this.getLength());
     for(var j=0; j < this.keyValuePairs.length; j++) {
     a[j] = this.keyValuePairs[j].split("=")[0];
     }
     return a;
     }
     this.getLength = function() { return this.keyValuePairs.length; }
}

var gPageQuery = null;
function getGETValue(mFieldName, mDefaultValue) {

	if (! gPageQuery ) {
		gPageQuery = new eroPageQuery(window.location.search);
	}
	var mRval = gPageQuery.getValue(mFieldName, mDefaultValue);
	mRval = unescape(mRval);
	return mRval;
}


var gValidationError = "";

function isValidEmailAddress(mStr) {
    var mRval = false;
    gValidationError.value = "";
    mStr = trim(mStr);
    if (mStr.length > 0) {
	mRval = true;
    }
    var at="@";
    var dot=".";
    var lat=mStr.indexOf(at);
    var lmStr=mStr.length;
    var ldot=mStr.indexOf(dot);
    if (mStr.indexOf(at)==-1){
	gValidationError = "no @";
	mRval = false;
    }
    else if (mStr.indexOf(at) == 0 || mStr.indexOf(at)== lmStr){
	gValidationError = "@ must not first or last";
	mRval = false;
    }
    else if (mStr.indexOf(dot)==-1 || mStr.indexOf(dot)==0 || mStr.indexOf(dot)==lmStr){
	gValidationError = "invalid dot position";
	mRval = false;
    }
    else if (mStr.indexOf(at,(lat+1))!=-1){
	gValidationError = "double @";
	mRval = false;
    }
    else if (mStr.substring(lat-1,lat)==dot || mStr.substring(lat+1,lat+2)==dot){
	gValidationError = "@ and dot position";
	mRval = false;
    }
    else if (mStr.indexOf(dot,(lat+2))==-1){
	gValidationError = "no dot after @";
	mRval = false;
    }
    else if (mStr.indexOf(" ")!=-1){
	gValidationError = "space in email address";
	mRval = false;
    }
    else if (mStr.match(/[^a-zA-Z0-9_\-\.\@]/) ) {
	gValidationError = "invalid char";
	mRval = false;
    }
    if (gValidationError.length > 0) {
	//	alert(gValidationError);
    }
    mRval = true;
    return mRval;

}

