var emailexp = /^[a-z][a-z_0-9\-\.]+@[a-z_0-9\.\-]+\.[a-z]{2,3}$/i
var phoneexp =  /^\d{10}$/
var xcount = 1;
var telnos1 = /^[ ]*[(]{0,1}[ ]*[0-9]{3,3}[ ]*[)]{0,1}[-]{0,1}[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/
var telnos2 = /^[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/
function IsTelno(sText){
	return (telnos1.test(sText) || telnos2.test(sText));
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }


function CRLF () {
	return String.fromCharCode(10) + String.fromCharCode(13);
}

function TAB(howMany) {
	var tempStr
	for (count = 0; count < howMany; count++) {
		tempStr = tempStr & String.fromCharCode(9);
	}
}

function validateEmail(str) {	
	return emailexp.test(str)
}

function validatePhone(str) {
	return phoneexp.test(str)
}

function StripChars(ItemsToStrip, str) {
	returnString = "";
	for (i = 0; i < str.length; i++) {  
		var c = str.charAt(i);
        	if (ItemsToStrip.indexOf(c) == -1) returnString += c;       	 	 
	}
	return returnString;
}

function AllSpace(str) {   //Makes String Blank if noting but spaces
	for (i=0; i < str.length; i++) {
		if (str.charAt(i) != " ") {
			return str;
		}
	}
	return "";
}

function SetDec(str, places) { //chops decimal places to max number of places	
	if (isNaN(str)) {
		return str;
	}
	if (str.indexOf(".") != -1) {
	    if (places > 0) {
		str = str.substring(0, eval(str.indexOf(".")) + eval(places) + eval(1));
	    } else {
		str = str.substring(0, str.indexOf("."));
	    }
	}
	return str;
}

function DateFormat(dateVal) {	
	DayVal = dateVal.getDate();
	MonthVal = dateVal.getMonth();
	YearVal = dateVal.getYear();	
	if (YearVal.length <= 2) {
		YearVal = eval(YearVal) + 1900;				
	}
	tempStr = eval(MonthVal + 1) + "/" + DayVal + "/" + YearVal;	
	return tempStr;
}

function stripNonDigits(str) {
	return str.replace(/[^0-9]/g,"")
}

function checkform(form, errColor, startColor, showAlert, showErrors, fontStyle) {
    Error = false;	
    alertStr = "";
    for (x=0; x < form.elements.length; x++ ) {	
	fieldError = false;   
	if (form.elements(x).type == "text" || form.elements(x).type == "select-one" || form.elements(x).type == "password"  || form.elements(x).type == "textarea") {
	    if (showErrors == true) {
		document.all[form.elements(x).name + 'Error'].innerHTML = "";
	    }		
	    form.elements(x).value = AllSpace(form.elements(x).value);
	    if (x+1 < form.length && form.elements(x+1).name.charAt(0) == "@") {
		paramStr = form.elements(x+1).name.substring(1, form.elements(x+1).name.length);
		params = null;
		params = paramStr.split("_");
			
		if (params[7] != null) {
			backColor = params[7];
		} else {
			backColor = startColor;
		} 
		
		if (params[6] != null && AllSpace(params[6]) != "" ) {
			defaultValue = params[6];
		} else {
			defaultValue = "";
		}
		if (params[1] == "NoBlank" && form.elements(x).value == "" && defaultValue == "") {
			alertStr = alertStr + "The " + params[2] + " field must not be blank." + CRLF();
			if (showErrors == true) {
				document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>The " + params[2] + " field must not be blank.</font>";
			}
			Error = true;
			fieldError = true;	
		
		} else if (params[1] == "NoBlank" && form.elements(x).value == "" && defaultValue != "") {
			form.elements(x).value = defaultValue;

		} else if (params[0] == "email") {
			if (!validateEmail(form.elements(x).value) && form.elements(x).value != "") {				
				alertStr = alertStr + "The " + params[2] + " field does not contain a valid email address." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>The " + params[2] + " field does not contain a valid email address.</font>";
				}
				Error = true;
				fieldError = true;
			} 
		} else if (params[0] == "number" && form.elements(x).value != "") {
			form.elements(x).value =  StripChars("$,%", form.elements(x).value);			
			if (params[3] != null) {
				form.elements(x).value = SetDec(form.elements(x).value, params[3]);	
			}
			if (isNaN(form.elements(x).value)) {
			 	alertStr = alertStr + "The " + params[2] + " field does not contain a valid numeric value." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field does not contain a valid numeric value.</font>";
				}
				Error = true;
				fieldError = true;
			} else {
				if (params[4] != null) {
					if (eval(form.elements(x).value) < eval(params[4])) {
						alertStr = alertStr + "Then " + params[2] + " field must be greater than " + params[4] + CRLF();
						if (showErrors == true) {
							document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field must be greater than " + params[4] + "</font>";
						}
						Error = true;
						fieldError = true;
					}
				}
				if (params[5] != null) {
					if (eval(form.elements(x).value) > eval(params[5])) {
						alertStr = alertStr + "Then " + params[2] + " field must be less than " + params[5] + CRLF();
						if (showErrors == true) {
							document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field must be less than " + params[5] + "</font>";
						}
						Error = true;
						fieldError = true;
					}
				}
			}
			
		} else if (params[0] == "age" && form.elements(x).value != "") {
			
			form.elements(x).value = SetDec(form.elements(x).value,0);
			if (eval(form.elements(x).value) < 0 || eval(form.elements(x).value) > 120) {
				alertStr = alertStr + "The " + params[2] + " field doesn't appear to be a valid age." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>The " + params[2] + " field doesn't appear to be a valid age.</font>";
				}
				Error = true;
				fieldError = true;
			}			
		} else if (params[0] == "date" && form.elements(x).value != "") {
			dateYear = new String();
			curDate = new Date();
			tempDate = new Date(form.elements(x).value);
			dateYear = dateYear + tempDate.getYear();			
			if (dateYear.length <= 2) {
				dateYear = eval(dateYear) + eval(1900);				
			}			
			if (form.elements(x).value != "") {
			    if (tempDate == "NaN") {
				alertStr = alertStr + "The " + params[2] + " field is not a valid date." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field is not a valid date.</font>";
				}
				Error = true;
				fieldError = true;			
			    } else if (params[4] != null && dateYear < eval(curDate.getYear()) - eval(params[4])) {
				alertStr = alertStr + "The " + params[2] + " field is too low." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field is too low.</font>";
				}
				Error = true;
				fieldError = true;			
	
			    } else if (params[5] != null && dateYear > eval(curDate.getYear()) + eval(params[5])) {
				alertStr = alertStr + "The " + params[2] + " field is too high." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field is too high.</font>";
				}
				Error = true;
				fieldError = true;			
	
			    } else {
				form.elements(x).value = DateFormat(tempDate);
			    }
			}
		} else if (params[0] == "phone" && form.elements(x).value != "") {
			form.elements(x).value = stripNonDigits(form.elements(x).value)
			if (validatePhone(form.elements(x).value)) {
			    	tempP = form.elements(x).value	
			    	form.elements(x).value = "(" + tempP.substring(0, 3) + ") " + tempP.substring(3,6) + "-" + tempP.substring(6, 10)
			} else {
			    	alertStr = alertStr + "The " + params[2] + " field is invalid.  Please include the full phone number including area code." + CRLF();
				if (showErrors == true) {
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field is invalid.  Please include the full phone number including area code.</font>";
				}
				Error = true;
				fieldError = true;	
			}
		}
		if (fieldError == true) {
			form.elements(x).style.background = errColor;
	    	} else {
			form.elements(x).style.background = backColor;
	   	}			
	    } 
	}				
    }
    

    if (Error == true) {
		if (showAlert == true) {
			alert (alertStr);
		}
		return false;
    }else{
		return true;
	}

}


