////////////////////////////////////////////////
// cms2add template engine
// $Revision: 107 $
//
// Lizenzbedingungen siehe licence.html
// Projekt-URL: www.cms2add.de
//
// Copyright (C) 2004 - 2009  Holger Münzer
////////////////////////////////////////////////

//________________________________________Common________________________________

 function go2(link) {
   location.href = link;
   }
 function onLOAD() {
   if(!document.getElementsByTagName) return;
   var anchor = document.getElementsByTagName("a");           //external links
   for(var i = 0; i < anchor.length; i++) {
     if(anchor[i].getAttribute("rel") == "external")
     anchor[i].target = "_blank";
     }
   var input = document.getElementsByTagName("input");        //internal labels and autofocus
   for(var i=0; i < input.length; i++) {
     if(!field && "autofocus" == input[i].getAttribute("rel")) {
       input[i].focus();
       input[i].select();
       }
     if(!input[i].getAttribute("title") || input[i].value != '') continue;
     if(input[i].getAttribute("type") != 'text') continue;
     input[i].value = input[i].getAttribute("title");
     if(0 < input[i].className.indexOf("legend")) continue;
     if(input[i].className)
     input[i].className = input[i].className+' legend';
     else input[i].className = 'legend';
     }
   if(typeof(tinyMCE) != 'undefined')
   tinyMCE.init({
     mode : "specific_textareas",
     editor_selector : "tiny",
     theme : "advanced",
     language : "de",
     content_css : "styles/tiny.css",
     popup_css_add : "styles/tiny.css",
     body_class : "standard",
     plugins : "tabfocus,safari,table,advhr,cimage,clink,inlinepopups,media,contextmenu,paste",
     theme_advanced_buttons1 : "bold,italic,underline,strikethrough,forecolor,|,undo,redo,removeformat,|,link,anchor,image,media,|,table,charmap,advhr,|,code",
     theme_advanced_buttons2 : "justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,outdent,indent,blockquote,|,formatselect,fontsizeselect",
     theme_advanced_buttons3 : "",
     theme_advanced_toolbar_location : "external",
     theme_advanced_toolbar_align : "left",
     theme_advanced_cimage_styles : "Links=img_left;Rechts=img_right;Im Text=img_inline",
     theme_advanced_clink_rels : "Neues Fenster=external",
     theme_advanced_statusbar_location : "bottom",
     theme_advanced_resizing : true,
     theme_advanced_resize_horizontal : false,
     extended_valid_elements : "iframe[src|width|height|name|align]",
     tabfocus_elements : ':prev,:next',
     entity_encoding : "numeric",
     forced_root_block : '',
     setup : function(ed) {
       ed.onInit.add(function(ed) {
         tinymce.dom.Event.add(ed.getWin(), 'focus', function(e) {
           field = null;
           });
         });
       }
     });
   }
 function onSUBMIT() {
   if(!document.getElementsByTagName) return;
   var input = document.getElementsByTagName("input");
   for(var i=0; i < input.length; i++) {
     if(input[i].getAttribute("title") && input[i].getAttribute("title") == input[i].value)
     input[i].value = '';
     }
   }
 function SUBMIT() {
   onSUBMIT();
   document.forms[0].submit();
   }
 function label(input) {
   if(typeof(input) != 'object') return;
   if(input.value != '') return;
   input.value = input.getAttribute("title");
   if(0 < input.className.indexOf("legend")) return;
   if(input.className) input.className = input.className+' legend';
   else input.className = 'legend';
   }
 function unlabel(input) {
   if(typeof(input) != 'object') return;
   if(input.value != input.getAttribute("title")) return;
   input.value = '';
   if(!input.className) return;
   if(0 > (pos = input.className.indexOf("legend"))) return;
   input.className = input.className.substring(0,pos-1);
   }
 window.onload = onLOAD;

//________________________________________Layers________________________________

 function hide_select(){
   if (navigator.appName != 'Microsoft Internet Explorer') return;
   if (navigator.appVersion.match(/MSIE (\d+)/)[1]*1 > 6) return;
   for (var i = 0; i < document.forms[0].length; ++i) {
     if(document.forms[0].elements[i].type != "select-one") continue;
     document.forms[0].elements[i].style.visibility = 'hidden';
     }
   }
 function show_select(){
   if (navigator.appName != 'Microsoft Internet Explorer') return;
   if (navigator.appVersion.match(/MSIE (\d+)/)[1]*1 > 6) return;
   for (var i = 0; i < document.forms[0].length; ++i) {
     if(document.forms[0].elements[i].type != "select-one") continue;
     document.forms[0].elements[i].style.visibility = 'visible';
     }
   }

//________________________________________Checkboxes____________________________

 function setboxes(loop, state){
   for (var i = 0; i < document.forms[0].length; ++i) {
     if(document.forms[0].elements[i].type != "checkbox") continue;
     if (!document.forms[0].elements[i].getAttribute("alt")) continue;
     if (loop != document.forms[0].elements[i].getAttribute("alt")) continue;
     document.forms[0].elements[i].checked = state;
     }
   }

