// NINRemixes.com Javascript source by Kethinov

// utility functions
function getNode(node) {
	return document.getElementById(node);
}

function newNode(node) {
	return document.createElement(node);
}

function newText(txt) {
    return document.createTextNode(txt);
}

function getAbsoluteY(element) {
    var pos = 0;
    while (element != null) {
        pos += element.offsetTop;
        element = element.offsetParent;
    }
    return pos;
}

function getAbsoluteX(element) {
    var pos = 0;
    while (element != null) {
        pos += element.offsetLeft;
        element = element.offsetParent;
    }
    return pos;
}

function isEven(x) {
	return (x % 2) ? false : true;
}

function isOdd(x) {
	return !isEven(x);
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

function removeChildren(cell) {
	if (cell.hasChildNodes()) while (cell.childNodes.length >= 1) cell.removeChild(cell.firstChild);
}

document.getElementsByClassName = function(clsName) {
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].className.indexOf(" ") >= 0) {
            var classes = elements[i].className.split(" ");
            for (var j = 0; j < classes.length; j++) if (classes[j] == clsName) retVal.push(elements[i]);
        }
        else if (elements[i].className == clsName) retVal.push(elements[i]);
    }
    return retVal;
}

// generic function for setting cookies
function setcookie(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=/';
}

// generic function for getting the value of a cookie
function getcookie(name) {
    var cookie_array = document.cookie.split(';');
    for(var i = 0; i < cookie_array.length; i++) {
        var c = cookie_array[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf((name + '=')) == 0) return c.substring((name + '=').length,c.length);
    }
    return null;
}

// crossbrowser xml http request engine
function getHTTPObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E) {
            xmlhttp = false;
        }
    }
    @else
    xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e) {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}

function httpRequest(url) {
    http.open('GET', url, true);
    http.onreadystatechange = function() {
   	    if (http.readyState == 4) {
   	    	eval(http.responseText);
   	    }
    }
    http.send(null);
}

function httpPost(url, params) {
	http.open('POST', url, true);
	http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	http.setRequestHeader('Content-length', params.length);
	http.setRequestHeader('Connection', 'close');
    http.onreadystatechange = function() {
   	    if (http.readyState == 4) {
   	    	eval(http.responseText);
   	    }
    }
	http.send(params);
}

function wait(millis)  {
	var date = new Date();
	var curDate = null;
	do {
		curDate = new Date();
	}
	while (curDate - date < millis);
}

String.prototype.trim = function() {
    var string = this;
    while (string.charAt(0) == ' ') string = string.substring(1, string.length); // remove leading spaces
	while (string.charAt(string.length - 1) == ' ') string = string.substring(string, string.length - 1); // remove trailing spaces
    return string;
}


// NINRemixes.com specific functions

function tagSong(e) {
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
	if (!window.ActiveXObject) var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth;
	else {
		if (document.documentElement.clientWidth) var viewportWidth = document.documentElement.clientWidth; // ie6 hack
		else var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth; // ie5
	}
//    alert(code);
    if ((viewportWidth > 320 && code == 13) || (viewportWidth <= 320 && code == 10)) if (getNode('tagBox').value.trim() != '') httpRequest('tagsong.php?db='+getNode('detailsDbid').firstChild.nodeValue+'&song='+getNode('detailsSongid').firstChild.nodeValue+'&tags='+getNode('tagBox').value);
}