function getmail(mystr){
		
}


function isblank(mystr){
	if(mystr.length==0){
		return false;
	}else{
		return true;
	}
}


function cus_add(){
	var ispermit = true;
//	xforms = checkform(myform, '#D7CD9A', '#ffffff', true, false, '')

isERROR = false;


err_username.style.display = "none";
err_password.style.display = "none";
err_firstname.style.display = "none";	
err_lastname.style.display = "none";
err_address.style.display = "none";
err_city.style.display = "none";
err_state.style.display = "none";
err_postalcode.style.display = "none";
err_telnos.style.display = "none";
err_email.style.display = "none";
err_cardnumber.style.display = "none";
err_name_on_card.style.display = "none";
err_expiration_date.style.display = "none";

bool_username=true;
bool_password=true;
bool_firstname=true;	
bool_lastname=true;
bool_address=true;
bool_city=true;
bool_state=true;
bool_postalcode=true;
bool_telnos=true;
bool_email=true;
bool_cardnumber=true;
bool_name_on_card=true;
bool_expiration_date=true;



if(myform.isAdd=="true"){
	if(!isblank(myform.username.value)){
		err_username.style.display = "";
		err_username.innerText = "Required!";
		bool_username = false;
	}

	if(!isblank(myform.password.value)){
		err_password.style.display = "";
		err_password.innerText = "Required!";
		bool_password= false;
	}
}

if(!isblank(myform.firstname.value)){
	err_firstname.style.display = "";
	err_firstname.innerText = "Required!";
	bool_firstname =false;
}

if(!isblank(myform.lastname.value)){
	err_lastname.style.display = "";
	err_lastname.innerText = "Required!";
	bool_lastname =false;
}

if(!isblank(myform.address.value)){
	err_address.style.display = "";
	err_address.innerText = "Required!";
	bool_address =false;
}

if(!isblank(myform.city.value)){
	err_city.style.display = "";
	err_city.innerText = "Required!";
	bool_city=false;
}

if(!isblank(myform.state.value)){
	err_state.style.display = "";
	err_state.innerText = "Required!";
	bool_state =false;
}

if(!isblank(myform.postalcode.value)){
	err_postalcode.style.display = "";
	err_postalcode.innerText = "Required!";
	bool_postalcode =false;
}

if(!isblank(myform.telnos.value)){
	err_telnos.style.display = "";
	err_telnos.innerText = "Required!";
	bool_telnos =false;
}
if(!isblank(myform.email.value)){
	err_email.style.display = "";
	err_email.innerText = "Required!";
	bool_email = false;
}

if(!validateEmail(myform.email.value)){
	err_email.style.display = "";
	err_email.innerText = "Invalid email address!";
	bool_email =false;
}

if(!isblank(myform.cardnumber.value)){
	err_cardnumber.style.display = "";
	err_cardnumber.innerText = "Required!";
	bool_cardnumber =false;
}

if(!isblank(myform.name_on_card.value)){
	err_name_on_card.style.display = "";
	err_name_on_card.innerText = "Required!";
	bool_name_on_card =false;
}
if(!isblank(myform.expiration_date.value)){
	err_expiration_date.style.display = "";
	err_expiration_date.innerText = "Required!";
	bool_expiration_date =false;
}

if(	!(bool_expiration_date==true &&
	bool_name_on_card==true &&
	bool_cardnumber==true &&
	bool_email==true &&
	bool_telnos==true &&
	bool_postalcode==true &&
	bool_state==true &&
	bool_city==true &&
	bool_address==true &&
	bool_lastname==true &&
	bool_firstname==true &&
	bool_username==true &&
	bool_password==true)){
return false;
}



/*
expiration_date
name_on_card
cardnumber
email
telnos
postalcode
state
city
address
lastname
firstname
username
password
*/

	
	if(myform.isAdd=="true"){
			try{
				var xcheck = new ActiveXObject("MSXML2.ServerXMLHTTP");
			}catch(ex){
				alert("Enable 'Initialize and script ActiveX controls not marked as safe'\nGoto Tools>Internet Options>Security(tab)>Custom Level");
			}
			xurl = myform.xurl.value;
		    varstr = "username="+myform.username.value;
   		    xcheck.open("POST", xurl,false);
		    xcheck.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		    xcheck.send(varstr);
			var xdom = new ActiveXObject("MSXML2.Domdocument");
			if(xdom.loadXML(xcheck.responseText)==true){
				if (xdom.childNodes(1).text == "0"){
					ispermit = true;
				}else{
					ispermit = false;
					err_username.style.display = "";
					err_username.innerText = "Username already exist!";
					//alert("Username already exist...\n Please select another name...");
					return false;
			    }
		     }else{
 					alert("Please try again...");
					return false;
			 }
	}

}



