/**
 * Controller JS Writen by Serymoon http://www.serymoon.com
 *  Use Mootols for http://www.mootools.net
 */

/*érkező data tömb lehetséges felépítése
 * 
 * top_data = array(where, type, position, inject, data)
 * inner data = array(tag, params, data, inject)
 *
 */
 
// érkező adatok renderelése
function paraseData(cE, D, W) {
D.each(function(value, key) {
 	var nE = new Element(value.tag, value.params);
 	nE.inject(cE, W);
 	if (value.data) {
 		paraseData(nE, value.data, value.inject)
 	}
 	else {
 		refressAnchors();
 	}
});
}

// érkező adatok kirakása az oldalra
function requestRender(data) {
	if (data) {
        
		data.each(function (value, key) {
           
 			var cTag = $(value.where);
 			value.position.each(function(value, key){
 				var ccTag = cTag[value]();
                // eldöntendő mi történjen ha hibás a renderelés!!!
                cTag = (ccTag !== null)? ccTag : cTag;

 			})
 			if (value.type == 'html') {
 				cTag.set('html', value.data);
 				refressAnchors();
 			}
 			else {
 				paraseData(cTag, value.data, value.inject);
			}

            
		});
	}
}


// az új a tagok begyüjtése
function refressAnchors() {
getAnchors('json', chooseSRC);
}

// belső hivatkozások kezelése tartalom frissítése
function chooseSRC(a) {
	var jsonRequest = new Request.JSON({
		method: 'post',
		url: a.getProperty('href'),
		onSuccess: function(txt, response){
            //requestRender(response);
		},
		onComplete: function(request){
           
			requestRender(request);
		},
		onFailure: function(error){
			alert('Plese contact site Administrator! Error No.:' + error);
		}
		}).post({'json': 'request'});
};

// anchorok begyüjtése ellenőrzése
function getAnchors(a, b) {
	// get all inner anchor
	var anchor = $$('a.' + a);
	var anchor_length = anchor.length;
	
	for (var i = 0; i<anchor_length; i++) {
		anchor[i].removeEvents('click');
		anchor[i].addEvent('click', function(event){
				event.stop();
			  b(this, b);  
		});
	}
}



function prepareMenuForm(){};

function prepareImgBorder(a){
    var img = $$('img.' + a);
    var img_length = img.length;

    for (var i = 0; i<img_length; i++) {

        /*IE 6 SUX*/

        var table = new Element('table', {'class': 'simg'});
        
        var tr = new Element('tr');
        tr.inject(table, 'bottom');
        var td = new Element('td', {'class': 'LT'});
        td.inject(tr, 'bottom');
        td = new Element('td', {'class': 'T'});
        td.inject(tr, 'bottom');
        td = new Element('td', {'class': 'RT'});
        td.inject(tr, 'bottom');

        tr = new Element('tr');
        tr.inject(table, 'bottom');
        td = new Element('td', {'class': 'L'});
        td.inject(tr, 'bottom');
        td = new Element('td', {'class': 'C'});
        td.inject(tr, 'bottom');
        var content = new Element('img', {src: img[i].getProperty('src')});
        content.inject(td, 'bottom');

        td = new Element('td', {'class': 'R'});
        td.inject(tr, 'bottom');

        tr = new Element('tr');
        tr.inject(table, 'bottom');
        td = new Element('td', {'class': 'LB'});
        td.inject(tr, 'bottom');
        td = new Element('td', {'class': 'B'});
        td.inject(tr, 'bottom');
        td = new Element('td', {'class': 'RB'});
        td.inject(tr, 'bottom');

        table.replaces(img[i]);
    }
};

function questionDelete(a) {
    if (confirm('Biztosan törlöd az elemet?')) {
        //a.getProperty('href');
        window.location = a.getProperty('href');

        //var myRequest = new Request({method: 'get', url: a.getProperty('href')});
        //myRequest.load();
    }
}

function refressDelete() {
    getAnchors('qdelete', questionDelete);
}

function clickCheckbox(a, ext) {
    
    a.toggleClass('checkbox-' + ext + '-selected')
    a.toggleClass('checkbox-' + ext + '-empty')
    a.removeClass('checkbox-' + ext + '-over')
}

function refressCheckbox(a, ext) {

   var chb = $$('input.' + a);
    $each(chb, function(value, key) {
        value.setStyle('display', 'none');

        
        var chbspan = new Element('span', {'class': 'checkbox'});




        chbspan.inject(value, 'after');

        var afor = (value.getProperty('checked')) ? '-selected' : '-empty';
        chbspan.addClass('checkbox-' + ext + afor);

        chbspan.addEvents({
            'mouseover': function(){
                this.addClass('checkbox-' + ext + '-over')
            },
            'mouseout': function(){
                this.removeClass('checkbox-' + ext + '-over')
            },
            'click': function(){
                this.getPrevious().click();
                clickCheckbox(this, ext);
                
            }
        });
        chbspan.getNext().addEvents({
            'mouseover': function(){
                this.getPrevious().addClass('checkbox-' + ext + '-over')
            },
            'mouseout': function(){
                this.getPrevious().removeClass('checkbox-' + ext + '-over')
            },
            'click': function(){
                this.getPrevious().getPrevious().click()
                clickCheckbox(this.getPrevious(), ext);
            }
        });

        
    });
}

var i_replace = {};

function inputReplace(id, focus) {
    //alert(i_replace.id)
    if (focus) {
        if (!i_replace.id) {
        i_replace.id = $(id).getProperty('value');
        $(id).setProperty('value', '');
        }
        else if (i_replace.id == $(id).getProperty('value')) {
            $(id).setProperty('value', '');
        }
    }
    else if(!focus && !$(id).getProperty('value')) {
        $(id).setProperty('value', i_replace.id);
    }
}


// oldal betöltödésekor meghívandó funkciók
window.addEvent('domready', function () {
	refressAnchors();
    refressDelete();
    //prepareImgBorder('small-border');
    prepareMenuForm();
    refressCheckbox('u-checkbox', 'a');
    refressCheckbox('u-checkbox-c', 'c');
    refressCheckbox('u-checkbox-b', 'b');
    refressCheckbox('u-checkbox-d', 'd');
});
