﻿
/*================================================================
 
    JavaScript routines written by Peter Deppe
 
================================================================== */

/*---------------------------------------------------------------
description : variables to be used throughout the scripts
----------------------------------------------------------------- */
var FSTPATH = 'http://www.thetinderbox.org/app/';
var HOSTPATH = 'http://www.thetinderbox.org/host/';
var COOKIENAME = 'fstTinderbox';
var REGISTERURL_REPLACE = '##REGISTERURL##';
var SV = 'nodata';
var DEBUG = false;
var STAR_IMAGE_PATH = FSTPATH + "images/ratings/";
var DO_RATINGS = false;
var DO_COMMENTS = false;
var SIGN_IN_BAR = 'fstSigninBar';
var _CW_PREFIX = 'fstCW';

var URL_COMPLAINT = FSTPATH + 'complaint.aspx';
 
/* session pages */
var URL_GETSESSION = FSTPATH + 'public/getsession.aspx';
var URL_VALIDATESESSION = FSTPATH + 'public/validatesession.aspx';
var URL_SIGNIN = FSTPATH + 'public/signin_horiz.htm';
var URL_SIGNIN_PROPER = FSTPATH + 'signin.aspx';
var URL_SIGNOUT = FSTPATH + 'signout.aspx';
var URL_SIGNUP = FSTPATH + 'register.aspx';

var URL_GETSIGNINBOX = FSTPATH + "callbacks/sessions/getsigninbox.aspx";
var URL_PROCESSSIGNIN = FSTPATH + "callbacks/sessions/processsignin.aspx";

/* ratings */
var URL_ADDRATING = FSTPATH + 'callbacks/ratings/adduserrating.aspx';
var URL_GETUSERRATING = FSTPATH + 'callbacks/ratings/getuserrating.aspx';

/* blogs */
var URL_GETCOMMENTBOX = FSTPATH + 'public/addcomment.htm';
var URL_ADDBLOGPOSTCOMMENT = FSTPATH + 'callbacks/addblogpostcomment.aspx';
var URL_ADDTHREADMESSAGE = FSTPATH + 'callbacks/addthreadmessage.aspx';
var URL_ARCHIVEBLOGPOST = FSTPATH + 'callbacks/general/archiveblogpost.aspx';

/* categories */
var URL_ADDCAT = FSTPATH + 'callbacks/addcompanycategory.aspx';
var URL_DELCAT = FSTPATH + 'callbacks/deletecompanycategory.aspx';
var URL_GETNODES = FSTPATH + 'callbacks/getcategorynodes.aspx';

/* company */
var URL_COMPANYLOGO = FSTPATH + 'callbacks/setcompanylogo.aspx'

/* video */
var URL_GETVIDEOLIST = FSTPATH + 'callbacks/video/getuservideolist.aspx';
var URL_GETVIDEO = FSTPATH + 'callbacks/video/getvideo.aspx';
var URL_UPLOADPROGRESS;

/* user */
var URL_PRIMARYUSERIMAGE = FSTPATH + 'callbacks/setprimaryuserimage.aspx';
var URL_PROFILE = FSTPATH + 'callbacks/getuserprofile.aspx';
var URL_REMOVECONTACT = FSTPATH + 'callbacks/general/removecontact.aspx';

/* register */
var URL_VALIDATESN = FSTPATH + 'callbacks/general/doesscreennameexist.aspx';
var URL_VALIDATEEM = FSTPATH + 'callbacks/general/doesemailexist.aspx';

/* comments */
var URL_ADDCOMMENT = FSTPATH + 'callbacks/comments/addcomment.aspx';

/* dashboard widgets */
var URL_GETWIDGET = FSTPATH + 'callbacks/widgets/getwidgetcontent.aspx';
var URL_UPDATE_DASHBOAD_COLS = FSTPATH + 'callbacks/widgets/updatedashboardcolumns.aspx';
var URL_ADDUSERWIDGET = FSTPATH + 'callbacks/widgets/adduserwidget.aspx';
var URL_ADDUSERRSSWIDGET = FSTPATH + 'callbacks/widgets/addrsswidget.aspx';
var URL_ADDUSERMESSAGEWIDGET = FSTPATH + 'callbacks/widgets/addmessagewidget.aspx';
var URL_REMOVEUSERWIDGET = FSTPATH + 'callbacks/widgets/deletedashboardwidget.aspx';

