var showStfButtonInterval;

window.onload = function() {setStf();} 

function setStf() { 
	if (document.getElementById('topline')) {
		var showStfButtonInterval;
		var groundheight = document.body.clientHeight; 
		var stfWrap = document.getElementById('stf-wrap'); 
		stfWrap.style.height = groundheight + 'px';
		showStfButton(); 
	}
}  

function showStfButton() { 
	
	var topLineDiv = document.getElementById('topline');
	var topLineLinks = topLineDiv.getElementsByTagName('a');
	var i;
	
	for (i=0;i<=topLineLinks.length;i++) {
		if (topLineLinks[i].className.search(/send/)!=(-1)) {
			topLineLinks[i].style.visibility = 'visible';
			break;
		}
	}
}  

//form controls

var buttonInterval;
var inputToField;
var inputToHidden;
var recipientsArray;
var recipientsString;
var divRecipients;
var divRecipientsHTML;
var maxRecipients = 10;

function validateEmail(str) {
  if(str.search(/^.+@.+\.[a-z0-9\.]{2,12}$/i)!=(-1)) return true;
  else 
  return false;
}

function showHideButton(){
  inputToField = document.getElementById('to_field');
  inputToHidden = document.getElementById('to_hidden');
  
  recipientsString = inputToField.value+inputToHidden.value
  recipientsString = recipientsString.replace(/^\,/g, '');
  
  recipientsArray = recipientsString.split(',');
  
  var button = document.getElementById('button_add_recipient');
  
  if (recipientsArray.length>=(maxRecipients)) {
    button.style.display = 'none';
  }
  else {
    if(validateEmail(inputToField.value)) {
      button.style.display = 'block';
    }
    else {
      button.style.display = 'none';
    }
  }
}

function clearForm(formId) {
	var formToClear = document.getElementById(formId);
	var formFields = formToClear.getElementsByTagName('input');
	var formTextareas = formToClear.getElementsByTagName('textarea');
	var i;
	
	for (i=0;i<formFields.length;i++) {
		if (formFields[i].getAttribute('type')=='hidden') {
			if (formFields[i].getAttribute('name')=='to_hidden') formFields[i].value = '';
		}
		else {
			formFields[i].value = '';
		}		
	}
	for (i=0;i<formTextareas.length;i++) {
			formTextareas[i].value = '';	
	}
}

function addRecipient(email) {
  var i;
  var recipientVal;
  
  divRecipients = document.getElementById('to_list');
  inputToField = document.getElementById('to_field');
  inputToHidden = document.getElementById('to_hidden');
  
  recipientVal = (!email) ? inputToField.value : email;

  recipientsString = recipientVal+','+inputToHidden.value;
  recipientsString = recipientsString.replace(/\s+/g, '');
  
  do {
    recipientsString = recipientsString.replace(/^\,/g, '');
    recipientsString = recipientsString.replace(/\,$/g, '');
  }
  while (recipientsString.search(/^\,/g)>0 || recipientsString.search(/\,$/g, '')>0);
  
	recipientsArray = recipientsString.split(',');
  if (recipientsArray.length >= maxRecipients) {
		inputToField.disabled = true;
		inputToField.style.color = '#999';
	}
  
  if (recipientsArray.length<=(maxRecipients)) {
    divRecipientsHTML = '<ul>';
    for (i=0;i<recipientsArray.length;i++) {
      divRecipientsHTML += '<li>'+recipientsArray[i]+' <a href="#" onClick="removeRecipient(\''+recipientsArray[i]+'\'); updateRecipientsList(); return false;">remove</a></li>';
    } 
    divRecipientsHTML += '</ul>';
    inputToHidden.value=recipientsString;
    inputToField.value = (recipientsArray.length >= maxRecipients) ? 'maximum 10 recipients allowed' : '';
    return true;
  }
  else {
		alert('maximum 10 recipients allowed!');
		return false;
	}
}

