function swapImg(imgFrom,imgTo){
    if(document.images){
        if(imgFrom && imgTo){
            imgFrom.src=imgTo.src;
            imgFrom.title=imgTo.title;
        }
    }
}

function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+"="+escape( value ) +
		( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
		( ( path ) ? ";path=" + path : "" ) +
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function checkDate(thisForm, thisName) {
    var valDay = thisForm.elements[thisName+'D'].selectedIndex;
    var valMonth = thisForm.elements[thisName+'M'].selectedIndex-1;     // m = 0..11
    var valYear = thisForm.elements[thisName+'Y'].options[thisForm.elements[thisName+'Y'].selectedIndex].value;
    //alert(valDay + '  ' + valMonth + ' ' + valYear);
    //return;
    //var valYear = thisForm.elements[thisName+'Y'].selectedIndex+1;
    if((valDay>0) && (valMonth>=0) && (valYear>0)){

        var intOffset = 0;
        var tryDate = new Date(valYear, valMonth, valDay);
        while(tryDate.getMonth() != valMonth) {
            valDay--;
            var tryDate = new Date(valYear, valMonth, valDay);
        }
        if(valDay!=thisForm.elements[thisName+'D'].selectedIndex) {
            alert('Sorry, The Month You Selected\nDoes Not Have That Many Days!');
            thisForm.elements[thisName+'D'].selectedIndex = valDay;
        }else{//set date to cookie
            sDate=valYear+"-"+thisForm.elements[thisName+'M'].selectedIndex+"-"+valDay+" 00:00:00";
            setCookie(thisName, sDate, 9999999, '', '', 0 );
        }
    }else{
        deleteCookie(thisName,'','');
    }
}

function matchPassword(strPassword1,strPassword2){
     if (!(strPassword1.value==strPassword2.value)){
         alert("Passwords do not match!");
         return false;
     }
     return true;
}


function validate(thisForm) {
    var strError = '';
    for (j=0; j < thisForm.elements.length;j++) {
        var currentElement = thisForm.elements[j];
        if (currentElement.className == 'mandatory') {
            //alert(currentElement.name);
            switch (currentElement.type) {
            case 'hidden':
                //pass through
            case 'text':
                //pass through
            case 'textarea':
                //currentElement.value = currentElement.value.replace(/^\W+/,'');
                // Remove leading spaces
                currentElement.value = currentElement.value.replace(/^\s+/g,'');
                // Remove trailing spaces
                currentElement.value = currentElement.value.replace(/\s+$/g,'');
                if(currentElement.value.length == 0){
                    strError = strError + '     Field ' + currentElement.id +' is empty.\n';
                }
                break;
            case 'password':
                if (!(currentElement.value.length > 4)){
                    strError = strError + '     Field ' + currentElement.id + ': ' + ' is not a valid password.\n';
                }
                break;
            case 'select-one':
                if(!currentElement.options[currentElement.selectedIndex].text){
                    strError = strError + '     No ' + currentElement.id +' selected.\n';
                }
                break;
            case 'select-multiple':
                if(currentElement.selectedIndex == -1){
                    strError = strError + '     No ' + currentElement.id +' selected.\n';
                }
                break;
            }
        }//end if
    }// end for
    if (strError.length == 0) {
        thisForm.submit();
        return true;
    }else{
        alert('These fields must be corrected:\n' + strError);
        return false;
    }
}// end validate


////////////////////////// PASSWORD Functions///////////////////////////////////
function getNewPassword(){

	var NUM_LETTERS = 26;
	var NUM_DIGITS = 9;
	var NUM_GOOFY = 7;
	var NUM_PASSWORD = 8;
	var iUpper;
	var iDigit;
	var iSpecial;
	var strLowercase = "abcdefghijklmnopqrstuvwxyz";
	var strUppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var strDigit =  "123456789";
	var strSpecial =  "!@#%-*?";
	var intPosition;
	var iRand;
	var strPassword = "";

	//randomly pick a character position for a uppercase letter
	iUpper = Math.floor(Math.random() * NUM_PASSWORD);
	//randomly pick a [different] character position for a digit
	do{
		iDigit = Math.floor(Math.random() * NUM_PASSWORD);
	} while (iDigit == iUpper);

	//randomly pick a [still different] character position for a special character
	do{
		iSpecial = Math.floor(Math.random() * NUM_PASSWORD);

	} while ((iSpecial == iUpper) || (iSpecial == iDigit));


	//first fill up password with random lowercase letters
	for (intPosition = 0; intPosition < NUM_PASSWORD; intPosition++){
		//This was a switch but it barfed in NS4.8 so I made it  an if..else
		if (intPosition==iUpper){
			iRand = Math.floor(Math.random() * NUM_LETTERS);
			strPassword = strPassword + strUppercase.charAt(iRand);
		}else if(intPosition==iDigit){
			iRand = Math.floor(Math.random() * NUM_DIGITS);
			strPassword = strPassword + strDigit.charAt(iRand);
		}else if(intPosition==iSpecial){
			iRand = Math.floor(Math.random() * NUM_GOOFY);
			strPassword = strPassword + strSpecial.charAt(iRand);
		}else{
			iRand = Math.floor(Math.random() * NUM_LETTERS);
			strPassword = strPassword + strLowercase.charAt(iRand);
		}

	}

	alert('The suggested password is \"' + strPassword + '\".');
	return (strPassword);

}



function insertAtCursor(myField, myValue){
	//IE support
	if (document.selection)	{
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		sel.moveStart('character', myValue.length);
		sel.select();
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == 0)	{
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value =
		myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
		myField.selectionStart = startPos;
		myField.selectionEnd = startPos + myValue.length;
	}

	//Anyone else.
	else
	{
		myField.value += myValue;
	}
}

function checkType(thisInput){
    //Set the attachment file type and title as necessary.
    var filename =thisInput.value.substr((thisInput.value.lastIndexOf("\\")+thisInput.value.lastIndexOf("/"))+2,thisInput.value.length);
    document.getElementById('Title'+thisInput.id).value= filename; 
}




