/* Copyright Bridgeline Digital, Inc. An unpublished work created in 2009. All rights reserved. This software contains the confidential and trade secret information of Bridgeline Digital, Inc. ("Bridgeline").  Copying, distribution or disclosure without Bridgeline's express written permission is prohibited */
<!--
//generic validation

function checkFields(form,fldName,fldMsg)
{
	var fldRef,fldType;
	
	for (y=0; y < fldName.length; y++)
	{
		if (fldName[y] != "")
		{
			fldRef = form.elements[fldName[y]];
			
			if (fldRef)
			{
				//check for text or textarea field
				if (fldRef.type == "text" || fldRef.type == "textarea")
				{
					if (fldRef.value == "")
					{
						alert("Please enter " + fldMsg[y] + ".");
						fldRef.focus();
						return false;
					} else if ((fldRef.name == "email") && (! isEmail(fldRef.value))) {
						alert("Invalid Email Address");
						fldRef.focus();
						return false;
					}
				}
				//check for select-one or select-multiple field
				else if ((fldRef.type == "select-one") || (fldRef.type == "select-multiple"))
				{
					if (fldRef.options[fldRef.selectedIndex].value == "")
					{
						alert("Please select " + fldMsg[y] + ".");
						fldRef.focus();
						return false;
					}
				}
				//check for radio buttons
				else if (fldRef[0].type == "radio")
				{
					var optChecked = false;
					for (i=0; i<fldRef.length;i++)
					{
						if (fldRef[i].checked)
						{
							optChecked = true;
						}
					}
					if (!optChecked)
					{
						alert("Please specify " + fldMsg[y] + ".");
						fldRef[0].focus();
						return false;
					}
				}
				//check for password field
				if (fldRef.type == "password")
				{
					if (fldRef.value == "")
					{
						alert("Please enter " + fldMsg[y] + ".");
						fldRef.focus();
						return false;
					}
				}
			}
		}
	}
	return true;
}

/////////////////////////////////////////////////////////////////////////
// BEGIN date validation functions
/////////////////////////////////////////////////////////////////////////
function validate_date(date_field, desc) {
        if (!date_field.value)  
                return true;
        var in_date = stripCharString(date_field.value," ");
        in_date = in_date.toUpperCase();
        var date_is_bad = 0;  
       // if (!allowInString(in_date,"/0123456789T+-"))
		if (!allowInString(in_date,"/0123456789"))
                date_is_bad = 1; // invalid characters in date
        if (!date_is_bad) { 
                var has_rdi = 0;
                if (in_date.indexOf("T") >= 0){ 
                        has_rdi = 1;
                }
                if (!date_is_bad && has_rdi && (in_date.indexOf("T") != 0)) { 
                        date_is_bad = 2; // relative date index character is not in first position
                }
                if (!date_is_bad && has_rdi && (in_date.length == 1)) { 
                        var d = new Date();
						var return_month = parseInt(d.getMonth() + 1).toString();
						//return_month = (return_month.length==1 ? "0" : "") + return_month; 
						var return_date =  parseInt(d.getDate()).toString();
						//return_date = (return_date.length==1 ? "0" : "") + return_date; 
				        in_date = return_month + "/" + return_date + "/" + get_full_year(d);		
                        has_rdi = 0; // date doesn't have rdi char anymore (will also cause failure of add'l rdi checks, which is a good thing)
                }
                if (!date_is_bad && has_rdi && (in_date.length > 1) && !(in_date.charAt(1) == "+" || in_date.charAt(1) == "-")) {
                        date_is_bad = 3; // length of rdi string is greater than 1 but second char is not "+" or "-"
                }
                if (!date_is_bad && has_rdi && isNaN(parseInt(in_date.substring(2,in_date.length),10))) {
                        date_is_bad = 4; // rdi value is not a number
                }
                if (!date_is_bad && has_rdi && (parseInt(in_date.substring(2,in_date.length),10) < 0)) {
                        date_is_bad = 5; // rdi value is not a positive integer
                }
                if (!date_is_bad && has_rdi) {
                        var d = new Date();
                        ms = d.getTime();
                        offset = parseInt(in_date.substring(2,in_date.length),10);
                        if(in_date.charAt(1) == "+") {
                                ms += (86400000 * offset);
                        } else {
                                ms -= (86400000 * offset);
                        }
                        d.setTime(ms);
						var return_month = parseInt(d.getMonth() + 1).toString();
						return_month = (return_month.length==1 ? "0" : "") + return_month; 
						var return_date =  parseInt(d.getDate()).toString();
						return_date = (return_date.length==1 ? "0" : "") + return_date; 
				        in_date = return_month + "/" + return_date + "/" + get_full_year(d);	
                        has_rdi = 0;
                }
        } 
        if (!date_is_bad) {
                var date_pieces = new Array();
                date_pieces = in_date.split("/");
                if (date_pieces.length == 2) {
                        var d = new Date();
                        in_date = in_date + "/" + get_full_year(d);
                        date_pieces = in_date.split("/");
                }
                if (date_pieces.length != 3 || parseInt(date_pieces[0],10) < 1 || parseInt(date_pieces[0],10) > 12 
                                || parseInt(date_pieces[1],10) < 1 || parseInt(date_pieces[1],10) > 31 
                                || (date_pieces[2].length != 2 && date_pieces[2].length != 4)) {
                        date_is_bad = 6;  // date is not in format of m[m]/d[d]/yy[yy]
                }
        }
        if (date_is_bad) {
                alert(desc + " must be in the format of [m]m/[d]d/yyyy.");
                date_field.focus();
                return (false);
        }
        
        var ms = Date.parse(in_date);
        var d = new Date();
        d.setTime(ms);
		var return_date = d.toLocaleString();
		var return_month = parseInt(d.getMonth() + 1).toString();
		//return_month = (return_month.length==1 ? "0" : "") + return_month; 
		var return_date =  parseInt(d.getDate()).toString();
		//return_date = (return_date.length==1 ? "0" : "") + return_date; 
        return_date = return_month + "/" + return_date + "/" + get_full_year(d);
        date_field.value = return_date;
        return true;
}       // normalize the year to yyyy

