Object.extend(String.prototype,{htmlEscape:function(){var escaped=this.escapeHTML();return escaped.gsub('"','&quot;').gsub("'",'&apos;');},
addslashes:function(){return this.gsub('"','\\"').gsub("'","\\'");}
});var KEYS={BACKSPACE:8,TAB:9,RETURN:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};function attrToString(attributes){var res=new Array();for(i in attributes){res.push(i+'="'+attributes[i]+'"');}
return res.join(' ');}
function tag(tag,contents,attributes){if(attributes==undefined){attributes={};}
if(contents==null||contents==undefined){return '<'+tag+' '+attrToString(attributes)+'/>';}
return '<'+tag+' '+attrToString(attributes)+'>'+contents+'</'+tag+'>';}
function div(contents,attributes){if(attributes==undefined){attributes={};}
return tag('div',contents,attributes);}
function span(contents,attributes){if(attributes==undefined){attributes={};}
return tag('span',contents,attributes);}
function href(label,src,attributes){if(attributes==undefined){attributes={};}
attributes.href=src;return tag('a',label,attributes);}
function img_tag(src,attributes){if(attributes==undefined){attributes={};}
attributes.src=src;return tag('img',null,attributes);}
function findPos(obj){var curleft=curtop=0;if(obj.offsetParent){curleft=obj.offsetLeft
curtop=obj.offsetTop
while(obj=obj.offsetParent){curleft+=obj.offsetLeft
curtop+=obj.offsetTop
}
}
return [curtop,curleft];}
function prnMessage(msg){Messaging.addWarning(msg);}
function resendVerify(){Rpc.request({params:"req=RpcApiUser_SendVerificationMail",
callback:function(resp){Rpc.showAlert(resp);}
});}
function doPost(formid){var f=document.getElementById(formid);if(f){f.submit();}
}
function keyPressIsEnter(e){if(window.event&&window.event.keyCode==13){return true;}
if(e.which&&e.which==13)return true;return false;}
function toggle_larger_player(embed_id,col_id1,col_id2,link_id,orig_w,orig_h,control_bar_ht,res_btn_ht){var embed=$(embed_id);var col1=$(col_id1);var col2=$(col_id2);var link=$(link_id);if(embed&&col1&&col2&&link){if(col2.style.display=="none"){var width=520;col2.setStyle({"display":""});col1.setStyle({"width":orig_w+"px","height":(orig_h+control_bar_ht+res_btn_ht)+"px"});embed.setStyle({"width":orig_w+"px","height":(orig_h+control_bar_ht)+"px"});link.innerHTML='Larger';}else{var width=924;var height=513;col2.setStyle({"display":"none"});col1.setStyle({"width":width+"px","height":(height+control_bar_ht+res_btn_ht)+"px"});embed.setStyle({"width":width+"px","height":(height+control_bar_ht)+"px"});link.innerHTML='Smaller';}
}
}
function pickWinResult(win_val,elem_val,body_val){var res=win_val ? win_val:0;if(elem_val&&(!res||(res > elem_val))){res=elem_val;}
return body_val&&(!res||(res > body_val))? body_val:res;}
function windowInnerWidth(){return pickWinResult(
window.innerWidth ? window.innerWidth:0,
document.documentElement ? document.documentElement.clientWidth:0,
document.body ? document.body.clientWidth:0
);}
function windowInnerHeight(){return pickWinResult(
window.innerHeight ? window.innerHeight:0,
document.documentElement ? document.documentElement.clientHeight:0,
document.body ? document.body.clientHeight:0
);}
function windowScrollLeft(){return pickWinResult(
window.pageXOffset ? window.pageXOffset:0,
document.documentElement ? document.documentElement.scrollLeft:0,
document.body ? document.body.scrollLeft:0
);}
function windowScrollTop(){return pickWinResult(
window.pageYOffset ? window.pageYOffset:0,
document.documentElement ? document.documentElement.scrollTop:0,
document.body ? document.body.scrollTop:0
);}
function resizeLargeImages(MAX_IMG_WIDTH,immediate){if(MAX_IMG_WIDTH==undefined||MAX_IMG_WIDTH < 0){MAX_IMG_WIDTH=640;}
var doresize=function(){for(var i=0;i<document.images.length;i++){var img=document.images[i];if(img.width > MAX_IMG_WIDTH){img.ow=img.width;img.oh=img.height;img.width=MAX_IMG_WIDTH;img.height=MAX_IMG_WIDTH*img.oh/img.ow;img.style.cursor="pointer";var togglesize=function(){var img=this;if(img.width==MAX_IMG_WIDTH){img.width=img.ow;img.height=img.oh;}else{img.width=MAX_IMG_WIDTH;img.height=MAX_IMG_WIDTH*img.oh/img.ow;}
}
var popup_image=function(){var img=document.createElement("img");var mask=document.createElement("div");mask.innerHTML="&nbsp;";mask.style.width=Math.max(document.viewport.getWidth(),this.ow)+"px";mask.style.height=Math.max(document.viewport.getHeight(),this.oh)+"px";mask.style.opacity="0.6";mask.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=60)";mask.style.backgroundColor="#000000";mask.style.width=Math.max(Math.max(document.viewport.getWidth(),$(document.body).getWidth()),0)+"px";mask.style.height=Math.max(Math.max(document.viewport.getHeight(),$(document.body).getHeight()),0)+"px";mask.style.position="absolute";mask.style.cursor="pointer";mask.style.top="0px";mask.style.left="0px";img.src=this.src;img.width=this.ow;img.height=this.oh;img.style.position="absolute";img.style.cursor="pointer";var pos=findPos(this);img.style.top=Math.max(0,pos[0]-(this.oh-this.height)/2)+"px";img.style.left=Math.max(0,pos[1]-(this.ow-this.width)/2)+"px";img.style.zIndex=1000;mask.style.zIndex=999;mask.onclick=img.onclick=function(){document.body.removeChild(mask);document.body.removeChild(img);showKnownFlashElements();};hideKnownFlashElements();document.body.appendChild(mask);document.body.appendChild(img);}
img.onclick=popup_image;}
}
}
if(immediate){doresize();}else{if(window.attachEvent){window.attachEvent("onload",doresize);}else if(window.addEventListener){window.addEventListener('load',doresize,false);}
}
}
function hideKnownFlashElements(){var knownIds=$A(['profile-chat']);knownIds.each(function(id){if($(id)){$(id).hide();}
});/*
  var knownElements = $A(['embed', 'object']);
  knownElements.each(function(element) {
    var elements = $$(element);
    if(elements) {
      elements.each(function(e) { e.hide(); });
    }
  });
  */
}
function showKnownFlashElements(){var knownIds=$A(['profile-chat']);knownIds.each(function(id){if($(id)){$(id).show();}
});/*
  var knownElements = $A(['embed', 'object']);
  knownElements.each(function(element) {
    var elements = $$(element);
    if(elements) {
      elements.each(function(e) { e.show(); });
    }
  });
  */
}
/*--------------------------------------------------
  Ratings-related methods
--------------------------------------------------*/
var freezeRating=new Array();function setRatingsText(text,prefix_id){if(freezeRating[prefix_id])return;var elem=$(prefix_id+'ratingsText');if(elem){elem.innerHTML=text;}
}
function setStars(num,prefix_id){if(freezeRating[prefix_id])return;for(var i=0.5;i <=5;i+=0.5){var elem=$(prefix_id+'ratingStar_'+i);if(i <=num){elem.setAttribute('src','/i/star-s-'+(i*2 % 2 ? 'l':'r')+'.gif');}else{elem.setAttribute('src','/i/star-u-'+(i*2 % 2 ? 'l':'r')+'.gif');}
}
}
function setStarsNew(num,prefix_id,height_offset,height){if(freezeRating[prefix_id])return;var y=parseInt(num*-2*height)-parseInt(height_offset);var widget=$(prefix_id+'rate_widget');widget.setStyle({'backgroundPosition':'0px '+y+'px'});}
function setRating(num,ftype,fid,prefix_id){if(freezeRating[prefix_id])return;Rpc.request({params_obj:{'req':'RpcApiRating_SetRating',
'ftype':ftype,
'fid':fid,
'rating':num},
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){$(prefix_id+"sampleSizeText").innerHTML=resp.data.sample_size_text;$(prefix_id+"avgRatingText").innerHTML=resp.data.avg_rating_text;setRatingsText('Thanks for rating!',prefix_id);setStars(num,prefix_id);freezeRating[prefix_id]=true;}else{Rpc.showAlert(resp);}
}
});}
function setRatingNew(num,ftype,fid,prefix_id,height_offset,height){if(freezeRating[prefix_id])return;Rpc.request({params_obj:{'req':'RpcApiRating_SetRating',
'ftype':ftype,
'fid':fid,
'rating':num},
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){if($(prefix_id+"sampleSizeText")){$(prefix_id+"sampleSizeText").innerHTML=resp.data.sample_size_text;}
if($(prefix_id+"avgRatingText")){$(prefix_id+"avgRatingText").innerHTML=resp.data.avg_rating_text;}
setRatingsText('Thanks for rating!',prefix_id);setStarsNew(num,prefix_id,height_offset,height);freezeRating[prefix_id]=true;}else{Rpc.showAlert(resp);}
}
});}
/*--------------------------------------------------
  Comment-related methods
--------------------------------------------------*/
function submit_comment(form_id,gb_id){var form=$(form_id);if(form.body.value=="Write something..."||form.body.value==""){return false;}
var comment_body=form.body.value;if(comment_body.length > 240){alert('Sorry, your comment is too long!');return false;}
var url="req=RpcApiGuestbook_AddComment&comment_body="+encodeURIComponent(comment_body)+"&guestbook_id="+gb_id+'&last_comment_time='+form.last_comment_time.value+'&mugsize='+form.mugsize.value;if(form.private_key){url+='&private_key='+encodeURIComponent(form.private_key.value);}
if(form.public_key){url+='&public_key='+encodeURIComponent(form.public_key.value);}
if(form.spoiler&&form.spoiler.checked){url+='&spoiler='+form.spoiler.value;}
if(form.origin_token&&form.origin_token.value){url+='&origin_token='+encodeURIComponent(form.origin_token.value);}
var preserved_button_label=form.submit_comment_btn.value;form.body.disabled=true;form.submit_comment_btn.value="Posting..";form.submit_comment_btn.disabled=true;function mainCallback(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){injectNewCommentsCallback(resp);form.submit_comment_btn.value="Comment Added!";}else{form.body.disabled=false;form.submit_comment_btn.value=preserved_button_label;form.submit_comment_btn.disabled=false;Rpc.showAlert(resp);}
}
function injectNewCommentsCallback(resp){for(var i=0;i < resp.data.new_comments_html.length;i++){var new_comment_dom_id='guestbook_new_comment_'+i;var shadow_class=(0==(i % 2))? '':'ulist-shadow';var tmp=$('guestbook_commentform');$('guestbook_commentform').insert({after:'<li class="'+shadow_class+'" style="display: none;" id="'+new_comment_dom_id+'">'+resp.data.new_comments_html[i]+'</li'
});new Effect.SlideDown($(new_comment_dom_id),{duration:.5});}
}
Rpc.request({params:url,
callback_scope:this,
callback:mainCallback
});}
/**
 * @param int comment_id ID of the comment
 * @param boolean use_js_plain whether to do fancy effects on removal
 */
function remove_comment(comment_id,use_js_plain){Rpc.request({params:'req=RpcApiGuestbook_RemoveComment&comment_id='+comment_id,
callback:function(resp){if(use_js_plain){Rpc.printMessage(resp);}else{if(Rpc.RESULT_SUCCESS==resp.result_code){Effect.SlideUp($('guestbook_comment_'+comment_id).parentNode,{duration:.5,afterFinish:''});}else{Rpc.showAlert(resp);}
}
}
});}
/**
 * @param int comment_id ID of the comment
 * @param boolean use_js_plain whether to do fancy effects on removal
 */
function remove_selected_comments(css_checkbox_class){var selection=$$('.'+css_checkbox_class);var length=selection.length;var params=new Array();for(var i=0;i < length;i++){if(selection[i].checked){params.push(urlencode(selection[i].getAttribute('value')));}
}
if(params.length <=0){alert('You need to select at least one comment to delete!');return;}
Rpc.request({params:'req=RpcApiGuestbook_RemoveComments&comment_ids='+params.uniq().compact().join(','),
callback:function(resp){Rpc.showAlert(resp);}
});}
/*

*/
/**
 * @param int comment_id ID of the comment
 * @param string rating rating to give
 */
function rate_comment(comment_id,rating){Rpc.request({params:'req=RpcApiGuestbook_RateComment&comment_id='+comment_id+'&rating='+rating,
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){$('guestbook_ratingsarrows_'+comment_id).getElementsBySelector('img').each(function(e){new Effect.Opacity(e,{duration:.5,to:0.3});});}else{Rpc.showAlert(resp);}
}
});}
/**
 * @param int comment_id ID of the comment
 */
function toggle_comment_spoiler(comment_id){Rpc.request({params:'req=RpcApiGuestbook_ToggleSpoiler&comment_id='+comment_id,
callback:Rpc.showAlert
});}
/*--------------------------------------------------
  Subtitle-related methods
--------------------------------------------------*/
/**
 * @param int subtitle_script_id ID of the comment
 * @param string rating rating to give
 */