/* sortable lists */
var URL_UPDATESORTLIST = FSTPATH + 'callbacks/updatesortorder.aspx';

/* messages */
var URL_ADD_REPLY_MESSAGE = FSTPATH + 'callbacks/messages/addreplymessage.aspx';

/* content widget */
var URL_GETCONTENTWIDGET = FSTPATH + 'callbacks/contentwidget.aspx';

/* rss feeds*/
var URL_GETRSSFEEDS = FSTPATH + 'callbacks/widgets/getrssfeedsforselection.aspx';

/* gadgets */
var URL_GETEXTERNALGADGETS = FSTPATH + 'callbacks/widgets/getexternalgadgetsforselection.aspx';
var URL_ADDEXTERNALGADGET = FSTPATH + 'callbacks/widgets/addexternalgadget.aspx';

/*---------------------------------------------------------------
name        : fst_PublicInit()
description : Initializes all prototype functions
----------------------------------------------------------------- */
function fst_PublicInit()
{    
	//fst_GetSession();
	
	if(DO_RATINGS == true)
	{
		fst_RatingsInit();
	}
		
	if(DO_COMMENTS == true)
	{
		fst_CommentsInit();
	}
	
	fst_HideLoader();
}

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_HelpMe(section)
{
    var url = FSTPATH + "help/index.aspx";
    if(section != '')
    {
        url += "?section=" + section;
    }
    window.open(url,'FireStarterHelp','width=600,height=460,resizable=no,scrollbars=yes,toolbar=no,status=no,menubar=no');
}

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_CloseHelp()
{
    window.close();
}

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_HideShowMessage(evt)
{
    if($('addmessage'))
    {
        var obj = $('addmessage');
             
        if(obj.className == 'hidden')
        {
            obj.className = 'visible';
        }
        else
        {
            obj.className = 'hidden';
        }
    }
}

/*---------------------------------------------------------------
name        : fst_HideError()
description : 
----------------------------------------------------------------- */
function fst_HideError(obj)
{
    if($(obj))
    {
        $(obj).style.visibility = 'hidden';
    }
}

/*---------------------------------------------------------------
name        : fst_ShowError()
description : 
----------------------------------------------------------------- */
function fst_ShowError(obj,msg)
{
    if($(obj))
    {
        $(obj).innerHTML = msg;
        $(obj).style.visibility = 'visible';
    }
}

/*---------------------------------------------------------------
name        : fst_RefreshPage
description : 
----------------------------------------------------------------- */
function fst_RefreshPage()
{
    window.location.reload( false );
}

/*---------------------------------------------------------------
name        : fst_NotAvailable
description : 
----------------------------------------------------------------- */
function fst_NotAvailable()
{
	alert('Feature not yet available');
}

/*---------------------------------------------------------------
name        : fst_ShowPhoto
description : 
----------------------------------------------------------------- */
function fst_ShowPhoto(imageID)
{
	var url = "previewphoto.aspx?i=" + imageID;
	var winRef = window.open( url, "userphoto");
	winRef.focus()
}

/*---------------------------------------------------------------
name        : fst_ShowLoader
description : 
----------------------------------------------------------------- */
function fst_ShowLoader()
{
    if($('fstLoader'))
    {
	    $('fstLoader').style.display = 'block';
	}
}

/*---------------------------------------------------------------
name        : fst_HideLoader
description : 
----------------------------------------------------------------- */
function fst_HideLoader()
{
    if($('fstLoader'))
    {
	    $('fstLoader').style.display = 'none';
	}
}

/*---------------------------------------------------------------
name        : fst_ShowImage
description : 
----------------------------------------------------------------- */
function fst_ShowImage()
{
    if($('logo'))
    {
	    var imageDiv = $('logo');
	    var fileObject = $('filUpload');

	    // create the new image object
	    var newImage = document.createElement('img');
	    newImage.setAttribute('src', fileObject.value);
	    newImage.setAttribute('alt', 'Logo');
    				
	    // remove any children from the image div
	    imageDiv.removeChild(imageDiv.firstChild);
	    imageDiv.appendChild(newImage);
	}
}

