﻿// JScript File
var ERR_MSG='Sorry. An unexpected error occured while processing your request. Please try again later.';
/*************** Begin Method to add/remove friends from timeline *************/


function AddRemFriend(followname, lnk){
    var link;
    var action;
    
    link=document.getElementById(lnk);
    action=link.className;
    link.className= "processing2";
    PageMethods.AddRemoveFriend2(followname, action, lnk, OnAddRemComplete);
        
}
function OnAddRemComplete(result){
    var res = result.split(':');
    var action=res[0];
    var obj=document.getElementById(res[1]);
    
    if(res[3] =='error'){
        alert(ERR_MSG);
        if (action=='unfollow')
            obj.className="unfollow";
        else
            obj.className="follow";
    }else{
        if (action=='unfollow')
            obj.className="follow";
        else
            obj.className="unfollow";
        }
}

/***************  End of Method to add/remove friends from timeline **************/

/*************** Begin Like this call *********************/

function likeThisClip(webClipID,hyplike,hypliketxt){
    var hyplikethis = document.getElementById(hyplike); 
    var ops=hyplikethis.innerHTML;
    hyplikethis.innerHTML="";
    hyplikethis.className=  "processing2";
   
    if (ops=='unlike'){
        PageMethods.LikeThis(webClipID, 'false', hyplike,hypliketxt, OnlikeThisClipComplete);
    }
    else{
        PageMethods.LikeThis(webClipID, 'true', hyplike,hypliketxt, OnlikeThisClipComplete);
    }
}

function OnlikeThisClipComplete(result){
    var res = result.split(':');
    if(res[0] =='error'){
        alert(ERR_MSG);
        document.getElementById(res[1]).className=  "smalllink";
        document.getElementById(res[1]).innerHTML=res[2];
        return;
    }    
    
    var action=res[0];
    document.getElementById(res[3]).innerHTML= res[0];   
    document.getElementById(res[2]).className=  "smalllink";
    document.getElementById(res[2]).innerHTML= res[1];
}

/***************  End of Method for like **************/

function showVideo(){
    document.getElementById('generic_dialog_overlay').style.display='block';
    document.getElementById('modvid').style.display='block'; 
}

/*************** Begin showLikes this call *********************/

function showLikes(WebClipID, likeID, title){
    var likeValue= document.getElementById(likeID).innerHTML;
    if (likeValue.indexOf('0')== 0)
        return false;
    
    document.getElementById('generic_dialog_overlay').style.display='block';
    document.getElementById('titleSpan').innerHTML=title;
    document.getElementById('modallikes').style.display='block';   
    document.getElementById('loadinglikes').style.display='block'
    document.getElementById('likescontent').style.display='none'
    PageMethods.Cliplikes(WebClipID, OnCliplikesComplete);
}   

function OnCliplikesComplete(result){
    document.getElementById('loadinglikes').style.display='none';
    document.getElementById('likescontent').style.display='block';
    document.getElementById('likescontent').innerHTML=  result;   
}

/***************  End of Method showLikes **************/


/*************** Begin DeleteClip  call *********************/

function deleteClip(rowID, WebClipID, lnk, mode){
    var del=confirm('Are you want to delete this clip?');
    if(del){
        document.getElementById(lnk).className= "processing";
        PageMethods.DeleteClip(rowID, WebClipID, lnk, mode,OndeleteClipComplete);
    }
}

function OndeleteClipComplete(result){
    if(result=='login'){
        window.location('/signin');
        return false;
    }
    
    var res = result.split(':');
    if(res[0]=='error'){
        alert(ERR_MSG);
        document.getElementById(res[1]).className="cssdeletebtn";
        return false;
    }
    
    var selRow=document.getElementById(res[0]).parentNode;
    if (res[1]=='View')
        window.location ='/';
    else
        selRow.style.display = "none";
}


/*************** END DeleteClip  call *********************/