function rate_subtitle(subtitle_script_id,rating){Rpc.request({params:'req=RpcApiSubtitle_RateSubtitleScript&subtitle_script_id='+subtitle_script_id+'&rating='+rating,
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){$('subtitle_ratings_arrows_'+subtitle_script_id).getElementsBySelector('img').each(function(e){new Effect.Opacity(e,{duration:.5,to:0.3});});}else{Rpc.showAlert(resp);}
}
});}
function clear_all_tags(etype,refid){Rpc.request({params:'req=RpcApiTag_ClearAll&etype='+etype+'&refid='+refid,
callback:Rpc.showAlert
});}
/*--------------------------------------------------
  MC-related methods
--------------------------------------------------*/
function submit_mc(id,mid){var form=$(id);if(form.body.value=="Write something..."||form.body.value==""){return false;}
var comment=encodeURIComponent(form.body.value);var key1,key2;if(form.private_key)key1=encodeURIComponent(form.private_key.value);if(form.public_key)key2=encodeURIComponent(form.public_key.value);var url="req=submit_mc&c="+comment+"&formid="+id+"&mid="+mid;if(key1&&key2)url+="&private_key="+key1+"&public_key="+key2;form.submit_mc_btn.disabled=true;form.submit_mc_btn.value="Posting..";ajaxJsonEval(url);}
function remove_mc(mid){var url="req=remove_mc&mid="+mid;ajaxJsonEval(url);}
function remove_fp(id_list,callback){if(!confirm("Are you sure? This will delete the "+id_list.length+" forum post(s)"))return;if(!callback){callback=function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);return false;}else{var id_list_length=id_list.length;for(i=0;i < id_list_length;i++){if($('fp_header_'+id_list[i])){Effect.Fade('fp_header_'+id_list[i]);}
if($('fp_main_'+id_list[i])){Effect.Fade('fp_main_'+id_list[i]);}
if($('fp_links_'+id_list[i])){Effect.Fade('fp_links_'+id_list[i]);}
if($('fp_select_'+id_list[i])){$('fp_select_'+id_list[i]).checked=false;}
}
}
}
}
Rpc.request({params_obj:{req:'RpcApiForum_DeletePost',
'id_list[]':id_list
},
callback:callback
});}
function rate_forumpost(fpid,rating){var url="req=rate_forumpost&fpid="+fpid+"&rating="+rating;ajaxJsonEval(url);}
function select_all_forum_posts(){var selection=$$('.multi_select_forum_post');var length=selection.length;for(var i=0;i < length;i++){selection[i].checked=true;}
}
function deselect_all_forum_posts(){var selection=$$('.multi_select_forum_post');var length=selection.length;for(var i=0;i < length;i++){selection[i].checked=false;}
}
function multi_pm(css_checkbox_class){var selection=$$('.'+css_checkbox_class);var length=selection.length;var params=new Array();for(var i=0;i < length;i++){if(selection[i].checked){params.push(urlencode(selection[i].getAttribute('reporter_name')));}
}
if(params.length <=0){alert('You need to select at least user to PM!');return;}
window.open('/newprivatemessage?recipients='+params.uniq().compact().join(','));}
function check_all(class_name){var selection=$$('.'+class_name);var length=selection.length;for(var i=0;i < length;i++){selection[i].checked=true;}
}
function uncheck_all(class_name){var selection=$$('.'+class_name);var length=selection.length;for(var i=0;i < length;i++){selection[i].checked=false;}
}
function multi_quote_forum_post(){var selection=$$('.multi_select_forum_post');var length=selection.length;var params='';for(var i=0;i < length;i++){if(selection[i].checked){if(params){params+='&';}
params+='id_list[]='+selection[i].value;}
}
if(!params){alert('You need to select at least one post to quote!');return;}
redirect('/quoteforumpost?'+params);}
function multi_delete_forum_post(callback){var selection=$$('.multi_select_forum_post');var length=selection.length;var id_list=new Array();for(var i=0;i < length;i++){if(selection[i].checked){id_list.push(selection[i].value);}
}
if(0==id_list.length){alert('You need to select at least one post to delete!');return;}
remove_fp(id_list,callback);}
/*--------------------------------------------------
  GB-related methods
--------------------------------------------------*/
function submit_gb(id,userid){var form=$(id);if(form.body.value=="Write something..."||form.body.value==""){return false;}
var comment=encodeURIComponent(form.body.value);var url="req=submit_gb&c="+comment+"&formid="+id+"&userid="+userid;form.submit_gb_btn.disabled=true;form.submit_gb_btn.value="Posting..";ajaxJsonEval(url);}
function remove_gb(mid){var url="req=remove_gb&mid="+mid;ajaxJsonEval(url);}
/*--------------------------------------------------
  User mod -related methods
--------------------------------------------------*/
function remove_avatar(userid){if(!confirm("Are you sure you want to delete this image?"))return;Rpc.request({params:"req=RpcApiUser_ModDeleteAvatar&userid="+userid,
callback:Rpc.showAlert
});}
function remove_userphoto(iid){var url="req=remove_userphoto&iid="+iid;ajaxJsonEval(url);}
/*--------------------------------------------------
  Group mod -related methods
--------------------------------------------------*/
function remove_group_avatar(gid){if(!confirm("Are you sure?"))return;Rpc.request({params:"req=RpcApiGroup_ModDeleteAvatar&gid="+gid,
callback:Rpc.showAlert
});}
/*--------------------------------------------------
  PA-related methods
--------------------------------------------------*/
function remove_photo(id){Rpc.request({params_obj:{'req':'RpcApiPhoto_RemovePhoto',
'photo_id':id
}
});}
function remove_photos(form_name){var params=new Array();var checkboxes=Form.getInputs(form_name,'checkbox');for(var i=0;i < checkboxes.length;i++){if(checkboxes[i].checked){params.push('id_list[]='+checkboxes[i].value);}
}
if(params.length > 0){Rpc.request({callback:Rpc.saveMessageAndRefreshPage,
params:'req=RpcApiPhoto_RemovePhotos&'+params.join('&')
});}else{alert('No photos selected!');}
}
/*--------------------------------------------------
  FP-related methods
--------------------------------------------------*/
function preview_fp(text,element){var reqstring="req=preview_fp";var http=getHTTPObject();var url=AJAXROOT+reqstring;var params="text="+encodeURIComponent(text);http.open('POST',url,true);http.setRequestHeader("Content-type","application/x-www-form-urlencoded");http.setRequestHeader("Content-length",params.length);http.setRequestHeader("Connection","close");http.onreadystatechange=function(){if(http.readyState==4){if(http.responseText!=null){var e=document.getElementById(element);e.innerHTML=http.responseText;http.responseText.evalScripts();}
}
}
http.send(params);}
function report_add(id,type){var url="req=report_add&id="+id+"&type="+type;ajaxJsonEval(url);}
function modreport_add(id,type){var reason=prompt("Reason for report: (240 character limit)","");if(reason==null){return;}
if(reason==""){alert("Please enter a reason for the report.");return;}
reason=encodeURIComponent(reason);var url="req=RpcApiModerator_AddModReport&refid="+id+"&report_type="+type+"&reason="+reason;Rpc.request({params:url,
callback:Rpc.showAlert
});}
function modreport_del(id){Rpc.request({params_obj:{req:'RpcApiModerator_RemoveModReport',
modreport_id:id
},
callback:Rpc.printMessage
});}
function unban_user(user_id){if(!confirm("Are you sure?"))return;Rpc.request({params_obj:{req:'RpcApiModerator_BanUser',
user_id:user_id,
expiry:0,
perms:null,
msg:null
},
callback:Rpc.showAlert
});}
function softnuke_user(id){if(!confirm("Are you sure? This will delete the user."))return;Rpc.request({params:"req=RpcApiUser_ModNukeUser&user_id="+id+"&hard=0",
callback:Rpc.showAlert
});}
function hardnuke_user(id){if(!confirm("Are you sure? This will delete the user, his/her forum posts, photos, comments, and PMs."))return;Rpc.request({params:"req=RpcApiUser_ModNukeUser&user_id="+id+"&hard=1",
callback:Rpc.showAlert
});}
function unnuke_user(id){if(!confirm("Are you sure? This will un-delete this user's account"))return;Rpc.request({params:"req=RpcApiUser_ModUnnukeUser&user_id="+id,
callback:Rpc.showAlert
});}
function mark_inappropriate_group(gid){if(!confirm("Are you sure? This will mark the group as inappropriate"))return;Rpc.request({params:"req=RpcApiGroup_ModMarkInappropriate&gid="+gid,
callback:Rpc.showAlert
});}
function unmark_inappropriate_group(gid){if(!confirm("Are you sure? This will unmark the group as inappropriate"))return;Rpc.request({params:"req=RpcApiGroup_ModUnmarkInappropriate&gid="+gid,
callback:Rpc.showAlert
});}
function softnuke_group(gid){if(!confirm("Are you sure? This will delete this group!"))return;Rpc.request({params:"req=RpcApiGroup_ModSoftNuke&gid="+gid,
callback:Rpc.showAlert
});}
/*--------------------------------------------------
  buddy-related methods
--------------------------------------------------*/
function approvebuddy(id){Rpc.request({params:"req=RpcApiUser_ApproveBuddy&id="+id,
callback:Rpc.showAlert
});}
function removebuddy(id){if(confirm("Are you sure you want to remove this person?")){Rpc.request({params:"req=RpcApiUser_RemoveBuddy&id="+id,
callback:Rpc.showAlert
});}
}
function rejectbuddy(id){if(confirm("Are you sure you want to reject this person?")){Rpc.request({params:"req=RpcApiUser_RejectBuddy&id="+id,
callback:Rpc.showAlert
});}
}
function remove_blocked_user(blocked_id){Rpc.request({params_obj:{req:'RpcApiPm_UnblockUser',
blocked_id:blocked_id
},
callback:Rpc.showAlert
});}
function remove_pmcontact(id){var url="req=remove_pmcontact&id="+id;ajaxJsonEval(url);}
/*--------------------------------------------------
  inbox-related methods
--------------------------------------------------*/
function select_pm(form,type){var f=document.getElementById(form);if(f!=undefined){if(type=='all'){Form.getInputs(f,'checkbox').each(function(i){i.checked=true;});}else if(type=='none'){Form.getInputs(f,'checkbox').each(function(i){i.checked=false;});}else if(type=='read'){Form.getInputs(f,'checkbox').each(function(i){if(i.className=='pm')i.checked=true;else i.checked=false});}else if(type=='unread'){Form.getInputs(f,'checkbox').each(function(i){if(i.className=='pm-new')i.checked=true;else i.checked=false});}
}
}
function select_contact(form,id){var f=document.getElementById(form);f=f.elements;if(f!=undefined){if(id=='all'){for(i=0;i<f.length;i++){if(f[i]!=undefined&&f[i].type=="checkbox"){f[i].checked=true;}
}
}else if(id=='none'){for(i=0;i<f.length;i++){if(f[i]!=undefined&&f[i].type=="checkbox"){f[i].checked=false;}
}
}
}
}
function remove_upload(id){if(!confirm("Are you sure you want to remove this?"))return;Rpc.request({params_obj:{'req':'RpcApiMedia_DeleteUpload','upload_id':id},callback:Rpc.showAlert});}
function upload_quick_approve(id){Rpc.request({params_obj:{'req':'RpcApiMedia_QuickApproveMedia','media_id':id},callback:Rpc.showAlert});}
function subtitle_moderate(id,action){Rpc.request({params_obj:{'req':'RpcApiSubtitle_ModerateUpload','scriptid':id,'action':action},callback:Rpc.showAlert});}
function add_upload_note(id,note){note=prompt("Add Note:",note);if(note==null){return;}
Rpc.request({params_obj:{'req':'RpcApiMedia_AddUploadModNote','upload_id':id,'note':note},callback:Rpc.showAlert});}
function fix_new_pm_count(){Rpc.request({params:'req=RpcApiPm_FixPmStats',
callback:Rpc.showAlert
});}
function focus_text(e,text){if(e.value==text){e.value="";$(e).removeClassName("placeholder");}
}
function blur_text(e,text){if(e.value==""){e.value=text;$(e).addClassName("placeholder");}
}
/*** Group related ***/
function group_leave(gid){Rpc.request({params_obj:{req:'RpcApiGroup_MemberLeave',
gid:gid
},
callback:Rpc.showAlert
});}
function group_join(gid){group_join(gid,'');}
function group_join(gid,src){Rpc.request({params_obj:{req:'RpcApiGroup_MemberJoin',
groupid:gid,
src:src
},
callback:Rpc.showAlert
});}
function group_addmedia(gid,mediaid){var url="req=group_addmedia&gid="+gid+"&mediaid="+mediaid;ajaxJsonEval(url);}
function group_rendereditmedia(renderTo,gid,mediaid,title,thumburl,description,link){var templatestr='<li id="groupvideo_listitem_#{mediaid}">';templatestr+='<div style="float:right;"><a href="javascript:void(0);" onclick="group_removemedia(#{gid}, #{mediaid}, \'js\')" style="color:red;">remove</a></div>';templatestr+='<img src="#{thumburl}" />';templatestr+='<div><a href="#{link}" title="#{title}">#{title}</a></div>';templatestr+='<div>#{description}</div>';templatestr+='</li>';var template=new Template(templatestr);var result=template.evaluate({gid:gid.escapeHTML(),
mediaid:mediaid.escapeHTML(),
title:title.escapeHTML(),
thumburl:thumburl.escapeHTML(),
description:description.escapeHTML(),
link:link.escapeHTML()});$(renderTo).insert({top:result});}
function group_removemedia(gid,mediaid,rt){var url="req=group_removemedia&gid="+gid+"&mediaid="+mediaid+"&rt="+rt;ajaxJsonEval(url);}
/*** Notification related ***/
function notification_rm(nid){Rpc.request({params:'req=RpcApiNotification_Remove&nid='+nid,
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){Effect.Fade($('notification_'+nid).parentNode,{duration:.5});}else{Rpc.showAlert(resp);}
}
});}
function notification_rm_all(type){Rpc.request({params:'req=RpcApiNotification_RemoveAll&type='+type,
callback:Rpc.showAlert
});}
function notification_yes(nid){Rpc.request({params:'req=RpcApiNotification_RespondYes&nid='+nid,
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){Rpc.showAlert(resp);Effect.Fade($('notification_'+nid).parentNode,{duration:.5});}else{Rpc.showAlert(resp);}
}
});}
function notification_no(nid){Rpc.request({params:'req=RpcApiNotification_RespondNo&nid='+nid,
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){Rpc.showAlert(resp);Effect.Fade($('notification_'+nid).parentNode,{duration:.5});}else{Rpc.showAlert(resp);}
}
});}
/*** Photo related ***/
function caption_blur(id,classn,defcap){var e=document.getElementById(id+"_div");var e2=document.getElementById(id+"_btn");e.className=classn+"-form";blur_text(e,defcap);e2.style.display="none";}
function caption_focus(id,classn,defcap){var e=document.getElementById(id+"_div");var e2=document.getElementById(id+"_btn");e2.style.display="block";e.className=classn+"-form-selected";focus_text(e,defcap);}
function caption_mouseover(id,classn){var e=document.getElementById(id+"_div");if(e.className!=classn+"-form-selected")
e.className=classn+"-form-mouseover";}
function caption_mouseout(id,classn){var e=document.getElementById(id+"_div");if(e.className!=classn+"-form-selected")
e.className=classn+"-form";}
/*** Status related ***/
var UserStatus={handle_key_press:
function(event,eid,classprefix,def){event=event||window.event;key_code=event.keyCode||event.which;if(key_code==KEYS.RETURN){UserStatus.update(eid,classprefix,def);}
},
blur:
function(id,classn,def){var e=document.getElementById(id+"_div");var e2=document.getElementById(id+"_btn");e.className=classn+"-form";e.blur();blur_text(e,def);e2.style.display="none";},
focus:
function(id,classn,def){var e=document.getElementById(id+"_div");var e2=document.getElementById(id+"_btn");e2.style.display="block";e.className=classn+"-form-selected";focus_text(e,def);},
mouseover:
function(id,classn){var e=document.getElementById(id+"_div");if(e.className!=classn+"-form-selected")
e.className=classn+"-form-mouseover";},
mouseout:
function(id,classn){var e=document.getElementById(id+"_div");if(e.className!=classn+"-form-selected")
e.className=classn+"-form";},
prompt_update:
function(curr_status){var status=prompt("Update your status:",curr_status);if(status==null){return;}
var url="req=RpcApiUser_StatusUpdate&status="+status;Rpc.request({params:url,
callback:Rpc.showAlert
});},
update:
function(eid,classprefix,def){var status='';var e=document.getElementById(eid+'_div');if(e&&e.value!=undefined)status=encodeURIComponent(e.value);var url="req=RpcApiUser_StatusUpdate&status="+status;Rpc.request({params:url,
callback:function(json){Rpc.printMessage(json),
UserStatus.blur(eid,classprefix,def)
}
});},
update_clear:
function(eid){var status='';var e=document.getElementById(eid);if(e)e.value='';var url="req=RpcApiUser_StatusUpdate&status="+status;Rpc.request({params:url,
callback:Rpc.printMessage
});},
toggle_invisibility:
function(){Rpc.request({params:'req=RpcApiUser_ToggleInvisibility',
callback:Rpc.printMessage
});}
};var UserCustomization={toggle_music_autoplay:function(){Rpc.request({params:'req=RpcApiUser_ToggleMusicAutoPlay',
callback:Rpc.showAlert
});}
};var User={ResetViews:function(){Rpc.request({params:'req=RpcApiUser_ResetViews',
callback:Rpc.showAlert
});}
};var Group={ResetViews:function(group_id){Rpc.request({params:'req=RpcApiGroup_ResetViews&group_id='+group_id,
callback:Rpc.showAlert
});}
};var EntityPage={ResetViews:function(page_id){Rpc.request({params:'req=RpcApiEntityPage_ResetViews&page_id='+page_id,
callback:Rpc.showAlert
});}
};var UserWatchList={clear:
function(callback){if(!confirm("Are you sure you want to clear your history?"))return;if(!callback){callback=function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){Effect.Fade('home_watch_list_ul');Rpc.printMessage(resp);}else{Rpc.showAlert(resp);}
}
}
Rpc.request({params_obj:{req:'RpcApiUser_ClearWatchList'
},
callback:callback
});}
}
var ModNote={toggle_display:
function(eid){if($(eid).style.display=='block'){$(eid).style.display='none';}
else if($(eid).style.display=='none'){$(eid).style.display='block';}
},
submit:
function(eid,type,refid){if($(eid).value){var val=encodeURIComponent($(eid).value);var url="req=RpcApiModerator_UpdateModNote&type="+type+"&refid="+refid+"&desc="+val;Rpc.request({params:url,
callback:Rpc.prnMessage
});}
},
mouseover:
function(e){if($(e).className!='desc-selected'){$(e).className='desc-hover';}
},
mouseout:
function(e){if($(e).className!='desc-selected'){$(e).className='desc';}
},
focus:
function(e,btn_eid){$(btn_eid).style.display='block';$(e).className='desc-selected';},
blur:
function(e,btn_eid){$(e).className='desc';}
};function select_checkboxes(form,type,input_name){var f=document.getElementById(form);if(f!=undefined){if(type=='all'){Form.getInputs(f,'checkbox',input_name).each(function(i){i.checked=true;});}else if(type=='none'){Form.getInputs(f,'checkbox',input_name).each(function(i){i.checked=false;});}
}
}
/*** Debug Oerations ***/
function queue_encode(mid,type){Rpc.request({params_obj:{"req":"RpcApiVideo_QueueEncode","media_id":mid,"type":type},
callback:Rpc.showAlert
});}
/*** Adobe Flash Version Detector ***/
var isIE=(navigator.appVersion.indexOf("MSIE")!=-1)? true:false;var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)? true:false;var isOpera=(navigator.userAgent.indexOf("Opera")!=-1)? true:false;function ControlVersion(){var version;var axo;var e;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");version=axo.GetVariable("$version");}catch(e){}
if(!version){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version="WIN 6,0,21,0";axo.AllowScriptAccess="always";version=axo.GetVariable("$version");}catch(e){}
}
if(!version){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version=axo.GetVariable("$version");}catch(e){}
}
if(!version){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version="WIN 3,0,18,0";}catch(e){}
}
if(!version){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");version="WIN 2,0,0,11";}catch(e){version=-1;}
}
return version;}
function GetSwfVer(){var flashVer=-1;if(navigator.plugins!=null&&navigator.plugins.length > 0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var swVer2=navigator.plugins["Shockwave Flash 2.0"] ? " 2.0":"";var flashDescription=navigator.plugins["Shockwave Flash"+swVer2].description;var descArray=flashDescription.split(" ");var tempArrayMajor=descArray[2].split(".");var versionMajor=tempArrayMajor[0];var versionMinor=tempArrayMajor[1];if(descArray[3]!=""){tempArrayMinor=descArray[3].split("r");}else{tempArrayMinor=descArray[4].split("r");}
var versionRevision=tempArrayMinor[1] > 0 ? tempArrayMinor[1]:0;var flashVer=versionMajor+"."+versionMinor+"."+versionRevision;}
}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1)flashVer=4;else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1)flashVer=3;else if(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1)flashVer=2;else if(isIE&&isWin&&!isOpera){flashVer=ControlVersion();}
return flashVer;}
function appendToken(src,get_var_name,get_val){var newloc=null;var getstr=get_var_name+'='+encodeURIComponent(get_val);src=src.toString();if(src.indexOf('?')> 0){newloc=src+'&'+getstr;}else{newloc=src+'?'+getstr;}
if(newloc!=null){window.location=newloc;return false;}
return true;}
function trackClick(url,bust_cache){if(bust_cache){if(url.indexOf('?')==-1){url+='?'+Math.random();}else{url+='&'+Math.random();}
}
if(document.images){(new Image()).src=url;}
return true;}
var VideoPanel={'toggle_share':function(container_eid,mediaid){var e=$(container_eid);if(true||e.innerHTML==''||e.innerHTML==undefined){var url="req=videopanel_share_container&mediaid="+mediaid;ajaxHtmlReplace(url,container_eid);}
if(e.style.display=='none'){e.style.display='block';}else if(e.style.display=='block'){e.style.display='none';}
},
'handle_share_return':function(r){var res=r.responseText;eval(r.responseText);}
};var PollWidget={displaymain:function(widgetid,text){var main=$(widgetid+'_main');main.innerHTML=text;$(widgetid+'_message').hide();Effect.Appear(main,{duration:0.3});},
displaymessage:function(widgetid,text){var msg=$(widgetid+'_message');msg.innerHTML=text;$(widgetid+'_main').hide();Effect.Appear(msg,{duration:0.3});},
showcreatedialog:function(widgetid){PollWidget.displaymessage(widgetid,'Loading...');var url='req=pollgetcreatedialog&wid='+widgetid;ajaxJsonEval(url);},
submitnewpoll:function(widgetid){var formid=widgetid+'_createform';var form=$(formid);var url='req=pollcreate&wid='+widgetid+
'&question='+escape(form.q.value)+
'&ans[]='+escape(form.a1.value)+
'&ans[]='+escape(form.a2.value)+
'&ans[]='+escape(form.a3.value)+
'&ans[]='+escape(form.a4.value)+
'&ans[]='+escape(form.a5.value);ajaxJsonEval(url);},
submitvote:function(widgetid,pollid,formid){var form=$(formid);var radio=form.getInputs('radio','pollchoice');var selected;radio.each(function(r){if(r.checked){selected=r;}
});if(!selected){alert('Please choose your answer before voting!');return;}
var url='req=pollvote&pollid='+pollid+'&answerid='+selected.value+'&wid='+widgetid;ajaxJsonEval(url);},
showresults:function(widgetid,pollid){var url='req=pollshowresults&pollid='+pollid+'&wid='+widgetid;ajaxJsonEval(url);},
showbbcode:function(widgetid,pollid){var bbdiv=$('pollwidget_showbbcode_'+widgetid+'_'+pollid);var input=$('pollwidget_bbcode_'+widgetid+'_'+pollid);bbdiv.setStyle({'background-color':'black'});Effect.Appear(bbdiv,{duration:0.3,to:0.7});input.activate();},
hidebbcode:function(widgetid,pollid){var bbdiv=$('pollwidget_showbbcode_'+widgetid+'_'+pollid);var input=$('pollwidget_bbcode_'+widgetid+'_'+pollid);Effect.Fade(bbdiv,{duration:0.3});}
};var PollWidget2={displaymain:function(widgetid,text){var main=$(widgetid+'_main');main.innerHTML=text;$(widgetid+'_message').hide();Effect.Appear(main,{duration:0.3});},
displaymessage:function(widgetid,text){var msg=$(widgetid+'_message');msg.innerHTML=text;$(widgetid+'_main').hide();Effect.Appear(msg,{duration:0.3});},
showcreatedialog:function(widgetid){PollWidget2.displaymessage(widgetid,'Loading...');var url='req=pollgetcreatedialog&wid='+widgetid;ajaxJsonEval(url);},
submitnewpoll:function(widgetid){var formid=widgetid+'_createform';var form=$(formid);var url='req=pollcreate&wid='+widgetid+
'&question='+escape(form.q.value)+
'&ans[]='+escape(form.a1.value)+
'&ans[]='+escape(form.a2.value)+
'&ans[]='+escape(form.a3.value)+
'&ans[]='+escape(form.a4.value)+
'&ans[]='+escape(form.a5.value);ajaxJsonEval(url);},
submitvote:function(widgetid,pollid,formid){var form=$(formid);var radio=form.getInputs('radio','pollchoice');var selected;radio.each(function(r){if(r.checked){selected=r;}
});if(!selected){alert('Please choose your answer before voting!');return;}
var url='req=pollvote2&pollid='+pollid+'&answerid='+selected.value+'&wid='+widgetid;ajaxJsonEval(url);},
showresults:function(widgetid,pollid){var url='req=pollshowresults2&pollid='+pollid+'&wid='+widgetid;ajaxJsonEval(url);},
showbbcode:function(widgetid,pollid){var bbdiv=$('pollwidget_showbbcode_'+widgetid+'_'+pollid);var input=$('pollwidget_bbcode_'+widgetid+'_'+pollid);bbdiv.setStyle({'background-color':'black'});Effect.Appear(bbdiv,{duration:0.3,to:0.7});input.activate();},
hidebbcode:function(widgetid,pollid){var bbdiv=$('pollwidget_showbbcode_'+widgetid+'_'+pollid);var input=$('pollwidget_bbcode_'+widgetid+'_'+pollid);Effect.Fade(bbdiv,{duration:0.3});}
};var DropDownMenu={hide_timeouts:{},
show_timeouts:{},
'toggle':function(trigger_li,dropdown_ul,autoOffset){if($(dropdown_ul).getStyle('display')=='block'){return this.hide(trigger_li,dropdown_ul);}else{return this.show(trigger_li,dropdown_ul,autoOffset);}
},
'show':function(trigger_li,dropdown_ul,autoOffset){if(!Prototype.Browser.IE){var siblings=$(trigger_li).siblings();siblings.each(function(sibling){sibling.removeClassName('highlight');});siblings=$(dropdown_ul).siblings();siblings.each(function(sibling){if(sibling.hasClassName('subnav'))sibling.hide();});}
if(autoOffset){var offsets=$(trigger_li).positionedOffset();$(dropdown_ul).setStyle({left:(offsets[0])+'px',
top:(offsets[1]+$(trigger_li).getHeight()+1)+'px'});}
$(dropdown_ul).setStyle({display:'block'});Shim.syncShim($(dropdown_ul));$(trigger_li).addClassName('highlight');return false;},
'delayedshow':function(trigger_li,dropdown_ul,autoOffset){if(this.hide_timeouts[dropdown_ul]){timeout=this.hide_timeouts[dropdown_ul];delete(this.hide_timeouts[dropdown_ul]);clearTimeout(timeout);}
this.show_timeouts[dropdown_ul]=setTimeout(function(){DropDownMenu.show(trigger_li,dropdown_ul,autoOffset)},250);},
'hide':function(trigger_li,dropdown_ul){$(dropdown_ul).hide();Shim.syncShim($(dropdown_ul));$(trigger_li).removeClassName('highlight');},
'delayedhide':function(trigger_li,dropdown_ul){if(this.show_timeouts[dropdown_ul]){timeout=this.show_timeouts[dropdown_ul];delete(this.show_timeouts[dropdown_ul]);clearTimeout(timeout);}
this.hide_timeouts[dropdown_ul]=setTimeout(function(){DropDownMenu.hide(trigger_li,dropdown_ul);},100);}
};var Shim={'setupShim':function(e){return;e.shim=new Element('iframe',{style:'position:absolute;display:none;',
src:'/common/static/blank.html',
frameborder:0,
border:0,
scrolling:'no'
});e.insert({after:e.shim});},
'syncShim':function(e){return;if(!e.shim){e.shim=new Element('iframe',{style:'position:absolute;display:none;',
src:'/common/static/blank.html',
frameborder:0,
border:0,
scrolling:'no'
});e.insert({after:e.shim});}
e.shim.setStyle({zIndex:e.getStyle('zIndex')-1,
display:e.getStyle('display'),
width:e.getWidth()+'px',
height:e.getHeight()+'px',
top:e.getStyle('top'),
left:e.getStyle('left'),
bottom:e.getStyle('bottom'),
right:e.getStyle('right'),
border:'none'
});}
};var MangaChapterWidget={'imageFrame':null,
'imageFrameParent':null,
'pageLabel':null,
'imgs':null,
'imagecount':null,
'currentImageIndex':0,
'imageCache':{},
'initialize':function(imgs,imagecount,image_frame_eid,page_label_eid){this.imageFrame=$(image_frame_eid);this.imageFrameParent=this.imageFrame.parentNode;this.pageLabel=$(page_label_eid);this.imgs=imgs;this.imagecount=parseInt(imagecount);this.currentImageIndex=this.getCurrentImageIndexFromHash();this.showImage();setInterval(function(){MangaChapterWidget.updateFromHash();},25);},
'updateFromHash':function(){var i=this.getCurrentImageIndexFromHash();if(i!=undefined&&this.imgs[i]!=undefined&&this.currentImageIndex!=i){this.currentImageIndex=i;this.showImage();}
},
'getCurrentImageIndexFromHash':function(){if(window.location.hash!=undefined){for(var i in this.imgs){if('#'+this.imgs[i].hash==window.location.hash||this.imgs[i].hash==window.location.hash){return parseInt(i);}
}
}
return 0;},
'showImage':function(){var nextImage=this.imgs[this.currentImageIndex];if(nextImage==undefined)return false;if(nextImage.url!=undefined){if(this.imageCache[nextImage.url]==undefined){var newImage=new Image();newImage.src=nextImage.url;newImage.onclick=function(){MangaChapterWidget.showNext();};newImage.id=this.imageFrame.id;this.imageCache[nextImage.url]=newImage;}
$(this.imageFrame.id).remove();this.imageFrameParent.appendChild(this.imageCache[nextImage.url]);this.imageFrame=this.imageCache[nextImage.url];}
if(this.pageLabel!=undefined&&nextImage.page!=undefined){this.pageLabel.innerHTML='Page '+nextImage.page+" ("+(parseInt(this.currentImageIndex)+1)+" out of "+this.imagecount+")";}
this.cacheNextImage();if(nextImage.hash){window.location.hash=nextImage.hash;}
new Image().src='/tracker?t=log&b=cr_manga&sb=view_photo';},
'cacheNextImage':function(){var nextIndex=((this.currentImageIndex+1+this.imagecount)% this.imagecount);var nextImage=this.imgs[nextIndex];if(nextImage==undefined)return false;if(this.imageCache[nextImage.url]==undefined){var newImage=new Image();newImage.src=nextImage.url;newImage.onclick=function(){MangaChapterWidget.showNext();};newImage.id=this.imageFrame.id;this.imageCache[nextImage.url]=newImage;}
},
'showNext':function(){this.currentImageIndex=((parseInt(this.currentImageIndex)+1+this.imagecount)% this.imagecount);this.showImage();Effect.ScrollTo('logo',{duration:.2});this.resizeArrows();},
'showPrev':function(){this.currentImageIndex=((parseInt(this.currentImageIndex)-1+this.imagecount)% this.imagecount);this.showImage();Effect.ScrollTo('logo',{duration:.2});this.resizeArrows();},
resizeArrows:function(){var imgheight=$('manga_image_frame').getHeight();$$('.manga-chapter-widget .nav-button').each(function(s){s.setStyle({height:imgheight+'px'})});}
};var PopupImage={'onclick':function(img_url){var img=document.createElement("img");var mask=document.createElement("div");img=$(img);mask=$(mask);mask.innerHTML="&nbsp;";mask.style.width=Math.max(Math.max(document.viewport.getWidth(),$(document.body).getWidth()),0)+"px";mask.style.height=Math.max(Math.max(document.viewport.getHeight(),$(document.body).getHeight()),0)+"px";mask.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=60)";var vpOffsets=document.viewport.getScrollOffsets();var vertPos=(parseInt(vpOffsets.top)+parseInt(document.viewport.getHeight()/2))+'px';var horizPos=(parseInt(vpOffsets.left)+parseInt(document.viewport.getWidth()/2))+'px';mask.setStyle({backgroundColor:'black',
backgroundImage:'url(./icons/loading_white.gif)',
backgroundRepeat:'no-repeat',
backgroundPosition:horizPos+' '+vertPos,
position:'absolute',
cursor:'pointer',
top:'0px',
left:'0px',
opacity:'0.6',
zIndex:'999'
});img.style.visibility="hidden";img.onload=function(){this.style.position="absolute";this.style.cursor="pointer";this.style.top=Math.max(0,(windowScrollTop()+((windowInnerHeight()-this.height)/2)))+"px";this.style.left=Math.max(0,(windowScrollLeft()+((windowInnerWidth()-this.width)/2)))+"px";this.style.zIndex=1000;this.style.visibility="";mask.style.backgroundImage='';mask.style.height=Math.max(parseInt(mask.style.height),parseInt(this.height))+"px";mask.style.width=Math.max(parseInt(mask.style.width),parseInt(this.width))+"px";}
img.src=img_url;mask.onclick=img.onclick=function(){document.body.removeChild(mask);document.body.removeChild(img);showKnownFlashElements();};hideKnownFlashElements();document.body.appendChild(mask);document.body.appendChild(img);}
};var DTool=Class.create({setIgnore:function(vid){var url="req=dt_ignore&vid="+vid;ajaxJsonEval(url);},
notify:function(vid){var url="req=dt_notify&vid="+vid;ajaxJsonEval(url);},
setRemove:function(series){var url="req=dt_remove&series="+series;ajaxJsonEval(url);}
});function select_dmcatool(formname,type){var f=$(formname);if(f!=undefined){if(type=='all'){Form.getInputs(f,'checkbox').each(function(i){i.checked=true;});}else if(type=='none'){Form.getInputs(f,'checkbox').each(function(i){i.checked=false;});}else if(type=='notified'){Form.getInputs(f,'checkbox').each(function(i){if(i.hasClassName('dmcatool-notified'))i.checked=true;else i.checked=false});}else if(type=='unnotified'){Form.getInputs(f,'checkbox').each(function(i){if(i.hasClassName('dmcatool-unnotified'))i.checked=true;else i.checked=false});}
}
}
/*--------------------------------------------------
  cookie-related methods
  Taken from http://www.quirksmode.org/js/cookies.html
--------------------------------------------------*/
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/; domain="+DOMAIN;}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i < ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function eraseCookie(name){createCookie(name,"",-1);}
/**
 * Utilities for checking for browser features.
 * Note: Bugreport checks for the presence of this variable
 */
