var Site = new Class({

	initialize: function(){

		hs.registerOverlay(
			{
				thumbnailId: null,
				overlayId: 'controlbar',
				position: 'top right',
				hideOnMouseOut: true
			}
		);

		hs.graphicsDir = 'public/images/highslide/';
		hs.outlineType = 'rounded-white';
		hs.align = 'center';
		hs.captionEval = 'this.thumb.title';

	}, // initialize
	
	domReady: function() {
		this.cufonActivate();
        this.textLength();
        this.deleteImage();
        this.uploadActivate();
		this.codeValidate();
		this.selectPackage();
	}, // domReady

	// cufonActivate
	cufonActivate: function ()
	{
		Cufon.replace('div#grayBox .title');
		Cufon.replace('div#steps .step');
		Cufon.replace('.package .amount', { fontFamily: 'NeoSansBold' });
		Cufon.replace('.package .description', { fontFamily: 'NeoSansBold' });
		Cufon.replace('.package .description2', { fontFamily: 'NeoSansBold' });
		Cufon.replace('.package .description2-normal', { fontFamily: 'NeoSansPL' });
		Cufon.replace('.package .price', { fontFamily: 'InterstatePl' });
		Cufon.now();
	}, // cufonActivate

	// TextLength
	textLength: function ()
	{
		if ($('addpublication')) {
            $('title_length').innerHTML = $('title').value.length;
            $('text_length').innerHTML = $('text').value.length;

	 		$('title').addEvent("keyup",function(){
                if ($('title').value.length > 200) {
                    $('title').value = $('title').value.substring(0, 200);
                }
                $('title_length').innerHTML = $('title').value.length;
			});

            $('text').addEvent("keyup",function(){
                if ($('text').value.length > 5000) {
                    $('text').value = $('text').value.substring(0, 5000);
                }
                $('text_length').innerHTML = $('text').value.length;
			});

		}

	}, // TextLength
	
	// selectPackage
	selectPackage: function ()
	{
		
		$$('span.package input[type=radio]').each(function(item){
				item.setStyle('opacity',0.01);

				item.addEvent('click',function(event){
					$$('span.radio-span-active').each(function(span){
						span.removeClass('radio-span-active');
						span.addClass('radio-span');
						var div = span.getParent().getParent();
						div.removeClass('package-active');
					});
					if(item.checked == true) {
						item.getNext().removeClass('radio-span');
						item.getNext().addClass('radio-span-active');
						var div = item.getParent().getParent();
						div.addClass('package-active');
					}
				});
			
		});

	}, // selectPackage

	// deleteImage
	deleteImage: function ()
	{
		if ($('delete-image')) {
	 		$('delete-image').addEvent("click",function(){
                
                this.set('send',{ url: this.getProperty('href'),method: 'get',
                      onSuccess: function(response) {
                          $('filename_uploaded').value = "";
                          $('image').setStyle('display','none');
                      }
                }).send();

                return false;
			});
		}

	}, // deleteImage

	// uploadActivate
	uploadActivate: function ()
	{
        if ($('select-file')) {

            var link = $('select-file');
            var linkIdle = link.get('html');

            function linkUpdate() {
                if (!swf.uploading) return;
                var size = Swiff.Uploader.formatUnit(swf.size, 'b');
                link.set('html', '<span class="small">' + swf.percentLoaded + '% z ' + size + '</span>');
            }

            // Uploader instance
            var swf = new Swiff.Uploader({
                path: 'public/js/Swiff.Uploader.swf',
                url: '/addpublication/uploadimage.html',
                verbose: true,
                queued: false,
                multiple: false,
                target: link,
                instantStart: true,
                typeFilter: {
                    'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'
                },
                fileSizeMax: 1024 * 1024,
                onSelectSuccess: function(files) {
                    if (Browser.Platform.linux) alert('Warning: Due to a misbehaviour of Adobe Flash Player on Linux,\nthe browser will probably freeze during the upload process.\nSince you are prepared now, the upload will start right away ...');
                    this.setEnabled(false);
                },
                onSelectFail: function(files) {
                    alert('Wysyłany plik jest za duży. Dozwolony rozmiar pliku to 1 MB.');
                },
                appendCookieData: true,
                onQueue: linkUpdate,
                onFileComplete: function(file) {

                    if (file.response.error) {
                        alert('Wystąpił błąd przy wysyłaniu pliku. Proszę spróbować jeszcze raz.');
                    } else {
                        var filename = JSON.decode(file.response.text, true).name;
                        // wyswietlamy obrazek
                        $('filename_uploaded').value = filename;

                        var img = $('image');
                        img.setStyle('display', 'block');
                        $('image-preview').src = "/imagetmp/200x200/" + filename;
                        $('delete-image').href = "/pl/addpublication/deleteimage/" + filename.substr(0, filename.length-4);

                    }

                    file.remove();
                    this.setEnabled(true);
                },
                onComplete: function() {
                    link.set('html', linkIdle);
                }
            });

            // Button state
            link.addEvents({
                click: function() {
                    return false;
                },
                mouseenter: function() {
                    this.addClass('hover');
                    swf.reposition();
                },
                mouseleave: function() {
                    this.removeClass('hover');
                    this.blur();
                },
                mousedown: function() {
                    this.focus();
                }
            });

        }

	}, //uploadActivate
	
	// codeValidate
	codeValidate: function ()
	{
		if ($('choosepackage') && $('code')) {

	 		$('code').addEvent("keyup",function(){
                if ($('code').value.length != 6) {
                	$('code_error').setStyle('display','inline');
                	$('code_accept').setStyle('display','none');
                    var req = new Request({  
                        method: 'get',
                        url: '/pl/choosepackage/normal.html',
                        onSuccess: function(response) {
                    		$('package_template').innerHTML = response;
                    		Site.cufonActivate();
                    		Site.selectPackage();
                        }
                    }).send();
                } else {
                    var req = new Request({  
                        method: 'get',
                        url: '/pl/choosepackage/validatecode/'+$('code').value,
                        onSuccess: function(response) {
                    		if (response != '') {
                    			$('code_error').setStyle('display','none');
                    			$('code_accept').setStyle('display','inline');
                    			$('package_template').innerHTML = response;
                        		Site.cufonActivate();
                        		Site.selectPackage();
                    		} else {
                                var req = new Request({  
                                    method: 'get',
                                    url: '/pl/choosepackage/normal.html',
                                    onSuccess: function(response) {
                                		$('package_template').innerHTML = response;
                                		Site.cufonActivate();
                                		Site.selectPackage();
                                    }
                                }).send();
                                $('code_error').setStyle('display','inline');
                                $('code_accept').setStyle('display','none');
                    		}
                        }
                    }).send();
                	
                	
                }
                
			});

		}

	}, // codeValidate

});

var Site = new Site();
window.addEvent('domready', function(){ Site.domReady(); });

