function JSTrim (mString)
{
	if (mString != "")
	{
		strLen=mString.length ;
		while(strLen > 1)
		{
			if(mString.substring(0,1) == " ")
			{
				mString= mString.substring(1,strLen);
			}
			else
				break;

			strLen=strLen - 1;
		}	

		if (mString != " ")
		{
			strLen=mString.length ;
			while(strLen > 1)
			{
				if(mString.substring(strLen-1,strLen) == " ")
				{
					mString= mString.substring(0,strLen - 1)
				}
				else
					break;

				strLen=strLen - 1;
			}	
		}
		else 
		mString = "";
	}
	return (mString);
}

function CheckTime(TimeString){
	var strTime = JSTrim(TimeString + "");
	var r1;

    r1 = /\d{1,2}[:]\d{1,2}/;
	if (strTime.search(r1) == -1){
		return false;
	}
	return true;
}

function UnDef(v)
{
	v = "" + v;
	if(v == "undefined" || v == "")
	{
		return true;
	}
	else
	{
		return false;
	}
}

function Defined(v)
{
	return !UnDef(v)
}

function jsCheckChar(formItem,title,required,maxlen)
{
	var s = JSTrim(formItem.value + "");
	
	if (required && UnDef(s)){
		alert("Please input " + title + ". ");
		formItem.focus();
		return false;
	}
	
	if (UnDef(s)){
		formItem.value = "";
	}
	
    if (s.length>maxlen){
        alert("Please input at most "+maxlen+" character(s) for field "+title);
        formItem.focus();
        return false;
    }
    return true;
}

function jsCheckLength(s,title,minlen,maxlen)
{
    if (s.length<minlen){
        alert("Please input at least "+minlen+" character(s) for field "+title);
        return false;
    }
    if (s.length>maxlen){
        alert("Please input at most "+maxlen+" character(s) for field "+title);
        return false;
    }
    return true;
}

function jsCheckInteger(formItem,title,required){
	var s = JSTrim(formItem.value + "");
	if (UnDef(s) && required){
		alert("Please input " + title + ". ");
		formItem.focus();
		return false;
	}
	if (UnDef(s)){
		formItem.value = 0;
		return true;
	}
	
	if (!CheckInteger(s,title)){
		formItem.focus();
		return false;
	}
	formItem.value = s;
	return true;
}	

function CheckInteger(s,title)
{
    var i,c;
    for (i=0;i<s.length;i++){
        c = s.charAt(i);
        if (c<'0' || c>'9'){
            alert("Please input a valid integer for field "+title);
            return false;
        }
    }
    return true;
}

function jsCheckNumber(formItem,title,required){
	var s = JSTrim(formItem.value + "");
	if (UnDef(s) && required){
		alert("Please input " + title + ". ");
		formItem.focus();
		return false;
	}
	if (UnDef(s)){
		formItem.value = 0;
		return true;
	}
	
	if (!CheckNumber(s,title)){
		formItem.focus();
		return false;
	}
	formItem.value = s;
	return true;
}

function CheckNumber(s,title)
{
    var i,c;
    var bPoint = false;
    for (i=0;i<s.length;i++){
        c = s.charAt(i);
        if ( (c<'0' || c>'9') && c!='.'){
            alert("Please input a valid number for field "+title);
            return false;
        }
        if (c=='.'){
            if (bPoint){
                alert("Please input a valid number for field "+title);
                return false;
            }
            bPoint = true;
        }
    }
    return true;
}

function jsCheckAlphabet(s,title)
{
    var i,c;
    var ls = s.toLowerCase();
    for (i=0;i<ls.length;i++){
        c = ls.charAt(i);
        if ((c<'a' || c>'z') && c!=' '){
            alert("Please type only letters (a-z/A-Z) into field "+title);
            return false;
        }
    }
    return true;
}

function jsCheckIdentifier(s,title)
{
    var i,c;
    var ls = s.toLowerCase();
    for (i=0;i<ls.length;i++){
        c = ls.charAt(i);
        if ( (c<'a' || c>'z') && (c<'0' || c>'9') && c!='_' ){
            alert("Field "+title+" only allows letters(a-z), digits(0-9) and '_'");
            return false;
        }
    }
    return true;
}