var BrowserCheck={/**
   * Check that the user has cookies. If not, then redirect to the user
   * to the error page.
   */
'testForCookies':function(){var test_cookie='cookie_test';var test_value='1';createCookie(test_cookie,test_value,0);if(test_value==readCookie(test_cookie)){eraseCookie(test_cookie);}else{redirect('/error?msg=nocookie');}
}
};var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)
||this.searchVersion(navigator.appVersion)
||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},
searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else if(dataProp)
return data[i].identity;}
},
searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},
dataBrowser:[{string:navigator.userAgent,
subString:"OmniWeb",
versionSearch:"OmniWeb/",
identity:"OmniWeb"
},{string:navigator.vendor,
subString:"Apple",
identity:"Safari"
},{prop:window.opera,
identity:"Opera"
},{string:navigator.vendor,
subString:"iCab",
identity:"iCab"
},{string:navigator.vendor,
subString:"KDE",
identity:"Konqueror"
},{string:navigator.userAgent,
subString:"Firefox",
identity:"Firefox"
},{string:navigator.vendor,
subString:"Camino",
identity:"Camino"
},{string:navigator.userAgent,
subString:"Netscape",
identity:"Netscape"
},{string:navigator.userAgent,
subString:"MSIE",
identity:"Explorer",
versionSearch:"MSIE"
},{string:navigator.userAgent,
subString:"Gecko",
identity:"Mozilla",
versionSearch:"rv"
},{string:navigator.userAgent,
subString:"Mozilla",
identity:"Netscape",
versionSearch:"Mozilla"
}
],
dataOS:[{string:navigator.platform,
subString:"Win",
identity:"Windows"
},{string:navigator.platform,
subString:"Mac",
identity:"Mac"
},{string:navigator.platform,
subString:"Linux",
identity:"Linux"
}
]
};BrowserDetect.init();/**
 * Countdown Timer
 *
 * Config parameters:
 *   renderTo element or id of element to render to
 *   targetDate
 *   finishedMessage (optional) text to display when countdown ends. defaults to "00:00:00:00"
 *   callback (optional) called when timer reaches 0. defaults to no-op
 *   callbackScope (optional) scope to execute call back in. defaults to this timer
 *   type (optional) "plain", "plain-full", "fancy", "fancy-full". defaults to "plain"
 *   allowSingleDigits (optional) whether a leading 0 should be added to single-digits. default to false.
 *
 * PHP code depends on this, do not change existing configs without refactoring
 * dependencies.
 */
CountdownTimer=function(config){this._render_to=config.renderTo;this._target_date=(new Date(config.targetDate)).valueOf();this._finished_message=config.finishedMessage ? config.finishedMessage:'00:00:00:00';this._callback=config.callback ? config.callback:function(){};this._callbackScope=config.callbackScope ? config.callbackScope:this;this._type=config.type ? config.type:'plain';this._allowSingleDigits=config.allowSingleDigits ? config.allowSingleDigits:false;switch(config.type){case 'fancy':
this._render_template='<div class="countdown-timer-fancy-digits"><span class="countdown-timer-days"></span>:<span class="countdown-timer-hours"></span>:<span class="countdown-timer-minutes"></span>:<span class="countdown-timer-seconds"></span></div>';break;case 'fancy-full':
this._render_template='<div class="countdown-timer-fancy-full-digits"><span class="countdown-timer-days"></span> days <span class="countdown-timer-hours"></span> hrs <span class="countdown-timer-minutes"></span> min <span class="countdown-timer-seconds"></span> seconds</div>';break;case 'plain-full':
this._render_template='<span class="countdown-timer-days"></span> days <span class="countdown-timer-hours"></span> hrs <span class="countdown-timer-minutes"></span> min <span class="countdown-timer-seconds"></span> seconds';break;case 'plain':
default:
this._render_template='<span class="countdown-timer-days"></span>:<span class="countdown-timer-hours"></span>:<span class="countdown-timer-minutes"></span>:<span class="countdown-timer-seconds"></span>';break;}
this._finished_template=new Template('#{message}');this._remaining_sec=null;this._periodic_executor=null;this._span_days=null;this._span_hours=null;this._span_minutes=null;this._span_seconds=null;$(this._render_to).addClassName('countdown-timer-'+this._type);var thiz=this;/**
   * Start counting down this timer.
   */
this.start=function(){$(this._render_to).innerHTML=this._render_template;this._span_days=($(this._render_to).select('.countdown-timer-days'))[0];this._span_hours=($(this._render_to).select('.countdown-timer-hours'))[0];this._span_minutes=($(this._render_to).select('.countdown-timer-minutes'))[0];this._span_seconds=($(this._render_to).select('.countdown-timer-seconds'))[0];if(!Page.countdown_timer_stepper){Page.countdown_timer_stepper=new CountdownTimerStepper();Page.countdown_timer_stepper.start();}
Page.countdown_timer_stepper.registerTimer(this);};/**
   * Stop updating the timer.
   */
this.pause=function(){if(Page.countdown_timer_stepper){Page.countdown_timer_stepper.unregisterTimer(thiz);}
};/**
   * Advance this timer.
   *
   * @param number current_time
   */
this.step=function(current_time){var date_diff=thiz._target_date-current_time+Page.clock_offset;if(date_diff <=0){thiz.pause();$(thiz._render_to).innerHTML=thiz._finished_template.evaluate({message:thiz._finished_message
});thiz._callback.call(thiz._callbackScope);}else{thiz._remaining_sec=Math.floor(date_diff/1000);var dest=$(thiz._render_to);if(dest&&thiz._span_days&&thiz._span_hours&&thiz._span_minutes&&thiz._span_seconds){thiz._span_days.innerHTML=thiz._convertUnit(thiz._remaining_sec,86400,999999);thiz._span_hours.innerHTML=thiz._convertUnit(thiz._remaining_sec,3600,24);thiz._span_minutes.innerHTML=thiz._convertUnit(thiz._remaining_sec,60,60);thiz._span_seconds.innerHTML=thiz._convertUnit(thiz._remaining_sec,1,60);}else{thiz.pause();}
}
};this._convertUnit=function(original,factor,mod){var s=((Math.floor(original/factor))% mod).toString();if(!this._allowSingleDigits&&s.length < 2){s='0'+s;}
return s;};};/**
 * Controller for all countdown timers on a page.
 */
CountdownTimerStepper=function(){this._timers=new Array();this._stopped=false;var thiz=this;/**
   * Add a timer to this controller.
   *
   * @param CountdownTimer timer
   */
this.registerTimer=function(timer){thiz._timers.push(timer);};/**
   * Remove a timer from this controller.
   */
this.unregisterTimer=function(timer){thiz._timers=thiz._timers.without(timer);};/**
   * Advance all registered countdown timers.
   * Method uses "thiz" because it will be called by setTimeout()
   */
this._step=function(){if(!thiz._stopped){setTimeout(Page.countdown_timer_stepper._step,990);}
var current_time=(new Date()).valueOf();for(i=0;i < thiz._timers.length;i++){var timer=thiz._timers[i];if(timer){timer.step.call(timer,current_time);}
}
};/**
   * Stop stepping timers.
   */
this.pause=function(){this._stopped=true;}
/**
   * Start stepping timers.
   */
this.start=function(){this._stopped=false;this._step();}
};/**
 * Form and input related utilities
 */
FormUtil={/**
   * Select all text in the form.
   */
highlightText:function(node){var n=$(node);n.focus();n.select();}
};var writeEmail=function(email_chunk_1,email_chunk_2,email_chunk_3,domain,tld){var a='o:'+email_chunk_1;var b=email_chunk_3+'@'+domain+'.';var c='a>';var d='<a hre';var e='f="mailt';var f=email_chunk_2+email_chunk_3+'@'+domain+'.';var g=tld+'</';var h=tld+'">'+email_chunk_1+email_chunk_2;document.write(d+e+a+f+h+b+g+c);};var TableGrid=Class.create({initialize:function(a){this.maxcols=2;this.attrs={};this.items=new Array();},
attach:function(str){this.items.push(str);},
show:function(){var finalres='';var trres='';var col_index=0;for(var i=0;i<this.items.length;i++){trres+=tag('td',this.items[i]);col_index++;if(col_index >=this.maxcols){finalres+=tag('tr',trres);trres='';col_index=0;}
}
if(col_index < this.maxcols&&col_index!=0){for(var j=0;j<this.maxcols-col_index;j++){trres+=tag('td','&nbsp;');}
finalres+=tag('tr',trres);}
return tag('table',finalres,this.attrs);}
});/**
 * Redirect a user and optionally set messages to be displayed.
 *
 * @param string url
 * @param array message_list (optional) Format is the same as Messaging.addItems()
 */
function redirect(url,message_list){if(message_list){createCookie('c_msg_list',Object.toJSON(message_list),0.1);}
window.location=url;}
var URLS=Class.create({url:null,
params:null,
base_url:null,
initialize:function(url){if(!url)url=window.location.toString();this.url=url;this.params=new Object();var chunks=this.url.split("?");this.base_url=chunks.shift();var query=chunks.join("?");var vars=query.split("&");for(var i=0;i<vars.length;i++){var pair=vars[i].split("=");var k=decodeURI(pair[0]);var val=decodeURI(pair[1]);this.params[k]=val;}
},
setParam:function(k,val){this.params[k]=val;},
getParam:function(k){return this.params[k];},
show:function(){var querystr=new Array();for(var i in this.params){if(i){querystr.push(encodeURIComponent(i)+'='+encodeURIComponent(this.params[i]));}
}
return this.base_url+'?'+querystr.join('&');}
});var TabWidget=Class.create({initialize:function(base_eid){this.tab_js_contents=$A();this.tab_contents=$A();this.base_eid=base_eid;},
addJsContent:function(contents){this.tab_js_contents.push(contents);},
addContent:function(contents){this.tab_contents.push(contents);},
showTab:function(tab_index,tab_count){for(i=0;i<tab_count;i++){$(this.base_eid+'_tab_'+i).removeClassName('tab-highlight');}
$(this.base_eid+'_tab_contents_container').innerHTML=this.tab_contents[tab_index];if(this.tab_js_contents[tab_index]){eval(this.tab_js_contents[tab_index]);}
$(this.base_eid+'_tab_'+tab_index).addClassName('tab-highlight');},
mouseOverTab:function(tab_index){$(this.base_eid+'_tab_'+tab_index).addClassName('tab-hover');},
mouseOutTab:function(tab_index){$(this.base_eid+'_tab_'+tab_index).removeClassName('tab-hover');}
});var TabWidgetAjax={module_name:null,
widget_eid:null,
base_params_obj:null,
photo_params_obj:null,
current_tab_id:null,
photo_elements:{},
Init:function(default_state,widget_eid,base_params_obj,photo_params_obj){TabWidgetAjax.widget_eid=widget_eid;TabWidgetAjax.base_params_obj=base_params_obj;TabWidgetAjax.photo_params_obj=photo_params_obj;YAHOO.util.History.register(TabWidgetAjax.module_name,YAHOO.util.History.getBookmarkedState(TabWidgetAjax.module_name)||default_state,TabWidgetAjax.ChangeState);YAHOO.util.History.initialize('yui-history-field','yui-history-iframe');YAHOO.util.History.onReady(function(){TabWidgetAjax.current_tab_id=TabWidgetAjax.GetTabIdFromState(YAHOO.util.History.getCurrentState(TabWidgetAjax.module_name));});},
ChangeState:function(state){var vars={};parse_str(parse_url(state).query,vars);page=vars.page||0;var tab_id=TabWidgetAjax.GetTabIdFromState(state);if(tab_id=='photo'&&TabWidgetAjax.current_tab_id==tab_id){TabWidgetAjax.SwitchPhotos(page,TabWidgetAjax.photo_elements.paginator_id,TabWidgetAjax.photo_elements.grid_container_id,TabWidgetAjax.photo_elements.loading_id);}else{TabWidgetAjax.SwitchTabs(state);}
},
SwitchPhotos:function(page_number,paginator_id,grid_container_id,loading_id){var params_obj=TabWidgetAjax.photo_params_obj;params_obj.page=page_number;$(loading_id).update('Loading <img src=\'./icons/loading_white_16_16.gif\'/>');Rpc.request({params_obj:params_obj,
callback:function(resp){$(loading_id).update('');if(resp.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(resp);}else{Effect.Fade(grid_container_id,{duration:.3,afterFinish:function(){$(grid_container_id).replace(resp.data.grid_html);}});$(paginator_id).replace(resp.data.paginator_html);}
}
});},
SwitchTabs:function(state){var tab_id=TabWidgetAjax.GetTabIdFromState(state);var loading_html='<div style="padding:80px;margin:auto;text-align:center;font-weight:bold;font-size:14px;">Loading...<br/><img src="./icons/loading_32_32.gif"/></div>';$(TabWidgetAjax.widget_eid+'_tab_contents').update(loading_html);var params_obj=TabWidgetAjax.base_params_obj;params_obj.state=state;Rpc.request({params_obj:params_obj,
callback:function(resp){if(resp.result_code!=Rpc.RESULT_SUCCESS){$(TabWidgetAjax.widget_eid+'_tab_contents').update('Error');Rpc.printMessage(resp);}else{TabWidgetAjax.current_tab_id=tab_id;$(TabWidgetAjax.widget_eid+'_tab_contents').update(resp.data.html);$(TabWidgetAjax.widget_eid).select('.tab').each(function(e){$(e).removeClassName('highlight');});$(TabWidgetAjax.widget_eid+'_tab_'+tab_id).addClassName('highlight');Dialog.addClickListeners(TabWidgetAjax.widget_eid+'_tab_contents');if(document.viewport.getScrollOffsets().top > 800){$(TabWidgetAjax.widget_eid+'_tab_contents').scrollTo();}
}
}
});},
AttemptRedirect:function(valid_states){var state=url=decodeURIComponent(window.location.hash).substr(TabWidgetAjax.module_name.length+2);if(state.indexOf('?')> 0){state=state.substr(0,state.indexOf('?'));}
if(state){for(i=0;i<valid_states.length;i++){if(state==valid_states[i]){window.location=url;}
}
}
},
GetTabIdFromState:function(state){if(state.indexOf('?')>0){path=state.substr(0,state.indexOf('?'));}else{path=state;}
for(i in TabAjaxStates){if(TabAjaxStates[i]==path)return i;}
return null;},
Refresh:function(){var state=YAHOO.util.History.getCurrentState(TabWidgetAjax.module_name);TabWidgetAjax.SwitchTabs(state);}
};/**
 * Controls for adding or clearing the message box.
 */
