/* include js files */
function incJs(filename) {
  var head = document.getElementsByTagName('head').item(0);
  script = document.createElement('script');
  script.src = filename;
  script.type = 'text/javascript';
  head.appendChild(script)
}
incJs('rollover.js');

// POP UP WINDOW
function popUp(content, width, height) {
   mywindow = window.open (content,"mywindow","status=1,width="+width+",height="+height);
   mywindow.moveTo(0,0);
}

// FORM VALIDATION CHECK
function checkform(of) {
  if(!document.getElementById || !document.createTextNode){return;}
  if(!document.getElementById('required')){return;}

  var errorID='errormsg';
  var errorClass='error'
  var errorMsg='Please enter or change the fields with a ';
  var errorImg='images/alert_icon.gif';
  var errorAlt='Error';
  var errorTitle='This field has an error!';
  var reqfields=document.getElementById('required').value.split(',');

// Cleanup old mess
  // if there is an old errormessage field, delete it
  if(document.getElementById(errorID)) {
    var em=document.getElementById(errorID);
    em.parentNode.removeChild(em);
  }
  // remove old images and classes from the required fields
  for(var i=0;i<reqfields.length;i++) {
    var f=document.getElementById(reqfields[i]);
    if(!f){continue;}
    if(f.previousSibling && /img/i.test(f.previousSibling.nodeName)) {
      f.parentNode.removeChild(f.previousSibling);
    }
    f.className='';
  }

  // loop over required fields
  for(var i=0;i<reqfields.length;i++) {
// check if required field is there
    var f=document.getElementById(reqfields[i]);
    if(!f){continue;}

	// test if the required field has an error,
// according to its type
    switch(f.type.toLowerCase()) {
      case 'text':
        if(f.value=='' && f.id!='email'){cf_adderr(f)}
// email is a special field and needs checking
        if(f.id=='email' && !cf_isEmailAddr(f.value)){cf_adderr(f)}
      break;
      case 'textarea':
        if(f.value==''){cf_adderr(f)}
      break;
      case 'checkbox':
        if(!f.checked){cf_adderr(f)}
      break;
      case 'select-one':
        if(!f.selectedIndex && f.selectedIndex==0){cf_adderr(f)}
      break;
    }
  }
  if (!document.getElementById(errorID)) {
  	popUp("thankyou.html","340","240");
  }
  return !document.getElementById(errorID);

  //Tool methods
  function cf_adderr(o) {
  // create image, add to and colourise the error fields
    var errorIndicator=document.createElement('img');
    errorIndicator.alt=errorAlt;
    errorIndicator.src=errorImg;
    errorIndicator.title=errorTitle;
	errorIndicator.width=10;
	errorIndicator.height=10;
    o.className=errorClass;
    o.parentNode.insertBefore(errorIndicator,o);

	// Check if there is no error message
    if(!document.getElementById(errorID)) {
    // create errormessage and insert before submit button
      var em=document.createElement('div');
      em.id=errorID;
      var newp=document.createElement('p');
      newp.appendChild(document.createTextNode(errorMsg))
      // clone and insert the error image
      newp.appendChild(errorIndicator.cloneNode(true));
      em.appendChild(newp);
	  // find the submit button
      for(var i=0;i<of.getElementsByTagName('input').length;i++) {
        if(/submit/i.test(of.getElementsByTagName('input')[i].type)) {
          var sb=of.getElementsByTagName('input')[i];
          break;
        }
      }
      if(sb) {
        sb.parentNode.insertBefore(em,sb);
      }
    }
  }
  function cf_isEmailAddr(str) {
  	return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
  }
}
