function getCurrentPage() {
	var hashloc = parent.location.hash;
	if (hashloc == '') {
		page = 0;
	} else {
		page = parseInt(hashloc.substring(1));
	}
	return page;
}

function getPageSize(def) {
	return def;
}

function paginate(itemCount, currPage, pageSize, containerName, pagePrefixName) {
		
		var numPages = itemCount / pageSize;
		var start = currPage*pageSize;
		var end = currPage*pageSize+pageSize;
		var firstDisabled = (currPage == 0);
		var lastDisabled = (currPage >= numPages-1);

		var pageContainer = '<ul id="pages" class="pages-list">';
		pageContainer += '<li id="';
		pageContainer += pagePrefixName;
		pageContainer += 'page-previous"';
		if (firstDisabled) {
			pageContainer += ' class="disabled"';
		}
		pageContainer += '>&lt; Previous</li>';
		
		
		for (i = 0; i < numPages; i++) {
			if (page == i) {
				pageContainer += '<li class="active" id="';
			} else {
				pageContainer += '<li id="';
			}
			pageContainer += pagePrefixName;
			pageContainer += (i);
			pageContainer += '">';
			pageContainer += (i+1);
			pageContainer += '</li>';
		}
		
		pageContainer += '<li id="';
		pageContainer += pagePrefixName;
		pageContainer += 'page-next"'
		if (lastDisabled) {
			pageContainer += ' class="disabled"';
		}
		pageContainer += '>Next &gt;';
		$(containerName).insert({top: pageContainer});
		return page;
}
	


function getFriends() {
	callMethod("getFriends", 
			   "[]", 
			   function(arr) {
					var friends = '';
					$('friend-count').update("" + arr.length + " friends");
					for (i = 0; i < arr.length; i++) {
						var userId = arr[i][0];
						if (arr[i][5] == false) {
							friends += '<div class="friend"><a href="/dyn/prof/';
							friends += userId;
							if (arr[i][3] != null) {
								friends += '"><img src="/dyn/pic/';
								friends += userId;
								friends += 'm/';
								friends += arr[i][3];
								friends += '" alt="" /><span>';
							} else {
								friends += '"><img src="/images/face1.gif" alt="" /><span>';
							}
							friends += arr[i][1];
							friends += '</span></a></div>\n';
						}
					}		
				
					$('friend-list').update(friends);
			},
			function(error) {
				alert(error);
			}
	);
}

function getMySharedFolders() {
	callMethod("getMySharedFolders", 
			   "[]", 
			   function(arr) {
					var folders = '';
					for (i = 0; i < arr.length; i++) {
						folders += '<div><span class="left"><img src="/images/folder.png" alt="" /><a href="/dyn/ls/';
						folders += arr[i][0];
						folders += '">';
						folders += arr[i][1];
						folders += '</a></span class="right"></span></div>';
					}		
					$('folders-list').update(folders);
			},
			function(error) {
				alert(error);
			}
	);
}

function callMethod(method, parameters, successCallback, errorCallback) {
	new Ajax.Request('/dyn/json/', {
		postBody: '["' + method + '",' + parameters + ']',
		onSuccess: function(transport) {
					if (transport.responseJSON.length != 1) {
						errorCallback(transport.responseJSON[0]);
					} else if (transport.responseJSON[0] instanceof Array) {
						successCallback(transport.responseJSON[0]);
					} else {
						errorCallback(transport.responseJSON[0]);
					}
				}
	});
}

function callStringMethod(method, parameters, successCallback, errorCallback, createCallback ) {
	new Ajax.Request('/dyn/json/', {
		postBody:	'["' + method + '",' + parameters + ']',
	    onCreate:	function() {
						createCallback();
					},
	    onSuccess:	function(transport) {
						successCallback(transport.responseJSON);
					},
	    onFailure:	function() { 
						errorCallback(transport.responseJSON)
					}
	});
}

function userToId(user)
{
	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= .myotherdrive.com";
};