function removeRecipient(rVal) {

  var toHiddenValue = inputToHidden.value;
  var divRecipientsContent = divRecipients.innerHTML;
  
  toHiddenValue = toHiddenValue.replace(rVal, '');
  toHiddenValue = toHiddenValue.replace(',,', ',');
  toHiddenValue = toHiddenValue.replace(/^\,/g, '');
  toHiddenValue = toHiddenValue.replace(/\,$/g, '');
  
  inputToHidden.value = toHiddenValue;
  
  recipientsArray = toHiddenValue.split(',');
  
  if (recipientsArray.length == (maxRecipients-1)) {
	  inputToField.disabled = false;
	  inputToField.value = '';
		inputToField.style.color = '#333';
	}
  
  if (recipientsArray[0]) {
    divRecipientsHTML = '<ul>';
    for (i=0;i<recipientsArray.length;i++) {
      divRecipientsHTML += '<li>'+recipientsArray[i]+' <a href="#" onClick="removeRecipient(\''+recipientsArray[i]+'\'); updateRecipientsList(); return false;">remove</a></li>';
    } 
    divRecipientsHTML += '</ul>';
  }
  else {
  	divRecipientsHTML = '';
    divRecipients.innerHTML = '';
  }
  showHideButton();
}

function updateRecipientsList() {
	if (divRecipients && divRecipientsHTML) {
  	divRecipients.innerHTML = divRecipientsHTML;
  }
}


// stf div controls

var flashDivs = new Array('header-banner', 'splash_mini_ads', 'mpu_holder', 'videoplayerbig', 'ad-mpu');
var wrapperDiv;

function fadeIt() {
	var stfWrap = document.getElementById('stf-wrap'); 
	stfWrap.style.display = 'block';
}

function unFadeIt() {
	var stfWrap = document.getElementById('stf-wrap'); 
	stfWrap.style.display = 'none';
}

function sendRequest() {
	new Ajax.Request('/includes/send_to_friend/send_to_friend_functions.php', {
	method: 'post',
	postBody: 'name_sender='+$F('name_sender')+'&from='+$F('from')+'&message='+$F('message')+'&to_field='+$F('to_field')+'&stf_url='+$F('stf_url')+'&to_hidden='+$F('to_hidden')+'&page_title='+$F('page_title'),
	onComplete: showResponse
	});
	showHideLoader();
}

function showResponse(req) {
	//$('contact-form-error').style.borderStyle= 'solid';	   
	var res=/message was received/;
	showHideLoader();
	showHideForm();
	$('contact-form-error').innerHTML=  req.responseText;
	$('contact-form-error').style.display = 'block';
	$('contact-form-error').style.visibility = 'visible';
	$('contact-form-error').className = 'error sent';
}

function validateForm() {
	inputToField.value = (recipientsArray.length >= maxRecipients) ? '' : inputToField.value;
	var to_field = inputToField.value;
	var name_sender = document.getElementById('name_sender').value;
	var to_hidden = document.getElementById('to_hidden').value;
	var from = document.getElementById('from').value;
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var error = false;
	var message = '';
	
	if((!to_hidden && !to_field) || (to_field && !reg.test(to_field))) {
		document.getElementById('toEmailAddress').className = 'field-left errorfield';
		document.getElementById('to_field').className = 'txt-field-2col-full-error';
		message = '<p>Please enter a valid e-mail address in the "To Email Address" field.</p>';
		error = true;
	} else {
		document.getElementById('toEmailAddress').className = '';
		document.getElementById('to_field').className = 'txt-field-2col-full';
	}
	
	if(name_sender=='') {
		document.getElementById('fullName').className = 'field-left errorfield';
		document.getElementById('name_sender').className = 'txt-field-2col-full-error';
		message += '<p>Please enter Your name.</p>';
		error = true;
	} else {
		document.getElementById('fullName').className = '';
		document.getElementById('name_sender').className = 'txt-field-2col-full';
	}
	
    if(reg.test(from) == false) {
    document.getElementById('emailAddress').className = 'field-left errorfield';
		document.getElementById('from').className = 'txt-field-2col-full-error';
		message += '<p>Please enter a valid e-mail address in the "Your Email" field.</p>';
     	error = true;
	} else {
		document.getElementById('emailAddress').className = '';
		document.getElementById('from').className = 'txt-field-2col-full';
	}
	
	 if(error==false) {
	  document.getElementById('contact-form-error').style.display = 'none';
		sendRequest();
		return true;
	 } else {
	 	inputToField.value = (recipientsArray.length >= maxRecipients) ? 'maximum 10 recipients allowed' : inputToField.value;
		document.getElementById('contact-form-error').innerHTML = message;
		document.getElementById('contact-form-error').style.display = 'block';
		document.getElementById('contact-form-error').style.visibility = 'visible';
		document.getElementById('contact-form-error').className = 'error';
		return false;
	  }  
}
	
