var userAgent = navigator.userAgent.toLowerCase();
 
// Figure out what browser is being used
jQuery.browser = {
	version: (userAgent.match( /.+(?:rv|it|ra|ie|me)[\/: ]([\d.]+)/ ) || [])[1],
	chrome: /chrome/.test( userAgent ),
	safari: /webkit/.test( userAgent ) && !/chrome/.test( userAgent ),
	opera: /opera/.test( userAgent ),
	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};

//Pathman Begin 
var cnt =0;
var maxcnt = 0;
var cats = new Array(10);
var stop = 0;
var ad_present = 0;

window.onload = function()
{
	var location1 = '' + document.location;
	// if (location1.search(/index/i) > -1 || location1[location1.length-1] == '/') {
	if (location1.search(/index/i) > -1 || location1.substring(location1.length-1, location1.length) == '/') {
		//var all = document.getElementsByClassName("mainajx");
		//var all = document.all['ajxcats'];
		var all = document.getElementsByName("ajxcats");
		for (var i=0;i<all.length;i++) {
			cats[i]= all[i].getAttribute('rel');
			maxcnt = i; // to store the count of the categories
		}
		//alert('cats0 ' + cats[2]);
		if(ad_present == 1)
		{
			displayCategory( '/specialad.html' + escape( '' ), escape( 'specialad' ) );
			var c = window.setTimeout("doRotate()", 10000);
		}
		else
		{
			doRotate();
		}
	}
};

function doRotate()
{
	if(cnt==maxcnt)
		cnt = 0; //Reset count
	else
		cnt = cnt + 1;  // Go to next category
		
	category_to_display = cats[cnt];
	displayCategory( '/topfive/params/category/' + escape( cats[cnt] ), escape( cats[cnt] ) );
	if(stop==0)
		var c = window.setTimeout("doRotate()", 10000);
}
//Pathman End

if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++){
			if(this[i]==obj){
				return i;
			}
		}
		return -1;
	}
}

var category_to_display = 0;
var product_to_display  = 0;
var loading_uris		= [];
var current_mouse_over = 0;
var buycom_ajax = new Array();
var current_buycom_ajax = '';

