/*
* Convert request from tinymce lb into shortcodes
*/

	var layerUrl  = jQuery('#pluginPath').val()  + '/utilities/get-layer-objects.php';


	// Handle shortcode insertions
	jQuery('#listingInsert').click(function() {
			
			var tagtext = '';
			var type = jQuery('#searchType').val();
			
			switch(type) {
				// Comma separated ids
				case 'listingids' :
					var listingIds = jQuery.trim(jQuery('#listingIds').val());

					tagtext = '[listingsearch';

					if(listingIds) {
						listingArr = listingIds.split(',');
						for(var i=0; i < listingArr.length; i++) {
							if(isNaN(parseInt(listingArr[i]))) {
								jQuery('#errorBox').html('Invalid listing id(s)').show();
								return false;
							}
						}

						tagtext += ' type="' + type + '"';
						tagtext += ' listingids="' + listingIds + '"';
						tagtext += ']';
					} else {
						jQuery('#errorBox').html('Invalid listing id(s)').show();
						return false;
					}

					break;
				
				// Search by layer and multiple objects within that layer
				case 'map' : 
				case 'layers' : 
					var layerId = jQuery('#hq_idx_layerSelect').val();
					var objIds = [];
					var objs = jQuery('input[name="layerObject[]"]:checked');	
					var orderby = jQuery('#selectOrderBy').val();
					var order = jQuery('#selectOrder').val();
					var lp = parseInt(jQuery('input[name="lowPrice"]').val());
					var hp = parseInt(jQuery('input[name="highPrice"]').val());
					var pType = jQuery('select[name="type"]').val();

					tagtext = (type=='map') ? '[hqidxmap' : '[listingsearch'		

					if(objs && objs.length>0) {
						for(var i=0; i < objs.length; i++) {
							objIds.push(jQuery(objs[i]).val());
						}
					} else {
                                            if(type=='layers')
                                                 return false;
                                        }

					// Layer and object(s)
					tagtext += ' type="' + type + '"';
					tagtext += ' layerid="' + layerId + '"';
					tagtext += ' hqid="' + objIds.join(',') + '"';
			
					// Ordering
					if(orderby) 
						tagtext += ' orderby="' + orderby + '"';
					
					if(order)
						tagtext += ' order="' + order + '"';

					// Filters
					if(!isNaN(lp))
						tagtext += ' lp="' + lp + '"';

					if(!isNaN(hp))
						tagtext += ' hp="' + hp + '"';
					
					if(pType && pType.length) {
						tagtext += ' ptype="' + pType.join(',') + '"';
					}

					tagtext += ']';
			
					break;

				// Saved search or clipboard
				case 'sscb' :
					var searchSelect = jQuery('input[name="searchSelect"]:checked').val();
					var orderby = jQuery('#selectOrderBy').val();
					var order = jQuery('#selectOrder').val();
					var limit = parseInt(jQuery('#listingLimit').val());

					tagtext = '[listingsearch';

					if(!searchSelect) return false;					
					

					if(searchSelect=='cb') {
						var cbid = jQuery('#agentClipboards').val();
						tagtext += ' type="cb"';
						tagtext += ' cbid="' + cbid + '"';
						
					} else if(searchSelect=='ss') {
						var ssid = jQuery('#agentSavedSearches').val();
						tagtext += ' type="ss"';
						tagtext += ' ssid="' + ssid + '"';
					} else {
						return false;
					}

					// Ordering
					if(orderby) 
						tagtext += ' orderby="' + orderby + '"';
					
					if(order)
						tagtext += ' order="' + order + '"';
		
					// Limit
					if(!isNaN(limit)) 
						tagtext += ' limit="' + limit + '"';
					

					tagtext += ']';

					break;

				default: 
					tinyMCEPopup.close();
					return false;
					
			}	

			window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, tagtext);
	
			tinyMCEPopup.editor.execCommand('mceRepaint');
			tinyMCEPopup.close();

			return false;
	});

	// Close the lightbox
	jQuery('#listingCancel').click(function() {
			tinyMCEPopup.close();
	});

	// Generate object select table
        jQuery('#hq_idx_layerSelect').change(function() {
        				jQuery('.hq_idx_filtersWidget .hq_idx_imgLoadingWidget').show();
                        var postLayer = jQuery('#postLayer').val();
                        var postObject = jQuery('#postObject').val();
                        var selected = '';


                        var layerName = jQuery(this+':selected').html();
                        var layerId = jQuery(this).val();

                        if(postLayer==layerId) {
                                selected = postObject;
                        }

                        if(layerId) {
                                jQuery.ajax({
                                        url : layerUrl,
                                        dataType: 'json',
                                        data : {
                                                layerId: layerId,
                                                selectedObjs: selected
                                        },

                                        success : function(res) {
                                                var html = [];
                                                html[html.length] = '<label>' + layerName + '</label>';
                                                html[html.length] = res;

                                                jQuery('#objectSelect').html(html.join(''));
                                                jQuery('#objectSelect').show();
                                                jQuery('.hq_idx_filtersWidget .hq_idx_imgLoadingWidget').hide();
                                        }
                                });

                        } else {
                                jQuery('#objectSelect').hide();
                                jQuery('.hq_idx_filtersWidget .hq_idx_imgLoadingWidget').hide();
                        }
        });

        jQuery('#hq_idx_layerSelect').trigger('change');


