// JavaScripts for Customer Account Pages

var CA = {

	init: function(){
/* Protect emails from automatic grabbing */
		$("span.change").each(function(){
			var at = / at /;
			var dot = / dot /g;
			var address = $(this).text();
			address = address.replace(at, "@");
			address = address.replace(dot, ".");
			$(this).html('<a href="mailto:'+address+'">'+address+'</a>');
		});

		$("a.popup").click(function(e){
			e.preventDefault();
			popupWin = window.open(this.href, 'popup', 'location,width=600,height=500,top=50,left=50'); popupWin.focus();
		});

		// Add valid attributes
		$('a.target-blank').attr({target: '_blank'});


		$('.address input:radio, .choose input:radio').click(function(){
			var el = $(this);
			$('input[name="'+el.attr("name")+'"]').parents('.address, .choose').removeClass('selected').find('input.disabled-false').attr('disabled', true).removeClass('disabled-false');
			el.parents('.address, .choose').addClass('selected').find('input[disabled]').addClass('disabled-false').removeAttr('disabled').focus();
		});


		$('.choose input:checkbox').click(function(){
			var el = $(this);
			var parent = el.parents('.choose');
			if(this.checked){
				parent.addClass('selected').find('input[disabled]').addClass('disabled-false').removeAttr('disabled').focus();
			} else {
				parent.removeClass('selected').find('input.disabled-false').attr('disabled', true).removeClass('disabled-false');
			}
		});

		this.equalHeight($(".same-height"));

	},

	// Blocks with radio-button selections
	initStatus: function(el){
/*

		$('.ca-choose').removeClass('ca-selected').each(function(){
			var block = $(this);
			$('input[type="radio"]', block).each(function(){
				if(this.checked) block.addClass('ca-selected');
			});
		});
		// For IE
		if(!$.support.cssFloat)$('label', block).hover(
			function() {
				$(this).addClass('.hover');
			},
			function() {
				$(this).removeClass('.hover');
			}
		);
*/

	},
	setStatus: function(el){
		el=$(el);
		if(el.attr("type")=="radio"){
			el.attr("checked", true);
			$("input[name='"+el.attr("name")+"']").each(function(){
				$(this).parents('.ca-choose').removeClass('ca-selected');
			});
			$(el).parents('.ca-choose').addClass('ca-selected');
		}
	},
	showReport: function(el){
		el=$(el);
		el.parents('tr').nextAll('.orderDetail').toggle();
		el.parents('tr.orderSummary').toggleClass('show-details');
	},
	gotoError: function (field) {
		el = $(":input[name='"+field+"']").first();
		if(field == 'cvv' && el.length==0) {
			var field = $("div.selected input.disabled-false").focus();
		}
		else {
			$('html, body').animate({scrollTop:el.offset().top}, 'slow');
			el.focus();
		}
	},


	equalHeight: function (group) {
		tallest = 0;
		group.css({height: "auto"});
		group.each(function() {
			thisHeight = $(this).height();
			if(thisHeight > tallest) {
				tallest = thisHeight;
			}
		});
		group.height(tallest);
	},

	// for payment.aspx
	mask: function (id, isMask) {
		el=$(id);
		if(el.length){
			if (!$('#mask').length)$('body').append('<div id="mask" style="display:none;"></div>');
			var mask = $('#mask');

			if(isMask){
				// Hide selection from current card
				el.find('.selected').removeClass('selected').addClass('selected-default').find(':radio').removeAttr('checked');
				mask.css({
					width: el.width(),
					height: el.height(),
					top: el.offset().top,
					left: el.offset().left
				}).fadeTo('normal', 0.7);

				$(window).bind('scroll resize', function() {
					mask.css({
						top: el.offset().top,
						left: el.offset().left
					});
				});

			} else {
				// Show selection for current card
				el.find('.selected-default').removeClass('selected-default').addClass('selected').find(':radio').attr('checked', true);
				mask.fadeOut();
				$(window).unbind('scroll resize');

			}
		}
	},

	initPayment: function (obj) {
		if(obj.id1 && obj.block1) {
			var block1 = $(obj.block1);
			var id1 = $(obj.id1);
			if(id1.is(':checked')) {
				this.mask(block1, 0);
			} else {
				this.mask(block1, 1);
			}
		}
	},

	// for paymentnew.aspx
	initPaymentNew: function (obj) {
		$(document).ready( function(){
			if(obj.id1 && obj.id2 && obj.block1 && obj.block2) {
				var block1 = $(obj.block1);
				var block2 = $(obj.block2);
				var id1 = $(obj.id1);
				var id2 = $(obj.id2);
				id1.click(function(){
					block2.slideUp('normal', function(){
						block1.show();
					});
				});
				id2.click(function(){
					block1.hide();
					block2.slideDown();
				});
				if(id1.is(':checked'))block2.hide();
				if(id2.is(':checked'))block1.hide();
			}
		});
	},

	scrollTo: function (el) {
		el = $(el).first();
		if(el.length) {
			$('html, body').animate({scrollTop:el.offset().top}, 'slow');
			return false;
		}
	}


}




