/**
 * Handle: Umapper
 * Version: 0.8.0
 * Deps: UmapperAjax, jquery
 * Enqueue: true
 */

var Umapper = function(){}

Umapper.prototype = {
    pluginUri : '',
    options           : {},
    
    showInsertDialog        : function()
    {
        if(!umapper.pluginUri) return false; // do not allow to load dialog till prepareInsertDialog is run
        document.getElementById('alignment_center').checked = true;
        document.getElementById('size_s').checked = true;
        document.getElementById('put_dialog').style.display = 'block';
        document.getElementById('put_background').style.display = 'block';
    },
    
    prepareInsertDialog     : function(pluginUri)
    {
        this.pluginUri = pluginUri;
        
        // assign size/alignment onChange functions
        var alignments = ['alignment_none', 'alignment_left', 'alignment_center', 'alignment_right'];
        for(var i=0;i<alignments.length;i++) {
        	document.getElementById(alignments[i]).onchange = umapper.changeMapAlignment;
        	document.getElementById(alignments[i]).onchange = umapper.changeMapAlignment;
        	document.getElementById(alignments[i]).onchange = umapper.changeMapAlignment;
        	document.getElementById(alignments[i]).onchange = umapper.changeMapAlignment;
        }
        
        var sizes = ['size_sq', 'size_t', 'size_s', 'size_m', 'size_l'];
        for(var i=0;i<sizes.length;i++) {
        	document.getElementById(sizes[i]).onchange = umapper.changeMapSize;
        	document.getElementById(sizes[i]).onchange = umapper.changeMapSize;
        	document.getElementById(sizes[i]).onchange = umapper.changeMapSize;
        	document.getElementById(sizes[i]).onchange = umapper.changeMapSize;
        }
        
        // pre-load necessary images
        new Image().src = pluginUri+'/alignment_none.png';
        new Image().src = pluginUri+'/alignment_left.png';
        new Image().src = pluginUri+'/alignment_center.png';
        new Image().src = pluginUri+'/alignment_right.png';
        
        new Image().src = pluginUri+'/size_sq.png';
        new Image().src = pluginUri+'/size_t.png';
        new Image().src = pluginUri+'/size_s.png';
        new Image().src = pluginUri+'/size_m.png';
        new Image().src = pluginUri+'/size_l.png';
        
        
    },
    
    changeMapSize           : function () 
    {
        var sizes = document.getElementsByName('size');
        var size = null;
        for(var i=0;i<sizes.length;i++) {
            if(sizes[i].checked) {
                size = sizes[i].value;
                break;
            }
        }
        if(size && document.getElementById('size_image').getAttribute('rel') != size) {
            document.getElementById('size_preview').innerHTML = '<img id="size_image" rel="'+size+'" src="'+umapper.pluginUri+'/content/img/size_'+size+'.png" alt=""/>';
        }
    },
    
    changeMapAlignment         : function() 
    {
        var alignments = document.getElementsByName('alignment');
        var alignment = null;
        for(var i=0;i<alignments.length;i++) {
            if(alignments[i].checked) {
                alignment = alignments[i].value;
                break;
            }
        }
        if(alignment && document.getElementById('alignment_image').getAttribute('rel') != alignment) {
            document.getElementById('alignment_preview').innerHTML = '<img id="alignment_image" rel="'+alignment+'" src="'+umapper.pluginUri+'/content/img/alignment_'+alignment+'.png" alt=""/>';
        }
    },
    
    cancelMapInsert         : function()
    {
        document.getElementById('put_dialog').style.display = 'none';
        document.getElementById('put_background').style.display = 'none';
    },
    
    insertMapTag            : function(frm)
    {
        var collection = jQuery(frm).find("input:not(input:button):not(input:submit):not(input:radio),input:radio:checked");
        var $this = this;
        collection.each(function () {
            $this['options'][this.name] = this.value;
        });
        top.send_to_editor(this.insertTagGenerator());
        top.tb_remove();
    },
    
    insertTagGenerator      : function()
    {
        var content = this['options']['content'];
        delete this['options']['content'];
        
        var attrs = '';
        jQuery.each(this['options'], function(name, value){
            if (value != '') {
                attrs += ' ' + name + '="' + value + '"';
            }
        });
        return '[umap' + attrs + ']';    
        //return '[umap' + attrs + ']' + content + '[/umap]'    
    },
    getCheckedValue         : function(radioObj) 
    {
    	if(!radioObj)
    		return "";
    	var radioLength = radioObj.length;
    	if(radioLength == undefined)
    		if(radioObj.checked)
    			return radioObj.value;
    		else
    			return "";
    	for(var i = 0; i < radioLength; i++) {
    		if(radioObj[i].checked) {
    			return radioObj[i].value;
    		}
    	}
    	return "";
    }    
}
umapper = new Umapper();

// UMapper Map editor configuration
// Major version of Flash required
var umap_requiredMajorVersion = 9;
// Minor version of Flash required
var umap_requiredMinorVersion = 0;
// Minor version of Flash required
var umap_requiredRevision = 28;