// Macromedia functions
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Cookies
function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + '=';
	var begin = dc.indexOf('; ' + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) {
			return null;
		}
	}
	else {
		begin += 2;
	}
	var end = document.cookie.indexOf(';',begin);
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
};

// Site specific functions
// Product details
var initpss = false;
var pss_loading = false;
var pss_collid;
var pss_cur = 0;
var pss_max = 0;

function initProductSS() {
	var div = $( '#jqm_productdetails' );
	div.append( '<div id="pss_load" style="height: 420px;"><table border="0" cellspacing="0" cellpadding="0" width="100%" height="420"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table></div><div id="pss_html" style="height: 420px; display: none;"></div><div id="pss_nav"><p align="center"><a href="#" onmouseout="swapPrevImage( false );" onmouseover="swapPrevImage( true );" onClick="prevProductSS(); return false;"><img src="/images/product_viewer/prev_inac.gif" width="32" height="20" border="0" name="pss_previous" id="pss_previous" alt="Previous Product" /></a><a href="#" onclick="closeProductSS(); return false;" onmouseout="MM_swapImgRestore();" onmouseover="MM_swapImage(\'pss_close\',\'\',\'/images/product_viewer/close_hl.jpg\');"><img src="/images/product_viewer/close.jpg" width="120" height="20" border="0" name="pss_close" id="pss_close" /></a><a href="#" onmouseout="swapNextImage( false );" onmouseover="swapNextImage( true );" onClick="nextProductSS(); return false;"><img src="/images/product_viewer/next_inac.gif" width="32" height="20" border="0" name="pss_next" id="pss_next" alt="Next Product" /></a></p></div>' );
	div.css( 'overflow' , 'hidden' ).css( 'height' , 450 );
	div.jqm( {
		closeClass:		'jqm_pd_close',
		trigger:		false,
		modal:			true
	} );

	initpss = true;
}

function setProductSS( collid , productn ) {
	if ( pss_loading ) return false;
	pss_loading = true;

	$( '#pss_html' ).hide();
	$( '#pss_load' ).show();

	pss_collid = collid;
	var d = { collid: collid , prodn: productn };

	$.ajax( {
		url:		'/api/product_details.php',
		type:		'GET',
		data:		d ,
		dataType:	'json' ,
		error: 		function() {
			pss_loading = false;

			$( '#pss_html' ).empty().append( '<p>Unable to load product information. Please make sure you are still connected to the internet. <a href="#" onclick="setProductSS( ' + collid + ' , ' + productn + ' ); return false;">Click here</a> to retry.</p>' );
			$( '#pss_load' ).hide();
			$( '#pss_html' ).show();
		} ,
		success: 	function( data ) {
			pss_loading = false;

			pss_cur = data.prod_n;
			pss_max = data.prod_count;
			updatePSSNavigation();

			$( '#pss_html' ).html( data.html );
			$( '#pss_load' ).hide();
			$( '#pss_html' ).show();
		}
	} );

	return true;
}

function openProductSS( collid , productn ) {
	if ( !initpss ) initProductSS();

	// start information loading
	setProductSS( collid , productn );

	// show it
	$( '#jqm_productdetails' ).jqmShow();
}

function closeProductSS() {
	$( '#jqm_productdetails' ).jqmHide();
}

function updatePSSNavigation() {
	if ( pss_loading ) return false;

	// previous button
	if ( pss_cur > 0 ) {
		$( '#pss_previous' ).attr( 'src' , '/images/product_viewer/prev_ac.gif' );
	}
	else {
		$( '#pss_previous' ).attr( 'src' , '/images/product_viewer/prev_inac.gif' );
	}

	// next button
	if ( ( 1 + parseInt( pss_cur ) ) < pss_max ) {
		$( '#pss_next' ).attr( 'src' , '/images/product_viewer/next_ac.gif' );
	}
	else {
		$( '#pss_next' ).attr( 'src' , '/images/product_viewer/next_inac.gif' );
	}
}

function swapPrevImage( over ) {
	if ( $( '#pss_prev' ).attr( 'src' ) == '/images/product_viewer/prev_inac.gif' ) return false;

	if ( over ) {
		$( '#pss_prev' ).attr( 'src' , '/images/product_viewer/prev_hl.gif' );
	}
	else {
		$( '#pss_prev' ).attr( 'src' , '/images/product_viewer/prev_ac.gif' );
	}
}

