     var pageinfo, cms_pages, templateinfo;

	 $(document).ready(function () {
  	     cms_ajax('get','Page::getPages',{},function(data){
              if(data == null || !data.result){
                 alert('Sivun tietoja ei voitu ladata. Yritä uudelleen! Virhe ('+(data ? data.error:'')+')');
              } else {
                 cms_pages = data.result;
                 setInterval("updateContent()", 300);
              }
              return false;   
          },{});
/* 
         $.ajax({
            type: 'get',
            url: '/ajax.html?action=Page::getPages',
            dataType: 'json',
            success: function(data, textStatus){
              if(!data.result){
                 alert('Sivun tietoja ei voitu ladata. Yritä uudelleen! Virhe ('+data.error+')');
              } else {
                 cms_pages = data.result;
                 setInterval("updateContent()", 300);
              }
              return false;   
          },
          error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('Sivun tietoja ei voitu ladata. Yritä uudelleen! Virhe ('+textStatus+')');
            return false;
        }
       });
*/
       /*haetaan jotain????*/
/*
       $('.cms_link').each(function(){
            var hrefSections = String(this.href).split("/");
            cms_section = hrefSections[hrefSections.length - 1];
            this.href = '#'+cms_section;
        });
*/       
	 });   
    var cms_editableobject_original_height;
    var cms_dblclick_func = function () {
           $(this).unbind('dblclick.cms_tuplaklikki');
            var options = jQuery.data(this, "cms_editable_options"); //talletetut optionit
//            var uid = jQuery.data(this);
            var uid = options.name;
            var inputname = 'cms_editable_content_'+uid;
            cms_editableobject_original_height = $(this).height();
            var height = $(this).height()+35;
            if(height < 200){
               height = 200;
               $(this).height(height);
            }   
            switch(options.type){
              case 'fck':
              case 'text':
                var formdata = $.create('textarea', {'name':inputname,'id':inputname,'style':'width: '+$(this).width()+'px; height: '+height+'px;'},[$(this).html()+" "]);
//                console.log(formdata,'#'+inputname);
                $(this).html(formdata);
//                  $.fck.destroy(  );
                  $('#'+inputname).fck({'toolbar':'cms_simple', 'width':$(this).width()+'px', 'height':height+'px'});
                break;
              case 'image':
                var formdata = $.create('textarea', {'name':inputname,'id':inputname,'style':'width: '+$(this).width()+'px; height: '+height+'px;'},[$(this).html()+" "]);
                $(this).html(formdata);
//                $.fck.destroy(  );
                $('#'+inputname).fck({'toolbar':'cms_image', 'width':$(this).width()+'px','height':height+'px'});
                break;
              default:
                break;   
             }
             var form = $.create('form', {'id':'cms_editable_content_form_' + uid, 'onSubmit':"cms_onsubmit_func(this); return false;"},[]);
             $('#cms_editable_content_' + uid).wrap(form);
             return false;
    };
	  
    function cms_onsubmit_func(formi) {
                if($.fck) $.fck.update();
                var formid = $(formi).parent().get(0);
                var options = jQuery.data(formid, "cms_editable_options");
//                var uid = jQuery.data(formid);
                var uid = options.name;
                var inputname = 'cms_editable_content_'+uid;
                $.ajax({
                  type: 'post',
                  url: '/cms_ajax/Content::save:p_,s_user',
//                  url: '/ajax.html?action=Content::save&p[]=post&p[]=session.user.id',
                  data: {'name':options.name,'group':(options.group != '' ? options.group:cms_section),'content': $('#'+inputname).val(),'public_start':'','comment':''},
                  dataType: 'json',
                  selector: $(formi).parent(),
                  success: function(d, textStatus){
                    if(!d.result){
                        alert('virhe');
                        alert(d.errors);
                    } else {
                        alert('Tiedot talletettu! (id:'+d.result+')');
                        $(this.selector).html( $('#'+inputname).val() );
                        if($(this.selector).hasClass('cms_fixedsize'))
                          $(this.selector).height(cms_editableobject_original_height);
                        $(this.selector).unbind('dblclick.cms_tuplaklikki').bind('dblclick.cms_tuplaklikki', cms_dblclick_func);
                    }
                    return false;   
                  },
                  error: function (XMLHttpRequest, textStatus, errorThrown) {
                    //alert(XMLHttpRequest.status);
                    //alert(XMLHttpRequest.responseText);
                    return false;
                  }
                }); 
                return false;               
    };

