var CartContent;
var ActiveTab = 1;
var processingpayment = false;
var timeout = null;
var ac = null;
var messagebox = null;
var LastIndex = 1;
var CartIndex = 1;
var searchresult;

var Selector = {
	ActiveTab: 0,
	Scale: 620,
	Up: function()
	{
		Selector.Scale = 445;
		Selector.MoveItV(-1);
	},
	Down: function()
	{
		Selector.Scale = 445;
		Selector.MoveItV(1);
	},
	MoveItV: function(Direction)
	{
		var Change,myFx;
		var target = $("select");
		myFx = new Fx.Morph(target, {'duration': 800});
		var divide = 2;
		var nodes = 4;
		var t = 0;
		var items = [];
		items = ($$('#select p'));
		var childNodes = items.length;
		var leftover = childNodes%nodes;
		var max =(( childNodes-leftover)/nodes);
		if(leftover > 0) { max = max+1;}
		if(max == 1)
		{
		}
		else
		{
			decrease = (max < 1)?1:max-1;
			max = -(decrease*Selector.Scale);
		var Boundary = (Direction == -1)?'0':(max);
		var a = target.getStyle('margin-top');
		a = a.substring(0,a.indexOf("px"));
		if(Boundary != a )
		{
			Change = (Direction==1)?-(LastIndex):-(LastIndex-2);
			Change = Change * Selector.Scale;
			LastIndex = (Direction==1)?(LastIndex+1):(LastIndex-1);
			if(Direction == -1 && LastIndex === 0){}
			if(LastIndex < 0){LastIndex = 0;}
			myFx.start({'margin-top': Change + 'px'});	
		}
		}
	}
};