var mIds;
var mTitle;
var mNotes;
var mTags;
var mPrivate;
var mCat;
function updateClip(ids, title, notes, tag,isprivate,cat){
    document.getElementById('processing').style.display='block';
    document.getElementById('progress').innerHTML='Saving...';
    document.getElementById('popcontent').style.display='none';
    
    mIds=document.getElementById(ids).value;
    mTitle=document.getElementById(title).value;
    mNotes=document.getElementById(notes).value;
    mTags=document.getElementById(tag).value;
    mPrivate=document.getElementById(isprivate).checked;
    mCat=document.getElementById(cat).value;
    PageMethods.UpdateClip(document.getElementById(ids).value,mTitle,mNotes,mTags,mPrivate,mCat,onUpdateComplete);
}

function onUpdateComplete(result){
    if(result=='login'){
        window.location('/signin');
        return false;
    }
    
    var res = result.split(':');
    if(res[0]=='error'){
        alert(ERR_MSG);
        return false;
    }
    
    try{
        //alert(mIds);
        document.getElementById('progress').innerHTML='Saved Successfully.';
        document.getElementById('imgloading').style.display = "none";
        
        var ids = mIds.split(':');
        document.getElementById(ids[1]).innerHTML=mTitle;
        document.getElementById(ids[2]).innerHTML=mNotes;
        document.getElementById(ids[2]).style.display = "inline-block"; 
        
        if(mPrivate == 0)
            document.getElementById(ids[3]).style.display = "none";
        else
            document.getElementById(ids[3]).style.display = "inline-block";  
        
        document.getElementById(ids[4]).innerHTML = mCat;             
         $("#modalPostClip").fadeOut(4000);    
       }catch(e){alert(e.message);}
       
       //document.getElementById('modalPostClip').style.display = "none";
      
}

function revealmodal(divid, divmain){
    document.getElementById(divid).style.display = "block";
    docuemtn.getElementById(divid).position = "relative"
}

function hideModal(divID){
    document.getElementById(divID).style.display = "none";
}

var req; 
   
function editClip(ids,urltext,titletxtbox, notestxtbox, tagtxtbox, privatechk, cat, urllocation) {
    try{
        document.getElementById('processing').style.display='block';
        document.getElementById('progress').innerHTML='Loading...';
        document.getElementById('imgloading').style.display='inline-block';
        document.getElementById('modalPostClip').style.display="block";
        document.getElementById('popcontent').style.display='none';
        document.getElementById(urllocation).value=ids;
        req = createXMLHTTPObject();
        var param= "/edit.aspx?urltext="+ escape(urltext);
        req.open('GET', param, true);
        req.onreadystatechange  = function() {showComplete(titletxtbox, notestxtbox, tagtxtbox, privatechk, cat)};
        req.onerror = function() {onError()};
        req.send(null);
    }catch(e){alert(e.message);}
}

function showComplete(titletxtbox, notestxtbox, tagtxtbox, privatechk, cat){
    if (req.readyState == 4) {
        if (req.status == 200) {
            var res=req.responseText.split("|$");
            if (res[0]=="ERROR"){
                document.getElementById('modalPostClip').style.display="none";
                alert(ERR_MSG);
            }else {
                try{
                    document.getElementById(titletxtbox).value=res[0];
                    document.getElementById(notestxtbox).value=res[1];
                    document.getElementById(tagtxtbox).value=res[2];
                    document.getElementById(privatechk).checked=parseInt(res[3]);
                    document.getElementById(cat).value=res[4];
                    document.getElementById('processing').style.display='none';
                    document.getElementById('popcontent').style.display="block";
                }catch(e){alert(e.message);}
                
            }	
        }
    }
}
    
function onError() {
    document.getElementById('modalPostClip').style.display="none";
    alert(ERR_MSG);
}
      
function createXMLHTTPObject() {
    var xhr;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    return xhr;
}




/*************** Begin Favorite Clip  call *********************/


var selRow;
var lnk;
var trc;
var edit;
var favlink;
var isfav;
var rowIndex;
var hovercolor='#FEFBF1';
var listmode;

