var ElementMaxHeight = function() {
  this.initialize.apply(this, arguments);
}

ElementMaxHeight.prototype = {
  initialize: function(className) {
    this.elements = document.getElementsByClassName(className || 'maxheight');    
    this.textElement = document.createElement('span');
    this.textElement.appendChild(document.createTextNode('A'));
    this.textElement.style.display = 'block';
    this.textElement.style.position = 'absolute';
    this.textElement.style.fontSize = '1em';
    this.textElement.style.top = '-1000px';
    this.textElement.style.left = '-1000px';
    document.body.appendChild(this.textElement);
    this.textElementHeight = document.getDimensions(this.textElement).height;
    var __object = this;
    var __checkFontSize = this.checkFontSize;
    this.checkFontSizeInterval = window.setInterval(function() {return __checkFontSize.apply(__object)}, 500);

    this.expand();

    // Refresh elements height onResize event
    var __expand = this.expand;
    if (window.addEventListener) {
      window.addEventListener('resize', function(event) {return __expand.apply(__object, [( event || window.event)])}, false);
    } else if (window.attachEvent) {
      window.attachEvent('onresize', function(event) {return __expand.apply(__object, [( event || window.event)])});
    }
  },

  expand: function() {
    this.reset();
  	for (var i = 0; i < this.elements.length; i++) {  	
      this.elements[i].style.height = document.getDimensions(this.elements[i].parentNode).height + 'px';
  	}
  },

  reset: function() {
    for (var i = 0; i < this.elements.length; i++) {    
      this.elements[i].style.height = 'auto';
    }
  },

  checkFontSize: function() {
  	var height = document.getDimensions(this.textElement).height;
  	if(this.textElementHeight != height) {
  		this.textElementHeight = height;
  		this.expand();
  	}
  }  
}


if (!!document.evaluate) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, parentElement || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(query.snapshotItem(i));
    return results;
  }
}

