/*
Strip whitespace from the beginning and end of a string
Input : a string
*/
function trim(str)
{
	return str.replace(/^\s+|\s+$/g,'');
}

/*
Check if a string is in valid email format.
Returns true if valid, false otherwise.
*/
function isEmail(str)
{
	var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
	return regex.test(str);
}
  
function validateForm() {
          // Store all the errors in an array
         var errors = [];
		 
		if($('name').value == '') {
			errors.push('- Name is required\n');
		}
		if($('email').value == '') {
			errors.push('- Email address is required\n');
		}else if(!isEmail(trim($('email').value)))
		{
			errors.push('- Invalid e-mail address\n');
		}				 
		if($('comments').value == '') {
			errors.push('- Comment is required\n');
		}
	
          if (errors.length>0) {
              // if there are errors alert them
              alert('Please correct the following problems:\n\n'+ errors.join(''));
             // now return, since we don't want to get to the AJAX section.
              return false;
          }
          // Here's the AJAX request.
          new Ajax.Request('contact.php', {
              method:'post',
              // The parameters are the data from your form
              // Read up on serialize: http://www.prototypejs.org/api/form/serialize
             parameters: $('contact_me').serialize(), 
              // If successful, do this anonymous function.  
              onSuccess: function(transport){ 
                  var response = transport.responseText || "no response text";  
                  //alert("Success! \n\n" + response); 
                  // Don't return true, see below.
				  
				  //reset fields
				  $('name').value = '';
				  $('email').value = '';
				  $('company').value = '';
				  $('subject').value = '';
				  $('comments').value = '';
		
				  //load popup				  
					var elem = $('response_msg');
					elem.innerHTML = 'Thanks for sending your message. Expect a reply in the next 24 hours.';
					elem.className = 'success';	
					//Fade out 
					new Effect.Opacity('response_msg', { from: 1, to: 0, duration: 8 });
	
              },
              // If we fail, alert.
              onFailure: function(){  
                  alert('Something went wrong... try again later!'); 
              } 
          });

          // Always return false
          // We're passing the data through AJAX, so we don't need to submit the form.
          return false;
      } 



function selectReplacement(obj) {
      obj.className += ' replaced';
      var ul = document.createElement('ul');
      ul.className = 'selectReplacement';
      var opts = obj.options;
      var selectedOpt = (!obj.selectedIndex) ? 0 : obj.selectedIndex;
      for (var i=0; i<opts.length; i++) {
        var li = document.createElement('li');
        var txt = document.createTextNode(opts[i].text);
        li.appendChild(txt);
        li.selIndex = i;
        li.selectID = obj.id;
        li.onclick = function() {
          selectMe(this);
        };
        if (i == selectedOpt) {
          li.className = 'selected';
          li.onclick = function() {
            this.parentNode.className += ' selectOpen';
            this.onclick = function() {
              selectMe(this);
            };
          };
        }
        if (window.attachEvent) {
          li.onmouseover = function() {
            this.className += ' hover';
          };
          li.onmouseout = function() {
            this.className = 
              this.className.replace(new RegExp(" hover\\b"), '');
          };
        }
        ul.appendChild(li);
      }
      obj.onfocus = function() {
        ul.className += ' selectFocused';
      };
      obj.onblur = function() {
        ul.className = 'selectReplacement';
      };
      obj.onchange = function() {
        var idx = this.selectedIndex;
        selectMe(ul.childNodes[idx]);
      };
      obj.onkeypress = obj.onchange;
      obj.parentNode.insertBefore(ul,obj);
    }
    function selectMe(obj) {
      var lis = obj.parentNode.getElementsByTagName('li');
      for (var i=0; i<lis.length; i++) {
        if (lis[i] != obj) {
          lis[i].className='';
          lis[i].onclick = function() {
            selectMe(this);
          };
       } else {
          setVal(obj.selectID, obj.selIndex);
          obj.className='selected';
          obj.parentNode.className = 
            obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
          obj.onclick = function() {
            obj.parentNode.className += ' selectOpen';
            this.onclick = function() {
              selectMe(this);
            };
          };
        }
      }
}
function setVal(objID,val) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = val;
  goto(val);
}
function setForm() {
  var s = document.getElementsByTagName('select');
  for (var i=0; i<s.length; i++) {
	selectReplacement(s[i]);
  }
}
function goto(val) { 
	var workselect = $('something');
	location=workselect.options[val].value;
}
window.onload = function() {
  (document.all && !window.print) ? null : setForm();
};

document.observe('dom:loaded', function () { 
	/* initialize lightbox */
	new Lightbox(); 
	
	/* attach events */
	if($("my_works")){
		$$('.work_box_area').each(function(elem){									   
		  elem.childElements()[0].observe('mouseover', function(){
			//move up
			new Effect.Move(elem.childElements()[3], { y: 0, mode: 'absolute', duration: 0.2 });
			//Fade out zoom
			new Effect.Opacity(elem.childElements()[2], { from: 1.0, to: 0, duration: 0.4});
		  });
		  
		  elem.childElements()[0].observe('mouseout', function(){
			//move down
			new Effect.Move(elem.childElements()[3], { y: 150, mode: 'absolute', duration: 0.2 });
			//Fade in zoom
			new Effect.Opacity(elem.childElements()[2], { from: 0, to: 1.0, duration: 0.1 });
		  });	  
		});
	}
	
	//on focus
 	var fields = $$("#contact_me input");
    for (var i = 0; i < fields.length; i++) {
      fields[i].onfocus = function() {this.className += ' focused';}
      fields[i].onblur = function() {this.className = this.className.replace('focused', '');}
    }	
	
});