function playmp3(songid, db, fileLoc) {
	if (!window.ActiveXObject) var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth;
	else {
		if (document.documentElement.clientWidth) var viewportWidth = document.documentElement.clientWidth; // ie6 hack
		else var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth; // ie5
	}

	if (viewportWidth < 350 && getNode('detailsContainer').style.display != 'block') songDetailsPreprocessor(songid, db);
	else {

		if (viewportWidth >= 500) {
		    if (getNode(lastiframeid)) {
		        getNode(lastiframeid).setAttribute('src', '');
		        getNode('mp3player').removeChild(getNode(lastiframeid));
		        if (lastid) getNode('songcontent'+'_'+lastdb+'_'+lastid).style.display = 'block';
		    }
		    var container = getNode('mp3player');
		    iframe = newNode('iframe');
		    iframe.setAttribute('id', 'iframe'+'_'+db+'_'+songid);
		    iframe.setAttribute('src', 'mp3player.php?song='+songid+'&db='+db);
		    iframe.setAttribute('width', '100%');
		    iframe.setAttribute('height', '38px');
		    iframe.setAttribute('border', '0');
		    iframe.setAttribute('frameBorder', '0');
		    container.appendChild(iframe);
		    lastid = songid;
		    lastdb = db;
		    lastiframeid = 'iframe'+'_'+db+'_'+songid;
		}
		else {
			httpRequest('/download.php?whichdb='+db+'&whichsong='+fileLoc+'&downloadpref=donothing');
			window.location = '/mp3s/'+fileLoc;
		}
	}
}

