var xmlDialogHTTP = null;
var xmlDialog = null;
var oDialog = null;
var bDialogLoading = true;
var sPopGuid = null;
var sFollowedClipper = null;
var bBlockWindowOpen = false;
var bNoPop = false;
var bDatabaseWork = true; 
var bFromPop = false;
var sDialogURL = '';

function dialog_load(sDialog, sParams, bNested) {
	ShowLayeredDialog(null, 500, 350, bNested, true);

	var fraDialogLoad = document.getElementById('fraDialogLoad');
	if (!fraDialogLoad) {
		fraDialogLoad = document.createElement('IFRAME');
		fraDialogLoad.id = 'fraDialogLoad';
		fraDialogLoad.setAttribute('name', 'fraDialogLoad');
		fraDialogLoad.style.position = 'absolute';
		fraDialogLoad.style.left = '-1000px';
		fraDialogLoad.style.top = '-1000px';
		fraDialogLoad.style.visibility = 'hidden';
		fraDialogLoad.src = '/dialogs.aspx?d=' + sDialog + (!!sParams ? '&' + sParams : '');
		document.body.appendChild(fraDialogLoad)
		return;
	}
	
	window.frames['fraDialogLoad'].location.href = '/dialogs.aspx?d=' + sDialog + (!!sParams ? '&' + sParams : '');
}

function dialog_popped_open(sGUID, bPop, bFromPopAction) {
	bDialogLoading = true;
	bNoPop = bPop;
	bFromPop = (!!bFromPopAction);

	dialog_load('WhoPopped', 'c=' + sGUID + '&fp=' + bFromPop.toString());
}

function PopDialog() {
	ShowDialog('<b>What is a Pop?</b><br/><br/><div align="left">When a user pops a clip it gets sent to the top of the clipmarks home page for other visitors to see.  This creates a real-time community filter for promoting interesting clips.  To ensure quality information in small portions, only clips that are under 1,000 characters can be popped.</div>', null, null, null, null, null, 190);
}

function BlogOverLimit(sGuid) {
	ShowDialog('<br/>Sorry, this clipmark can not be blogged because it exceeds the publishing limit of 1000 characters.<br/>', null, null, null, null, null, 120);
}

function NoConnectionDialog() {
	var sHTML = '<b>A connection error has occured.</b><br/><br/>Please check your connection and try again.';
	if (bDatabaseWork) { 
		sHTML = '<b>We are currently doing work on the database.</b></b><br/><br/>Please try again in a few minutes.';
	}
	ShowDialog(sHTML, null, null, null, null, null, 180);
}

function ShowLayeredDialog(sHTML, lWidth, lHeight, bNested, bShare) {
	HideScrollbars();
	HideOpenMenus(true);
	
	bNested = !!bNested;
	
	var sDialogID = (!bNested ? 'dvDialogContent' : 'dvDialogNested');
	
	if (!lHeight) {
		lHeight = 352;
	}
	if (!lWidth) {
		lWidth = 700;
	}

	var dvDialogBlackout = CreateIfNone('dvDialogBlackout', 'DIV');
	var dvDialogContent = CreateIfNone(sDialogID, 'DIV');

	dvDialogBlackout.style.height = document.body.scrollHeight + 'px';
	if (!is_opera) {
		dvDialogBlackout.style.display = 'block';
	}
	if (!sHTML) {
		sHTML = '<div align="center" style="padding-top:100px;font-size:13px;color:#999999;vertical-align:middle;">';
		sHTML += '<b>Loading...</b><br/><img src="/images/blue-load.gif" style="margin:10px 13px 50px 10px;" />';
		sHTML += '<br/><a href="javascript:CloseLayeredDialog(' + bNested.toString() + ')" class="CLB">cancel</a>';
		sHTML += '</div>';
	}
	
	dvDialogContent.innerHTML = sHTML;
	
	dvDialogContent.style.width = lWidth + 'px';
	dvDialogContent.style.height = lHeight + 'px';
	dvDialogContent.style.top = parseInt((document.body.clientHeight - lHeight) / 2 - 40 + document.body.scrollTop) + 'px';
	dvDialogContent.style.left = parseInt((document.body.clientWidth - lWidth) / 2) + 'px';
	dvDialogContent.style.display = 'block';
	
	if (bShare) {
		dvDialogContent.style.borderColor = '#999999';
	}
	
}

