/*
/* Add Event modified from dustindiaz.com
*/
var acloaded = false;

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
		EventCache.add(obj, type, fn);
	}	else if (obj.attachEvent) {
		var t = type+fn;
		obj["e"+type+fn] = fn;
		obj[t] = function () { obj["e"+t]( window.event ); };
		obj.attachEvent( "on"+type, obj[t] );
		EventCache.add(obj, type, fn);
	} else obj["on"+type] = obj["e"+type+fn];
};
EventsCache = function () {
	s = this;
};
EventsCache.prototype = {
	listEvents : [],
	add : function (node, sEventName, fHandler){ s.listEvents.push(arguments); },
	flush : function(){
		for (var i = s.listEvents.length; i > 0;i--) s.remove(s.listEvents[i-1]);
	},
	remove : function(item){
		//var item = s.listEvents[i];
		if(item[0].removeEventListener) item[0].removeEventListener(item[1], item[2], item[3]);
		if(item[1].substring(0, 2) != "on")	item[1] = "on" + item[1];
		if(item[0].detachEvent) item[0].detachEvent(item[1], item[2]);
		item[0][item[1]] = null;
	}
};
function cancelEvent(e) {
    if(!e) e = window.event;
    if (typeof e.stopPropagation != 'undefined') {
    	e.stopPropagation(); e.preventDefault();
    } else if (typeof e.preventDefault != 'undefined')	{
        e.preventCapture(); e.preventDefault(); e.preventBubble();
    } else {
			e.cancelBubble = true;
      e.returnValue = false;
    }
};
var EventCache = new EventsCache();
addEvent(window,'unload', EventCache.flush);
 /* end addevent shiz */

 function $gbid() { // getElementById
	function $e(el){ return (typeof(el) == 'string') ? document.getElementById(el) : el; };
	if (arguments.length == 1) return $e(arguments[0]);
	for (var i = 0,arg = arguments.length,el = []; i < arg; i++ ) el.push($gbid(arguments[i]));
	return el;
};
function $$(c, tag, root){ // getElementByClassName
		root = (!root) ? document : $gbid(root);
		tag = (!tag) ? '*' : tag.toUpperCase();
    var a = [];
    var re = new RegExp('(^| )' + c + '( |$)');
    var el = root.getElementsByTagName(tag);
    for (var i=0,l=el.length; i<l; i++) if (re.test(el[i].className)) a.push(el[i]);
    return a;
};

function xhr(){};
xhr.prototype = {
	xh: '',
	init: function (){
		try { return new XMLHttpRequest(); }
		catch (e) { try { return new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (e) { return false; } } }
	},
	conn: function (uri, vars, fc, m, sync){
		xh = this.init();
		if (xh){
			var sync = (!sync) ? true : false;
			var m = (!m || (m.toUpperCase() == "get")) ? 'GET' : 'POST';
			var openuri = (m == "GET" && vars != '') ? uri+'?'+vars : uri;
			xh.open(m, openuri, sync);
			if (m == 'POST')	xh.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xh.onreadystatechange = function(){ if (xh.readyState == 4 && fc) fc(xh); };
			xh.send(vars);
			return true;
		} else return false;
	}
};

