
/* -----------------------------------*/
/* --->>> onDOMReady Extension <<<----*/
/* -----------------------------------*/


Object.extend(Event, {
  _domReady : function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;

    if (this._timer)  clearInterval(this._timer);

    this._readyCallbacks.each(function(f) { f() });
    this._readyCallbacks = null;
},
  onDOMReady : function(f) {
    if (!this._readyCallbacks) {
      var domReady = this._domReady.bind(this);

      if (document.addEventListener)
        document.addEventListener("DOMContentLoaded", domReady, false);

        /*@cc_on @*/
        /*@if (@_win32)
            document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
            document.getElementById("__ie_onload").onreadystatechange = function() {
                if (this.readyState == "complete") domReady();
            };
        /*@end @*/

        if (/WebKit/i.test(navigator.userAgent)) {
          this._timer = setInterval(function() {
            if (/loaded|complete/.test(document.readyState)) domReady();
          }, 10);
        }

        Event.observe(window, 'load', domReady);
        Event._readyCallbacks =  [];
    }
    Event._readyCallbacks.push(f);
  }
});


/* TC YOUNG - SCRIPTS */
var TC={
	init:function() {
		TC.quickSearch();
		//TC.documentFilters.init();
	},

	quickSearch:function() {
		if(document.getElementById('quickSearchForm')) {
			$('quickSearchForm').observe('submit', function(e) {
				Event.stop(e);
				window.location = "/search/?s="+escape($F('quickSearch'));
			});
		}
	},

	documentFilters:{

		visible:false,

		init:function() {
			if(document.getElementById('documentSearchForm')) {
				$$('a[href=#filters]')[0].observe('click',TC.documentFilters.toggle);
				$('documentSearchForm').observe('submit', TC.documentFilters.submitted);

				if(!$('documentSearchForm').hasClassName('withFilters')) {
					$('filterOptions').hide();
					$$('#filterOptions input, #filterOptions select').each(function(el) {
						el.disabled = ($F(el).blank() || $F(el) == 0);
					});
				}
				TC.documentFilters.visible = $('documentSearchForm').hasClassName('withFilters');
			}
		},

		toggle:function(e) {
			Event.stop(e);
			TC.documentFilters.visible = !TC.documentFilters.visible;
			$$('#filterOptions input, #filterOptions select').each(function(el) {
				el.disabled = !(TC.documentFilters.visible);
			});
			Effect.toggle('filterOptions', 'blind', {duration:0.5});
		},

		submitted:function(e) {
			Event.stop(e);
			if($F('keywords').blank()) {
				$$('label[for=keywords]')[0].innerHTML = "Search Documents - <span class='error'>(Please enter at least 1 keyword)</span>";
				$('keywords').focus();
			} else {
				$$('#filterOptions input, #filterOptions select').each(function(el) {
					el.disabled = ($F(el) == 0 || $F(el).blank());
				});
				TC.documentFilters.setLocation();
			}
		},

		setLocation:function() {
			var qs = "?keywords="+escape($F('keywords'));
			$$('#documentSearchForm input[type=text], #documentSearchForm select').each(function(el) {
				if(!el.disabled) {
					if(el.name != "keywords" && el.name != "sd" && el.name != "sm" && el.name != "sy" && el.name != "ed" && el.name != "em" && el.name != "ey") {
						qs += "&"+el.name+"="+escape($F(el));
					}
				}
			});

			if(!$F('sd').blank() && !$F('sm').blank() && $F('sd') != 0 && $F('sm') != 0) {
				var sDate = $F('sd') + "-" + $F('sm') + "-";
				sDate    += (!$F('sy').blank() && $F('sy') != 0) ? $F('sy') : $('sy').options[1].value;
				qs += "&sdate="+escape(sDate);
			}

			if((!$F('ed').blank() && $F('ed') != 0) && (!$F('em').blank() && $F('em') != 0)) {
				var eDate = $F('ed') + "-" + $F('em') + "-";
				eDate    += (!$F('ey').blank() && $F('ey') != 0) ? $F('ey') : $('ey').options[1].value;
				qs += "&edate="+escape(eDate);
			}

			window.location="/documents/"+qs;
		}
	}
}


Event.onDOMReady(function() {
	TC.init();

	if($('topLink') != null) {
		var a = document.createElement('a');
		var txt = document.createTextNode("print page");

		a.href = "#print";
		a.title = "Print this page";
		a.appendChild(txt);

		$('topLink').appendChild(a);

		$(a).observe('click', function(e) {
			Event.stop(e);
			window.print();
		});
	}
});

//http://maps.google.com/maps?f=q&hl=en&geocode=&q=7+West+George+St,+Glasgow,+G2+1BA&sll=55.859726,-4.252405&sspn=0.008117,0.028667&ie=UTF8&ll=55.861796,-4.251698&spn=0.004058,0.014334&z=17&om=0
/* Google maps */
Event.observe(window, 'load', function() {
	if($('mapGlasgow') != null) {
		if (GBrowserIsCompatible()) {
			var mapGlasgow = new GMap2($("mapGlasgow"));
			var pointGlasgow = new GLatLng(55.861796, -4.251698);
			mapGlasgow.setCenter(pointGlasgow, 15);
			mapGlasgow.addOverlay(new GMarker(pointGlasgow));
		}
	}
	if($('mapEdinburgh') != null) {
		if (GBrowserIsCompatible()) {
			var mapEdinburgh = new GMap2($("mapEdinburgh"));
			var pointEdinburgh = new GLatLng(55.95328, -3.20001);
			mapEdinburgh.setCenter(pointEdinburgh, 16);
			mapEdinburgh.addOverlay(new GMarker(pointEdinburgh));
		}
	}
});