//________________________________________BCode_________________________________

 var field = "";
 function storeCaret(input) {
   field = input;
   field.insertable = true;
   if (field.createTextRange) field.caretPos = document.selection.createRange().duplicate();
   if(typeof(tinyMCE) != 'undefined') tinyMCE.activeEditor = null;
   }
 function storeField(input) {
   field = input;
   if(typeof(tinyMCE) != 'undefined') tinyMCE.activeEditor = null;
   }
 function unsetcode() {
   if(field){
     if(field.caretPos) {                                                        // IE
       field.caretPos.text = field.caretPos.text.replace(/\[[^\]]+\]/g,"");
       return;
       }
     if(typeof field.selectionStart != 'undefined') {                            // Gecko
       var startpos = field.selectionStart;
       var endpos = field.selectionEnd;
       var area = field.value.substring(startpos, endpos);
       area = area.replace(/\[[^\]]+\]/g,"");
       field.value = field.value.substr(0, startpos) + area + field.value.substr(endpos);
       return;
       }
     field.value = field.value.replace(/\[[^\]]+\]/g,"");                        // Other
     return;
     }
   if(tinyMCE.activeEditor){
     var text = tinyMCE.activeEditor.selection.getContent();
     if(!text) return;
     tinyMCE.execCommand('mceReplaceContent',false,text.replace(/\[[^\]]+\]/g,""));
     return;
     }
   alert("Bitte erst markieren");
   }
 function spancode(text,block) {
   var bcode = text.split(" ");
   if(bcode.length < 2) bcode = text.split("=");
   var start = "[" + text + "]";
   var end =  "[/" + bcode[0] + "]";
   if(block){
     start = start + '\n';
     end = '\n' + end;
     }
   if(field){
     insert(start,end);
     return;
     }
   if(tinyMCE.activeEditor){
     tinyMCE.execCommand('mceReplaceContent',false,start+'{$selection}'+end);
     return;
     }
   alert("Bitte erst den Cursor platzieren");
   }
 function setcode(text){
   setstring('['+text+']');
   }
 function setstring(text){
   if(field){
     insert(text,'');
     return;
     }
   if(tinyMCE.activeEditor){
     tinyMCE.execCommand('mceReplaceContent',false,text);
     return;
     }
   alert("Bitte erst den Cursor platzieren");
   }
 function setfield(){
   var code = document.forms[0].select_field.value;
   if(!code) return;
   setcode(code);
   }
 function setcondition(){
   var code = document.forms[0].select_condition.value;
   if(!code) return;
   spancode(code);
   }
 function insert(start,end) {
   if(!field) return;
   field.focus();
   if(!field.insertable){                                        //Replace only
     field.value = start + end;
     return;
     }
   if(field.caretPos) {                                          // IE
     field.caretPos.text = start + field.caretPos.text + end;
     return;
     }
   if(typeof field.selectionStart != 'undefined') {              // Gecko
     var startpos = field.selectionStart;
     var endpos = field.selectionEnd;
     var area = field.value.substring(startpos, endpos);
     field.value = field.value.substr(0, startpos) + start + area + end + field.value.substr(endpos);
     var pos;
     if (area.length == 0) pos = startpos + start.length;
     else pos = startpos + start.length + area.length + end.length;
     field.selectionStart = pos;
     field.selectionEnd = pos;
     return;
     }
   field.value = field.value + start + end;                      // Other
   }
 function setimage(bcode,src,extra,alt){
   if(field){
     setstring('['+ bcode +']');
     return;
     }
   if(tinyMCE.activeEditor && src){
     var ed = tinyMCE.activeEditor;
     var alt = ed.dom.encode(alt);
     tinyMCE.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});
     ed.dom.setAttribs('__mce_tmp', { 'src' : src, 'alt' : (alt?alt:''), 'title' : (alt?alt:''), 'class' : extra, 'id' : '' });
     ed.undoManager.add();
     return;
     }
   alert("Bitte erst den Cursor platzieren");
   }
 function setlink(bcode,href){
   if(field){
     spancode(bcode);
     return;
     }
   if(tinyMCE.activeEditor && href){
     var ed = tinyMCE.activeEditor;
     tinyMCE.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});
     tinymce.each(ed.dom.select("a"), function(n) {
       if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
         ed.dom.setAttribs(n, { href : href, 'class' : 'link' });
         }
       });
     return;
     }
   alert("Bitte erst den Cursor platzieren");
   }
 function setthumb(bcode,src,thumb,alt){
   if(field){
     setstring('['+ bcode +']');
     return;
     }
   if(tinyMCE.activeEditor){
     var alt = tinyMCE.activeEditor.dom.encode(alt);
     text = '<a rel="lightbox_" href="' + src + '" title="' + (alt?alt:'') + '"><img src="' + thumb + '" alt="' + (alt?alt:'') + '" /></a>';
     tinyMCE.execCommand('mceReplaceContent',false,text);
     return;
     }
   alert("Bitte erst den Cursor platzieren");
   }
 function setflash(bcode,src,width,height,style,bgcolor){
   if(field){
     setstring('['+ bcode +']');
     return;
     }
   if(tinyMCE.activeEditor){
     if(!src || !width || !height) return;
     text = (style ? '<div class="' + style + '">' : '') + '<object data="' + src + '" width="' + width + '" height="' + height + '" type="application/x-shockwave-flash"><param name="src" value="' + src + '" />' + (bgcolor ? '<param name="bgcolor" value="' + bgcolor + '" />' : '<param name="wmode" value="transparent" />') + '</object>' + (style ? '</div>' : '');
     tinyMCE.execCommand('mceReplaceContent',false,text);
     return;
     }
   alert("Bitte erst den Cursor platzieren");
   }