(function($){
 $.fn.cms_toggle_editable = function(options) {
    var defaults = {
      css_default : 'editable_editarea'
      ,css_hover  : 'editable_hover'
      ,enable     : false
    };
    var options = $.extend(defaults, options);
   
    return this.each( function() {
     if(options.enable == true){
//       if(window.console) console.log([$(this).css('border')]);
       $(this).css('border','dashed 1px red');
       $(this).css('min-height','10px');
//       if(window.console) console.log([$('a', this).html()]);
       $('*', this).unbind('click').unbind('dblclick');
       $('a', this).bind('click', function(){return false;});
       
       $(this).addClass(options.css_default);
       $(this).hover(function(){  $(this).addClass(options.css_hover); }, function(){ $(this).removeClass(options.css_hover); });
       $(this).unbind('dblclick.cms_tuplaklikki').bind('dblclick.cms_tuplaklikki', cms_dblclick_func);
     } else { 
       $(this).removeClass(options.css_default);
       $(this).removeClass(options.css_hover);
       $(this).hover(function(){}, function(){});
       $(this).unbind('dblclick.cms_tuplaklikki');
     }  
   });
 };
})(jQuery);
	 function updateContent(){
	     //mikä sivu (ankkuri)
	     if(document.location.hash != currentAnchor){
	       currentAnchor = document.location.hash;
           cms_last_section = cms_section;
           cms_section = currentAnchor.substring(1);
           if(!cms_section){
              var hrefSections = String(document.location).split("?")[0];
              var hrefSections = hrefSections.split("/");
              cms_section = hrefSections[hrefSections.length - 1];
              cms_section = cms_section.replace("#","");
              if(!cms_section) cms_section = default_section;
           }

           //sivulle on tultu ankkurilla 
           if(currentAnchor){ 
             //otsikkotiedot
             newtitle = $('a[href$='+cms_section+'][title]:first').attr('title');
             if(newtitle)
               document.title = newtitle
             else
               document.title = default_title;  
           }
           //onko dynaaminen sivu?
           if(cms_pages[cms_section])
             pageinfo = cms_pages[cms_section];
            else 
             pageinfo = {};

           //dynaaminen sivu löytynyt ja sillä on eri template kuin nykyiselä sivulla!
           if(cms_last_section && cms_pages[cms_last_section].template != pageinfo.template){
             window.location.href=pageinfo.url;
             return true;
           }  

           // haetaan templaten tarkemmat tiedot /yksittäisen muokattavat osiot
           if(pageinfo.template && cms_templates && cms_templates[pageinfo.template]) 
                templateinfo = cms_templates[pageinfo.template];
           else     
                templateinfo = {};

           //jos google käytössä niin merkitään sivu luetuksi 
           if(pageTracker)
             pageTracker._trackPageview(cms_section);

           //käydään yksittäiset elementit läpi ja haetaan sisällöt 
           jQuery.each( templateinfo, function() {

             elem =  $(this.selector).get(0);
             if(!elem) return true;
            
             //annetaan elementille templatetiedot
             jQuery.data(elem, "cms_editable_options", this );

             if(this.disable && jQuery.inArray( cms_section, this.disable ) > -1) {
                 $(this.selector).html('');
                 $(this.selector).cms_toggle_editable({'enable':'false'});
                 return true;
             }
           //sivulle on tultu ankkurilla ja VAIN SILLOIN haetaan sisältö via ajax
           if(currentAnchor){ 
             $.ajax({
              type: 'get',
              selector: this.selector,
              url: '/cms_ajax/Content::get:g_name,g_group?name='+this.name+'&group='+(this.group != '' ? this.group:cms_section)+'',
//              url: '/ajax.html?action=Content::get&p[]=get.name&p[]=get.group&name='+this.name+'&group='+(this.group != '' ? this.group:cms_section)+'',
              dataType: 'json',
              success: function(data, textStatus){
                if(!data.result.content){
                 if(this.err404){
                   $(this.selector).html( this.err404 );
                 }else{
                   $(this.selector).html( data.errors );
                 }  
                } else {
                 $(this.selector).html( data.result.content );
                }
                return false;   
              },
              error: function (XMLHttpRequest, textStatus, errorThrown) {
               $(this.selector).html( textStatus );
               //(XMLHttpRequest.responseText);
               return false;
              }
             });
           }//if current

             //tässä pitäisi olla joku hevimpi tarkistus!
             if(this.editable && cms_editable){
               $(this.selector).cms_toggle_editable({'enable':true});
             } else {
               $(this.selector).cms_toggle_editable({'enable':false});
             }  

           }); //each
             if( jQuery.isFunction(updateContentSpecial) )
               updateContentSpecial();
	       }
	  }//end func
	  
	  function cms_ajax(type,cmd,data,callback_func,extra_objects){
             url = '/cms_ajax/'+cmd;
	         var o = {
              type: type,
              url: url,
              data: data,
              dataType: 'json',
              success: callback_func,
              error: function (XMLHttpRequest, textStatus, errorThrown) {
               //alert(XMLHttpRequest.responseText);
               return false;
              }
             }
             o = $.extend(o,extra_objects);
             $.ajax(o);
             return false;
	  }

