function trim(s) {

    if((s==null)||(typeof(s)!='string')||!s.length) {
        return '';
    }
    return s.replace(/^\s+/,'').replace(/\s+$/,'');

}

function isBlank(field) {

    if (field == '') {
        return true;
    }
    if (trim(field) == '') {
        return true;
    }
    return false;
}

function echeck(str) {

      var at="@";
      var dot=".";
      var lat=str.indexOf(at);
      var lstr=str.length;
      var ldot=str.indexOf(dot);

      if (str.indexOf(at)==-1){
           return false;
      }

      if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
          return false;
      }

      if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
          return false;
      }

      if (str.indexOf(at,(lat+1))!=-1){
          return false;
      }

      if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
          return false;
      }

      if (str.indexOf(dot,(lat+2))==-1){
          return false;
      }

      if (str.indexOf(" ")!=-1){
          return false;
      }

      return true;
}  

function isUrl(s) {
   	
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(s);
}

function validate_bb(value) {
    
    if (isBlank(value)) {
	alert("You must provide a name.");
	return false;
    }
    else {
	return true;
    }
}

function validate_contact() {
 
    var name = document.form1.name.value;
    var email = document.form1.email.value;
    var loc = document.form1.location.value;
    var message = document.form1.message.value;

    if (isBlank(name)) {
	alert ("You must provide a name.");
	return false;
    }

    else if (isBlank(email)) {
	alert ("You must provide an email address.");	
	return false;
    }

    else if (!echeck(email)) {
	alert ("Your email address is invalid.");
	return false;
    }

    else if (loc == '0') {
	alert ("You must choose a location.");
	return false;
    }

    else if (isBlank(message)) {
	alert ("You must include a message.");
	return false;
    }

    else {
        return true;
    }
}

function validate_login() {
    
    var userName = document.form1.userName.value;
    var password = document.form1.password.value;

    if (isBlank(userName)) {
	alert("You must provide a User Name.");
	return false;
    }

    else if (isBlank(password)) {
	alert ("You must provide a Password.");
	return false;
    }

    else {
	return true;
    }
}

function validate_index_image() {
    
    var imageFile = document.form1.imageFile.value;
    
    if (isBlank(imageFile)) {
        alert ("You must browse for a file first to update the main image.");
        return false;
    }
    else {
	return true;
    }
}

function validate_index_content() {
    
    var content = document.form2.content.value;
    
    if (isBlank(content)) {
        alert ("Page content cannot be blank.");
        return false;
    }
    else {
	return true;
    }
}

function validate_about_content() {
    
    var content = document.form1.content.value;
    
    if (isBlank(content)) {
        alert ("Page content cannot be blank.");
        return false;
    }
    else {
	return true;
    }
}

