if( hq == undefined ) {
        var hq = {};
}

hq.clipboards = {

	cbUrl : null,
	clipboards : null,

        init : function() {
                console.group( 'clipboards::init' );

		this.cbUrl = $j('#pluginPath').val() + '/ajax.php?';
		this.getClipboards();
		cb = this;

		$j('#contentWrapper').bind( 'paneLoaded', 
		function() {
			$j('.clipboardLink').click(toolbox.delegate(cb.onCBLink, cb));
		} );
	
		$j('.clipboardLink').click(toolbox.delegate(this.onCBLink, this));


		$j( '#contentWrapper' )
                        .bind( 'logIn', toolbox.delegate( this.getClipboards, this ) )
			.bind('logOut', toolbox.delegate( this.getClipboards, this))
			.bind( 'postPaneLoad', toolbox.delegate( this.process, this) )
			.bind('lbLoaded', toolbox.delegate(this.process, this))
			.bind( 'updateClipboards', toolbox.delegate( this.getClipboards, this ) )
			.bind( 'refreshPage', toolbox.delegate(this.refreshPage, this));

//		$j('.addCBBtn').bind('click.cb2', toolbox.delegate(this.onAddCB, this));

		this.dom = $j('body').append('<div id="clipboardMenuWrap"></div>');	
		this.process();
                console.groupEnd();
        },

	refreshPage : function(evt) {
		console.group('Clipboards::refreshPage');

		console.groupEnd();
	},

	process: function(evt) {
		console.group('Clipboards::process');
		$j('.hq_idx_saveLink').unbind('click.cb');
		$j('.hq_idx_saveLink').bind('click.cb', toolbox.delegate(this.onSaveLink, this));
		//$j('.hq_idx_saveLink').click(toolbox.delegate(this.onSaveLink, this));
		$j('.delBtn').click(toolbox.delegate(this.onDeleteLink, this));
//		$j('#ssSubmitBtn').click(toolbox.delegate(this.getClipboards, this));


		$j('.delCBBtn').unbind('click').click(toolbox.delegate(this.onDelCB, this));

		$j('.clipboardLink').unbind('click').click(toolbox.delegate(this.onCBLink, this));
	
		$j('.addCBBtn').unbind('click.cb2').bind('click.cb2', toolbox.delegate(this.onAddCB, this));

		console.groupEnd();
	},

	onAddCB : function(evt) {
		console.group('Clipboards::onAddCB');
		var elem = evt.target;
		var href = $j(elem).attr('href');
		var postUrl = $j('#permalinkUrl').val();

		if(href.indexOf('?')==-1)
			href += '?';

//		href += '&postUrl=' + postUrl;

		hq.ajax.loadLink(href);
		
		console.groupEnd();
		return false;
	},

	onDelCB : function(evt) {
		if(confirm('Are you sure you want to delete this scrapbook?')) {
			var elem = evt.target;
	             	var href = $j(elem).attr('href');
			var cbId = $j(elem).attr('cbId');
			 hq.ajax.loadLink(href);

			$j('#cb_' + cbId).parent().remove();


        	        var overlays = $j('.overlay');
			var id = null;

			for(var i=0; i<overlays.length;i++) {
				if($j(overlays[i]).attr('default'))
					$j(overlays[i]).trigger('click');
			}

			


		//	return true;
		}

		return false;
	
	},

	onCBLink : function(obj) {
		var elem = obj.target;
		var id = $j(elem).attr('id');

		if($j(elem).hasClass('ajaxBypass'))
                        return true;

		if(id) {
			id = id.substr(3);
		} else {
			return false;
		}

		var event = jQuery.Event('layerChange');
                event.id = null;
                event.layerLocation = '';
                event.noLayer = true;
		event.noClear = false;

		$j('img.layerCheck').parents('li:first').css('background-color', '');
		$j('img.layerCheck').hide();
		$j('a.overlay').removeClass('activeLayer');
		$j('#contentWrapper').trigger(event);


		var url = this.cbUrl + 'cbOp=load&cbId=' + id + '&doZoom=1';
		hq.ajax.loadLink(url);	

		return false;
	},

	onDeleteLink : function(evt) {
		console.group('Clipboard::onDeleteLink');

		var listingIds = []; $j('input[name="listingIds\[\]"]:checked');
                var id = $j('#cbId').val();
                var tmp = '';

		$j('input[name="listingIds\[\]"]:checked').each(function(i) {
                                listingIds.push($j(this).val());
                });

                hq.ajax.loadLink('/wp-content/plugins/hq_idx/listings/actions/clipboards.php?cbOp=del&mlsIds=' + listingIds.join(',') + '&cbId=' + id);

		console.groupEnd();

		return false;
	},

	onSaveLink : function(evt) {
		console.group('Clipboards::onSaveLink');
		var tgt = $j(evt.target);

		// Are we adding multiple listings or a single listing?
		var type = tgt.attr('id')=='listSaveBtn' ? 'multi' : 'single';

		// Conntinue with normal behavior if we only have one clipboard or we are not logged in	
		if(!this.clipboards || this.clipboards.length<2)
		{
			if(this.clipboards && this.clipboards.length==0) {
				var createUrl = $j('#pluginPath').val() + '/listings/actions/clipboards.php?cbOp=create';
				var postUrl = $j('#permalinkUrl').val();
		//		createUrl += '&postUrl=' + postUrl;
				hq.ajax.loadLink(createUrl);

				return false;
			}
			var url = null;

			if(type=='single') {
				url = tgt.attr('href');
				if(!url)
					url = tgt.parents('a:first').attr('href');
			}
			else if(type=='multi') {
				hq.ajax.onSubmit(evt);
				console.groupEnd();
				return false;
			}
				
			if(url) {
				hq.ajax.loadLink(url);
				console.groupEnd();
				return;
			}

		}

		evt.stopPropagation();
		var listingIds = [];

		if(type=='single') {
			var tmp = tgt.parents('a:first').attr('id');
			if(!tmp)
				tmp = tgt.attr('id');

			if(tmp) {
				tmp = tmp.substr(4);
				listingIds.push(tmp);
			} 
			
			
		}
		else if(type=='multi') {
			$j('.hq_idx_listingCheck:checked').each(function(i) {
				listingIds.push($j(this).val());	
			});
		}

		if(listingIds.length <=0)
			return false;			
			
		var IE = document.all?true:false;
	

		if (IE) { // grab the x-y pos.s if browser is IE
			tempX = event.clientX + document.body.scrollLeft;
			tempY = event.clientY + document.body.scrollTop;
		}
		else {  // grab the x-y pos.s if browser is NS
			tempX = evt.pageX ;
			tempY = evt.pageY ;
		}

		$j('body').append(this.tpl);

		var cb = this;

		// Close the menu if the user clicks outside of the div
		$j(document).unbind('click.cb2');
		$j(document).bind('click.cb2', function(e) {
	                var $clicked=$j(e.target); // get the element clicked
        	        if($clicked.is('.clipboardsMenu') || $clicked.parents().is('.clipboardsMenu')) { 
				if($clicked.is('#cbSubmit')) {
					cb.submit(e, listingIds);
					return false;
				}
				else if($clicked.is('.addCBBtn')) {
					cb.onAddCB(e);
					return false;
				}

                	        console.info('CB Click'); // here you should do anything
				return true;
	                } else { 
				cb.close();
	                }
        	});

		$j('.addCBBtn').unbind('click.cb');
                $j('.addCBBtn').bind('click.cb', toolbox.delegate(this.onAddCB, this));

		// Set the xy for the menu to be the location of the mouse click
		$j(".clipboardsMenu").css('top', tempY);
		$j(".clipboardsMenu").css('left', tempX);

		$j('#cbSubmit').click(toolbox.delegate(this.submit, this, listingIds));
		$j('.cbClose').click(toolbox.delegate(this.close, this));
//		$j('#addCBBtn').click(toolbox.delegate(hq.ajax.onLink, hq.ajax));	
	
		console.groupEnd();

		return false;
	},

	close : function() {
		console.group('Clipboards::close');
		$j('.clipboardsMenu').hide();
//		$j('.clipboardsMenu').remove();
		console.groupEnd();
	},

	submit : function(evt, listingIds) {
		console.group('Clipboards::submit');
		var checked = $j('.cb_select:checked').get();
		var ids = [];
		var tmp = '';

		for(var i=0; i<checked.length; i++) {
			tmp = $j(checked[i]).attr('id');
			tmp = parseInt(tmp.substr(10));
			ids.push(tmp);
		}

		var idStr = listingIds.join(',');
		if(!idStr || idStr=="") {
			var newId = $j('.hq_idx_mlsHeader').html();
			if(newId)
				idStr = newId.replace(/\D/g, '');
		}

	
		//var url = '/wp-content/plugins/hq_idx/listings/actions/clipboards.php?cbOp=add&mlsIds=' + listingIds.join(',') + '&cbIds=' + ids.join(','); //+ '&postUrl=' + base64Encode($j('#permalinkUrl').val());
		var url = this.cbUrl + 'cbOp=add&mlsIds=' + idStr + '&cbIds=' + ids.join(','); //  '&postUrl=' + $j('#permalinkUrl').val();

		$j.ajax({
                                url : url,
                                success : toolbox.delegate( this.onFavAdd, this, listingIds)
                });

		var $cb = $j('.clipboardsMenu').html("  <table>        <tr><td><strong>Your listing(s) have been saved</strong></td><td><a href='#' class='cbClose hq_idx_disabled' style='float: right;'>[x]</a></td></tr></table>");
		$j('.cbClose').click(toolbox.delegate(this.close, this));
		$cb.animate( { opacity : 1 }, 3000, 'linear', toolbox.delegate( this.close, this ) );

		for(var i=0; i<listingIds.length;i++) {
			$j('.lab_' + listingIds[i]).find('.saveIcon').attr('src', $j('#pluginPath').val() + '/images/listings/fav_star.png');
		}
	
		console.groupEnd();			
		
		return false;
	},

	onFavAdd : function(res, status, xhr, listingIds) {
		console.group('Clipboards::onFavAdd');
		for(var i=0; i<listingIds.length; i++) {
			$j('#mls_'+listingIds[i]).find(".itemActionIcon").attr('src','http://pluginimages.s3.amazonaws.com/listings/fav_star.png').parent("td").next("td").text('In Scrapbook');
		}
		console.groupEnd();
	},

	// Retrieve the clipboards for the active user
	getClipboards : function() {
		cb = this;
		$j.ajax({
                  	url : $j('#pluginPath').val() + '/utilities/clipboard.php',
			dataType: "json",
                        success : function(res) {
				cb.tpl = res.tpl;
				cb.clipboards = res.cbs;
                        }//toolbox.delegate( this.process, this),
                  });

	}
	
}

$j(document).ready(toolbox.delegate(hq.clipboards.init, hq.clipboards));

