// JavaScript Document

function updateTotalPrice(hitFrom, discount) {
	
	
	currentID = hitFrom // Page element that was clicked
	audiences = document.getElementsByName('prop_cip25') // Array of audience checkboxes
	
	totalAud = audiences.length // Total number of audience checkboxes
	
	totalAudSelected = 0
	extraAudienceCost = 100
	freeAudienceSize = 2
	
	orderQuantity = document.getElementById('quantity') // Quantity form element
	
	curOrderQuantity = orderQuantity.value // Current Quantity
	
	currentBufferPrice = document.getElementById('package').value // Current price excluding extra audience selections

	extraReleaseCost = document.getElementById('extraCost').value // Current extra cost value, for express release time
	
	// Work out total audience checkboxes that are currently selected
	for(i=0;i<totalAud;i++) {
		if(audiences[i].checked==true) { totalAudSelected += 1 }
		
	}
	
	
	// Work out new price
	if(totalAudSelected<=freeAudienceSize) { // If user has not exceeded free audience selection
		extraAudiencePrice = '0'
	} else { 
		extraAudiencePrice = ((totalAudSelected - freeAudienceSize) * extraAudienceCost)
	}
	
	
	// Do a word count and update the quantity
	
	excessWordPrice = 0
	checkCount = document.getElementById('ordertype')
	if(currentID == 'release' || checkCount.value == 'send') {
		
		wordBuffer = 350
		excessBuffer = 100
		extraPrice = 100
		wordCount = CountWords(document.getElementById('release'), 0, 0) // Count words
		
		if(wordCount > wordBuffer) {
			excessWords = wordCount - wordBuffer
			
			excessWordPrice = (Math.ceil(excessWords / excessBuffer)) * extraPrice
			
			
			//if(discount=='true') { 
				document.getElementById('excessPrice').value = pretty(excessWordPrice)	
			////} else {
			//	document.getElementById('excessPrice').value = pretty(excessWordPrice)	
			//}
		} else {
			document.getElementById('excessPrice').value = pretty('0')	
		}
		
		document.getElementById('wordcount').value = wordCount
	
	}
	
	
	 
	
	orderQuantity.value = (parseInt(extraAudiencePrice) + parseFloat(currentBufferPrice) + parseInt(extraReleaseCost) + parseInt(excessWordPrice)) * 100 // Set new quantity value 
	orderQuantity.value = Math.floor(parseInt(orderQuantity.value))
	
	//if(!discount && extraAudiencePrice > 0) { orderQuantity.value -= 1 }
	
	if(discount=='true' && parseInt(orderQuantity.value) > 1) { orderQuantity.value -= 1 }
	
	determinePrice(document.newform, 'quantity') // Update order price
	
	
	
	//preGST = orderQuantity.value / 100;
	
	
	
	//newGST = parseelement(Math.ceil(preGST - (preGST / 11)))
	
	
	
	priceElements = document.getElementsByName('price2')
	
	for(i=0;i<priceElements.length;i++) { 
		if(discount=='true' && orderQuantity.value == '1') { 
			priceElements[i].value = '$0.00'
		} else {
			priceElements[i].value = document.getElementById('price').value
		}
		
		
		//document.getElementById('price').value // Update secondary order input
	}
	
	
	
	//updateAudienceList() // Update audience list in form
		
}



function updateAudienceList() {
	
	var fullList = ''
	list = document.getElementsByName('prop_cip25')
	var selected = 0
	for(i=0;i<list.length;i++) {
	
		if(list[i].checked == true) {
			
			
			
			if(selected>0) {
				
				fullList += ','	
				
			}
			
			selected += 1
			
			fullList += list[i].id
		
		}
	
	}
	
	document.getElementById('audienceList').value = fullList
}

function updateSelect(value, updateElement) { 

	
	document.getElementById(updateElement).selectedIndex = value

}

function nextStep() { 
	
	currentSelection = document.getElementById('currentStep').value
	
	currentName = 'step' + currentSelection
	
	nextName = 'step' + (parseInt(currentSelection) + 1)
	
	
	currentDiv = document.getElementById('step'+currentSelection)
	
	
	if(!validate(currentDiv)) {
		
		return false	
		
	}
	
	nextSelection = parseInt(currentSelection) + 1
	
	nextSelection2 = nextSelection + ''
	
	nextDiv = document.getElementById(nextName)
	
	
	
	currentHeader = document.getElementById('stephead'+currentSelection)
	nextHeader = document.getElementById('stephead'+(parseInt(currentSelection) + 1))
	
	currentDiv.style.display = "none"
	currentHeader.style.display = "none"
	
	nextDiv.style.display = ""
	
	nextHeader.style.display = ""
	
	
	document.getElementById('currentStep').value = parseInt(currentSelection) + 1
	
}

function prevStep() { 
	
	currentSelection = document.getElementById('currentStep').value
	
	currentName = 'step' + currentSelection
	nextName = 'step' + (parseInt(currentSelection) - 1)

	currentDiv = document.getElementById('step'+currentSelection)
	nextDiv = document.getElementById(nextName)
	
	currentHeader = document.getElementById('stephead'+currentSelection)
	nextHeader = document.getElementById('stephead'+(parseInt(currentSelection) - 1))
	
	
	currentDiv.style.display = "none"
	currentHeader.style.display = "none"
	
	nextDiv.style.display = ""
	nextHeader.style.display = ""
	
	document.getElementById('currentStep').value = parseInt(currentSelection) - 1
}



