// Profile Javascript

var Favorites = {
	 addEvent: function(elm, evType, fn, useCapture) {
		 if (elm.addEventListener) {
			 elm.addEventListener(evType, fn, useCapture);
			 return true;
		 } else if (elm.attachEvent) {
			 var r = elm.attachEvent('on' + evType, fn);
			 return r;
		 } else {
			 elm['on' + evType] = fn;
		 }
	 },

	setRecommendation: function(entry, value) {
		if (value == undefined || value == '') value = 3;
		var url = ratingURL + '?entry_id=' + entry + ';value=' + value;
		var myAjax = new Ajax.Updater( 'recommended' , url, {
			onLoading: function(request) { Favorites.recommendation_loading(entry) },
			onComplete: function(request) { Favorites.recommendation_added(entry) },
			asynchronous: true,
			method: 'get'} );
	},
	
	recommendation_loading: function(entry) {
		var prog = 'progress_recommend_' + entry;
		try {
			new Effect.Appear(prog);
		} catch (e) {}
	},
	
	recommendation_added: function(entry) {
		var prog = 'progress_recommend_' + entry;
		try {
			new Effect.Fade(prog);
		} catch (e) {}
		
		txt = recommendedText;
		var div_rectext = 'ratetext_' + entry;
		var div_recvotes = 'ratevotes_' + entry;

		if (!document.getElementById(div_recvotes)) {
			txt += ' (1)';
		} else {
			var votes = document.getElementById(div_recvotes).innerHTML;
			votes = parseInt(votes) + 1;
			document.getElementById(div_recvotes).innerHTML = votes;		
			new Effect.Highlight(div_recvotes);
		}
		
		document.getElementById(div_rectext).innerHTML = txt;
		new Effect.Highlight(div_rectext);
	
	},
	
	createCookie: function(name,value,days) {
        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=/";
	},

	readCookie: function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++)
        {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
	},

	eraseCookie: function(name) {
        Favorites.createCookie(name,"",-1);
	},

	init: function() {
		var img = document.getElementsByTagName("img");
		for (x=0;x<img.length;x++) {
			if (img[x].className && img[x].className == 'rating') {
				Event.observe(img[x], 'mousemove', Favorites.starRating, true);
				Event.observe(img[x], 'mouseout', Favorites.clearRating, false);
				Event.observe(img[x], 'click', Favorites.sendRating, false);
			}
		}
	},
	
	starRating: function(e) {
		var elem = Event.element(e);
		var positions = Position.cumulativeOffset(elem);
		var offsetX = Event.pointerX(e) - positions[0];
		var elemWidth = Element.getWidth(elem);
		if (!elem.getAttribute('oldsrc')) elem.setAttribute('oldsrc', elem.getAttribute('src'));
		src = elem.src.substring(0, elem.src.lastIndexOf('/'));
		elem.setAttribute('src', src + '/star_' + Math.ceil((offsetX/elemWidth)*5) + '.gif');
	},
	
	clearRating: function(e) {
		var elem = Event.element(e);
		if (elem.getAttribute('oldsrc')) {
			elem.setAttribute('src', elem.getAttribute('oldsrc'));
		}
	},
	
	sendRating: function(e) {
		var elem = Event.element(e);
		var positions = Position.cumulativeOffset(elem);
		var offsetX = Event.pointerX(e) - positions[0];
		var elemWidth = Element.getWidth(elem);
		var rating = Math.ceil((offsetX/elemWidth)*5);
		entry = elem.id.replace(/ratevotes_/, '');
		var url = ratingURL + '?entry_id=' + entry + ';value=' + rating;
		var myAjax = new Ajax.Updater( 'recommended' , url, {
			asynchronous: true,
			method: 'get'} );
			
		src = elem.src.substring(0, elem.src.lastIndexOf('/'));
		elem.setAttribute('src', src + '/star_' + Math.ceil((offsetX/elemWidth)*5) + '_red.gif');

		Event.stopObserving(elem, 'mousemove', Favorites.starRating, true);
		Event.stopObserving(elem, 'mouseout', Favorites.clearRating, false);
		Event.stopObserving(elem, 'click', Favorites.sendRating, false);
	}
	
};