function favthis(rowID, WebClipID, lnkfav, tc, edt, mode){
    lnk=lnkfav;
    trc=tc;
    edit=edt;
    rowIndex= rowID;
    isfav=false;
    listmode=mode;
    
    favlink = document.getElementById(lnk); 
    if (favlink.className.indexOf("emptystarfavbtn")>-1)
        isfav=true;
    
    favlink.className=  "processing";    
    if(isfav){
        PageMethods.FavClip(WebClipID, 'true', OnfavThisClipComplete);
        }else{
            PageMethods.FavClip(WebClipID, 'false', OnfavThisClipComplete);
    }
}

function OnfavThisClipComplete(result){
    if(result=='login'){
        window.location('/signin');
        return false;
    }
    if(result=='error'){
        alert("Sorry! An error ocured while processing your request");
        return false;
    }
    
    var selRow = document.getElementById(rowIndex).parentNode;

    if(listmode=='favorite' && isfav == false){
        selRow.style.display = "none";
        return;
    }
    if (trc != null){
     if(isfav){
            favlink.className = "filledstarfavbtn"        
            favlink.style.display ='block';
            selRow.onmouseout = function() {selRow.style.backgroundColor = "transparent"; document.getElementById(lnk).style.display = "block"; document.getElementById(trc).style.display = "none";document.getElementById(edit).style.display = "none";};
     }else{
            favlink.className = "emptystarfavbtn"
            favlink.style.display ='none';
            selRow.onmouseout = function() {selRow.style.backgroundColor = "transparent"; document.getElementById(lnk).style.display = "none"; document.getElementById(trc).style.display = "none";document.getElementById(edit).style.display = "none";};
        }
        if (listmode=='View')
            selRow.onmouseover = function() {selRow.style.backgroundColor = "transparent"; document.getElementById(lnk).style.display = "block";  document.getElementById(trc).style.display = "block";document.getElementById(edit).style.display = "block";};
        else
            selRow.onmouseover = function() {selRow.style.backgroundColor = hovercolor; document.getElementById(lnk).style.display = "block";  document.getElementById(trc).style.display = "block";document.getElementById(edit).style.display = "block";};
    }else {
        if(isfav){
            favlink.className = "filledstarfavbtn"        
            favlink.style.display ='block';
            selRow.onmouseout = function() {selRow.style.backgroundColor = "transparent"; document.getElementById(lnk).style.display = "block"; };
        }else {
            favlink.className = "emptystarfavbtn"
            favlink.style.display ='none';
            selRow.onmouseout = function() {selRow.style.backgroundColor = "transparent"; document.getElementById(lnk).style.display = "none"; };
        }
        if (listmode=='View')
            selRow.onmouseover = function() {selRow.style.backgroundColor = "transparent"; document.getElementById(lnk).style.display = "block"; };
        else
            selRow.onmouseover = function() {selRow.style.backgroundColor = hovercolor; document.getElementById(lnk).style.display = "block"; };
    }
    
        
}

var lnkweetthis;

function tweetthis(lnk, tweetbox, tweetusername, twpwd, savecheck){

    var bsave=0;
    try{
        if(document.getElementById(savecheck).checked == true){
            bsave=1;
        }
    }catch(e){bsave=0;}
    
   
    lnkweetthis=lnk;  
     
    var tweet = document.getElementById(tweetbox).value;
    if (tweet==''){
        alert('Nothing to tweet');
        return false;
    }
    if (document.getElementById(tweetusername).value==''){
        alert('Please enter twitter username.');
        return false;
    }
    if (document.getElementById(twpwd).value==''){
        alert('Please enter twitter password.');
        return false;
    }
   
    document.getElementById(lnk).className= "processing2";
    PageMethods.tweetthisclip(tweet, document.getElementById(tweetusername).value, document.getElementById(twpwd).value, bsave, OntweetComplete);
}

