/**
 * ALL SCRIPTS BY RICHARD CACERES <RICHARD-C.COM><RCACERES@UCLA.EDU>
 * FOR LITTLE MINX <LITTLEMINX.TV>
 * WORKING WITH OSK DESIGN <WWW.OSKDESIGN.COM>
 * APRIL 2010
 */


/**
* Return the base URL of the script
*
* @return Base URL
*/
function getBaseURL() {
    // Get document base path
    documentBasePath = document.location.href;
    if (documentBasePath.indexOf('?') != -1) {
            documentBasePath = documentBasePath.substring(0, documentBasePath.indexOf('?'));
    }
    documentBasePath = documentBasePath.substring(0, documentBasePath.lastIndexOf('/'));
    return documentBasePath;
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// favorites functions
var favorites = new Object();
function addFavorite(did, pid, cat) {
    // hide the favorites instructions
    $('#favorites-instructions').hide();

    // ANIMATE :)
    var duration = 3000;
    var distance = 250;
    // calculate the angle to move    
    //var a = $('#fav-' + did).offset();
//    var b = $('#favlink').offset();
    //var a = $("#smallthumb-" + pid).offset();
    var a = $("#dir-" + did + " .favadd").offset();
    var b = $("#favorites").offset();
    var c = $("#dir-" + pid + " .favadd").offset();
    var blen = (b.left - a.left);
    var alen = (b.top - a.top);
    //alert('blen: ' + blen + ' alen: ' + alen);
    //var angleR = Math.atan( blen / alen );
    var angleR = Math.atan2( alen, blen );
    //alert('angleR: ' + angleR);
    var angleD = angleR * 57.29; // rough
    //console.log(angleD);
    //alert('angleD: ' + angleD);
    var deltaL = "+=" + (Math.cos(angleR) * distance);
    //alert('deltaLA: ' + deltaLA + ' deltaTA: ' + deltaTA);
    var deltaT = "+=" + (Math.sin(angleR) * distance);
    
    // $("body").append("<img id='fav-anim' src='/img/fav-small.png'/>");
    // $("#fav-anim").css({
    //     'position': 'absolute',
    //     'left': a.left + "px",
    //     'top': a.top + "px",
    //     'z-index': '9999',
    //     'width': '26px',
    //     'height': '24px'
    // });  
    // $("#fav-anim").animate(
    //     { left: b.left, top: b.top, opacity: 0.0, width: '13px', height: '12px' }, 
    //     duration,
    //     'easeOutExpo',
    //     function() {$(this).remove();}
    // );    

    var bg_src = $("#smallthumb-" + pid).css('background-image');
    var regexp = /url\((.+)\)/;
    var imgsrc = bg_src.replace(regexp, "$1");
    //alert(imgsrc);
    var startleft = a.left;
    var starttop = a.top;

    $("body").append("<div id='fav-anim-"+pid+"'>&nbsp;</div>");
    $("#fav-anim-" + pid).css({
        'position': 'absolute',
        'left': startleft + "px",
        'top': starttop + "px",
        'z-index': '9999',
        'width': '125px',
        'height': '87px',
        'background-image':bg_src,
        'background-repeate': 'none'
    });  
    $("#fav-anim-" + pid).animate(
        { left: deltaL, top: deltaT, opacity: 0.0, width: '125px', height: '87px' }, 
        duration,
        'easeOutExpo',
        function() {$(this).remove();}
    );

    // make sure its not already added
    var exists = false;
    for (var key in favorites) {
        if (key == String(pid)) {
           exists = true;
           break;   
        }
    }
    if (exists == false) {
        favorites[String(pid)] = did;// add it to memory
        renderFavorite(did, pid, cat);// Render it
    }else{
        //alert('Already in favorites!');   
    }
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function renderFavorite(did, pid) {
    //alert('renderFavorite: ' + pid);
    var turl = getBaseURL() + '/main/partial_favorite_icon.php';    
    $.ajax({
        type: "POST",
        url: turl, 
        data: 'pid='+pid+'&did='+did,
        success: function(html){
            $('#favorites-list').append(html);
        }
    });
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function emailfavorites() {
    var paramstr = '';
    for (var key in favorites) {
        paramstr += key + ':' + favorites[key] + '|';
    }
    var url = getBaseURL() + '?favs=' + encodeURI(paramstr);
    window.location = 'mailto:?subject=Little Minx&body=' + encodeURI(url);
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function loadProject(uid, pid, cat) {
    // close all players for good measure
    closeAllPlayers();
    // load a project into this directors project box
    var url =  getBaseURL() + '/main/partial_project.php';
    //$('#dir-' + uid + ' > .projectbox').html('loading<marquee direction="right">...</marquee>');
    $('#dir-' + uid + ' > .projectbox').load(url, {'pid':pid, 'autoplay':'true', 'did':uid, 'cat':cat});
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function showCategory(did, cat) {
    // cat = cat.toLowerCase();
    // var active_projs = new Array();
    // var inactive_projs = new Array();
    // var projs = $('#sl-' + did + ' .project-li').each(function(){
    //     var cats = $(this).attr('cats').split(',');
    //     var found = false; 
    //     for(var i = 0; i < cats.length; i++) {
    //         if(cats[i].toLowerCase() == cat) {
    //             var found = true;
    //             break;
    //         }
    //     }
    //     if (found == true) {
    //         active_projs.push($(this));
    //     } else {
    //         inactive_projs.push($(this));            
    //     }
    // });
    // CHANGE THE + 
    $('#dir-'+did+' .active-category').removeClass('active');
    $('[cat='+cat+']', $('#dir-'+did)).addClass('active');
    
    var url = getBaseURL() + '/main/partial_project_list.php';
    //$('#dir-' + did + ' > .projectlist').html('loading<marquee direction="right">...</marquee>');
    $('#dir-' + did + ' > .projectlist').load(url, {'did':did, 'cat':cat });
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
var movementEnabled = true;
function toggleMovement(){
    movementEnabled = !movementEnabled;
    if(movementEnabled){
        $('#scroll-movement').html("MOVEMENT:ON");
    }else{
        $('#scroll-movement').html("MOVEMENT:OFF");
    }
    return false;
}
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
$(document).ready(function() {
    // setup scrolling navigation
    $('.linkscroll').click(function(e) {
        var target = String($(this).attr('href'));
        scrollToGrid(target, 1000);
        return false;
    });
    // initially scroll to the main menu
    var baseurl = document.location.href;
    if(baseurl.indexOf('favs') > 0) {
        scrollToGrid($('#favorites'), 0);
    } else if(baseurl.indexOf('#') < 0) {
        scrollToGrid('#mainmenu', 0);
    }
    //setup srcoll toggle
    $('#scroll-movement').click(function(e){
        return toggleMovement();
    });
    // change all text areas to have target _blank
    $('.projdesc a').each(function(){
        $(this).attr('target', '_blank');
    });
});
////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\