function checkform(){

	form1.txt_description.value = oEdit1.getHTMLBody();
		
	if(!isblank(form1.txt_title.value)){
		alert("Title is Required!");
		return false;
	}
	
	
	if(!isblank(form1.txt_price.value)){
		alert("Price is Required!");
		return false;
	}
	
	if(!IsNumeric(form1.txt_price.value)){
		alert("Error on Price (Invalid numeric format!)");
		return false;
	}

	if(xcount>1){
			for(cx=1;cx<=xcount;cx++){
				xinput = document.getElementById("txtcapacity" + cx);
				if(!isblank(xinput.value)){
					alert("Row "+ cx +" Capacity is Required!");
					return false;
				}
				if(!IsNumeric(xinput.value)){
					alert("Error on Row "+ cx +" Capacity (Invalid numeric format!)");
					return false;
				}
			}
	}else{
		if(!isblank(form1.txtcapacity1.value)){
				alert("Row 1 Capacity is Required!");
				return false;
		}
		if(!IsNumeric(form1.txtcapacity1.value)){
			alert("Error on Row 1 Capacity (Invalid numeric format!)");
			return false;
		}
	
	}
	

}


function removerow() {
	var xindex = sched_data.rows.length;
	if(xindex>0){
	 sched_data.deleteRow(xindex-1)
	 xcount--;
	 };
}