var MessageBox=function(config){this._render_to=config.render_to;this._item_template=new Template('<div class="message-item #{type_class}"><img class="message-item-icon" src="./icons/empty_pixel.gif"/>#{content}</div>');this._type_class_map={error:'message-type-error',
warning:'message-type-warning',
success:'message-type-success'
};var only_error_css_class='message-container-only-errors';var hide_button=new Element('img',{'class':'message-list-hide',
'src':'./icons/remove_grey_14_14.gif'});this._list=new Element('div',{'class':'message-list'});this._container=new Element('div',{'class':'message-container '+only_error_css_class});this._container.insert(this._list);$(this._render_to).insert(this._container);var hide_click_handler=function(){this.clearAllItems();};hide_button.observe('click',hide_click_handler.bindAsEventListener(this));/**
   * Add a message, and show the box if it is not already visible.
   */
this.addItem=function(type,message_body){if('error'!=type){this._container.removeClassName(only_error_css_class);}
this._list.insert(this._item_template.evaluate({type_class:this._type_class_map[type] ? this._type_class_map[type]:this._type_class_map['warning'],
content:message_body
}));$(this._render_to).show();};/**
   * Add messages in bulk from an array.
   */
this.addItems=function(messages){for(var i=0;i < messages.length;i++){this.addItem(messages[i].type,messages[i].message_body);}
};/**
   * Clear all messages and hide the box.
   */
this.clearAllItems=function(){$(this._render_to).hide();this._list.innerHTML='';this._container.addClassName(only_error_css_class);};};var Messaging={reset:function(){if(Page.messaging_box_controller){Page.messaging_box_controller.clearAllItems();}
},
addError:function(message){if(Page.messaging_box_controller){Page.messaging_box_controller.addItem('error',message);}
},
addWarning:function(message){if(Page.messaging_box_controller){Page.messaging_box_controller.addItem('warning',message);}
},
addSuccess:function(message){if(Page.messaging_box_controller){Page.messaging_box_controller.addItem('success',message);}
},
addItems:function(message_list){if(Page.messaging_box_controller){Page.messaging_box_controller.addItems(message_list);}
}
};function toggleForumModEdit(id){if($(id).style.visibility=='hidden')
$(id).style.visibility='visible';else
$(id).style.visibility='hidden';if($(id).style.display=='none')
$(id).style.display='block';else
$(id).style.display='none';}
function SendFreeVItem(vitem_class_id){Rpc.request({params_obj:{req:'RpcApiUser_SendFreeVItem',
vitem_class_id:vitem_class_id
},
callback:Rpc.showAlert
});}
var LightWindow=Class.create({mask:null,
visible:false,
contents:null,
params:$H(),
initialize:function(contents,params){this.contents=$(contents);if(params){this.params=params;}
},
show:function(){if(this.visible)return;this.visible=true;var contents=this.contents;var mask=document.createElement("div");this.mask=$(mask);mask.innerHTML="&nbsp;";mask.style.width=document.viewport.getWidth()+"px";mask.style.height='110%';document.viewport.getHeight()+"px";mask.style.opacity="0.6";mask.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=60)";mask.style.backgroundColor="#000000";mask.style.width=Math.max(Math.max(document.viewport.getWidth(),$(document.body).getWidth()),0)+"px";mask.style.height=Math.max(Math.max($('template_container').getHeight(),document.viewport.getHeight(),$(document.body).getHeight()),0)+"px";mask.style.position="absolute";mask.style.top="0px";mask.style.left="0px";mask.style.display="block";var dim=contents.getDimensions();contents.style.top=Math.max(0,(document.viewport.getHeight()-dim.height)/2)+"px";contents.style.left=Math.max(0,(contents.getOffsetParent().getWidth()-dim.width)/2)+"px";contents.style.zIndex=10001;mask.style.zIndex=10000;if(this.params.hideOnClick){this.boundHideHandler=this.hide.bindAsEventListener(this);mask.observe('click',this.boundHideHandler);contents.observe('click',this.boundHideHandler);mask.style.cursor="pointer";contents.style.cursor="pointer";}
hideKnownFlashElements();Effect.Appear(contents,{duration:.2,beforeStart:function(){$('template_scroller').appendChild(mask);}});},
hide:function(){if(!this.visible)return;this.contents.stopObserving('click',this.boundHideHandler);this.visible=false;var thiz=this;Effect.Fade(this.contents,{duration:.2,afterFinish:function(){$(thiz.mask).remove();showKnownFlashElements()}});}
});var Positioning={repositionWithinViewport:function(element,anchorX,anchorY){var width=element.getWidth();var height=element.getHeight();var scrolloffsets=document.viewport.getScrollOffsets();var left=anchorX;var top=anchorY;if(width+anchorX >=document.viewport.getWidth()+scrolloffsets['left']){left-=width;}
if(height+anchorY >=document.viewport.getHeight()+scrolloffsets['top']){top-=height;}
element.setStyle({top:top+'px',left:left+'px'});}
};var OverlayBox=Class.create({box:null,
shadowOffset:25,
width:null,
height:null,
initialize:function(id,innerHTML,width,height){this.box=new Element('div',{'class':'overlay-box',
id:id,
style:'display: none; position: absolute;'});this.contentbox=new Element('div',{'class':'overlay-box-inner'});if(width&&height){this.setDimensions(width,height);}else{this.setDimensions(240,135);}
this.setContent(innerHTML);},
setDimensions:function(width,height){this.box.setStyle({width:width+'px',height:height+'px'});this.contentbox.setStyle({width:(width-10)+'px',height:(height-10)+'px'});this.width=width;this.height=height;},
getElement:function(){return this.box;},
setContent:function(innerHTML){this.contentbox.innerHTML='';this.box.innerHTML='';this.box.insert({top:this.contentbox});this.contentbox.insert({top:innerHTML});var shadowWidth=this.shadowOffset*2+this.width;var shadowHeight=this.shadowOffset*2+this.height;var shadowStyle='width: '+shadowWidth+'px;'+
'height: '+shadowHeight+'px;'+
'left: '+(-this.shadowOffset)+'px;'+
'top:'+(-this.shadowOffset)+'px;';this.box.insert({bottom:DropShadow.getDropShadowImg(shadowStyle)});}
});var DropShadow={getDropShadowImg:function(style){var src=Prototype.Browser.IE ? './icons/blank.gif':'./icons/dropshadow.png';var img=new Element('img',{'src':src,'class':'dropshadow',style:style});return img;}
};/**
 * A place to put global variables for this page. Use sparingly.
 */
var Page={clock_offset:0,
messaging_box_controller:null,
countdown_timer_stepper:null,
lightwindow:new LightWindow(),
warnOnLeavingPageMessage:null
};window.onbeforeunload=function(){if(Page.warnOnLeavingPageMessage){return Page.warnOnLeavingPageMessage;}
};function getWindowHeight(){if(window.self&&self.innerHeight){return self.innerHeight;}
if(document.documentElement&&document.documentElement.clientHeight){return document.documentElement.clientHeight;}
return 0;}
var Modes={'ForumMod':function(fcids_to_turn_on,fcids_to_turn_off,callback){Rpc.request({params_obj:{"req":"RpcApiUser_ForumModMode",
'fcmod_on':fcids_to_turn_on,
'fcmod_off':fcids_to_turn_off},
callback:callback});}
}
/**
 * JS specific to /edit_article_relationship_member
 */
var EditArticleRelationshipMember={_counter:0,
_newRowTemplate:new Template('<tr class="memberEditList-newMember" id="#{row_id}">'
+'<td class="memberEditList-labelCell"><input type="text" class="memberEditList-newMember-label" id="#{row_id}_label"/></td>'
+'<td class="memberEditList-memberCell"><input type="hidden" class="memberEditList-newMember-id" id="#{row_id}_id"/><input type="text" class="memberEditList-newMember-name" id="#{row_id}_name"/></td>'
+'<td class="memberEditList-actionCell"><input type="button" class="submitbtn" onclick="EditArticleRelationshipMember.RemoveNewMember(\'#{row_id}\')" value="Remove"/></td>'
+'</tr>'),
/**
   * Add another input row to the list
   *
   * @param id|Element member_list
   */
AddNewMember:function(member_list){var row_id='new_member_'+(EditArticleRelationshipMember._counter++);$(member_list).insert({bottom:EditArticleRelationshipMember._newRowTemplate.evaluate({row_id:row_id})});if(!$('article_choices')){$(member_list).insert({after:new Element('div',{'class':"autocomplete",'id':"article_choices"})});}
EditArticleRelationshipMember.InitAutocompleter(row_id);},
/**
   * Remove a new (unsaved) member from the list
   *
   * @param id_Element new_member_row_id
   */
RemoveNewMember:function(new_member_row_id){$(new_member_row_id).remove();},
UpdateExistingMember:function(row_id){var member_row=$(row_id);member_row.addClassName('memberEditList-updatedMember');},
/**
   * Mark a member for removal
   *
   * @param string member_id
   */
RemoveExistingMember:function(row_id){var member_row=$(row_id);member_row.addClassName('memberEditList-removedMember');member_row.removeClassName('memberEditList-updatedMember');},
/**
   * Commit the changes made to the member list
   *
   * @param string next_url URL to redirect to on successful commit of changes
   */
Save:function(collective_id){var extractId=function(row_id){return row_id.split('_')[1];}
var removed_members=new Array();$$('.memberEditList-removedMember').each(function(tr){removed_members.push(extractId(tr.id));});var updated_members=new Array();$$('.memberEditList-updatedMember').each(function(tr){updated_members.push({id:extractId(tr.id),
label:$(tr.id+'_label').value});});var added_members=new Array();$$('.memberEditList-newMember').each(function(tr){var rowinfo={collective_id:collective_id};if($F(tr.id+'_id')){rowinfo['member_id']=$F(tr.id+'_id');}
rowinfo['member_name']=$F(tr.id+'_name').strip();rowinfo['label']=$F(tr.id+'_label').strip();added_members.push(rowinfo);});if(removed_members.length==0&&updated_members.length==0&&added_members.length==0){Messaging.addWarning('No changes to save!');return;}
Rpc.request({params_obj:{req:'RpcApiLibrary_UpdateCollectiveMembers',
removed:removed_members.toJSON(),
updated:updated_members.toJSON(),
added:added_members.toJSON(),
group_id:collective_id
},
callback:function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Messaging.reset();Rpc.printMessage(json);}else{Rpc.redirect(json,window.location);}
}
});},
InitAutocompleter:function(row_id){var completer=new Ajax.Autocompleter(row_id+'_name',
'article_choices',
'/ajax/?req=RpcApiLibrary_GetArticlesByPrefix&rt=html&article_type=8',{minChars:1,
paramName:'prefix',
afterUpdateElement:function(input,item){$(row_id+'_id').value=item.getAttribute('group_id');}});}
}
/**
 * JS specific to /edit_article_relationship_casting
 */
