Set_Cookie('cookies_enabled', '1', '', '/', '', '');

if (!Get_Cookie('cookies_enabled')) {

	window.location = base_path + 'cookies-required.html';

}

Delete_Cookie('cookies_enabled', '/', '');

var tarea;

function autosave() {

	var section = 'register_website';

	if ($$('h2.edit').getLast() != null) {

		var section = 'edit_website';

	}

	var url = "includes/auto-save.php";

	new Ajax(url, {

        data: 'section=' + section + '&website_description=' + $('website_description').value + '&website_title=' + $('title').value + '&website_url=' + $('url').value,

		method: 'post',

		update: null

	}).request();

    return true;

}

function padlength(str)

{

    var output = (str.toString().length == 1) ? "0" + str : str

    return output

}

function clock()

{

    servertime.setSeconds(servertime.getSeconds()+1)

    var localtime = padlength(servertime.getHours())+":"+padlength(servertime.getMinutes())+":"+padlength(servertime.getSeconds())

    $("localtime").innerHTML = localtime

}

function countdown()

{

    hours = Math.floor(counter / 3600)

    minutes = Math.floor((counter - (hours * 3600)) / 60)

    seconds = Math.floor(counter - (hours * 3600) - (minutes * 60))

    $('timer').innerHTML = '<span>' + padlength(hours) + ' <span>hrs</span> ' + padlength(minutes) + ' <span>min</span> ' + padlength(seconds) + ' <span>sec</span>' + '</span>'

    counter--;

    if (counter < 0) {

        window.location = base_path;

    }

}

var Countable = new Class({

    initialize: function(inputId, max, className, errorClass) {

        this.input = $(inputId);

        this.max = max;

        this.className = className ? className : "count";

        this.errorClass = errorClass ? errorClass : "error";

        this.handle = new Element("div", {'class': this.className});

        this.handle.setHTML('&nbsp;').injectAfter(this.input);

        this.input.addEvent('keydown', this.onKeyPress.bindWithEvent(this));

        this.input.addEvent('keyup', this.onKeyPress.bindWithEvent(this));

        this.update();

    },

    onKeyPress: function(event) {
    
        event = new Event(event);

        if (!event.shift && !event.control && !event.alt && !event.meta) this.update();

    },

    update: function() {

        if (this.input.value.length > this.max)

            this.input.value = this.input.value.substring(0, this.max);

            var count = this.max - this.input.value.length;

        if (count == 0) {

            var string = "<span class=\""+this.errorClass+"\">No character left</span>";

        } else if (count == 1) {
        
            var string = "1 character left";

        } else {

            var string = count + " characters left";
        }

        this.handle.setHTML(string);
        
    }

});