req = null;
function getCommenterName() {
	cValue = "";
	dc = document.cookie;
	cookies = dc.split(";");
	for (x=0;x<cookies.length;x++) {
		if (cookies[x].match(/commenter_name=/)) {
		cValue = cookies[x].replace(/commenter_name=/, "");
		}
	}
	if (cValue.length>1) {
		return unescape(cValue);
	} else {
		return "";
	}
}

function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

var Favorites = {
	 addEvent: function(elm, evType, fn, useCapture) {
		 if (elm.addEventListener) {
			 elm.addEventListener(evType, fn, useCapture);
			 return true;
		 } else if (elm.attachEvent) {
			 var r = elm.attachEvent('on' + evType, fn);
			 return r;
		 } else {
			 elm['on' + evType] = fn;
		 }
	 },

	setRecommendation: function(entry, value) {
		if (value == undefined || value == '') value = 3;
		var url = ratingURL + '?entry_id=' + entry + ';value=' + value;
		var myAjax = new Ajax.Updater( 'recommended' , url, {
			onLoading: function(request) { Favorites.recommendation_loading(entry) },
			onComplete: function(request) { Favorites.recommendation_added(entry) },
			asynchronous: true,
			method: 'get'} );
	},
	
	recommendation_loading: function(entry) {
		var prog = 'progress_recommend_' + entry;
		try {
			new Effect.Appear(prog);
		} catch (e) {}
	},
	
	recommendation_added: function(entry) {
		var prog = 'progress_recommend_' + entry;
		try {
			new Effect.Fade(prog);
		} catch (e) {}
		
		txt = recommendedText;
		var div_rectext = 'ratetext_' + entry;
		var div_recvotes = 'ratevotes_' + entry;

		if (!document.getElementById(div_recvotes)) {
			txt += ' (1)';
		} else {
			var votes = document.getElementById(div_recvotes).innerHTML;
			votes = parseInt(votes) + 1;
			document.getElementById(div_recvotes).innerHTML = votes;		
			new Effect.Highlight(div_recvotes);
		}
		
		document.getElementById(div_rectext).innerHTML = txt;
		new Effect.Highlight(div_rectext);
	
	},
	
	createCookie: function(name,value,days) {
        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=/";
	},

	readCookie: function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++)
        {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
	},

	eraseCookie: function(name) {
        Favorites.createCookie(name,"",-1);
	},

	init: function() {
		var img = document.getElementsByTagName("img");
		for (x=0;x<img.length;x++) {
			if (img[x].className && img[x].className == 'rating') {
				Event.observe(img[x], 'mousemove', Favorites.starRating, true);
				Event.observe(img[x], 'mouseout', Favorites.clearRating, false);
				Event.observe(img[x], 'click', Favorites.sendRating, false);
			}
		}
	},
	
	starRating: function(e) {
		var elem = Event.element(e);
		var positions = Position.cumulativeOffset(elem);
		var offsetX = Event.pointerX(e) - positions[0];
		var elemWidth = Element.getWidth(elem);
		if (!elem.getAttribute('oldsrc')) elem.setAttribute('oldsrc', elem.getAttribute('src'));
		src = elem.src.substring(0, elem.src.lastIndexOf('/'));
		elem.setAttribute('src', src + '/star_' + Math.ceil((offsetX/elemWidth)*5) + '.gif');
	},
	
	clearRating: function(e) {
		var elem = Event.element(e);
		if (elem.getAttribute('oldsrc')) {
			elem.setAttribute('src', elem.getAttribute('oldsrc'));
		}
	},
	
	sendRating: function(e) {
		var elem = Event.element(e);
		var positions = Position.cumulativeOffset(elem);
		var offsetX = Event.pointerX(e) - positions[0];
		var elemWidth = Element.getWidth(elem);
		var rating = Math.ceil((offsetX/elemWidth)*5);
		entry = elem.id.replace(/ratevotes_/, '');
		var url = ratingURL + '?entry_id=' + entry + ';value=' + rating;
		var myAjax = new Ajax.Updater( 'recommended' , url, {
			asynchronous: true,
			method: 'get'} );
			
		src = elem.src.substring(0, elem.src.lastIndexOf('/'));
		elem.setAttribute('src', src + '/star_' + Math.ceil((offsetX/elemWidth)*5) + '_red.gif');

		Event.stopObserving(elem, 'mousemove', Favorites.starRating, true);
		Event.stopObserving(elem, 'mouseout', Favorites.clearRating, false);
		Event.stopObserving(elem, 'click', Favorites.sendRating, false);
	}
	
};