function jsCheckEmail(formItem,title,required){
	var s = JSTrim(formItem.value + "");
	
	var reg = /[A-Za-z0-9_-]+(\@){1}[A-Za-z0-9_-]+\.{1}[A-Za-z0-9_-]+/gi;
 	if (!s.match(reg) || s==""){
	    alert("Your entered email message may be incorrect.");
		formItem.focus();
	    return;
	}

//	if (required && UnDef(s)){
//		alert("Please input correct " + title + " format.");
//		formItem.focus();
//		return false;
//	}

//	if (Defined(s)){
//		if (!isValidEmail(s)){
//			return false;
//		}
//	}else{
//		formItem.value = "";
//	}

	return true;
}

function isValidEmail(str)
{
	var apos = str.indexOf("@");
	var dpos = str.indexOf(".");
	var epos = str.indexOf("]");
	var fpos = str.indexOf("[");	 
	if (apos<=0 || dpos<=0 || epos>0 || fpos>0 ){
	     return false;
	}
	if (dpos+1>=str.length){
	     return false;
	}
	return true;
}

function isValidLogon(str)
{
	var s = str.toLowerCase();
	var c;

	for (i=0;i< s.length;i++){
		c = s.charAt(i);
		if (c>='a' && c<='z' || c>='0' && c<='9' || c=='_')
			continue;
		return false;
	}
	if(str=="")
		return false;
	return true;
}

function parseDigits(str)
{
	var c;
	var i=0,j=0;
	var sOK="";

	for (;i< str.length;i++){
		c = str.charAt(i);
		if (c>'9' || c<'0')
			continue;
		sOK+=""+c;
	}
	return sOK;
}

function jsCheckDate(formItem,title,required){
	var s = JSTrim(formItem.value + "");
	if (UnDef(s) && required){
		alert("Please input date field " + title + ". ");
		formItem.focus();
		return false;
	}

	if (Defined(s)){
		//Date formate: mm/dd/yyyy
		var pos1 = s.indexOf("/");
		var pos2 = s.lastIndexOf("/");
		var m = s.substring(0,pos1);
		var d = s.substring(pos1+1,pos2);
		var y = s.substr(pos2+1);
		
		if (y.length < 4){
			alert("Please input valid date field " + title + ". Date format is mm/dd/yyyy");
			formItem.focus();
			return false;
		}

		if (!IsValidDate(y,m,d)){
			alert("Please input valid date field " + title + ". Date format is mm/dd/yyyy");
			formItem.focus();
			return false;
		}	
	}else
		formItem.value = "";
	
	return true;
	
}