function validate_faq_content(question, answer) {
    
    if (isBlank(question)) {
	alert ("Question cannot be blank.");
	return false;
    }
    else if (isBlank(answer)) {
	alert ("Answer cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_add_faq() {
    
    var question = document.form1.question.value;
    var answer = document.form1.answer.value;

    if (isBlank(question)) {
	alert ("Question cannot be blank.");
	return false;
    }
    else if (isBlank(answer)) {
	alert ("Answer cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_program_image(imageFile) {
    
    if(isBlank(imageFile)) {
	alert ("You must browse for a file first to update the image.");
	return false;
    }
    else {
	return true;
    }
}

function validate_program_content(description) {
    
    if (isBlank(description)) {
	alert ("You cannot submit a blank description.");
	return false;
    }
    else {
	return true;
    }
}

function validate_link_content(name, link) {
    
    if (isBlank(name)) {
	alert ("Link Display Name cannot be blank.");
	return false;
    }
    else if (isBlank(link)) {
	alert ("Link cannot be blank.");
	return false;
    }
    else if (!isUrl(link)) {
	alert ("Link is not valid.");
	return false;
    }
    else {
	return true;
    }
}

function validate_add_link() {
    
    var name = document.form1.name.value;
    var link = document.form1.link.value;

    if (isBlank(name)) {
	alert ("Link Display Name cannot be blank.");
	return false;
    }
    else if (isBlank(link)) {
	alert ("Link cannot be blank.");
	return false;
    }
    else if (!isUrl(link)) {
	alert ("Link is not valid.");
	return false;
    }
    else {
	return true;
    }
}

function validate_album_content(name) {
    
    if (isBlank(name)) {
        alert ("Album Name cannot be blank.");
        return false;
    }
    else {
	return true;
    }
}

function validate_add_album() {
    
    var name = document.form1.name.value;
    if (isBlank(name)) {
        alert ("Album Name cannot be blank.");
        return false;
    }
    else {
	return true;
    }
}

function validate_event_content(name, loc, eventDate, description) {
    
    if (isBlank(name)) {
	alert ("Event Name cannot be blank.");
	return false;
    }
    else if (isBlank(loc)) {
	alert ("Event Location cannot be blank.");
	return false;
    }
    else if (isBlank(eventDate)) {
	alert ("You must choose an Event Date.");
	return false;
    }
    else if (isBlank(description)) {
	alert ("Description cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_add_event() {
   
    var name = document.form1.name.value;
    var loc = document.form1.loc.value;
    var eventDate = document.form1.eventDate.value;
    var oEditor = FCKeditorAPI.GetInstance('description');
    var oDOM = oEditor.EditorDocument;
    var description = '';
    if (document.all) {
        description = oDOM.body.innerText;
    }
    else {
        var r = oDOM.createRange();
        r.selectNodeContents(oDOM.body);
        description = r.toString();
    }

    if (isBlank(name)) {
	alert ("Event Name cannot be blank.");
	return false;
    }
    else if (isBlank(loc)) {
	alert ("Event Location cannot be blank.");
	return false;
    }
    else if (isBlank(eventDate)) {
	alert ("You must choose an Event Date.");
	return false;
    }
    else if (isBlank(description)) {
	alert ("Description cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_instructor_content(name, bio) {
   
    if (isBlank(name)) {
	alert ("Name cannot be blank.");
	return false;
    }
    else if (isBlank(bio)) {
	alert ("Bio cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_instructor_image(imageFile) {
    
   if (isBlank(imageFile)) {
	alert ("You must browse for a file first to update the image.");
	return false;
   }
   else {
	return true;
   }
}

function validate_add_instructor() {
    
    var name = document.form1.name.value;
    var bio = document.form1.bio.value;

    if (isBlank(name)) {
	alert ("Instructor Name cannot be blank.");
	return false;
    }
    else if (isBlank(bio)) {
	alert ("Bio cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_location_content(name, address, city_prov) {

    if (isBlank(name)) {
	alert ("Location name cannot be blank.");
	return false;
    }
    else if (isBlank(address)) {
	alert ("Address cannot be blank.");
	return false;
    }
    else if (isBlank(city_prov)) {
	alert ("City/Province cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_location_image(imageFile) {
    
    if (isBlank(imageFile)) {
	alert ("You must browse for a file first to update the image.");
	return false;
   }
   else {
	return true;
   }

}

function validate_user_content(userName, password) {
    
    if (isBlank(userName)) {
	alert ("User Name cannot be blank.");
	return false;
    }
    else if (isBlank(password)) {
	alert ("Password cannot be blank.");
	return false;
    }
    else {
	return true;
    }
}

function validate_schedule_day(day, action) {
    
    if (action == 'Add Time') {
        return true;
    }
    else if (action == 'Delete Day') {
	return confirm('Are you sure you want to delete \'' + day + '\'?');	
    }
    else if (action == 'Change Day') {
        if (isBlank(day)) {
	    alert('Day cannot be blank.');
	    return false;
	}
	else {
	    return true;	
	}
    }
    else {
        return false;
    }
}

function validate_schedule_time(start, end, name, action) {
    
    if (action == 'Update') {
	if (isBlank(start)) {
	    alert ("You must provide a start time.");
	    return false;
	}
	else if (isBlank(end)) {
	    alert ("You must provide an end time.");
	    return false;
	}
	else if (isBlank(name)) {
	    alert ("You must provide a class name.");
	    return false;
	}
	else {
	    return true;
	}
    }
    else if (action == 'Delete') {
	return confirm('Are you sure you want to delete \'' + start + ' - ' + end + '\'?');
    }
    else {
	return false;
    }
}
