var oc = new Class(
{
});

oc.QtMovie = new Class({
/**
 * Modified version of the Quickie.js (by José Prado) to inject Quicktime video into HTML on the fly.
 * Learn more about Quickie.js at http://pradador.com/code/quickiejs/
 */

	Implements: [Options],

	options: {
		id: null,
		height: 1,
		width: 1,
		container: null,
		attributes: {}
	},

	toElement: function(){
		return this.object;
	},

	initialize: function(path, options){
		this.instance = 'ocQtMovie_' + $time();
		this.setOptions(options);
		options = this.options;
		var id = this.id = options.id || this.instance;
		var container = $(options.container);
		var attributes = options.attributes;
		var height = (!$chk(attributes.controller) || attributes.controller == 'true') ? options.height + 16 : options.height;
		var width = options.width;
		var self = this;

		attributes.src = path;
		var build = "";
		if (Browser.Engine.trident) {
			build = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab"';
			build += ' id="' + id + '"';
			build += ' width="' + width + '"';
			build += ' height="' + height + '"';
			build += '>';
			for (var attribute in attributes) {
				if (attributes[attribute]) build += '<param name="' + attribute + '" value="' + attributes[attribute] + '" />';
			}
			build += '</object>';
		} else {
			build = '<embed ';
			build += ' id="' + id + '"';
			build += ' width="' + width + '"';
			build += ' height="' + height + '"';
			for (var attribute in attributes) {
				if (attributes[attribute]) build += ' ' + attribute + '="' + attributes[attribute] + '"';
			}
			build += ' pluginspage="http://www.apple.com/quicktime/download/"></embed>';
		}

		this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
	},

	replaces: function(element){
		element = $(element, true);
		element.parentNode.replaceChild(this.toElement(), element);
		return this;
	},

	inject: function(element){
		$(element, true).appendChild(this.toElement());
		return this;
	}

});

oc.dropDownMenu = new Class(
{
	Extends:oc,
	initialize: function(pMenu)
	{
		this.menuElement = $(pMenu);
		this.links = this.menuElement.getElements("a");
		this.selectedLink = null;
		this.links.each(function(link,index)
		{
			if($chk(link.getParent().getFirst("table")))
			{

				if(link.hasClass("selected"))
				{
					link.getParent().getFirst("table").setStyle("display","block");
					this.selectedLink = index;
				}

				link.addEvent("click",function(event)
				{
					event.preventDefault();
					if($chk(this.selectedLink))
						this.links[this.selectedLink].getParent().getFirst("table").setStyle("display","none");

					if(this.selectedLink != index)
					{
						this.links[index].getParent().getFirst("table").setStyle("display","block");

						this.links.each(function(link,index)
						{
							if($chk(link.getParent().getFirst("table")))
								link.removeClass("selected");
						},this);

						this.links[index].addClass("selected");
						this.selectedLink = index;
					}
					else
					{
						this.selectedLink = null;
					}
				}.bind(this));
			}
		},this);
	}
});


