var currentTimeout = null;
var Recaptcha;

// USED IN GRID COMPLETE AS A TOGGLE
var selectStatus = false;

/*
var xmlPrep = function(xml) {
	if($.browser.msie && typeof xml == 'string') {
		var origXml = xml;
		xml = new ActiveXObject("Microsoft.XMLDOM");
		xml.async = false;
		xml.loadXML(origXml);
	}

	return xml;
}
*/

var LabelReaction = function() {
	var groupName = $('input:radio',this).attr('name');

	$('form#buy label:has(input[name="'+groupName+'"])').removeClass('selected').css({
		'background-image'		: "url('/images/chk_off.png')"
	});

	// STUPID IE
	/*
	if($.browser.msie)
		document.getElementById($(this).attr('for')).checked = true;
    */

	$(this).addClass('selected');
	$(this).css({
		'background-image'		: "url('/images/chk_on.png')"
	});
};

/**
 * Search Rows!
 *
 * Make the searching dynamic!
 */
var callHistory = {
	currentSearch : null,
	doSearch : function() {
		var search_phoneno = $('#search_phoneno').val();
		$("#callHistory").setGridParam({
			url		: "/extras/widget/request/cdrlist"
				+ "?search_phoneno="+search_phoneno
				+ "&search_spoofcid="+search_phoneno,
			page	: 1
		}).trigger("reloadGrid");
	},
	queueSearch : function() {
		if(this.currentSearch)
			clearTimeout(this.currentSearch);

		this.currentSearch = setTimeout("callHistory.doSearch()",500);
	}
};

$(document).ready(function() {
    $('.dialog[href]').live('click', function(event) {
        event.preventDefault();
        
        $($(this).attr('href')).dialog('open');
    });
    
	if(!$.browser.msie)
		$('#nav_main .livechat').css({'float':'left'});

	$('#didSelection').change(function() {
		var did, html, key, index, surcharge;

		index = $(this).val();

		html = '<h1 style="display : inline;">'+dids[$(this).val()][0]['did']+'</h1>';
		if(dids[index].length > 1) {
			html += '&nbsp;(<a href="#" id="didsAltTrigger"><span>more</span><span style="display : none">less</span></a>)';
			html += '<div class="surcharge alert bad" style="display : none; font-size : 12px; font-weight : normal;"> </div>';
			html += '<div style="border : 1px solid #CCC; background-color : #F0F0F0; padding : 5px; display : none; margin : 20px auto -10px auto;" id="didsAlt">';
			html += 'Select a location<br />';
			html += '<select>';
			for(key in dids[index]) {
				did = dids[index][key];
				html += '<option value="'+key+'">'+did['description'].replace(',',', ')+'</option>';
			}
			html += '</select>';
			html += '</div>';
		}

		$('#didDisplay').html(html);
		$('#didsDisplay').animate({
			'height'	: '350px'
		});

		if(dids[index].length > 1) {
			$('#didsAltTrigger').unbind('click').click(function(event) {
				event.preventDefault();
				$('#didsAltTrigger span').toggle();
				$('#didsDisplay').animate({
					'height'	: $('#didsAlt').css('display') == 'none' ? '425px' : '350px'
				});
				$('#didsAlt').slideToggle();
			});
			$('#didsAlt select').unbind('change').change(function() {
				surcharge = Math.round(new Number(dids[index][$(this).val()]['surcharge']));
				if(surcharge)
					$('#didDisplay .surcharge').html('This number charges '+surcharge+' credit'+(surcharge == 1 ? '' : 's')+' per call').css({'display':'block'});
				else
					$('#didDisplay .surcharge').css({'display':'none'});

				$('#didsDisplay').animate({
					'height'	: surcharge ? '375px' : '350px'
				});

				$('#didDisplay h1').html(dids[index][$(this).val()]['did']);
				
				$('#didsAltTrigger span').toggle();
				$('#didsAlt').toggle();
			});
		}
	}).change();

	$('form#buy label.box').unbind('click').click(LabelReaction);

	$('#physical_card').click(function() {
		$('label:has(input[id="hardcard:1"])').click();
	}).hover(function() {
		$(this).css({'cursor':'pointer'});
	});

	// JAZZ FORM UP WITH JAVASCRIPT IF ENABLED

	// HIDE RADIO BUTTONS
	$('form#buy ul li div label input:radio').css({
		'display'	: 'none'
	});

	// HIDE SHIP TO OPTION
	$('form#buy #ship_option').css('display','none');

	// TRANSFORM LABELS
	$('form#buy ul li div label.box').css({
		'padding'				: '5px 5px 5px 30px',
		'background-image'		: "url('/images/chk_off.png')",
		'background-position'	: '5px 50%',
		'background-repeat'		: 'no-repeat',
		'width'					: '150px'
	});

	
	$('input[type="text"]').addClass('idle')
		.focus(function() {
			$(this).removeClass('idle');
			$(this).addClass('focus');
		})
		.blur(function() {
			$(this).removeClass('focus');
			$(this).addClass('idle');
		});

	jQuery.extend({
		alert: function(message,type) {
			$('#alert').alert(message,type);
			window.location = "#alert";
		}
	});

	jQuery.fn.extend({
		alert: function(message,type) {
			$(this).html(message);

			clearTimeout(currentTimeout);

			if($(this).css('display') != 'block')
				$(this).slideDown();

			currentTimeout = setTimeout("$('#"+$(this).attr('id')+"').slideUp();",4000);
		},
		approveForm : function(errorContainer) {
			if(!errorContainer)
				errorContainer = $;

			var proceed = true;
			$(this).each(function() {
				if($(this).hasClass('ignore'))
					return;

				if(!TelTech.Validate.NotEmpty($(this).val())) {
					/**
					 * Error Message
					 *
					 * If there is an associated hidden field with an error message,
					 * display it's contents into the error.
					 */
					if($('input[type="hidden"].'+$(this).attr('name')).hasClass('errorMessage'))
						errorContainer.alert($('input[type="hidden"].errorMessage.'+$(this).attr('name')).val(),'bad');

					$(this).addClass('invalid').focus();

					proceed = false;
					return false;
				}
			});

			return proceed;
		},
		dismiss: function() {
			this.html();
		},
		iToggle: function() {
			if($(this).hasClass('toggleOn')) {
				$(this).val(0);
				if($.browser.msie)
					$(this).removeClass('toggleOn').addClass('toggleOff');
				else
					$(this).switchClass('toggleOn','toggleOff');
			} else if($(this).hasClass('toggleOff')) {
				$(this).val(1);
				if($.browser.msie)
					$(this).removeClass('toggleOff').addClass('toggleOn');
				else
					$(this).switchClass('toggleOff','toggleOn');
			}
		}
	});

	$('.large').add('.medium').focus(function() {
		if($(this).val() == this.defaultValue)
			$(this).val('');

		$(this).css('color','#000');
	});
	$(':input').blur(function() {
		if($(this).val() == '')
			return $(this).val(this.defaultValue);

		$(this).removeClass('invalid');
	});
});
