/******************************************************************************************************
*	Author: Alex	
*	Filename: Util.js
*	
*	Description: A script I wrote to try cover general utility functions (ie validation etc), so that
*				 these sorta functions are not repeated throughout the javascript in this app.
*
********************************************************************************************************/

//Validates user input inside giving element (id)
function validateElement(id){

	var element = document.getElementById(id);
	
	//Logic for input element BEGIN ****************************
	if (element.tagName == "INPUT" || element.tagName == "TEXTAREA"){
	
		if (element.type == "text" || element.type == "password" || element.type == "file"){
		
			if(element.value == '' || element.value == null){
			
				return false;
				
			}else{
			
				return true;
			}	
		}
	}
	//Logic for input elementEND ****************************
}

//validate an email address is an email address

function validateEmailAddress(email){

	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   
   	var user = document.getElementById('email').value;
   	
	if(reg.test(user) == false) {
		
      	return false;
   
  	}else{
   
  		return true;
  }
}

function direction(direction)
{

var popurl="/hostel/direction.php?id=" + direction;
winpops=window.open(popurl,"","width=400,height=400, scrollbars=1, resizable=1")
}

//Shows element by setting display
function showElement(id){

	var element = document.getElementById(id);
	element.style.display = "block";
}

//Hides element by setting display
function hideElement(id){

	var element = document.getElementById(id);
	element.style.display = "none";	
}

//Clears text inside input box
function clearInputText(id){

	var element = document.getElementById(id);
	element.value = '';
}

//Changes element's innerHTML
function modContent(id, content){

	var element = document.getElementById(id);
	element.innerHTML = content;
}

//Changes image src to give a hover over effect
function highlightImg(id, state){
	
	var element = document.getElementById(id);
	
	if (state == 'over'){
	
		element.src = "/images/icons/"+id+"_hover.gif";
		element.style.cursor = "pointer";
		
	}else if (state == 'out'){
	
		element.src = "/images/icons/"+id+".gif";
	}
}

//Changes background img of a td with class 'tab'
function highlightTab(id, state, blankImgID){

	var element = document.getElementById(id);
	var blankImg = document.getElementById(blankImgID);
	
	if (state == 'over'){
	
		element.style.backgroundImage = "url(/images/icons/"+id+"_hover.gif)";
		blankImg.style.cursor = "pointer";
		
	}else if (state == 'out'){
	
		element.style.backgroundImage = "url(/images/icons/"+id+".gif)";
	}	
}

//Changes text decoration to give a link hover over effect
function highlightText(id, state){

	var element = document.getElementById(id);
	
	if (state == 'over'){
	
		element.style.textDecoration = "underline";
		element.style.cursor = "pointer";
		
	}else if (state == 'out'){
	
		element.style.textDecoration = "none";	
	}
}

//Changes background color of selected table row
function highlightRow(id, state){

	var row = document.getElementById(id);
	
	if (state == 'over'){
	
		row.style.backgroundColor = "#3366CC";
		
	}else if (state == 'out'){
	
		row.style.backgroundColor = "#FFFFFF";	
	}	
}

//Creates a new DOM input element, tidys up append table functions
function newInputElement(name, id, type, value, size){

	var inputElement = document.createElement('input');
	
	inputElement.name = name;
	inputElement.id = id;
	inputElement.type = type;
	inputElement.value = value;
	inputElement.size = size;
	
	return inputElement;
}

//Checks if an element exists in a selectbox
function checkExistsSelect(selectID, inputText){

	var selectBox = document.getElementById(selectID);
	var exists = false;
	
	
	for (var i = 0; i < selectBox.options.length; i++){
	
		if (selectBox.options[i].text == inputText){
		
			exists = true;
		}
	}
	
	return exists;	
}
