mtvbar = new function () {
/* Public Variables */

/* Private Variables */
var site = 'http://www.mtv.com/';
var root = 'http://www.mtv.com/widgets/assets/';
var search = "Search All of MTV.com";

var params = {
head: {
},
foot_leftcol: {
'MTV': 'http://www.mtv.com',
'MTV2': 'http://www.mtv2.com',
'MTVtr3s': 'http://www.mtvtr3s.com/',
'MTVU': 'http://www.mtvu.com',
'img': 'http://mp3.rhapsody.com/?pcode=via&amp;cpath=mtv_web&amp;rsrc=mtv_textnavtour |rhapsody.gif|Rhapsody',
'MTV Shop': 'http://shop.mtv.com/',
'Think': 'http://think.mtv.com/'
},
foot_midcol: {
},
foot_rightcol: {
},
foot_bottom: {
'MTV Labs': 'http://labsblog.mtv.com/',
'MTV Jobs': 'https://jobhuntweb.viacom.com/jobhunt/main/jobhome.asp',
'Advertising Opportunities': 'http://adspecs.mtvn.com/site/mtv/mtv.html',
'Terms of Use': 'http://www.mtv.com/sitewide/legal/terms.jhtml',
'Privacy Policy/Your CA Privacy Rights': 'http://www.mtv.com/sitewide/legal/privacy.jhtml',
'Copyright Compliance Policy': 'http://www.mtv.com/sitewide/legal/copyright_compliance.jhtml',
'Community Guidelines': 'http://www.mtv.com/sitewide/legal/community_guidelines.jhtml',
'User Content Submission Agreement': 'http://www.mtv.com/sitewide/legal/user_content.jhtml',
'Social Project Privacy Policy': 'http://www.socialproject.com/PrivacyPolicy.html',
'Social Project Terms of Use': 'http://www.socialproject.com/TermsOfUse.html'
},
search: "on",
footer: "on",
theme: "",
cobrand: {display: false}
};
var container = createDiv({id: "mtv_head"});
var bar = createDiv({id: "mtv_bar"});
var foot = createDiv({id: "mtv_foot"});

/* MSN Code Lookup (ORDER IS IMPORTANT!!) */
var msnCodes = {
'cmt.com':	'VCM001',
'sarahsilverman.comedycentral.com':	'VCM022',
'southpark.comedycentral.com':	'VCM023',
'menciablog.comedycentral.com':	'VCM082',
'comedycentral.com/motherload':	'VCM036',
'comedycentral.com':	'VCM002',
'logoonline.com':	'VCM003',
'think.mtv.com':	'VCM032',
'vmtv.com':	'VCM042',
'buzzworthy.mtv.com':	'VCM046',
'iamonmtv.com':	'VCM048',
'shortcircuitz.mtv.com':	'VCM049',
'engagedblog.mtv.com':	'VCM076',
'girlsgonepunkblog.mtv.com':	'VCM077',
'hatsblog.mtv.com':	'VCM078',
'headbangersblog.mtv.com':	'VCM079',
'inferno3blog.mtv.com':	'VCM080',
'labsblog.mtv.com':	'VCM081',
'moviesblog.mtv.com':	'VCM083',
'multiplayerblog.mtv.com':	'VCM084',
'pimpmyride.mtv.com':	'VCM085',
'remotecontrol.mtv.com':	'VCM086',
'scarredblog.mtv.com':	'VCM087',
'suchinblog.mtv.com':	'VCM088',
'suckerfreeblog.mtv.com':	'VCM089',
'yourhereblog.mtv.com':	'VCM091',
'mtv.com/overdrive':	'VCM045',
'mtv.com':	'VCM004',
'thescore.vh1.com':	'VCM059',
'blog.vh1.com':	'VCM060',
'ecritic.vh1.com':	'VCM075',
'vh1.com/vspot':	'VCM056',
'vh1.com':	'VCM010',
'vh1classic.com':	'VCM011',
'mtv2.com':	'VCM005',
'mtvu.com':	'VCM006',
'mtvtr3s.com':	'VCM007',
'ifilm.com':	'VCM008',
'tvland.com':	'VCM009',
'addictinggames.com':	'VCM012',
'atomfilms.com':	'VCM013',
'addictingclips.com':	'VCM014',
'gametrailers.com':	'VCM015',
'neopets.com':	'VCM016',
'quizilla.com':	'VCM017',
'ratemyprofessors.com':	'VCM018',
'shockwave.com':	'VCM019',
'jokes.com':	'VCM020',
'southparkstudios.com':	'VCM021',
'thedailyshow.com':	'VCM024',
'afterelton.com':	'VCM025',
'afterellen.com':	'VCM026',
'365gay.com':	'VCM027',
'fakegaynews.com':	'VCM028',
'mtvchi.com':	'VCM029',
'mtvdesi.com':	'VCM030',
'mtvk.com':	'VCM031',
'the-n.com':	'VCM033',
'uploads.atomfilms.com':	'VCM034',
'cmn.com':	'VCM035',
'colbernation.com':	'VCM037',
'indecision2008.com':	'VCM038',
'ccinsider.com':	'VCM039',
'colboard.com':	'VCM040',
'downelink.com':	'VCM041',
'wannabemade.com':	'VCM043',
'mysupersweet16.com':	'VCM044',
'dancesfromthahood.com':	'VCM047',
'spike.com':	'VCM050',
'bestweekever.tv':	'VCM051',
'ilovenewyork.tv':	'VCM052',
'worldofpop.tv':	'VCM053',
'acceptable.tv':	'VCM054',
'flavoroflovecasting.com':	'VCM055',
'vh1eyecandy.com':	'VCM057',
'talentload.tv':	'VCM058',
'happytreefriends.atomfilms.com':	'VCM061',
'atomentertainment.com':	'VCM062',
'xfire.com':	'VCM063',
'addressthemess.com':	'VCM064',
'www.bestfilmoncampus.com':	'VCM065',
'www.bestmusiconcampus.com':	'VCM066',
'www.darfurisdying.com':	'VCM067',
'www.friendspacebook.com':	'VCM068',
'www.smartestmodels.com':	'VCM069',
'www.subterraneanblog.com':	'VCM070',
'www.suckerfreeblog.com':	'VCM071',
'www.thelookrightnow.com':	'VCM072',
'www.theshotspot.com':	'VCM073',
'www.trickmytruck.com':	'VCM074',
'thehillsblog.com':	'VCM090'
}

/* Public Functions */
this.init = function (input) {
parseParams(input);
build();
document.body.insertBefore(container, document.body.firstChild);
if (params.footer !== "off") {
appendLoad(mtvbar.write);
}
}

this.write = function () {
document.body.appendChild(foot);
}

this.searchFocus = function (event) {
if (event.type == "focus") {
if (event.target == null) {
event.srcElement.value = "";
} else {
event.target.value = "";
}
} else if (event.type == "blur") {
if (event.target == null) {
if (event.srcElement.value == "") {
event.srcElement.value = search;
}
} else {
if (event.target.value == "") {
event.target.value = search;
}
}
}
}

this.catchEnter = function (event) {
}

this.submitSearch = function (event) {
var input = document.getElementById('mbs_input');
if (input.value === search) { return false; }
input.value = input.value.replace(/^\s*|\s(?=\s)|\s*$/g, "").toLowerCase();
if (input.value.length == 0 || input.value == search) {
return false;
} else {
var form = document.getElementById("mtvbarsearch");
if (params.search === "msn") {
var e = false;
if (typeof(event.srcElement) !== "undefined") {
e = event.srcElement;
} else {
e = event.target;
}
if (e !== false) {
if (e.id === "mbs_web") {
var code = getMSNCode();
window.open('http://search.live.com/results.aspx?q=' + input.value + '&mkt=en-us&FORM=' + code);
return false;
} else {
form.submit();
}
}
} else {
form.submit();
}
}
}

/* Private Functions */
function appendLoad (olFunction) {
var current = window.onload;
if (typeof window.onload != 'function') {
window.onload = olFunction;
} else {
window.onload = function () {
if (current) { current(); }
olFunction();
}
}
}

function build () {
buildHead();
if (params.footer !== "off") { buildFoot(); }
}

function buildHead () {
/*
var mbContent = createDiv({id: 'mbcontent'});
mbContent.appendChild(createHeadLinks());
if (params.search != "off") {
mbContent.appendChild(createSearch());
}
bar.appendChild(mbContent);
*/
if (params.theme !== "") {
container.className = params.theme;
}
container.appendChild(bar);
bar.appendChild(createHeadLinks());
if (params.search != "off") {
bar.appendChild(createSearch());
}
}

function buildImage (name, alt) {
return '<img src="' + root + name + '" alt="' + alt + '" border="0" />';
}

function buildThemeImage (name, alt) {
if (params.theme !== "") {
return '<img src="' + root + params.theme + "/" + name + '" alt="' + alt + '" border="0" />';
} else {
return '<img src="' + root + name + '" alt="' + alt + '" border="0" />';
}
}

function buildFoot () {
var container = cewi("div", "mf_container");
if (params.theme !== "") { foot.className = params.theme; }
if (params.footer !== "off") {
if (params.footer === "full") {
container.style.width = "960px";
foot.style.width = "100%";
} else {
var w = parseInt(params.footer);
if (w > 0) { foot.style.width = w+"px"; }
}
}
var bar1 = createDiv({style: "mfbar1"});
var bar2 = createDiv({style: "mfbar2"});
container.appendChild(bar1);
container.appendChild(createFootTop());
container.appendChild(bar2);
container.appendChild(createFootBottom());

foot.appendChild(container);
}

function createFootTop () {
var top = createDiv({id: "mfrow1"});
var mfTop = createDiv({id: "mftop"});
var mftNetworks = createDiv({id: "mftnetworks"});
var mfLogo = createDiv({id: "mflogo"});
mfLogo.innerHTML = '<img src="'+root+'mtvn.gif" alt="MTV Networks" width="131" height="26" border="0" />';
mftNetworks.appendChild(mfLogo);
var mfCopy = createDiv({id: "mfcopy"});
mfCopy.innerHTML = '&copy; 2009 MTV Networks, &copy; and TM MTV Networks. All Rights Reserved.';
mftNetworks.appendChild(mfCopy);
mfTop.appendChild(mftNetworks);

var mftLinks = createDiv({id: 'mftlinks'});
var cols = new Array("foot_leftcol", "foot_midcol", "foot_rightcol");
for (var i = 0; i < cols.length; i++) {
var linkBox = createDiv({style: "mftlinkbox"});
var col = cols[i];
var links = params[col];
var html = "";
var j = 0;
for (var linkText in links) {
var source = links[linkText];
source = source.split("|");
if (linkText == "img") {
linkText = buildImage(source[1], source[2]);
}
if (j > 0) { html += " | "; }
html += '<a href="' + source[0] + '" class="mftlinkitem">' + linkText + '</a>';
j++;
}
linkBox.innerHTML = html;
mftLinks.appendChild(linkBox);
}
mfTop.appendChild(mftLinks);

top.appendChild(mfTop);
return top;
}

function createFootBottom () {
var bottom = createDiv({id: "mfrow2"});

var mfBottom = createDiv({id: "mfbottom"});
var links = params["foot_bottom"];
var html = "";
var i = 0;
for (linkText in links) {
if (i > 0) { html += " | "; }
html += '<a href="' + links[linkText] + '">' + linkText + '</a>';
i++;
}
mfBottom.innerHTML = html;
bottom.appendChild(mfBottom);

return bottom;
}

function createHeadLinks () {
var mbLinks = createDiv({id: "mblinks"});

var mbLogo = createDiv({id: "mblogo"});
if (params.cobrand.display === true) {
mbLogo.innerHTML = '<a href="' + params.cobrand.url + '">' + buildImage("cobrand/"+params.cobrand.logo, params.cobrand.alt) + '</a>';
} else {
mbLogo.innerHTML = '<a href="http://www.mtv.com/">' + buildThemeImage("mb_logo.gif", "MTV.com") + '</a>';
}
mbLinks.appendChild(mbLogo);

for (var linkText in params.head) {
var linkURL = params.head[linkText];
var link = createDiv({style: "mblink"});
var p = root;
if (params.theme !== "") { p += params.theme + "/"; }
link.style.float = "left";
link.innerHTML = '<a href="' + linkURL + '" class="mblinkitem"><img src="'+p+'icon_jump.gif" alt="jump to:" width="8" height="10" border="0" />' + linkText + '</a>';
mbLinks.appendChild(link);
}

return mbLinks;
}

function createSearch () {
var mbSearch = cewi("div", "mbsearch");
var mbSB = cewi("div", "mbsearchbox");
var mbSMSN = cewi("div", "mbsearchmsn");
var mbSIcon = cewi("div", "mbsearchicon");
mbSIcon.innerHTML = '<img src="'+root+'search_icon.gif" width="11" height="12" />';

var mbSForm = cewi("form", "mtvbarsearch");
mbSForm.action = site + "search/";
addEvent(mbSForm, "submit", mtvbar.submitSearch);
mbSForm.method = "get";

var mbSInput = cewi("div", "mbsearchinput");
if (params.search === "msn") {
search = "Search";
mbSInput.innerHTML = '<input type="text" id="mbs_input" class="narrow" size="25" name="searchterm" value="' + search + '" onfocus="mtvbar.searchFocus(event);" onblur="mtvbar.searchFocus(event);" />';
var mbSSelect = cewi("div", "mbsearchselect");
mbSSelect.innerHTML = '<select id="mbs_type" name="requiredfields"><option value="">All MTV</option><option value="mtv_st:video">Videos</option><option value="mtv_st:photo">Photos</option><option value="mtv_st:article">News</option><option value="mtv_st:lyrics">Lyrics</option></select>';
} else {
mbSInput.innerHTML = '<input type="text" id="mbs_input" class="wide" size="35" name="searchterm" value="' + search + '" onfocus="mtvbar.searchFocus(event);" onblur="mtvbar.searchFocus(event);" />';
}
var mbSButton = createDiv({id: "mbsearchbutton"});
mbSButton.innerHTML = '<input type="image" id="mbs_button" src="' + root + 'search.gif" width="50" height="18" border="0" alt="search" onclick="mtvbar.submitSearch(event); return false;"/></form>';

mbSMSN.innerHTML = '<input type="image" id="mbs_web" src="' + root + 'web.gif" width="36" height="18" border="0" alt="search the web" onclick="mtvbar.submitSearch(event); return false;"/>';

mbSForm.appendChild(mbSIcon);
mbSForm.appendChild(mbSInput);
if (params.search === "msn") {
mbSForm.appendChild(mbSSelect);
}
mbSForm.appendChild(mbSButton);
mbSB.appendChild(mbSForm);
if (params.search === "msn") {
mbSearch.appendChild(mbSMSN);
}
mbSearch.appendChild(mbSB);
return mbSearch;
}

function addEvent (object, event, callback) {
if (object.addEventListener) {
object.addEventListener(event, callback, false);
return true;
} else if (object.attachEvent) {
var r = object.attachEvent("on" + event, callback);
return r;
} else { 
return false; 
}
}

function cewi (type, id) {
var r = document.createElement(type);
r.id = id;
return r;
}

function cewp (element, params) {
var r = document.createElement(type);
for (var p in params) {
r.p = params[p];
}
return r;
}

function createDiv (info) {
/* info: object {id, style} */
var r = document.createElement("div");
if (info["id"] != "" && info["id"] != undefined) { r.id = info["id"]; }
if (info["style"] != "" && info["style"] != undefined) { r.className = info["style"]; }
return r;
}

function getMSNCode () {
var uri = document.URL;
uri = uri.toLowerCase();
for (var i in msnCodes) {
if (uri.indexOf(i) != -1) {
return msnCodes[i];
}
}
return "VCMOO4";
}

function parseParams (input) {
for (var param in params) {
var t = typeof(params[param]);
var i = input[param];
if (t == "object") {
if (i != undefined && i.nodeValue != undefined) {
params[param] = eval("(" + i.nodeValue + ")");
}
} else {
if (i != undefined && i.nodeValue != undefined) {
params[param] = i.nodeValue;
}
}
}
}

}

/*
var scripts = document.getElementsByTagName('script');
var index = scripts.length - 1;
mtvbar.init(scripts[index].attributes);
*/

var index = 0;
var scripts = document.getElementsByName('mamabar');
if (scripts.length == 0) {
scripts = document.getElementsByTagName('script');
index = scripts.length - 1;
}
mtvbar.init(scripts[index].attributes);