function get_month(valcount){
var xdate = new Date();
x_month = xdate.getMonth() + 1;

var tempselect = "<select id='cbo_month"+ valcount +"' name=\"cbo_month[]\" style=\"width:98%\">";
x_selected = (x_month==1) ? "selected": "";
tempselect +="<option value=\"1\" "+ x_selected +">January</option>";
x_selected = (x_month==2) ? "selected": "";
tempselect +="<option value=\"2\" "+ x_selected +">February</option>";
x_selected = (x_month==3) ? "selected": "";
tempselect +="<option value=\"3\" "+ x_selected +">March</option>";
x_selected = (x_month==4) ? "selected": "";
tempselect +="<option value=\"4\" "+ x_selected +">April</option>";
x_selected = (x_month==5) ? "selected": "";
tempselect +="<option value=\"5\" "+ x_selected +">May</option>";
x_selected = (x_month==6) ? "selected": "";
tempselect +="<option value=\"6\" "+ x_selected +">June</option>";
x_selected = (x_month==7) ? "selected": "";
tempselect +="<option value=\"7\" "+ x_selected +">July</option>";
x_selected = (x_month==8) ? "selected": "";
tempselect +="<option value=\"8\" "+ x_selected +">August</option>";
x_selected = (x_month==9) ? "selected": "";
tempselect +="<option value=\"9\" "+ x_selected +">September</option>";
x_selected = (x_month==10) ? "selected": "";
tempselect +="<option value=\"10\" "+ x_selected +">October</option>";
x_selected = (x_month==11) ? "selected": "";
tempselect +="<option value=\"11\" "+ x_selected +">November</option>";
x_selected = (x_month==12) ? "selected": "";
tempselect +="<option value=\"12\" "+ x_selected +">December</option>";
tempselect +="</select>";
return tempselect;
}

