/*****************************************************
Function: add/remove elements from the document
******************************************************/

function removeElement(parentID,elementID){
	var parent = document.getElementById(parentID);
	var child = document.getElementById(elementID);

	parent.removeChild(child);
}
function addElement(parentID,elementID,elementType){
	var newElement = document.createElement(elementType);
	newElement.setAttribute('id',elementID);
	var parent = document.getElementById(parentID);
	
	parent.appendChild(newElement);
}

function font_size_adjust(size) {
	var i = 1;
	while($('video'+i) != null) {
		$('video'+i).style.fontSize = size;	
		i++;
	}
	
	if($('font_size') != null) {
		$('font_size').style.fontSize = size;
	}
	
	if($('linksSheetDiv') != null){
		$('linksSheetDiv').style.fontSize = size;	
	}
}

function addElementTop(parentID,elementID,elementType,content){
	var newElement = document.createElement(elementType);
	newElement.setAttribute('id',elementID);
	var parent = document.getElementById(parentID);
	
	var list = parent.getElementsByTagName("div");
	
	if(list.length ==0){
		parent.appendChild(newElement);
	}else{	
		parent.insertBefore(newElement,list[0]);
	}
	
	newElement.innerHTML = content;	
}

function setElementAttribute(id,stype,text){
	var element = document.getElementById(id);
	
	element.setAttribute(stype,text);
}
/*****************************************************
Function: confirm delete
******************************************************/
function confirmDelete(delUrl) {
  if (confirm("Are you sure you want to delete?")) {
    document.location = delUrl;
  }
}


function checkPaper(){
	var paper = $("Paper");
	if(!paper.value){
		alert("Please enter how many paper entries there are");
		return false;
	}else{
		var agree = confirm("Selecting a winner will close the competition. No more entries will be allowed. Do you want to continue?");
		
		if(agree){
			return true;
		}else{
			return false;
		}
	}
}

/*****************************************************
Function: validate form
******************************************************/
function validateForm(formName) {
	if(formName == 'AddEditNews') {
		if($('event_start').value == '') {
			alert('Please choose a preferred date.');
			return false;
		}
		if($('address_title').value == '') {
			alert('Please choose a title.');
			return false;
		}
		if($('event_text').value == '') {
			alert('Please enter some news text.');
			return false;
		}

		return true;
	}

	if(formName == 'AddEditSpecial') {
		if($('event_category_id').value == 'Please Select') {
			alert('Please select the category type.');
			return false;
		}
		if($('address_title').value == '') {
			alert('Please choose a title.');
			return false;
		}
		if($('event_text').value == '') {
			alert('Please enter vehicle details.');
			return false;
		}

		return true;
	}

	if(formName == 'ContactUs') {
		if($('FirstName').value == '') {
			alert('Please enter your first name.');
			return false;
		}
		if($('LastName').value == '') {
			alert('Please enter your last name.');
			return false;
		}
		if($('Email').value == '') {
			alert('Please enter an email address.');
			return false;
		}
		if($('Phone').value == '') {
			alert('Please enter a phone number.');
			return false;
		}
		if($('EnqruiyAbout').value == 'Please Select') {
			alert('Please select the enquiry type.');
			return false;
		}
		if($('Message').value == '') {
			alert('Please leave us a message.');
			return false;
		}
		return true;
	}

	if(formName == 'AddEditTestdrive') {
		if($('address_first_name').value == '') {
			alert('Please enter your first name.');
			return false;
		}
		if($('address_last_name').value == '') {
			alert('Please enter your last name.');
			return false;
		}
		if($('address_email').value == '') {
			alert("Please enter an email address.");
			return false;
		}
		if($('address_phone').value == '') {
			alert('Please enter your phone number.');
			return false;
		}
		if($('event_car_id').value == 'Please Select') {
			alert('Please choose a model for your brochure.');
			return false;
		}
		return true;
	}

	if(formName == 'AddEditBrochure') {
		if($('address_first_name').value == '') {
			alert('Please enter your first name.');
			return false;
		}
		if($('address_last_name').value == '') {
			alert('Please enter your last name.');
			return false;
		}
		if($('address_email').value == '') {
			alert('Please enter your email.');
			return false;
		}
		if($('address_phone').value == '') {
			alert('Please enter your phone number.');
			return false;
		}
		if($('event_car_id').value == 'Please Select') {
			alert('Please choose a model for your brochure.');
			return false;
		}
		return true;
	}

	if(formName == 'AddEditService') {
		if($('address_first_name').value == '') {
			alert('Please enter your first name.');
			return false;
		}
		if($('address_last_name').value == '') {
			alert('Please enter your last name.');
			return false;
		}
		if($('address_email').value == '') {
			alert('Please enter your email.');
			return false;
		}
		if($('address_phone').value == '') {
			alert('Please enter your phone number.');
			return false;
		}
		if($('event_registration').value == '') {
			alert('Please enter your registration.');
			return false;
		}
		if($('event_service').value == '') {
			alert('Please enter how many km the service is for.');
			return false;
		}
		if($('start_date').value == '') {
			alert('Please choose a preferred date.');
			return false;
		}
		radio = document.getElementsByName('event_loan');
		if(!is_checked(radio)) {
			alert('Do you require a loan car?');
			return false;	
		}
		return true;
	}
	
	//check the emails are valid and match
	//check the passwords are the same or empty if ID is set
	if(formName == 'AddEditUser') {
		if(!CheckEmail('users_email')) {
			return false;
		}

		if($('users_id').value == '') {
			if($('users_password').value == '') {
				alert('Enter a password.');
				return false;
			}
		}
		
		if($('users_firstname').value == '') {
			alert('Please enter a first name.');
			return false;
		}
		if($('users_lastname').value == '') {
			alert('Please enter a last name.');
			return false;
		}

		
		return true;
	}
	
	if(formName == 'AddEditFeedback') {
		if($('feedback_first_name').value == '') {
			alert('Please enter your first name.');
			return false;	
		}
		if($('feedback_last_name').value == '') {
			alert('Please enter your surname.');
			return false;	
		}
		if($('feedback_email').value == '') {
			alert('Please enter an email address.');
			return false;
		}
		
		var radio = document.getElementsByName('feedback_first');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;
		}
		
		radio = document.getElementsByName('feedback_value');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;	
		}
		
		radio = document.getElementsByName('feedback_quality');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;	
		}
		
		radio = document.getElementsByName('feedback_promise');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;	
		}
		
		radio = document.getElementsByName('feedback_care');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;	
		}
		
		radio = document.getElementsByName('feedback_listen');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;	
		}
		
		radio = document.getElementsByName('feedback_explain');
		if(!is_checked(radio)) {
			alert('Please answer all questions.');
			return false;	
		}
		
		return true;
	}
}

