var closeMenuTimer;
var menuHoverTimer;
var main_menu_open;
var test;


function sdinit() 
{
  setUserOptions(); 
  menu_bind();
  if (!($.browser.msie || $.browser.safari))
  {
    $(".tdHover").mouseover(tdHover).mouseout(tdHoverOut).click(tdHoverClick);
    $(".tdPostDate").mouseover(tdThreadHover).mouseout(tdThreadHoverOut).click(tdPostDateClick);
    $(".tdThread").mouseover(tdThreadHover).mouseout(tdThreadHoverOut);
  }
}

function displayExtra(layer_name, expand_name) 
{
  layerObject = getObject(layer_name);
  expandObject = getObject(expand_name);

  if (layerObject.style.display == "none") 
  {
    layerObject.style.display = "";
    expandObject.innerHTML = "";
  }
  else
  {
    layerObject.style.display = "none";
    expandObject.innerHTML = "<span class=small><a href=\"javascript:displayExtra('"+layer_name+"','"+expand_name+"')\">Expand</a> <img src=images/expand.jpg width=7 height=7></span>";
  }
}

function toggledeal(id, state) 
{ 
  var objStyle = sdfetch_object(id);
  var headerid = id.replace("deal_","deal_header_");
  var objHeader = sdfetch_object(headerid);
  var headerExp = " deal_header_expand";

  switch(state)
  { case 'c':
      objStyle.style.display = "none";
      objHeader.className = objHeader.className.replace(headerExp,"");
      break;
    case 'e':
      objStyle.style.display = "block";
      if (!objHeader.className.match(headerExp))
        objHeader.className = objHeader.className + headerExp;
      break;
    default:
      if (objStyle.style.display=="block")
      {
        objStyle.style.display = "none";
        objHeader.className = objHeader.className.replace(headerExp,"");
      }
      else
      {
        objStyle.style.display = "block";
        if (!objHeader.className.match(headerExp))
          objHeader.className = objHeader.className + headerExp;
      }
      break;
  }
} 

function toggle(obj) 
{
	if ( obj.style.display != 'none' ) 
	{
		obj.style.display = 'none';
	}
	else {
		obj.style.display = '';
	}
}

function toggleimg(img)
{
  img_re = new RegExp("_collapsed\\.gif$");
  if (img.src.match(img_re))
  {
    img.src = img.src.replace(img_re, '.gif');
  }
  else
  {
    img_re = new RegExp("\\.gif$");
    img.src = img.src.replace(img_re, '_collapsed.gif');
  }
}

function togglewelcome(id) 
{
  var obj = sdfetch_object(id);
  if (obj.style.display=="") 
  {
    obj.style.display="none";
    createCookie(id,1,365);
  } else 
  {
    obj.style.display="";
  }
}

function toggledeal_array() 
{ 
  var image = sdfetch_object(arguments[0]);	//get the image element
  if (image.src.match("plus.gif")) 
  {	//hide all
    image.src = "/images/slickdeals/minus.gif"; 
    for (i=1;i<arguments.length;i++)
    {
      toggledeal(arguments[i],"e");
    }
  }
  else 
  { 
    image.src = "/images/slickdeals/plus.gif"; 
    for (i=1;i<arguments.length;i++)
    {
      toggledeal(arguments[i],"c");
    }
  }
} 

function toggle_hottopic(id) 
{ 
  if(navigator.appName.indexOf("Microsoft") > -1)
    var canSee = 'block'
  else 
    var canSee = 'table-row';
  obj = sdfetch_object(id);
  if (obj.style.display==canSee) 
  { 
    obj.style.display="none"; 
    var newobj = sdfetch_object(id + "_heading");
    if (newobj.className=="alt4a") 
      newobj.className="alt6"; 
    else 
      newobj.className="alt5"; 
  } 
  else 
  { 
    obj.style.display=canSee; 
    var newobj = sdfetch_object(id + "_heading");
    if (newobj.className=="alt5") 
      newobj.className="alt4"; 
    else 
      newobj.className="alt4a"; 
  } 
} 

function toggleexpandall() 
{
  expandall = (readCookie('expandall') == 1) ? 0 : 1;
  createCookie('expandall',expandall,365);

  state = expandall ? 'e' : 'c';

  var deals = getElementsByClass("deal_body");
  for (dateclick = 0; dateclick < deals.length; dateclick++)
  {
      toggledeal(deals[dateclick].id,state);
  }

  var newobj = sdfetch_object("toggleall");
  if (newobj.className=="alldealexpand") 
  {	
    newobj.className="alldealcollapse";			
  }
  else 
  { 
    newobj.className="alldealexpand"; 
  }
}