function CloseLayeredDialog(bNested) {
	var sDialogID = (!bNested ? 'dvDialogContent' : 'dvDialogNested');

	ShowScrollbars();
	if (!bNested) {
		document.getElementById('dvDialogBlackout').style.display='none';
	}
	if (!!document.getElementById(sDialogID)) { 
		document.getElementById(sDialogID).style.display='none';	
	}
}

var iClipperMode, iClipperLimit, sClipperDialogMessage;

function OpenClippers(sUser, iMode, iLimit, sMessage) {

	// assign globals
	iClipperMode = iMode;
	iClipperLimit = iLimit;
	sClipperDialogMessage = sMessage;

	dialog_clippers_open(sUser);
}


function dialog_clippers_open(sUser) {
	bDialogLoading = true;
	xmlDialogHTTP = CreateXMLHTTP();
	
	if (!xmlDialogHTTP) {
		alert('Browser Not Supported');
		return;
	}

	sFollowedClipper = sUser;

	ShowLayeredDialog(null);

	var sLimit = '';
	
	if (iClipperLimit > 0) {
		sLimit = '&l=' + iClipperLimit;
	}

	if (iClipperMode == 1) {
		// followers
		xmlDialogHTTP.open('GET', '/feed_dialog.aspx?clippers=1' + sLimit + '&u=' + sUser, true);
	} else if (iClipperMode == 2) {
		// clipper list
		xmlDialogHTTP.open('GET', '/feed_dialog.aspx?clippers=2' + sLimit + '&u=' + sUser, true);
	}
	
	xmlDialogHTTP.onreadystatechange = dialog_clippers_XMLStateChange;
	xmlDialogHTTP.send(null);
}

function dialog_clippers_XMLStateChange() {
	if (xmlDialogHTTP.readyState != 4) {
		return;
	}

	if (!xmlDialogHTTP.responseXML) { 
		return; 
	}	
	
	if (xmlDialogHTTP.responseXML && xmlDialogHTTP.responseXML.documentElement) {
		xmlDialog = xmlDialogHTTP.responseXML.documentElement;
		dialog_clippers_load();
		bDialogLoading = false;
	} else {
		//xmlDialogHTTP.abort();
	}
	
}