var EditArticleRelationshipCasting={_counter:0,
_newCastingTemplate:new Template('<tr class="castingEditList-newCasting" id="#{row_id}">'
+'<td class="castingEditList-actorCell"><input type="hidden" class="castingEditList-newCasting-actorId" id="#{row_id}_actor_id"/><input type="text" class="castingEditList-newCasting-actorName" id="#{row_id}_actor_name"/></td>'
+'<td class="castingEditList-roleCell"><input type="hidden" class="castingEditList-newCasting-roleId" id="#{row_id}_role_id"/><input type="text" class="castingEditList-newCasting-roleName" id="#{row_id}_role_name"/></td>'
+'<td class="castingEditList-actionCell"><input type="checkbox" id="#{row_id}_lead"/></td>'
+'<td class="castingEditList-actionCell"><input type="button" class="submitbtn" onclick="EditArticleRelationshipCasting.RemoveNewCasting(\'#{row_id}\')" value="Remove"/></td>'
+'</tr>'),
AddNewCasting:function(casting_table){var row_id='new_casting_'+(EditArticleRelationshipCasting._counter++);$(casting_table).insert({bottom:EditArticleRelationshipCasting._newCastingTemplate.evaluate({row_id:row_id})});if(!$('article_choices')){$(casting_table).insert({after:new Element('div',{'class':"autocomplete",'id':"article_choices"})});}
EditArticleRelationshipCasting.InitRoleAutocompleter(row_id);EditArticleRelationshipCasting.InitActorAutocompleter(row_id);},
RemoveNewCasting:function(row_id){$(row_id).remove();},
RemoveExistingCasting:function(row_id){$(row_id).addClassName('castingEditList-removedCasting');},
Save:function(series_id){var extractIds=function(row_id){return row_id.split('_')[1];}
var removed_castings=new Array();$$('.castingEditList-removedCasting').each(function(tr){var split=tr.id.split('_');removed_castings.push(split[1]);});var existing_castings=new Array();$$('.castingEditList-existingCasting').each(function(tr){var split=tr.id.split('_');var rowinfo={series_id:series_id,id:split[1]};if($F(tr.id+'_role_id')){rowinfo['role_id']=$F(tr.id+'_role_id');}
rowinfo['role_name']=$F(tr.id+'_role_name').strip();if($F(tr.id+'_actor_id')){rowinfo['actor_id']=$F(tr.id+'_actor_id');}
rowinfo['actor_name']=$F(tr.id+'_actor_name').strip();rowinfo['lead']=$F(tr.id+'_lead')? 1:0;if(!rowinfo['actor_name']&&!rowinfo['role_name']){return;}
existing_castings.push(rowinfo);});var added_castings=new Array();$$('.castingEditList-newCasting').each(function(tr){var rowinfo={series_id:series_id};if($F(tr.id+'_role_id')){rowinfo['role_id']=$F(tr.id+'_role_id');}
rowinfo['role_name']=$F(tr.id+'_role_name').strip();if($F(tr.id+'_actor_id')){rowinfo['actor_id']=$F(tr.id+'_actor_id');}
rowinfo['actor_name']=$F(tr.id+'_actor_name').strip();rowinfo['lead']=$F(tr.id+'_lead')? 1:0;if(!rowinfo['actor_name']&&!rowinfo['role_name']){return;}
added_castings.push(rowinfo);});if(removed_castings.length==0&&added_castings.length==0&&existing_castings.length==0){Messaging.addWarning('No changes to save!');return;}
Rpc.request({params_obj:{req:'RpcApiLibrary_UpdateCastings',
removed:removed_castings.toJSON(),
added:added_castings.toJSON(),
existing:existing_castings.toJSON(),
group_id:series_id
},
callback:function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Messaging.reset();Rpc.printMessage(json);}else{Rpc.redirect(json,window.location);}
}
});},
InitRoleAutocompleter:function(row_id){new Ajax.Autocompleter(row_id+'_role_name',
'article_choices',
'/ajax/?req=RpcApiLibrary_GetArticlesByPrefix&rt=html&article_type=8',{minChars:1,
paramName:'prefix',
afterUpdateElement:function(input,item){$(row_id+'_role_id').value=item.getAttribute('group_id');}});},
InitActorAutocompleter:function(row_id){new Ajax.Autocompleter(row_id+'_actor_name',
'article_choices',
'/ajax/?req=RpcApiLibrary_GetArticlesByPrefix&rt=html&article_type=8',{minChars:1,
paramName:'prefix',
afterUpdateElement:function(input,item){$(row_id+'_actor_id').value=item.getAttribute('group_id');}});}
}
var Subscription={'Add':function(feed_id,callback){Rpc.request({params:'req=RpcApiUserFeedSubscription_AddSubscription&feed_id='+feed_id,
callback:callback ? callback:Rpc.showAlert
});},
'Remove':function(feed_id,callback){if(confirm('Are you sure you want to unsubscribe?  You will stop receiving email updates.')){Rpc.request({params:'req=RpcApiUserFeedSubscription_RemoveSubscription&feed_id='+feed_id,
callback:callback ? callback:Rpc.showAlert
});}
},
'AddCallback_Library':function(id,feed_id,rpc_response){if(rpc_response.result_code==Rpc.RESULT_SUCCESS){new Effect.Opacity(id,{from:1.0,
to:0.01,
duration:0.4,
afterFinish:function(){Element.update(id,'<img id="'+id+'" src="./icons/subscribe_28_28-2.png" title="Unsubscribe"/><span>Unsubscribe</span>');$(id).onclick=function(){Subscription.Remove(feed_id,function(json){Subscription.RemoveCallback_Library(id,feed_id,json);});};new Effect.Opacity(id,{from:0.01,to:1.0,duration:0.4});}});}else{Rpc.showAlert(rpc_response);}
},
'RemoveCallback_Library':function(id,feed_id,rpc_response){if(rpc_response.result_code==Rpc.RESULT_SUCCESS){new Effect.Opacity(id,{from:1.0,
to:0.01,
duration:0.4,
afterFinish:function(){Element.update(id,'<img id="'+id+'" src="./icons/subscribe_28_28.png" title="Subscribe"/><span>Subscribe</span>');$(id).onclick=function(){Subscription.Add(feed_id,function(json){Subscription.AddCallback_Library(id,feed_id,json);});};new Effect.Opacity(id,{from:0.01,to:1.0,duration:0.4});}});}else{Rpc.showAlert(rpc_response);}
}
}
var EntityList={DeleteItem:function(list_id,callback_success,callback_fail){if(confirm('Are you sure you want to delete this List item?')){Rpc.request({params:'req=RpcApiEntityList_RemoveFromList&list_item_id='+list_id,
callback:function(resp){if(resp.result_code==Rpc.RESULT_SUCCESS){callback_success(resp);}else{callback_fail(resp);}}});}
},
ChangeName:function(list_id,original_name,callback_success,callback_fail){var name=prompt('New name:',original_name);if(name==null){return;}
if(name==''){alert('Please enter a list name.');return;}
if(name==original_name){return;}
var params={'req':'RpcApiEntityList_RenameList','name':name,'list_id':list_id};Rpc.request({params_obj:params,
callback_scope:this,
callback:function(json){if(json.result_code==Rpc.RESULT_SUCCESS){callback_success(json);}else{callback_fail(json);}
}
});},
AddListItem:function(etype,refid,entity_list_type,success_callback){var param;if(entity_list_type==2){param='req=RpcApiEntityList_AddFavoriteArticle&etype='+etype+'&refid='+refid+'&entity_list_type='+entity_list_type;}else{param='req=RpcApiEntityList_AddAsFavorite&etype='+etype+'&refid='+refid+'&entity_list_type='+entity_list_type;}
Rpc.request({params:param,callback:success_callback ? success_callback:Rpc.showAlert
});},
RemoveListItem:function(id,callback){Rpc.request({params:'req=RpcApiEntityList_RemoveAsFavorite&list_item_id='+id,
callback:callback ? callback:Rpc.showAlert
});},
AddListItemCallback:function(id,rpc_response){if(rpc_response.result_code==Rpc.RESULT_SUCCESS){new Effect.Opacity(id,{from:1.0,
to:0.01,
duration:0.4,
afterFinish:function(){Element.update(id,rpc_response.data.html);new Effect.Opacity(id,{from:0.01,to:1.0,duration:0.4});}});}else{Rpc.showAlert(rpc_response);}
},
AddListItemCallback_UserProfile:function(id,rpc_response){if(rpc_response.result_code==Rpc.RESULT_SUCCESS){new Effect.Opacity(id,{from:1.0,
to:0.01,
duration:0.4,
afterFinish:function(){Element.update(id,'<img id="'+id+'" src="./icons/heart_28_28_02.png" title="Favorited"/><span>This is a Favorite</span>');$(id).writeAttribute({'dialog':'10,-50'});$(id).writeAttribute({'href':rpc_response.data.dialog_url});Dialog.addClickListener($(id));$(id).fire('a:open_dialog');new Effect.Opacity(id,{from:0.01,to:1.0,duration:0.4});}});}else{Rpc.showAlert(rpc_response);}
},
AddListItemCallback_Library:function(id,rpc_response){if(rpc_response.result_code==Rpc.RESULT_SUCCESS){new Effect.Opacity(id,{from:1.0,
to:0.01,
duration:0.4,
afterFinish:function(){Element.update(id,'<img id="'+id+'" src="./icons/heart_34_34_s.png" title="Favorited"/><span>This is a Favorite</span>');$(id).writeAttribute({'dialog':'10,-50'});$(id).writeAttribute({'href':rpc_response.data.dialog_url});Dialog.addClickListener($(id));$(id).fire('a:open_dialog');new Effect.Opacity(id,{from:0.01,to:1.0,duration:0.4});}});}else{Rpc.showAlert(rpc_response);}
},
RemoveListItemCallback:function(id,rpc_response){if(rpc_response.result_code==Rpc.RESULT_SUCCESS){new Effect.Opacity(id,{from:1.0,
to:0.01,
duration:0.4,
afterFinish:function(){Element.update(id,rpc_response.data.html);new Effect.Opacity(id,{from:0.01,to:1.0,duration:0.4});}});}else{Rpc.showAlert(rpc_response);}
}
}
var Forum={'AjaxPostForm':function(form_submit_btn,table_eid,callback){form_submit_btn=$(form_submit_btn);var form=$(form_submit_btn.form);if(!callback){callback=function(json){json=json.responseText.evalJSON();if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);}else{switch_forum_tab('last',null,json.data.ft_id);}
form_submit_btn.value="Thanks for the post!";};}
Rpc.submitForm(form,callback);form_submit_btn.value="Please Wait...";form_submit_btn.disabled=true;form.newforumpost.disabled=true;return false;},
'RedirectOnSuccess':function(json,url){json=json.responseText.evalJSON();if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);}else{window.location=url;}
}
};var Poll={Delete:function(poll_id,callback){if(!confirm("Are you sure you want to permanently delete this poll?"))return;Rpc.request({params:'req=RpcApiPoll_DeletePoll&poll_id='+poll_id,
callback:callback ? callback:Rpc.showAlert
});}
};var CrCalendar={DAYS_OF_WEEK:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
MONTHS:['January','February','March','April','May','June','July','August','September','October','November','December'],
RenderMonth:function(e,month,year,events){e.innerHTML='';if(true||events&&events.length > 0){var cal_tpl='<div class="calendar-month-days" style="width: 100%;">'+
'<div class="calendar-month-day calendar-left-noborder" style="width: #{colwidth}px;">Sun</div>';['Mon','Tue','Wed','Thu','Fri','Sat'].each(function(day){cal_tpl+='<div class="calendar-month-day" style="width: #{colwidth}px;">'+day+'</div>';});cal_tpl+='</div>';var day_of_cal_ptr=new Date(year,month-1,1);day_of_cal_ptr.setDate(day_of_cal_ptr.getDate()-day_of_cal_ptr.getDay());var day_of_cal_event_ptr=new Date(year,month-1,1);day_of_cal_event_ptr.setDate(day_of_cal_event_ptr.getDate()-day_of_cal_event_ptr.getDay());while(day_of_cal_ptr.getYear()+1900 <=year&&day_of_cal_ptr.getMonth()+1 <=month){cal_tpl+='<div class="calendar-month-dates">'+
'<div class="calendar-month-date calendar-left-noborder" style="width: #{datecolwidth}px;">'+day_of_cal_ptr.getDate()+'</div>';day_of_cal_ptr.setDate(day_of_cal_ptr.getDate()+1);for(var i=1;i < 7;i++){cal_tpl+='<div class="calendar-month-date" style="width: #{datecolwidth}px;">'+day_of_cal_ptr.getDate()+'</div>';day_of_cal_ptr.setDate(day_of_cal_ptr.getDate()+1);}
cal_tpl+='</div>';cal_tpl+='<div class="calendar-month-dates-events" style="height: 80px;">'+
'<div class="calendar-month-date-events calendar-left-noborder" style="width: #{colwidth}px;"></div>';day_of_cal_event_ptr.setDate(day_of_cal_event_ptr.getDate()+1);for(var i=1;i < 7;i++){cal_tpl+='<div id="'+e.id+'_'+(day_of_cal_event_ptr.getYear()+1900)+'_'+(day_of_cal_event_ptr.getMonth()+1)+'" class="calendar-month-date-events" style="width: #{colwidth}px;"></div>';}
cal_tpl+='</div>';}
cal_tpl=new Template(cal_tpl);var colwidth=(e.getWidth()-7)/7;e.insert(cal_tpl.evaluate({colwidth:colwidth,datecolwidth:colwidth-5}));}
},
RenderOverlayDetails:function(e,ev,start_time,end_time){Event.extend(e);var divid='calendar_popup_event_'+(1000*Math.random()).floor();var contents='<div class="calendar-popup-event-name"><a href="#{eventlink}">#{eventname}</a></div>'+
'<div class="calendar-popup-event-time">#{eventtime}</div>'+
'<div class="calendar-popup-event-details">#{eventdetails}</div>';contents=new Template(contents).evaluate({eventname:ev.name.escapeHTML(),
eventtime:start_time,
eventdetails:ev.desc,
eventlink:ev.link
}
);var overlayBox=new OverlayBox(divid,contents,300,200);overlayBox=overlayBox.getElement();overlayBox.addClassName('calendar-popup-event');$(document.body).insert({bottom:overlayBox});Positioning.repositionWithinViewport($(divid),$(e).pointerX(),$(e).pointerY());Effect.Appear(divid,{duration:.1,
afterFinish:function(){$(document.body).observe('click',function(e){Effect.Fade(divid,{duration:.1,afterFinish:function(){$(divid).remove();}});});}
});}
};var ComboSearch={preload:function(){if(!Page.search_candidates_fetched){Rpc.request({params_obj:{req:'RpcApiSearch_GetSearchCandidates'},
callback:function(res){Page.search_candidates_fetched=true;if(res.result_code==Rpc.RESULT_SUCCESS){Page.search_candidates=res.data;}
}
});}
},
search:function(id){ComboSearch.close('header_search_autocomplete');var search_term=$F(id).strip();if(search_term.length==0){return;}
var searchbox=$(id);if(Page.search_candidates){var found_types={};var search_results_prefix={};var search_results_substr={};var item_index=0;for(var i=0;i < Page.search_candidates.length;i++){var entry=Page.search_candidates[i];if(entry.name.toLowerCase().startsWith(search_term.toLowerCase())){if(!search_results_prefix[entry.type]){search_results_prefix[entry.type]=[];}
search_results_prefix[entry.type].push(entry);found_types[entry.type]=1;}else if(entry.name.toLowerCase().include(search_term.toLowerCase())){if(!search_results_substr[entry.type]){search_results_substr[entry.type]=[];}
search_results_substr[entry.type].push(entry);found_types[entry.type]=1;}
}
if($H(found_types).keys().length==0){return;}
li_tpl=new Template('<a href="#{link}" class="clearfix" id="header_search_autocomplete_item_#{item_index}" onfocus="this.hideFocus=true;">'+
'<img src="#{mug}" class="header_search_result_mug" />'+
'<div class="header_search_result_details">'+
'<div class="header_search_result_name">#{name}</div>'+
'<div class="header_search_result_type">#{type}</div>'+
'</div>'+
'</a>');$H(found_types).each(function(pair){var num_results=0;if(search_results_prefix[pair.key]){for(var i=0;i < search_results_prefix[pair.key].length;i++){num_results++;if(num_results > 5){return;}
var entry=search_results_prefix[pair.key][i];$('header_search_autocomplete').insert(li_tpl.evaluate({name:entry.name.escapeHTML(),
item_index:item_index,
mug:entry.img.escapeHTML(),
type:entry.type.escapeHTML(),
link:entry.link.escapeHTML()}));$('header_search_autocomplete_item_'+item_index).observe('keydown',ComboSearch.handleKeyPress.bindAsEventListener());item_index++;}
}
if(search_results_substr[pair.key]){for(var i=0;i < search_results_substr[pair.key].length;i++){num_results++;if(num_results > 5){return;}
var entry=search_results_substr[pair.key][i];$('header_search_autocomplete').insert(li_tpl.evaluate({name:entry.name.escapeHTML(),
item_index:item_index,
mug:entry.img.escapeHTML(),
type:entry.type.escapeHTML(),
link:entry.link.escapeHTML()}));$('header_search_autocomplete_item_'+item_index).observe('keydown',ComboSearch.handleKeyPress.bindAsEventListener());item_index++;}
}
});$('header_search_autocomplete').show();}
},
close:function(){$('header_search_autocomplete').hide();$('header_search_autocomplete').innerHTML='';},
handleKeyPress:function(ev){if($('header_search_autocomplete').visible()){var items=$('header_search_autocomplete').immediateDescendants();var current_index=-1;event_id=ev.element().id;if(event_id.startsWith('header_search_autocomplete_item_')){current_index=parseInt(event_id.replace('header_search_autocomplete_item_',''));ev.element().removeClassName('header_search_autocomplete_item_focused');}
var nextElement=null;if(ev.keyCode==Event.KEY_UP){ev.preventDefault();current_index=Math.max(0,current_index-1);nextElement=$('header_search_autocomplete_item_'+current_index);}else if(ev.keyCode==Event.KEY_DOWN){ev.preventDefault();current_index=Math.min(items.length-1,current_index+1);nextElement=$('header_search_autocomplete_item_'+current_index);}
if(nextElement){$('header_search_autocomplete_item_'+current_index).focus();$('header_search_autocomplete_item_'+current_index).addClassName('header_search_autocomplete_item_focused');}
}
},
handleDocumentClick:function(ev){if(!ev.element().up('#header_search_autocomplete')&&
ev.element().id!='header_search_input'){ComboSearch.close();}
}
};var TopbarTabs={revert_timer_id:null,
current_tab:null,
handleMouseOver:function(ev){TopbarTabs.clearRevertTimer();var trigger=ev.element();if(!trigger.hasClassName('header-tab')){trigger=trigger.up('.header-tab');}
var tabname=trigger.id.sub('header_tab_','');TopbarTabs.selectTab(tabname);TopbarTabs.showMenu(tabname);},
handleMouseOut:function(ev){var trigger=ev.element();if(!trigger.hasClassName('header-tab')){trigger=trigger.up('.header-tab');}
var tabname=trigger.id.sub('header_tab_','');if(tabname!=TopbarTabs.current_tab){TopbarTabs.setRevertTimer();}
},
clearRevertTimer:function(){if(TopbarTabs.revert_timer_id){clearTimeout(TopbarTabs.revert_timer_id);}
},
setRevertTimer:function(){TopbarTabs.revert_timer_id=setTimeout(function(){TopbarTabs.selectTab(TopbarTabs.current_tab);TopbarTabs.showMenu(TopbarTabs.current_tab);},1000);},
selectTab:function(tabname){$$('.header-tab').each(function(e){e.removeClassName('header-tab-hover');});$('header_tab_'+tabname).addClassName('header-tab-hover');},
showMenu:function(tabname){$$('.header-menubar-items').each(Element.hide);$('header_menubar_group_'+tabname).show();}
};var Toolbar={current_trigger:null,
popup:function(ev){var trigger=ev.element();if(!trigger.hasClassName('toolbar-item')){trigger=trigger.up('.toolbar-item');}
if(Toolbar.current_trigger){if(trigger.id==Toolbar.current_trigger.id){Toolbar.hidepopup_noclick();return;}
if(ev.element().up('#'+Toolbar.current_trigger.id)){return;}
}
trigger.insert({'bottom':$('toolbar_popup')});$$('.toolbar-item').each(function(e){e.removeClassName('toolbar-item-hover');});var list_id=trigger.id.sub('toolbar_button_','');$('toolbar_popup_contents').innerHTML=Page.toolbar_popup_contents.get(list_id);trigger.addClassName('toolbar-item-hover');$('toolbar_popup').show();Toolbar.current_trigger=trigger;},
hidepopup:function(ev){if(ev.element().up('.toolbar-item')||ev.element().hasClassName('toolbar-item')){return;}
Toolbar.hidepopup_noclick();},
hidepopup_noclick:function(){if(Toolbar.current_trigger){Toolbar.current_trigger.removeClassName('toolbar-item-hover');Toolbar.current_trigger=null;}
$('toolbar_popup').hide();}
};var MediaBubble={contents:$H({}),
_initialized:false,
_content_template:new Template('<div class="widget-media-bubble-details"><h3>#{name}</h3>#{created} by #{owner}</div>'+
'<div class="widget-media-bubble-desc">#{description}</div>'+
'<div class="widget-media-bubble-restrictions">#{restrictions}</div>'),
_series_content_template:new Template('<div class="widget-series-bubble-details"><h3>#{name}</h3></div>'+
'<div class="widget-series-bubble-restrictions">#{restrictions}</div>'+
'<div class="widget-series-bubble-desc">#{description}</div>'),
init:function(){var bubble_html='<div id="global_media_bubble" class="widget-media-bubble" style="display: none;"><div id="global_media_bubble_contents" class="clearfix"></div>';if(!(BrowserDetect.browser=='Explorer'&&BrowserDetect.version==6)){bubble_html+='<div class="widget-dropshadow-top"></div><div class="widget-dropshadow-top-right"></div><div class="widget-dropshadow-right"></div><div class="widget-dropshadow-bottom-right"></div>';bubble_html+='<div class="widget-dropshadow-bottom"></div><div class="widget-dropshadow-bottom-left"></div><div class="widget-dropshadow-left"></div><div class="widget-dropshadow-top-left"></div>';}
bubble_html+='</div>';$('template_container').insert({bottom:bubble_html});MediaBubble._initialized=true;},
Show:function(id,offset_parent,horizontal_offset,vertical_offset){if(!MediaBubble._initialized){MediaBubble.init();}
if(!horizontal_offset){horizontal_offset=15;}
if(!vertical_offset){vertical_offset=-20;}
var bubble=$('global_media_bubble');$$('.widget-media-bubble-arrow').each(Element.remove);var bubble_contents=$('global_media_bubble_contents');bubble_contents.innerHTML=MediaBubble.contents.get(id);var offset=offset_parent.cumulativeOffset();var page_offset=$('template_container').cumulativeOffset();var viewport_width=document.viewport.getWidth();bubble.setStyle({'left':(offset.left-page_offset.left+offset_parent.getWidth()+horizontal_offset)+'px',
'top':(offset.top-page_offset.top+vertical_offset)+'px',
'visibility':'hidden'
});bubble.show();var bubble_offset=bubble.cumulativeOffset();if(bubble_offset.left+bubble.getWidth()< viewport_width){bubble.insert({top:'<div class="widget-media-bubble-arrow"></div>'});}else{bubble.setStyle({'left':(offset.left-page_offset.left-bubble.getWidth()-horizontal_offset)+'px'
});bubble.insert({top:'<div class="widget-media-bubble-arrow widget-media-bubble-arrow-right"></div>'});}
bubble.setStyle({'visibility':'visible'
});},
Hide:function(){if(!MediaBubble._initialized){MediaBubble.init();}
var bubble=$('global_media_bubble');bubble.hide();},
AddContent:function(id,data){var content=MediaBubble._content_template.evaluate(data);MediaBubble.contents.set(id,content);},
AddSeriesContent:function(id,data){var content=MediaBubble._series_content_template.evaluate(data);MediaBubble.contents.set(id,content);},
AddHtmlContent:function(id,html){MediaBubble.contents.set(id,html);}
};WidgetForumCategory={_mod_display_by_id:$H({}),
toggle_forum_mod:function(row_id){if(!WidgetForumCategory._mod_display_by_id.get(row_id)){$(row_id).getElementsBySelector(".widget-forumcategory-display-nomod").each(Element.hide);$(row_id).getElementsBySelector(".widget-forumcategory-display-modactions").each(Element.show);WidgetForumCategory._mod_display_by_id.set(row_id,true);}else{$(row_id).getElementsBySelector(".widget-forumcategory-display-modactions").each(Element.hide);$(row_id).getElementsBySelector(".widget-forumcategory-display-nomod").each(Element.show);WidgetForumCategory._mod_display_by_id.unset(row_id);}
}
}
var CharacterCounter={_initialized:false,
listened_objects:{},
Init:function(){for(var i in this.listened_objects){var o=this.listened_objects[i];this._addListeners(o.input_id);};this._initialized=true;},
_addListeners:function(input_id){$(input_id).observe('keyup',this.Update.bind($(input_id)));$(input_id).observe('change',this.Update.bind($(input_id)));},
Add:function(input_id,character_counter_id,max_char_count,sync_init){this.listened_objects[input_id]={'input_id':input_id,'character_counter_id':character_counter_id,'max_char_count':max_char_count};if(this._initialized){this._addListeners(input_id);}
if(sync_init){this.Update.bind($(input_id)).call();}
},
Update:function(){var input=this;var t=input.value;var maxlen=CharacterCounter.listened_objects[input.id].max_char_count;if(t.length > maxlen){input.value=t.truncate(maxlen,'');}
var counter=$(CharacterCounter.listened_objects[input.id].character_counter_id);if(counter){counter.update(parseInt(maxlen)-parseInt(input.value.length));}
}
}
function load_video_player(container_id,media_id,width,height){Rpc.request({params:'req=RpcApiMedia_GetEmbedCode&media_id='+media_id+'&width='+width+'&height='+height,
callback:function(resp){if(Rpc.RESULT_SUCCESS==resp.result_code){$(container_id).update(resp.data);}else{Rpc.showAlert(resp);}
}
});return false;}
EventBugFix={_isSpecificButton:function(event,ieCode,w3cCode){return(((event.which!=undefined)&&(event.which==ieCode))||
((event.button!=undefined)&&(event.button==w3cCode)));},
isLeftClick:function(event){return this._isSpecificButton(event,1,0);},
isRightClick:function(event){return this._isSpecificButton(event,3,2);},
isMiddleClick:function(event){return this._isSpecificButton(event,2,1);}
}

function getHTTPObject(){var xmlhttp;/*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
if(!xmlhttp&&typeof XMLHttpRequest!='undefined'){try{xmlhttp=new XMLHttpRequest();}catch(e){xmlhttp=false;}
}
return xmlhttp;}
function ajaxHtmlReplace(reqstring,element){var request=getHTTPObject();var url=AJAXROOT+reqstring;request.open('GET',url,true);request.onreadystatechange=function(){if(request.readyState==4){if(request.responseText!=null){var e=document.getElementById(element);e.innerHTML=request.responseText;}
}
};request.send(null);}
function ajaxJsonEval(reqstring){var request=getHTTPObject();var url=AJAXROOT+reqstring;request.open('GET',url,true);request.onreadystatechange=function(){if(request.readyState==4){if(request.responseText!=null){eval(request.responseText);}
}
};request.send(null);}
function ajaxSend(reqstring){var request=getHTTPObject();var url=AJAXROOT+reqstring;request.open('GET',url,true);request.send(null);}
function openwindow(url,w,h){var newwindow;newwindow=window.open(url,'name','resizable=1,scrollbars=1,height='+h+',width='+w);if(window.focus){newwindow.focus()}
}
function fixEvent(a){if(typeof a=="undefined")
a=window.event;if(typeof a.layerX=="undefined")
a.layerX=a.offsetX;if(typeof a.layerY=="undefined")
a.layerY=a.offsetY;if(typeof a.target=="undefined")a.target=a.srcElement;if(typeof a.which=="undefined")a.which=a.keyCode;return a;}
function getElementTop(element){return o(element,false);}
function getElementLeft(element){return o(element,true);}
function o(a,c){var b=0;while(a!=null){b+=a["offset"+(c?"Left":"Top")];a=a.offsetParent;}
return b;}
function GetChildElementById(element,id){if(!element.getAttribute)return null;if(element.getAttribute("id")==id)return element;for(var c in element.childNodes){var c1=null;if(element.childNodes[c].getAttribute&&element.childNodes[c].getAttribute("id")==id)return element.childNodes[c];else if((c1=GetChildElementById(element.childNodes[c],id))!=null){return c1;}
}
return null;}
Rpc={RESULT_SUCCESS:1,
RESULT_FAILURE:0,
/**
   * Make an RPC request.
   *
   * Parameters:
   * params - string to use as the request param
   * params_obj - parameter map, if set this takes precedence over "params"
   * callback - function to call when the request completes
   * callback_scope - scope of "this" during the callback.
   */
request:function(config){if(!config.callback){config.callback=Rpc.printMessage;}
if(!config.callback_scope){config.callback_scope=this;}
if(!config.ajax_root){config.ajax_root=AJAXROOT;}
if(!config.method){config.method='post';}
new Ajax.Request(config.ajax_root,{method:config.method,
postBody:config.params,
parameters:config.params_obj,
onSuccess:function(transport){config.callback.call(config.callback_scope,transport.responseText.evalJSON());}
});},
submitForm:function(form,callback){form=$(form);if(!callback){callback=function(json){json=json.responseText.evalJSON();Rpc.showAlert(json);}
}
form.request({onComplete:callback});},
submitAjaxForm:function(form,redirect_on_fail){form=$(form);form.request({onComplete:function(transport){var json=transport.responseText.evalJSON();var next_url=WEBROOT;if(form.next_url&&form.next_url.value){next_url=form.next_url.value;}else if(json.suggested_redirect_url){next_url=json.suggested_redirect_url;}
var fail_url=next_url;if(form.fail_url&&form.fail_url.value){fail_url=form.fail_url.value;}
if(json.result_code==Rpc.RESULT_SUCCESS){redirect(next_url,json.message_list);return;}else{if(redirect_on_fail){redirect(fail_url,json.message_list);return;}
}
Rpc.showAlert(json);}});},
/**
   * Standard callback for basic printing to the message area.
   */
printMessage:function(resp){if(resp.message_list){Messaging.addItems(resp.message_list);}
},
/**
   * Standard callback for refreshing the page.
   */
refreshPage:function(resp){document.location.reload();},
/**
   * Standard callback for refreshing the page.
   */
saveMessageAndRefreshPage:function(resp){if(resp.message_list){createCookie('c_msg_list',Object.toJSON(resp.message_list),0.1);}
document.location.reload();},
/**
   * Standard callback for a form posted with ajax
   */
submitFormCallback:function(resp){resp=resp.responseText.evalJSON();if(resp.result_code==Rpc.RESULT_SUCCESS){document.location.reload();}else{Rpc.showAlert(resp);}
},
/**
   * Standard callback for displaying a Javascript alert.
   */
showAlert:function(resp){if(resp.message_list){message='';count=resp.message_list.length;for(var i=0;i < count;i++){if(i > 0){message+="\n";}
message+=resp.message_list[i].message_body;}
alert(message);}
},
/**
   * Standard callback for redirection
   */
redirect:function(json,next_url,fail_url){if(next_url==undefined&&json.suggested_redirect_url){next_url=json.suggested_redirect_url;}
if(fail_url==undefined){fail_url=next_url;}
if(json.result_code==Rpc.RESULT_SUCCESS){redirect(next_url,json.message_list);return;}else{redirect(fail_url,json.message_list);return;}
},
/**
   * Standard no-op callback.
   */
doNothing:function(resp){}
};
/**
 * BB-related behavior
 */