function getByteNotation(bytes) {	
	if (bytes == 0) {
		return '0B';
	} else if (bytes > 1000000000) {
		return (((parseInt(bytes)/1000000000)%1) == 0) ? (parseInt(bytes)/1000000000).toFixed(0) + 'GB' : (parseInt(bytes)/1000000000).toFixed(1) + 'GB';
	} else if (bytes > 1000000) {
		return (((parseInt(bytes)/1000000)%1) == 0) ? (parseInt(bytes)/1000000).toFixed(0) + 'MB' : (parseInt(bytes)/1000000).toFixed(1) + 'MB';
	} else if (bytes > 1000) {
		return (((parseInt(bytes)/1000)%1) == 0) ? (parseInt(bytes)/1000).toFixed(0) + 'KB' : (parseInt(bytes)/1000).toFixed(1) + 'KB';
	} else {
		return (parseInt(bytes)).toFixed(0) + 'B';
	}
};

function openCenteredWindow(url) {
	  var width=950;
	  var height=750;
	  var left = parseInt((screen.availWidth/2) - (width/2));
	  var top = parseInt((screen.availHeight/2) - (height/2));		
	  var windowFeatures = "width=" + width + ",height=" + height + ",status=yes,resizable=yes,directories=no,location=yes,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
	  myWindow = window.open(url, "manageWindow", windowFeatures);
	  return false;
};

function activateChildren(el, activeClass) {
	children = $(el).childElements();
	
	//attach event handlers to each child
	children.each(function(el) {
		el.observe('mouseover', function() {
			el.addClassName(activeClass);
		});
		el.observe('mouseout', function() {
			el.removeClassName(activeClass);
		});
	})		
};

function setRatingState(elementsArr, accessLevel) {	
	//reset rating state
	for (i = 0; i < elementsArr.length; i++)
		elementsArr[i].removeClassName('ls-rating-rated');
	
	if (accessLevel == 1)
		elementsArr[0].addClassName('ls-rating-rated');
	else if (accessLevel == 2)
		elementsArr[1].addClassName('ls-rating-rated');
	else if (accessLevel == 101)
		elementsArr[2].addClassName('ls-rating-rated');
	else if (accessLevel == 1001)
		elementsArr[3].addClassName('ls-rating-rated');
	else if (accessLevel == 5001)
		elementsArr[4].addClassName('ls-rating-rated');
}

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
  var cookie_string = name + "=" + escape ( value );

  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }

  if ( path )
        cookie_string += "; path=" + escape ( path );

  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}

function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}

function trim(sString)
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
} 

function getInternetExplorerVersion() {
	//Returns the version of Internet Explorer or a -1
	//(indicating the use of another browser).
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
	 var ua = navigator.userAgent;
	 var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
	 if (re.exec(ua) != null)
	   rv = parseFloat( RegExp.$1 );
	}
	return rv;
}

function isNumberKey(evt)
{
   var charCode = (evt.which) ? evt.which : event.keyCode
   if (charCode > 31 && (charCode < 48 || charCode > 57))
      return false;

   return true;
}

function getParameter( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function splitOnDelimiters(str) {
    item = "";
    var body = new Array();
    if (str.length > 0) {
        for (var c in str) {
            if ( str.charCodeAt(c) == 10 || str.charCodeAt(c) == 44 || str.charCodeAt(c) == 32 ) {
                if (item.length > 0) body.push(item);
                item = "";
            } else {
                item = item + str[c];
            }
        }
        if (item.length > 0) body.push(item);
        return body;
    }
}

function getFormattedDate(timestamp) {
	var theDate = new Date(timestamp);
	var ampm = 'AM';
	var hour = theDate.getHours();
	if (hour == 0) {
		hour = 12;
	} else if (hour >= 12) {
		ampm = 'PM';
		hour = ( (parseInt(hour) - 12) > 0) ? parseInt(hour) - 12 : 12;
	}
	var minute = theDate.getMinutes();
	if (minute < 10) {
		minute = '0' + minute;
	}
	var tmp = theDate.getMonth();
	var month;
	switch(tmp) {
		case 0: 	month = 'Jan'; break;
		case 1:		month = 'Feb'; break;
		case 2:		month = 'Mar'; break;
		case 3:		month = 'Apr'; break;
		case 4:		month = 'May'; break;
		case 5:		month = 'Jun'; break;
		case 6:		month = 'Jul'; break;
		case 7:		month = 'Aug'; break;
		case 8:		month = 'Sep'; break;
		case 9:		month = 'Oct'; break;
		case 10:	month = 'Nov'; break;
		case 11:	month = 'Dec'; break;		
	}
	var day = theDate.getDate();
	return hour+':'+minute+' '+ampm+' '+month+' '+day;
}

function addSlashes(str) {
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\"/g,'\\"');
	return str;
}