function OntweetComplete(result){
    document.getElementById(lnkweetthis).className= "tweetbutton";
    if(result !='success'){
        alert(result);
        document.getElementById('status').style.display="block";
        document.getElementById('status').innerHTML=result;
        document.getElementById('status').style.color="#AA1111";
        return false;
    }
    
    document.getElementById('status').style.display="block";
    document.getElementById('status').innerHTML='Tweet Sent!';
    document.getElementById('status').style.color="#328F19";
    
    $("#tweetwindow").fadeOut(4000);
}

function showtweet(tweetbox, savecheck){
    document.getElementById('tweetwindow').style.display="block";
   // document.getElementById(tweetbox).value=tweet;
    document.getElementById('remChars').innerHTML = 140 - document.getElementById(tweetbox).value.length;       
    document.getElementById('status').style.display="none";
     try{
        document.getElementById(savecheck).checked=0;
    }catch(e){}
}

function hidetweet(){
    document.getElementById('tweetwindow').style.display="none";
}
function showlogin(divlogin, hypshowlogin, usingbox ){
    document.getElementById(divlogin).style.display="block";  
    document.getElementById(hypshowlogin).style.display="none"; 
    document.getElementById(usingbox).style.display="none";
}

function hideemail(){
    document.getElementById('emailwindow').style.display="none";
}

function showemail(){
    document.getElementById('emailwindow').style.display="block";
}

var emaillnk;
function sendemail(lnk, to, message){
    if (document.getElementById(to).value == ''){
        alert('No email address specified.');
        return false;
    }
    if (document.getElementById(message).value==''){
        alert('No message entered.');
        return false;
    }
    try{
        var url=window.location.toString().toLowerCase();
        url=url.replace("#close=1","");
        var index =url.indexOf("/v/");
        var q = url.substr(index+3, index+15);
        emaillnk=lnk;
        document.getElementById(lnk).className= "processing2";
        PageMethods.EmailThis(document.getElementById(to).value, document.getElementById(message).value, q, OnemailComplete);
    }catch(e){alert(e.message);}
}

function OnemailComplete(result){
    
    document.getElementById(emaillnk).className= "emailbutton";
    if(result !='success'){
        alert(result);
        document.getElementById('emailStatus').style.display="block";
        document.getElementById('emailStatus').innerHTML=result;
        document.getElementById('emailStatus').style.color="#AA1111";
        return false;
    }
    
    document.getElementById('emailStatus').style.display="block";
    document.getElementById('emailStatus').innerHTML='Email Sent!';
    document.getElementById('emailStatus').style.color="#328F19";
    
    $("#emailwindow").fadeOut(4000);
}

function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        } 
    }
    
/*************** END favorite clip  call *********************/

function showEdit(ID, divID){
    var leftpos=getElementPosition(ID).left;    
    document.getElementById(divID).style.left=leftpos + 'px';
    
    document.getElementById(divID).className='showcell popupEdt';
    document.getElementById(divID).style.display="block";
}

function hideEdit(divID){
    document.getElementById(divID).style.display="none";
}


function check(e){
    alert(e);
    var target = (e && e.target) || (event && event.srcElement);
    var obj = document.getElementById(mydiv);
    var obj2 = document.getElementById('sho');
    checkParent(target)?obj.style.display='none':null;
    target==obj2?obj.style.display='block':null;
}

function checkParent(t){
    while(t.parentNode){
        if(t==document.getElementById(mydiv)){
            return false
        }
        t=t.parentNode
    }
    return true
}

//ref: http://bytes.com/topic/javascript/answers/148568-css-javascript-find-absolute-position-element
function getElementPosition(elemID){
    var offsetTrail = document.getElementById(elemID);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail){
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined'){
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    return {left:offsetLeft,top:offsetTop};
}
/*
function showhide(ID, show){
    if(show == true)
    {
        document.getElementById(ID).className='showcell';  
    }else {document.getElementById(ID).className='hidecell';}
}
*/

