//GLOBALS
/*
*
* LEAVE THESES ALONE
*
*/
//FOR CONFIRM FUNCTION
var confirmed = false;
var elementClass = '';
var titleText = '';



/*
*
*
*
*
*/

function replaceT(obj){
	
	var newO=document.createElement('input');
	newO.setAttribute('type','password');
	newO.setAttribute('name',obj.getAttribute('name'));
	obj.parentNode.replaceChild(newO,obj);
	
	newO.focus();
	newO.focus();
}




// 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
	
		var attribute=externalLinks[i].getAttribute("href"); //GETS CONTENT OF 'HREF' ATTRIBUTE ON CLICKED LINK
		
		if(attribute==null) return;
		
		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**
		
		if(newWindowLink == true) {
		
			if(contains_http>-1 && contains_domain==-1) { //DOES CONTAIN AN 'http' OR DOES NOT CONTAIN domainName
			
				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);
}


// Image thumbnail select function
function select_thumb_image(title, large_path, xlarge_path) {
	element = document.getElementById('feature_product_image');
	if (!element) { return; }
	
	img_str = '';
	if (xlarge_path) { img_str += '<a href="'+xlarge_path+'" class="thickbox" title="'+title+'">'; }
	
	img_str += '<img src="'+large_path+'" alt="'+title+'" />';
	
	if (xlarge_path) { img_str += '</a><p><a href="'+xlarge_path+'" class="thickbox" title="'+title+'">Click to Enlarge (+)</a></p>'; }
	
	element.innerHTML = img_str;
	
	// refresh thickbox as the dom has changed
	if (xlarge_path) { tb_init('a.thickbox'); }
}




/*
*
*	function format_number
*
*
*/

function format_number(pnumber, decimals){
	if (isNaN(pnumber)) { return 0};
	if (pnumber=='') { return 0};
	
	var snum = new String(pnumber);
	var sec = snum.split('.');
	var whole = parseFloat(sec[0]);
	var result = '';
	
	if(sec.length > 1){
		var dec = new String(sec[1]);
		dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
		dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
		var dot = dec.indexOf('.');
		if(dot == -1){
			dec += '.'; 
			dot = dec.indexOf('.');
		}
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	} else{
		var dot;
		var dec = new String(whole);
		dec += '.';
		dot = dec.indexOf('.');		
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	}	
	return result;
}







/*
*
*	function stamp_colours
*
*/

function stamp_colours(dropdown){
	
	//GET PROD ID FROM DROPDOWN ID
	var ID	=	dropdown.attr("id").replace('select_size_', '');
	
	if($('#size_chosen_'+ID).length==0 || dropdown.attr("value")=='') return false;
	
	// TELL THE FORM A SIZE HAS BEEN CHOSEN
	$('#size_chosen_'+ID).attr('value', 'Y');
	
	//SHOW DROPDOWN WITH LOADING MESSAGE AND INITIALLY DISABLE
	$('#select_colour_'+ID).html('<option value="">loading...</option>');
	$('#select_colour_'+ID).show();
	$('#select_colour_'+ID).attr('disabled', true);
	
	$('#product_price_'+ID).css("visibility", "hidden");
	$('#product_rrp_'+ID).css("display", "none");
	
	//SHOW LOADING SYMBOL AS IMAGE
	$('#image_'+ID).attr('src', document_base+'images/imageLoading.gif');
	$('#image_'+ID).attr('height', '110');


	//AJAX CALL
	$.ajax(
	{
		type: "POST",
		url: document_base+"libs/includes/ajax.php",
		data: "generate_colours_list=1&pa_id="+dropdown.attr('value')+"&reseller_id="+reseller_id,
		success: function(dataString)
		{
			
			//SPLIT DATA STRING TO GET EACH PART
			var dataArr	=	dataString.split("&");
			var colours	=	dataArr[0].replace("COLOURS=", "");
			var price	=	dataArr[1].replace("PRICE=", "");
			var rrp		=	dataArr[2].replace("RRP=", "");
			var image	=	dataArr[3].replace("IMAGE=", "");
			
			//PRODUCT ATTR IMAGE
			if(image!='')
			{
				$('#image_'+ID).attr('src', image);
				$('#large_image_link_'+ID).attr('rel', document_base + 'largeImage.php?src='+image.replace("medium", "large"));
				$('#xlarge_image_link_'+ID).attr('href', image.replace("medium", "xlarge"));
			}
			
			//PRODUCT ATTR COLOURS
			if(colours=='')
			{
				$('#select_colour_'+ID).html('<option value="NA">No Colour Available</option>');
			}
			else
			{
				//ENABLE THE COLOUR SELECT AND POPULATE
				$('#select_colour_'+ID).attr('disabled', false);
				$('#select_colour_'+ID).html(colours);
			}
			
			
			//PRODUCT ATTR PRICE
			if(price!='')
			{
				//UPDATE PRICE FOR SELECTED PRODUCT ATTRIBUTE
				$('#product_price_'+ID).html("Only: <span>&pound;" + format_number(Number(price), 2) + "</span>");
				$('#product_price_'+ID).css("visibility", "visible");
			}
			
			//PRODUCT ATTR RRP PRICE
			if(rrp!='')
			{
				//UPDATE PRICE FOR SELECTED PRODUCT ATTRIBUTE
				$('#product_rrp_'+ID).html("RRP: <span>&pound;" + format_number(Number(rrp), 2) + "</span>");
				$('#product_rrp_'+ID).css("display", "block");
			}
			
		}
		
	})
}


/*
*
*	function choose_stamp_validation
*
*/

function choose_stamp_validation(element){
	
	var ID	=	element.attr("id").replace('submit_', '');
	
	//CHECK SIZE
	if($('#select_size_'+ID).length>0 && $('#select_size_'+ID).attr('value')=='')
	{
		alert('Please select a size');
		$('#select_size_'+ID).focus();
		return false;
	}
	
	//CHECK COLOUR
	else if($('#select_colour_'+ID).length>0 && $('#select_colour_'+ID).attr('value')=='' && $('#select_colour_'+ID).attr('value')!='NA')
	{
		alert('Please select a colour');
		$('#select_colour_'+ID).focus();
		return false;
	}
	
	return true;
}