function get_full_year(d) {
		var y = "";
		var z = "";
		if (d.getFullYear() != null)
		{
			y = d.getFullYear();
			if (y < 2002) y=2002;		
		} else
		{	
	        y = d.getYear();
	        if (y > 0  && y < 100) y += 2000;
	        if (y < 1000) y += 2000;
		}
		z = y.toString();
		//return z.substring(2);
		return z;
}

function stripCharString (InString, CharString)  {
        var OutString="";
   for (var Count=0; Count < InString.length; Count++)  {
        var TempChar=InString.substring (Count, Count+1);
      var Strip = false;
      for (var Countx = 0; Countx < CharString.length; Countx++) {
        var StripThis = CharString.substring(Countx, Countx+1)
         if (TempChar == StripThis) {
                Strip = true;
            break;
         }
      }
      if (!Strip)
        OutString=OutString+TempChar;
   }
        return (OutString);
}

function allowInString (InString, RefString)  {
        if(InString.length==0) return (false);
        for (var Count=0; Count < InString.length; Count++)  {
        var TempChar= InString.substring (Count, Count+1);
      if (RefString.indexOf (TempChar, 0)==-1)  
        return (false);
   }
   return (true);
}
/////////////////////////////////////////////////////////////////////////
// END date validation functions
/////////////////////////////////////////////////////////////////////////

// format date onKeyUp - fills in date chars as user types
function dateFormat(obj,dateFldVal) 
{	
	//base year defaults to current year
	//use current year in default publish date
	var retDate = new Date();
	var retYear = retDate.getYear();
	
	//for archive date, add 10 years to publish date
	//user may change publish date, so it might not be default date
	if ((obj.name == "archivedate") && (dateFldVal != ""))
	{
		var pubDate = new Date(dateFldVal);
		var pubYear = pubDate.getYear();
		retYear = pubYear + 10;
	}
	
	if ((obj.value.length == 1)&&(obj.value > 1)) 
	{
		obj.value = obj.value + '/';
	}
	else if ((obj.value.length == 2) && (obj.value.charAt(1) != "/"))
	{
		obj.value=obj.value + '/';
	}
	else if ((obj.value.length == 3) && (obj.value.charAt(2) > 3))
	{
		obj.value=obj.value + '/' + retYear;
	}
	else if (obj.value.length == 4)
	{
		if ((obj.value.charAt(3) != "/") && (obj.value.charAt(3) > 3))
		{
			obj.value=obj.value + '/' + retYear;
		}
		else if ((obj.value.charAt(1) == "/") && (obj.value.charAt(3) != "/"))
		{
			obj.value=obj.value + '/' + retYear;
		}
		else if((obj.value.charAt(1) == "/") && (obj.value.charAt(3) == "/"))
		{
			obj.value=obj.value + retYear;
		}
	}
	else if (obj.value.length == 5)
	{
		if (obj.value.charAt(4) != "/")
		{
			obj.value=obj.value + '/' + retYear;
		}
		else
		{
			 obj.value=obj.value + retYear;
		}
	}
}

function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;
}

