var searchFX;
var categoryFX;

/* Failsafe for non-Firebug browsers */
if (!window.console || !console.firebug) {(function (m, i) {window.console = {};	while (i--)	window.console[m[i]] = function () {};})('log debug info warn error assert dir dirxml trace group groupEnd time timeEnd profile profileEnd count'.split(' '),16);}

function errorMsg(msg){
	if ( Browser.Platform.ipod ) alert(msg);
	else var comModal = new fbPopup({'title':'Error:', data:msg, offsetTop: -50, closeButton:true, overlayEscapes:true});
}

function postJSON(myurl, mydata, func){
	var myRequest = new Request({method: 'post', url: myurl,onSuccess: function(response){	var result = $try(function(){return myObject = JSON.decode(response);},function(){ return false;});
	if (result){ func(result);} else{errorMsg(response);}},onFailure: function(response){hideAjax();errorMsg('Error retrieving data from '+myurl);}}).send(mydata);
}

window.addEvent('domready', function(){
	$(document.body).getElements('.fancySel').each(function(item){ var mySelect = new elSelect( {container : item} );});
	if ($('regAccor')){
		var displEl = -1;
		$('regAccor').getElements('ul.element').each(function(ulEl){
			if (ulEl.getElement('li.selected')) { displEl = ulEl; return; }
		});
		var myAccordion = new Accordion($('regAccor'), 'span.toggler', 'ul.element', {
			opacity: true,
			alwaysHide:true,
			display: displEl,
			onActive: function(toggler, element){toggler.setStyle('cursor', 'default')},
			onBackground: function(toggler, element){toggler.setStyles({'cursor':'pointer'})}
		});
	}
	if ($('categorySelector')){
		$('categorySelector').getElements('a').each(function(elm){
			if (elm.get('title') != null){
				elm.set('title', elm.get('title')+'...');
				//~ var myTips = new Tips(elm,{'text':'title','className':'cattip','showDelay': '300', 'onShow':function(elm){elm.setStyles({'visibility': 'visible', 'opacity': '0.8'})}});
				var myTips = new Tips(elm, {'title':false,'text':'title','className':'cattip','showDelay': '300'});
			}
		});
	}
	
	$(document.body).getElements('div.blisting').each(function(elm){
		var addElm = elm.getElement('li.addli');
		if (!addElm) return;
		addElm.store('business', elm.getElement('h3').get('html'));
		addElm.store('address', addElm.get('title'));
		addElm.store('displayAddress', addElm.get('title').replace(/,/g, '<br />'));
		addElm.set('html', '<a href="javascript:;">Address</a>')
		addElm.addEvent('click', function(){
			var block = new Element('div');
			block.set('html', addElm.retrieve('displayAddress'));
			var link = new Element('a', {'style':'font-size:0.8em;margin-left:10px;', 'html':'(View online map)', 'target':'_blank', 'href': 'http://maps.google.com/maps?q='+encodeURI(addElm.retrieve('address')+', New Zealand')});
			link.inject(block);
			var comModal = new fbPopup({'title':addElm.retrieve('business'), data:block, offsetTop: -50, closeButton:true, overlayEscapes:true});
		});
		//~ var myTips = new Tips(addElm,{'text':'title','className':'cattip','showDelay': '300', 'onShow':function(elm){elm.setStyles({'visibility': 'visible', 'opacity': '0.8'})}});
		var myTips = new Tips(addElm,{'title':false,'text':'title','className':'cattip','showDelay': '300'});
	});
	var f = new Element('a', {'href':'http://www.facebook.com/pages/North-Shore/PlanetCard/112015398834651','class':'fblink','html':'Join Us On<br />Facebook'}).inject($('tm'), 'top');
	fixTargets();	
});

function toggleSearch(){
	if ($('ms').hasClass('selected')){
		$('ms').removeClass('selected');
		searchFX.slideOut();
	} else {
		$('ms').addClass('selected');
		searchFX.slideIn();
	}
}

function printListings(printTxt){
	var qryBlck = new Element('div');
	var qstn = new Element('p', {'html': 'What would you like to print?'}).inject(qryBlck);
	var thisPage = new Element('input', {'class':'button btnblock', 'type':'button','value':'All businesses on this page',events:{
		'click': function(){
			var myRef = window.open(window.location+'&print=page','mywin', 'left=20,top=20,width=500,height=500,scrollbars=1,toolbar=0,resizable=1');
			printModal.destruct();
		}
	}}).inject(qryBlck);
	if (printTxt){
		var allPages = new Element('input', {'class':'button btnblock', 'type':'button','value':'All businesses in this category',events:{
			'click': function(){
				var myRef = window.open(window.location+'&print=all','mywin', 'left=20,top=20,width=500,height=500,scrollbars=1,toolbar=0,resizable=1');
				printModal.destruct();
			}
		}}).inject(qryBlck);
	}
	var printModal = new fbPopup({'title':'Print', data:qryBlck, offsetTop: -50, closeButton:true, closeButtonText:'Cancel', overlayEscapes:true});
}

function fixTargets(){$(document.body).getElements('a').each(function(e){var hr=e.get('href');if(hr!=null && hr.match(/^http:\/\//g)) e.set('target','_blank');});}

function inputToMultiLine(el, chars){
	if (el){
		var curName = el.name;
		var curVal = el.value;
		var cntDis;
		var newEl = new Element('textarea', {'rows':'3', 'name':curName, 'value':curVal, events:{
			'keypress': function(event){if(event.key == 'enter') return false;},
			'keyup': function(){
				var y=newEl.value;
				var z = y.length;
				var x = chars - z;
				cntDis.set('html', x);
				if (z > chars) { cntDis.setStyle('color','#D40D12');}
				else if (z > (chars - 21)) { cntDis.setStyle('color','#5C0002'); }
				else { cntDis.setStyle('color','#CCC'); }
			}
		}}).replaces(el);
		var cntDis = new Element('span', {'class':'counter'}).inject(newEl, 'after');
		newEl.fireEvent('keyup');
	}
}
