/*-------------------------------------------------------------------------------------------------
editError()
Reposition an error flag
Top and Left is the absolute position - not an addition or subtraction
-------------------------------------------------------------------------------------------------*/
function editError(id,error,direction,top,left,autolocate,autolocateOffset) {
								
	// If given a direction switch the classes
	if(direction != "") {
		if(direction == "left") parent.document.getElementById(id + "_error").className = "errorTab";
		else parent.document.getElementById(id + "_error").className = "errorTab errorTabRight";
	} 
	
	// If given top / left move the position
	if(top != "")  parent.document.getElementById(id + "_error").style.top  = top + "px"; 
	if(left != "") parent.document.getElementById(id + "_error").style.left = left + "px";
	
	// Find out where to throw the flag
	if(autolocate == true) {
			
		obj      = parent.document.getElementById(id + "_input");
		objError = parent.document.getElementById(id + "_error");
		
		obj.style.display = "fixed";
				
		var posX = findPosX(obj); 
		var posY = findPosY(obj);
								
		// If its a right tab, move it to the right of the obj
		if(objError.className == "errorTab errorTabRight") {
			var widthOfInput = parseInt(obj.style.width);
			var errorX = posX + widthOfInput + 5;
		}
		// Otherwise if its a left tab, move it to the left of the obj
		else var errorX = posX - 155; // 165 is about the width of a tab
		
		// An autolocateOffset is passed in if it needs to be bumped to accomdoate a label
		if(autolocateOffset != undefined && autolocateOffset != "") errorX = errorX + autolocateOffset;
			
		var errorY = posY;
	
		
	
		parent.document.getElementById(id + "_error").style.left = errorX + "px";
		parent.document.getElementById(id + "_error").style.top  = errorY + "px";
	}
	
	// If given an error, change the message
	if(error != "") {
		parent.document.getElementById(id + "_errorText").innerHTML = error
	}
	
}




/*-------------------------------------------------------------------------------------------------
errorField()
Throw an error field
-------------------------------------------------------------------------------------------------*/
function errorField(id,pass,newError,background,autolocate,autolocateOffset){

	fade = true;
	
	// If passed a newError message, use it
	if(newError != "" && newError != undefined) {
		editError(id,newError,"","",false,"","");
	}
	
	if(autolocate == true) {
		editError(id,"","","","",true,autolocateOffset);
	}
	
	// TURN ON ERROR
	if(pass == false) {	
	
		parent.document.getElementById(id + "_error").style.display = "block";
		

		// Only change backgrounds on text input
		if(parent.document.getElementById(id + "_input")) {
			if(parent.document.getElementById(id + "_input").type == "text" && background == 1) {
				parent.document.getElementById(id + "_input").style.background = 'url(/store/checkout/images/field-status-pink.jpg)';
			} 
		}
	
		// Find out what the opacity of the error is...if its already full opacity, don't try to fade it in again
		opacityIs = parent.document.getElementById(id + "_error").style.opacity;
		
		if(fade == false) {
			parent.document.getElementById(id + "_error").style.opacity = "100";
		}
		else {
			if(opacityIs != 0.990099) {
				opacity(id + "_error", 0, 100, 500); // Fade in error								
			}
		}
	}
	// TURN OFF ERROR
	else {	
	
		parent.document.getElementById(id + "_error").style.display    = "none";
		if(parent.document.getElementById(id + "_input")) parent.document.getElementById(id + "_input").style.background = '';
		
		if(parent.document.getElementById(id + "_error").style.opacity < 100) {
			currentOpac = parent.document.getElementById(id + "_error").style.opacity * 100;
		}
		
		if(fade == false) {
			parent.document.getElementById(id + "_error").style.opacity = "0";
		}
		else {
			if(currentOpac >= 99.0099) {
				opacity(id + "_error", 100, 0, 500); // Fade out error
				//var attributes = {  opacity: {from: 1, to: 0 }  }	
				//var ani = new YAHOO.util.Anim(id + '_error' , attributes, 0, YAHOO.util.Easing.easeNone);
			}
		}
	}
}