function get_day(valcount){
var tempselect = "<select id='cbo_day"+ valcount +"' name=\"cbo_day[]\" style=\"width:98%\">";
var xdate = new Date();
xday = xdate.getDate();

for(cx=1;cx<=31;cx++){
x_select = (xday==cx) ? "selected" : "";
tempselect +="<option value=\""+ cx +"\" "+ x_select +">"+ cx +"</option>";
}
tempselect +="</select>";
return tempselect;
}

function get_year(valcount){
var xdate = new Date();
xyear = xdate.getYear();
var tempselect = "<select id='cbo_year"+valcount+"' name=\"cbo_year[]\" style=\"width:98%\">";
for(cx=2005;cx<=2010;cx++){
x_select = (xyear==cx) ? "selected" : "";
tempselect +="<option value=\""+ cx +"\" "+ x_select + ">"+cx+"</option>";
}
tempselect +="</select>";
return tempselect;
}

function get_hour(valcount){
var tempselect = "<select id='cbo_hour"+ valcount +"' name=\"cbo_hour[]\" style=\"width:98%\">";
for(cx=1;cx<=24;cx++){
if(cx<=9){
tempselect +="<option value=\"0"+ cx +"\">0"+cx+"</option>";
}else{
tempselect +="<option value=\""+ cx +"\">"+cx+"</option>";
}
}
tempselect +="</select>";
return tempselect;
}

function get_min(valcount){
var tempselect = "<select id='cbo_min"+valcount+"' name=\"cbo_min[]\" style=\"width:98%\">";
for(cx=0;cx<=59;cx++){
if(cx<=9){
tempselect +="<option value=\"0"+ cx +"\">0"+cx+"</option>";
}else{
tempselect +="<option value=\""+ cx +"\">"+cx+"</option>";
}
}
tempselect +="</select>";
return tempselect;
}



function addrow() {
	xcount++;
	var newrow = sched_data.insertRow();
	var newcell_1 = newrow.insertCell();
	var newcell_2 = newrow.insertCell();
	var newcell_3 = newrow.insertCell();
	var newcell_4 = newrow.insertCell();
	var newcell_5 = newrow.insertCell();
	var newcell_6 = newrow.insertCell();	
	newcell_1.innerHTML = get_month(xcount);
	newcell_2.innerHTML = get_day(xcount);
	newcell_3.innerHTML = get_year(xcount);
	newcell_4.innerHTML = get_hour(xcount);
	newcell_5.innerHTML = get_min(xcount);
	newcell_6.innerHTML = "<input id='txtcapacity"+xcount+"' type=\"text\" name=\"txt_capacity[]\" style=\"width:98%\" value=\"100\">";

//xtable.innerHTML = xtable.innerHTML + "<tr><td>aasdsad</td><td>asdsad</td></tr>";
}


//#region 2
//script for DHTML tooltip text------------------------------------
//begin variable declarecation
var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
document.onmousemove=positiontip
//end vars
//begin functions---------------------------------------------------

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}

function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.x+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.y+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}
//end functions
//end #region 2




function deleteyes(){
	if(!confirm("Delete Schedule?")){
		return false;
	}

}

function editForm(xid){
	mwidth = 640;
	mheight = 480;
	xpage = "n_eventedit.php?id=" + xid;
	parameters = "left=0, top=0,width="+ mwidth +", height="+ mheight +", status=0, scrollbars=0, resizable=0";
	window.open(xpage,"myEditform",parameters);

}

function editSched(xid){
	mwidth = 451;
	mheight = 272;
	xpage = "n_shededit.php?id=" + xid;
	parameters = "left=0, top=0,width="+ mwidth +", height="+ mheight +", status=0, scrollbars=0, resizable=0";
	window.open(xpage,"SchedEditform",parameters);

}


function addSched(){
	mwidth = 451;
	mheight = 272;
	xpage = "n_addsched.php";
	parameters = "left=0, top=0,width="+ mwidth +", height="+ mheight +", status=0, scrollbars=0, resizable=0";
	window.open(xpage,"AddSched",parameters);

}
