/* vim: set expandtab tabstop=4 shiftwidth=4: */
/* $Id: main.js,v 1.1.1.1 2007/05/17 13:26:15 jonesk Exp $ */

var browserVersion = parseInt(navigator.appVersion);
var isNetscape     = navigator.appName.indexOf("Netscape") != -1;
var isIE           = navigator.appName.indexOf("Microsoft") != -1;
var agent          = navigator.userAgent.toLowerCase();
var isWindows      = agent.indexOf("win") != -1;
var isMac          = agent.indexOf("mac") != -1;
var isNix          = agent.indexOf("X11") != -1;

var nn4 = (document.layers) ? true : false
var ie  = (document.all) ? true : false
var dom = (document.getElementById && !document.all) ? true : false

function addLoadEvent(func)
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function')
  {
    window.onload = func;
  }
  else
  {
    window.onload = function()
    {
      oldonload();
      func();
    }
  }
}

var toggleConfirmedHover = false;

function initRollovers() {
	if (!document.getElementById) return

	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');

	for (var i = 0; i < aImages.length; i++) {
		if (aImages[i].className == 'imgover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_over'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);

			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;

			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}

			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_over'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}

addLoadEvent(initRollovers);

function doConfirm(text) {
    val = confirm(text);
    return (!val) ? false : true;
}

function pageNav(increment) {
    if (increment == "next") {
        document.pageNavForm.page_num.value++;
    } else if (increment == "prev") {
        document.pageNavForm.page_num.value--;
    } else {
        document.pageNavForm.page_num.value=increment;
    }
    document.pageNavForm.submit();
    return false;
}

function changeOrder(orderBy) {
    var currentOrderBy = document.pageNavForm.order_by.value;
    var currentOrder   = document.pageNavForm.order.value;
    if (currentOrderBy == orderBy) {
        document.pageNavForm.order.value = (currentOrder == 'DESC') ? 'ASC' : 'DESC';
    } else {
        document.pageNavForm.order.value = 'ASC';
    }
    document.pageNavForm.order_by.value = orderBy;
    document.pageNavForm.submit();
    return false;
}

function selectItem(id) {
    document.itemSelectForm.item_id.value = id;
    document.itemSelectForm.submit();
    return false;
}

function changeClass(obj, newClass) {
    obj.className = newClass;
}

function changePointer (obj, pointer) {
    pointer = (pointer != '') ? pointer : 'pointer';
    if (isIE && browserVersion < 6 && pointer == 'pointer') {
        pointer = 'hand';
    }

    obj.style.cursor = pointer;
}

function rowHover(obj, newClass) {
  changePointer(obj, 'pointer');
  changeClass(obj, newClass);
}

function doConfirm(text) {
  val=confirm(text);
  return (!val) ? false : true;
}

function update_field(field_id, value) {
    document.getElementById(field_id).value=value;
}

function throw_errors (errors)
{
	if (!errors) return false;

	var msg_str = "The following errors occured:\n\n";
	for(var i=0; i < errors.length; i++) {
		msg_str += "  "+(i+1)+". "+errors[i]+"\n";
	}

	alert (msg_str);
	return true;
}

/**
* Submit a form after selected an option from a dropdown
*/
function dropdownSubmit(select, formName) {
    selectedIndex = select.options.selectedIndex;
    selectedValue = select.options[selectedIndex].value;
    if (selectedValue != null && selectedValue != '') {
        document.forms[formName].submit();
    }
}

function toggle_layer (obj, display_val) {
	if (!display_val) display_val = 'block'
    var lay = document.getElementById(obj);
    var dis = lay.style.display;
    lay.style.display = (dis == 'none') ? display_val : 'none';
	return (lay.style.display == display_val) ? true : false;
}

function toggle_menu (obj) {
    toggle_layer(obj);
    var lay = document.getElementById(obj);
    var cookie_value = lay.style.display;
    setCookie("display_left_menu", cookie_value, 0, '/');
}

function toggle_image (obj) {
    var img = document.getElementById(obj);
    img.src = (img.src.indexOf('/images/toggle_plus.gif') > 0) ? '/images/toggle_minus.gif' : '/images/toggle_plus.gif';
}

function toggle_advanced () {
    var tog = document.searchForm.advanced_search
    tog.value = (tog.value == '1') ? '0' : '1';
    tog = document.pageNavForm.advanced_search
    tog.value = (tog.value == '1') ? '0' : '1';
}

function toggletabs (targetId, name){

	if (document.getElementById){
		for (var tabs=0; tabs < numberoftags; tabs++)
		{
			if (targetId==tabs)
			{
				document.getElementById('show'+tabs).style.display = 'block';
				document.getElementById(name+'tab'+tabs).style.backgroundImage = 'url(/images/tabs/selected_bg.gif)';
				if (tabs == 0)
				{
					document.getElementById(name+'tab'+tabs+'left').style.backgroundImage = 'url(/images/tabs/selected_left.gif)';
				}
				else
				{
					document.getElementById(name+'tab'+tabs+'join').style.backgroundImage = 'url(/images/tabs/selected_join_left.gif)';
					document.getElementById(name+'tab'+tabs+'join').style.fontSize = '14px';
				}
			}
			else
			{
				document.getElementById('show'+tabs).style.display = 'none';
				document.getElementById(name+'tab'+tabs).style.backgroundImage = 'url(/images/tabs/bg.gif)';

				if (tabs == 0)
				{
					document.getElementById(name+'tab'+tabs+'left').style.backgroundImage = 'url(/images/tabs/left.gif)';
				}
				else
				{
					if (targetId==tabs-1)
					{
						document.getElementById(name+'tab'+tabs+'join').style.backgroundImage = 'url(/images/tabs/selected_join_right.gif)';
					}
					else
					{
						document.getElementById(name+'tab'+tabs+'join').style.backgroundImage = 'url(/images/tabs/join.gif)';
					}
					document.getElementById(name+'tab'+tabs+'join').style.fontSize = '8px';
				}
			}
		}

		if (targetId == tabs-1)
		{
			document.getElementById(name+'tabright').style.backgroundImage = 'url(/images/tabs/selected_right.gif)';
		}
		else
		{
			document.getElementById(name+'tabright').style.backgroundImage = 'url(/images/tabs/right.gif)';
		}
	}
}

function browser(id){
  if(nn4) {
  path = document.layers[id]
  }
  else if(ie) {
  path = document.all[id]
  }
  else {
  path = document.getElementById(id)
  }
return path
}

function showReg(id) {
var divcss = id.substring(0,4);
var ctid = id.substring(5,6);
layer = browser(divcss);
   if(nn4){
   layer.display = "block";
   document.conform1.contact_type_id.value=ctid;
   document.conform2.contact_type_id.value=ctid;
   }
   else{
   layer.style.display = "block";
   document.conform1.contact_type_id.value=ctid;
   document.conform2.contact_type_id.value=ctid;
   }
}

function hideReg(id) {
    var divcss = document.conform.contact_type_select.value.substring(0,4);
	if (divcss == id) {
    return false;
	}
	else {

	layer = browser(id)
	   if(nn4){
	   layer.display = "none";
	   }
	   else{
	   layer.style.display = "none";
	   }
	}
}


function select_user(user_id) {
   document.userselect.id.value=user_id;
   document.userselect.submit();
   return false;
 }




function toggle( targetId ){
  if (document.getElementById){
  		target = document.getElementById( targetId );
  			if (target.style.display == "none"){
  				target.style.display = "";
  			} else {
  				target.style.display = "none";
  			}
  	}
}


// navigation tabs

function setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function getBrowserEngine()
{
    if (navigator.userAgent.indexOf("Safari") > 0) {
        return 'safari';
    } else if (navigator.product == "Gecko") {
        return 'gecko';
    } else {
        return 'ie';
    }
}

function getEventType(ev) {
    var browserEngine = getBrowserEngine();

    if (ev == "change") {
        switch (browserEngine) {
            case "safari":
            case "gecko":
                return "change";break;
            case "ie":
                return "onchange";break;
        }
    }
	else if (ev == "mousemove") {
        switch (browserEngine) {
            case "safari":
            case "gecko":
                return "mousemove";break;
            case "ie":
                return "onmousemove";break;
        }
	}
	else {   // (ev == "keypress")
        switch (browserEngine) {
            case "safari":
                return "keydown";break;
            case "gecko":
                return "keypress";break;
            case "ie":
                return "onkeydown";break;
        }
    }
}

var amDone =false;
function addListener(obj, ev, functionCall) {
    var browserEngine = getBrowserEngine();

    switch (browserEngine) {
            case "safari":
            case "gecko":
                obj.addEventListener(getEventType(ev), functionCall, false);
                return false;
            case "ie":
                obj.attachEvent(getEventType(ev), functionCall);
                return false;
    }
}

function toggle_campaign_and_retention () {
	var t = document.getElementById('result_of_telephone');
	var c = document.getElementById('show_campaign_retention');

	if (t.checked) {
		c.style.display = 'none';
	} else {
		c.style.display = 'block';
	}
}

function toggle_period_dates (paid_id, free_id) {
	var s      = document.getElementById('subscription_type_id').options.selectedIndex;
	var type   = document.getElementById('subscription_type_id').options[s].value;
	var period = document.getElementById('period_row');
	var end_dt = document.getElementById('end_date_row');

	if (type == paid_id) {
		period.style.display = 'block';
		end_dt.style.display = 'none';
	} else if (type == free_id) {
		period.style.display = 'none';
		end_dt.style.display = 'block';
	}
}

function round_number (number,dec_places) {
    dec_places = (!dec_places) ? 0 : dec_places;
    return Math.round(number*Math.pow(10,dec_places))/Math.pow(10,dec_places);
}

function open_window(url, width, height, left, top, name, scroll, resize, menu) {
        if (width==null) width = 500;
        if (height==null) height = 500;
        if (left == null) left = 10;
        if (top == null) top = 10;
        if (name == null) name = 'graff_popup';
        if (scroll == null) scroll = 'no';
        if (resize == null) resize = 'no';
		if (menu == null) menu = 'no';

        window.open(url, name, 'toolbar=no,location=no,status=no,directories=no,menubar='+menu+',scrollbars='+scroll+',resizable='+resize+',width='+width+',height='+height+',left='+left+',top='+top, 'replace=false');
}

function getScrollX () // Left most position
{
	var scrOfX = 0;
	if( typeof( window.pageYOffset ) == 'number' )
	{
	  //Netscape compliant
	  return window.pageXOffset;
	}
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
	{
	  //DOM compliant
	  return document.body.scrollLeft;
	}
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
	{
	  //IE6 standards compliant mode
	  return document.documentElement.scrollLeft;
	}
	return 0;
}

function getScrollY() // upper most position
{
	var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' )
	{
	  //Netscape compliant
	  return window.pageYOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	  //DOM compliant
	  return document.body.scrollTop;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	  //IE6 standards compliant mode
	  return document.documentElement.scrollTop;
	}
	return 0;
}

function sendmail ()
{
	var msg = "Would you prefer to email us using our online form, instead of your default email application?";
	if (confirm(msg))
	{
		document.location.href = "/contact_us/email_us";
		return false;
	}
	else
	{
		return true;
	}
}