var currentTime = new Date();

function ce_logout(response){
        //alert(response.responseText);
        var url = contextPath+'/ContextualEdit/ceLogout.jsp?time='+currentTime.getTime();
        var success_url = "https://"+icatURL+"/icat/home/ceLogout.jsp?path="+escape(window.location.href);
        new Ajax.Request(url, {
                                method: 'get',
                                //the goahead logout jsp is going to redirect to icat, so it is not success in this sense, use onComplete
                                onComplete: function(res){window.location = success_url},
                                onException: function(req, ex){alert(ex.message)}
                        });

}

function ce_is_login_response(response){
        return response.responseText.replace(/\s/g, '') == 'true';
}

function ce_highlight(){
        $$(".context_edit").each(function(el){
                                        el.setStyle({backgroundColor: '#acde57', color:'#fff', cursor: 'pointer'});
                                        el.select('img').each(function(img){image_hightlight(img, el); } );
                                        el.select('a').each(function(a){url_hightlight(a, el); } );
                                        if(el.select('p').length > 0 || el.select('#block').length > 0) el.setStyle({display:'block'});
                                        });
        initModalWindow();
}

function ce_preview(){
        $$(".context_edit").each(function(el){
                                        el.setStyle({backgroundColor: '', color:'', cursor: 'default'});
                                        el.select('img').each(function(img){image_preview(img, el)});
                                        el.select('a').each(function(a){url_preview(a, el)});
                                        });
        $$(".modalWindow").each(function(el){Event.stopObserving(el, "click");});

}

var onmouseover_arr = {};
var url_arr = {};

function image_hightlight(img, el){
	var browser=navigator.appName;
	if (browser=="Microsoft Internet Explorer" && img.className.indexOf('png') >= 0)
        img.setStyle({border:'3px solid #62970c', margin:'0'});
	else
        img.setStyle({border:'3px solid #62970c', margin:'0', background:'#acde57'});

    onmouseover_arr[el.id]=img.onmouseover;
    img.onmouseover='';
}

function url_hightlight(a, el){
        url_arr[el.id]=a.href;
        a.href='#';
}

function url_preview(a, el){
        a.href=url_arr[el.id];

}

function image_preview(img, el){
        img.setStyle({border:'0px',backgroundColor: ''});
        img.onmouseover=onmouseover_arr[el.id];

}

function initModalWindow(){
        $$(".modalWindow").each(function(el){
                Event.observe(el, "click", function(){
                        $$(".modal-screen")[0].setStyle({display:'block'});
                        var url = contextPath+"/ContextualEdit/"+$(el.id+"_jsp").value;

		                var image_src = '';
		                if(el.select('img').length > 0){
		                        image_src = '&image_src='+escape(el.select('img')[0].src);
		                        //alert(image_src);
		                }
                        var parameters = "id="+$(el.id+"_top_model_id").value+"&ce_id="+el.id+"&"+$(el.id+"_extra_params").value+image_src;
                        new Ajax.Request(url, {
                                method: 'post',
                                parameters: parameters,
                                onSuccess: function(response) {
                                        fillCeContent(response);
                                        Effect.Appear('ce_window');
                                }
                        });
                });
        });

        initModalClose();
}

function fillCeContent(response){
        $("ce_content").innerHTML=response.responseText;
        var content_text = $("ce_content").select("#ce_content_text")[0];
        var width = parseInt(content_text.getStyle('width').replace(/[^\d]/g,''));
        var height = parseInt(content_text.getStyle('height').replace(/[^\d]/g,''));
        var padding_left = parseInt(content_text.getStyle('padding-left').replace(/[^\d]/g,''));
        var padding_right = parseInt(content_text.getStyle('padding-right').replace(/[^\d]/g,''));

        adjust_width_obj = $('adjust_width');
        if(adjust_width_obj)
                adjust_width = parseInt(adjust_width_obj.value);
        else
                adjust_width = 0;

        $("ce_window").setStyle({'width':width+padding_left+padding_right+adjust_width+'px', 'height':height+'px', marginLeft:(-width/2)+'px'});
}

function ce_handle_text(response, args){
//      alert(args.ce_id);
//      alert(args.ce_value);
        fillCeContent(response);
        if(response.responseText.toLowerCase().indexOf('erromessage') < 0 && response.responseText.toLowerCase().indexOf('errormessage') < 0
        	 && response.responseText.toLowerCase().indexOf('logged in') < 0){
                var replace_content = args.ce_value;
                if($("ce_new_value"))
                        replace_content = $("ce_new_value").value;

                if($(args.ce_id).select('#ce_replace').length > 0){
                        $(args.ce_id).select('#ce_replace')[0].innerHTML = replace_content;
                }else{
                        $(args.ce_id).innerHTML = replace_content;

                }
        }
}

function initModalClose(){
        Event.observe($$(".modal-close")[0],"click", function(){
                $$(".modal-screen")[0].hide();
                Effect.Fade('ce_window');
        });

}

function ptAsyncPost(url, form, handler, args){
        new Ajax.Request(url, {
                                method: 'post',
                                onSuccess: function(response){eval(handler+"(response,args)")},
                                parameters: getFormValues(form),
                                encoding: form.enctype
                        });
}

Event.observe(window, 'load', function() {
                 if(typeof show_ce_control_pannel != 'undefined' && show_ce_control_pannel){
                        $('ce_control_pannel').show();

                }
});