function showHideAds() {
	var i;
	var thisDiv
	for(i=0;i<=flashDivs.length;i++) {
		if (thisDiv = document.getElementById(flashDivs[i])) {
			thisDiv.style.visibility = (thisDiv.style.visibility=='visible' || !thisDiv.style.visibility) ? 'hidden' : 'visible';
		}	
	}
}

function show_send_to_friend() {
	try {
		var stfWrap = document.getElementById('stf-wrap');
		var formDiv = document.getElementById('send_to_friend');
		wrapperDiv = document.getElementById('wrapper');
		fadeIt();
		var wrapperPos = parseInt(wrapperDiv.offsetLeft);
		
		stfWrap.style.display = 'block';
		formDiv.style.zindex = '9999';
		formDiv.style.display = 'block';
		formDiv.style.left = parseInt(wrapperPos+155)+'px';
		showHideAds();
		showHideButton();
		if (inputToField) {
			inputToField.disabled = false;
			inputToField.style.color = '#333';
		}
		clearForm('stf-form');
	}
	catch (err) {
		return false;
	}
}
	
function hide_send_to_friend() {
	if (document.getElementById('send_to_friend').style.display !== 'none') {
		document.getElementById('send_to_friend').style.display = 'none';
		unFadeIt();
	}
		document.getElementById('to_list').innerHTML = '';
		if (inputToField) {
			inputToField.disabled = false;
			inputToField.style.color = '#333';
		}
		clearForm('stf-form');
		showHideAds();
		document.getElementById('form-attributes').style.display = 'block';
		document.getElementById('contact-form-error').style.display = 'none';
		document.getElementById('contact-form-error').style.visibility = 'hidden';
		document.getElementById('contact-form-error').className = 'error hide';
}

function showHideLoader() {
	var loader = document.getElementById('loadBar');
	if (loader.style.display == 'none') {
		loader.style.display = 'block';
	}
	else {
		loader.style.display = 'none';
	}
}

function showHideForm() {
	var fieldArea = document.getElementById('form-attributes');
	if (fieldArea.style.display == 'none') {
		fieldArea.style.display = 'block';
	}
	else {
		fieldArea.style.display = 'none';
	}
}

// Address book functions

var addressBookDiv;
var addressBookEmail;
var addressBookPass;
var addressLength;

function submitAddressBookForm(formElement) {
	addressBookEmail = formElement.email.value;
	addressBookPass = formElement.pass.value;
	addressBookDiv.innerHTML = '<div id="address-book-wrap"><div id="address-book-bg"></div><div id="address-book"><span class="link-close">close</span><p class="getting-addresses"><span>Getting addresses please wait...</span><img src="http://www.virginmedia.com/img/global/spinner.gif" alt="Getting addresses" /></p></div></div>';
	
	sendAddrRequest(0, addressLength)
}

function sendAddrRequest(listStart, listLength) {
	addressLength = listLength;
	new Ajax.Request('/includes/send_to_friend/addressbook_content.php', 
									 { method: 'post', 
									 	 postBody: 'email='+((!addressBookEmail) ? '' : addressBookEmail)+
															 '&pass='+((!addressBookPass) ? '' : addressBookPass)+
															 '&start='+((!listStart) ? '' : listStart)+
															 '&length='+((!listLength) ? '' : listLength)+
															 '&recipients='+((!recipientsString) ? '' : recipientsString.toLowerCase()),
									 	 onComplete: showAddrResponse,
									 	 onFailure: callFailed
									 	});
}

function callFailed() {
	alert('failed');
}

function showAddrResponse(req) {
	addressBookDiv = (!addressBookDiv) ? $('address-book-div') : addressBookDiv;
	addressBookDiv.innerHTML = req.responseText;
}

function hideAddrDiv() {
	addressBookDiv = (!addressBookDiv) ? $('address-book-div') : addressBookDiv;
	addressBookDiv.innerHTML = '';
}

function clearAddressBookVars() {
	addressBookEmail = '';
	addressBookPass = '';
}

function addFromAddressBook(e, email) {
	var checkBox;
	if (e.nodeName.toLowerCase()!='input') {
		checkBox = e.parentNode.getElementsByTagName('input')[0];
		if (checkBox.checked==true) {
			checkBox.checked = false;
			removeRecipient(email);
		}
		else {
			if (addRecipient(email)) {
				checkBox.checked = true;
			}
		}
		return false;
	}
	else {
		if (e.checked==true) {
			if (!addRecipient(email)) {
				return false;
			}
		}
		else {
			removeRecipient(email);
		}
	}
}