$( document ).ready( function()
{
	$( '#wrapper' ).before( '<div id="compare"></div>' );
	$( '#wrapper' ).after( '<div id="loading_cursor" style="padding: 2px; background: #FFF; border: 1px solid #CCC; display: none; position: absolute; z-index: 99999; top: 0; left: 0; width: auto;">Loading... Please wait...</div>' );
	
	$( '#ajax_cache' ).hide();
	
	$( '#left .box h2' ).after( $( '#filters' ) );
	
	$( '#header' ).append( $( '.top_crumbs' ) );

	$( '#header' ).append( $( '.browse_category' ) );
	
	$( '#header' ).append( $( '.category_description' ) );
	
	$( "#nav td" ).mouseover( function() {
		$( this ).addClass( 'hover' );
	} );
	$( "#nav td" ).mouseout( function() {
		$( this ).removeClass( 'hover' );
	} );
	
	$( "#main_categories > li" ).mouseover( function( evt ) {
		var e=(evt)?evt:window.event;
		if (window.event) {
			e.cancelBubble=true;
		} else {
			e.cancelBubble = true;
			e.stopPropagation();
		}
		$( "#main_categories > li.whatshot" ).removeClass( 'hover' );
		$( this ).addClass( 'hover' );
	} );
	$( "#main_categories > li" ).mouseout( function( evt ) {
		var e=(evt)?evt:window.event;
		if (window.event) {
			e.cancelBubble=true;
		} else {
			e.cancelBubble = true;
			e.stopPropagation();
		}
		$( this ).removeClass( 'hover' );
	} );
	
	$( "#main_categories" ).mouseout( function( evt ) {
		var e=(evt)?evt:window.event;
		if (window.event) {
			e.cancelBubble=true;
		} else {
			e.cancelBubble = true;
			e.stopPropagation();
		}
		$( '#main_categories > li.whatshot' ).addClass( 'hover' );
	});
	
	var i = 0;
	$( '#nav td a' ).each( function() {
		var rel = $( this ).attr( 'rel' );
		if( rel && rel == selected_microsite )
		{
			if( selected_microsite == 'home' )
			{
				$( this ).parent().parent().addClass( 'active' );
			}
			else
			{
				$( this ).parent().addClass( 'active' );
			}
			if( i )
			{
				$( '#nav td:eq(' + ( i - 1 )  + ')' ).addClass( 'previous' );
			}
		}
		if( rel == 'home' )
		{
			i++
		}
		else
		{
			if( $( this ).parent().get( 0 ).tagName == 'TD' )
			{
				i++;
			}
		}
	} );
	
	$( '#hot_categories .ajax_quick .main_photo' ).before( $( '#main_photo' ) );
	
	showRandomBrands();
	showRandomStores();
	
	$( '.shop_by_brand td.left' ).click( function()
	{
		var parent = $( this ).parent().parent();
		var box_type = $( 'td.brands', parent ).attr( 'rel' );
		var how_many = 5;
		switch( box_type )
		{
			case 'left_type':
				how_many = 3;
				break;
			case 'right_type':
				how_many = 16;
				break;
			case 'center_type':
				how_many = 4;
				break;
		}
		randomBrands( how_many, $( 'td.brands', parent ), $( 'td.brands', parent ).attr( 'rel' ) );
	} );
	$( '.shop_by_brand td.right' ).click( function()
	{
		var parent = $( this ).parent().parent();
		var box_type = $( 'td.brands', parent ).attr( 'rel' );
		var how_many = 5;
		switch( box_type )
		{
			case 'left_type':
				how_many = 3;
				break;
			case 'right_type':
				how_many = 16;
				break;
			case 'center_type':
				how_many = 4;
				break;
		}
		randomBrands( how_many, $( 'td.brands', parent ), $( 'td.brands', parent ).attr( 'rel' ) );
	} );
	
	$( '.shop_by_store td.left' ).click( function()
	{
		var parent = $( this ).parent().parent();
		var box_type = $( 'td.brands', parent ).attr( 'rel' );
		var how_many = 5;
		switch( box_type )
		{
			case 'left_type':
				how_many = 3;
				break;
			case 'right_type':
				how_many = 16;
				break;
			case 'center_type':
				how_many = 4;
				break;
		}
		randomStores( how_many, $( 'td.brands', parent ), $( 'td.brands', parent ).attr( 'rel' ) );
	} );
	$( '.shop_by_store td.right' ).click( function()
	{
		var parent = $( this ).parent().parent();
		var box_type = $( 'td.brands', parent ).attr( 'rel' );
		var how_many = 5;
		switch( box_type )
		{
			case 'left_type':
				how_many = 3;
				break;
			case 'right_type':
				how_many = 16;
				break;
			case 'center_type':
				how_many = 4;
				break;
		}
		randomStores( how_many, $( 'td.brands', parent ), $( 'td.brands', parent ).attr( 'rel' ) );
	} );
	
	$( '.footer_newsletter #subscriber_name' ).focus( function() {
		if( $( this ).val() == 'first name'  )
		{
			$( this ).val( '' );
		}
	} );
	$( '.footer_newsletter #subscriber_name' ).blur( function() {
		if( $( this ).val() == '' )
		{
			$( this ).val( 'first name' );
		}
	} );
	$( '.footer_newsletter #subscriber_email' ).focus( function() {
		if( $( this ).val() == 'your email address'  )
		{
			$( this ).val( '' );
		}
	} );
	$( '.footer_newsletter #subscriber_email' ).blur( function() {
		if( $( this ).val() == '' )
		{
			$( this ).val( 'your email address' );
		}
	} );
	
	$("#inputString").autocomplete("/search/suggestion", { minChars:2 });
	
	/* AJX */
	
	$( '#hot_categories .mainajx' ).bind( 'mouseover', function( e )
	{
		if( ! e.target )
		{
			return;
		}
		
		var el = $( e.target );	
		
		if( el.is( 'span' ) &&
			el.parent().is( '.mainajx' ) )
		{
			el = el.parent();
		}
		if( el.is( 'img' ) &&
		el.parent().parent().is( '.mainajx' ) )
		{
			el = el.parent().parent();
		}
		if( el.is( '.mainajx' ) )
		{
			if( category_to_display == el.attr( 'rel' ) )
			{
				return;
			}
			
			category_to_display = el.attr( 'rel' );
			displayCategory( '/topfive/params/category/' + escape( el.attr( 'rel' ) ), escape( el.attr( 'rel' ) ) );
			stop =1;
			return;
		}
		
		if( el.is( 'span' ) &&
			el.parent().is( '.secajx' ) )
		{
			el = el.parent();
		}
		if( el.is( 'img' ) &&
		el.parent().is( '.secajx' ) )
		{
			el = el.parent();
		}
		if( el.is( '.secajx' ) )
		{
			if( product_to_display == el.attr( 'rel' ) )
			{
				return;
			}
			
			product_to_display = el.attr( 'rel' );
			displayProduct( '/product/quick/params/id/' + escape( product_to_display ), escape( product_to_display ) );
			return;
		}
	} );
	
	if( $( '#mainSearch' ) ) 
	{
//		$( '#mainSearch' ).focus();
	}
	
	var browser_version = $.browser.version

	if( ! $.browser.msie  )
	{
		$( '#nav td.items' ).each( function() {
			var left = $( this ).get(0).offsetLeft;
			if( $.browser.chrome )
			{
				left += 280;
			}
			$( 'ul', this ).css( "left", left + "px" );
		} );
	}
	else
	{
		if( browser_version.substr( 0, 2 ) == "8." )
		{
			$( '#nav td.items' ).each( function() {
				var left = $( this ).get(0).offsetLeft;
				left += 425;
				$( 'ul', this ).css( "left", left + "px" );
				$( 'ul', this ).css( "top", "55px" );
			} );
		}
	}

	$( '#top_nav .feedback' ).click( function() {
		window.open( "/message/suggestion", "", "width=970,height=310,scrollbars=yes" );
		return false;
	} );
	
	$( '#top_nav .tell_friend' ).click( function() {
		window.open( "/message/friend", "", "width=970,height=250,scrollbars=yes" );
		return false;
	} );
	
	formAjaxSubmit();
	
	$( '#buy_ajax_table .over_ajax' ).mouseover( function()
	{
		var el = $( this );
		var show_content = el.attr( 'rel' );
		if( current_buycom_ajax != show_content )
		{
			if( buycom_ajax[show_content] == undefined )
			{
				$.get( '/topfive/category/params/id/' + show_content + '', function( html )
				{
					buycom_ajax[show_content] = html;
					$( '#buycom_ajax_content' ).html( buycom_ajax[show_content] );
				} );
			}
			else
			{
				$( '#buycom_ajax_content' ).html( buycom_ajax[show_content] );
			}
			current_buycom_ajax = show_content;
		}
		return;
	} );
	
});

