var openWhereToBuy = function(URL){
	if($('close-iframe1')) $('close-iframe1').fireEvent('click');
	if($('close-reviews')) $('close-reviews').fireEvent('click');
	
	var wrapper = new Element('div',{
		id: 'iframe-wrap1',
		styles: {
			opacity: 0
	    }
	});
	wrapper.fx = new Fx.Tween(wrapper);
	
	var iframe = new Element('iframe',{
		id: 'iframe1',
	    src: URL
	}).inject(wrapper);
	var closeLink = new Element('a',{
		id: 'close-iframe1',
		text: 'CLOSE WINDOW X',
		events: {
			click: function(e){
				if(e) e.preventDefault();
				wrapper.fx.start('opacity', 0).chain(function(){
					wrapper.destroy();
				});
			}	
		}
	}).inject(wrapper);
	
	wrapper.inject($('canvas')).fx.start('opacity', 1);
}

var openReviews = function(ID){
	
	if($('BVCustomerRatings')) $('BVCustomerRatings').destroy();
	if($('BVReviewsContainer')) $('BVReviewsContainer').destroy();
	
	var wrapper = new Element('div',{
		id: 'reviews',
		styles: {
			opacity: 0
	    }
	});
	wrapper.fx = new Fx.Tween(wrapper);
	
	wrapper.ratings = new Element('div',{
		id: 'BVCustomerRatings'
	}).inject(wrapper);
	wrapper.reviews = new Element('div',{
		id: 'BVReviewsContainer'
	}).inject(wrapper);
	
	var closeLink = new Element('a',{
		id: 'close-reviews',
		text: 'CLOSE WINDOW X',
		events: {
			click: function(e){
				if(e) e.preventDefault();
				wrapper.fx.start('opacity', 0).chain(function(){
					wrapper.destroy();
				});
			}	
		}
	}).inject(wrapper);
	
	wrapper.inject($('canvas')).fx.start('opacity', 1);
	bvLoadRR(ID);
}

//need this flag to make it work on Safari
var shouldHideOverlay = true;

/*
  Hide the bodyglide flash overlay
*/
function hideOverlay(e){

  //stop event bubbling
  if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();

  if(!shouldHideOverlay){
    return;
  }
  
  var flash = document.getElementById("BodyGlide");
  if(flash){
    flash.hideOverlay();
  }
}


/** This is high-level function.
 * It must react to delta being more/less than zero.
 */
function handle(delta) {
	var flash = document.getElementById("BodyGlide");
        flash.scrollOverlay(delta);
}

/** Event handler for mouse wheel event.
 */
function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta)
                handle(delta);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


/*
  Initialize HTML elements event
*/
function initEvents(){

  //alert(BrowserDetect.OS);
  if(BrowserDetect.OS == 'Mac'){

	/** Initialization code. 
 	* If you use your own event management code, change it as required.
 	*/
	if (window.addEventListener)
        	/** DOMMouseScroll is for mozilla. */
        	window.addEventListener('DOMMouseScroll', wheel, false);
	
	/** IE/Opera. */
	window.onmousewheel = document.onmousewheel = wheel;
  }


  document.onclick = function(e){hideOverlay(e);};

  var body = document.getElementsByTagName("body")[0];
  if(body)
    body.onclick = hideOverlay;
  
  var canvas = document.getElementById("canvas");
  if(canvas)
    canvas.onclick = hideOverlay;
    
  document.onclick = function(e){hideOverlay(e);};
  
  var flash = document.getElementById("BodyGlide");
  flash.onmouseover = function(){
    if(shouldHideOverlay){
      shouldHideOverlay = false;
    }
  };
  flash.onmouseout = function(){
    if(!shouldHideOverlay){
      shouldHideOverlay = true;
    }
  };
}

