jQuery.ajaxSetup({ type:"POST", dataType:'json' });

var heap = {
  SUCCESS: 1,
  FAILURE: 0
};

heap.form = {};
heap.submit = {};
heap.media = {};
heap.media.sizes = {};

heap.api = {};
heap.config = { language:'en' };
heap.labels = {};
heap.urlmap = {};


heap.config['deploymode'] = 'prod';
heap.config['heap_location'] = '/heap';
heap.config['http_root'] = 'http://www.cloudraker.com';
heap.config['request_uri'] = '/cache/heap.en.js';
heap.config['script_url'] = '';
heap.config['upload_maxfiles'] = 50;
heap.config['upload_maxsize'] = '300MB';
heap.config['default_media_source'] = 'heap';
heap.config['version'] = '1.5.44040';
heap.config['last_build'] = '2009-06-26';
heap.config['thread_max_depth'] = 1;
heap.config['atom_types'] = {'project':[],'post':[],'propaganda':[],'page':{'meta_fields':{'atom_url':{'label':'Page URL','type':'text'}}},'article':[]};
heap.config['channel_types'] = {'normal':[]};
heap.config['reaction_types'] = ['comment'];
heap.config['user_meta'] = [];
heap.config['reaction_meta'] = {'user_email':{'label':'User email','type':'text'},'user_name':{'label':'User name','type':'text'}};
heap.config['media_meta'] = {'language':{'label':'Language','type':'select','options':[{'value':'both','label':'Both'},{'value':'fr','label':'French only'},{'value':'en','label':'English only'}]}};
heap.config['static_tag_prefixes'] = ['tag','category'];
heap.config['heap_logo'] = '/heap/static/heap/images/heap.png';
heap.config['heap_logo_mini'] = '/heap/static/heap/images/heap-mini.png';
heap.config['heap_module_location'] = '';
heap.config['current_language'] = 'en';
heap.config['plugins_location'] = '/heap_plugins';
heap.config['languages'] = ['en','fr'];
heap.config['now_datetime'] = '2010-08-30 15:47:00';
heap.config['now_timestamp'] = 1283197620;
heap.config['now_date'] = '2010-08-30';
heap.config['now_time'] = '15:47:00';
heap.config['mce'] = '';
heap.config['panels_visibility'] = {'HEAPM_Atom':{'edit':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'},'add':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'}},'HEAPM_Channel':{'edit':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'},'add':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'}},'HEAPM_Reaction':{'edit':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'},'add':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'}},'HEAPM_Media':{'edit':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'},'add':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'}},'HEAPM_User':{'edit':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'},'add':{'basics':'1','custom':'1','meta':'1','text':'1','tags':'1','others':'1','seo':'','documents':'1'}}};
heap.config['slug_selector_classes'] = {'HEAPM_Atom':{'api_class':'atoms','token':'atom'},'HEAPM_Channel':{'api_class':'channels','token':'channel'},'HEAPM_Reaction':{'api_class':'reactions','token':'reaction'},'HEAPM_User':{'api_class':'users','token':'user','show_field':'username'}};
heap.config['js_libs'] = [];
heap.config['google_map_api_key'] = 'ABQIAAAAWBtYopO4-Oq7WjRO7x0MJxQ-zlAeshOBBQzctNVgTtcDUvHqdxTgC7xvOw121pXXRwWx6Bb41X-iwQ';
heap.config['heap_title'] = 'CloudRaker';

heap.urlmap['root'] = "";
heap.urlmap['app_admin'] = "/heap";
heap.urlmap['app_docs'] = "/docs";
heap.urlmap['app_reactions'] = "/reactions";
heap.urlmap['tools_jsconfig'] = "/tools/jslib.js";
heap.urlmap['api_amf'] = "/heap/amf";
heap.urlmap['api_json'] = "/heap/json";
heap.urlmap['app_admin_static'] = "/heap/static/heap";
heap.urlmap['app_lang'] = "/heap/language";
heap.urlmap['app_lang_fr'] = "/heap/language/fr";
heap.urlmap['app_lang_en'] = "/heap/language/en";
heap.urlmap['app_doc_api'] = "/heap/apidoc";
heap.urlmap['app_doc_env'] = "/heap/environment";
heap.urlmap['app_admin_tagger'] = "/heap/batchTagger";
heap.urlmap['app_admin_login'] = "/heap/login";
heap.urlmap['app_admin_logout'] = "/heap/logout";
heap.urlmap['app_admin_atoms'] = "/heap/atoms";
heap.urlmap['app_admin_channels'] = "/heap/channels";
heap.urlmap['app_admin_reactions'] = "/heap/reactions";
heap.urlmap['app_admin_docs'] = "/heap/docs";
heap.urlmap['app_admin_users'] = "/heap/users";
heap.urlmap['app_admin_redirects'] = "/heap/redirects";
heap.urlmap['app_admin_tags'] = "/heap/tags";
heap.urlmap['app_admin_queue'] = "/heap/queue";
heap.urlmap['app_admin_atoms_drafts'] = "/heap/atoms/drafts";
heap.urlmap['app_admin_atoms_edit'] = "/heap/atoms/edit";
heap.urlmap['app_admin_channels_assign'] = "/heap/channels/assign";
heap.urlmap['app_admin_channels_edit'] = "/heap/channels/edit";
heap.urlmap['app_admin_docs_edit'] = "/heap/docs/edit";
heap.urlmap['app_admin_docs_list'] = "/heap/docs";
heap.urlmap['app_admin_docs_sizes'] = "/heap/docs/sizes";
heap.urlmap['app_admin_docs_modify'] = "/heap/docs/modify";
heap.urlmap['app_admin_docs_subtitles'] = "/heap/docs/subtitles";
heap.urlmap['app_admin_docs_upload'] = "/heap/docs/upload";
heap.urlmap['app_admin_docs_upload_meta'] = "/heap/docs/uploadMeta";
heap.urlmap['app_admin_docs_upload_tags'] = "/heap/docs/uploadTags";
heap.urlmap['app_admin_redirects_edit'] = "/heap/redirects/edit";
heap.urlmap['app_admin_reactions_edit'] = "/heap/reactions/edit";
heap.urlmap['app_admin_users_edit'] = "/heap/users/edit";
heap.urlmap['app_admin_queue_activejobs'] = "/heap/queue/active_jobs";
heap.urlmap['js_heap'] = "/cache/heap.en.js";

heap.labels['default'] = [];
heap.labels['default']['HEAP_Social::queue_fetch_latest_updates'] = "Fetching social network updates";
heap.labels['default']['hs_update_menu_title'] = "Social Network";
heap.labels['default']['hs_update_manage'] = "Manage social network updates";
heap.labels['default']['hs_update_type_twitter'] = "Twitter";
heap.labels['default']['hs_update_type_facebook'] = "Facebook";
heap.labels['default']['hs_update_type_flickr'] = "Flickr";
heap.labels['default']['hs_update_all_types'] = "All";
heap.labels['default']['date_F01'] = "January";
heap.labels['default']['date_F02'] = "February";
heap.labels['default']['date_F03'] = "March";
heap.labels['default']['date_F04'] = "April";
heap.labels['default']['date_F05'] = "May";
heap.labels['default']['date_F06'] = "June";
heap.labels['default']['date_F07'] = "July";
heap.labels['default']['date_F08'] = "August";
heap.labels['default']['date_F09'] = "September";
heap.labels['default']['date_F10'] = "October";
heap.labels['default']['date_F11'] = "November";
heap.labels['default']['date_F12'] = "December";
heap.labels['default']['date_M01'] = "Jan";
heap.labels['default']['date_M02'] = "Feb";
heap.labels['default']['date_M03'] = "Mar";
heap.labels['default']['date_M04'] = "Apr";
heap.labels['default']['date_M05'] = "May";
heap.labels['default']['date_M06'] = "Jun";
heap.labels['default']['date_M07'] = "Jul";
heap.labels['default']['date_M08'] = "Aug";
heap.labels['default']['date_M09'] = "Sep";
heap.labels['default']['date_M10'] = "Oct";
heap.labels['default']['date_M11'] = "Nov";
heap.labels['default']['date_M12'] = "Dec";
heap.labels['default']['date_l0'] = "Sunday";
heap.labels['default']['date_l1'] = "Monday";
heap.labels['default']['date_l2'] = "Tuesday";
heap.labels['default']['date_l3'] = "Wednesday";
heap.labels['default']['date_l4'] = "Thursday";
heap.labels['default']['date_l5'] = "Friday";
heap.labels['default']['date_l6'] = "Saturday";
heap.labels['default']['date_S01'] = "st";
heap.labels['default']['date_S02'] = "nd";
heap.labels['default']['date_S03'] = "rd";
heap.labels['default']['date_S04'] = "th";
heap.labels['default']['date_S05'] = "th";
heap.labels['default']['date_S06'] = "th";
heap.labels['default']['date_S07'] = "th";
heap.labels['default']['date_S08'] = "th";
heap.labels['default']['date_S09'] = "th";
heap.labels['default']['date_S10'] = "th";
heap.labels['default']['date_S11'] = "th";
heap.labels['default']['date_S12'] = "th";
heap.labels['default']['date_S13'] = "th";
heap.labels['default']['date_S14'] = "th";
heap.labels['default']['date_S15'] = "th";
heap.labels['default']['date_S16'] = "th";
heap.labels['default']['date_S17'] = "th";
heap.labels['default']['date_S18'] = "th";
heap.labels['default']['date_S19'] = "th";
heap.labels['default']['date_S20'] = "th";
heap.labels['default']['date_S21'] = "st";
heap.labels['default']['date_S22'] = "nd";
heap.labels['default']['date_S23'] = "rd";
heap.labels['default']['date_S24'] = "th";
heap.labels['default']['date_S25'] = "th";
heap.labels['default']['date_S26'] = "th";
heap.labels['default']['date_S27'] = "th";
heap.labels['default']['date_S28'] = "th";
heap.labels['default']['date_S29'] = "th";
heap.labels['default']['date_S30'] = "th";
heap.labels['default']['date_S31'] = "st";
heap.labels['default']['header_tagline'] = "clever stuff for the digital age &trade;";
heap.labels['default']['m_agency'] = "Agency";
heap.labels['default']['m_work'] = "Work";
heap.labels['default']['m_rake'] = "Blog (The Rake)";
heap.labels['default']['m_contact'] = "Contact";
heap.labels['default']['read'] = "read";
heap.labels['default']['read_more'] = "Read more";
heap.labels['default']['more_stories'] = "more stories";
heap.labels['default']['address'] = "1435 St-Alexandre, #700, Montreal<br />514.499.0005 <a href='mailto:info@cloudraker.com'>info@cloudraker.com</a>";
heap.labels['default']['lang_switch'] = "FR";
heap.labels['default']['featured_posts'] = "Featured Posts";
heap.labels['default']['more_work'] = "More Work";
heap.labels['default']['discover_the_project'] = "Discover the project";
heap.labels['default']['take_a_look'] = "take a look";
heap.labels['default']['by'] = "by";
heap.labels['default']['comments'] = "Comments";
heap.labels['default']['share_this'] = "Share this";
heap.labels['default']['chime_in'] = "Chime in";
heap.labels['default']['email_never_publish'] = "Your email is never published or shared. Required fields are marked *";
heap.labels['default']['name'] = "Name";
heap.labels['default']['email'] = "Email";
heap.labels['default']['website'] = "Website";
heap.labels['default']['comment'] = "Comment";
heap.labels['default']['work'] = "Work";
heap.labels['default']['no_comment'] = "No comments yet.";
heap.labels['default']['rss_title'] = "The Rake Feed";
heap.labels['default']['today'] = "Today at %s";
heap.labels['default']['yesterday'] = "Yesterday at %s";
heap.labels['default']['days_ago'] = "%s days ago";
heap.labels['default']['week_ago'] = "1 week ago";
heap.labels['default']['weeks_ago'] = "%s weeks ago";
heap.labels['default']['month_ago'] = "1 month ago";
heap.labels['default']['months_ago'] = "%s months ago";
heap.labels['default']['f_propaganda'] = "Agency Propaganda";
heap.labels['default']['f_rake'] = "From The Rake";
heap.labels['default']['f_social'] = "Last Tweets";
heap.labels['default']['cdn_vimeo'] = "'Vimeo'";
heap.labels['default']['cdn_issuu'] = "'Issue'";
heap.labels['default']['validator_email_required'] = "Your email is required.";
heap.labels['default']['validator_invalid_email'] = "Your email is invalid.";
heap.labels['default']['validator_name_required'] = "Your name is required.";
heap.labels['default']['validator_invalid_name'] = "Your name is invalid.";
heap.labels['default']['validator_comment_required'] = "Your comment is required.";
heap.labels['default']['reactions_success'] = "Your comment has been successfully published.";

heap.media.sizes['mini'] = new Object();
heap.media.sizes['mini']['width'] = 52;
heap.media.sizes['mini']['height'] = 52;
heap.media.sizes['mini']['mode'] = 'crop';
heap.media.sizes['mini']['crop'] = 'center';
heap.media.sizes['thumbnail'] = new Object();
heap.media.sizes['thumbnail']['width'] = 74;
heap.media.sizes['thumbnail']['height'] = 74;
heap.media.sizes['thumbnail']['mode'] = 'crop';
heap.media.sizes['thumbnail']['crop'] = 'center';
heap.media.sizes['square'] = new Object();
heap.media.sizes['square']['width'] = 100;
heap.media.sizes['square']['height'] = 100;
heap.media.sizes['square']['mode'] = 'crop';
heap.media.sizes['square']['crop'] = 'center';
heap.media.sizes['wide'] = new Object();
heap.media.sizes['wide']['width'] = 162;
heap.media.sizes['wide']['height'] = 71;
heap.media.sizes['wide']['mode'] = 'resize-crop';
heap.media.sizes['wide']['crop'] = 'center';
heap.media.sizes['large'] = new Object();
heap.media.sizes['large']['width'] = 1024;
heap.media.sizes['large']['height'] = 768;
heap.media.sizes['large']['mode'] = 'resize-crop';
heap.media.sizes['large']['dimension'] = 'min';
heap.media.sizes['work_small'] = new Object();
heap.media.sizes['work_small']['width'] = 170;
heap.media.sizes['work_small']['height'] = 160;
heap.media.sizes['work_small']['mode'] = 'resize-crop';
heap.media.sizes['work_small']['dimension'] = 'max';
heap.media.sizes['work_medium'] = new Object();
heap.media.sizes['work_medium']['width'] = 290;
heap.media.sizes['work_medium']['height'] = 160;
heap.media.sizes['work_medium']['mode'] = 'resize-crop';
heap.media.sizes['work_medium']['dimension'] = 'max';
heap.media.sizes['work_large'] = new Object();
heap.media.sizes['work_large']['width'] = 353;
heap.media.sizes['work_large']['height'] = 160;
heap.media.sizes['work_large']['mode'] = 'resize-crop';
heap.media.sizes['work_large']['dimension'] = 'max';
heap.media.sizes['work_largest'] = new Object();
heap.media.sizes['work_largest']['width'] = 413;
heap.media.sizes['work_largest']['height'] = 266;
heap.media.sizes['work_largest']['mode'] = 'resize-crop';
heap.media.sizes['work_largest']['dimension'] = 'max';
heap.media.sizes['work_video'] = new Object();
heap.media.sizes['work_video']['width'] = 595;
heap.media.sizes['work_video']['height'] = 333;
heap.media.sizes['work_video']['mode'] = 'resize-crop';
heap.media.sizes['work_video']['dimension'] = 'max';
heap.media.sizes['rake_largest'] = new Object();
heap.media.sizes['rake_largest']['width'] = 575;
heap.media.sizes['rake_largest']['height'] = 332;
heap.media.sizes['rake_largest']['mode'] = 'resize-crop';
heap.media.sizes['rake_largest']['dimension'] = 'max';
heap.media.sizes['ref'] = new Object();
heap.media.sizes['ref']['width'] = 400;
heap.media.sizes['ref']['height'] = 400;
heap.media.sizes['ref']['mode'] = 'resize';
heap.media.sizes['ref']['dimension'] = 'max';
heap.media.sizes['small'] = new Object();
heap.media.sizes['small']['width'] = 300;
heap.media.sizes['small']['height'] = 300;
heap.media.sizes['small']['mode'] = 'resize';
heap.media.sizes['small']['dimension'] = 'max';
heap.media.sizes['medium'] = new Object();
heap.media.sizes['medium']['width'] = 299;
heap.media.sizes['medium']['height'] = 226;
heap.media.sizes['medium']['mode'] = 'resize-crop';
heap.media.sizes['medium']['dimension'] = 'min';
 



heap.translate = function (token, replacements, dict)
{
  if (!dict) dict = 'default';
  if (heap.labels[dict] && heap.labels[dict][token]) {
    var out = heap.labels[dict][token];
    if (replacements) {
      if (typeof(replacements) == 'string') replacements = [ replacements ];
      var type = typeof(replacements);
      
      if (type == 'object' || type == 'array') {
        for (var key in replacements) {
          var text = replacements[key];
          out = out.replace("{"+key+"}", text);
        }
      }
    }
    return out;
  } else
    return token + '-' + heap.config['current_language'];
};

heap.api.setup = function(setupParams)
{
  var target = setupParams['object'];
  var api_url = setupParams['url'];
  var api_class = setupParams['api_class'];
  var methods = setupParams['methods'];
  
  if(!target) throw new Error("Missing target for heap.api.setup");
  if(!api_url) throw new Error("Missing api_url for heap.api.setup");
  if(!api_class) throw new Error("Missing api_class for heap.api.setup");
  if(!methods) methods = new Array();
  
  for(var m = 0; m < methods.length; m++) (function(api_method)
  {
    target[api_method] = function(callback, params)
    {
      jQuery.ajax({
        url: api_url+'/'+api_class+'/'+api_method,
        data: { parameters: JSON.stringify(params) }, 
        success: callback
      }); 
    }
  })(methods[m]);
  
  
};

/** User API **/

heap.api.users = {};
heap.api.setup({
  object: heap.api.users,
  api_class:'users',
  url: heap.urlmap.api_json,
  methods: ['load','create','erase','edit','search','isloggedin','login','logout','usernameAvailability','checkEmailAvailability']
});


heap.api.users.login = function(callback, params)
{
  params['password'] = hex_md5(params['password']);
  
  jQuery.ajax({
    url: heap.urlmap.api_json+'/'+'users'+'/'+'login',
    data: { parameters: JSON.stringify(params) }, 
    success: callback
  }); 
}

/** Atoms API **/
heap.api.atoms = {};
heap.api.setup({
  object: heap.api.atoms,
  api_class:'atoms',
  url: heap.urlmap.api_json,
  methods: ['load','create','erase','edit','search','setRating','getMetaBlock','addTags','removeTags','setFavorite']
});


/** Channels API **/
heap.api.channels = {};
heap.api.setup({
  object: heap.api.channels,
  api_class:'channels',
  url: heap.urlmap.api_json,
  methods: ['load','create','erase','edit','search','getMetaBlock','addTags','removeTags']
});


/** Documents API **/
heap.api.media = {};
heap.api.setup({
  object: heap.api.media,
  api_class:'media',
  url: heap.urlmap.api_json,
  methods: ['load','create','erase','edit','search','addTags','removeTags', 'crop', 'setFrame', 'rotate', 'searchAndRender']
});

/** Reactions API **/
heap.api.reactions = {};
heap.api.setup({
  object: heap.api.reactions,
  api_class:'reactions',
  url: heap.urlmap.api_json,
  methods: ['load','create','erase','edit','search','moderate']
});

/** Redirects API **/
heap.api.redirects = {};
heap.api.setup({
  object: heap.api.redirects,
  api_class:'redirects',
  url: heap.urlmap.api_json,
  methods: ['load','create','erase','edit','search', 'setRating']
});


/** Tags API **/
heap.api.tags = {};
heap.api.setup({
  object: heap.api.tags,
  api_class:'tags',
  url: heap.urlmap.api_json,
  methods: ['load', 'create', 'erase', 'rename', 'merge', 'renameDictionary', 'eraseDictionary', 'search', 'searchAndRender']
});


/** Queue API **/
heap.api.queues = {};
heap.api.setup({
  object: heap.api.queues,
  api_class:'queues',
  url: heap.urlmap.api_json,
  methods: ['read', 'ls', 'count']
});