/*---------------------------------------------------------------
name        : fst_PrintPage
description : 
----------------------------------------------------------------- */
function fst_PrintPage()
{
	window.print();
}

/*---------------------------------------------------------------
name        : fst_EmailPage
description : 
----------------------------------------------------------------- */
function fst_EmailPage()
{
	var who = '[email]';
	var what = 'This might be of interest to you: ' + document.title;
	var link = window.location.href;
	var body = document.title + '  \r\n' + link;
	parent.location.href = 'mailto:' + who + '?subject=' + what + '&body=' + body;
}

/*---------------------------------------------------------------
name        : fst_BookmarkPage
description : 
----------------------------------------------------------------- */
function fst_BookmarkPage()
{
	var urlAddress = window.location.href;
	var pageName = document.title;
	
	if (window.external)
	{
		window.external.AddFavorite(urlAddress,pageName)
	} 
	else
	{
		alert("Sorry, your browser doesn't support this function.");
	}		
}

/*---------------------------------------------------------------
name        : fst_PrintPage
description : 
----------------------------------------------------------------- */
function fst_DoComplaint(type,itemid)
{
	var uri = location.href;
	
	if(DEBUG) { alert(type + ', ' + itemid + ', ' + uri); }
		
	window.location = URL_COMPLAINT + '?type=' + type + '&item=' + itemid + '&url=' + uri + "#cmt" + itemid;
}

    
/*---------------------------------------------------------------
name        : fst_CWHShowTab()
description : Shows the tab referenced by the id and hides all others
----------------------------------------------------------------- */
function fst_CWHShowTab(type)
{
    fst_CWHideTabs(type);
    var id = $('fstSel' + type).options[$('fstSel' + type).selectedIndex].value;   
    $(_CW_PREFIX + 'L' + id).style.visibility = 'visible';
    $(_CW_PREFIX + 'L' + id).style.display = 'block';
}

/*---------------------------------------------------------------
name        : fst_CWHideTabs()
description : Loops through all Content Widget links with the given
            : class name and hides them
----------------------------------------------------------------- */
function fst_CWHideTabs(type)
{
    var cwTabs = $$('.' + _CW_PREFIX + 'L' + type);
        
    if(cwTabs != null)
    {
        for (var i = 0; i < cwTabs.length; i++)
        {
            cwTabs[i].style.visibility = 'hidden';
            cwTabs[i].style.display = 'none';
        }
    }
}

/*---------------------------------------------------------------
name        : fst_CWResetSelectedTab()
description : Updates the class of the currently selected tab
----------------------------------------------------------------- */
function fst_CWResetSelectedTab(type)
{
    var cwSelectdTab = $$('.' + _CW_PREFIX + 'T' + type + '_SEL');
            
    if(cwSelectdTab != null)
    {
        for (var i = 0; i < cwSelectdTab.length; i++)
        {
            cwSelectdTab[i].className = _CW_PREFIX + 'T' + type;
        }
    }
}

/*---------------------------------------------------------------
name        : fst_ConfirmDeleteMessage
description : 
----------------------------------------------------------------- */
function fst_ConfirmDeleteMessage()
{
    return confirm("Are you sure you want to delete this message?");
}

/*---------------------------------------------------------------
name        : fst_ConfirmArchiveMessage
description : 
----------------------------------------------------------------- */
function fst_ConfirmArchiveMessage()
{
    return confirm("Are you sure you want to archive this message?");
}

/*---------------------------------------------------------------
name        : fst_GetSelectedRadioItem
description : 
----------------------------------------------------------------- */
function fst_GetSelectedRadioItem(rdoObject)
{
    if(DEBUG) { alert('start: fst_GetSelectedRadioItem'); }
    
	if(!rdoObject)
	{
	    return "";
	}
	
	if(DEBUG) { alert('check 1'); }
	
	var radioLength = rdoObject.length;
	
	if(radioLength == undefined)
	{
		if(rdoObject.checked)
		{
			return rdoObject.value;
		}
		else
		{
			return "";
        }
    }
    
    if(DEBUG) { alert('check 2'); }
    	
	for(var i = 0; i < radioLength; i++)
	{
		if(rdoObject[i].checked)
		{
			return rdoObject[i].value;
		}
	}
	
	if(DEBUG) { alert('finish: fst_GetSelectedRadioItem'); }
	
	return "";
}