function IsValidDate(Year, Month, Day)
{
	var intYear = parseInt("" + Year);
	if (isNaN(intYear))	return false;
	
	var intMonth = Month + "";
	for (var i = 0; i < intMonth.length; i++){
		if (parseInt(intMonth.charAt(i)) == 0){
			intMonth = intMonth.substr(1)
		}else{
			break;
		}
	}
	if (isNaN(intMonth))	return false;

	var intDay = Day + "";
	for (i = 0; i < intDay.length; i++){
		if (parseInt(intDay.charAt(i)) == 0){
			intDay = intDay.substr(1);
		}else{
			break;
		}
	}
	if (isNaN(intDay))	return false;

	var RetVal = true;
	
	if (intMonth == 0 || intYear == 0 || intDay ==0 || intYear < 1970 || intDay > 31 || intMonth > 12 || intYear > 2050)
		return false;
		
	if ((intYear%4==0 && intYear%100!=0) || intYear%400==0)
	{
		if(intMonth == 2 && intDay > 29)
			RetVal = false;
		if((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && intDay > 30)
			RetVal = false;
	}
	else
	{
		if((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && intDay > 30)
			RetVal = false;
		if (intMonth == 2 && intDay > 28)
			RetVal = false;
	}
	
	return RetVal;
}

function jsCheckSelect(formItem,title,required,hiddenInput){
	if (required)
		var retVal = false;
	else
		var retVal = true;
	
	for (var i = 0; i < formItem.length; i++){
		if (formItem.options[i].selected == true && (formItem.options[i].value != "" && formItem.options[i].value != "0")){
			if (hiddenInput + "" != "undefined")
				hiddenInput.value = JSTrim(formItem.options[i].value + "");
			retVal = true;
			break;
		}
	}

	if (required && !retVal){
		alert("Please choice field " + title + ". ");
		formItem.focus();
		return false;
	}
	return true;
}

function jsCheckSelect1(formItem,title,required){
	if (required)
		var retVal = false;
	else
		var retVal = true;
		
	for (var i = 1; i < formItem.length; i++){
		if (formItem.options[i].selected == true){
			retVal = true;
			break;
		}
	}

	if (required && !retVal){
		alert("Please choice field " + title + ". ");
		formItem.focus();
		return false;
	}
	return true;
}

function jsCheckCheckBox(formItem,title,required){
	if (required)
		var retVal = false;
	else
		var retVal = true;
	
	for (var i = 0; i < formItem.length; i++){
		if (formItem[i].checked == true){
			retVal = true;
			break;
		}
	}

	if (required && !retVal){
		alert("Please define field " + title + ". ");
		formItem.focus();
		return false;
	}

	return true;
}

//formPhone : hidden input of form
//type: 1-required; 0-check valid only;
function jsCheckPhone(formCountry,formArea,formLocal,formExt,formPhone,display,required)
{
	var re = /\D/g;
	var Country = JSTrim(formCountry.value + "");
	var Area = JSTrim(formArea.value + "");
	var Local = JSTrim(formLocal.value + "");
	var Ext = JSTrim(formExt.value + "");
	
	if (Local == "")
	{	
		if ((Country!=""||Area!=""||Ext!="") || required)
		{
			alertForm("Please input "+display+" .",formLocal)
			return false;
		}
		if (!required)
		{
			formPhone.value = "";
			return true;
		} 
	}

	if (Country != "")
	{
		if (isNaN(Country))
		{
			alert("issue?");
			alertForm(display+"'s country code contents invaild characters, please use number only.",formCountry);
			return false;
		}
		//Country = parseInt(Country);
	}
	
	if (Area != "")
	{
		if (isNaN(Area))
		{
			alertForm(display+"'s area code contents invaild characters, please use number only.",formArea);
			return false;
		}
		//Area = parseInt(Area);
	}
	if (Local != "")
	{
		if (isNaN(Local))
		{
			alertForm(display+"'s local number contents invaild characters, please use number only.",formLocal);
			return false;
		}
		//Local = parseInt(Local);
	}
	if (Ext != "")
	{
		if (isNaN(Ext))
		{
			alertForm(display+"'s ext code contents invaild characters, please use number only.",formExt);
			return false;
		}
		//Ext = parseInt(Ext);
	}
	
	formPhone.value = Country + "," + Area + "," + Local + "," + Ext;
	return true;
}


function BackTo(n)
{
	i = 0 - n;
	history.go(i);
}

function alertForm(text,item){
	alert(text);
	item.focus();
}


function pseudohtml() { var MainWindow = window.open ('form_eidt_help.cfm',"_blank","toolbar=no,location=no,menubar=no,scrollbars=yes,width=425,height=300,left=200,top=5,resizeable=no,status=no");}
helpstat = false;
stprompt = true;
basic = false;

function code() {
		AddTxt="[code] Your Code Goes Here [/code]";		
		AddText(AddTxt);
		}
function email() {
        if (helpstat) {
                alert("Email Tag\nTurns an email address into a mailto hyperlink.\nUSE: <a href=\"mailto:someone@anywhere.com\"></a>\nUSE: <a href=\"mailto:someone@anywhere.com\">link text</a>");
        } else if (basic) {
                AddTxt="<a href=\"mailto:\"></a>";
                AddText(AddTxt);
        } else {
                txt2=prompt("Text to be shown for the link.\nLeave blank if you want the email address to be shown for the link.","");
                if (txt2!=null) {
                        txt=prompt("Email address.","name@domain.com");
                        if (txt!=null) {
                                if (txt2=="") {
                                        AddTxt="<a href=\"mailto:"+txt+"\">"+txt+"</a>";
                                } else {
                                        AddTxt="<a href=\"mailto:"+txt+"\">"+txt2+"</a>";
                                }
                                AddText(AddTxt);
                        }
                }
        }
}
function showsize(size) {
        if (helpstat) {
                alert("Size Tag\nSets the text size.\nPossible values are 1 to 6.\n 1 being the smallest and 3 the largest.\nUSE: <font size=\""+size+"\">This is size "+size+" text</font>");
        } else if (basic) {
                AddTxt="<font size=\""+size+"\"></font>";
                AddText(AddTxt);
        } else {
                txt=prompt("Text to be size "+size,"Text");
                if (txt!=null) {
                        AddTxt="<font size=\""+size+"\">"+txt+"</font>";
                        AddText(AddTxt);
                }
        }
}

function bold() {
        if (helpstat) {
                alert("Bold Tag\nMakes the enlosed text bold.\nUSE: <b>This is some bold text</b>");
        } else if (basic) {
                AddTxt="<b></b>";
                AddText(AddTxt);
        } else {
                txt=prompt("Text to be made BOLD.","Text");
                if (txt!=null) {
                        AddTxt="<b>"+txt+"</b>";
                        AddText(AddTxt);
                }
        }
}
function italicize() {
        if (helpstat) {
                alert("Italicize Tag\nMakes the enlosed text italicized.\nUSE: <i>This is some italicized text</i>");
        } else if (basic) {
                AddTxt="<i></i>";
                AddText(AddTxt);
        } else {
                txt=prompt("Text to be italicized","Text");
                if (txt!=null) {
                        AddTxt="<i>"+txt+"</i>";
                        AddText(AddTxt);
                }
        }
}

function showcolor(color) {
        if (helpstat) {
                alert("Color Tag\nSets the text color.  Any named color can be used.\nUSE: <font color=\""+color+"\">This is some "+color+" text</font>");
        } else if (basic) {
                AddTxt="<font color=\""+color+"\"></font>";
                AddText(AddTxt);
        } else {
        txt=prompt("Text to be "+color,"Text");
                if(txt!=null) {
                        AddTxt="<font color=\""+color+"\">"+txt+"</font>";
                        AddText(AddTxt);
                }
        }
}
function center() {
        if (helpstat) {
                alert("Centered tag\nCenters the enclosed text.\nUSE: <center>This text is centered</center>");
        } else if (basic) {
                AddTxt="<center></center>";
                AddText(AddTxt);
        } else {
                txt=prompt("Text to be centered","Text");
                if (txt!=null) {
                        AddTxt="\r<center>"+txt+"</center>";
                        AddText(AddTxt);
                }
        }
}
function hyperlink() {
        if (helpstat) {
                alert("Hyperlink Tag\nTurns an url into a hyperlink.\nUSE: <a href=\"http://www.anywhere.com\"></a>\nUSE: <a href=\"http://www.anywhere.com\">link text</a>");
        } else if (basic) {
                AddTxt="<a href=></a>";
                AddText(AddTxt);
        } else {
                txt2=prompt("Text to be shown for the link.\nLeave blank if you want the url to be shown for the link.","");
                if (txt2!=null) {
                        txt=prompt("URL for the link.","http://");
                        if (txt!=null) {
                                if (txt2=="") {
                                        AddTxt="<a href=\""+txt+"\">"+txt+"</a>";
                                        AddText(AddTxt);
                                } else {
                                        AddTxt="<a href=\""+txt+"\">"+txt2+"</a>";
                                        AddText(AddTxt);
                                }
                        }
                }
        }
}
function list() {
        if (helpstat) {
                alert("List Tag\nBuilds a bulleted, numbered, or alphabetical list.\nUSE: <ol>\n<li>item1\n<li>item2\n<li>item3\n</ol>");
        } else if (basic) {
                AddTxt="\r<table><tr><td class='content'><ol>\r<li>\r<li>\r<li>\r</ol></td></tr></table>";
                AddText(AddTxt);
        } else {
                txt=prompt("Type of list\nEnter 'A' for alphabetical, '1' for numbered, Leave blank for bulleted.","");
                while ((txt!="") && (txt!="A") && (txt!="a") && (txt!="1") && (txt!=null)) {
                        txt=prompt("ERROR!\nThe only possible values for type of list are blank 'A' and '1'.","");
                }
                if (txt!=null) {
                        if (txt.toLowerCase()=="a") {
                                AddTxt="\r<table><tr><td class='content'><ol type=a>\r\n";
                        } else {
                                AddTxt="\r<table><tr><td class='content'><ol type=1>\r";
                        }
                        txt="1";
                        while ((txt!="") && (txt!=null)) {
                                txt=prompt("List item\nLeave blank to end list","");
                                if (txt!="") {
                                        AddTxt+="<li>"+txt+"\r";
                                }
                        }
                        AddTxt+="</ol></td></tr></table>\r\n";
                        AddText(AddTxt);
                }
        }
}
function underline() {
        if (helpstat) {
                alert("Underline Tag\nUnderlines the enclosed text.\nUSE: <u>This text is underlined</u>");
        } else if (basic) {
                AddTxt="<u></u>";
                AddText(AddTxt);
        } else {
                txt=prompt("Text to be Underlined.","Text");
                if (txt!=null) {
                        AddTxt="<u>"+txt+"</u>";
                        AddText(AddTxt);
                }
        }
}

function image() {
        if (helpstat){
                alert("Image Tag Inserts an image into the post.\n\nUSE: [^img=\"image.gif\" align=\"left\"^]");
        } else if (basic) {
                AddTxt="[^img=^]";
                AddText(AddTxt);
        } else {  
                txt=prompt("Name of the graphic","image_name.gif");    
                if(txt!=null) {            
                        AddTxt="[^img=\""+txt+"\" align=\"left\"^]";
                        AddText(AddTxt);
                }       
        }
}
function voice() {
        if (helpstat){
                alert("Media Tag Inserts a media into the post.\n\nUSE: [~voice=\"voice.wav\"~]");
        } else if (basic) {
                AddTxt="[~voice=~]";
                AddText(AddTxt);
        } else {  
                txt=prompt("Name of the media","voice.wav");    
                if(txt!=null) {            
                        AddTxt="[~voice=\""+txt+"\"~]";
                        AddText(AddTxt);
                }       
        }
}
function movie() {
        if (helpstat){
                alert("Media Tag Inserts a media into the post.\n\nUSE: [&movie=\"movie.avi\"&]");
        } else if (basic) {
                AddTxt="[&movie=&]";
                AddText(AddTxt);
        } else {  
                txt=prompt("Name of the media","movie.avi");    
                if(txt!=null) {            
                        AddTxt="[&movie=\""+txt+"\"&]";
                        AddText(AddTxt);
                }       
        }
}
function classfile() {
        if (helpstat) {
                alert("Span Tag\nUSE: <span title=\"span text\">show text</span>");
        } else if (basic) {
                AddTxt="<span title=></span>";
                AddText(AddTxt);
        } else {
                txt2=prompt("Text to be shown.","shown text");
                if (txt2!=null) {
                        txt=prompt("Text to be span.","span text");
                        if (txt!=null) {
                                if (txt2=="") {
                                        AddTxt="<span title=\""+txt+"\">"+txt+"</span>";
                                        AddText(AddTxt);
                                } else {
                                        AddTxt="<span title=\""+txt+"\">"+txt2+"</span>";
                                        AddText(AddTxt);
                                }
                        }
                }
        }
}
function showfont(font) {
        if (helpstat){
                alert("Font Tag\nSets the font face for the enclosed text.\nUSE: <font face="+font+">The font of this text is "+font+"</font>");
        } else if (basic) {
                AddTxt="<font face="+font+"></font>";
                AddText(AddTxt);
        } else {
                txt=prompt("Text to be in "+font,"Text");
                if (txt!=null) {
                        AddTxt="<font face=\""+font+"\">"+txt+"</font>";
                        AddText(AddTxt);
                }
        }
}

// function to load the calendar window.
function ShowCalendar(formname, fieldname)
{
	window.open("dateselectpop.php?formname=" + formname + "&fieldname=" + fieldname, "CalendarWindow", "width=201,height=206");
}

function ShowCalendar(formname, fieldname)
{
	window.open("/admin/dateselectpop.php?formname=" + formname + "&fieldname=" + fieldname, "CalendarWindow", "width=201,height=206");
}

// Set the formItem to be checked if it's a radio, or set formItem to be focused if it's a text.
function changeFocus(formItem,type){
	if (type == "checkbox"){
		formItem.checked = true;
	}
	if (type == "text"){
		formItem.focus();
	}
}