oc.slideShow = new Class(
{
	Extends:oc,
	Implements: [Options, Events],
	options:
	{
		mapping:{"name":"name","description":"description","info":"info","image_src":"image_src"},
  		elementSelector:".slideShowElement",
		pagesNum:0
	},
	page:null,
  	slideShowObjects:[],
	initialize: function(pDomElementId,pOptions)
	{
		this.setOptions(pOptions);
		if(!$chk(pDomElementId) || !$(pDomElementId)) return;

		this.domElement = $(pDomElementId);
		this.canvasElement = this.createDomElement(this.parseDom(this.domElement));


		this.canvasElement.replaces(this.domElement);

		var slideShowOverlay = this.canvasElement.getFirst(".slideShowWindow").getFirst(".slideShowOverlay");

		slideShowOverlay.getFirst("div.navigation").getFirst(".leftNav").addEvents(
  		{
	  		"mouseenter": function(event)
			{
				this.getFirst("div.navigation").getFirst(".leftNav").addClass("halfTransparent");
			}.bind(slideShowOverlay),
   			"mouseleave": function(event)
			{
				this.getFirst("div.navigation").getFirst(".leftNav").removeClass("halfTransparent");
			}.bind(slideShowOverlay),
   			"click": this.scrollLeft.bind(this)
		});
		slideShowOverlay.getFirst("div.navigation").getFirst(".rightNav").addEvents(
  		{
	  		"mouseenter": function(event)
			{
				this.getFirst("div.navigation").getFirst(".rightNav").addClass("halfTransparent");
			}.bind(slideShowOverlay),
   			"mouseleave": function(event)
			{
				this.getFirst("div.navigation").getFirst(".rightNav").removeClass("halfTransparent");
			}.bind(slideShowOverlay),
   			"click": this.scrollRight.bind(this)
		});
	},
	createDomElement: function(pObjects)
	{
		if($type(pObjects) != "array") return;
		this.options.pagesNum = pObjects.length;

		var canvasElement = new Element("div",{"class":"slideShowCanvas"});
		//canvasElement.addClass("hidden");

		var slideShowInformations = new Element("div",{"class":"slideShowInformations"});
		var itemName = new Element("p",{"class":"itemName"});
		var itemDescription = new Element("p",{"class":"itemDescription"});
		var itemInfo = new Element("p",{"class":"itemInfo"});

		itemName.inject(slideShowInformations);
		itemDescription.inject(slideShowInformations);
		itemInfo.inject(slideShowInformations);


		var slideShowPager = new Element("div",{"class":"slideShowPager"});
		var pagerPara = new Element("p");

		pagerPara.inject(slideShowPager);

		var slideShowWindow = new Element("div",{"class":"slideShowWindow"});
		var slideShowImages = new Element("div",{"class":"slideShowImages"});
		var slideShowOverlay= new Element("div",
								{
									"class":"slideShowOverlay",
									"html":"<div class='corners'><span class='tlCorner'></span><span class='trCorner'></span><span class='blCorner'></span><span class='brCorner'></span></div><div class='navigation'><span class='leftNav'></span><span class='rightNav'></span></div>"
								});


		var imagesources = new Array();
		pObjects.each(function(slideShowObj,index)
		{
			imagesources.extend([slideShowObj.image_src]);
		},this);

		var images = new Asset.images(imagesources,
  		{
			onComplete:function()
			{
				var slideShowImages = this.canvasElement.getFirst(".slideShowWindow").getFirst(".slideShowImages");
				slideShowImages.width = 0;
				slideShowImages.getChildren("img").each(function(image,index)
				{
					this.slideShowObjects[index].left = slideShowImages.width;
					slideShowImages.width += image.getSize().x;

				},this);

				if($chk($("slideShowLoader")) && !$("slideShowLoader").hasClass("hidden")) $("slideShowLoader").addClass("hidden");

				slideShowImages.setStyle("width",slideShowImages.width);
				this.selectPage(1);
			}.bind(this),
   			onProgress: function()
			{
				if($chk($("slideShowLoader")) && $("slideShowLoader").hasClass("hidden")) $("slideShowLoader").removeClass("hidden");
				$("slideShowLoader").getFirst("p").set("html",($("slideShowLoader").getFirst("p").get("html")) + ".");
			}

		});

		images.each(function(image,index)
		{
			image.inject(slideShowImages);
		},this);

		slideShowImages.inject(slideShowWindow);
		slideShowOverlay.inject(slideShowWindow);


		slideShowInformations.inject(canvasElement);
		slideShowPager.inject(canvasElement);
		slideShowWindow.inject(canvasElement);

		return canvasElement;

	},
	selectPage: function(pPage)
	{
		var page = $type(pPage) == "number" ? pPage : 1;
		if(this.page == page) return;
		this.page = page;
		this.canvasElement.getFirst(".slideShowInformations").getFirst(".itemName").set("html",this.slideShowObjects[(this.page-1)].name);
		this.canvasElement.getFirst(".slideShowInformations").getFirst(".itemDescription").set("html",this.slideShowObjects[(this.page-1)].description);
		this.canvasElement.getFirst(".slideShowInformations").getFirst(".itemInfo").set("html",this.slideShowObjects[(this.page-1)].info);

		this.canvasElement.getFirst(".slideShowPager").getFirst("p").set("html",pPage+"/"+this.options.pagesNum);

		var size = this.canvasElement.getFirst(".slideShowWindow").getFirst(".slideShowImages").getChildren("img")[(this.page-1)].getSize();

        var imgFx = new Fx.Tween(this.canvasElement.getFirst(".slideShowWindow"),{link:"chain"});

		imgFx.start("width",size.x);
		imgFx.start("height",size.y);

		this.canvasElement.getFirst(".slideShowWindow").getFirst(".slideShowImages").tween("left",(-1*this.slideShowObjects[(this.page-1)].left));

	},
	scrollToPosition: function(pOffset)
	{
		this.canvasElement.tween("left",pOffset);
	},
 	parseDom: function(pElement)
	{
		if(!$chk(pElement)) return;

		this.slideShowObjects = new Array();

		var slideShowElements = pElement.getChildren(this.options.elementSelector);

        slideShowElements.each(function(el,index)
		{
			this.slideShowObjects.include(
   			{
				name:el.getFirst(this.options.mapping.name).get("html"),
				description:el.getFirst(this.options.mapping.description).get("html"),
				info:el.getFirst(this.options.mapping.info).get("html"),
 				image_src:el.getFirst(this.options.mapping.image_src).get("src")
			});

		},this);

		return this.slideShowObjects;
	},
 	scrollLeft:function(event)
	{
		this.selectPage(this.getPreviousPage());
	},
 	scrollRight:function(event)
	{

		this.selectPage(this.getNextPage());
	},
	getPreviousPage: function()
	{
		selected = $pick(this.page,1);
		if($type(selected) == "string") selected.toInt();
		//if(selected <= 1) return 1;
		if(selected <= 1) return this.options.pagesNum;
		else return (selected-1);
	},
	getNextPage: function()
	{
		selected = $pick(this.page,1);
		if($type(selected) == "string") selected.toInt();
		//if(selected >= this.options.pagesNum) return this.options.pagesNum;
		if(selected >= this.options.pagesNum) return 1;
		else return (selected+1);
	}
});





