/*Effect.RaiseOut = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left'),
    opacity: element.getInlineOpacity() };
  return new Effect.Parallel(
    [ new Effect.Move(element, {x: 0, y: -20, sync: true }), 
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
    Object.extend(
      { duration: 0.3,
        beforeSetup: function(effect) {
          effect.effects[0].element.makePositioned(); 
        },
        afterFinishInternal: function(effect) {
          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
        } 
      }, arguments[1] || { }));
};



Effect.DropIn = function(element) {

  element = $(element);
  Element.setOpacity(element, 0);
  element.show();
  var oldTop = element.style.top;
  var oldLeft = element.style.left;
  var pos = Position.cumulativeOffset(element);
   return new Effect.Parallel(
    [ new Effect.MoveBy(element, 20, 0, { sync: true }), 
      new Effect.Opacity(element, { sync: true, from:0.0, to: 1.0 }) ],
    Object.extend(
      { duration: 0.3,
        beforeSetup: function(effect) { 
          Element.makePositioned(effect.effects[0].element); 
          Element.setOpacity(element, 0);
          element.style.position = 'absolute'; 
          element.style.top = (pos[1]-20) + 'px'; 
        }
      }, arguments[1] || {}));
}

var out;*/


function error_check(id) {
	
	var status = false;
	
	if(!$(id))
		return false;
	
	switch(id) {
		case 'contact_name':
		case 'callback_name': {
			
			if($(id).value == 'Name') {
				status = false; break;
			}
			
			status = $(id).value.match(/^([a-zA-Z\-\. ]+)$/);
			break;
		}
		case 'contact_phone':
		case 'callback_number': {
			status = $(id).value.replace(/[^0-9]/g, '').match(/^(0[0-9]{9,11})$/);
			break;
		}
		case 'contact_email': {
			status = $(id).value.match(/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i);
			break;
		}
		case 'contact_enquiry': {
			status = $(id).value.length >= 5;	// match(/^.{20,}$/);
			break;
		}
		default: {
			return true;
		}
	}
	
	if(status) {
		$(id+'_box').removeClassName('error');
	}
	else {
		$(id+'_box').addClassName('error');
	}
	
	return status;
}

function send_contact() {

	elements = $('contactform').getInputs();
	for(i = 0; i < elements.length; i++) {
		if(!error_check(elements[i].id)) {
			alert("Please fix the highlighted fields");
			return false;
		}
	}
	
	new Ajax.Request('/contact/contact.php', {
		method: 'post',
		parameters: Form.serializeElements($('contactform').getElements()),
		onSuccess: function(transport, json) {
			
			$('contactform').innerHTML  = '<div class="top">&nbsp;</div>';
			$('contactform').innerHTML += '<div class="bottom clearfix"><h3>Thanks!</h3><p style="margin-bottom: 0 !important;">Thank you for your enquiry.  We shall be in touch shortly.</p></div>';
	
		},
		onFailure: function() {
			// Do Nothing.
		}
	});
	
	return false;	
}

function send_callback() {
	
	// Validate.
	elements = $('callback').getInputs('text');
	for(i = 0; i < elements.length; i++) {
		if(!error_check(elements[i].id)) {
			alert("Please fix the highlighted fields");
			return false;
		}
	}

	// Send AJAX Request
	new Ajax.Request('/contact/callback.php', {
		method: 'post',
		parameters: Form.serializeElements($('callback').getInputs('text')),
		onSuccess: function(transport, json) {
		
			// Append Thankyou.
			thankyou = document.createElement('p');
			thankyou.setAttribute('class', 'thanks');
			thankyou.innerHTML = 'Thank you for your enquiry! We will contact you shortly on the phone number you provided.';
			$('callback_holder').innerHTML = '';
			$('callback_holder').appendChild(thankyou);
			$('call_me_back').innerHTML = 'Thank you!';
			
		},
		onFailure: function() {
			// Do Nothing.
		}
	});
	
	return false;
}