var Cart = {
	CurrencyType : "&euro;",
	PriceList :  "",
		Buy : "BUY",
	Item : "SONG",
	Items : "SONGS",
	Product : "ALBUM",
		Country: function()
	{
		var id = $('dcountry').value;
		if(id == 42)
		{
			$('dcountryother').setStyle('display','block');
		}
		else
		{
			$('dcountryother').setStyle('display','none');
		}
	},
	RemoveAlbum: function(productid)
	{
		var target = 'cart' + productid;
		var myFx = $(target).effects({ duration: 1000, transition: Fx.Transitions.Expo.easeOut });
		myFx.custom({'margin-left': [0,-120], 'opacity': [1,0] });
		Cart.Action('remove',productid,'-');
	},
	Empty: function()
	{
		Cart.Action('empty','-','-',true);
	},
	AddProduct: function(productid,title,type)
	{
		var json;
		var count = ($('copies'+type))?$('copies'+type).value:1;
		if($('properties' + type))
		{
			var properties=[];
			var prop = JSON.decode($('properties'+type).value);
			m=0;
			for(f in prop)
			{
				var id = f + type + '';
				properties[m] = [f,$(id).value];
				m++;
			}
		}
		Cart.Action('addproduct',productid,'-',true,count,type,properties);
					MessageBox.SetMessage("<strong>Added \"<span id=\"itemadded\">" + title + "</span>\" to your basket.</strong><br />" );
				MessageBox.Show(productid);
	},
	AddSong: function(productid,trackid,title)
	{
		items = [];
		items.push(trackid);
		var action = ($('t'+trackid).hasClass("trackremove"))?"removetrack":"add";
		Cart.Action(action,productid,items,true,1,1);
		$('t'+trackid).toggleClass("trackremove");
		if(action=="add")
		{
					MessageBox.SetMessage("<strong>Added \"<span id=\"itemadded\">" + title + "</span>\" to your basket.</strong><br />" );
				}
		else
		{
					MessageBox.SetMessage("<strong>Removed \"<span id=\"itemadded\">" + title + "</span>\" from your basket.</strong><br />" );
				}
		MessageBox.Show(productid);	
	},
	GetItems: function()
	{
		Cart.Action('get',0,0,true);
	},
	Action: function(action,productid,itemid,rendercart,count,type,properties)
	{
		if(count == undefined) { var count = 1; }
		var pars = "b=" + itemid + "&c=" + productid + "&num=" + count + "&type=" + type;
		if(properties){ pars = pars + "&properties=" + JSON.encode(properties);}
		url = "/cart/" + action + "/";
		//alert(url + "?" + pars);
		var myAjax = new Request({
			method: 'get',
			url: url,
			isSuccess: function(request){Cart.EvalResponse(request,rendercart);}
		}).send(pars);
	},
	EvalResponse : function(request,rendercart) {
		var json;
		try {
			json = JSON.decode(request);
		} catch (e) {}
		Cart.ShowContent(json,rendercart);
	},
	ShowContent: function()
	{
		if($('selectcart'))
		{
		$('selectcart').load("/cart/");
		}
	}
};
var MessageBox = {
	Show: function(id) {
		clearTimeout(timeout);
		$('messagecover').src = "http://img.grapewire.net/64/" + id + ".jpg";
		var mbox = $('message');
		mbox.setStyle('opacity','0');
		mbox.setStyle('display','block');
		var myTrans = new Fx.Morph('message', {duration: 500,transition:Fx.Transitions.Expo.easeOut});
		myTrans.start({'opacity':[0,1]});
		MessageBox.Hide(8000);
	},
	SetMessage: function(text)
	{
		$('msg').innerHTML = text;
	},
	HideBox: function()
	{
		clearTimeout(timeout);
		var myTrans = new Fx.Morph('message',{duration: 500,transition: Fx.Transitions.Expo.easeOut});
		myTrans.start({'opacity':[1,0]});
	},
	Hide: function(waitTimeout)
	{
		if(waitTimeout > 0)
		{
			timeout = setTimeout("MessageBox.HideBox()",waitTimeout);
		}
		else
		{
			MessageBox.HideBox();
		}
	}
};
var SearchResult = "";
var SearchField = "";
var Search = {
	Init: function() {
		SearchResult = $('searchresult');
		SearchField = $('searchbox');
		if (SearchField && SearchResult)
		{
			SearchField.addEvent('keyup',function(){
			var val = SearchField.value;
			val.replace(/^\s*|\s*$/g,"");
			if (val.value == "" || val.length === 0)
			{
				Search.Hide();
			}
			else if (val.length > 2)
			{
				Search.Go();
			}
			});

		}

	},
	Go: function()
	{
		Search.Show();
		$('searchresult').load('/search/' + SearchField.value);
	},
	Show: function()
	{
		ActiveTab = 5;
		$('article').setStyle('display','none');
		SearchResult.setStyle('display','block');
	},
	Hide: function()
	{
		ActiveTab = 1;
		$('article').setStyle('display','block');
		SearchResult.setStyle('display','none');
	}
};
var mp = "";
var myVerticalSlide;
var Site = {
	Start: function(){
		Site.InitToolTips();
		Site.InitCart();
		Site.InitSearch();
		Site.InitShadowbox();
		Site.InitOrderView();
		createPlayer();
	},
	InitOrderView: function()
	{
		//if($('orderview'))
		//{
		//myVerticalSlide = new Fx.Slide('orderview',{duration:800,transition:Fx.Transitions.Pow.easeOut});
		//myVerticalSlide.toggle();
		//}
	},
	InitToolTips: function()
	{
		var Tips3 = new Tips($$('.Tips2'), {
		showDelay: 1000,
		hideDelay: 400,
		fixed: true
	});
	},
	InitSearchToolTips: function()
	{
		var Tips3 = new Tips($$('.Tips3'), {
		showDelay: 400,
		hideDelay: 1000,
		fixed: true
		});
	},
	InitShadowbox: function()
	{
		if(typeof(Shadowbox) != "undefined")
		{
		 Shadowbox.init();
		}
	},
	InitSearch: function()
	{
                SearchResult = $('searchresult');
                SearchField = $('searchbox');
                if (SearchField && SearchResult)
                {

		var safari = false;
		if(navigator.vendor)
		{
			safari = (navigator.vendor.indexOf('Apple') > -1)?true:false;
		}
		if(safari)
		{
			$('searchbox').setAttribute('type','search');
			$('searchbox').setAttribute('results','5');
			$('searchbox').setAttribute('autosave','net.grapewire.monkey.search.history');
		}
		Search.Init();
		}
	},
	InitCart: function()
	{
	    if($('cartcontent'))
	    {
		var trig = $$('.trigger');
		var box = $$('.slider');
		ac = new Accordion(trig, box, {'alwaysHide' : true, 'start': 'all-closed'});
		$('cartcontent').style.height = "100px";
		}
		var pricelist = {a:'',b:''};
		if($('prices'))
		{
			pricelist = JSON.decode($('prices').value);
		}
		Cart.PriceList = pricelist;
	},
	Login: function()
	{
		if($('emailaddress').value === "")
		{
			alert('Email address missing');
		}
		else if($('password').value === "")
		{
			alert('Password missing');
		}
		else
		{
			$('loginform').submit();
		}
	},
	Signup: function()
	{
			$('signupform').submit();
	},
	NewUser: function ()
	{
		var o = $('newuserpanel');
		o.setStyle('display',(o.getStyle('display')=="none")?'block':'none');
	}
};
function confirm()
{
	if(!processingpayment)
	{
		processingpayment = true;
		$('confirmbutton').style.visibility ='hidden';
		$('fixbutton').style.visibility ='hidden';
		$('formcontinue').submit();
		$('confirmbutton').onClick = 'function(){return false}';
	}
	else
	{
		$('confirmbutton').style.display ='hidden';
	}
}

