/***********************************************************************************************************************************/
/*************************************************** Code by M. Imran Khan  ********************************************************/
/***********************************************************************************************************************************/

function genCheckForm(formobj, reqFieldNames, fieldDesc){
	// name of mandatory fields
	var fieldRequired = reqFieldNames.split(",");
	
	// field description to appear in the dialog box
	var fieldDescription = fieldDesc.split(",");
	
	// dialog message
	var alertMsg = "Please complete the following field(s):\n";	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "password":
			case "textarea":
				if (isAllSpaces(obj.value) || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}
	else{
		alert(alertMsg);
		return false;
	}
} //end fn genCheckForm
	
/***********************************************************************************************************************************/

function isAllSpaces(myStr){
	while (myStr.substring(0, 1) == " ") {
		myStr = myStr.substring(1, myStr.length);
	}

	if(myStr == ""){
		return true;
	}
	return false;
} // end fn isAllSpaces

/***********************************************************************************************************************************/

function isSpecialChar(myString){
	var MyStr = '<>;/\\*&^%$#!"~+=:;,?';
	for (i=0; i<myString.length; i++) {
		var MyChar = myString.substring(i,i+1);
		if (MyStr.indexOf(MyChar) != -1) {
			return true;
		}
	}
	return false;
} // end fn isSpecialChar

/***********************************************************************************************************************************/

function isEmail(s){
	if(s.length == 0)
		return false;
	if	(	(s.indexOf("@") <= 0) || 
			(s.indexOf("@") == s.length -1) || 
			(s.indexOf("@") != s.lastIndexOf("@")) || 
			(s.indexOf(".") <= 0) || 
			(s.indexOf(" ") > -1) || 
			(s.lastIndexOf(".") == s.length -1) ||
			(s.lastIndexOf(".") < s.indexOf("@")) ||
			(s.indexOf("..") != -1) ||
			(isSpecialChar(s)) ||
			(s.charAt(s.indexOf("@") + 1) == ".") ||
			(s.charAt(s.indexOf("@") - 1) == ".")			
		) return false;
	else return true;
} //end fn isEmail

/***********************************************************************************************************************************/

function ReplaceText(TextValue,Replace,ReplaceWith){
		var l_space=true;
	    var l_Index=0;
	    while (l_space){
			l_Index=TextValue.indexOf(Replace,l_Index);
	        if (l_Index==-1){
				l_space=false;
			}
	        else{
			TextValue=TextValue.substring(0,l_Index)+ReplaceWith+TextValue.substring(l_Index+Replace.length,TextValue.length);
			l_Index=l_Index+ReplaceWith.length;
			}
		}
    return TextValue;
}// end fn ReplaceText	

/***********************************************************************************************************************************/

function checkAddForm(theForm){
	if(! genCheckForm(theForm, 'Title,URL,Description,Email,Verification', 'Title,URL,Description,Email,Verification')){
		return false;
	}

	if(! theForm.agreed.checked){
		alert("Please check the agreement checkbox.");
		return false;
	}
	
	return true;
}// end fn checkAddForm

/***********************************************************************************************************************************/
