
var Cms = {

  controlerUrl:'/cms/controler.aspx',
  currentEditor: null,
  
  Request: function(params, confirmation){
    if(confirmation && !confirm(confirmation)){ return; }
    new Ajax.Request(Cms.controlerUrl, { parameters:params });
  },

  Update: function(container, params, confirmation){
    if(confirmation && !confirm(confirmation)){ return; }
    new Ajax.Request(Cms.controlerUrl, { parameters:params, onComplete:Cms.OnRequestComplete(container) });
  },
  
  OnRequestComplete: function(container){
    return function(transport){
      var contentType = transport.getHeader('Content-Type');
      if(contentType && !contentType.include('text/javascript')){
        $(container).update(transport.responseText).show();
      }
    }
  },
  
  Submit: function(form){
    Cms.Request(Form.serialize(form));
  },
  
  SaveDraft: function(container, textarea, contentId){
    var editor = FCKeditorAPI.GetInstance(textarea); 
    Cms.Update(container, { ActionType:'SaveDraft', ContentId:contentId, DraftText:editor.GetXHTML(true) });
  },
  
  ShowContent: function(container, contentId){
    Cms.Update(container, { ActionType:'ShowContent', ContentId:contentId });
  },
  
  ShowDraft: function(container, contentId){
    Cms.Update(container, { ActionType:'ShowDraft', ContentId:contentId });
  },
  
  PublishContent: function(container, contentId){
    Cms.Update(container, { ActionType:'PublishContent', ContentId:contentId });
  },
  
  DestroyDraft: function(container, contentId){
    if(confirm('This operation is undoable. Destroy this draft?')){
      Cms.Update(container, { ActionType:'DestroyDraft', ContentId:contentId });
    }
  },
  
  InitializeImages: function(editorName) {
    Cms.currentEditor = editorName;
    $('cms-imagemanager-wrapper').show();
	var nc = $("cms-imagemanager-align");
	nc.hide();
    new Ajax.Request(Cms.controlerUrl, { parameters: { ActionType: 'InitializeImages' } } );
  },
  
  InsertHtml: function(html){
    if(!Cms.currentEditor){
      alert('Editor name not set.');
      return;
    }
    var fckEditor = FCKeditorAPI.GetInstance(Cms.currentEditor);
    if(fckEditor){
      fckEditor.InsertHtml(html);
    }else{
      alert('Editor window not found.');
    }
  },
  
  ImageCategoryDisplay: function(categoryId) {
  	var nc = $("cms-imagemanager-align");
	nc.hide();
    new Ajax.Request(Cms.controlerUrl, { parameters: { ActionType: 'ImageCategoryDisplay', CategoryId:categoryId  } } );
  },
  
  SelectFile: function(id, filePath, name){
	var content;
	$("cms-filemanagement-file-link").show();
	$("cms-imagemanager-align").hide();
	$("cms-imagemanager-images").setStyle({height: '508px'});
	$("cms-imagemanager-footer").setStyle({height: '42px'});
	$("cms-imagemanager-imgdetail").innerHTML=content = '<label style="width: 55px;">Name: <\/label>' + name + '<br \/>';
	$("filePath").value = filePath;
	$("linkName").value = name;
	$("cms-imagemanager-insert").innerHTML = '<a onclick="Cms.DeleteImage(' + id + ');" class="delete" style="margin-right: 10px; margin-bottom: 4px; margin-top: 0;">Delete File<\/a>';
  },
  
  SelectImage: function(id, name, description, width, height, filePath, thumbPath) {
	var content;
	$("cms-filemanagement-file-link").hide();
	$("cms-imagemanager-align").show();
	$("cms-imagemanager-images").setStyle({height: '350px'});
	$("cms-imagemanager-footer").setStyle({height: '200px'});
	//var nc = $("cms-imagemanager-align");
	//nc.show();
	$('txtImage').value = filePath;
	
	content = '<div class="thumb"><a target="_blank" href="' + filePath + '"><img src="' + thumbPath + '" alt="' + name + '" /><\/a><\/div>'
	content = content + '<label>Name: <\/label>' + name + '<br \/>';
	content = content + '<label>Height: <\/label>' + height + 'px<br \/>' + '<label>Width:<\/label>' + width + 'px' + '<br \/>';
	
	$("cms-imagemanager-imgdetail").innerHTML = content;
	$("cms-imagemanager-insert").innerHTML = '<a onclick="Cms.DeleteImage(' + id + ');" class="delete">Delete Image<\/a>';
  },
  
  FixSpacing: function(t, r, b, l){
    var f;
    f = $('ImageForm');
    if (f.ts){f.ts.value = t}
    if (f.rs){f.rs.value = r}
    if (f.bs){f.bs.value = b}
    if (f.ls){f.ls.value = l}
  },
  
  InsertFile:function(){
	f=$('FileForm');
	href=f.filePath.value;
	title=f.linkName.value;
	if(!href){
		alert('Please select file first!');
		return;
	}
	
	if(!title){
		title=href;
	}
	Cms.InsertHtml('<a href="'+href+'">'+title+'</a>');
	$('cms-imagemanager-wrapper').hide();
  },
  
  InsertImage:function(){
    var ts, ls, rs, bs, f, s, src;
    ts = 0;
    bs = 10;
    s = 'style="border:0px 0px 0px 0px;';
    f = $('ImageForm');
    if (f.alignment[0].checked) {
      s += 'float:right;';
      ls = 10;
      rs = 0;
    } else if (f.alignment[1].checked) {
      s += 'float:left;';
      ls = 0;
      rs = 10;
    }
    if (f.ts.value != ''){ ts = f.ts.value; }
    if (f.bs.value != ''){ bs = f.bs.value; }
    if (f.ls.value != ''){ ls = f.ls.value; }
    if (f.rs.value != ''){ rs = f.rs.value; }
    s += 'margin-top:' + ts + 'px; margin-bottom:' + bs + 'px; margin-left:' + ls + 'px; margin-right:' + rs + 'px;"';
    src = f.txtImage.value;
    if(!src){
      alert('Please select image first!');
      return;
    }
    
	Cms.InsertHtml('<img src="' + src + '" alt="" ' + s + ' />');  
	$('cms-imagemanager-wrapper').hide();
    
  },

  
  DeleteImage: function(id) {
	if(confirm('Delete this file?')){
	  $("cms-imagemanager-align").hide();
	  $("cms-filemanagement-file-link").hide();
      new Ajax.Request(Cms.controlerUrl, { parameters: { ActionType: 'DeleteImage', ImageId:id  } } );
    }
  },
  
  DeleteImageCategory: function(id) {
	if(confirm('Delete this folder?')){
	  var nc = $("cms-imagemanager-align");
	  nc.hide();
      new Ajax.Request(Cms.controlerUrl, { parameters: { ActionType: 'DeleteCategory', CategoryId:id  } } );
    }
  },
  
  RemoveControl: function(container, pageControlId, pageId){
    if(confirm('Remove this control from the page?')){
      Cms.Update(container, { ActionType:'RemoveControl', PageControlId:pageControlId, PageId:pageId });
    }
  },
  
  EditDraft: function(container, contentId){
    container = $(container);
    Cms.Update(container, { ActionType:'EditDraft', ContentId:contentId, Height:container.getHeight() });
  },
  
  EditContent: function(container, contentId){
    container = $(container);
    Cms.Update(container, { ActionType:'EditContent', ContentId:contentId, Height:container.getHeight() });
  }
  
};