var Bb={/**
   *  Returns the caret (cursor) position of the specified text field.
   *  Return value range is 0-oField.length.
   *  @param {} oField
   */
getCaretPosition:
function(oField){var selection=new Selection(oField);var s=selection.create();return s.start;},
getSelectedText:
function(box){var selection=new Selection(box);var s=selection.create();return box.value.substring(s.start,s.end);},
/**
   * Wrap selected text with start and end tags.
   * @param {id|element} eid Input element with text
   * @param {String} tag BB Code tag to insert
   */
wrapSelectedTextWithTags:
function(eid,tag){var v=$(eid).value;var s=Bb.getSelectedText($(eid));var selection=new Selection($(eid));var ss=selection.create();$(eid).value=v.substring(0,ss.start)+"["+tag+"]"+s+"[/"+tag+"]"+v.substring(ss.end);},
/**
   * Insert BB code into an element either at the caret or at the end if there
   * is no caret. If body is null, then nothing is added.
   * @param {String} body Content between the tags.
   * @param {String} tag BB Code tag
   * @param {id|element} eid Element with text
   */
addBbCode:
function(body,tag,eid){if(body==null)return;var code='['+tag+']'+body+'[/'+tag+']';var pos=Bb.getCaretPosition($(eid));if(pos){$(eid).value=$(eid).value.substring(0,pos)+" "+code+" "+$(eid).value.substring(pos);}else{$(eid).value+=code;}
$(eid).focus();},
/**
   * Add BB code or wrap the current selection.
   * @param {id|element} eid Text area with the new post
   * @param {String} bbCode
   * @param {String} addMsg (optional) Message for prompt. When this is not null and no text was
   *        selected, show a prompt with this text.
   */
addOrWrapBbCode:
function(eid,bbCode,addMsg){var s=Bb.getSelectedText($(eid));var body='';if(s){Bb.wrapSelectedTextWithTags(eid,bbCode);return;}
if(addMsg){body=prompt(addMsg,'');}
Bb.addBbCode(body,bbCode,eid);},
makeHeader:
function(eid){Bb.addOrWrapBbCode(eid,'header','Section Header Text:');},
makeBold:
function(eid){Bb.addOrWrapBbCode(eid,'b','Text to bold:');},
makeItalic:
function(eid){Bb.addOrWrapBbCode(eid,'i','Text to italicize:');},
makeUnderline:
function(eid){Bb.addOrWrapBbCode(eid,'u','Text to underline:');},
makeRed:
function(eid){Bb.addOrWrapBbCode(eid,'red','Text to make RED:');},
makeBlue:
function(eid){Bb.addOrWrapBbCode(eid,'blue','Text to make BLUE:');},
makeYellow:
function(eid){Bb.addOrWrapBbCode(eid,'yellow','Text to make YELLOW:');},
makeGreen:
function(eid){Bb.addOrWrapBbCode(eid,'green','Text to make GREEN:');},
makeOrange:
function(eid){Bb.addOrWrapBbCode(eid,'orange','Text to make ORANGE:');},
makePurple:
function(eid){Bb.addOrWrapBbCode(eid,'purple','Text to make PURPLE:');},
makeQuote:
function(eid){Bb.addOrWrapBbCode(eid,'quote',null);},
makeImg:
function(eid){Bb.addOrWrapBbCode(eid,'img','Image URL:');},
makeUrl:
function(eid){Bb.addOrWrapBbCode(eid,'url','URL:');},
makeEmail:
function(eid){Bb.addOrWrapBbCode(eid,'email','Email:');},
makeUserRef:
function(eid){Bb.addOrWrapBbCode(eid,'user','Username to link:');},
makeSmilie:
function(eid,code){var pos=Bb.getCaretPosition($(eid));if(pos){$(eid).value=$(eid).value.substring(0,pos)+" "+code+" "+$(eid).value.substring(pos);}else{$(eid).value+=" "+code+" ";$(eid).focus();}
},
librarify:
function(eid){var s=Bb.getSelectedText($(eid));var original_text=$F(eid);var selected_text=s ? s:original_text;new Ajax.Request(AJAXROOT,{method:'post',
parameters:{text:selected_text,
req:'librarify'
},
onSuccess:function(transport){var text=transport.responseText.unescapeHTML();var s=Bb.getSelectedText($(eid));if(s){var selection=new Selection($(eid));var ss=selection.create();$(eid).value=original_text.substring(0,ss.start)+text+original_text.substring(ss.end);}else{$(eid).value=text;}
}
});},
unlibrarify:
function(eid){var s=Bb.getSelectedText($(eid));var original_text=$F(eid);var selected_text=s ? s:original_text;new Ajax.Request(AJAXROOT,{method:'post',
parameters:{text:selected_text,
req:'unlibrarify'
},
onSuccess:function(transport){var text=transport.responseText.unescapeHTML();var s=Bb.getSelectedText($(eid));if(s){var selection=new Selection($(eid));var ss=selection.create();$(eid).value=original_text.substring(0,ss.start)+text+original_text.substring(ss.end);}else{$(eid).value=text;}
}
});},
/**
   * Add spoiler BB code.
   * @param {id|element} eid Text area for editing the post.
   */
makeSpoiler:
function(eid){Bb.addOrWrapBbCode(eid,'spoiler',null);},
/**
   * Toggle the visibility of the spoiler
   * @param {id|element} e Title of the spoiler to hide or show
   */
spoilerToggle:
function(e){$(e.parentNode).select('.bb-spoiler-body')[0].toggle();},
/**
   * Highlight the spoiler box.
   * @param {id|element} e Spoiler to highlight
   */
spoilerMouseOver:
function(e){$(e).addClassName('bb-spoiler-highlight');},
/**
   * Remove highlighting of the spoiler box.
   * @param {id|element} e Spoiler to un-highlight
   */
spoilerMouseOut:
function(e){$(e).removeClassName('bb-spoiler-highlight');},
showpoll:
function(event,eid){var enc=$(eid);enc.setStyle({left:(event.pointerX()-enc.getWidth()/2-100)+'px'});enc.setStyle({top:(event.pointerY()-enc.getHeight())+'px'});enc.hide();Effect.Appear(enc,{duration:0.3});}
};
function Selection(textareaElement){this.element=textareaElement;}
Selection.prototype.create=function(){if(document.selection!=null&&this.element.selectionStart==null){return this._ieGetSelection();}else{return this._mozillaGetSelection();}
}
Selection.prototype._mozillaGetSelection=function(){return{start:this.element.selectionStart,
end:this.element.selectionEnd
};}
Selection.prototype._ieGetSelection=function(){this.element.focus();var range=document.selection.createRange();var bookmark=range.getBookmark();var contents=this.element.value;var originalContents=contents;var marker=this._createSelectionMarker();while(contents.indexOf(marker)!=-1){marker=this._createSelectionMarker();}
var parent=range.parentElement();if(parent==null||parent.type!="textarea"){return{start:0,end:0};}
range.text=marker+range.text+marker;contents=this.element.value;var result={};result.start=contents.indexOf(marker);contents=contents.replace(marker,"");result.end=contents.indexOf(marker);this.element.value=originalContents;range.moveToBookmark(bookmark);range.select();return result;}
Selection.prototype._createSelectionMarker=function(){return "##SELECTION_MARKER_"+Math.random()+"##";}
var AvatarClient={'AddFreeBaseAttr':function(avatar_id,attr,count){new Ajax.Request(AJAXROOT,{method:'post',
parameters:{'req':'RpcApiAvatar_AddFreeBaseAttr',
'attr':attr,
'avatar_id':avatar_id,
'count':count
},
onSuccess:function(transport){var json=transport.responseText.evalJSON();if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);return false;}
AvatarListener.FireEvent('stats_update',json.data);}
});return false;},
'ValidateVItemUseActions':function(actions){new Ajax.Request(AJAXROOT,{method:'post',
parameters:{'req':'RpcApiAvatar_ValidateVItemUseActions',
'actions':actions
},
onSuccess:function(transport){var json=transport.responseText.evalJSON();Rpc.showAlert(json);return false;}
});return false;},
'BuyItem':function(vic_id,the_input){var theForm=the_input.form;new Ajax.Request(AJAXROOT,{method:'post',
parameters:{'req':'RpcApiAvatar_WarnBeforeBuy',
'vic_id':vic_id
},
onSuccess:function(transport){var json=transport.responseText.evalJSON();if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);return false;}
if(json.data.warn){if(!confirm(json.data.reason+" Do you still want to buy it?"))return false;}
Rpc.submitForm(theForm,function(json){json=json.responseText.evalJSON();if(json.result_code!=1){Rpc.showAlert(json);return false;}
AvatarListener.FireEvent("stats_update",json.data.avatar);AvatarListener.FireEvents(json.data.events);AvatarListener.FireEvent("item_added",json.data.vitem);Rpc.showAlert(json);});return false;}
});return false;},
'GetToeContainerHtmlForVItem':function(vitem_id,inject_target_eid){new Ajax.Request(AJAXROOT,{method:'post',
parameters:{'req':'RpcApiAvatar_GetToeContainerHtmlForVItem',
'vitem_id':vitem_id
},
onSuccess:function(transport){var json=transport.responseText.evalJSON();var eid=json.data.eid;$(inject_target_eid).insert('<li id='+eid+'>'+json.data.html+'</li>');eval(json.data.js);return false;}
});return false;}
}
var AvatarListener={listeners:new Array(),
FireEvent:function(event_name,data){if(this.listeners[event_name]==undefined)return;for(var i=0;i<this.listeners[event_name].length;i++){this.listeners[event_name][i](data);}
},
FireEvents:function(events){for(var i in events){var event=events[i];if(event.name&&event.data){AvatarListener.FireEvent(event.name,event.data);}
}
},
AddListener:function(event_name,callback){if(this.listeners[event_name]==undefined){this.listeners[event_name]=new Array();}
this.listeners[event_name].push(callback);}
};var AvatarFightNpc={attack:function(){},
PrintFightEndDialog:function(eid,json,next_url){if(!next_url)next_url=json.next_url;if(json.fight_results=='win'){var templatestr="<div style='font-size:12px;margin-bottom:4px;'>You have defeated a #{npc_name}!<br/>You gained #{xp} XP!</div>";if(json.level_up_delta!=undefined&&json.level_up_delta > 0){var free_attr=json.level_up_delta*5;templatestr+="<b style='color:red;font-size:12px;'>You LEVELED UP and got "+free_attr+" Bonus Attributes!</b>";}
templatestr+="<h3>Loot:</h3>";if(json.loot_img!=undefined&&json.loot_img!=''){templatestr+="<img src='#{loot_img}' />";}
templatestr+="<h4>#{loot_name}</h4><a href='#{next_url}' />Continue</a>";var template=new Template(templatestr);var results=template.evaluate({'npc_name':json.npc_name,
'xp':json.xp,
'loot_img':json.loot_img,
'loot_name':json.loot_name,
'next_url':next_url
});$(eid).innerHTML=results;}else if(json.fight_results=='lose'){var templatestr="You have died to a #{npc_name}!<br/>You lost #{xp} XP and #{gold} Gold =(<a href='#{next_url}' />Continue</a>";var template=new Template(templatestr);var results=template.evaluate({'npc_name':json.npc_name,
'xp':json.xp,
'gold':json.gold,
'next_url':next_url
});$(eid).innerHTML=results;}
$(eid).style.display='block';}
}
var AvatarStats={print:function(eid,json){return AvatarClassStats.localPrint(eid,json);}
};var AvatarFightStats={print:function(eid,json,show_hp_mana){var templatestr='';templatestr+='<dl><dt>Attack</dt><dd>#{min_dmg_phy} - #{max_dmg_phy}</dd></dl>';templatestr+='<dl><dt>Fire Attack</dt><dd>#{min_dmg_ele1} - #{max_dmg_ele1}</dd></dl>';templatestr+='<dl><dt>Water Attack</dt><dd>#{min_dmg_ele2} - #{max_dmg_ele2}</dd></dl>';templatestr+='<dl><dt>Lightning Attack</dt><dd>#{min_dmg_ele3} - #{max_dmg_ele3}</dd></dl>';templatestr+='<dl><dt>Earth Attack</dt><dd>#{min_dmg_ele4} - #{max_dmg_ele4}</dd></dl>';templatestr+='<dl><dt>Defense</dt><dd>#{def_phy}</dd></dl>';templatestr+='<dl><dt>Fire Defense</dt><dd>#{def_ele1}</dd></dl>';templatestr+='<dl><dt>Water Defense</dt><dd>#{def_ele2}</dd></dl>';templatestr+='<dl><dt>Lightning Defense</dt><dd>#{def_ele3}</dd></dl>';templatestr+='<dl><dt>Earth Defense</dt><dd>#{def_ele4}</dd></dl>';if(show_hp_mana){templatestr+='<dl><dt>Total HP</dt><dd>#{hp_total}</dd></dl>';templatestr+='<dl><dt>Total Mana</dt><dd>#{mana_total}</dd></dl>';}
var template=new Template(templatestr);var result=template.evaluate({'min_dmg_phy':json['sm_dmg_phy'].min,
'min_dmg_ele1':json['sm_dmg_ele1'].min,
'min_dmg_ele2':json['sm_dmg_ele2'].min,
'min_dmg_ele3':json['sm_dmg_ele3'].min,
'min_dmg_ele4':json['sm_dmg_ele4'].min,
'max_dmg_phy':json['sm_dmg_phy'].max,
'max_dmg_ele1':json['sm_dmg_ele1'].max,
'max_dmg_ele2':json['sm_dmg_ele2'].max,
'max_dmg_ele3':json['sm_dmg_ele3'].max,
'max_dmg_ele4':json['sm_dmg_ele4'].max,
'def_phy':json['sm_def_phy'].value,
'def_ele1':json['sm_def_ele1'].value,
'def_ele2':json['sm_def_ele2'].value,
'def_ele3':json['sm_def_ele3'].value,
'def_ele4':json['sm_def_ele4'].value,
'hp_total':json['hp'].total,
'mana_total':json['mana'].total
});$(eid).innerHTML=result;}
};var AvatarClassStats={avatar_id:null,
avatar_class_id:null,
equips:new Array(),
setItem:function(vi_id,equip_area){for(var i=0;i<this.equips.length;i++){if(this.equips[i].equip_area==equip_area){this.equips[i]={vi_id:vi_id,equip_area:equip_area};return;}
}
this.equips.push({vi_id:vi_id,equip_area:equip_area});},
setItemClass:function(vic_id,equip_area){for(var i=0;i<this.equips.length;i++){if(this.equips[i].equip_area==equip_area){this.equips[i]={vic_id:vic_id,equip_area:equip_area};return;}
}
this.equips.push({vic_id:vic_id,equip_area:equip_area});},
removeItemClass:function(equip_area){for(var i=0;i<this.equips.length;i++){if(this.equips[i].equip_area==equip_area){this.equips.splice(i,1);return;}
}
},
removeAllItemClasses:function(){this.equips=new Array();},
print:function(eid){var theObj=this;var eid=eid;var post_params;if(theObj.avatar_id!=null){post_params={'avatar_id':theObj.avatar_id};}else{post_params={'avatarclass_id':theObj.avatar_class_id};}
for(var i=0;i<this.equips.length;i++){var ic=this.equips[i];if(ic.vi_id!=null){post_params['item_id['+ic.vi_id+']']=ic.vi_id;}else{post_params['itemclass_id['+ic.vic_id+']']=ic.vic_id;}
}
new Ajax.Request(AJAXROOT+'req=RpcApiAvatar_GetAvatarClassData',{method:'post',
parameters:post_params,
onSuccess:function(transport){var json=transport.responseText.evalJSON();if(json.result_code==Rpc.RESULT_SUCCESS){theObj.localPrint(eid,json.data);}else{Rpc.showAlert(json);}
}
});},
localPrint:function(eid,json){var strength=json['strength'].total;var vitality=json['vitality'].total;var magic=json['magic'].total;var gold=json['gold'].base;var xp_img=img_tag('./icons/XP.png',{'title':'Experience Points'});var hp_img=img_tag('./icons/HP.png',{'title':'Hit Points'});var mana_img=img_tag('./icons/mana.png',{'title':'Mana Points'});var gold_img=img_tag('./icons/gold_01.png',{'title':'Gold'});var dmg_phy_img=img_tag('./icons/attck.png',{'title':'Physical Damage'});var dmg_ele1_img=img_tag('./icons/attck_fire.png',{'title':'Fire Damage'});var dmg_ele2_img=img_tag('./icons/attck_water.png',{'title':'Water Damage'});var dmg_ele3_img=img_tag('./icons/attck_lightning.png',{'title':'Lightning Damage'});var dmg_ele4_img=img_tag('./icons/attck_earth.png',{'title':'Earth Damage'});var def_phy_img=img_tag('./icons/defense.png',{'title':'Physical Defense'});var def_ele1_img=img_tag('./icons/defense_fire.png',{'title':'Fire Defense'});var def_ele2_img=img_tag('./icons/defense_water.png',{'title':'Water Defense'});var def_ele3_img=img_tag('./icons/defense_lightning.png',{'title':'Lightning Defense'});var def_ele4_img=img_tag('./icons/defense_earth.png',{'title':'Earth Defense'});var dmg_phy=json['sm_dmg_phy'] ? json['sm_dmg_phy'].value:0;var dmg_ele1=json['sm_dmg_ele1'] ? json['sm_dmg_ele1'].value:0;var dmg_ele2=json['sm_dmg_ele2'] ? json['sm_dmg_ele2'].value:0;var dmg_ele3=json['sm_dmg_ele3'] ? json['sm_dmg_ele3'].value:0;var dmg_ele4=json['sm_dmg_ele4'] ? json['sm_dmg_ele4'].value:0;var dmg_phy_min=json['sm_dmg_phy'] ? json['sm_dmg_phy'].min:0;var dmg_ele1_min=json['sm_dmg_ele1'] ? json['sm_dmg_ele1'].min:0;var dmg_ele2_min=json['sm_dmg_ele2'] ? json['sm_dmg_ele2'].min:0;var dmg_ele3_min=json['sm_dmg_ele3'] ? json['sm_dmg_ele3'].min:0;var dmg_ele4_min=json['sm_dmg_ele4'] ? json['sm_dmg_ele4'].min:0;var dmg_phy_max=json['sm_dmg_phy'] ? json['sm_dmg_phy'].max:0;var dmg_ele1_max=json['sm_dmg_ele1'] ? json['sm_dmg_ele1'].max:0;var dmg_ele2_max=json['sm_dmg_ele2'] ? json['sm_dmg_ele2'].max:0;var dmg_ele3_max=json['sm_dmg_ele3'] ? json['sm_dmg_ele3'].max:0;var dmg_ele4_max=json['sm_dmg_ele4'] ? json['sm_dmg_ele4'].max:0;var def_phy=json['sm_def_phy'] ? json['sm_def_phy'].value:0;var def_ele1=json['sm_def_ele1'] ? json['sm_def_ele1'].value:0;var def_ele2=json['sm_def_ele2'] ? json['sm_def_ele2'].value:0;var def_ele3=json['sm_def_ele3'] ? json['sm_def_ele3'].value:0;var def_ele4=json['sm_def_ele4'] ? json['sm_def_ele4'].value:0;var xp=json['xp'].base ? json['xp'].base:0;var xp_next=json['xp'].next ? json['xp'].next:0;var hp_cur=json['hp'].current ? json['hp'].current:0;var hp_total=json['hp'].total ? json['hp'].total:0;var mana_cur=json['mana'].current ? json['mana'].current:0;var mana_total=json['mana'].total ? json['mana'].total:0;var free_base_attrs=json['free_base_attrs'];if(free_base_attrs > 0){var id=json['id'];var str_add=href('+','#',{'onclick':"return AvatarClient.AddFreeBaseAttr('"+id+"','strength',1);",'class':'crunchyland-plus'});var vit_add=href('+','#',{'onclick':"return AvatarClient.AddFreeBaseAttr('"+id+"','vitality',1);",'class':'crunchyland-plus'});var mag_add=href('+','#',{'onclick':"return AvatarClient.AddFreeBaseAttr('"+id+"','magic',1);",'class':'crunchyland-plus'});free_base_attrs=div('Bonus Attributes: '+free_base_attrs,{'class':'free-base-attrs'});}else{var str_add='';var vit_add='';var mag_add='';free_base_attrs='';}
var max_items=json['item_count'] ? json['item_count'].max:0;var cur_items=json['item_count'] ? json['item_count'].current:0;var templatestr='<div class="avatarclass-stats">'+
'<h3>Avatar Stats</h3>'+
'<table class="avatarclass-stats-base">'+
'<tr><td class="dt">Strength</td><td class="dd">#{strength}</td><td>#{str_add}</td></tr>'+
'<tr><td class="dt">Vitality</td><td class="dd">#{vitality}</td><td>#{vit_add}</td></tr>'+
'<tr><td class="dt">Magic</td><td class="dd">#{magic}</td><td>#{mag_add}</td></tr>'+
'</table>'+
'<div class="avatarclass-stats-gold">'+
'#{gold_img} <span class="gold">#{gold}</span> <span class="label">Gold</span>'+
'</div>'+
'<div class="avatarclass-stats-item-count">'+
'<span class="count">#{cur_items}/#{max_items}</span> <span class="label">Items</span>'+
'</div>'+
'<table class="avatarclass-stats-damage">'+
'<tr><td colspan="2" class="header">Attack</td></tr>'+
'<tr><td>#{dmg_phy_img}</td><td class="dt">#{dmg_phy_min}-#{dmg_phy_max}</td></tr>'+
'<tr><td>#{dmg_ele1_img}</td><td class="dt">#{dmg_ele1_min}-#{dmg_ele1_max}</td></tr>'+
'<tr><td>#{dmg_ele2_img}</td><td class="dt">#{dmg_ele2_min}-#{dmg_ele2_max}</td></tr>'+
'<tr><td>#{dmg_ele3_img}</td><td class="dt">#{dmg_ele3_min}-#{dmg_ele3_max}</td></tr>'+
'<tr><td>#{dmg_ele4_img}</td><td class="dt">#{dmg_ele4_min}-#{dmg_ele4_max}</td></tr>'+
'</table>'+
'<table class="avatarclass-stats-defense">'+
'<tr><td colspan="2" class="header">Defense</td></tr>'+
'<tr><td>#{def_phy_img}</td><td class="dt">#{def_phy}</td></tr>'+
'<tr><td>#{def_ele1_img}</td><td class="dt">#{def_ele1}</td></tr>'+
'<tr><td>#{def_ele2_img}</td><td class="dt">#{def_ele2}</td></tr>'+
'<tr><td>#{def_ele3_img}</td><td class="dt">#{def_ele3}</td></tr>'+
'<tr><td>#{def_ele4_img}</td><td class="dt">#{def_ele4}</td></tr>'+
'</table>'+
'#{free_base_attrs}'+
'<table class="avatarclass-stats-bars">'+
'<tr><td>#{hp_bar}</td><td class="dt">#{hp_cur}/#{hp_total}</td><td>#{hp_img}</td><td class="dd">HP</td></tr>'+
'<tr><td>#{mana_bar}</td><td class="dt">#{mana_cur}/#{mana_total}</td><td>#{mana_img}</td><td class="dd">Mana</td></tr>'+
'<tr><td>#{xp_bar}</td><td class="dt">#{xp}/#{xp_next}</td><td>#{xp_img}</td><td class="dd">XP</td></tr>'+
'</table>'+
'</div>';var bar_width=160;var bar_height=10;var XP_BAR=this.printBar(parseInt(xp)/parseInt(xp_next),bar_width,bar_height,'xp-line-bar');var HP_BAR=this.printBar(parseInt(hp_cur)/parseInt(hp_total),bar_width,bar_height,'hp-line-bar');var MANA_BAR=this.printBar(parseInt(mana_cur)/parseInt(mana_total),bar_width,bar_height,'mana-line-bar');var template=new Template(templatestr);var results=template.evaluate({'strength':strength,
'vitality':vitality,
'magic':magic,
'xp':xp,
'xp_next':xp_next,
'xp_img':xp_img,
'hp_cur':hp_cur,
'hp_total':hp_total,
'hp_img':hp_img,
'mana_cur':mana_cur,
'mana_total':mana_total,
'mana_img':mana_img,
'hp_bar':HP_BAR,
'mana_bar':MANA_BAR,
'xp_bar':XP_BAR,
'gold':gold,
'gold_img':gold_img,
'dmg_phy_img':dmg_phy_img,
'dmg_phy_min':dmg_phy_min,
'dmg_phy_max':dmg_phy_max,
'dmg_ele1_img':dmg_ele1_img,
'dmg_ele1_min':dmg_ele1_min,
'dmg_ele1_max':dmg_ele1_max,
'dmg_ele2_img':dmg_ele2_img,
'dmg_ele2_min':dmg_ele2_min,
'dmg_ele2_max':dmg_ele2_max,
'dmg_ele3_img':dmg_ele3_img,
'dmg_ele3_min':dmg_ele3_min,
'dmg_ele3_max':dmg_ele3_max,
'dmg_ele4_img':dmg_ele4_img,
'dmg_ele4_min':dmg_ele4_min,
'dmg_ele4_max':dmg_ele4_max,
'def_phy_img':def_phy_img,
'def_phy':def_phy,
'def_ele1_img':def_ele1_img,
'def_ele1':def_ele1,
'def_ele2_img':def_ele2_img,
'def_ele2':def_ele2,
'def_ele3_img':def_ele3_img,
'def_ele3':def_ele3,
'def_ele4_img':def_ele4_img,
'def_ele4':def_ele4,
'free_base_attrs':free_base_attrs,
'max_items':max_items,
'cur_items':cur_items,
'str_add':str_add,
'vit_add':vit_add,
'mag_add':mag_add
});$(eid).innerHTML=results;},
printBar:function(fraction,total_width,total_height,class_name){if(isNaN(fraction))fraction=0;fraction=Math.max(Math.min(1,fraction),0);var num_width=Math.floor(fraction*total_width);var num2_width=Math.floor(total_width-num_width);return div(div('&nbsp;',{style:'width:'+num_width+'px;height:100%;position:absolute;top:0px;left:0px;','class':'bar1'})+
div('&nbsp;',{style:'width:'+num2_width+'px;height:100%;position:absolute;top:0px;left:'+num_width+'px;','class':'bar2'}),{style:'position:relative;width:'+total_width+'px;height:'+total_height+'px;','class':class_name});}
};var VItemStats={print:function(eid,json){var res=new Array();res.push(tag('div',json['name'].value,{'class':'vitem-name'}));res.push(tag('div',json['desc'].value,{'class':'vitem-desc'}));var creator=json['creator'] ? json['creator'].name:null;if(creator)res.push(tag('div','Created by: '+tag('a',json['creator'].name,{'href':json['creator'].link}),{'class':'equiparea'}));var equiparea=json['equiparea'] ? json['equiparea'].value:null;if(equiparea)res.push(tag('div','Equip Area: '+json['equiparea'].value,{'class':'equiparea'}));var equip_min_level=json['equip_min_level'] ? json['equip_min_level'].value:null;if(equip_min_level)res.push(tag('div','Requires Level '+equip_min_level+' to equip',{'class':'equiparea'}));var use_type=json['use_type'] ? json['use_type'].label:null;if(use_type)res.push(tag('div',use_type,{'class':'equiparea'}));var use_name=json['use_name'] ? json['use_name'].label:null;var use_count=json['use_name'] ? json['use_name'].value:null;if(use_name&&use_count)res.push(tag('div',use_count+' Uses Left',{'class':'equiparea'}));var fields=new Array('sm_dmg_phy',
'sm_dmg_ele1',
'sm_dmg_ele2',
'sm_dmg_ele3',
'sm_dmg_ele4',
'sm_def_phy',
'sm_def_ele1',
'sm_def_ele2',
'sm_def_ele3',
'sm_def_ele4',
'sm_hp',
'sm_mana',
'sm_strength',
'sm_vitality',
'sm_magic'
);for(var k=0;k<fields.length;k++){var i=fields[k];if(json[i]!=undefined&&json[i].value!=undefined){value=json[i].value;}else{continue;}
res.push(tag('dl',tag('dt',json[i].label+':')+tag('dd',value),{'class':i}));}
$(eid).innerHTML=res.join('');}
};var AvatarClassDetail={print:function(eid,json){var name=json['name'];var cname=json['creator'].name;var clink=json['creator'].link;var desc=json['desc'];var templatestr='<div>'+
'<div class="vitem-name">#{name}</div>'+
'<div class="vitem-byline">Created by <a href="#{clink}">#{cname}</a></div>'+
'<div class="vitem-desc">#{desc}</div>';var template=new Template(templatestr);var results=template.evaluate({'name':name,
'cname':cname,
'clink':clink,
'desc':desc});$(eid).innerHTML=results;}
};var VItemClassGrid={print:function(eid,json,equip_area){if(!json||json.length <=0){$(eid).innerHTML='';return;}
var tg=new TableGrid();tg.maxcols=4;for(var i=0;i<json.length;i++){tg.attach(this.printSingle(json[i]));}
if(json.length > 0){tg.attach(this.printRemoveButton(equip_area));}
$(eid).innerHTML=tg.show();},
printSingle:function(json){var json_string=Object.toJSON(json);var js="var json="+json_string+";AvatarListener.FireEvent('create_avatar_add_items',[json]);return false;";var res=href(img_tag(json['mug'].small),'javascript:void(0);',{'onclick':js.gsub('"','&quot;'),'class':'vitem-toe-small-thumb',
'title':json['name'].value
});return res;},
printRemoveButton:function(equip_area){var js="AvatarListener.FireEvent('create_avatar_remove_items','["+equip_area+"]');";var remove_img_url='./icons/remove_item_small.png';return href(img_tag(remove_img_url),'javascript:void(0);',{'onclick':js,'class':'vitem-toe-small-thumb'});}
}
var VItemClassStats={print:function(eid,json,options){if(!$(eid))return;if(json['name']==undefined||json['mug']==undefined){$(eid).innerHTML=div('No Item Selected',{'style':'margin:8px;text-align:center;color:#aaa;'});return;}
var name=json['name'].value;var desc=json['desc'].value;var mug=json['mug'] ? json['mug'].medium:null;var avatar_class_name=json['avatar_class'] ? json['avatar_class'].name:null;var equiparea=json['equiparea'] ? json['equiparea'].value:null;var equip_min_level=json['equip_min_level'] ? json['equip_min_level'].value:0;var use_type=json['use_type'] ? json['use_type'].label:null;var use_name=json['use_name'] ? json['use_name'].label:null;var use_count=json['use_name'] ? json['use_name'].value:null;var price_buy=json['price_buy'] ? json['price_buy']:null;var creator=json['creator'] ? json['creator'].name:null;var creatorlink=json['creator'] ? json['creator'].link:null;var use_res='';if(use_name&&use_count){use_res=use_count+' '+use_name+'s total'+'<br/>';}
if(options){if(options.hide_price)price_buy=null;}
var designed_for=null;if(avatar_class_name){designed_for='Designed for: #{avatar_class_name}</div>';}
var templatestr='<div><div class="vitem-detail-name">#{name}</div><img class="vitem-detail-mug" src="#{mug}"/>';if(equiparea)templatestr+='<div class="vitem-detail-equip-min-level">Requires Level #{equip_min_level}</div>';if(creator){templatestr+='<div class="vitem-detail-byline">Created by: ';templatestr+='<a href="'+creatorlink+'">'+creator+'</a></div>';}
if(equiparea){templatestr+='<div class="vitem-detail-equiparea">Equip area: #{equiparea}';templatestr+='<br />'+designed_for;templatestr+='</div>';}else if(designed_for){templatestr+='<div class="vitem-detail-equiparea">';templatestr+=designed_for;templatestr+='</div>';}
var fields=new Array('sm_dmg_phy',
'sm_dmg_ele1',
'sm_dmg_ele2',
'sm_dmg_ele3',
'sm_dmg_ele4',
'sm_def_phy',
'sm_def_ele1',
'sm_def_ele2',
'sm_def_ele3',
'sm_def_ele4',
'sm_strength',
'sm_vitality',
'sm_magic',
'sm_hp',
'sm_mana'
);var res=new Array();for(var k=0;k<fields.length;k++){var i=fields[k];if(json[i]!=undefined&&json[i].value!=undefined){value=json[i].value;}else{continue;}
res.push(tag('dl',tag('dt',json[i].label+':')+tag('dd',value),{'class':i}));}
if(price_buy)templatestr+='<div class="vitem-detail-price">Price: <span class="gold">#{price_buy} Gold</span></div>';templatestr+='<div class="vitem-detail-bottom"><div class="vitem-detail-desc">#{use_res}#{desc}</div><div class="vitem-detail-sm">'+res.join('')+'</div></div>';var template=new Template(templatestr);var results=template.evaluate({'name':name,
'mug':mug,
'equiparea':equiparea,
'equip_min_level':equip_min_level,
'avatar_class_name':avatar_class_name,
'price_buy':price_buy,
'use_res':use_res,
'desc':desc});$(eid).innerHTML=results;}
};var AvatarClassCreator={swf_url:null,
swf_eid:null,
imgs:new Array(),
click_url:null,
reverse:false,
width:200,
height:300,
clearData:function(){this.removeAllImages();this.swf_eid=null;this.swf_url=null;this.reverse=false;},
loadJSON:function(json){this.removeAllImages();for(var i in json){if(json[i].src!=undefined){this.addImage(json[i].src,json[i].x,json[i].y,json[i].z);}
}
this.loadSWF(this.click_url);},
addImage:function(src,x,y,z){if(z==undefined){this.imgs.push({src:src,x:x,y:y,z:this.imgs.length});}else{this.imgs.push({src:src,x:x,y:y,z:z});}
},
setImage:function(src,x,y,z,reverse){for(var i=0;i<this.imgs.length;i++){if(this.imgs[i].z==z){if(src==undefined||src==null){this.imgs.splice(i,1);}else{this.imgs[i]={src:src,x:x,y:y,z:z,reverse:reverse};}
return;}
}
this.imgs.push({src:src,x:x,y:y,z:z,reverse:reverse});},
removeAllImages:function(){this.imgs=new Array();},
loadSWF:function(onclick){var flashvars={}
flashvars.image_xml=escape(this.createXML(this.imgs));if(onclick!=undefined){flashvars.onclick=escape(onclick);this.click_url=onclick;}
if(this.reverse){flashvars.reverse=escape(this.reverse);if(this.swf_url.indexOf('?')==-1){this.swf_url+='?'+Math.random();}
}
var params={quality:'best',
allowfullscreen:'true',
allowscriptaccess:'always',
wmode:'transparent'
};swfobject.embedSWF(this.swf_url,this.swf_eid,this.width,this.height,'9.0.0',null,flashvars,params,{style:'display:block;'});},
createXML:function(imgs){var imgres=new Array();for(var i=0;i<imgs.length;i++){var img=imgs[i];if(!img.src)continue;imgres.push('<img src="'+img.src+'" x="'+img.x+'" y="'+img.y+'" z="'+img.z+'" reverse="'+img.reverse+'"/>');}
var res='<images>'+imgres.join('')+'</images>';return res;}
};var AvatarLifeBar={height:300,
width:20,
dimcolor:'#ddd',
print:function(num,deno,eid,color){var ht1,ht2;var num=parseInt(num);var deno=parseInt(deno);var fraction=num/deno;if(isNaN(fraction)){fraction=0;}
fraction=Math.max(Math.min(1,fraction),0);ht1=Math.floor(this.height*(1-fraction));ht2=this.height-ht1;var res=div(
div('&nbsp;',{'style':'width:100%;height:'+ht1+'px;position:absolute;top:0px;left:0px;background-color:'+this.dimcolor+';'})+
div('&nbsp;',{'style':'width:100%;height:'+ht2+'px;position:relative;top:'+ht1+'px;left:0px;background-color:'+color+';'})
,{'style':'position:relative;width:'+this.width+'px;height:'+this.height+'px;margin:auto;'});res+=div(num+'/'+deno,{'style':'font-size:10px;margin-top:4px;text-align:center;color:'+color});$(eid).innerHTML=res;}
};
if(typeof Effect=='undefined')
throw("controls.js requires including script.aculo.us' effects.js library");var Validator={}
Validator.Base=Class.create({initialize:function(element,url,updater,options){element=$(element)
this.element=element;this.url=url;this.updater=updater;this.observer=null;if(this.setOptions)
this.setOptions(options);else
this.options=options||{};this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.paramName=this.options.paramName||'input';this.options.isRpcApi=this.options.notRpcApi||false;Event.observe(this.element,'blur',this.onBlur.bindAsEventListener(this));Event.observe(this.element,'keypress',this.onKeyPress.bindAsEventListener(this));Event.observe(this.element,'focus',this.onFocus.bindAsEventListener(this));},
onFocus:function(event){},
onBlur:function(event){if(this.observer)clearTimeout(this.observer);this.checkInput();},
onKeyPress:function(event){if(this.observer)clearTimeout(this.observer);this.observer=
setTimeout(this.checkInput.bind(this),this.options.frequency*1000);},
checkInput:function(){var entry=encodeURIComponent(this.options.paramName)+'='+
encodeURIComponent(this.element.value);if(this.options.notRpcApi){var ajax=new Ajax.Updater(this.updater,this.url,{postBody:entry});}else{var the_updater=this.updater;new Ajax.Request(this.url,{postBody:entry,
onSuccess:function(transport){var json=transport.responseText.evalJSON();if(json.result_code==Rpc.RESULT_SUCCESS){$(the_updater).innerHTML=json.data.html;}
}
});}
}
});var PhotoViewer=Class.create({current_photo_index:null,
container_dom_id:null,
template:null,
rendered_once:false,
total_photo_count:0,
initialize:function(dom_id){this.items=new Array();this.container_dom_id=dom_id;this.share_tplstr='<h3 id="share_links_header">Share Links</h3><table id="share_links"><tr><td>URL:</td><td><input type="text" value="#{share_link_url}" onclick="$(this).select();"/></td></tr><tr><td>Html:</td><td><input type="text" value="#{share_link_html}" onclick="$(this).select();"/></td></tr><tr><td>BBcode:</td><td><input type="text" value="#{share_link_bbcode}" onclick="$(this).select();"/></td></tr></table><div id="inappropriate_link">#{inappropriate_link_html}</div>';this.info_tplstr='<div id="photo_owner" class="clearfix"><a class="mug" href="#{owner_link}"><img src="#{owner_mug}"/></a><div class="owner-info"><span class="created">Uploaded #{created}</span><span class="byline">by #{owner_label_html}</span></div></div><div id="extra_info">#{extra_info_html}</div><div id="photo_comments">#{comments_html}</div>';this.tplstr='<div id="photo_header" class="clearfix"><div id="photo_counter"></div><div id="nav_buttons"><a href="javascript:void(0);" id="prev_button">Previous</a><a href="javascript:void(0);" id="next_button">Next</a></div></div><div id="left_column"><a href="javascript:void(0);" id="photo_container"><img id="img_full" src="#{img_src}"/><span id="photo_caption">#{img_caption}</span></a><div id="share_links_container">'+this.share_tplstr+'</div></div><div id="photo_info">'+this.info_tplstr+'</div>';this.template=new Template(this.tplstr);this.info_template=new Template(this.info_tplstr);this.share_template=new Template(this.share_tplstr);this.photo_counter_template=new Template('Photo #{index} of #{total_count}<a href="#{album_link}" style="margin-left:8px;">Back To Album</a>');},
bulkAddToQueue:function(items){for(var i=0;i<items.length;i++){this.items.push(items[i]);}
},
addItem:function(itemdata,photo_index){this.items[photo_index]=itemdata;},
getItemData:function(photo_index,callback){if(this.items[photo_index]){callback(this.items[photo_index],photo_index);}else{Rpc.request({'params_obj':{'req':'RpcApiPhoto_GetPhotoViewerData','pa_id':this.pa_id,'offset':photo_index},
'callback_scope':this,
'callback':function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.printMessage(json);return;}
this.addItem(json.data,photo_index);callback(json.data,photo_index);}});}
},
renderCurrent:function(){this.getItemData(this.current_photo_index,this.render.bind(this));},
render:function(imgdata,photo_index){var imgurl=imgdata.data.img.full;var caption='';var comments_html=imgdata.comments_html;if(imgdata.data.desc)caption=htmlspecialchars(imgdata.data.desc);if(!this.rendered_once){var tplstr=this.template.evaluate({'img_src':imgurl,
'img_caption':caption,
'created':imgdata.data.created,
'owner_mug':imgdata.owner.mug.small,
'owner_link':imgdata.owner.link,
'owner_label_html':imgdata.owner.label_html,
'comments_html':comments_html,
'extra_info_html':imgdata.extra_info_html,
'share_link_url':htmlspecialchars(imgdata.share_links.url),
'share_link_html':htmlspecialchars(imgdata.share_links.html),
'share_link_bbcode':htmlspecialchars(imgdata.share_links.bbcode),
'inappropriate_link_html':imgdata.inappropriate_link
});$(this.container_dom_id).update(tplstr);$('photo_container').observe('click',this.nextPhoto.bindAsEventListener(this));$('prev_button').observe('click',this.prevPhoto.bindAsEventListener(this));$('next_button').observe('click',this.nextPhoto.bindAsEventListener(this));this.rendered_once=true;}else{$('img_full').setAttribute('src',imgurl);$('photo_caption').update(caption);$('photo_info').update(this.info_template.evaluate({'created':imgdata.data.created,
'owner_mug':imgdata.owner.mug.small,
'owner_link':imgdata.owner.link,
'owner_label_html':imgdata.owner.label_html,
'comments_html':comments_html,
'extra_info_html':imgdata.extra_info_html}));$('share_links_container').update(this.share_template.evaluate({'share_link_url':htmlspecialchars(imgdata.share_links.url),
'share_link_html':htmlspecialchars(imgdata.share_links.html),
'share_link_bbcode':htmlspecialchars(imgdata.share_links.bbcode),
'inappropriate_link_html':imgdata.inappropriate_link
}));}
if(comments_html==null){if($('extra_info')){$('extra_info').update("<div style=\"padding:40px;margin:auto;text-align:center;font-weight:bold;font-size:14px;\">Loading Details...<br/><img src=\"./icons/loading_32_32.gif\" style=\"margin-top:4px;\"/></div>");}
Rpc.request({'params_obj':{'req':'RpcApiPhoto_GetPhotoViewerData','pa_id':this.pa_id,'offset':photo_index},
'callback_scope':this,
'callback':function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);return;}
var imgdata=json.data;this.addItem(imgdata,photo_index);$('photo_info').update(this.info_template.evaluate({'created':imgdata.data.created,
'owner_mug':imgdata.owner.mug.small,
'owner_link':imgdata.owner.link,
'owner_label_html':imgdata.owner.label_html,
'comments_html':imgdata.comments_html,
'extra_info_html':imgdata.extra_info_html}));}});}
$('photo_counter').update(this.photo_counter_template.evaluate({'index':photo_index+1,
'total_count':this.total_photo_count,
'album_link':imgdata.album_link
}));this.cacheImage((photo_index+1)% this.total_photo_count);this.cacheImage((photo_index-1+this.total_photo_count)% this.total_photo_count);this.trackView(imgdata.id);},
cacheImage:function(photo_index){this.getItemData(photo_index,function(imgdata,photo_index){new Image().src=imgdata.data.img.full;});},
prevPhoto:function(){this.current_photo_index=((this.current_photo_index-1+this.total_photo_count)% this.total_photo_count);this.renderCurrent();YAHOO.util.History.navigate('photo_viewer_module',this.current_photo_index.toString());return false;},
nextPhoto:function(){this.current_photo_index=((this.current_photo_index+1)% this.total_photo_count);this.renderCurrent();YAHOO.util.History.navigate('photo_viewer_module',this.current_photo_index.toString());return false;},
trackView:function(photo_id){var url='/tracker?t=photo_view&pid='+escape(photo_id);trackClick(url,true);}
});var PhotoOrganizer=Class.create({container_dom_id:null,
template:null,
total_photo_count:0,
items:null,
pa_id:null,
initialize:function(dom_id){this.items=new Array();this.container_dom_id=dom_id;this.tplstr='<li class="draggable" id="#{id}" photo_id="#{photo_id}"><img src="#{img_src}"/></li>';this.item_template=new Template(this.tplstr);this.tplstr2='<li class="draggable" id="#{id}" photo_id="#{photo_id}"><img src="#{img_src}" height="100"/></li>';this.item_template2=new Template(this.tplstr2);},
addPhotos:function(items){for(var i=0;i<items.length;i++){this.items.push(items[i]);}
},
render:function(){var tplstr='';for(var i=0;i < this.items.length;i++){var imgdata=this.items[i];var imgurl=imgdata.data.img.medium;if(parseInt(imgdata.data.dims.height)> parseInt(imgdata.data.dims.width)){tplstr+=this.item_template2.evaluate({'img_src':imgurl,
'id':'draggable_photo_'+imgdata.id,
'photo_id':imgdata.id,
'ordering':i
});}else{tplstr+=this.item_template.evaluate({'img_src':imgurl,
'id':'draggable_photo_'+imgdata.id,
'photo_id':imgdata.id,
'ordering':i
});}
}
$(this.container_dom_id).update('<ul id="photo_sandbox">'+tplstr+'</ul>');$('photo_sandbox').select('li.draggable').each(this.addDragListeners.bind(this));},
addDragListeners:function(li_item){Sortable.create('photo_sandbox',{'constraint':''});},
reverse:function(){Sortable.setSequence('photo_sandbox',Sortable.sequence('photo_sandbox').reverse());},
save:function(){var order_str=Sortable.sequence('photo_sandbox').join(';');if(order_str){Rpc.request({'params_obj':{'req':'RpcApiPhoto_SetPhotoOrder','pa_id':this.pa_id,'order_str':order_str},
'callback_scope':this,
'callback':function(json){Rpc.printMessage(json);return;}});}
}
});var ItemManager=Class.create({VIEW_SMALL_GRID:0,
VIEW_MEDIUM_GRID:1,
VIEW_LARGE_GRID:2,
VIEW_LIST:3,
VIEW_DETAILS:4,
VIEWS_COUNT:5,
SORT_NAME:1,
SORT_TYPE:2,
SORT_DESC:3,
SORT_CREATED:4,
SORT_NAME_ASC:10,
SORT_NAME_DESC:-10,
SORT_TYPE_ASC:20,
SORT_TYPE_DESC:-20,
SORT_DESC_ASC:30,
SORT_DESC_DESC:-30,
SORT_CREATED_ASC:40,
SORT_CREATED_DESC:-40,
currentSort:null,
user_id:null,
view_type_menu_dom_id:null,
menu_dom_id:null,
paginator_dom_id:null,
sorter_dom_id:null,
controlbar_dom_id:null,
entries_per_page:1,
preferred_view_types:null,
fav_type_map:null,
subtitle_status_map:null,
upload_status_map:null,
instance_name:'im',
initialize:function(state,dom_id,preferred_view_types,module_name){this.module_name=module_name;this.preferred_view_types=preferred_view_types;this.dom_id=dom_id;this.item_template=new Template('<div class="#{container_class} item-container">'+
'<input type="checkbox" name="#{checkbox_name}" value="#{checkbox_value}" class="#{checkbox_class} item-checkbox"/>'+
'<a href="#{link}" class="item-link" #{target} title="#{tooltip}">'+
'<span class="item-mug-container"><img src="#{img_src}" #{img_dims} class="item-mug"/></span>'+
'<span class="item-name">#{item_name}</span>'+
'<span class="item-type">#{type}</span>'+
'<span class="item-desc">#{desc}</span>'+
'<span class="item-created">#{created}</span>'+
'</a>'+
'<span class="item-actions">#{actions}</span>'+
'</div>'
);this.state=state;},
render:function(){this.renderMenu(this.menu_data);var data=this.tab_contents_data;var currentTab=this.getState().get('tab');if(data.controlbar_html!=undefined){$(this.controlbar_dom_id).update(this.renderViewControl()+data.controlbar_html);}else{$(this.controlbar_dom_id).update(this.renderViewControl());}
$(this.sorter_dom_id).update(this.renderSortBar(currentTab));this.items=data.items;this.renderItems();$(this.paginator_dom_id).innerHTML=data.paginator_html;Dialog.addClickListeners(this.dom_id);},
getState:function(){var state=$H(this.state.toQueryParams());if(!state.get('page'))state.set('page',0);return state;},
changeState:function(state){this.state=state;this.refresh();},
switchViews:function(view_type){if(isNaN(view_type))return false;if(this.view_type!=view_type){this.setView(view_type);this.render();}
},
setView:function(view_type){this.view_type=parseInt(view_type);if($(this.view_type_menu_dom_id))$(this.view_type_menu_dom_id).value=view_type;this.saveViewPrefs(this.getState().get('tab'),view_type);},
rotateViews:function(){this.switchViews((this.view_type+1)% this.VIEWS_COUNT);},
saveViewPrefs:function(tab,view_type){if(tab){var params={'req':'RpcApiManager_SetManagerPreferredViewType','tab_key':tab,'view_type':view_type};Rpc.request({params_obj:params,
callback:Rpc.doNothing
});}
this.preferred_view_types[tab]=view_type;},
renderMenu:function(menu_items){if($(this.menu_dom_id)&&menu_items){$(this.menu_dom_id).innerHTML=this.renderMenuHelper(menu_items,'',false);}
},
renderMenuHelper:function(menu_items,menu_item_key_prefix,already_highlighted){var res='';for(var i=0;i < menu_items.length;i++){var menu_item_key=menu_item_key_prefix+'/'+i;var classname='';if(!already_highlighted){var state=this.getState();var key_chunks=$H(menu_items[i].key.toQueryParams());var doesnt_match=false;for(var j=0;j<key_chunks.keys().length;j++){if(state.get(key_chunks.keys()[j])!=key_chunks.get(key_chunks.keys()[j])){doesnt_match=true;}
}
if(!doesnt_match){classname=' class="highlight" ';already_highlighted=true;}
}
var label;var maxlen=20;if(menu_items[i].label.length > maxlen){label=htmlspecialchars(substr(menu_items[i].label,0,maxlen))+'...';}else{label=htmlspecialchars(menu_items[i].label);}
var title=htmlspecialchars(menu_items[i].label);res+='<li><a href="#'+this.module_name+'='+urlencode(menu_items[i].key)+'"'+classname+' title="'+title+'">'+label+'</a></li>';if(menu_items[i].children){res+='<ul>'+this.renderMenuHelper(menu_items[i].children,menu_item_key,already_highlighted)+'</ul>';}
}
return res;},
renderItems:function(){var res='';if(this.items&&this.items.length > 0){for(var i=0;i<this.items.length;i++){res+=this.renderSingleItem(this.items[i]);}
}else{res='<div class="blank">No Items.</div>';}
$(this.dom_id).innerHTML=res;},
renderSingleItem:function(item){if(item.name==undefined)return '';var img_src,container_class;var img_width=null;var img_height=null;var type=item.type;var created=item.created;var actions_array=new Array();for(var i=0;i < item.actions.length;i++){if(item.actions[i]!=undefined){actions_array.push(item.actions[i]);}
}
if(item.img.dims==undefined||item.img.dims.width==undefined||item.img.dims.height==undefined){item.img.dims={'width':0,'height':0};}
item.img.dims.width=parseInt(item.img.dims.width);item.img.dims.height=parseInt(item.img.dims.height);switch(this.view_type){case this.VIEW_SMALL_GRID:
img_src=item.img.small;if(item.img.dims.height > item.img.dims.width){img_height=50;}
container_class="small-grid-item-container";break;case this.VIEW_MEDIUM_GRID:
img_src=item.img.medium;if(item.img.dims.height > item.img.dims.width){img_height=100;}
container_class="medium-grid-item-container";break;case this.VIEW_LARGE_GRID:
img_src=item.img.large;if(item.img.dims.height > item.img.dims.width){img_height=200;}
container_class="large-grid-item-container";break;case this.VIEW_LIST:
img_src=item.img.small;if(item.img.dims.height > item.img.dims.width){img_height=50;}
type="Type: "+item.type;created="Created: "+item.created;container_class="list-item-container";break;case this.VIEW_DETAILS:
img_src=item.img.small;if(item.img.dims.height > item.img.dims.width){img_height=50;}
container_class="details-item-container";break;}
var checkbox_name=checkbox_value=checkbox_class='';if(item.checkbox){checkbox_name=item.checkbox.name;checkbox_value=item.checkbox.value;checkbox_class=item.checkbox['class'];}
var img_dims="";if(img_width){img_dims+=" width=\""+img_width+"\"";}
if(img_height){img_dims+=" height=\""+img_height+"\"";}
var target='';if(item.link!=null&&item.link.indexOf('/manager')!=-1){target='';}else{target='target="_blank"';}
var tplstr=this.item_template.evaluate({container_class:container_class,
img_src:img_src,
img_dims:img_dims,
item_name:htmlspecialchars(item.name)+'&nbsp;',
tooltip:htmlspecialchars(item.tooltip)+'&nbsp;',
desc:htmlspecialchars(item.desc)+'&nbsp;',
type:type+'&nbsp;',
created:created+'&nbsp;',
link:item.link,
target:target,
actions:actions_array.join(', '),
checkbox_name:checkbox_name,
checkbox_value:checkbox_value,
checkbox_class:checkbox_class
});return tplstr;},
toggleSort:function(sort){if(this.currentSort==sort*-10){this.currentSort=sort*10;}
else if(this.currentSort==sort*10){this.currentSort=sort*-10;}
else{this.currentSort=sort*10;}
},
refresh:function(){var state=this.getState();var params={};params.state=this.state;params.user_id=this.user_id,
params.paginator_js_fn=this.paginator_js_fn;if(this.currentSort!=null){var orderby;switch(this.currentSort){case this.SORT_NAME_ASC:orderby='name asc';break;case this.SORT_NAME_DESC:orderby='name desc';break;case this.SORT_DESC_ASC:orderby='desc asc';break;case this.SORT_DESC_DESC:orderby='desc desc';break;case this.SORT_TYPE_ASC:orderby='type asc';break;case this.SORT_TYPE_DESC:orderby='type desc';break;case this.SORT_CREATED_ASC:orderby='created asc';break;case this.SORT_CREATED_DESC:orderby='created desc';break;}
params.orderby=orderby;}
params.req='RpcApiManager_GetContents';params.offset=state.get('page')*this.entries_per_page;params.length=this.entries_per_page;this.showSpinner();Rpc.request({params_obj:params,
callback:function(resp){if(resp.result_code==Rpc.RESULT_SUCCESS){this.hideSpinner();this.tab_contents_data=resp.data;var currentTab=this.getState().get('tab');if(this.preferred_view_types&&this.preferred_view_types[currentTab]){this.setView(parseInt(this.preferred_view_types[currentTab]));}
this.render();}else{this.hideSpinner();Rpc.showAlert(resp);}
},
callback_scope:this
});this.refreshMenu();},
refreshMenu:function(){var params={req:'RpcApiManager_GetManagerTabs'};Rpc.request({params_obj:params,
callback:function(resp){if(resp.result_code==Rpc.RESULT_SUCCESS){this.menu_data=resp.data;this.renderMenu(resp.data);}else{Rpc.showAlert(resp);}
},
callback_scope:this
});},
checkAll:function(){$(this.dom_id).getElementsBySelector('input[type=checkbox]').each(function(i){i.checked=true;});},
checkNone:function(){$(this.dom_id).getElementsBySelector('input[type=checkbox]').each(function(i){i.checked=false;});},
checkByClass:function(class_name){this.checkNone();$(this.dom_id).getElementsBySelector('input[type=checkbox].'+class_name).each(function(i){i.checked=true;});},
renderViewControl:function(){var tpl="<span style='float:right;display:block;' class='medium'><a href='javascript:void(0);' onclick='#{instance_name}.refresh();return false;'>Refresh</a>&nbsp;&nbsp;<a href='javascript:void(0);' onclick='#{instance_name}.rotateViews();return false;'>Switch View</a>: ";tpl+="<select id='#{id}' onchange='#{instance_name}.switchViews(this.value);'>";tpl+="<option value='#{view1}'#{selected1}>Small Grid</option>";tpl+="<option value='#{view2}'#{selected2}>Medium Grid</option>";tpl+="<option value='#{view3}'#{selected3}>Large Grid</option>";tpl+="<option value='#{view4}'#{selected4}>List Grid</option>";tpl+="<option value='#{view5}'#{selected5}>Details</option>";tpl+="</select></span>";var tplo=new Template(tpl);var selected1,selected2,selected3,selected4,selected5;selected1=selected2=selected3=selected4=selected5='';switch(this.view_type){case this.VIEW_SMALL_GRID:selected1=' selected="1"';break;case this.VIEW_MEDIUM_GRID:selected2=' selected="1"';break;case this.VIEW_LARGE_GRID:selected3=' selected="1"';break;case this.VIEW_LIST:selected4=' selected="1"';break;case this.VIEW_DETAILS:selected5=' selected="1"';break;}
return tplo.evaluate({'id':this.view_type_menu_dom_id,
'instance_name':this.instance_name,
'view1':this.VIEW_SMALL_GRID,
'view2':this.VIEW_MEDIUM_GRID,
'view3':this.VIEW_LARGE_GRID,
'view4':this.VIEW_LIST,
'view5':this.VIEW_DETAILS,
'selected1':selected1,
'selected2':selected2,
'selected3':selected3,
'selected4':selected4,
'selected5':selected5
});},
renderSortBar:function(tab){var name='Name';var type='Type';var desc='Description';var created='Created';var instance_name=this.instance_name;switch(tab){case 'favs':
break;case 'watch_list':
created='Watched';break;case 'buddies':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';break;case 'groups':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Joined</a>';break;case 'photos':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Created</a>';break;case 'photoalbums':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Created</a>';break;case 'downloads':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';type='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_TYPE);'+instance_name+'.refresh();return false;">Type</a>';created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Created</a>';break;case 'uploads':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';type='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_TYPE);'+instance_name+'.refresh();return false;">Status</a>';created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Created</a>';break;case 'subtitles':
name='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_NAME);'+instance_name+'.refresh();return false;">Name</a>';type='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_TYPE);'+instance_name+'.refresh();return false;">Status</a>';created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Created</a>';break;case 'items':
created='<a href="#" onclick="'+instance_name+'.toggleSort('+instance_name+'.SORT_CREATED);'+instance_name+'.refresh();return false;">Created</a>';break;}
var template=new Template('<span class="item-manager-colheaders">'+
'<span class="item-name header">#{name}</span>'+
'<span class="item-type header">#{type}</span>'+
'<span class="item-desc header">#{desc}</span>'+
'<span class="item-created header">#{created}</span>'+
'<span class="item-actions header">Actions</span>'+
'</span>'
);var tplstr=template.evaluate({'name':name,'type':type,'desc':desc,'created':created
});return tplstr;},
showSpinner:function(){$(this.dom_id).innerHTML="<div style=\"padding:40px;margin:auto;text-align:center;font-weight:bold;font-size:14px;\">Loading...<br/><img src=\"./icons/loading_32_32.gif\" style=\"margin-top:4px;\"/></div>";},
hideSpinner:function(){$(this.dom_id).innerHTML='';}
});var ManagerActions={'sendActionByParts':function(im,req,action){var params={'req':req,'bulk_action':action};var selection=$(im.dom_id).getElementsBySelector('input[type=checkbox]').each(function(i){if(i.checked)params[i.name]=i.value;});Rpc.request({params_obj:params,
callback:function(json){Messaging.reset();Messaging.addItems(json.message_list);if(json.result_code!=Rpc.RESULT_SUCCESS){return false;}else{im.refresh();return false;}
}
});},
'trashUpload':function(im,upload_id){var params={'req':'RpcApiMedia_TrashUpload','upload_id':upload_id};Rpc.request({params_obj:params,
callback:function(json){Messaging.reset();Messaging.addItems(json.message_list);if(json.result_code!=Rpc.RESULT_SUCCESS){return false;}else{im.refresh();return false;}
}
});},
'createList':function(){var name=prompt("Name of List:","");if(name==null){return;}
if(name==""){alert("Please enter a list name.");return;}
var params={'req':'RpcApiEntityList_CreateUserDefinedList','name':name};Rpc.request({params_obj:params,
callback:function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);return false;}else{Rpc.printMessage(json);window.location=json.data.manager_link;return false;}
}
});},
'renameList':function(list_id,original_name){var name=prompt("New name:",original_name);if(name==null){return;}
if(name==""){alert("Please enter a list name.");return;}
if(name==original_name){return;}
var params={'req':'RpcApiEntityList_RenameList','name':name,'list_id':list_id};Rpc.request({params_obj:params,
callback:function(json){if(json.result_code!=Rpc.RESULT_SUCCESS){Rpc.showAlert(json);return false;}else{im.refresh();return false;}
}
});}
};var ListOrganizer=Class.create({container_dom_id:null,
template:null,
total_item_count:0,
items:null,
list_id:null,
initialize:function(dom_id,deletable){this.items=new Array();this.container_dom_id=dom_id;if(deletable){var delete_tplstr='<img src="./icons/remove_grey_14_14.gif" onclick="EntityList.DeleteItem(#{item_id},Rpc.refreshPage,Rpc.showAlert);return false;" title="Delete" class="delete hover"/>';var edit_tplstr='<a href="/dialog_edit_list_item?list_item_id=#{item_id}" class="edit hover" dialog="-350,-10"><img src="./icons/pencil_gray_14_14.gif" title="Edit Details"/></a>';}else{var delete_tplstr=edit_tplstr='';}
this.tplstr='<li class="draggable clearfix" id="#{id}" item_id="#{item_id}"><img src="#{img_src}" class="mug"/><span class="label">#{label}</span>'+delete_tplstr+edit_tplstr+'</li>';this.item_template=new Template(this.tplstr);},
addItems:function(items){for(var i=0;i<items.length;i++){this.items.push(items[i]);}
},
render:function(){var tplstr='';for(var i=0;i < this.items.length;i++){var itemdata=this.items[i];var imgurl=itemdata.img.small;tplstr+=this.item_template.evaluate({'img_src':imgurl,
'status':status,
'id':'draggable_item_'+itemdata.id,
'item_id':itemdata.id,
'label':htmlspecialchars(itemdata.name.substr(0,75)),
'ordering':i
});}
$(this.container_dom_id).update('<ol id="item_sandbox">'+tplstr+'</ol>');$('item_sandbox').select('.draggable').each(this.addDragListeners.bind(this));},
addDragListeners:function(li_item){Sortable.create('item_sandbox',{'constraint':''});},
reverse:function(){Sortable.setSequence('item_sandbox',Sortable.sequence('item_sandbox').reverse());},
save:function(){var order_str=Sortable.sequence('item_sandbox').join(';');if(order_str){Rpc.request({'params_obj':{'req':'RpcApiEntityList_SaveOrder','list_id':this.list_id,'order_str':order_str},
'callback_scope':this,
'callback':function(json){Rpc.printMessage(json);return;}});}
}
});function refreshAd(dom_id){if($(dom_id)!=undefined){$(dom_id).src=$(dom_id).src;}
}
function hideRollDiv(name){alert("hideRollDiv");var theDiv=document.getElementById(name);theDiv.style.visibility="hidden";return true;}
function showRollDiv(name){alert("showRollDiv");var theDiv=document.getElementById(name);theDiv.style.visibility="visible";}
var Dialog={class_name:'cr-dialog',
dom_id:'cr_dialog',
offset_parent:null,
horizontal_offset:null,
vertical_offset:null,
onclick:function(url){var dialog=this.getDialog();this.open();dialog.update('<div class="loading">Loading...</div>');Rpc.request({ajax_root:url,params_obj:{},callback:Dialog.loadHtml,method:'get',callback_scope:this});},
addClickListeners:function(parent_element){$(parent_element).getElementsBySelector('a').each(Dialog.addClickListener);},
addClickListener:function(href){var dialog=href.readAttribute('dialog');if(dialog){href.observe('click',function(event){if(EventBugFix.isLeftClick(event)&&!event.ctrlKey&&!event.shiftKey){Event.stop(event);Dialog.attach(this,parseInt(dialog.split(',')[0]),parseInt(dialog.split(',')[1]));}
});href.observe('a:open_dialog',function(event){Dialog.attach(this,parseInt(dialog.split(',')[0]),parseInt(dialog.split(',')[1]));});}
},
attach:function(href,horizontal_offset,vertical_offset){this.offset_parent=$(href);this.horizontal_offset=horizontal_offset;this.vertical_offset=vertical_offset;var url=new URLS(href.href);url.setParam('rt','json');this.onclick(url.show());return false;},
getDialog:function(){var dialog=$(this.dom_id);if(!dialog){dialog=document.createElement('DIV');$('template_container').appendChild(dialog);dialog=$(dialog);dialog.setAttribute('id',this.dom_id);dialog.addClassName(this.class_name);}
return dialog;},
close:function(){Event.stopObserving(document,'keydown',Dialog.keypressHandler);Effect.Fade(Dialog.dom_id,{duration:.2});},
open:function(){var offset=this.offset_parent.cumulativeOffset();var dialog=this.getDialog();var page_offset=$(dialog.parentNode).cumulativeOffset();var viewport_width=document.viewport.getWidth();dialog.setStyle({'left':(offset.left-page_offset.left+this.offset_parent.getWidth()+this.horizontal_offset)+'px',
'top':(offset.top-page_offset.top+this.vertical_offset)+'px'
});Event.observe(document,'keydown',Dialog.keypressHandler);Effect.Appear(Dialog.dom_id,{duration:.2,afterFinish:function(){Effect.ScrollTo(Dialog.dom_id,{duration:.2,offset:-100});}});},
keypressHandler:function(e){if(e.keyCode==Event.KEY_ESC){Dialog.close();}
},
loadHtml:function(json){var dialog=this.getDialog();var header='<div class="header clearfix"><div class="close"><a href="javascript:void(0);" onclick="Dialog.close();"></a></div>';if(json.data.html_header){header+='<h1>'+json.data.html_header+'</h1>';}
header+='</div>';var footer="";if(json.data.html_footer){footer='<div class="footer clearfix">'+json.data.html_footer+'</div>';}
var bubble_html=header+json.data.html+footer;if(!(BrowserDetect.browser=='Explorer'&&BrowserDetect.version==6)){bubble_html+='<div class="widget-dropshadow-top"></div><div class="widget-dropshadow-top-right"></div><div class="widget-dropshadow-right"></div><div class="widget-dropshadow-bottom-right"></div>';bubble_html+='<div class="widget-dropshadow-bottom"></div><div class="widget-dropshadow-bottom-left"></div><div class="widget-dropshadow-left"></div><div class="widget-dropshadow-top-left"></div>';}
dialog.update(bubble_html);},
formSubmit:function(form,callback){form=$(form);if(!callback){callback=Dialog.callbackDisplayMessage;}
form.request({onComplete:callback});},
callbackRedirect:function(transport){var json=transport.responseText.evalJSON();if(json.result_code==Rpc.RESULT_SUCCESS){redirect(json.suggested_redirect_url,json.message_list);}else{json.data.html_header='Information';json.data.html='';for(var i=0;i < json.message_list.length;i++){json.data.html+='<div class="message">'+json.message_list[i].message_body+'</div>';}
json.data.html_footer='<div style="text-align:right;margin:8px 0px;"><a class="submitbtn" href="javascript:Dialog.close();">Close</a></div>';Dialog.loadHtml(json);}
},
callbackDisplayMessage:function(transport){var json=transport.responseText.evalJSON();if(json.message_list){if(json.result_code==Rpc.RESULT_SUCCESS){json.data.html_header='Success';}else{json.data.html_header='Information';}
json.data.html='';for(var i=0;i < json.message_list.length;i++){json.data.html+='<div class="message">'+json.message_list[i].message_body+'</div>';}
json.data.html_footer='<div style="text-align:right;margin:8px 0px;"><a class="submitbtn" href="javascript:Dialog.close();">Close</a></div>';Dialog.loadHtml(json);}
}
}