document.getElementsByClassName = function(className, parentElement) {
  if (!!document.evaluate) {
    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
    return document._getElementsByXPath(q, parentElement);
  } else {
    var children = (parentElement || document.body).getElementsByTagName('*');
    var elements = [], child;
    for (var i = 0, length = children.length; i < length; i++) {
      child = children[i];
      if (child.className.length != 0 &&
          (child.className == className ||
           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
        elements.push(child);
      }
    }
    return elements;
  }
}

document.getDimensions = function (element) {
  var display = element.style.display;
  if (display != 'none' && display != null) { // Safari bug
    return {width: element.offsetWidth, height: element.offsetHeight};
  }

  return {width: originalWidth, height: originalHeight};
}

function popupWin(url, w, h) {
	var centerWidth = (window.screen.width - windowWidth) / 2;
	var centerHeight = (window.screen.height - windowHeight) / 2;

	option="menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,left=" + centerWidth+ ",top=" + centerHeight;
	if (w) option+=",width="+w;
	if (h) option+=",height="+h;
	window.open(url, "", option);
}

// validation form

function validateLoginForm()
{
	var form = document.forms["login_form"];
	var username = form["username"].value;
	if (!/[ \t]*[_a-zA-Z0-9]+[ \t]*/.test(username)) {
		alert("กรุณาระบุ username เพื่อเข้าสู่ระบบ");
		form.username.focus();
	} else {
		form.submit();
	}
}

function validateRegister()
{
	var form = document.forms["data_form"];
	var username = form["usernameRegis"].value;
	var email = form["email"].value;

	if (!/[ \t]*[_a-zA-Z0-9]+[ \t]*/.test(username)) {
		alert("กรุณาระบุ username");
		form.usernameRegis.focus();
		//return false;
	} else if (form["password"].value == "") {
		alert("กรุณาระบุ password");
		form.password.focus();
		//return false;
	} else if (form["repassword"].value == "") {
		alert("กรุณาระบุ password อีกครั้ง");
		form.repassword.focus();
		//return false;
	} else if (form["repassword"].value != form["password"].value) {
		alert("กรุณาตรวจสอบ password และ repassword อีกครั้ง.");
		form.repassword.focus();
		//return false;
	} else if (form["name"].value == "") {
		alert("กรุณาระบุชื่อ");
		form.name.focus();
		//return false;
	} else if (form["surname"].value == "") {
		alert("กรุณาระบุนามสกุล");
		form.surname.focus();
		//return false;
	} else if (form["occupation"].value == "") {
		alert("กรุณาระบุอาชีพ");
		form.occupation.focus();
		//return false;
	} else if (form["email"].value == "") {
		alert("กรุณาระบุอีเมล์");
		form.email.focus();
		//return false;
	} else if (!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/.test(email)) {
		alert("กรุณาตรวจสอบอีเมล์");
		form.email.focus();
		//return false;
	} else if (form["address"].value == "") {
		alert("กรุณาระบุที่อยู่");
		form.address.focus();
		//return false;
	} else if (form["province"].value == "") {
		alert("กรุณาระบุจังหวัด");
		form.province.focus();
		//return false;
	} else if (form["postcode"].value == "") {
		alert("กรุณาระบุรหัสไปรษณีย์");
		form.postcode.focus();
		//return false;
	} else if (form["telephone"].value == "") {
		alert("กรุณาระบุโทรศัพท์");
		form.telephone.focus();
		//return false;
	} else if (form["mobilephone"].value == "") {
		alert("กรุณาระบุโทรศัพท์มือถือ");
		form.mobilephone.focus();
		//return false;
	} else if (form["birthdate"].value == "") {
		alert("กรุณาระบุวันเดือนปีเกิด");
		form.birthdate.focus();
		//return false;
	} else {
		form.submit();
	}

}

function validateEditRegister()
{
	var form = document.forms["data_form"];
	var username = form["usernameRegis"].value;
	var email = form["email"].value;

	if (!/[ \t]*[_a-zA-Z0-9]+[ \t]*/.test(username)) {
		alert("กรุณาระบุ username");
		form.usernameRegis.focus();
		//return false;
	} else if (form["password"].value == "") {
		alert("กรุณาระบุ password");
		form.password.focus();
		//return false;
	} else if (form["name"].value == "") {
		alert("กรุณาระบุชื่อ");
		form.name.focus();
		//return false;
	} else if (form["surname"].value == "") {
		alert("กรุณาระบุนามสกุล");
		form.surname.focus();
		//return false;
	} else if (form["occupation"].value == "") {
		alert("กรุณาระบุอาชีพ");
		form.occupation.focus();
		//return false;
	} else if (form["email"].value == "") {
		alert("กรุณาระบุอีเมล์");
		form.email.focus();
		//return false;
	} else if (!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/.test(email)) {
		alert("กรุณาตรวจสอบอีเมล์");
		form.email.focus();
		//return false;
	} else if (form["address"].value == "") {
		alert("กรุณาระบุที่อยู่");
		form.address.focus();
		//return false;
	} else if (form["province"].value == "") {
		alert("กรุณาระบุจังหวัด");
		form.province.focus();
		//return false;
	} else if (form["postcode"].value == "") {
		alert("กรุณาระบุรหัสไปรษณีย์");
		form.postcode.focus();
		//return false;
	} else if (form["telephone"].value == "") {
		alert("กรุณาระบุโทรศัพท์");
		form.telephone.focus();
		//return false;
	} else if (form["mobilephone"].value == "") {
		alert("กรุณาระบุโทรศัพท์มือถือ");
		form.mobilephone.focus();
		//return false;
	} else if (form["birthdate"].value == "") {
		alert("กรุณาระบุวันเดือนปีเกิด");
		form.birthdate.focus();
		//return false;
	} else {
		form.submit();
	}

}


function validateSeminarOnlineOrig()
{
	var form = document.forms["data_form"];
	var email = form["email"].value;
	

	if (form["name"].value == "") {
		alert("กรุณาระบุชื่อ");
		form.name.focus();
		//return false;
	} else if (form["surname"].value == "") {
		alert("กรุณาระบุนามสกุล");
		form.surname.focus();
		//return false;
	} else if (form["position"].value == "") {
		alert("กรุณาระบุตำแหน่ง");
		form.position.focus();
		//return false;
	} else if (form["email"].value == "") {
		alert("กรุณาระบุอีเมล์");
		form.email.focus();
		//return false;
	} else if (!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/.test(email)) {
		alert("กรุณาตรวจสอบอีเมล์");
		form.email.focus();
		//return false;
	} else if (form["telephone"].value == "") {
		alert("กรุณาระบุโทรศัพท์");
		form.telephone.focus();
		//return false;
	
	} else {
		form.submit();
	}

}

function validateSeminarOnline()
{
	var form = document.forms["data_form"];
	var counter =  form["counter"].value;
	var elemlist = form["elemlist"];
	var comemail =  form["com_email"].value;
	var passed = true;

	elemlist.value = "";

	for(i=0;i<counter;i++)
	{
		var name = form["name_"+i];

		if(typeof(name) != "undefined") { 
			var email = form["email_"+i].value;
			// keep element list that is not undefined.	
			if(i != 0) {
				elemlist.value = elemlist.value + "," +i;
			} else {
				elemlist.value = i;
			}
			//alert(elemlist.value);
			// validate form
			if (form["name_"+i].value == "") {
				alert("กรุณาระบุชื่อ");
				form["name_"+i].focus();
				passed = false;
				break;
				//return false;
			} else if (form["surname_"+i].value == "") {
				alert("กรุณาระบุนามสกุล");
				form["surname_"+i].focus();
				passed = false;
				break;
				//return false;
			} else if (form["position_"+i].value == "") {
				alert("กรุณาระบุตำแหน่ง");
				form["position_"+i].focus();
				passed = false;
				break;
				//return false;
			} else if (form["email_"+i].value == "") {
				alert("กรุณาระบุอีเมล์");
				form["email_"+i].focus();
				passed = false;
				break;
				//return false;
			} else if (!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/.test(email)) {
				alert("กรุณาตรวจสอบอีเมล์");
				form["email_"+i].focus();
				passed = false;
				break;
				//return false;
			} else if (form["telephone_"+i].value == "") {
				alert("กรุณาระบุโทรศัพท์");
				form["telephone_"+i].focus();
				passed = false;
				break;
				//return false;
			}
		}

	}

	if (form["company"].value != "") {
		if (form["com_contact"].value == "") {
			alert("กรุณาระบุชื่อผู้ติดต่อ");
			form["com_contact"].focus();
			passed = false;
		} else if (form["com_email"].value == "") {
			alert("กรุณาระบุอีเมล์ผู้ติดต่อ");
			form["com_email"].focus();
			passed = false;

		} else if (form["com_email"].value != "") {
				if (!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/.test(comemail)) {
					alert("กรุณาตรวจสอบอีเมล์ผู้ติดต่อ");
					form["com_email"].focus();
					passed = false;
				}
		}
	}
	
	
	if (passed)
	{
		form.submit();
	}
	
}

function validateContactUs()
{
	var form = document.forms["emailForm"];
	var email = form["email"].value;

	if (form["name"].value == "") {
		alert("กรุณาระบุชื่อ");
		form.name.focus();
		//return false;
	} else if (form["email"].value == "") {
		alert("กรุณาระบุอีเมล์");
		form.email.focus();
		//return false;
	} else if (!/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/.test(email)) {
		alert("กรุณาตรวจสอบอีเมล์");
		form.email.focus();
		//return false;
	} else if (form["telephone"].value == "") {
		alert("กรุณาระบุโทรศัพท์");
		form.telephone.focus();
		//return false;
	} else if (form["subject"].value == "") {
		alert("กรุณาระบุหัวข้อเรื่องที่ต้องการติดต่อ");
		form.subject.focus();
		//return false;	
	} else {
		form.submit();
	}

}