function resizeImages() {
	if ($('topStories')) {
		var	topStoryImages = $('topStories').getElementsBySelector('img');
		for (var i=0;i<topStoryImages.length;i++) {
			if ((topStoryImages[i].height > 70) || (topStoryImages[i].style.height > 70)) {
				topStoryImages[i].style.height = '70px';
				var newWidth = (70 / topStoryImages[i].height) * topStoryImages[i].width;
				topStoryImages[i].style.width = newWidth + 'px';
			
				if (newWidth < 86.6) {
					topStoryImages[i].up('.topStoryImg').style.width = newWidth + 'px';
				}
				new Effect.Appear(topStoryImages[i]);
			}
		}
	}
	
	if ($('main')) {
 		var	blogImages = $('main').getElementsBySelector('img');
		var enclImg = $('main').getElementsBySelector('.mt-enclosure-image');
		
	
		for (var i=0;i<blogImages.length;i++) {
			if (blogImages[i].width > 570) {
				blogImages[i].style.marginLeft = '0px';
				blogImages[i].style.width = '570px';
				blogImages[i].style.height = (570 / blogImages[i].width) * blogImages[i].height;
			}
		}
	}
}


var ts = 0; // total stories count
var fsi = 0; // The first story to be displayed

function topStories(inst) {
	
	if (inst == "start") {
		fsi = 0; 

		arrowNext = $('topStoriesNext');
		arrowPrevious = $('topStoriesPrev');

		x = $('topStories').childNodes;
		storieslist = new Array();

		for (i=0; i < x.length; i++) {

			if (x[i].className == "topStory") { 
				storieslist[ts] = x[i].id;
				ts++;
			}
		}
	}

	if (storieslist.length > 2) {
		if (inst == "previous" && fsi != 0) { fsi--; }
		if (inst == "next" && (fsi < (storieslist.length - 2))) { fsi++; }

		lsi = fsi + 2; // Last comment index

		hiddenStories = storieslist.slice();
		hiddenStories.splice(fsi,2);

		for (b=0; b < hiddenStories.length; b++) {
			$(hiddenStories[b]).style.display="none";
		}

		if (fsi == 0) { 
			arrowPrevious.removeClassName('on');
			arrowNext.addClassName('on');
		}

		if (fsi > 0 && fsi < (storieslist.length - 2)) {
			arrowPrevious.addClassName('on');
			arrowNext.addClassName('on');
		}

		if (fsi == (storieslist.length - 2)) { 
			arrowPrevious.addClassName('on');
			arrowNext.removeClassName('on');
		}

	} else {

		lsi = storieslist.length;

	}
	
	for (c=fsi; c < (lsi); c++) {
		$(storieslist[c]).style.display="block";
	}
	
	resizeImages();
	
	return false;
}


function showTabs(content) {
	var contents = $('mostBox').getElementsBySelector('.tabContents');
	var tabs = $('mostBox').getElementsBySelector('li.sidebarTab');
	
	for (var i=0;i<contents.length;i++) {
		if (contents[i] == $('tab-'+ content + '-content')) {
			contents[i].style.display = 'block';
			tabs[i].addClassName('active');
		} else {
			contents[i].style.display = 'none';
			tabs[i].removeClassName('active');
		}
	}
}

// Copyright (c) 1996-1997 Athenia Associates.
// http://www.webreference.com/js/
// License is granted if and only if this entire
// copyright notice is included. By Tomer Shiran.

function setCookie (name, value, expires, path, domain, secure) {
      var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires : "") +
          (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
      document.cookie = curCookie;
  }

function getCookie (name) {
    var prefix = name + '=';
    var c = document.cookie;
    var nullstring = '';
    var cookieStartIndex = c.indexOf(prefix);
    if (cookieStartIndex == -1)
        return nullstring;
    var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1)
        cookieEndIndex = c.length;
    return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function deleteCookie (name, path, domain) {
    if (getCookie(name))
        document.cookie = name + "=" + ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function fixDate (date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0)
        date.setTime(date.getTime() - skew);
}