function getElementsByClass(searchClass,node,tag) 
{
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


function addEvent( obj, type, fn )
{
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

function sdfetch_object(idname)
{
        if (document.getElementById)
        {
                return document.getElementById(idname);
        }
        else if (document.all)
        {
                return document.all[idname];
        }
        else if (document.layers)
        {
                return document.layers[idname];
        }
        else
        {
                return null;
        }
}

function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

function showDiv(e,id)
{
//  if (!e) var e = window.event;
  getdiv = sdfetch_object(id);
  getdiv.style.display = "";
  x = (e.pageX)
    ? e.pageX
    : (e.clientX)
      ? e.clientX
      : 0;
  y = (e.pageY)
    ? e.pageY
    : (e.clientY)
      ? e.clientY
      : 0;
  getdiv.style.left = x + 5 + "px";
  getdiv.style.top = y + 5 + "px";
}

function closeDiv(e,id)
{
  if (!e) var e = window.event;
  getdiv = sdfetch_object(id);
  getdiv.style.display = "none";
}

function cumulativeOffset(element) {
		var valueT = 0, valueL = 0;
		do {
			valueT += element.offsetTop	|| 0;
			valueL += element.offsetLeft || 0;
			element = element.offsetParent;
		} while (element);
		return [valueL, valueT];
}

function startCloseMenuTimer() {
    clearTimeout(menuHoverTimer);
    stopCloseMenuTimer();
    closeMenuTimer=setTimeout('menu_closesub();', 100);
}
function stopCloseMenuTimer() {
  clearTimeout(closeMenuTimer);
}

function menuHover(e) { 
  var elTarget = $(e.target); 
  var menuWait = main_menu_open ? 50 : 250;
  stopCloseMenuTimer();
  clearTimeout(menuHoverTimer);
  while (!elTarget.is("#innernav")) 
  { 
    if(elTarget.is("#main_menu_03") || elTarget.is("#main_menu_04") || elTarget.is("#main_menu_05")) 
    { 
      if (main_menu_open)
	menu_showsub(elTarget[0]);
      else
        menuHoverTimer = setTimeout(function() {menu_showsub(elTarget);},menuWait);
      break; 
    } else if (elTarget.is("#main_menu_01") || elTarget.is("#main_menu_06"))
    {
      startCloseMenuTimer();
      break;
    } else
    { 
      elTarget = elTarget.parent(); 
    } 
  } 
} 

function menu_showsub(ele) {
        var menulink = $(ele)[0];
        var id = $(ele).attr("id");
        var submenu_content = $("#main_submenu_content")[0];
        offset = cumulativeOffset(menulink);
        if($(ele).hasClass("selected") || $(ele).hasClass("selected_menu_hover"))
                $(ele).removeClass("selected").addClass("selected_menu_hover");
        else
                $(ele).addClass("menu_hover");

        $(".menu_link").not("#"+id).not(".selected").not(".selected_menu_hover").removeClass("menu_hover");
        $(".menu_link.selected_menu_hover").not("#"+id).addClass("selected").removeClass("selected_menu_hover");

        if (id == "main_menu_03")
        submenu_content.innerHTML = '<a href="http://slickdeals.net/coupons.php?category=newcoupons" class="submenu_section">New Coupons</a><a href="http://slickdeals.net/coupons.php?category=expiring">Expiring Soon</a><a href="http://slickdeals.net/coupons.php?category=apparel">Apparel</a><a href="http://slickdeals.net/coupons.php?category=tech">Technology</a><a href="http://slickdeals.net/coupons.php?category=others">Others</a><a href="http://slickdeals.net/coupons.php?category=A-C"  class="submenu_section"># & A-C</a><a href="http://slickdeals.net/coupons.php?category=D-G">D-G</a><a href="http://slickdeals.net/coupons.php?category=H-L">H-L</a><a href="http://slickdeals.net/coupons.php?category=M-R">M-R</a><a href="http://slickdeals.net/coupons.php?category=S-Z">S-Z</a>';
        if (id == "main_menu_04")
        submenu_content.innerHTML = '<a href="http://forums.slickdeals.net/forumdisplay.php?f=9" class="submenu_section">Hot Deals Forum</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=4">Freebies Forum</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=10">Coupons Forum</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=25">Contests and Sweepstakes</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=30" class="submenu_section">Deal Talk</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=8">Rebates</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=11">Help Me Find a Deal</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=19">Product Reviews</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=17" class="submenu_section">Tech Support</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=7">The Lounge</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=36">Gamer\'s Lounge</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=18">The Podium</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=5" class="submenu_section">Site Issues & Suggestions</a><a href="http://forums.slickdeals.net/search.php" class="submenu_section">Advanced Forum Search</a>';
        if (id == "main_menu_05")
        submenu_content.innerHTML = '<a href="http://slickdeals.pricegrabber.com/" class="submenu_section">Price Search</a><a href="http://slickdeals.net/slickfillers/">Fillers</a><a href="http://slickdeals.resellerratings.com/">Store Ratings</a><a href="http://forums.slickdeals.net/forumdisplay.php?f=19">Product Reviews Forum</a>';
        $("#main_submenu").css("left", offset[0] + 'px').css("top",(offset[1] + menulink.offsetHeight - 4) + 'px')
	if (!main_menu_open)
          $("#main_submenu").show();
//	$("#main_submenu").css("display","block");
        stopCloseMenuTimer();
	clearTimeout(menuHoverTimer);
	main_menu_open=true;
        return false;
}

function menu_bind(instant)
{
	$("#innernav").mouseover(menuHover).mouseout(startCloseMenuTimer);
	$("#main_submenu").mouseover(stopCloseMenuTimer).mouseout(startCloseMenuTimer);
}

function menu_closesub() {
	main_menu_open = false;
	$("#main_submenu").hide();
        $(".menu_link").not(".selected").not(".selected_menu_hover").removeClass("menu_hover");
        $(".menu_link.selected_menu_hover").removeClass("selected_menu_hover").addClass("selected");
	return false;
}

function cellHover(ele)
{
	ele = $(ele)
	if (ele.hasClass("alt1"))
		ele.removeClass("alt1").addClass("alt1Active");
	else if (ele.hasClass("alt2"))
		ele.removeClass("alt2").addClass("alt2Active");
	if (ele.hasClass("tdClick"))
		ele.addClass("cursor");
}

function cellHoverOut(ele)
{
	ele = $(ele)
        if (ele.hasClass("alt1Active"))
                ele.removeClass("alt1Active").addClass("alt1");
        else if (ele.hasClass("alt2Active"))
                ele.removeClass("alt2Active").addClass("alt2");
	if (ele.hasClass("tdClick"))
		ele.removeClass("cursor");
}

function cellHoverClick(ele,linksel)
{
	var ele = $(ele);
	var loc = "";
        var tdTarget = ele.find("a.tdTarget");
        if (tdTarget.length > 0)
                ele = tdTarget;
	if (ele.is("a"))
		loc = ele.attr("href");
	else
		loc = ele.find("a:" + linksel).attr("href");
	window.location.href=loc;
}

function tdHover()
{
	cellHover(this);
}

function tdHoverOut()
{
	cellHoverOut(this);
}

function tdHoverClick(ev)
{
	if (!(ev.shiftKey || ev.ctrlKey))
		cellHoverClick(this,"last");
}

function tdThreadHover()
{
	cellHover(this);
	cellHover($(this).siblings(".tdPostDate"));
	cellHover($(this).siblings(".tdThread"));
}
function tdThreadHoverOut()
{
	cellHoverOut(this);
	cellHoverOut($(this).siblings(".tdPostDate"));
	cellHoverOut($(this).siblings(".tdThread"));
}
function tdPostDateClick(ev)
{
	if (!(ev.shiftKey || ev.ctrlKey))
	{
		var threadlink = $(this).attr("id");
		threadlink=threadlink.replace("td_postdate_","thread_title_");
		cellHoverClick($("#"+threadlink));
	}
}

function akst_share(id, url, title) {
	var form = sdfetch_object("akst_form");
	var post_id = sdfetch_object("akst_post_id");
	var post_message = sdfetch_object("akst_email_message");
	var post_subject = sdfetch_object("akst_email_subject");
	var post_action = sdfetch_object("akst_form_action");
	var post_link = sdfetch_object("akst_post_permalink");
	var permalink = sdfetch_object("akst_permalink_link");
	
	var post_hidden_url = sdfetch_object("akst_post_hidden_url");
	var post_hidden_t = sdfetch_object("akst_post_hidden_t");
	
	var messagelink = sdfetch_object("atsk_sendmessage_link");
	
	if (form.style.display == 'block' && post_id.value == id) {
		form.style.display = 'none';
		return;
	}
	
	var link = sdfetch_object("akst_link_" + id);
	var offset = cumulativeOffset(link);

	sdfetch_object("akst_delicious").href = akst_share_url("http://del.icio.us/post?url={url}&title={title}", url, title);
	sdfetch_object("akst_digg").href = akst_share_url("http://digg.com/submit?phase=2&url={url}&title={title}", url, title);
	sdfetch_object("akst_furl").href = akst_share_url("http://furl.net/storeIt.jsp?u={url}&t={title}", url, title);
	sdfetch_object("akst_netscape").href = akst_share_url(" http://www.netscape.com/submit/?U={url}&T={title}", url, title);
	sdfetch_object("akst_yahoo_myweb").href = akst_share_url("http://myweb2.search.yahoo.com/myresults/bookmarklet?u={url}&t={title}", url, title);
	sdfetch_object("akst_stumbleupon").href = akst_share_url("http://www.stumbleupon.com/submit?url={url}&title={title}", url, title);
	sdfetch_object("akst_google_bmarks").href = akst_share_url("  http://www.google.com/bookmarks/mark?op=edit&bkmk={url}&title={title}", url, title);
	sdfetch_object("akst_technorati").href = akst_share_url("http://www.technorati.com/faves?add={url}", url, title);
	sdfetch_object("akst_blinklist").href = akst_share_url("http://blinklist.com/index.php?Action=Blink/addblink.php&Url={url}&Title={title}", url, title);
	sdfetch_object("akst_newsvine").href = akst_share_url("http://www.newsvine.com/_wine/save?u={url}&h={title}", url, title);

	sdfetch_object("akst_reddit").href = akst_share_url("http://reddit.com/submit?url={url}&title={title}", url, title);
	sdfetch_object("akst_windows_live").href = akst_share_url("https://favorites.live.com/quickadd.aspx?marklet=1&mkt=en-us&url={url}&title={title}&top=1", url, title);
	sdfetch_object("akst_tailrank").href = akst_share_url("http://tailrank.com/share/?link_href={url}&title={title}", url, title);

	sdfetch_object("akst_facebook").href = akst_share_url("http://www.facebook.com/share.php?&={url}", url, title);
	sdfetch_object("akst_aim").href = akst_share_url("aim:goim?message={title}{url}", url, title);
	sdfetch_object("akst_magnolia").href = akst_share_url("http://ma.gnolia.com/bookmarklet/add?url={url}&title={title}", url, title);

	messagelink.href = "http://forums.slickdeals.net/sendmessage.php?do=sendtofriend&t=" + id;
	post_action.action = "http://forums.slickdeals.net/sendmessage.php?do=dosendtofriend&t=" + id;
	post_id.value = id;
	post_hidden_url.value = url;
	post_hidden_t.value = id;
	
	post_message.value = "Greetings! This SlickDeal has been shared with you:\n\n'" + decodeURIComponent(title) + "'.\n\nRead more about it at " + decodeURIComponent(url) + "";
	post_subject.value = "Shared from Slickdeals: " + decodeURIComponent(title);
	post_link.value = decodeURIComponent(url);
	permalink.innerHTML = '<a href="'+decodeURIComponent(url)+'">Permalink For This Post</a>';

	form.style.left = offset[0] + 'px';
	form.style.top = (offset[1] + link.offsetHeight + 3) + 'px';
	form.style.display = 'block';
}

function akst_share_url(base, url, title) {
	base = base.replace('{url}', url);
	return base.replace('{title}', title);
}

function akst_share_tab(tab) {
	var tab1 = sdfetch_object('akst_tab1');
	var tab2 = sdfetch_object('akst_tab2');
	var tab3 = sdfetch_object('akst_tab3');
	var body1 = sdfetch_object('akst_social');
	var body2 = sdfetch_object('akst_email');
	var body3 = sdfetch_object('akst_permalink');
	
	switch (tab) {
		case '1':
			tab3.className = '';
			tab2.className = '';
			tab1.className = 'selected';
			body3.style.display = 'none';
			body2.style.display = 'none';
			body1.style.display = 'block';
			break;
		case '2':
			tab3.className = '';
			tab1.className = '';
			tab2.className = 'selected';
			body3.style.display = 'none';
			body1.style.display = 'none';
			body2.style.display = 'block';
			break;
		case '3':
			tab3.className = 'selected';
			tab1.className = '';
			tab2.className = '';
			body3.style.display = 'block';
			body1.style.display = 'none';
			body2.style.display = 'none';
			break;
	}
}

function akst_xy(id) {
	var element = $(id);
	var x = 0;
	var y = 0;
}

