﻿/* Copyright (C) BinTube.com 2007. All rights reserved */

var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos)
{
    if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
    if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
    else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
    settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes';
    win=window.open(mypage,myname,settings);
    
    if (window.focus) win.focus();
}
function inverseCheckBoxes(frm)
{
    for (var i=0; i < frm.elements.length; i++)
    if (frm.elements[i].type == "checkbox") 
        frm.elements[i].checked = !frm.elements[i].checked;
		
}
function selectAllCheckBoxes(frm)
{
    for (var i=0; i < frm.elements.length; i++)
    if (frm.elements[i].type == "checkbox") 
        frm.elements[i].checked = true;
		
}
function checkChecks()
{		
	for (var i=0; i < document.forms[0].elements.length; i++) 
	{
	    if (document.forms[0].elements[i].type == "checkbox")
	        if (document.forms[0].elements[i].checked)
	            return true; 
	}
	
	alert('Please select one or more items from the list.');
	return false;		
}

function popup_window( url, id, width, height )
{
    popup = window.open(url, id, 'toolbar=no, scrollbars=no, location=no, statusbar=no, menubar=no, resizable=no, width=' + width + ', height=' + height + '' );
    popup.focus();
}

$previous = false;
function ShiftEvent($evt)
{
	$e = window.event ? window.event.srcElement : $evt.target;
			
	if ((window.event ? window.event : $evt).shiftKey && $previous)
	{
		$f = $e.form; $s = false;
		for ($i=0; $i < $f.elements.length; $i++)
		{
			if ($f.elements[$i].type == "checkbox") 
			{
				if ($f.elements[$i].name == $e.name || $f.elements[$i].name == $previous)
				{
					if ($s)
						$f.elements[$i].checked = $e.checked;
					$s = !$s;
				}
				
				if ($s)
					$f.elements[$i].checked = $e.checked;				
			}
		}	
	}
	
	$previous = $e.name;
}

function CheckShift($f)
{
	for ($i=0; $i < $f.elements.length; $i++)
	{
		if ($f.elements[$i].type == "checkbox") 
		{
			$f.elements[$i].onclick = ShiftEvent;
		}
	}	
}

var startCheck = "";
var state = false;
//var shiftheld = false;
function ShiftHandler(eventObject)
{
    // cross browser compatibility
    var shiftevent = window.event ? window.event.srcElement : eventObject.target;
    
    if ((window.event ? window.event : eventObject).shiftKey && startCheck != "")
    {
        var form = shiftevent.form;
        
        var start = -1;
        var stop = -1;
        
        for (var i = 0; i < form.elements.length; i++)
        {
            if (form.elements[i].type == "checkbox")
            {
                if ((start == -1) && (form.elements[i].name == startCheck)) //startCheck = ""
                {
                    start = i;
                    
                    //if (startCheck = "") state = form.elements[i].checked;
                }
                
                if ((stop == -1) && (form.elements[i].name == shiftevent.name))
                    stop = i;
                
                if (start >= 0 && stop >= 0) break;
            }
        }
        
        var swap = start;
        var correction = false;
        
        if (start > stop)
        {
            // this is for when you click 1 then shift click 8 and then shift click 4
            // since 4 was already checked it tries to uncheck it but we need it checked again
            correction = true;
            start = stop;
            stop = swap;
        }
        
        for (var i = start; i <= stop; i++)
        {
            if (form.elements[i].type == "checkbox")
            {
                if (shiftheld)
                    form.elements[i].checked = shiftevent.checked;
                else
                    form.elements[i].checked = state;
            }
        }
        
        if (shiftheld && correction) 
            form.elements[start].checked = true;
            //form.elements[start].checked = !shiftevent.checked;
        
        shiftheld = true;
    }
    else
    {
        shiftheld = false;
    }
    
    startCheck = shiftevent.name;
    state = shiftevent.checked;
}

function AddShiftHandler(form)
{
    for (var i = 0; i < form.elements.length; i++)
        if (form.elements[i].type == "checkbox") 
            form.elements[i].onclick = ShiftHandler;
}

  function AddSearchProvider(cookieName)
    {
        try
        {
            //window.external.AddSearchProvider("http://www.bintube.com/provider.xml");
            if (installSearchEngine())
                SetCookie(cookieName, "true", 2020, 1, 1);
            else
                alert("We are sorry, this feature is not supported by your browser.");
        }
        catch (ex)
        {
            alert("We are sorry, there seems to be a problem trying to add BinTube to the Search Provider list.");
        } 
    }
    
    function installSearchEngine() {
         if (window.external && ("AddSearchProvider" in window.external)) {
               // Firefox 2 and IE 7, OpenSearch
               window.external.AddSearchProvider("http://www.bintube.com/bintube.xml");
               return true;
         } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
               // Firefox <= 1.5, Sherlock
               window.sidebar.addSearchEngine("http://www.bintube.com/bintube.src",
                                              "http://www.bintube.com/img/bintube16x16.jpg",
                                              "BinTube Usenet Search", "");
               return true;
         } else {
               alert("This feature requires IE, Firefox or a Mozilla based browser.");
               return false;
         }
    }

    function ShowSearchProvider()
    {
        var show = (GetCookie("DisplayedSearchProvider") == null);
        var div = document.getElementById("searchProvider");
        
        if (show && div)
        {
            SetCookie("DisplaySearchProvider", "false");
            var added = (GetCookie("ProviderAdded") == null);
            
            if (added)
                div.display = "none";
            else
            {
                div.display = "block";
                div.innerHTML = "<a href=\"javascript:AddSearchProvider('ProviderAdded');\">Add BinTube to Search Providers</a>";
            }
        }
    }
    
    function SetCookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
    {
      var cookie_string = name + "=" + escape ( value );

      if ( exp_y )
      {
        var expires = new Date ( exp_y, exp_m, exp_d );
        cookie_string += "; expires=" + expires.toGMTString();
      }

      if ( path )
            cookie_string += "; path=" + escape ( path );

      if ( domain )
            cookie_string += "; domain=" + escape ( domain );
      
      if ( secure )
            cookie_string += "; secure";
      
      document.cookie = cookie_string;
    }
    
    function GetCookie ( cookie_name )
    {
      var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

      if ( results )
        return ( unescape ( results[2] ) );
      else
        return null;
    }

    function exit(linkid)
    {
        window.status='';
        return true;
    }