function rememberMe (f) {
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    now = now.toGMTString();
    if (f.author != undefined)
       setCookie('mtcmtauth', f.author.value, now, '/', '', '');
    if (f.email != undefined)
       setCookie('mtcmtmail', f.email.value, now, '/', '', '');
    if (f.url != undefined)
       setCookie('mtcmthome', f.url.value, now, '/', '', '');
}

function forgetMe (f) {
    deleteCookie('mtcmtmail', '/', '');
    deleteCookie('mtcmthome', '/', '');
    deleteCookie('mtcmtauth', '/', '');
    //f.email.value = 'guest@fashionista.com';
    //f.author.value = '';
    //f.url.value = '';
}

function fieldDefault(target,text,clear) {
	if (clear) {
		clear = clear;
	} else { 
		clear = 0; 
	}
	
	field = $(target);
	
	if (field.value == '') {
		field.addClassName('fieldDefault');
		field.value = text;
	} else if (field.value == text) {
		
		if (clear == 1) {
			field.value = '';
			field.removeClassName('fieldDefault');
		}	
		
	} else if ( (field.value != '') && (getCookie('mtcmtauth') != text) ) {
		field.removeClassName('fieldDefault');
	}
}

function prepareComments(override) {
	if (getCookie("mtcmtauth") != '') {
		document.comments_form.author.value = getCookie("mtcmtauth");
	} else if (document.comments_form.author.value == '') {
		document.comments_form.author.value = 'guest';
	}
	document.comments_form.url.value = getCookie("mtcmthome");
	
	if ((user.length>0) && (override != 'logout')) {
		$('accountCommentForm').show();
		var override = '';
	} else if (getCookie("mtcmtauth") || (override == 'logout')) { 
		document.comments_form.bakecookie.checked = true;
		$('basicCommentForm').show();
		var override = '';
	} else {
		$('accountLoginForm').show();
	}
	
	fieldDefault('comment-author','guest');
}

function toggleCommentForm(active) {
	if (active == 'basicCommentForm') {
		if (user.length>0) {
			$('accountLoginForm').hide();
			$('accountCommentForm').show();
			
			$('commentText_account').value = $('commentText').value;
			//previewCommentBody('account');
			//previewComment();
		} else {
			$('accountCommentForm').hide();
			$('accountLoginForm').show();
		}
		$('basicCommentForm').hide();
	}	else {
		$('accountCommentForm').hide();
		$('accountLoginForm').hide();
		$('basicCommentForm').show();	
		
		$('commentText').value = $('commentText_account').value;
		//previewCommentBody();
		//previewComment();
	}
	
}

function validateComment(f) {
	if (f.author == '') {
		f.author = 'guest';
	}
	if (f.bakecookie.checked) { 
		rememberMe(f); 
	} else { 
		forgetMe(); 
	}	
}

function previewCommentBody(type) {
	if ($('commentPreview').style.display == 'none') { 
		new Effect.BlindDown('commentPreview');
	}

	if(type == 'account') {
		var text = $('commentText_account').value;
	} else {
  	var text = $('commentText').value;
	}

	text = text.replace(/\n\n/, '<br /><br />');
  splitText = text.split(/\n/);
  var textPrev = $('previewBody');
  var i = 0;
  textPrev.innerHTML = '';
  for(i = 0; i < splitText.length; i++) {
    if(splitText[i].length > 0 ) {
      textPrev.innerHTML += splitText[i] + "<br />";
    }
  }
}

function previewComment(type) {
	if ($('commentPreview').style.display == 'none') { 
		new Effect.BlindDown('commentPreview');
	}
	if (type == 'account') {
		var name = getCommenterName();
		var url = '';
	} else {
		var name = $('comment-author').value;
		var url = $('comment-url').value;
	}

	var authPrev = $('previewAuthor');
	if (url) {
		authPrev.innerHTML = '<a href="' + url + '">' + name + '</a>';
	} else {
		authPrev.innerHTML = name;
	}
}