//Gets all the 'li' in the ul with id 'moreFeatures'
//and adds onmouseover, onmouseout and onclick events

window.addEvent('domready', function() {
  $('methodphone').checked = true;	 	 
});

$('bonusListDiv').removeClass('selectedContent');
$('featuresListDiv').removeClass('selectedContent');

$$("#moreFeatures li").each(function(el) {
	
	el.addEvent('mouseover', function() {
		this.addClass('alt');
	});
	
	el.addEvent('mouseout', function() {
		this.removeClass('alt');
	});
	
	el.addEvent('click', function() {
		$$("#moreFeatures li.selected").each(function(l) {
			l.removeClass('selected');
			$(l.id + 'Div').removeClass('selectedContent');
		});
		if(!this.hasClass('selected')) {
			this.addClass('selected');
			$(this.id + 'Div').addClass('selectedContent');
		}
    // SiteCatalyst Implementation
    if ('function' === typeof afterAjaxPage)
    {
      afterAjaxPage('trustpass-tab-'+ el.getProperty('title'));
    }
		return false;
	});
});

$$('#calldiv a.enquire_botton').each(function(enq) {
	enq.addEvent('click', function() {
		$('enquireList').fireEvent('click');
		var myFx = new Fx.Scroll(window).toElement('enquireList');
	});
});


$$('#calldiv #clickcalllink a').each(function(enq) {
	enq.addEvent('click', function() {
		$('enquireList').fireEvent('click');
		var myFx = new Fx.Scroll(window).toElement('clicktocall');
	});
});



$$("#enquire_form input").each(function(inp) {
	if(inp.getProperty('type') == 'text') {
		inp.setProperty('value', inp.getProperty('title'));
		inp.setStyle('width', '320px');
		inp.addClass('empty');
	}
	
	inp.addEvent('focus', function() {
		if(inp.getProperty('value') == inp.getProperty('title')) {
			inp.setProperty('value', '');
			inp.removeClass('empty');
		}
	});
	
	inp.addEvent('blur', function() {
		if(inp.getProperty('value').trim() == '') {
			inp.setProperty('value', inp.getProperty('title'));
			inp.addClass('empty');
		}
	});
});

/** 
 * Call back handler object and methods for LMO
 */
function LMOCallback() {
  this.error = handleError;
  this.handleSuccess = handleSuccess;         
  this.failure = handleFailure;   
                       
  function handleError(msg) {    
  }
  
  function handleSuccess(lmoresponse) {         
    var records = lmoresponse.getElementsByTagName("uploadSingleLead");
    var result = records[0].getElementsByTagName("result")[0].firstChild.nodeValue
    if(result == 'success') {
      var booking_wait = $('booking_wait');
      booking_wait.style.display = "";
      $('booking_error').style.display = "";
      var booking_conf = $('booking_conf');
      booking_conf.style.display = "inline";              
      $('lmoForm').style.display = "none";
    } else {
      var error = records[0].getElementsByTagName("error")[0].firstChild.nodeValue;
      var booking_wait = $('booking_wait');
      booking_wait.style.display = "";
      var booking_error = $('booking_error');
      booking_error.style.display = "inline";
      
			if(error.indexOf('user_account_contact_given_name') != -1) {
        $("booking_error").innerHTML = "Name field is INVALID.";        
      } else if(error.indexOf('user_account_contact_phone') != -1) {
        $("booking_error").innerHTML = "Phone field is INVALID.";       
      }
    }
  }
  
  function handleFailure(supplementaryResults) {    
  }
}
  
var lmocallback = new LMOCallback();

/** 
 * Function to upload lead to LMO
 */
function uploadlead(lmocallback) {          
 // var myaccountradio = "";
  var proceed = true;
  var errorMessage = "";
  var myaccountQueryString = "";
  $("booking_error").innerHTML = "";
  var booking_error = $('booking_error');
  booking_error.style.display = "";
	var count = 1;
  
	//Validate the contact information
  if($('name').value == ''|| $('name').value == 'First and last name') {           
    proceed = false;
    errorMessage += count+". Name field cannot be left empty \n";
		count++;
    highlightError($('name'), true);
  } else {
    myaccountQueryString = "name="+$('name').value;
    highlightError($('name'), false);
  }
	if($('company').value == '' || $('company').value == 'Company') {           
    proceed = false;
    errorMessage += count+". Company field cannot be left empty \n";
    count++;
		highlightError($('company'), true);
  } else {
    myaccountQueryString += "&company="+$('company').value;
    highlightError($('company'), false);
  }
  if($('phone').value == '' || $('phone').value == 'Phone with area code') {
    proceed = false;
    errorMessage += count+". Phone field cannot be left empty \n";
    count++;
		highlightError($('phone'), true);
  } else {
    if(!$('phone').value.test(/^[-\+\s\.\(\)0-9]{8,}$/)) {
      proceed = false;
      errorMessage += count+". Invalid phone number \n";
      count++;
			highlightError($('phone'), true);
    } else {
      highlightError($('phone'), false);
      myaccountQueryString += "&phone2=" + $('phone').value+"&phone1=61";
    }
  }
	if($('email').value == '' || $('email').value == 'Email address') {
    proceed = false;
    errorMessage += count+". Email field cannot be left empty \n";
    count++;
		highlightError($('email'), true);
  } else {
    /* sees whether an email is wellformed or not */
    if(!($('email').value.match(/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$/))) {
      proceed = false;
      errorMessage += count+". Invalid email address \n";
      count++;
			highlightError($('email'), true);
    } else {
      myaccountQueryString += "&email="+$('email').value;
      highlightError($('email'), false);
    }
  }  
  
	var contactmethod;
	if($('methodemail').checked == true) contactmethod = "email";
	else contactmethod = "phone";
	
	myaccountQueryString += "&contactmethod="+contactmethod;
	
  if(proceed) {
    var booking_wait = $('booking_wait');
    if(booking_wait.style.display == "") {
      booking_wait.style.display = "inline";
    }    
    
    if(proceed) {22
      //Sending a dummy catalogId.
      var url = "/cc/soap/uploadSingleLead";
      var campaign = escape("Trustpass Lander");
      var queryString = "?process=2&mode=trustpass&catalogId=111111&campaign="+campaign+"&countryfield=" + $('countryfield').value+"&"+myaccountQueryString;
      XMLHttpPost(url, queryString, lmocallback);
    } else {            
      booking_wait.style.display = "";
      return false;
    }
  } else {
    alert("Please resolve the following errors: \n\n"+errorMessage);
		return false;
  }         
}

function highlightError(element, state) {
  if(state) {
    element.style.background = '#fcc';
    element.style.backgroundcolor = '#fcc';
  } else {
    element.style.background = '#FFFEA1';
    element.style.backgroundcolor = '#FFFEA1';
  }
}
