// JavaScript Document


     
function validateDocument(){
	var documentname=$("documentname").value;
	var documentupload=$("documentupload").value; 
	 
	if(validReqField(documentname) && validDocument(documentupload)){
		return true;
	} 
	return false;
}
  

function checklen(myid ,messagecopy, upperlength){
	upperlength=parseInt(upperlength);
	if(messagecopy.length>upperlength){
		alert("Please limit your message to "+upperlength+" characters.");
		document.getElementById([myid]).value=mymessage;
	}else{
		mymessage=messagecopy;
	}
}
 

/*

	Function: validReqField
		Tests field as valid required field.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
		
*/
function validReqField(str) {
	if (!str.length) {
		return false;
	}
	return true;
}
/*

	Function: validEmail
		Tests field as valid email address.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
		
*/
function validEmail(str) {
	var emailFilter=/^.+@.+\..{2,3}$/;
	var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
	if ((!(emailFilter.test(str))) || (str.match(illegalChars))) {
		return false;
	}
	return true;
}
 
function validEmailConfirm(email,emailconfim){
	if(email==emailconfim){
		return true;
	}else{
		return false;
	}
}

/*

	Function: validZip
		Tests field as valid 5 digit zipcode.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
		
*/
function validZip(str) {
	var zipFormat = /\d\d\d\d\d/; //Entered All Numbers?
	var temp = str + "";
	var test = temp.search(zipFormat)
	if (test == -1) {
		return false;
	}
	return true;
}
/*
	Function: validPhone
		Tests field as valid 10 digit phone number.
		
	Parameters:
		str - string to validate.
		
	Returns:
		Boolean.
*/
function validPhone(str) {
	var temp = str.replace(/[\(\)\.\-\ ]/g, '');
	if (isNaN(parseInt(temp)) || (temp.length != 10)) {
		return false;
	}
	return true;
}




/*
	Function: validURL
		Gather values and then validate a URL string.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validURL(str) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(str);
}

/*
	Function: validCreative 
		Gather values and then check for valid file types.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validCreative(str){
	var temp = str + "";
	//temp = temp.substring(temp.length-5);
	temp=temp.toUpperCase(); 
	var extgood = new Array();
	var extgood=[".JPG",".JPEG",".JPE", ".PNG"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		temp=temp.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(temp) || (temp=="") ){
			//alert("valid creative");
			return true;
			//alert("valid creative");
		}
	}
	return false;
}
 
function validDocument(str) {
	var temp = str + "";
	//temp = temp.substring(temp.length-6);
	temp=temp.toUpperCase(); 
	var extgood = new Array();
	var extgood=[".JPG",".JPEG",".JPE",".XLS",".XLSM",".XLSB",".XML",".MHT",".MHTML",".HTML",".XLXT",".XXT",".CSV",".DOC",".DOCX",".DOCM",".DOTX",".PDF",".PPT",".PPTX",".POTX",".POTM",".PPSX",".GIF",".TXT",".HTM",".PHP",".VSD",".VSS",".VST",".VDX",".VSX",".VDX",".VSX",".VTX", ".PNG"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		temp=temp.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(temp) || (temp=="") ){
			return true;
		}
	}
	return false;
}
 
 
function validHtml(str){
	var temp = str + "";
	//temp = temp.substring(temp.length-6);
	temp=temp.toUpperCase(); 
	var extgood = new Array();
	var extgood=[".HTML",".HTM",".SHTML",".SHTM",".XHTML"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		temp=temp.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(temp) || (temp=="") ){
			return true;
		}
	}
	return false;
}

function validText(str){
	var temp = str + "";
	//temp = temp.substring(temp.length-6);
	temp=temp.toUpperCase(); 
	var extgood = new Array();
	var extgood=[".TEXT",".TXT"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		temp=temp.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(temp) || (temp=="") ){
			return true;
		}
	}
	return false;
}


/*
	Function: swfcheck
		Gather values and then check for swf.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function swfcheck(str){
	str=str.toUpperCase(); 
	//str = str.substring(str.length-5);
	var extgood = new Array();
	var extgood=[".SWF"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		str=str.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(str)){
			return true;
		}
	}
	return false;
}

/*
	Function: validFile
		Gather values and then check for illegal characters.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validFile(str){
	str=str.toUpperCase();
	//str = str.substring(str.length-6);
	var extbad = new Array();
	var extbad=[".EXE",".BAT",".DLL",".VBS",".DL",".SCR",".SYS"];
	for(var i=0;i<extbad.length;i++){
		var rx=new RegExp("[^\.]\."+extbad[i]+"\s*$", "i");
		str=str.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(str) ){
			return false;
		}
	}
	
	var extgood = new Array();
	var extgood=[".PDF"];
	for(var i=0;i<extgood.length;i++){
		var rx=new RegExp("[^\.]\."+extgood[i]+"\s*$", "i");
		str=str.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(str) || (str=="") ){
			return true;
		}
	}
	return false;
}


/*
	Function: validPlainText
		Gather values and then check for illegal characters.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validAudioFile(str){
	str=str.toUpperCase();
	//str = str.substring(str.length-6);
	var ext = new Array();
	var ext=[".MP3"];
	for(var i=0;i<ext.length;i++){
		var rx=new RegExp("[^\.]\."+ext[i]+"\s*$", "i");
		str=str.replace(/^\s+/,'').replace(/\s+$/,''); 
		if( rx.test(str) || str==""){
			return true;
		}else{
			return false;
		}
	}
}

/*
	Function: validPlainText
		Gather values and then check for illegal characters.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validPlainText(str) {
	var illegalChars= /[\(\)\<\>\?\#\%\^\&\*\~\`\,\[\]\;\:\\\/\"\[\]]/
	if (str.match(illegalChars)) {
		return false;
	}
	return true;
}

function validUsername(str) {
	var illegalChars= /[\(\)\<\>\?\#\%\^\&\*\~\`\'\ \@\$\+\=\,\[\]\;\:\\\/\"\[\]]/
	if (str.match(illegalChars) || str.length<2) {
		return false;
	}
	return true;
}


/*
	Function: validDate
		Gather values and then validate a date.
		
	Parameters:
		None.
		
	Returns:
		Boolean.
		
*/
function validDate() {
	var month = new String;
	var day = new String;
	var year = new String;
	for (var eachItem in formElements) {
		if (formElements[eachItem] == "month") {
			month = document.getElementById(eachItem).value
		} else if (formElements[eachItem] == "day") {
			day = document.getElementById(eachItem).value
		} else if (formElements[eachItem] == "year") {
			year = document.getElementById(eachItem).value
		}
	}
	return (testDate(month,day,year));
}