function xhrForm (objE, getUrl, callBack) {
		var obj;
		obj = $gbid(objE);
		$gbid('one').style.display = "block";
		$gbid('one').innerHTML = "Submitting Form";
		var buttan = $gbid('submit');
		if (buttan){
			buttan.oldValue = buttan.value;
			buttan.value = "Saving...";
			buttan.disabled = "disabled";
		}
      var getstr = "";
      for (i=0; i<obj.elements.length; i++) {
         if (obj.elements[i].tagName == "INPUT") {
            if ((obj.elements[i].type == "text" || obj.elements[i].type == "password") || obj.elements[i].name == "content") {
               getstr += obj.elements[i].name + "=" + obj.elements[i].value.escape() + "&";
            }
            if (obj.elements[i].type == "checkbox") {
               if (obj.elements[i].checked) {
                  getstr += obj.elements[i].name + "=1&";

               } else {
                  getstr += obj.elements[i].name + "=0&";
               }
            }
            if (obj.elements[i].type == "radio") {
               if (obj.elements[i].checked) {
                  getstr += obj.elements[i].name + "=" + obj.elements[i].value.escape() + "&";
               }
            }
            if (obj.elements[i].type == "hidden") {
            	if (FCKeditorAPI && FCKeditorAPI.GetInstance(obj.elements[i].name)){
        				getstr += obj.elements[i].name + "=" + FCKeditorAPI.GetInstance(obj.elements[i].name).GetXHTML().escape() + "&";
            	}

            }
         }
         if (obj.elements[i].tagName == "SELECT") {
            var sel = obj.elements[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value.escape() + "&";
         }
         if (obj.elements[i].tagName == "TEXTAREA") {
               getstr += obj.elements[i].name + "=" + obj.elements[i].value.escape() + "&";
         }
      }
				var x = new xhr();
				x.conn(getUrl, getstr, function (x){
					$gbid('one').innerHTML = x.responseText;
					var buttan = $gbid('submit');
					buttan.value = buttan.oldValue;
					buttan.disabled = false;
				}, "POST");

				return false;
			};

function xhrButton (getURL){
		$gbid('one').style.display = "block";
		$gbid('one').innerHTML = "Submitting...";
	var x = new xhr();
	x.conn(getURL, "", function (x){
		$gbid('one').innerHTML = x.responseText;
	}, "POST");
};

function xhrPost (getURL, params){
		$gbid('preTag').innerHTML = "Submitting...";
	var x = new xhr();
	x.conn(getURL, params, function (x){
		$gbid('preTag').innerHTML = x.responseText;
	}, "POST");
};

String.prototype.stripSlashes = function (){ return this.replace(/\\(\"|\')/g, 1); };
String.prototype.stripTags		= function (){ return this.replace(/<\/?[^>]+>/gi, ''); };
String.prototype.escape    		= function (){ return escape(this); };
String.prototype.unescape  		= function (){ return unescape(this); };
String.prototype.ucFirst 			= function (){ return this.substr(0,1).toUpperCase() + this.substr(1, this.length); };
function isset(varname){
  return(typeof(window[varname])!='undefined');
};

function hasClass( element, className ) {
	return element.className.match( '\\b' + className + '\\b' );
}

function addClass( element, className ) {
	if( !element.className.match( '/\\b' + className + '\\b/' ) )
		element.className += ' ' + className;
}

function removeClass( element, className ) {
	element.className = element.className.replace( new RegExp( '\\b' + className + '\\b', 'g' ), '' );
}
function FindXY(obj){
	var x=0,y=0;
	while (obj!=null){
		x+=obj.offsetLeft-obj.scrollLeft;
		y+=obj.offsetTop-obj.scrollTop;
		obj=obj.offsetParent;
	}
	return {x:x,y:y};
}
function addToMailingList (email, name){
	email = email.stripTags();
	name = name.stripTags();
	var getstr = "name=" + name + "&email=" + email;
	var x = new xhr();
	x.conn("/xhr/maillist/", getstr, function (x){
		$gbid('mailListConfirm').innerHTML = x.responseText;
	}, "POST");
};
function addToBasket (id){
	var x = new xhr();
	var getstr = "id="+id;
	x.conn("/xhr/addBasket/", getstr, function (x){
		var thumb = document.createElement('IMG');
		thumb.src = x.responseText;
		thumb.className = 'preview';
		var ibImage = document.createElement('IMG');
		ibImage.src = '/images/inBasket.gif';
		ibImage.alt = 'This item is in your basket';
		$gbid('ib_'+ id).appendChild(ibImage);
		$gbid('cart').insertBefore(thumb, $gbid('cart').lastChild);
	}, "POST");
};

function updatePrice(){
	var priceList = $$('price', 'span', 'contentHolder');

	var price = 0;
	for (i=0; i<priceList.length; i++) {
		quantity = $gbid(priceList[i].getAttribute('quantID')).value;
	 	price += (priceList[i].innerHTML*1)*(quantity*1);
	}
	$gbid('priceTotal').innerHTML = price.toFixed(2);
}
function saveCheckout (id){
	var priceSelected = $gbid('item_'+id).value;
	var quantity = $gbid('quantity_'+ id).value;
	var priceEle = $gbid('price_'+id);
	var x = new xhr();
	x.conn("/xhr/updateCart/id="+id+"&quantity="+quantity+"&price="+priceSelected, "", function (x){
		priceEle.innerHTML = x.responseText;
		updatePrice();
	}, "POST");
}

addEvent(window, 'load', function(){
		//	if ($gbid('priceTotal').innerHTML) updatePrice();
});


var bounds; // holds the map bounds
function createIcon (iconName){
	if (!iconName) iconName = "tolet";
	var icon = new GIcon();
	icon.image = "/images/map_icons/" + iconName + "_icon.png";
	icon.shadow = "/images/map_icons/" + iconName + "_icon.png";
	icon.iconSize = new GSize(17, 17);
	icon.shadowSize = new GSize(1, 1);
	icon.iconAnchor = new GPoint(7, 7);
	icon.infoWindowAnchor = new GPoint(5, 1);
	return icon;
};

function createMarker(point, infoTabs, iconName, open) {
	bounds.extend(point);
	var marker = new GMarker(point, createIcon(iconName));
	map.addOverlay(marker);
	map.setZoom(map.getBoundsZoomLevel(bounds));
	map.setCenter(bounds.getCenter());
	if (!open && infoTabs) marker.openInfoWindowTabsHtml(infoTabs);
	if (infoTabs) {
	GEvent.addListener(marker, "click", function(){
	 	marker.openInfoWindowTabsHtml(infoTabs);
		//marker.showMapBlowup();
		map.setCenter(marker.getPoint());
	});
	}
};

function createMap (el){
	var map = new GMap2($gbid(el));
	map.setCenter(new GLatLng(53.448193,-2.331419), 13);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10, 10)));
	map.setMapType(G_HYBRID_TYPE);
	bounds = new GLatLngBounds();
	return map;
};
var oEditor;
function FCKInsert(text) {
	if (!oEditor) oEditor = FCKeditorAPI.GetInstance('content');
	//oEditor.Commands.GetCommand('Link').Execute();
	oEditor.Focus();
	oEditor.InsertHtml(text + " ");
};
function FCKGetHTML () {
	if (!oEditor) oEditor = FCKeditorAPI.GetInstance('content');
	alert(oEditor.GetXHTML());
};