function showRandomBrands()
{
	$( '.shop_by_brand table tr td.brands' ).each( function() {
		
		var box_type = $( this ).attr( 'rel' );
		switch( box_type )
		{
			case 'left_type':
				randomBrands( 3, $( this ), box_type );
				break;
			case 'right_type':
				randomBrands( 16, $( this ), box_type );
				break;
			case 'center_type':
				randomBrands( 4, $( this ), box_type );
				break;
		}
		
	} );
	setTimeout( 'showRandomBrands()', 7000 );
}

function showRandomStores()
{
	$( '.shop_by_store table tr td.brands' ).each( function() {
		
		var box_type = $( this ).attr( 'rel' );
		switch( box_type )
		{
			case 'left_type':
				randomStores( 3, $( this ), box_type );
				break;
			case 'right_type':
				randomStores( 12, $( this ), box_type );
				break;
			case 'center_type':
				randomStores( 4, $( this ), box_type );
				break;
		}
		
	} );
	setTimeout( 'showRandomStores()', 7000 );
}

function formAjaxSubmit()
{
	var form_submit_options = { 
		target:		'#suggestion_box_div',   // target element(s) to be updated with server response 
		beforeSubmit:  showRequest,  // pre-submit callback 
		success:	   showResponse  // post-submit callback 
	}; 
 
	// bind form using 'ajaxForm' 
	$('#suggestion_box').ajaxForm(form_submit_options);
}

// pre-submit callback 
function showRequest(formData, jqForm, options) { 
	// formData is an array; here we use $.param to convert it to a string to display it 
	// but the form plugin does this for you automatically when it submits the data 
	var queryString = $.param(formData); 
 
	// jqForm is a jQuery object encapsulating the form element.  To access the 
	// DOM element for the form do this: 
	// var formElement = jqForm[0]; 
 
   // alert('About to submit: \n\n' + queryString); 
 $( '#loading_form_ajax' ).show();
	// here we could return false to prevent the form from being submitted; 
	// returning anything other than false will allow the form submit to continue 
	return true; 
} 
 
// post-submit callback 
function showResponse(responseText, statusText)  { 
	// for normal html responses, the first argument to the success callback 
	// is the XMLHttpRequest object's responseText property 
 
	// if the ajaxForm method was passed an Options Object with the dataType 
	// property set to 'xml' then the first argument to the success callback 
	// is the XMLHttpRequest object's responseXML property 
 
	// if the ajaxForm method was passed an Options Object with the dataType 
	// property set to 'json' then the first argument to the success callback 
	// is the json data object returned by the server 
 
   // alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
	 //   '\n\nThe output div should have already been updated with the responseText.'); 
	 $( '#loading_form_ajax' ).hide();
	formAjaxSubmit();
}