function dialog_clippers_load() {
	
	var oChannel;
	oChannel = xmlDialog.childNodes[0];
	
	var oClipper;
	var oTag;
	var sTopTagString = '';
	var sTopTags;
	var oClippers = oChannel.getElementsByTagName('clipper');
    var ct = 0;

	var sClippers = '';

	var objMessage = CreateIfNone('dvDialogContent', 'DIV');

	var bShowMore = false;
	var iTotal = 0;
	
	bKeepDialogOpen = true;

	sClippers += '<table width="100%" cellpadding="4" cellspacing="0"><tr><td width="45%" valign="top" style="border: none;">';

	// card here

	var sLocation = '<i>unknown</i>';
	var sUser = oChannel.getAttribute("username");
	var sPoppedAverage = '';
	var sPopsAverage = '';
	var fPopped = 0;
	var fPops = 0;

	iTotal = oChannel.getAttribute('clippers-' + iClipperMode + '-total');

	if (parseInt(oChannel.getAttribute('clippers-' + iClipperMode + '-total')) > parseInt(oChannel.getAttribute("clippers-limit"))) {
		bShowMore = true;
	}

	if (oChannel.getAttribute("location") != '') { sLocation = oChannel.getAttribute("location"); }	
	
	var sImg = '/images/user-no-photo-small-trans.gif';

	if (oChannel.getAttribute('has-photo') == 1) {
		sImg = '/profile/small/' + oChannel.getAttribute('guid') + '.png';
	}

	sClippers += '<div class="CardWrap" style="margin: 12px; width: 300px; border: solid 2px #dcdcdc; border-color: #f5f5f5 #dcdcdc #dcdcdc #f5f5f5; background: #ffffff;">';
	
	sClippers += '<div class="CardHeader"><table cellpadding="0" cellpadding="0" width="98%"><tr><td width="40" align="right" style="padding: 4px 0px;"><a href="/clipper/' + sUser + '/"><img src="' + sImg + '" alt="" border="0" /></a></td><td class="CardHeaderUser" style="padding: 4px 0px;">&nbsp;<a href="/clipper/' + sUser + '/" style="font-size: 18px;" class="CLB">' + sUser + '</a></td></tr></table></div>';

	sClippers += '<div class="CardMember">';
	sClippers += 'Location: ' + sLocation + '<br/>';
	sClippers += 'Joined: ' + oChannel.getAttribute("date-created") + '<br/>';
	sClippers += '</div>';

    var sAbout = trim(oChannel.getAttribute("about-me"));
    
    sClippers += '<div style="height: 82px; overflow: hidden; margin: 12px 10px 8px 10px; font-size: 11px; line-height: 16px;">';
	if (sAbout.length > 0) {
	    sClippers += '<div style="color: #666666;"><b>About ' + sUser + ':</b></div>';	
	    sClippers += sAbout;
	}
	sClippers += '</div>';
	
	sClippers += '</div>';
	sClippers += '</div>';
	sClippers += '<div style="margin: 10px 10px 8px 10px;" align="center">';
	
	var sFollowUrl = 'PostFollowUser(\'' + sUser + '\', true, \'' + oChannel.getAttribute("is-followed") + '\');';
	var sFollowImg = 'add-clipper-big.png';
	var sFollowLabel = 'Add to';

	if (oChannel.getAttribute("is-followed") == '1') {
		sFollowUrl = 'ShowDialog(\'<br/>You are already following <b>' + sUser + '</b>.\')';
		sFollowImg = 'in-my-clippers-big.png';
		sFollowLabel = 'In';
	} else if (!bAuth) {
		sFollowUrl = 'CloseLayeredDialog();LoginPrompt(\'follow\', ExchangeUrl())';
		sFollowLabel = 'Login to add to';
	}

	if (sUser != sAuthName) {
		sClippers += '<a href="javascript:' + sFollowUrl + '"><img src="/images/' + sFollowImg + '" width="197" height="50" style="margin: 6px 0px;" border="0" /></a>';
	}
		
	sClippers += '</div>';

	if (sClipperDialogMessage) { 
		sClippers += '<div style="text-align: center; font-size: 12px;">' + sClipperDialogMessage + '</div>';
	} else {
		if (bAuth) {
			sClippers += '<div style="text-align: center; font-size: 13px;"><b><a href="/clipper/' + encodeURI(sAuthName) + '/clippers/" class="CLB">Go to My Guides Page</a></b></div>';
		} else {
			sClippers += '<div style="text-align: center; font-size: 14px;"><b><a href="/clipper/' + encodeURI(sUser) + '/" class="CLB">go to ' + sUser + '\'s page</a></b></div>';
		}
	}
	
	// end card
	
	sClippers += '</td><td width="55%" valign="top" style="border: none;">';
	
	var sLinkClass1 = 'TabAct';
	var sLinkClass2 = 'Tab';
	if (iClipperMode == 2) {
		sLinkClass1 = 'Tab';
		sLinkClass2 = 'TabAct';	
	}
	
	var sC1 = '';
	var sC2 = '';

	if (parseInt(oChannel.getAttribute("clippers-1-total")) > 0) {
		sC1 = '(' + oChannel.getAttribute("clippers-1-total") + ')';
	}
	
	if (parseInt(oChannel.getAttribute("clippers-2-total")) > 0) {
		sC2 = '(' + oChannel.getAttribute("clippers-2-total") + ')';
	}
	
	sClippers += '<div class="Bar">';
	
	sClippers += '<table cellpadding="0" cellspacing="0" width="100%"><tr><td class="' + sLinkClass1 + '" valign="bottom">';
	sClippers += '<a href="javascript:OpenClippers(\'' + sUser + '\', 1, 50);">Followers ' + sC1 + '</a>';
	sClippers += '</td><td class="' + sLinkClass2 + '" valign="bottom">';
	sClippers += '<a href="javascript:OpenClippers(\'' + sUser + '\', 2, 50);" class="' + sLinkClass2 + '">Guides ' + sC2+ '</a>';
	sClippers += '</td></tr></table>';
	sClippers += '</div>';

	sClippers += '<div class="Inner">';
	if (oClippers.length == 0) {
		if (iClipperMode == 1)  {
			sClippers += '<div style="text-align:center;color:#666666;font-size:13px;"><br/><br/><br/><br/>No one is yet following ' + sUser + '\'s clips...<br/><br/><br/><b><a href="javascript:' + sFollowUrl + '" class="CLB" style="font-size: 15px;">Be the First</a></b></div>';
		} else if (iClipperMode == 2) {
			sClippers += '<div style="text-align:center;color:#666666;font-size:13px;"><br/><br/><br/><br/>No one has yet been added to <br/>' + sUser + '\'s Guides.<br/><br/></div>';	
		}
	} else {
		sClippers += '<table cellpadding="0" cellspacing="0" width="100%">';
		for (i = 0; i < oClippers.length; i++) {
			if (oClippers[i]) {
				oClipper = oClippers[i];
				sClippers += '<tr>'; 
				var sSrc = '';
				if (oClipper.getAttribute('has-photo') == 1) {
					sSrc = '/profile/small/' + oClipper.getAttribute('guid') + '.png';
				} else {
					sSrc = '/images/user-no-photo-small-trans.gif';
				}
				var sPos = (iTotal - i) + '.';
				sClippers += '<td class="Pos" style="width: 24px">' + sPos + '</td>';
				sClippers += '<td class="Img" height="36"><a href="/clipper/' + encodeURI(oClipper.getAttribute('name').replace(/ /mig, '+')) + '/"><img src="' + sSrc + '" border="0" /></a></td>';
				sClippers += '<td class="Clp"><nobr>';
				sClippers += '<a href="/clipper/' + encodeURI(oClipper.getAttribute('name').replace(/ /mig, '+')) + '/" onclick="return UnloadCC()" onmouseover="OpenCC(\'' + oClipper.getAttribute('name') + '\', false, true)" onmouseout="CloseCC()" class="CLB">' + oClipper.getAttribute('name') + '</a>';
				if (oClipper.getAttribute('friend') == 1) {
					sClippers += '<img src="/images/icons/two-way.png" border="0" title="ClipMates! These users are following each other\'s clips." />';
				}
				sClippers += '</nobr></td>';
				sClippers += '<td class="Dte" style="font-size: 10px">' + oClipper.getAttribute('date') + '</td>';
				sClippers += '</tr>';  
				ct++;
			}
		}
		sClippers += '</table>';
		if (bShowMore) {
			sClippers += '<div style="padding: 10px; text-align: center;"><a href="javascript:OpenClippers(\'' + sUser + '\', ' + iClipperMode + ');" class="CLB">view all</a></div>';
		}
	}

	sClippers += '</div></td>';
	sClippers += '</tr></table>';

	var sPerson = 'users are';
	if (oClippers.length == 1) { sPerson = 'user is'; }
	
	var sHTML = '<div class="FeaturedWrap" style="padding-top: 10px;">';
	sHTML += '<div>' + sClippers +  '</div>';
	sHTML += '<div align="center" style="margin-top: 4px; font-size: 20px;"><b><a href="javascript:CloseLayeredDialog();" class="CLB">close</a></b></div>';
	sHTML += '</div>';
	
	objMessage.innerHTML = sHTML;
	objMessage.style.background = '#fafafa';
}