var mouseEnterFunction = function(blogNum)
{
	switch (blogNum)
	{
		case 0:
				$('blogLinks').setStyles({
					/*'background': 'transparent url(images/blogLiksBg.gif) no-repeat left top'*/
					'background-position': '0px 0px'
				});
			break;
		case 1:
				$('blogLinks').setStyles({
					/*'background': 'transparent url(images/blogLiksBg.gif) no-repeat left -106px',*/
					'background-position': '0px -106px'
				});
			break;
		case 2:
				$('blogLinks').setStyles({
					/*'background': 'transparent url(images/blogLiksBg.gif) no-repeat left -212px',*/
					'background-position': '0px -212px'
				});
			break;
		case 3:
				$('blogLinks').setStyles({
					/*'background': 'transparent url(images/blogLiksBg.gif) no-repeat left -318px'*/
					'background-position': '0px -318px'
				});
			break;
		case 4:
				$('blogLinks').setStyles({
					/*'background': 'transparent url(images/blogLiksBg.gif) no-repeat left -424px'*/
					'background-position': '0px -424px'
				});
		break
	}
};





var updateClock = function()
{
	var currentTime = new Date();

	var currentYears = currentTime.getFullYear();
	var currentMonths = currentTime.getMonth() + 1;
	var currentDays = currentTime.getDate();

	currentMonths = ( Number(currentMonths) < 10 ? "0" : "" ) + currentMonths;
	currentDays = ( Number(currentDays) < 10 ? "0" : "" ) + currentDays;

	var currentDateString = currentYears + "/" + currentMonths + "/" + currentDays + " ";

	var currentHours = currentTime.getHours();
	var currentMinutes = currentTime.getMinutes();
	var currentSeconds = currentTime.getSeconds();

	currentMinutes = ( Number(currentMinutes) < 10 ? "0" : "" ) + currentMinutes;
	currentSeconds = ( Number(currentSeconds) < 10 ? "0" : "" ) + currentSeconds;

	var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " ";

	//document.getElementById("date").firstChild.nodeValue = currentDateString;
	$('date').firstChild.nodeValue = currentDateString;
	//document.getElementById("time").firstChild.nodeValue = currentTimeString;
	$('time').firstChild.nodeValue = currentTimeString;
}