//______________________________________Dynamic Layers__________________________

 function create_input(name,value){
   if(document.forms[0].elements[name]) return;
   var el = document.createElement('input');
   el.type = 'hidden';
   el.name = name;
   el.value = value;
   document.forms[0].appendChild(el);
   }
 function view(target){
   if(document.getElementById(target)){
     $("#" + target).show();
     return;
     }
   create_input('show_layer',target);
   SUBMIT();
   }
 function help(topic){
   create_input('show_layer','help');
   create_input('help_quick',topic);
   SUBMIT();
   }
 function picdate(date_formated,target){
   if (!document.getElementById) return;
   if(date_formated){
     var date = date_formated.split(".");
     var year = date[2] * 1;
     var month = date[1] * 1;
     }
   var now = new Date();
   if(year < 1900 || year > 2100 || month < 1 || month > 12){
     var year = now.getFullYear();
     var month = now.getMonth()+1;
     }
   if (!document.getElementById('pic_date')){
     create_input('show_layer','pic_date');
     create_input('date_quick',year + '-' + month + '-1');
     if(target) create_input('pic_target',target);
     SUBMIT();
     return;
     }
   $("#pic_date").show();
   var wday = new Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");
   var mon = new Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
   var month_1st = new Date(year, month-1, 1);
   var month_last = new Date(year, month, 0);
   var start_empty = new Array(6,0,1,2,3,4,5);
   var end_empty = new Array(0,6,5,4,3,2,1);
   var year_start = now.getFullYear() + 5;
   var year_end = now.getFullYear() - 60;
   var scheduler = "";
   var z = 0;
   //build calendar
   scheduler += '<div class="calendar_header"><a href="javascript:picdate(\'01.' + (month>1?(month-1):12) + '.' + (month>1?year:(year-1)) + '\')"><img src="./images/icon_prev.gif" alt="Letzter Monat" /></a> ';
   scheduler += '<select class="select" onchange="picdate(this.options[this.selectedIndex].value)">';
   for (z = 0; z <= 11; z++)
   scheduler += '<option value="01.' + (z + 1) + '.' + year + '"' + (z+1==month?'selected="selected"':'') + '>' + mon[z] + '</option>';
   scheduler += '</select>';
   scheduler += '<select class="select" onchange="picdate(this.options[this.selectedIndex].value)">';
   if(year > year_start || year < year_end)
   scheduler += '<option value="01.' + month + '.' + year + '" selected="selected">' + year + '</option>';
   for (z = year_start; z >= year_end; z--)
   scheduler += '<option value="01.' + month + '.' + z + '"' + (z==year?'selected="selected"':'') + '>' + z + '</option>';
   scheduler += '</select> ';
   scheduler += '<a href="javascript:picdate(\'01.' + (month<12?(month+1):1) + '.' + (month<12?year:(year+1)) + '\')"><img src="./images/icon_next.gif" alt="Nächster Monat" /></a></div>';
   for (z = 0; z <= 6; z++)
   scheduler += '<div><h3>' + wday[z] + '</h3></div>';
   var empty_cells = start_empty[month_1st.getDay()];
   for (z = 0; z < empty_cells; z++)
   scheduler += '<div></div>';
   var days = month_last.getDate();
   var today = now.getDate()+'.'+(now.getMonth()+1)+'.'+now.getFullYear();
   for (z = 1; z <= days; z++){
     var cell_date = z+'.'+month+'.'+year;
     scheduler += '<div'+(cell_date==today?' class="calendar_today"':'')+'><a href="javascript:setstring(\''+cell_date+'\')">'+z+'</a></div>';
     }
   var empty_cells = end_empty[month_last.getDay()];
   for (z = 0; z < empty_cells; z++)
   scheduler += '<div></div>';
   scheduler += '<div class="calendar_footer"><a href="javascript:picdate(\'01.' + (now.getMonth()+1) + '.' + now.getFullYear() + '\')">Heute</a></div>';
   scheduler += '<input type="hidden" name="date_quick" value="' + year + '-' + month + '-01" />';
   //write into document
   $("#calendar_frame").html(scheduler);
   //focus target
   if(target) field = document.getElementsByName(target)[0];
   }
