// JavaScript Document
var IMG_PATH = "http://shortlister.net/images";

var OBJ_WIDTH;
var OBJ_HEIGHT;
var OBJ_FADE;
// ********************************************************************************************************************************************************************
function jsf_ApplyInputMask(str,textbox,loc,delim)
{
	var locs = loc.split(',');
	for (var i = 0; i <= locs.length; i++)
	{
		for (var k = 0; k <= str.length; k++)
		{
		 if (k == locs[i])
		 {
		  if (str.substring(k, k+1) != delim)
		  {
			str = str.substring(0,k) + delim + str.substring(k,str.length)
		  }
		 }
		}
	 }
	textbox.value = str
}
// ********************************************************************************************************************************************************************
function jsf_ShowObj(obj, action)
{
	if(action == "yes")
	 {
		 	if(obj)
			{
				document.getElementById(obj).style.display='block';
			}
	 }
	else
	 {
		 	if(obj)
			{
				document.getElementById(obj).style.display='none'; 
			}
	 }

}
// ********************************************************************************************************************************************************************
function jsf_NumbersOnly(myfield, e, dec) 
{
  var key;
  var keychar;

  if (window.event)
    key = window.event.keyCode;
  else if (e)
    key = e.which;
  else
    return true;
  keychar = String.fromCharCode(key);

  // control keys
  if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
    return true;

  // numbers
  else if ((("0123456789.").indexOf(keychar) > -1))
    return true;

  // decimal point jump
  else if (dec && (keychar == ".")) {
    myfield.form.elements[dec].focus();
    return false;
  } else
    return false;
}
// ********************************************************************************************************************************************************************
function jsf_Toggle(_obj, _div)
{
	//alert(document.getElementById(_div).style.display);
	if(document.getElementById(_div).style.display == 'none' || document.getElementById(_div).style.display == '')
	{
		OBJ_FADE = _div;
		jsf_ShowObj(_div ,'yes');
		document.getElementById(_obj).src = IMG_PATH + "/mi.gif";
		jsf_Fade(0);
	}
	else
	{
		jsf_ShowObj(_div ,'no');
		document.getElementById(_obj).src =  IMG_PATH + "/pl.gif";
		
	}
}
// ********************************************************************************************************************************************************************
function jsf_UpdateINNERHTML(_obj, _html)
{
	if(document.getElementById(_obj))
	{
		document.getElementById(_obj).innerHTML = _html;
	}
}
// ********************************************************************************************************************************************************************
function jsf_CreateYearsList()
{
	var _years = document.getElementsByName('year');
	document.getElementById('years_list').value = '';
	for(i=0; i<=_years.length-1; i++)
	 {
		if(_years[i].checked== true)
		 {
				  	if(document.getElementById('years_list').value.length == 0)
					 {
						 document.getElementById('years_list').value =  _years[i].value;
					 }
					else
					 {
						document.getElementById('years_list').value +=  ", " + _years[i].value;
					 }
		 }
	 }
}

// ##############################################################################################################################################
// DHTML EFFECTS SCRIPTS #######################################################################################################################
// ##############################################################################################################################################
function $(v) { return(document.getElementById(v)); }
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
function xy(e,v) { return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); }

function dragOBJ(d,e) {

	function drag(e) { if(!stop) { d.style.top=(tX=xy(e,1)+oY-eY+'px'); d.style.left=(tY=xy(e)+oX-eX+'px'); } }

	var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop;

	document.onmousemove=drag; document.onmouseup=function(){ stop=1; document.onmousemove=''; document.onmouseup=''; };
}
// ****************************************************************************************************************************************************************
function jsf_Fade(amt) 
{
            if(amt <= 99) 
            {
                        jsf_SetFade(amt);
                        amt += 10;
                        setTimeout("jsf_Fade("+amt+")", 50);
    }
}