function checkEmailFields(form,fldName,fldMsg){
	var fldRef,fldType;
	for (y=0; y < fldName.length; y++)
	{
		if (fldName[y] != "")
		{
			fldRef = form.elements[fldName[y]];
			if (fldRef.value=="")
			{
				alert("Please enter " + fldMsg[y] + ".");
				fldRef.focus();
				return false;
			}else{
				if (fldRef.value.length < 5)	{
					alert("Please enter valid " + fldMsg[y] + ".");
					fldRef.focus();
					return false;
				}else {
					i = fldRef.value.indexOf('.');
					j = fldRef.value.indexOf('@');
					if (i < 0 || j < 0){
						alert("Please enter valid " + fldMsg[y] + ".");
						fldRef.focus();
						return false;
					}
				}
			}
		}
	}	
	return true;
}		




/////////////////////////////////////////////////////////////////////////
// BEGIN date validation functions without alert message - Maheswari May 22 2007
/////////////////////////////////////////////////////////////////////////
function validate_dateSummary(date_field) {
        if (!date_field.value)         
                return true;
  
   var myDateFormatted = date_field.value;

        var in_date = stripCharString(myDateFormatted," ");
        in_date = in_date.toUpperCase();
        var date_is_bad = 0;  
       // if (!allowInString(in_date,"/0123456789T+-"))
		if (!allowInString(in_date,"/0123456789"))
                date_is_bad = 1; // invalid characters in date
        if (!date_is_bad) { 
                var has_rdi = 0;
                if (in_date.indexOf("T") >= 0){ 
                        has_rdi = 1;
                }
                if (!date_is_bad && has_rdi && (in_date.indexOf("T") != 0)) { 
                        date_is_bad = 2; // relative date index character is not in first position
                }
                if (!date_is_bad && has_rdi && (in_date.length == 1)) { 
                        var d = new Date();
						var return_month = parseInt(d.getMonth() + 1).toString();
						//return_month = (return_month.length==1 ? "0" : "") + return_month; 
						var return_date =  parseInt(d.getDate()).toString();
						//return_date = (return_date.length==1 ? "0" : "") + return_date; 
				        in_date = return_month + "/" + return_date + "/" + get_full_year(d);		
                        has_rdi = 0; // date doesn't have rdi char anymore (will also cause failure of add'l rdi checks, which is a good thing)
                }
                if (!date_is_bad && has_rdi && (in_date.length > 1) && !(in_date.charAt(1) == "+" || in_date.charAt(1) == "-")) {
                        date_is_bad = 3; // length of rdi string is greater than 1 but second char is not "+" or "-"
                }
                if (!date_is_bad && has_rdi && isNaN(parseInt(in_date.substring(2,in_date.length),10))) {
                        date_is_bad = 4; // rdi value is not a number
                }
                if (!date_is_bad && has_rdi && (parseInt(in_date.substring(2,in_date.length),10) < 0)) {
                        date_is_bad = 5; // rdi value is not a positive integer
                }
                if (!date_is_bad && has_rdi) {
                        var d = new Date();
                        ms = d.getTime();
                        offset = parseInt(in_date.substring(2,in_date.length),10);
                        if(in_date.charAt(1) == "+") {
                                ms += (86400000 * offset);
                        } else {
                                ms -= (86400000 * offset);
                        }
                        d.setTime(ms);
						var return_month = parseInt(d.getMonth() + 1).toString();
						return_month = (return_month.length==1 ? "0" : "") + return_month; 
						var return_date =  parseInt(d.getDate()).toString();
						return_date = (return_date.length==1 ? "0" : "") + return_date; 
				        in_date = return_month + "/" + return_date + "/" + get_full_year(d);	
                        has_rdi = 0;
                }
        } 
        if (!date_is_bad) {
                var date_pieces = new Array();
                date_pieces = in_date.split("/");
                if (date_pieces.length == 2) {
                        var d = new Date();
                        in_date = in_date + "/" + get_full_year(d);
                        date_pieces = in_date.split("/");
                }
                if (date_pieces.length != 3 || parseInt(date_pieces[0],10) < 1 || parseInt(date_pieces[0],10) > 12 
                                || parseInt(date_pieces[1],10) < 1 || parseInt(date_pieces[1],10) > 31 
                                || (date_pieces[2].length != 2 && date_pieces[2].length != 4)) {
                        date_is_bad = 6;  // date is not in format of m[m]/d[d]/yy[yy]
                }
        }
        if (date_is_bad) {
               // date_field.focus();
                return (false);
        }
        
        var ms = Date.parse(in_date);
        var d = new Date();
        d.setTime(ms);
		var return_date = d.toLocaleString();
		var return_month = parseInt(d.getMonth() + 1).toString();
		//return_month = (return_month.length==1 ? "0" : "") + return_month; 
		var return_date =  parseInt(d.getDate()).toString();
		//return_date = (return_date.length==1 ? "0" : "") + return_date; 
        return_date = return_month + "/" + return_date + "/" + get_full_year(d);
        //date_field.value = return_date;
        return true;
}       // normalize the year to yyyy




//-->