window.addEvent('domready', function() {

    if ($('avgvpts_header')) {

        var slidefx = new Fx.Slide('avgvpts');

        $('avgvpts_header').addEvent('click', function(e){

            if ($('avgvpts').getStyle('display') != 'block') {

                slidefx.hide();

                $("avgvpts").setStyle('display', 'block');

            }

            e = new Event(e);

            slidefx.toggle();

            e.stop();

        });
        
    }

    if ($('avgcpts_header')) {

        var slidefx1 = new Fx.Slide('avgcpts');

        $('avgcpts_header').addEvent('click', function(e){

            if ($('avgcpts').getStyle('display') != 'block') {

                slidefx1.hide();

                $("avgcpts").setStyle('display', 'block');

            }

            e = new Event(e);

            slidefx1.toggle();

            e.stop();

        });
        
    }

    if ($('avgvpws_header')) {

        var slidefx2 = new Fx.Slide('avgvpws');

        $('avgvpws_header').addEvent('click', function(e){

            if ($('avgvpws').getStyle('display') != 'block') {

                slidefx2.hide();

                $("avgvpws").setStyle('display', 'block');

            }

            e = new Event(e);

            slidefx2.toggle();

            e.stop();

        });
        
    }

    if ($('avgcpws_header')) {

        var slidefx3 = new Fx.Slide('avgcpws');

        $('avgcpws_header').addEvent('click', function(e){

            if ($('avgcpws').getStyle('display') != 'block') {

                slidefx3.hide();

                $("avgcpws").setStyle('display', 'block');

            }

            e = new Event(e);

            slidefx3.toggle();

            e.stop();

        });

    };
    
    if ($('website_description')) {
    
        tarea = new Countable("website_description",600);

        setInterval('update_textarea()', 500)

    }

    var Tips1 = new Tips($$('.tooltip'), {
    	offsets: {'x': -225, 'y': 20}
    	
    });

    var Tips2 = new Tips($$('.tooltip2'), {
    	offsets: {'x': -225, 'y': 20}

    });
    
	if ($$('h2.edit').getLast() != null || $$('h2.register-website').getLast() != null) {

        setInterval('autosave()', 2000);

	}
	
	if ($('cancel')) {

		$('cancel').addEvent('click', function() {

			autosave();

		})

	}
    
    // we want to track profile views coming from the home page (booked websites)
    var anchors = $$('#homepage a');
    
    // if we're on the home page
    if (anchors.getLast() != null) {

		// add to each anchors onclick event a function
		anchors.addEvent('click', function() {

        	var url = "includes/profile-views-tracker.php";

        	new Ajax(url, {

                data: 'url=' + this.getProperty('href') + '&referer=profile_view_booked_websites',

        		method: 'post',

        		update: null

        	}).request();

		    return true;

		});

	}

    // we want to track profile views coming from the advertisers page
    var anchors = $$('#advertiserspage a');

    // if we're on the advertisers page
    if (anchors.getLast() != null) {

		// add to each anchors onclick event a function
		anchors.addEvent('click', function(e) {

        	var url = "includes/profile-views-tracker.php";

        	new Ajax(url, {

                data: 'url=' + this.getProperty('href') + '&referer=profile_view_advertisers',

        		method: 'post',

        		update: null,
        		
        		evalScripts: true

        	}).request();

			return true;
        	
		});

	}

    // we want to track clicks on the right sidebar separately
    var anchors = $$('#top10-list a');
    
    // if there are any items in the Famous Websites list
    if (anchors.getLast() != null) {

		// add to each anchors onclick event a function
		anchors.addEvent('click', function() {
		
        	var url = "includes/profile-views-tracker.php";

        	new Ajax(url, {

                data: 'url=' + this.getProperty('href') + '&referer=profile_view_famous_websites',

        		method: 'post',

        		update: null

        	}).request();

		    return true;
		
		});

	}

    // we want to track clicks on the right sidebar separately
    var anchors = $$('table.stats a.famous-website');
    
    // if there are any items in the Famous Websites list
    if (anchors.getLast() != null) {

		// add to each anchors onclick event a function
		anchors.addEvent('click', function() {

        	var url = "includes/visits-tracker.php";

        	new Ajax(url, {

                data: 'url=' + this.getProperty('href'),

        		method: 'post',

        		update: null

        	}).request();

		    return true;

		});

	}

    var checkboxes = $$('input[id^=slot_]');
    
    if ($('bookings-list')) {

        $$('a[class^=delete-booking]').addEvent('click', function(e) {
        
            var className = /[0-9]{10}/.exec(this.getProperty('class'));
            
        	e = new Event(e).stop();

        	var url = "includes/my-websites-booking-list.php";

        	new Ajax(url, {
        	
                data: 'slot=' + className,

        		method: 'post',

        		update: $('bookings-list'),

                evalScripts: true

        	}).request();

        });

    }
    
    if (typeof user_credits !== 'undefined') {

        checkboxes.addEvent('change', count_checked.bindWithEvent('', user_credits))
    
    }

});

function count_checked(e, max)
{

    var checkboxes = $$('input[id^=slot_]');

    var counter = 0;
    
    checkboxes.each(function(item, index) {

        if (item.getProperty('checked')) {

            ++counter;

        }

    });

    checkboxes.each(function(item, index) {

        if (item.getProperty('checked') === false) {
        
            if (counter >= max) {

                item.setStyle('visibility', 'hidden');
                
            } else {

                item.setStyle('visibility', 'visible');

            }

        }
        
    });

    if (counter >= max) {

        alert('You currently have no more credits available for this website!\n\nIf you want to change one or more of your booked slots, simply uncheck the currently booked ones and book different slots.\n\nWhen you are done, click on any of the "Book!" buttons to finish!')

    }

}

function update_textarea()
{

    tarea.update()

}

function verify()

{

    var myAjax = new Ajax('includes/ajax.php', {evalScripts: true, method: 'post'}).request();

}

window.addEvent('load', function() {

    setInterval('countdown()', 1000)

    if ((typeof(window["servertime"]) != "undefined")) {

        setInterval('clock()', 1000)

    }

    if ((typeof(window["loading"]) != "undefined")) {

        setInterval('verify()', 2000)

    }

})