function is_checked(radio) {
	var i = 0;
	while(i < radio.length) {
		if(radio[i].checked) {
			return true;
		}
		i++;
	}
	return false;
}

var search_clear = false;

/*****************************************************
Function: redirect to page
*****************************************************/
function redirect(page){
	if(page) document.location.href = page;	
}
/*****************************************************
Function: check value agains regular expression
******************************************************/
function checkRegExpress(reg,id,format){
	var element = document.getElementById(id);
	
	if(!element.value.match(reg)){
		showError(format);
		return false;
	}else{
		return true;	
	}
}


/*****************************************************
Function: show/hide div
******************************************************/
function showHideElement(element,bstate){ //state: true = show ; false = hide
	var div = document.getElementById(element);
	
	if(bstate){
		div.style.display = 'block';
	}else{
		div.style.display = 'none';
	}
}

function showHideElementAuto(element){ //state: true = show ; false = hide
	var div = document.getElementById(element);
	
	if(div.style.display == 'none'){
		div.style.display = 'block';
	}else{
		div.style.display = 'none';
	}
}

function fadeDiv(divID){
	new Effect.Opacity(divID, { from: 1.0, to: 0, duration: 0.5 });	
}

/*****************************************************
Function: page information
******************************************************/
if(document.all) { 
	document.onmousemove = UpdateCursorPositionDocAll; 
}else {
	document.onmousemove = UpdateCursorPosition; 
}

var cX = 0; var cY = 0;

function UpdateCursorPosition(e){
	cX = e.pageX; 
	cY = e.pageY;
}
function UpdateCursorPositionDocAll(e){
	cX = event.clientX; 
	cY = event.clientY;
}


function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}
function getPageScroll(){

	var xScroll, yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}

	arrayPageScroll = new Array(xScroll,yScroll) 
	return arrayPageScroll;
}

/*****************************************************
Function: check to see if an element is in an array
******************************************************/
function inArray(arr,value){
	var found = false;
	
	for(x in arr){
		if(arr[x] == value){
			found = true;
			break;
		}
	}
	
	return found;
}

/*****************************************************
Function: get vars from URL
******************************************************/
function getURLHash() {
	var q = document.location.hash;
	if(q) {
		alert(q.substring(1,q.length));
	}
	return "";
}

function go(url,w,h) {
	var dim = eval('"width=' + w + ',height=' + h + ',toolbar=0, location=0,directories=0,status=0, menubar=0,scrollbars=0,resizable=0"');
	Npop = window.open(url,"instruct",dim);
	Npop.moveTo(0,0);
	oldWin = Npop.opener;
}

function goScroll(url,w,h) {
	var dim = eval('"width=' + w + ',height=' + h + ',toolbar=0, location=0,directories=0,status=0, menubar=0,scrollbars=1,resizable=0"');
	Npop = window.open(url,"instruct",dim);
	oldWin = Npop.opener;
}

function goEverything(url,w,h) {
	var dim = eval('"width=' + w + ',height=' + h + ',toolbar=1, location=1,directories=1,status=1, menubar=1,scrollbars=1,resizable=1"');
	Npop = window.open(url,"instruct",dim);
	oldWin = Npop.opener;
}

function FLV(src) {
	document.write('<embed type="application/x-shockwave-flash" src="http://www.water.sa.gov.au'+src+'" pluginspage="http://www.macromedia.com/go/getflashplayer" scale="noScale" salign="TL" bgcolor="#000000" flashvars="mediaId=316150&affiliateId=0&allowFullScreen=true" allowfullscreen="false" height="576" width="1024"></embed>');	
}

function showHideAnimated(div){	
	//change div around to fit browser and
	
	var temp = $(div);
	if(temp.style.display == 'none'){
		Effect.BlindDown(div);
		//temp.style.display = 'block';
		return false;
	}else{
		Effect.BlindUp(div);
		//temp.style.display = 'none';
		return false;
	}
}

function showHide(div) {
	var temp = $(div);
	if(temp.style.display == 'none' || temp.style.display == ''){
		//Effect.BlindDown(div);
		temp.style.display = 'block';
		return false;
	}
	else{
		//Effect.BlindUp(div);
		temp.style.display = 'none';
		return false;
	}
}
function show1(div) {
	var temp = $(div);
	temp.style.display = 'block';
	return false;
	
}
function hide1(div) {
	var temp = $(div);
	temp.style.display = 'none';
}