/***********************************************

UTILITY FUNCTIONS

************************************************/

// function to add events to already existing ones
function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

// function to hide email addresses from robots.
function insert_email(acct, dmn, title, text) {
	document.write('<a href="mailto:' + acct + '@' + dmn + '" title="' + title + '">' + text + '</a>');
}

// clear the default value of a textfield
function clearDefault(el) {
  if (el.defaultValue==el.value) el.value = "";
}

// restore the default value of a textfield
function restoreDefault(el, phrase) {
  if (el.value=='') el.value = phrase;
}

// turn off the callouts
function clearCalls('leftNav') {
	var DDs = document.getElementById('leftNav').getElementsByTagName('dd');
	for (var k=0;k<DDs.length;k++) {
		DDs[k].className = 'off';
	}
}
/*
JUMP MENU FUNCTION

*/
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

// function for emailing article to a friend.
function email_article(emailID) {
	var emailUrl = "/article_email.php?id=" + emailID;
	var emailName = "emailer";
	var emailAttr = "width=500,height=500,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no";
	window.open(emailUrl, emailName, emailAttr);
}

// function to show print preview page.
function print_article(printID) {
	var printURL = "/article_print.php?id=" + printID;
	var printName = "printer";
	var printAttr = "width=600,height=550,resizable=no,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no";
	window.open(printURL, printName, printAttr);
}

// toggle the FAQ sections
function Btn(btn5235) {
	var target = document.getElementById('button5235');
	if (target.style.display == 'button') {
		target.style.display = 'none';
	} else {
		target.style.display = 'button';
	}
}

function validate_srch() {
	var frmEl = document.getElementById('srch');
	var srchText = document.getElementById('srchTxt');
	var error = '';
	if (srchText.value == 'Keyword or phrase...') {
		error += 'Please enter a search criteria.';
	}
	if (error == '') {
		return true;
	} else {
		alert(error);
		return false;
	}
}

function validate_track_login() {
	var frmEl = document.getElementById('advTrack');
	var username = document.getElementById('usn');
	var password = document.getElementById('psw');
	var error = '';
	
	if (username.value == '') {
		error += 'Please enter your username.\n';
	}
	if (password.value == '') {
		error += 'Please enter your password.';
	}
	
	if (error == '') {
		return true;
	} else {
		alert(error);
		return false;
	}
}

function validate_upload() {
	var frmEl = document.getElementById('advUpload');
	var name = document.getElementById('name');
	var company = document.getElementById('company');
	var email = document.getElementById('ea').value;
	var phone = document.getElementById('phone');
	
	var error = '';
	var at="@";
	var dot=".";
	var lat=email.indexOf(at);
	var lstr=email.length;
	var ldot=email.indexOf(dot);
	if (email.indexOf(at)==-1) {
		error += "Please enter a valid email address.\n";
	} else if (email.indexOf(at)==-1 || email.indexOf(at)==0 || email.indexOf(at)==email) {
		error += "Please enter a valid email address.";
	} else if (email.indexOf(dot)==-1 || email.indexOf(dot)==0 || email.indexOf(dot)==email) {
		error += "Please enter a valid email address.\n";
	} else if (email.indexOf(at,(lat+1))!=-1) {
		error += "Please enter a valid email address.\n";
	} else if (email.substr(lat-1,lat)==dot || email.substr(lat+1,lat+2)==dot) {
		error += "Please enter a valid email address.";
	} else if (email.indexOf(dot,(lat+2))==-1) {
		error += "Please enter a valid email address.\n";
	} else if (email.indexOf(" ")!=-1) {
		error += "Please enter a valid email address.\n";
	} else if (email == '') {
		error += "Please enter your email address.\n";
	}
	
	if (name.value == '') {
		error += 'Please enter your name.\n';
	}
	if (company.value == '') {
		error += 'Please enter the advertiser\'s company name.\n';
	}
	if (phone.value == '') {
		error += 'Please enter your phone number.\n';
	}

	if (error == '') {
		document.getElementById('Submit').disabled = true;
		document.getElementById('uploader').style.display = 'block';
		return true;
	} else {
		alert(error);
		return false;
	}
}

function validate_contact() {
	var frmEl = document.getElementById('pecConnect');
	var name = document.getElementById('emName').value;
	var email = document.getElementById('emAddr').value;
	var subject = document.getElementById('emSub').value;
	var message = document.getElementById('emSub').value;
	
	var error = '';
	var at="@";
	var dot=".";
	var lat=email.indexOf(at);
	var lstr=email.length;
	var ldot=email.indexOf(dot);
	if (email.indexOf(at)==-1) {
		error += "Please enter a valid email address.\n";
	} else if (email.indexOf(at)==-1 || email.indexOf(at)==0 || email.indexOf(at)==email) {
		error += "Please enter a valid email address.";
	} else if (email.indexOf(dot)==-1 || email.indexOf(dot)==0 || email.indexOf(dot)==email) {
		error += "Please enter a valid email address.\n";
	} else if (email.indexOf(at,(lat+1))!=-1) {
		error += "Please enter a valid email address.\n";
	} else if (email.substr(lat-1,lat)==dot || email.substr(lat+1,lat+2)==dot) {
		error += "Please enter a valid email address.";
	} else if (email.indexOf(dot,(lat+2))==-1) {
		error += "Please enter a valid email address.\n";
	} else if (email.indexOf(" ")!=-1) {
		error += "Please enter a valid email address.\n";
	} else if (email == '') {
		error += "Please enter your email address.\n";
	}
	
	if (name == '') {
		error += 'Please enter your name.\n';
	}
	if (subject == '') {
		error += 'Please enter a subject.\n';
	}
	if (message == '') {
		error += 'Please enter a message.\n';
	}

	if (error == '') {
		return true;
	} else {
		alert(error);
		return false;
	}
}

/***********************************************

ADOBE FLASH EMBED FUNCTIONS

************************************************/


//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, "", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}




/***********************************************

ENVIRONMENTAL INTITIALIZATION FUNCTION

************************************************/

function init() {
	// overcomes lack of support for dt:hover+dd CSS directive
	var t = document.getElementById('leftNav').getElementsByTagName('dt');
	var d = document.getElementById('leftNav').getElementsByTagName('dd');
	for (var i=0;i<t.length;i++) {
		d[i].className = 'off';
		t[i].tgt = d[i];
		t[i].onmouseover = function() {
			this.tgt.className = 'hvr';
		}
		t[i].onmouseout = function() {
			this.tgt.className = 'off';
		}
	}
}

// add events
addEvent(window, 'load', init);