function ShareDialog(bEdit, sClipGuid, sTtl, bUnderLimit, sOwner){
	
	sTtl = sTtl.replace(/\'/g,'\\\'');
			
	var sPerm = 'http://clipmarks.com/clipmark/' + sClipGuid;
	var sParams = unescape('\'' + stripUnsafe(sPerm, 1) + '\',\'' + stripUnsafe(sTtl, 1) + '\',\'\',\'\''); 

	var sHTML = '<div class="ShareDialog"><table width="100%" class="O" cellpadding="8" cellspacing="0" align="center">';
	
	sHTML += '<tr><td width="64%" valign="top"><h1>Share this clip</h1>';
	
	sHTML += '<table class="I" cellspacing="0" cellpadding="6" width="230"><tr><td width="50%" valign="top" class="MoreOptions">';

	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'digg\',' + sParams + ')"><img src="/images/share/digg.png" width="16" height="16" alt="" border="0" />DIGG</a>';
	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'facebook\',' + sParams + ')"><img src="/images/share/fcbk.png" width="16" height="16" alt="" border="0" />FACEBOOK</a>';
	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'mixx\',' + sParams + ')"><img src="/images/share/mixx.png" width="16" height="16" alt="" border="0" />MIXX</a>';
	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'twit\',' + sParams + ')"><img src="/images/share/twitter.png" width="16" height="16" alt="" border="0" />TWITTER</a>';

	sHTML += '</td><td width="50%" class="MoreOptions" valign="top">';

	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'stumble\',' + sParams + ')"><img src="/images/share/stumble.png" width="16" height="16" alt="" border="0" />STUMBLE</a>';
	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'del\',' + sParams + ')"><img src="/images/share/del.png" width="16" height="16" alt="" border="0" />DEL.ICIO.US</a>';
	sHTML += '<a href="javascript:void(0);" onclick="BkmkIt(\'ffeed\',' + sParams + ')"><img src="/images/share/ffeed.png" width="16" height="16" alt="" border="0" />FRIENDFEED</a>';
	sHTML += '<a href="' + sPerm + '"><img src="/images/share/link.png" width="16" height="16" alt="" border="0" />PERMALINK</a>';
	
	sHTML += '</td></tr><tr><td colspan="2" align="center" style="padding: 0px;">';

	sHTML += '<a href="javascript:OpenBookmarkOptions(\'' + sPerm + '\',\'' + sTtl + '\',\'\',\'\', true)" style="margin-bottom: 0px; padding-bottom: 0px; font-size: 11px;">more</a>';
	
	sHTML += '</td></tr></table>';
	
	sHTML += '</td><td width="36%" class="MoreOptions" style="padding-top: 10px;"><div style="margin-bottom: 4px;"><b>More actions:</b></div>';
	
	sHTML += '<a href="javascript:void(0);" onclick="OpenFunctionWindow(\'EMAIL\', \'' + sClipGuid + '\', true, false);"><img src="/images/share/email.png" alt="Email" border="0" width="16" height="16" />email</a>';
	if (bUnderLimit) {
		sHTML += '<a href="javascript:void(0);" onclick="OpenFunctionWindow(\'BLOG\', \'' + sClipGuid + '\', true, false);"><img src="/images/share/blog.png" alt="Blog" border="0" width="16" height="16" />blog</a>';
	}	
	sHTML += '<a href="javascript:void(0);" onclick="OpenFunctionWindow(\'PRINT\', \'' + sClipGuid + '\', true, false);"><img src="/images/share/print.png" alt="Print" border="0" width="16" height="16" />print</a>';
	if (bAuth) {
		sHTML += '<a href="javascript:void(0);" onclick="OpenFolderWindow(' + bEdit + ', \'' + sClipGuid + '\');"><img src="/images/share/folder.png" alt="Folders" border="0" width="16" height="16" />add to folder</a>';
	}
	
	sHTML += '</td></tr>';
	sHTML += '</table></div>';
	
	sHTML += '<div style="margin: 4px 0px 4px 0px; padding-top: 8px; border-top: solid 1px #e5e5e5; font-size: 14px;" align="center"><b><a href="javascript:CloseLayeredDialog();" class="CLB">close</a></b></div>';
		
	ShowLayeredDialog(sHTML, 440, 224, false, true);
}