window.addEvent('domready', function()
{

	/*
	 * Update the date & clock in header / topLine:
	 */
	setInterval('updateClock()', 1000);



	new oc.dropDownMenu("mainMenu");
	if($("slideShow") && ($chk($("slideShow").get("rev"))))
		new oc.slideShow("slideShow",eval("(" + $("slideShow").get("rev") + ")"));

	if($('blogLinkMySpace'))
	$('blogLinkMySpace').addEvent('mouseenter', function(){
			mouseEnterFunction(1);
	});

	if($('blogLinkBehance'))
	$('blogLinkBehance').addEvent('mouseenter', function(){
			mouseEnterFunction(2);
	});

	if($('blogLinkCpluv'))
	$('blogLinkCpluv').addEvent('mouseenter', function(){
			mouseEnterFunction(3);
	});

	if($('blogLinkFlickr'))
	$('blogLinkFlickr').addEvent('mouseenter', function(){
			mouseEnterFunction(4);
	});

	if($('blogLinks'))
	$('blogLinks').getElements('div').addEvent('mouseleave', function(){
			mouseEnterFunction(0);
	});



	if($('shop'))
	{
		// Beallitja az alapertelmezett 'checked' elem stilusat
		if($('radio1').getElements('input').getProperty('checked') == 'true')
		{
			$('radio1').setStyles({'background': '#00d2ff',	'color': '#000000'});
		}
		else
		{
			$('radio2').setStyles({'background': '#00d2ff','color': '#000000'});
		}


		// Az elso radio button 'mouseenter' esemenye:
		$('radio1').addEvent('mouseenter', function(){
			$('radio1').setStyles({'background': '#00d2ff',	'color': '#000000'});
		});
		// Az elso radio button 'mouseleave' esemenye:
		$('radio1').addEvent('mouseleave', function(){
			if($('radio1').getElements('input').getProperty('checked') == 'true')
			{
				$('radio2').setStyles({'background': '#000000','color': '#00d2ff'	});
			}
			else
			{
				$('radio1').setStyles({'background': '#000000','color': '#00d2ff'});
			}
		});
		// Az elso radio button 'click' esemenye:
		$('radio1').addEvent('click', function(){
			$('radio2').getElements('input').setProperty('checked','false');
			$('radio1').getElements('input').setProperty('checked','checked');
			$('radio1').setStyles({'background': '#00d2ff',	'color': '#000000'});
			$('radio2').setStyles({'background': '#000000','color': '#00d2ff'});
		});


		// A masodik radio button 'mouseenter' esemenye
		$('radio2').addEvent('mouseenter', function(){
			$('radio2').setStyles({'background': '#00d2ff','color': '#000000'});
		});
		// A masodik radio button 'mouseleave' esemenye
		$('radio2').addEvent('mouseleave', function(){
			if($('radio2').getElements('input').getProperty('checked') == 'true' )
			{
				$('radio1').setStyles({'background': '#000000','color': '#00d2ff'});
			}
			else
			{
				$('radio2').setStyles({'background': '#000000','color': '#00d2ff'});
			}
		});
		// A masodik radio button 'click' esemenye:
		$('radio2').addEvent('click', function(){
			$('radio1').getElements('input').setProperty('checked','false');
			$('radio2').getElements('input').setProperty('checked','checked');
			$('radio2').setStyles({'background': '#00d2ff','color': '#000000'});
			$('radio1').setStyles({'background': '#000000','color': '#00d2ff'});
		});
	}


	if($('register'))
	{
			var scrollBox = new MooScroll({selector:'#scrollBox'});

			var selected = '';

			var elementClick = function(e){
				$('scrollBox').getElements('p').setStyles({
					background: '#101010',
					color: '#cbcbba'
				});
				e.target.setStyles({
					background: '#000000',
					color: '#00d2ff'
				});
				selected = e.target.get('text');
				$('country').getElements('input[id=RegisterCountry]').set('value', e.target.get('text'));

			};

			var elementMouseover = function(e){
				if(e.target.get('text') != selected)
				{
					e.target.setStyles({
						background: '#000000',
						color: '#00d2ff'
					});
				}
			};

			var elementLeave = function(e){
				if(e.target.get('text') != selected)
				{
					e.target.setStyles({
						background: '#101010',
						color: '#cbcbba'
					});
				}
			};

			$('scrollBox').getElements('p').addEvent('click', elementClick);
			$('scrollBox').getElements('p').addEvent('mouseover', elementMouseover);
			$('scrollBox').getElements('p').addEvent('mouseleave', elementLeave);
	}

	if($('showLoginForm') && $('headerLoginFormContainer'))
	{
		$('showLoginForm').addEvent("click",function(event)
		{
			event.preventDefault();
			$('headerLoginFormContainer').toggleClass("hidden");
		});
	}

	if($('headerLoginFormContainer'))
	{
		var c = $('headerLoginFormContainer');
		var emailfield = c.getElement("input[name=email]");
		var passfield = c.getElement("input[name=password]");
		var doitbutton = c.getElement("button[name=submit]");

		emailfield.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Your email") this.set("value","");
		}.bind(emailfield));

		passfield.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Your pass")
			{
				 this.set("value","");
				 this.set("type","password");
			}
		}.bind(passfield));

		var loginReqObj = new Request.JSON(
  		{
			"url":"/login/check",
   			"method":"post",
	  		"onSuccess":function(responseJSON)
			{
				if(responseJSON.success == 1)
				{
					$("headerLoginStatusBar").set("html","Correct! Logging in...");
					document.location.href = "/";
				}
				else
				{
					$("headerLoginStatusBar").set("html","Incorrect!");
				}
			},
   			"onFailed":function()
			{
			},
   			"onCancel":function()
			{
			},
   			"onRequest":function()
			{
				$("headerLoginStatusBar").set("html","Checking...");
			}
		});
		doitbutton.addEvent("click",function(event)
		{
			loginReqObj.send({data:$H({email:emailfield.get("value"),password:passfield.get("value")}).toQueryString()});
		});
	}

	if($('loginFormContainer'))
	{
		var c = $('loginFormContainer');
		var emailfield = c.getElement("input[name=email]");

		emailfield.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Your email") this.set("value","");
		}.bind(emailfield));


		var passfield = c.getElement("input[name=password]");

		passfield.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Your password")
			{
				 this.set("value","");
				 this.set("type","password");
			}
		}.bind(passfield));

	}

	if($('forgotPass'))
	{
		var c = $('forgotPass');
		var emailfield = c.getElement("input[name=email]");

		emailfield.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Your email") this.set("value","");
		}.bind(emailfield));
	}

	if($('passChange'))
	{
		var c = $('passChangeFormContainer');
		var pass1 = c.getElement("input[name=password_1]");
		var pass2 = c.getElement("input[name=password_2]");

		pass1.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Enter your new password")
			{
				 this.set("value","");
				 this.set("type","password");
			}
		}.bind(pass1));

		pass2.addEvent("focus",function(event)
		{
			event.preventDefault();
			if(this.get("value") == "Confirm your new password")
			{
				 this.set("value","");
				 this.set("type","password");
			}
		}.bind(pass2));

	}


	if($('welcome'))
	{
		var welcomeClick = function(event)
		{
			event.preventDefault();
			$('logoAndMenu').getElements('#vectorsMenu').setProperty('class', 'selected');
			new oc.dropDownMenu("mainMenu");
		}

		//$('welcomePicture').getElement('a').addEvent('click', welcomeClick);
		$('welcomeLinkedPicture').addEvent('click', welcomeClick);
	}

	if($('shopText'))
	{
		$('shopText').getElements('#loginSubLink').addEvent("click",function(event)
		{
			event.preventDefault();
			$('headerLoginFormContainer').toggleClass("hidden");
		});
	}


});