function CountWords (this_field, show_word_count, show_char_count) {
	if (show_word_count == null) {
		show_word_count = true;
	}
	if (show_char_count == null) {
		show_char_count = false;
	}
	var char_count = this_field.value.length;
	var fullStr = this_field.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	if (fullStr.length <2) {
		word_count = 0;
	}
	if (word_count == 1) {
		wordOrWords = " word";
	}
	else {
		wordOrWords = " words";
	}
	if (char_count == 1) {
		charOrChars = " character";
	} else {
		charOrChars = " characters";
	}
		if (show_word_count & show_char_count) {
	alert ("Word Count:\n" + "    " + word_count + wordOrWords + "\n" + "    " + char_count + charOrChars);
	}
	else {
	if (show_word_count) {
		alert ("Word Count:  " + word_count + wordOrWords);
	}
	else {
	if (show_char_count) {
		alert ("Character Count:  " + char_count + charOrChars);
		  }
	   }
	}
	return word_count;
}

function stopSubmit() {
	return false;
}

function submitForm() {

	currentSelection = document.getElementById('currentStep').value
	
	currentDiv = document.getElementById('step'+currentSelection)
	

	if(!validate(currentDiv)) {
		
		return false	
		
	}

	
	document.newform.submit()
}

function submitRealForm() {
	
	document.newform.submit()
}

function submitSignup(form) {

	if(!validate(form)) {
	
		return false	
		
	}


	
	form.submit()
		
}

getElementsByClassName = function(cl, where) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = where.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
	var classes = elem[i].className;
	if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};

validate = function(currentDiv) {
	
	currentFields = currentDiv.getElementsByTagName('input');
	currentFields2 = currentDiv.getElementsByTagName('select'); 
	currentFields3 = currentDiv.getElementsByTagName('textarea');
	
	errorMess = '';

	
	
	for(i=0; i<currentFields2.length; i++) {
		curField = currentFields2[i]
	
		if(!curField.options[curField.selectedIndex].text | curField.options[curField.selectedIndex].text == '-- Please select --' | curField.options[curField.selectedIndex].text == 'Please select') {
			errorMess = 'Please make a selection to continue!';
			curField.style.border = '2px solid #ff0000';
			curField.style.color = '#ff0000';
			curField.onclick = function() {
				this.style.border = '1px solid #000';
				this.style.color = '#000000';
			}
		}
			
	}
	
	for(i=0; i<currentFields3.length; i++) {
		curField = currentFields3[i]
		
	
		if(!curField.value & curField.name != 'prop_cip9:string2' & curField.name != 'review') {
			errorMess = 'Please fill out the red fields to continue!';
			curField.style.border = '2px solid #ff0000';
			curField.style.color = '#ff0000';
			curField.onclick = function() {
				this.style.border = '1px solid #000';
				this.style.color = '#000000';
			}
		}
			
	}
	
	loopDone = false
	
	for(i=0; i<currentFields.length; i++) {
		curField = currentFields[i]
		
		
		
		if(!curField.value & curField.type != 'hidden' & curField.type != 'checkbox' & curField.name != 'prop_cip25' & curField.name != 'tos' & curField.name != 'pdf_status' & curField.name != 'pdf_status2' & curField.name != 'image_status' & curField.name != 'prop_cip10:string2' & curField.name != 'sp4' & curField.name != 'sp16' & curField.name != 'sp6' & curField.name != 'sp19:string' & curField.name != 'sp22' & curField.name != 'sp23' & curField.name != 'sp24' & curField.name != 'sp25' & curField.name != 'sp26' & curField.name != 'sp27' & curField.name != 'sp28') {
			errorMess = 'Please fill out the red fields to continue!';
			curField.style.border = '2px solid #ff0000';
			curField.style.color = '#ff0000';
			curField.onfocus = function() {
				this.style.border = '1px solid #000';
				this.style.color = '#000000';
			}
		}
		
		// Check audience categories
		if(curField.name == 'prop_cip25') {
			
			list = document.getElementsByName('prop_cip25')
			
			var selected = 0
			for(i=0;i<list.length;i++) {
			
				if(list[i].checked == true) {
					
					selected += 1
				
				}
			
			}
			
			if(selected == 0) {
				errorMess = 'You must select at least one category!';
			}
			
			
		}
		
		// Check audience categories
		if(curField.name == 'sp30' && loopDone == false) {
					
			list = document.getElementsByName('sp30')
			
			var selected = 0
			for(i=0;i<list.length;i++) {
			
				if(list[i].checked == true) {
					
					selected += 1
				
				}
			
			}
			
			if(selected == 0) {
				errorMess = 'You must select at least one category!';
			}
			
			loopDone = true
			
		}

		// Check TOS is checked
		if(curField.name == 'tos') {
			
			list = document.getElementById('tos')
			
			if(list.checked != true) {
				
				errorMess = 'Unfortunately, WriteRelease can only proceed with your order if you accept the terms of service.'
				
			}
			
		}



	}
	
	if(errorMess) {
		alert(errorMess);
		return false
	}
	return true
}

function clearAuthorise() {
	document.getElementById('Name').value = ''
	document.getElementById('Tel').value = ''
	document.getElementById('Mobile').value = ''
	document.getElementById('Email').value = ''
	
}


var prefix="$"
var wd
function parseelement(thisone){
	
	newNum = thisone
	
	
	
	wd="w"
	
	var tempnum=newNum
	for (i=0;i<tempnum.length;i++){
	if (tempnum.charAt(i)=="."){
	wd="d"
	break
	}
	}
	if (wd=="w")
	newNum=prefix+tempnum+".00"
	else{
	if (tempnum.charAt(tempnum.length-2)=="."){
	newNum=prefix+tempnum+"0"
	}
	else{
	tempnum=Math.round(tempnum*100)/100
	newNum=prefix+tempnum
	}
	}
	
	
	return newNum
}