/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

jQuery.noConflict();

function createLink(attr, domElement) {
    var attrs = attr[0].attributes;
    var extra = '';

    for(var i=0;i<attrs.length;i++) {
        var checkArray = attrs[i].nodeName.split('_');
        if (checkArray[0].toLowerCase() == "ajax" && checkArray[1].toLowerCase() == domElement.toString().toLowerCase()) {
            extra=extra+'&'+checkArray[2]+'='+attrs[i].nodeValue;
        }
    }
    
    extra = extra + getElementsValue(attr, domElement);

    var attrs = extra.split('&');
    var extra = '';
    for(n=1;n<attrs.length;n++) {
        extra += '9sd9f83Ad'+attrs[n];        
    }

    extra = base64_encode(extra);
    extra = urlencode(extra);

    return extra;
}

function getPages(attr) {
    var attrs = attr[0].attributes;
    page = new Array();
    j=0;
    for(var i=0;i<attrs.length;i++) {
        if (attrs[i].nodeName.substring(0, 5).toLowerCase() == "pagel") {
            page[j] = attrs[i].nodeValue;
            j++;
        }
    }
    return page;
}

function getDomElements(attr) {
    var attrs = attr[0].attributes;
    domElement = new Array();
    j=0;
    
    for(var i=0;i<attrs.length;i++) {
        var keys = attrs[i].nodeName.split("_");
        
        if (keys[0].toLowerCase() == "domelement") {
            
            domElement[j] = attrs[i].nodeValue+"_"+keys[2];
            j++;
        }
    }

    return domElement;
}

function getElementsValue(attr, dom) {
    var attrs = attr[0].attributes;
    j=0;
    var extra = '';
    for(var i=0;i<attrs.length;i++) {
        var checkArray = attrs[i].nodeName.split('_');
        if (checkArray[0].toLowerCase() == 'elementvalue' && checkArray[1].toLowerCase() == dom) {
            el = document.getElementById(checkArray[2]);
//            alert(el.innerHTML);
            if (el == null) {
                alert('variable with id: ' + checkArray[2] + ' not found. please check your page');
                continue;
            }
            
            variable = el.value;

            if (el.type == "radio") {
                if (el.checked == 0) {
                    variable = '';
                }
            }

            if (el.type == "checkbox") {
                if (el.checked == 0) {
                    variable = '';
                }
            }

            if (el.innerHTML != '') {
                variable = el.innerHTML;
            }
            
            if (el == null) {
                alert('Warning, did not find element with id : ' + checkArray[2] + " please check that this is a element on your page");
            } else {
                extra = extra + "&"+checkArray[2]+"="+urlencode(variable);
            }
        }
    }
    return extra;
}

function executeAjax(page, button, extra, domElement, showLoading) {
    
    if (showLoading == 'yes') {
        jQuery("div#"+domElement).html("");
        jQuery("div#"+domElement).html("<center><br> Loading.. <br>Please wait<br><br>");
    }

    if (showLoading == '1') {
        jQuery("div#"+domElement).html("");
    }

    if (showLoading == '2') {
        jQuery("div#"+domElement).html("");
        jQuery("div#"+domElement).html("<center><img src='images/loading-transparent.gif'>");
    }
    
    jQuery.ajax({
        url: 'ajax.php?page='+page+'&mouseButtonClicked='+button+'&extra='+extra+'&exenadomelement='+domElement,
        type: 'GET',
        error: function(){
//            alert('Error loading XML document');
        },
        success: function(data){
            if (domElement != '') {
                jQuery("div#"+domElement).html(data);
            }
        }
    });

//    jQuery('div#topstatusfield').fadeOut(500);
}

var editor;

function doEvents(dom, action, event) {
    if(action == "fadeout") {
        var speed = getProperty(event, 'speed', dom, action);
        if(jQuery('#'+dom).css('display') == 'none') {
            jQuery('#'+dom).fadeIn(parseInt(speed));
        } else {
            jQuery('#'+dom).fadeOut(parseInt(speed));
        }
        
    }

    if(action == "clearandshow") {
        jQuery('#'+dom).html();
        jQuery('#'+dom).fadeIn(0);
    }

    if(action == 'slidetoggle') {
        jQuery('#'+dom).slideToggle("slow");
    }

    if (action == 'cssevent') {
        var cssElement = getProperty(event, 'csselement', dom, action);
        var cssValue = getProperty(event, 'cssvalue', dom, action);
        jQuery('#'+dom).css(cssElement, cssValue);
    }

    if (action == 'overlay') {
        var closeall = getProperty(event, 'closeall', dom, action);
        var module = getProperty(event, 'closeonclick', dom, action);
        
        if (module == 'true') {
            module = true;
        } else {
            module = false;
        }
        
        if (closeall == 'yes') {
            api.close();
        } else {
            api = jQuery("#mies1").overlay({oneInstance: true, closeOnClick: module, api: true, expose: '#f1f1f1', onClose: function(event) {  } });
            api.load();
        }
    }

    if (action == 'settowisiwig') {
//        var closeall = getProperty(event, 'closeall', dom, action);
//        var module = getProperty(event, 'closeonclick', dom, action);
        
        if (editor) {
            editor.destroy();
            editor = false;
            event.html('<img src="images/editLargeIcon.png">');
            jQuery('table#mailsendingbutton').css('display', 'block');
        } else {
            editor = CKEDITOR.replace(dom, {height: 900, skin : 'kama'});
            event.html('<img src="images/save-icon-128.png">');
            jQuery('table#mailsendingbutton').css('display', 'none');
        }
    }
}


function customSave(data) {
    alert('saving + ' + data);
}

function getProperty(event, name, dom, eventtype) {
    var attr = event[0].attributes;
    
    for(var i=0; i<attr.length; i++) {
        var nodename = attr[i].nodeName;
        var nodeValue = attr[i].nodeValue;
        var nodeSplitted = nodename.split('_');

//        alert('1'+ nodeSplitted[0] + '\n' + '2'+ nodeSplitted[1] + '\n' + '3'+ nodeSplitted[2] + '\n' + "Value : " + nodeValue);
        if (nodeSplitted[0] == eventtype && nodeSplitted[1] == dom && nodeSplitted[2] == name) {
            return nodeValue;
        }
    }

    return ""
}

function doAjax(e) {
    var event = jQuery(this);

    page = getPages(event);
    domElement = getDomElements(event);

    for(var i=domElement.length-1;i>=0;i--) {
        var dom = domElement[i].split("_")[0];
        var action = domElement[i].split("_")[1];
        
        if(action == 'ajax') {
            load = getProperty(event, 'showloading', dom, 'ajax');
            executeAjax(page[i], e.button, createLink(event, dom), dom, load);
        } else {
            doEvents(dom, action.toString().toLowerCase(), event)
        }
    }
}

function loadAjaxStartups() {
    common();
}

function common() {
    jQuery('.menuButton').mouseup(mouseup);
}

function mousedown() {
    jQuery(this).removeClass('menuButton');
    jQuery(this).addClass('menuButtonHover');
}

function mouseup() {
    jQuery(this).removeClass('menuButtonHover');
    jQuery(this).addClass('menuButton');
}

function addEvent() {
    jQuery('.eventClick').live('click', doAjax);
    jQuery('.menuButton').live('mousedown', mousedown);
    common();
}


function loadStartups() {
    addEvent();
}




