//GLOBALS
/*
*
* LEAVE THESES ALONE
*
*/
//FOR CONFIRM FUNCTION
var confirmed = false;
var elementClass = '';
var titleText = '';

// confirmAction()
/*
* Builds arrays where confirmation can take place
*
* @return bool
*/
function confirmAction() {
	//IS DOM SUPPORTED
	if(!document.getElementsByTagName('a')) return false;
	//GET ELEMENTS ON PAGE TO WORK WITH
	var confirmLinks   = document.getElementsByTagName('a');
	var buttons = document.getElementsByTagName('input');
	//PROCESS ELEMENTS
	loopElements(confirmLinks);
	loopElements(buttons);
	return false;
}
// loopElements()
/*
* Processes passed elements, gets text for confirm box and sends for confirmation
* @return bool @param array of elements
*/
function loopElements(elements) {
	for(var i=0; i<elements.length; i++) { //LOOP THROUGH ELEMENTS
		elementClass = elements[i].className; //ASSIGN CLASSNAME
		if(elementClass != '' && elementClass.indexOf('confirm') > -1) { //DOES CONFIRM CLASSNAME EXIST ON ELEMENT
			elements[i].onclick = function() { //ELEMENT CLICKED
				titleText = '';
				if(this.getAttribute('alt')) {
					titleText = this.getAttribute('alt'); //GET TEXT FROM ALT ATTRIBUTE ON BUTTONS
				}else if(this.getAttribute('title')) {
					titleText = this.getAttribute('title');	//GET TEXT FROM TITLE ON LINKS
				}
				if(titleText.length > 0) alertText = titleText; //APPLY TEXT TO VARIABLE
				confirmed = getConfirmation(alertText); //PASS TEXT TO FUNCTION
				return confirmed; //RETURN RESULT
			}
		}
	}
}
// getConfirmation()
/*
* Displays confirmation box returns result
* @return bool @param String of text to display
*/
function getConfirmation(text) {
	var result = confirm(text); //SHOW CONFIRMATION BOX
	return result; //RETURN RESULT
}
// externalLinks()
/*
* Allows external links to be opened in a new window without the use of target attribute
* @return bool
*/
function externalLinks() {
	//SETS DOMAIN OF SITE
	var domainName=document.domain;
	var externalLinks=document.getElementsByTagName("a"); //FIND ALL LINKS ON THE CURRENT PAGE
	for(var i=0; i<externalLinks.length; i++) { //LOOP THROUGH LINKS ARRAY
    if (externalLinks[i].getAttribute("href")) {
  		var attribute = externalLinks[i].getAttribute("href"); //GETS CONTENT OF 'HREF' ATTRIBUTE ON CLICKED LINK
  		var elementClass = externalLinks[i].className; //STORES CLASS NAME OF ELEMENT
  		var contains_http=attribute.indexOf("http"); //GET VALUE http IN 'HREF' **FOR MOZILLA&&
  		var contains_domain=attribute.indexOf(domainName); //GET VALUE domainName **FOR IE**
      var contains_buynow=elementClass.indexOf('btnbuynow'); // Is it a but now button
  		if(newWindowLink == true) {
  			if(contains_http>-1 && contains_domain==-1 && contains_buynow==-1) { //DOES CONTAIN AN 'http' OR DOES NOT CONTAIN domainName or is not a buy button
  				setElementAttribute(externalLinks[i], 'target', '_blank');
  			}
  		}
  		if(elementClass.indexOf('new_window') > -1 ) { //FORCE LINK TO OPEN IN NEW WINDOW
  			setElementAttribute(externalLinks[i], 'target', '_blank');
  		}
  	}
	}
}
// setElementAttribute()
/*
* Sets elements attribute
* @return bool; @param element: Element to attach attr to, attr: The attribute to be added, val: value of attribute
*/
function setElementAttribute(element, attr, val) {
	element.setAttribute(attr, val); //SET ATTRIBUTE ON ELEMENT
	return true;
}
// popUpWindows()
/*
* Creates a popup window
* @return bool;
*/
function popUpWindows() {
	var links = document.getElementsByTagName('a'); //MAKE ARRAY OF LINKS
	var url = '';
	for(var i=0; i<links.length; i++) { //LOOP LINKS
		var classes = links[i].className;
		if(classes != '') {
			var splitClasses = classes.split(' '); //EXPLODE CLASSES ON SPACE ' '
			for(var x=0; x<splitClasses.length; x++) { //LOOP THROUGH MULTIPLE CLASSNAMES
				if(splitClasses[x].indexOf('popup_window') > -1) { //IS LINK A POPUP WINDOW
					links[i].onclick = function() { //LINK CLICKED
						var classes = this.className; //GET CLASS NAMES
						url = this.getAttribute('href'); //FINDS WHAT PAGE WINDOW IS TO SHOW
						//var dimentions = getDimentions(splitClasses[x]); //GET DIMENTIONS
						var dimentions = getDimentions(classes); //GET DIMENTIONS
						var newWindow = window.open(url, '', 'width='+dimentions['width']+', height='+dimentions['height']+', scrollbars=yes, resize=yes'); //SET NEW WINDOW
						newWindow; //LAUNCH
						return false; //STOP LINK
					}
				}
			}
		}
	}
}
// getDimentions()
/*
* Gets dimentions of popup window
* @return array; @param thisClass: Classname of link clicked
*/
function getDimentions(thisClass) {
	var parts = thisClass.split('_'); //EXPLODE CLASSNAME ON UNDERSCORE _
	var winWidth = parts[parts.length-2]; //WIDTH IS SECOND LAST ELEMENT
	var winHeight = parts[parts.length-1]; //HEIGHT IS LAST ELEMENT
	var dimentions = new Array();
	dimentions['width']  = winWidth;
	dimentions['height'] = winHeight;
	return dimentions; //RETURN
}

// sendPostData(path, data, callback)
/*
* Sends POST data to the specified path.
* @param path String Location to page of interest.
* @param data String NVP format.
* @param callback String Function to call on state change.
*/
function sendPostData(path, data, callback) {
    if (callback != 'undefined') {
        http.onreadystatechange=callback;
    }
    http.open("POST", path);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", data.length);
    http.setRequestHeader("Connection", "close");
    http.send(data);
}