function jsf_SetFade(amt) 
{
            obj = document.getElementById(OBJ_FADE);
            amt = (amt == 100)?99.999:amt;

            // IE
            obj.style.filter = "alpha(opacity:"+amt+")";

            // Safari<1.2, Konqueror
            obj.style.KHTMLOpacity = amt/99;

            // Mozilla and Firefox
            obj.style.MozOpacity = amt/99;

            // Safari 1.2, newer Firefox and Mozilla, CSS3
            obj.style.opacity = amt/99;
}
// ****************************************************************************************************************************************************************
function jsf_AddElement(_id,_type,_class, _dragtitle)
	{
		//var objDrag = _type + "_" + _id;
		var myObj = document.createElement(_type);
		var objClose = "<a href=\"javascript:void(0);\" onClick=\"jsf_RemoveElement('" + _id + "')\">Close</a>";
		var objHTML = "<table border=\"0\" width=\"100%\" cellspacing=\"0\"><tr class=\"drag_area\" onmousedown=\"dragStart(event, '" + _id + "')\"><td>" + _dragtitle + "&nbsp;</td><td>" + objClose + "</td></tr></table>";
		myObj.className=_class;
		myObj.id=_id;
		myObj.innerHTML = objHTML;
		myObj.style.left="10px";
		myObj.style.top="10px";
		//myObj.onclick = function(){alert(objDrag);}
		document.body.appendChild(myObj);
	}
// ****************************************************************************************************************************************************************
function jsf_RemoveElement(_id)
{
	var myObj = document.getElementById(_id);
	document.body.removeChild(myObj);
}
// ****************************************************************************************************************************************************************
function jsf_EnableSubWindow(_obj)
{
	document.getElementById(_obj).style.display='block';
	document.getElementById('fade').style.display='block';	
}
// ****************************************************************************************************************************************************************
function jsf_EnableMainWindow(_obj)
{
	document.getElementById(_obj).style.display='none';
	document.getElementById('fade').style.display='none'	
}
// ****************************************************************************************************************************************************************
// calculate the current window width //
function pageWidth() {
  return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

// calculate the current window height //
function pageHeight() {
  return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}

// calculate the current window vertical offset //
function topPosition() {
  return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}

// calculate the position starting at the left of the window //
function leftPosition() {
  return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}
// ****************************************************************************************************************************************************************
function jsf_CenterObject(_obj)
{
	var dialog = document.getElementById(_obj);
	var width = pageWidth();
	var height = pageHeight();
	var left = leftPosition();
	var top = topPosition();
	var dialogwidth = dialog.offsetWidth;
	var dialogheight = dialog.offsetHeight;
	var topposition = top + (height / 3) - (dialogheight / 2);
	var leftposition = left + (width / 2) - (dialogwidth / 2);
	dialog.style.top = topposition + "px";
	dialog.style.left = leftposition + "px";
}
// =======================================
// Sliding DIV Effects
// =======================================
var COBJ;
var MAX_HT;
var MA_WD;
var DONE=false;

function jsf_SetParams(this_object, this_ht, this_wd, this_img)
{
	COBJ = this_object;
	MAX_HT = this_ht;
	MA_WD  = this_wd;
	jsf_Slide(100);
}

function jsf_Slide(amt, ht, wd) 
{
			if(DONE)
			 {
						if(amt >= 0) 
						{
									jsf_SetSlide(amt);
									amt -= 10;
									setTimeout("jsf_Slide("+amt+")", 50);
						}
						else
						{
							document.getElementById(COBJ).style.display="none"; 
							DONE=false;			 
						}

			 }
			else
			 {
				document.getElementById(COBJ).style.display="block"; 
				if(amt <= MAX_HT) 
				{
							jsf_SetSlide(amt);
							amt += 10;
							setTimeout("jsf_Slide("+amt+")", 25);
				}
				else
				{
					DONE=true;
				}
			 
			 } 
}

function jsf_SetSlide(amt) 
{
	if(amt == 0)
	 {
            obj = document.getElementById(COBJ);
			obj.style.height = "0px";
	 }
	else
	 {
            obj = document.getElementById(COBJ);
            amt = (amt == 100)?99.999:amt;

            // IE
			obj.style.height = amt + "px";
 
	 } 
}