function OpenFolderWindow(bEdit, sClipGuid){
	
	var sPerm = 'http://clipmarks.com/clipmark/' + sClipGuid;

	var sHTML = '<div class="ShareDialog" style="padding: 10px 16px;">';
	
	sHTML += '<div style="font-size: 14px; margin-bottom: 8px;"><b>Add this clip to a folder</b></div>';

	if (bAuth) { 
				
		sCollectionsURL = '/feed_collections.aspx?root=true&clip=' + sClipGuid;
		collections_open();
	
		sHTML += '<div style="border: solid 2px #dcdcdc; overflow: auto; height: 126px; margin: 12px 0px;" id="dvShareClipcasts">' + collections_get_all(false) + '</div>'; 	
		
		sHTML += '<div style="float: right; margin: 4px 10px; font-size: 12px; line-height: 16px; vertical-align: middle;"><b><a href="javascript:void(0);" onclick="collection_new(true);" class="CLB"><img src="/images/share/folder_new.png" alt="New Folder" border="0" width="16" height="16" style="margin-right: 4px; vertical-align: middle;" />New folder</a></b></div>';

		sHTML += '<div style="margin-top: 8px;">';
		sHTML += '<input type="button" name="btnSaveFolder" value="Save" onclick="share_save_collections();CloseLayeredDialog();" style="font-weight: bold;" />&nbsp; ';
		sHTML += '<input type="button" name="btnCancelFolder" value="Cancel" onclick="CloseLayeredDialog();" />&nbsp; ';
		sHTML += '</div>';		
		
	} 

	sHTML += '</div>';
	
		
	ShowLayeredDialog(sHTML, 440, 224, false, true);
}

function share_save_collections() {
	var sCollectionID = '';
	var bOneChecked = false;

	for (i = 0; i < oCollections.length; i++) {
		sCollectionID = oCollections[i].getAttribute('id');
		if (document.getElementById('aClipCollection' + sCollectionID).getAttribute('checked') == 'true') {
			bOneChecked = true;
		}
	}

	if (!bOneChecked) {
		if (!confirm('Are you sure you don\'t want this clip included in any of your folders?')) {
			return false;
		}
	} else if (document.getElementById('aClipCollectionfldr').getAttribute('checked') != 'true' && setting_get('show_main_clipcast_hint', '1') == '1') {
		dialog_load('RemoveMainClipCast', null, true);
		return;
	}
	
	collection_all_save();
}