function ratingOver(thisstar, thissong, db) {
    for (var i = 0; i < 10; i++) oldstarsrc[i] = getNode('star'+'_'+db+'_'+i+'song'+thissong).src;
    for (var i = 0; i <= thisstar; i++) {
        if (i == 0) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = ratingstar_yellow_firsthalf.src;
        if (i != 0 && isOdd(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = ratingstar_yellow_secondhalf.src;
        if (i != 0 && isEven(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = ratingstar_yellow_firsthalf.src;
    }
    for (var i = (thisstar + 1); i < 10; i++) {
        if (i == 0) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = ratingstar_gray_firsthalf.src;
        if (i != 0 && isOdd(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = ratingstar_gray_secondhalf.src;
        if (i != 0 && isEven(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = ratingstar_gray_firsthalf.src;
    }
}

function ratingOut(thisstar, thissong, db) {
    for (var i = 0; i < 10; i++) if (oldstarsrc[i]) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = oldstarsrc[i];
}

function sratingOver(thisstar, thissong, db) {
    for (var i = 0; i < 10; i++) oldstarsrc[i] = getNode('star'+'_'+db+'_'+i+'song'+thissong).src;
    for (var i = 0; i <= thisstar; i++) {
        if (i == 0) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = sratingstar_yellow_firsthalf.src;
        if (i != 0 && isOdd(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = sratingstar_yellow_secondhalf.src;
        if (i != 0 && isEven(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = sratingstar_yellow_firsthalf.src;
    }
    for (var i = (thisstar + 1); i < 10; i++) {
        if (i == 0) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = sratingstar_gray_firsthalf.src;
        if (i != 0 && isOdd(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = sratingstar_gray_secondhalf.src;
        if (i != 0 && isEven(i)) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = sratingstar_gray_firsthalf.src;
    }
}

function sratingOut(thisstar, thissong, db) {
    for (var i = 0; i < 10; i++) if (oldstarsrc[i]) getNode('star'+'_'+db+'_'+i+'song'+thissong).src = oldstarsrc[i];
}

function ratingVote(thisstar, thissong, db) {
    for (var i = 0; i < 10; i++) if (oldstarsrc[i]) oldstarsrc[i] = null;
    httpRequest('starvote.php?rating='+(thisstar + 1)+'&song='+thissong+'&db='+db);
}

function hoverMp3(item) {
	var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth;
	if (viewportWidth >= 350) {
		hoverOldColor = getNode('song_'+item).style.backgroundColor;
		getNode('song_'+item).style.backgroundImage = 'url('+hoverImg.src+')';
		getNode('song_'+item).style.backgroundPosition = 'center right';
		getNode('song_'+item).style.backgroundRepeat = 'no-repeat';
		getNode('download_'+item).style.backgroundColor = '#b4b4b4';
		getNode('song_'+item).style.backgroundColor = '#b4b4b4';
		getNode('rating_'+item).style.backgroundColor = '#b4b4b4';
		getNode('info_'+item).style.backgroundColor = '#b4b4b4';
	}
}

function unhoverMp3(item) {
	getNode('song_'+item).style.backgroundImage = 'none';
	getNode('download_'+item).style.backgroundColor = hoverOldColor;
	getNode('song_'+item).style.backgroundColor = hoverOldColor;
	getNode('rating_'+item).style.backgroundColor = hoverOldColor;
	getNode('info_'+item).style.backgroundColor = hoverOldColor;
}

function fillSearchDefault() {
	if (!getNode('squery').value) getNode('squery').value = defaultSearchText;
	if (getNode('squery2')) if (!getNode('squery2').value) getNode('squery2').value = defaultSearchText;
}

function clearSearchDefault() {
	if (getNode('squery').value == defaultSearchText) getNode('squery').value = '';
	if (getNode('squery2')) if (getNode('squery2').value == defaultSearchText) getNode('squery2').value = '';
}

function scaleSite() {
	if (!window.ActiveXObject) var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth;
	else {
		if (document.documentElement.clientWidth) var viewportWidth = document.documentElement.clientWidth; // ie6 hack
		else var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth; // ie5
	}
	//getNode('squery').value = viewportWidth; // debug mode

//1095 - 925 = 170
//1095 = -links, -visuals, +more
//932+170 1102 = live radio
//868+170 1038 = articles
//804+170 974 = news
//740+170 910 = shoutbox
//676+170 846 = submit
//782
//718

	if (viewportWidth < 1095) {
		getNode('nav_visuals').style.display = 'none';
		getNode('nav_links').style.display = 'none';
		getNode('nav_more').style.display = 'inline';
	} else {
		getNode('nav_visuals').style.display = 'inline';
		getNode('nav_links').style.display = 'inline';
		getNode('nav_more').style.display = 'none';
	}
	if (viewportWidth < 1031) getNode('nav_shoutcast').style.display = 'none';
	else getNode('nav_shoutcast').style.display = 'inline';

	if (viewportWidth < 967) getNode('nav_articles').style.display = 'none';
	else getNode('nav_articles').style.display = 'inline';

	if (viewportWidth < 903) getNode('nav_shoutbox').style.display = 'none';
	else getNode('nav_shoutbox').style.display = 'inline';

	if (viewportWidth < 839) getNode('nav_news').style.display = 'none';
	else getNode('nav_news').style.display = 'inline';

    if (viewportWidth < 775) getNode('nav_account').style.display = 'none';
	else getNode('nav_account').style.display = 'inline';

	if (viewportWidth < 711) getNode('nav_about').style.display = 'none';
	else getNode('nav_about').style.display = 'inline';

	if (viewportWidth < 647) getNode('nav_submit').style.display = 'none';
	else getNode('nav_submit').style.display = 'inline';

	if (viewportWidth < 583) getNode('nav_rating').style.display = 'none';
	else getNode('nav_rating').style.display = 'inline';

	if (viewportWidth < 600) if (getNode('songsperpage')) getNode('songsperpage').style.display = 'none';
	else if (getNode('songsperpage')) getNode('songsperpage').style.display = 'inline';

	if (viewportWidth < 692) {
		if (getNode('detailsContainer')) {
			if (getNode('detailsContainer').style.display == 'block') {
				getNode('remixesContainer').style.display = 'none';
				getNode('infoContainer').style.display = 'none';
			}
		}
	    if (getNode('infoContainer')) getNode('infoContainer').style.display = 'none';
	    if (getNode('remixesContainer')) getNode('remixesContainer').style.width = viewportWidth+'px';
		if (getNode('detailsPermalinkContainer')) getNode('detailsPermalinkContainer').style.display = 'none';
	} else {
		if (getNode('remixesContainer')) getNode('remixesContainer').style.width = '384px';
		if (getNode('detailsContainer')) {
			if (getNode('detailsContainer').style.display == 'block' || getNode('loadingBox').style.display == 'block') {
				if (getNode('infoContainer')) {
					getNode('remixesContainer').style.display = 'block';
					//getNode('frontPageBlurbLogo').style.display = 'none';  //this was removed, apparently - nympholept
					getNode('infoContainer').style.display = 'none';
				}
			}
			else if (getNode('infoContainer')) {
				getNode('infoContainer').style.display = 'block';
				getNode('infoContainer').style.width = viewportWidth - getNode('remixesContainer').offsetWidth + 'px';
				if (window.ActiveXObject) getNode('infoContainer').style.width = viewportWidth - getNode('remixesContainer').offsetWidth - 20 + 'px'; // ie5 hack
			}
			if (getNode('detailsPermalinkContainer')) getNode('detailsPermalinkContainer').style.display = 'block';
		}
	}

	if (viewportWidth < 520) {
		getNode('squery').style.display = 'none';
		if (getNode('secondsearch')) getNode('secondsearch').style.display = 'block';
		if (getNode('subheaderExtras')) getNode('subheaderExtras').style.display = 'none';
		getNode('footer').style.display = 'none';
	    if (getNode(lastiframeid)) {
	        getNode(lastiframeid).setAttribute('src', '');
	        getNode('mp3player').removeChild(getNode(lastiframeid));
	        if (lastid) getNode('songcontent'+'_'+lastdb+'_'+lastid).style.display = 'block';
	    }
	    if (getNode('sortforms')) {
	    	getNode('sortforms').style.display = 'none';
	    	getNode('justshowcurrentsettings').style.display = 'block';
	    }
	} else {
		getNode('squery').style.display = 'inline';
		if (getNode('secondsearch')) getNode('secondsearch').style.display = 'none';
		if (getNode('subheaderExtras')) getNode('subheaderExtras').style.display = 'block';
		getNode('footer').style.display = 'block';
	    if (getNode('sortforms')) {
	    	getNode('sortforms').style.display = 'block';
	    	getNode('justshowcurrentsettings').style.display = 'none';
	    }
	}

	if (viewportWidth < 350) {
	    var downloads = document.getElementsByTagName('a');
	    for (var i = 0; i < downloads.length; i++) if (downloads[i].className == 'downloadButton') downloads[i].style.display = 'none';
	    var stars = document.getElementsByTagName('div');
	    for (var i = 0; i < stars.length; i++) if (stars[i].className == 'remixListStarRating') {
	    	stars[i].style.display = 'none';
	    	stars[i].parentNode.style.width = '1px';
	    }
	    if (!window.ActiveXObject) window.location = '#iPhoneAddressBarHack';
	} else {
 	    var downloads = document.getElementsByTagName('a');
	    for (var i = 0; i < downloads.length; i++) if (downloads[i].className == 'downloadButton') downloads[i].style.display = 'inline';
	    var stars = document.getElementsByTagName('div');
	    for (var i = 0; i < stars.length; i++) if (stars[i].className == 'remixListStarRating') {
	    	stars[i].style.display = 'inline';
	    	stars[i].parentNode.style.width = '100px';
	    }
	}

	// resize mp3 player to use all available width
	if (getNode('mp3player')) {
		if (getNode('sortforms')) {
			getNode('mp3player').style.width = viewportWidth - getAbsoluteX(getNode('submitbutton')) - getNode('submitbutton').offsetWidth - 10 + 'px';
			getNode('mp3player').style.right = '0px';
		}
		else {
			getNode('mp3player').style.width = viewportWidth - getNode('singleSongDownloadButton').offsetWidth - getNode('singleSongPlayButton').offsetWidth - getNode('singleStars').offsetWidth - 20 + 'px'
			getNode('mp3player').style.right = getNode('singleStars').offsetWidth + 'px'
		}
	}

	if (getNode('detailsContainer')) getNode('detailsContainer').style.width = viewportWidth - getNode('remixesContainer').offsetWidth + 'px';
	if (window.ActiveXObject) {
		if (getNode('detailsContainer') && getNode('remixesContainer').style.display == 'block') getNode('detailsContainer').style.width = viewportWidth - 420 + 'px'; // ie6 hack
		else if (getNode('detailsContainer')) getNode('detailsContainer').style.width = viewportWidth - 20 + 'px'; // ie6 hack
	}

	if (getNode('singleSong')) {
		getNode('remixesContainer').style.display = 'none';
		getNode('detailsContainer').style.width = '100%';
		if (window.ActiveXObject) getNode('detailsContainer').style.width = viewportWidth - 20 + 'px'; // ie6 hack
	}
	getNode('body').style.visibility = 'visible';

    if (permalinkMode) {
        getNode('detailsContainer').style.display='inline';
        getNode('infoContainer').style.display='none';
    }
}

var tagBoxDefaultText = 'tag1, tag2, tag3, etc';

function songDetailsPreprocessor(songId, songDb) {
	window.scrollTo(0,0);
	if (!window.ActiveXObject) var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth;
	else {
		if (document.documentElement.clientWidth) var viewportWidth = document.documentElement.clientWidth; // ie6 hack
		else var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth; // ie5
	}
	if (viewportWidth < 770) window.location = 'index.php?db='+songDb+'&id='+songId;
	if (viewportWidth >= 770) songDetails(songId, songDb);
}

function songDetails(songId, songDb) {
	if (!window.ActiveXObject) var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth;
	else {
		if (document.documentElement.clientWidth) var viewportWidth = document.documentElement.clientWidth; // ie6 hack
		else var viewportWidth = document.getElementsByTagName('body')[0].offsetWidth; // ie5
	}

	if (viewportWidth < 770) {
		getNode('infoContainer').style.display = 'none';
		getNode('remixesContainer').style.display = 'none';
		getNode('loadingBox').style.left = '10px';
	}

	//getNode('frontPageBlurbLogo').style.display = 'none'; // ie5 hack

	// ie5 hack
	if (!window.ActiveXObject) {
		getNode('infoContainer').style.display = 'none';
		getNode('detailsContainer').style.display = 'none';
	}
	getNode('loadingBox').style.display = 'block';
	getNode('tagBox').style.display='none';
	getNode('tagBox').value = tagBoxDefaultText;
	getNode('wantToTag').style.display='block';
	httpRequest('getinfo.php?db='+songDb+'&song='+songId);
}

function showMainBlurb() {
	getNode('detailsContainer').style.display = 'none';
	getNode('infoContainer').style.display = 'block';
	//getNode('frontPageBlurbLogo').style.display = 'block';
}

function fadedPopup(width, height, content, title) {
	if (!dom.get('faded_popup')) {
		var newff = newNode('div');
		newff.id = 'faded_popup';
		newff.className = 'window';
		var newtitlebar = newNode('div');
		newtitlebar.className = 'window_titlebar';
		var newtitle = newNode('strong');
		newtitle.id = 'faded_popup_title';
		newtitle.className = 'faded_popup_title';
		var newtext = newText(' ');
		newtitle.appendChild(newtext);
		newtitlebar.appendChild(newtitle);
		var newx = newNode('img');
		newx.src = 'images/windowx.png';
		newx.setAttribute('alt', 'X');
		newx.setAttribute('title', 'Close Window');
		newx.className = 'window_close';
		newx.id = 'faded_popup_close';
		newtitlebar.appendChild(newx);
		var newcontent = newNode('div');
		newcontent.id = 'faded_popup_content';
		newff.appendChild(newtitlebar);
		newff.appendChild(newcontent);
		document.getElementsByTagName('body')[0].appendChild(newff);
	}

    last_popup = content;
    var overlay = newNode('div');
    overlay.id = 'window_overlay';
    overlay.style.position = 'fixed';
    overlay.style.top = '0px';
    overlay.style.left = '0px';
    overlay.style.width = '100%';
    overlay.style.height = '100%';
    overlay.style.backgroundImage = "url('images/blackalpha.png')";
    dom.get('faded_popup').style.display = 'block';
    dom.get('faded_popup_title').firstChild.nodeValue = title;
    content.style.display = 'block';
    dom.get('faded_popup').style.width = width+'px';
    dom.get('faded_popup').style.height = height+'px';
    dom.get('faded_popup').style.margin = '-'+(height/2)+'px 0px 0px -'+(width/2)+'px';
    dom.get('faded_popup').appendChild(content);
    overlay.appendChild(dom.get('faded_popup'));
    document.getElementsByTagName('body')[0].appendChild(overlay);
    if (dom.get('faded_popup_close')) events.addListener(dom.get('faded_popup_close'), 'click', function() {
        dom.get('window_overlay').style.display = 'none';
        last_popup.style.display = 'none';
        dom.get('faded_popup').style.display = 'none';
        document.getElementsByTagName('body')[0].appendChild(dom.get('faded_popup'));
        document.getElementsByTagName('body')[0].appendChild(last_popup);
        dom.get('window_overlay').parentNode.removeChild(dom.get('window_overlay'));
        events.removeListener(dom.get('faded_popup_close'), 'click');
    });
}

// global variables
var permalinkMode = null;
var lastid = null;
var lastdb = null;
var iframe = null;
var lastiframeid = null;
var oldstarsrc = new Array(10);

var http = getHTTPObject();

var hoverImg = new Image();
hoverImg.src = 'images/itunes_play.gif';
var hoverOldColor;
var defaultSearchText = 'Search Music';

var ratingstar_gray_firsthalf = new Image();
ratingstar_gray_firsthalf.src = 'images/ratingstar_gray_firsthalf.gif';
var ratingstar_gray_secondhalf = new Image();
ratingstar_gray_secondhalf.src = 'images/ratingstar_gray_secondhalf.gif';
var ratingstar_blue_firsthalf = new Image();
ratingstar_blue_firsthalf.src = 'images/ratingstar_blue_firsthalf.gif';
var ratingstar_blue_secondhalf = new Image();
ratingstar_blue_secondhalf.src = 'images/ratingstar_blue_secondhalf.gif';
var ratingstar_yellow_firsthalf = new Image();
ratingstar_yellow_firsthalf.src = 'images/ratingstar_yellow_firsthalf.gif';
var ratingstar_yellow_secondhalf = new Image();
ratingstar_yellow_secondhalf.src = 'images/ratingstar_yellow_secondhalf.gif';

var sratingstar_gray_firsthalf = new Image();
sratingstar_gray_firsthalf.src = 'images/sratingstar_gray_firsthalf.gif';
var sratingstar_gray_secondhalf = new Image();
sratingstar_gray_secondhalf.src = 'images/sratingstar_gray_secondhalf.gif';
var sratingstar_blue_firsthalf = new Image();
sratingstar_blue_firsthalf.src = 'images/sratingstar_blue_firsthalf.gif';
var sratingstar_blue_secondhalf = new Image();
sratingstar_blue_secondhalf.src = 'images/sratingstar_blue_secondhalf.gif';
var sratingstar_yellow_firsthalf = new Image();
sratingstar_yellow_firsthalf.src = 'images/sratingstar_yellow_firsthalf.gif';
var sratingstar_yellow_secondhalf = new Image();
sratingstar_yellow_secondhalf.src = 'images/sratingstar_yellow_secondhalf.gif';

var dom = YAHOO.util.Dom;
var events = YAHOO.util.Event;
var con = YAHOO.util.Connect;
var last_popup = null;