$(document).ready( function(){
	GInit();
	CA.init();
});



// JavaScripts for Customer Account Pages --- old stuff

var 
	isOpera = ( document.opera || ( document.attachEvent && document.addEventListener ) ? true : false ),
	mustBeFocused = null,
	updateEnabled = false;
	 

function setWindowStatus( )
{
	var
		oEvent = ( window.event ? window.event : WIEventHolder );
	if(document.title)
		window.status = document.title;

	if( oEvent )
		oEvent.returnValue = true;
}

function GInit( ) { // Used on Cart page -- need to rewrite
	try 
	{
		var
			arLink = document.getElementsByTagName( 'a' );

		setWindowStatus( );

		if( arLink.length )
		{
			for( var i = 0; i < arLink.length; i ++ )
			{
				WI_attachEvent( 'onmouseover', arLink[ i ], setWindowStatus );
				WI_attachEvent( 'onmouseout', arLink[ i ], setWindowStatus );
			}
		}
		oWMScroll = new clsWIScroll( 'a', 'upControl', 'downControl' );
		oWMScroll.sNormalControlClass = 'normal';
		oWMScroll.sActiveControlClass = 'pressed';
		oWMScroll.sDisabledControlClass = 'disabled';
		oWMScroll.init( );
		setUpdateStatus ('update');
	}
	catch ( e )
	{
		alert( e.message ); 
	}
} 

// Set enabled/disabled status for update quantity block on page load. If no JS support, enabled state will set by default.
function setUpdateStatus ( divId ) {
	var
		divEnabled = document.getElementById ( divId + '_on');
		divDisabled = document.getElementById ( divId + '_off');
		
	if ( divEnabled && divDisabled ) 
		if ( !updateEnabled ) {
			divEnabled.className = 'hide';
			divDisabled.className = '';
//			updateEnabled = true;
//			alert ( updateEnabled );
		}
}

// Changes enabled/disabled status for update quantity block
function changeUpdateStatus ( divId ) {
	
	var
		divEnabled = document.getElementById ( divId + '_on');
		divDisabled = document.getElementById ( divId + '_off');
	
		if ( divEnabled && divDisabled ) {
			divEnabled.className = '';
			divDisabled.className = 'hide';
		}
}

// Disables all inputs this a given name. Use it this "onload" event.
function disableInputs ( name ) {
	var allInputs = document.getElementsByName ( name );
	if ( allInputs )
		for ( var i=0; i < allInputs.length; i++ ) 
			allInputs[i].disabled = true;
}

// Selects the entire contents of input element then the user clicked on it. Use with "onclick" event.
function focusInput ( oInput ) {
	return;
	var word = arguments [1];
	if (oInput && !oInput.readOnly) {
		if ( !word || oInput.value == word )
			oInput.select ();
	}
}

function setStatus ( tObject ) {
//	alert(tObject.name);
}