var lastsong = -1;
var currsong = 0;
function createPlayer()
{
	if($('tracks'))
	{
	id = parseInt($('tracks').getAttribute('rel'));
	mp = new Swiff('http://preview.grapewire.net/player.swf',{
	id: 'mediaplayer',
	width: 200,
	height: 200,
	vars: {
		'width': 200,
		'height': 200,
		'file':'/rss/playlist/' + id +'.xml',
		'image':'http://img.grapewire.net/200/' + id +'.jpg',
		'javascriptid': 'mediaplayer',
		'enablejs': 'true',
		'logo':'http://preview.grapewire.net/gwplayer.png',
		'displaywidth': 200,
		'displayheight': 200,
		'backcolor':'0x000000',
		'lightcolor':'0x000000',
		'frontcolor':'0xFFFFFF',
		'controlbar':'false',
		'thumbsinplaylist':'false',
		'searchbar':'false',
		'overstretch':'fit',
		'showstop':'true',
		'callback':'/trackplay/'
	},
	container: $('mediaplayercontainer')
	});
	$$('.inherited').each(function(o1){
		o1.addEvent('click',function(e){
			e.stop();
			$(mp).sendEvent('item',parseInt(this.getAttribute('rel')));	
		});
	});
	}
}
function Boxset(){
    var m = 600;
    var url = 'http://img.grapewire.net/600/660-';
    var img1 = {
        player:     'img',
        content:    url + '1.jpg',
        height:     m,
        width:      m,
        title:      'The Boxset'
    };

    var img2 = {
        player:     'img',
        content:    url + '2.jpg',
        height:     m,
        width:      m,
        title:      'The Vinyl Cover'
    };

    var img3 = {
        player:     'img',
        content:    url + '3.jpg',
        height:     m,
        width:      m,
        title:      'The Poster'
    };

    var img4 = {
        player:     'img',
        content:    url + '4.jpg',
        height:     m,
        width:      m,
        title:      'The 68 Page book'
    };

    var img5 = {        
        player:     'img',
        content:    url + '5.jpg',
        height:     m,
        width:      m,
        title:      'Inner Sleeve'
    };


    Shadowbox.open([img1,img2,img3,img4,img5], {
        continuous: true
    });

};

window.addEvent('domready', Site.Start);
