/*	
	Document: JavaScript
	Developer: Shegun Konibire
	Studio: GUNZalez
	-------------------------------------	*/	

var GUNZ = {
	$: function(id){
		return document.getElementById(id);
	},
	hide: function(id){
		if (typeof id == "string"){
			this.$(id).style.display = "none";
		} else {
			id.style.display = "none";	
		}
	},
	show: function(id){
		if (typeof id == "string"){
			this.$(id).style.display = "block";
		} else {
			id.style.display = "block";	
		}
	},
	openWin: function(winURL,winType){
		if(winType == 'normal'){
			window.open (winURL,"mywindow"); 
		}		
	},
	getSelect: function(select_id,text_value){
		// return text or value attributes of a select object passed by id
		oSelect = this.$(select_id)
		oSelectValue = oSelect.options[oSelect.selectedIndex].value;
		oSelectText = oSelect.options[oSelect.selectedIndex].text;
		returnValue = "";
		if(text_value == 'value'){
			returnValue = oSelectValue;
		} else {
			returnValue = oSelectText;
		}
		return returnValue;		
	},
	setSelect: function(selectRef,arrayToUse,selectedValue){
		// resets a select object passed by id, with passed array and passed default value
		this.$(selectRef).innerHTML = "";
		for(var i=0; i<arrayToUse.length; i++){
			var optionTag = document.createElement('OPTION');
			optionTag.setAttribute("value",arrayToUse[i].toLowerCase());
			if(arrayToUse[i] == selectedValue && selectedValue != null){
				optionTag.setAttribute("selected","selected");
			}
			var optionText = document.createTextNode(arrayToUse[i]);
			optionTag.appendChild(optionText);					
			document.getElementById(selectRef).appendChild(optionTag);	
		}
	},
	eCheck: function(str){
		// returns false if passed value is not a valid email address
		var at = "@"
		var dot = "."
		var lat = str.indexOf(at)
		var lstr = str.length
		var ldot = str.indexOf(dot)
		if (str.indexOf(at) == -1) {
			// alert("Invalid E-mail ID")
			return false
		}
		if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
			// alert("Invalid E-mail ID")
			return false
		}
		if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
			// alert("Invalid E-mail ID")
			return false
		}
		if (str.indexOf(at, (lat + 1)) != -1) {
			// alert("Invalid E-mail ID")
			return false
		}
		if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
			// alert("Invalid E-mail ID")
			return false
		}
		if (str.indexOf(dot, (lat + 2)) == -1) {
			// alert("Invalid E-mail ID")
			return false
		}
		if (str.indexOf(" ") != -1) {
			// alert("Invalid E-mail ID")
			return false
		}
		return true
	},
	getElementsbyClass: function(oElm, strTagName, strClassName){
		// returns an array of elements of the passed class name		
		/*
		To get all a elements in the document with a “info-links” class. 
		getElementsByClassName(document, "a", "info-links");
		
		To get all div elements within the element named “container”, with a “col” class. 
		getElementsByClassName(document.getElementById("container"), "div", "col"); 
		
		To get all elements within in the document with a “click-me” class. 
		getElementsByClassName(document, "*", "click-me"); 
		*/
		var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for (var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if (oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	}
};



// ----------------------------------------------



// Inserts an object after the reference onbject: Taken off the web, tehe */ 
function insertAfter(parent, newElement, referenceElement){
	parent.insertBefore(newElement, referenceElement.nextSibling);
} 
// ----------------------------------------------


// Trims a passed value
function trimString(inputString){
	/*var trimmedStr = strongToTrim.replace(/^\s+|\s+$/g, '');
	return trimmedStr;*/
	
	// Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
}
// ----------------------------------------------


// Checks that field is not empty: Taken off the web, tehe */
function isEmpty(passedValue){
	var trimmedStr = trimString(passedValue);
	if (trimmedStr == "" || trimmedStr == " " || trimmedStr == null){
		return true;
	}
	else {
		return false;
	}
}
// ----------------------------------------------