function setStatusOld ( tObject ) {

return false;
	var
		unselectInput = null,
		oInput = tObject.childNodes[0];
	
	if ( mustBeFocused ) return;

	if( isOpera && tObject.tagName != 'LABEL' || !isOpera && tObject.tagName != 'INPUT' ) {
		return;
	}
	
	if ( !isOpera ) oInput = tObject;
	
	var allControls = document.getElementsByName( oInput.name );

	if( allControls.length > 1 )
	for ( var i=0; i<allControls.length; i++ ) 
	{
		var sClassName = allControls[i].parentNode.parentNode.className.split(' ');
		var j=0;
		while ( sClassName.length > 1 && j < sClassName.length) {
			if (sClassName[j] == 'selected') {
					unselectInput = i+1;
					sClassName[j] = '';
					break;
			}
			j++;
		}
		var baseClassName = sClassName.join(' ');
	}
	
	if ( unselectInput ) 
	{
		allControls[unselectInput-1].parentNode.parentNode.className = baseClassName;
		oInput.parentNode.parentNode.className = baseClassName + ' selected';
		// Deactivate the following input
		var folInput = allControls[unselectInput-1].parentNode;
		folInput = folInput.nextSibling;
		while ( folInput && folInput.tagName != 'INPUT' )
			folInput = folInput.nextSibling;
		
		if ( folInput && folInput.tagName == 'INPUT' )
			folInput.disabled = true;

	}
	else 
	{
		var sClassName = oInput.parentNode.parentNode.className.split(' ');
		var j=0;
		var isSelected = false;
		for (var j=0; j < sClassName.length; j++ )
			if ( sClassName[j] == 'selected' ) {
				isSelected = true; break;
			}
		
		if ( isSelected )
			oInput.parentNode.parentNode.className = 'choose';
		else 
			oInput.parentNode.parentNode.className = 'choose selected';
	}
	
	// Activate / deactivate the following input
	oInput = oInput.parentNode;
	oInput = oInput.nextSibling;
	while ( oInput && oInput.tagName != 'INPUT' ) { oInput = oInput.nextSibling; }

	if ( oInput && oInput.tagName == 'INPUT' ) {
		oInput.disabled = !oInput.disabled;
		if ( !oInput.disabled )
			oInput.focus( );
	}
}

function setStatusAffiliate(tObject) {
	if(!tObject) return;
	if(tObject.parentNode.parentNode.className.indexOf(" selected") == -1) {
		for(var i = 0; i < tObject.parentNode.parentNode.parentNode.parentNode.parentNode.length; i++) {
			var tmp = document.getElementById(tObject.id.substring(0,tObject.id.indexOf(".")) + "." + i);
			if(tmp && tmp.parentNode.parentNode.className.indexOf(" selected") != -1)
				tmp.parentNode.parentNode.className = tmp.parentNode.parentNode.className.substring(0,tmp.parentNode.parentNode.className.indexOf(" selected"));
		}
		tObject.parentNode.parentNode.className += " selected";
	} else
		return;
}

var
	arObectErrors = new Array( );


function removeError( oObj )
{
	if( !arObectErrors[ oObj.name ] )
	{
		oObj.value = '';
		oObj.style.removeAttribute( 'color' );
		arObectErrors[ oObj.name ] = true;
	}
}

function openInParent(url)
{
	var ret = null;
	try
	{
		if( !top.opener || top.opener.closed )
		{
			ret = window.open( url, '___mpParent' );
		}
		else
		{
			top.opener.location = url;
			ret = top.opener;
		}
	}
	catch( e )
	{
		//alert( 'error:' + e.message );
	}
	return ret;
}

function openInParentFocus(url)
{
	try 
	{
		var d = openInParent(url);
		if( d )
		{
			d.focus();
		}
	}
	catch (e) 
	{
	}
}

function closeWindow( )
{
	if( window.confirm( "Are you sure you want to close the player window?" ) )
	{
		window.close( );
	}
}