function redirectTO( url )
{
	document.location=url;
}

function randomBrands( how_many, target, type )
{
	$.get( '/brands/random/params/total/' + how_many + '/type/' + type, function( abc ) { $( 'div', target ).hide().html( abc ).fadeIn() } );
}

function randomStores( how_many, target, type )
{
	$.get( '/brands/stores/params/total/' + how_many + '/type/' + type, function( abc ) { $( 'div', target ).hide().html( abc ).fadeIn() } );
}

function removeSomeClass()
{
	$( '.secajx' ).removeClass( 'active' );
}

/* --- */

function displayWhenReady( id, type )
{
	if( type == 'category' )
	{
		if( ( category_to_display > 0 ) &&
			( category_to_display != id ) )
		{
			return;
		}
		
		var elem = '.ajax_quick';
	}
	else
	{
		if( ( product_to_display > 0 ) &&
			( product_to_display != id ) )
		{
			return;
		}
		
		var elem = '.ajax_quick .quick_product';
	}
	
	$( elem ).html( '' );
	
	$( '#ajx' + id ).clone().appendTo( elem );
	
	if( type == 'category' )
	{
		var firstprod = $( '#ajx' + id + ' a.secajx:first' );
		if( firstprod.length )
		{
			product_to_display = firstprod.attr( 'rel' );
			var category_name = firstprod.attr( 'name' );
			displayProduct( '/product/quick/params/id/' + escape( product_to_display ) + '?c=' + escape( category_name), escape( product_to_display ) );
		}
	}
}

function displayCategory( uri, id )
{
	
	$( '.ajax_quick' ).html( '' );
	
	if( loading_uris.indexOf( id ) > -1 )
	{
		return;
	}

	if( $( '#ajx' + id ).length )
	{
		displayWhenReady( id, 'category' );
		refreshBind();
	}
	else
	{
		loading_uris.push( id );

		$.get( uri, function( html )
		{
			loading_uris.splice( loading_uris.indexOf( id ), 1 );
			
			$( '#ajax_cache' ).append( '<div id="ajx' + id + '" class="something">' + html + '</div>' );
			displayWhenReady( id, 'category' );
			refreshBind();
		} );
	}
}

function displayProduct( uri, id )
{
	$( '.ajax_quick .quick_product' ).html( '' );
	
	if( loading_uris.indexOf( id ) > -1 )
	{
		return;
	}

	if( $( '#ajx' + id ).length )
	{
		displayWhenReady( id, 'product' );
	}
	else
	{
		loading_uris.push( id );
		
		$.get( uri, function( html )
		{
			loading_uris.splice( loading_uris.indexOf( id ), 1 );
			
			$( '#ajax_cache' ).append( '<div id="ajx' + id + '" class="something">' + html + '</div>' );
			displayWhenReady( id, 'product' );
		} );
	}
}

function refreshBind()
{
	$( '#hot_categories .secajx' ).bind( 'mouseover', function( e )
	{
		if( ! e.target )
		{
			return;
		}
		
		var el = $( e.target );	
		
		if( el.is( 'span' ) &&
			el.parent().is( '.secajx' ) )
		{
			el = el.parent();
		}
		if( el.is( 'img' ) &&
		el.parent().is( '.secajx' ) )
		{
			el = el.parent();
		}
		if( el.is( '.secajx' ) )
		{
			removeSomeClass();
			$( el ).addClass( 'active' );
			if( product_to_display == el.attr( 'rel' ) )
			{
				return;
			}
			var category_name = el.attr( 'name' );
			product_to_display = el.attr( 'rel' );
			displayProduct( '/product/quick/params/id/' + escape( product_to_display ) + '?c=' + escape( category_name ), escape( product_to_display ) );
			return;
		}
	} );	
}

function bookmark(url,title){
  if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
  window.external.AddFavorite(url,title);
  } else if (navigator.appName == "Netscape") {
	window.sidebar.addPanel(title,url,"");
  } else {
	alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
  }
}

function switchSubMenu(el)
{
	var menu = el.parentNode;
	if (menu.className.search('open') > -1) {
		menu.className = 'filter_name';
	} else {
		menu.className = 'filter_name open';
	}
}

function subMenuMore()
{
	var filters = document.getElementById('filters');
	var list = filters.firstChild.firstChild.childNodes[1].childNodes;
	for (i=0; i<list.length; i++) {
		list[i].className = '';
	}
	list[list.length-1].className = 'hidden';
	filters.firstChild.firstChild.className = 'filter_name open';
}
