﻿/// <reference path="OwcBookmarkServices.js" />
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//                          BookmarkAdapter
//

if(!Olive.BookmarkDeliciousAdapter)
{
    Olive.BookmarkDeliciousAdapter = function()
    {
    }
    
    Olive.BookmarkDeliciousAdapter.DeclareType = function OwcBookmarkDeliciousAdapter_DeclareType()
    {
       ///  <summary>
       ///    Declares methods and properties of <see ref="BookmarkDeliciousAdapter"/> class
       ///  </summary>
       ///  <remarks>
       ///      The most properties and methos are declared in base class <see ref="Olive.BookmarkAdapter">
       ///  </remarks>
       
       this.ReplaceMethod("init", OwcBookmarkDeliciousAdapter_init);  //Virtual this function must be overriden in subclasses, define BMFields in init method 
    }
    
    function OwcBookmarkDeliciousAdapter_init(oWindowOptions)
    {
        this.m_oWindowOptions = oWindowOptions;
        this.m_sAdapterURL = "http://del.icio.us/post";
        this.m_sAdapterName = "del.icio.us";
        
        // declare query string parameters separator
        this.m_sParamSeparator = ";";

        // Bookmark data fields
        this._declareField(Olive.BookmarkField.FieldID.Title, "title", true);
        this._declareField(Olive.BookmarkField.FieldID.URL, "url", true);
        this._declareField("v", "v", true, 4); // api constant parameter, has default value
        this._declareField("jump", "jump", true, "close"); // api constant parameter, has default value

        this._declareField(Olive.BookmarkField.FieldID.Description, "notes", false);
        
    }
    
    JScript.Type.RegisterClass("Olive.BookmarkDeliciousAdapter", Olive.BookmarkDeliciousAdapter, Olive.BookmarkAdapter);
}

if(!Olive.BookmarkDigThisAdapter)
{
    Olive.BookmarkDigThisAdapter = function()
    {
    }
    
    Olive.BookmarkDigThisAdapter.DeclareType = function OwcBookmarkDigThisAdapter_DeclareType()
    {
       ///  <summary>
       ///    Declares methods and properties of <see ref="BookmarkDeliciousAdapter"/> class
       ///  </summary>
       ///  <remarks>
       ///      The most properties and methos are declared in base class <see ref="Olive.BookmarkAdapter">
       ///  </remarks>
    
       this.ReplaceMethod("init", OwcBookmarkDigThisAdapter_init);  //Virtual this function must be overriden in subclasses, define BMFields in init method 
    }
    
    function OwcBookmarkDigThisAdapter_init(oWindowOptions)
    {
        this.m_oWindowOptions = oWindowOptions;
        this.m_sAdapterURL = "http://digg.com/submit";
        this.m_sAdapterName = "digg.com";
        
        // Bookmark data fields        
        this._declareField(Olive.BookmarkField.FieldID.Title, "title", true);//max 60 chars!
        this._declareField(Olive.BookmarkField.FieldID.URL, "url", true);
        this._declareField(Olive.BookmarkField.FieldID.Category, "topic", true, "world_news");//user can change it
        this._declareField(Olive.BookmarkField.FieldID.Description, "bodytext", false, "");
        this._declareField("media", "media", true, "news"); // api constant parameter, has default value
        //this._declareField("phase", "phase", true, 2);      // undocumented digg param???
    }
    
    JScript.Type.RegisterClass("Olive.BookmarkDigThisAdapter", Olive.BookmarkDigThisAdapter, Olive.BookmarkAdapter);
}
