/*
Studio 2 Online (www.s2o.co.uk)
-----------------------------------------------------------
This file contains functions used in planetbikes.co.uk

Author: andrew mcmahon
Date: 2006-05-15
*/


function in_array(needle, haystack){
	for (var i in haystack){
		if(needle == haystack[i]){
			return true;
		}
	}
	return false;
}


function isNumeric(input){
	var allowed_chars = new Array(1,2,3,4,5,6,7,8,9,0);
	for(var i = 0; i < input.length; i++){
		if(!in_array(input.charAt(i), allowed_chars)){
			return false;
		}
	}
	return true;	
}


function removeSpaces(string) {
	var tstring = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	tstring += splitstring[i];
	return tstring;
}


function empty(input){
	if(input == ""){
		return true;
	}
	
	if(typeof(input) == "boolean"){
		if(input != true && input != false){
			return true;
		}
	} 
	
	if(typeof(input) == "number"){
		if(input == 0){
			return true;
		}
	} 
	
	if(typeof(input) == "string"){
		if(input == ""){
			return true;
		}
	} 
	
	if(typeof(input) == "object"){
		if(input.length == 0){
			return true;
		}
	}
	return false;
}


function getErrorMessage(input){
	var output = "";
	for(var i in input){
		output += input[i] + "\n";
	}
	return output;
}


function isEmailAddr(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false;
	}

	if (str.indexOf(at,(lat+1))!=-1){
	return false;
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	return false;
	}
	
	if (str.indexOf(dot,(lat+2))==-1){
	return false;
	}
	
	if (str.indexOf(" ")!=-1){
	return false;
	}

	return true;					
}


function CheckNewsletterForm2(){
	var alertmessage = "";

	if(empty(document.getElementById("newsletter_name").value)){
		alertmessage += "\n - Name";
	}

	if(empty(document.getElementById("newsletter_email").value)){
		alertmessage += "\n - Email";
	}
	
	if(!empty(alertmessage)){
		alert("The following fields must be completed." + alertmessage);
		return false;
	}

	return true;
}


function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function


function getSelectedOptionValue(formObject){
	if(formObject.options){
		return formObject.options[getSelectedOption(formObject)].value;
	}else{
		//not a set of options
		return formObject.value;
	}
}

function getSelectedOption(formObject){
	if(formObject.options){
		return formObject.selectedIndex;
	}else{
		return formObject.value;
	}
}