function swapNextImage( over ) {
	if ( $( '#pss_next' ).attr( 'src' ) == '/images/product_viewer/next_inac.gif' ) return false;

	if ( over ) {
		$( '#pss_next' ).attr( 'src' , '/images/product_viewer/next_hl.gif' );
	}
	else {
		$( '#pss_next' ).attr( 'src' , '/images/product_viewer/next_ac.gif' );
	}
}

function prevProductSS() {
	if ( pss_loading ) return false;

	if ( pss_cur > 0 ) {
		setProductSS( pss_collid , pss_cur - 1 );
	}
}

function nextProductSS() {
	if ( pss_loading ) return false;

	var n = ( 1 + parseInt( pss_cur ) );
	if ( n < pss_max ) {
		setProductSS( pss_collid , n );
	}
}

// Package details
var initpckdt = false;

function initPackageDetails() {
	var div = $( '#jqm_packagedetails' );
	div.css( 'overflow' , 'auto' ).css( 'height' , 450 ).css( 'width' , 610 ).css( 'margin-left' , -311 ).css( 'z-index' , 3500 );
	div.jqm( {
		closeClass:		'jqm_pdk_close',
		trigger:		false,
		modal:			true
	} );

	initpckdt = true;
}

function showPackageDetails( pckgid ) {
	if ( !initpckdt ) initPackageDetails();

	// show it
	$( '#jqm_packagedetails' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' );
	$( '#jqm_packagedetails' ).jqmShow();

	var d = { id: pckgid };

	$.ajax( {
		url:		'/api/package_details.php',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			pss_loading = false;

			$( '#jqm_packagedetails' ).empty().append( '<p>Unable to load package contents. Please make sure you are still connected to the internet. <a href="#" onclick="showPackageDetails( ' + pckgid + ' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_packagedetails' ).html( data );
		}
	} );
}

function hidePackageDetails() {
	$( '#jqm_packagedetails' ).jqmHide();
}

// Cart details

var initcartadd = false;
var initcartview = false;

function initCartView() {
	var div = $( '#jqm_cartview' );
	div.css( 'overflow' , 'auto' ).css( 'height' , 450 ).css( 'width' , 550 ).css( 'margin-left' , -231 ).css( 'z-index' , 4000 ).css( 'top' , '13%' );
	div.jqm( {
		closeClass:		'jqm_cview_close',
		trigger:		false,
		modal:			true
	} );

	initcartview = true;
}

function addToCart( add_itemid , quantity ) {
	if ( !initcartview ) initCartView();

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();

	var d = {
		itemid:		add_itemid,
		quant:		quantity,
		api:		'js',
		sessid:		getCookie( 'maximo_sessid' )
	};

	$.ajax( {
		url:		'/cart/add.php',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to add item to your cart. Please make sure you are still connected to the internet. <a href="#" onclick="addToCart( ' + add_itemid + ' , \'' + quantity + '\' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );
}

function closeCart() {
	$( '#jqm_cartview' ).jqmHide();
}

function viewCart() {
	if ( !initcartview ) initCartView();

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();

	var d = {
		api:		'js',
		sessid:		getCookie( 'maximo_sessid' )
	};

	$.ajax( {
		url:		'/cart/view.php',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to load your cart contents. Please make sure you are still connected to the internet. <a href="#" onclick="viewCart(); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );

	// prevent link from firing
	return true;
}

function editQuantity( itemid , quantity ) {
	var new_quantity = prompt( 'Please enter a new quantity:' , quantity );
	if ( new_quantity ) {
		new_quantity = parseInt( new_quantity );
		if ( new_quantity > 0 ) {
			setQuantity( itemid , new_quantity );
		}
		else alert( 'Invalid quantity entered.' );
	}
}

function setQuantity( edit_cartitemid , new_quantity ) {
	if ( !initcartview ) initCartView();

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();

	var d = {
		cartitemid:	edit_cartitemid,
		quant:		new_quantity,
		api:		'js',
		sessid:		getCookie( 'maximo_sessid' )
	};

	$.ajax( {
		url:		'/cart/modify.php',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to update your cart contents. Please make sure you are still connected to the internet. <a href="#" onclick="setQuantity( \'' + edit_cartitemid + '\' , \'' + new_quantity + '\' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );

	// prevent link from firing
	return true;
}

function checkoutJumpStep( step ) {
	$( '#co_jump_step' ).val( step );
	$( '#co_jump_form' ).submit();
}
