// JavaScript Document
//Javascript functions for OutAndProudForObama.com

function MM_findObj(n, d) 
{
  //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() 
{
  //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3)
  {
    if ((obj=MM_findObj(args[i]))!=null)
    {
      v=args[i+2];
      if (obj.style) 
  	  {
	    obj=obj.style;
	    v=(v=='show')?'visible':(v=='hide')?'hidden':v;
	  }
      obj.visibility=v;
    }
  }
}

function MM_showHidePositionLayers() 
{
  var x = 0;
  var y = 0;
  var i,p,v,obj,e,args=MM_showHidePositionLayers.arguments;
  for (i=0; i<(args.length-3); i+=4)
  {
    if ((obj=MM_findObj(args[i]))!=null)
    {
	  if (document.all)
	  {
		x = event.clientX + document.documentElement.scrollLeft - 200;
		y = event.clientY + document.documentElement.scrollTop;
	  }
	  else
	  {
		e = args[i+3];  
		x = e.pageX - 200;
		y = e.pageY;	  
	  }		
      v=args[i+2];
      if (obj.style) 
  	  {
	    obj=obj.style;
	  }
	  if (v=='show')
	  {
	    obj.visibility='visible';
		obj.top = y + 'px';
		obj.left = x + 'px';
	  }
	  else if (v=='hide')
	  {
	    obj.visibility='hidden';
	  }
    }
  }
}


function checkPrideFundraiserForm(form)
{
    if (form.select_amount[0].checked == false &&
        form.select_amount[1].checked == false &&
        form.select_amount[2].checked == false &&
        form.select_amount[3].checked == false)
    {
        alert("Please specify a goal amount.");
	    return false;
    }
    if (form.first_name.value == "")
	{
		alert("Please fill out your first name");
		form.first_name.focus();
		form.first_name.select();
		return false;
	}
	if (form.last_name.value == "")
	{
		alert("Please fill out your last name");
		form.last_name.focus();
		form.last_name.select();
		return false;
	}	
	toHasDot = form.email.value.indexOf(".");
	toHasAt = form.email.value.indexOf("@");
	if (toHasDot == -1 || toHasAt == -1)
	{
		alert("Please enter a valid email address.");
		form.email.focus();
		form.email.select();
		return false;
	}	
	if (form.address1.value == "" && form.address2.value == "")
	{
		alert("Please fill out your street address");
		form.address1.focus();
		form.address1.select();		 
		return false;
	}
	if (form.city.value == "")
	{
		alert("Please fill out your city");
		form.city.focus();
		form.city.select();		 
		return false;
	}
	if (form.state.value == "")
	{
		alert("Please fill out your state");
		form.state.focus();
		form.state.select();		 
		return false;
	}
	if (form.zip.value == "")
	{
		alert("Please fill out your zip");
		form.zip.focus();
		form.zip.select();		 
		return false;
	}  
	if (form.phone.value == "")
	{
		alert("Please provide a phone number so we may contact you by phone if necessary.");
		form.phone.focus();
		form.phone.select();
		return false;
	}   
	document.pride_fundraiser.submit_info.disabled = true;    
	return true; 
}

function checkPetitionForm(form)
{
    if (form.first_name.value == "")
	{
		alert("Please fill out your first name");
		form.first_name.focus();
		form.first_name.select();
		return false;
	}
	if (form.last_name.value == "")
	{
		alert("Please fill out your last name");
		form.last_name.focus();
		form.last_name.select();
		return false;
	}	
	toHasDot = form.email.value.indexOf(".");
	toHasAt = form.email.value.indexOf("@");
	if (toHasDot == -1 || toHasAt == -1)
	{
		alert("Please enter a valid email address.");
		form.email.focus();
		form.email.select();
		return false;
	}	
	if (form.address1.value == "" && form.address2.value == "")
	{
		alert("Please fill out your street address");
		form.address1.focus();
		form.address1.select();		 
		return false;
	}
	if (form.city.value == "")
	{
		alert("Please fill out your city");
		form.city.focus();
		form.city.select();		 
		return false;
	}
	if (form.state.value == "")
	{
		alert("Please fill out your state");
		form.state.focus();
		form.state.select();		 
		return false;
	}
	if (form.zip.value == "")
	{
		alert("Please fill out your zip");
		form.zip.focus();
		form.zip.select();		 
		return false;
	}    
	document.petition.sign_petition.disabled = true;    
	return true; 
}

function checkMapSupporterForm(form)
{
    if (form.first_name.value == "")
	{
		alert("Please fill out your first name");
		form.first_name.focus();
		form.first_name.select();
		return false;
	}
	if (form.last_name.value == "")
	{
		alert("Please fill out your last name");
		form.last_name.focus();
		form.last_name.select();
		return false;
	}	
	toHasDot = form.email.value.indexOf(".");
	toHasAt = form.email.value.indexOf("@");
	if (toHasDot == -1 || toHasAt == -1)
	{
		alert("Please enter a valid email address.");
		form.email.focus();
		form.email.select();
		return false;
	}	
	if (form.city.value == "")
	{
		alert("Please fill out your city");
		form.city.focus();
		form.city.select();		 
		return false;
	}
	if (form.zip.value == "")
	{
		alert("Please fill out your zip");
		form.zip.focus();
		form.zip.select();		 
		return false;
	}    
	document.petition.submit_info.disabled = true;    
	return true; 
}


function checkSpreadTheWordEmailForm(form)
{
    tinyMCE.triggerSave();
	// Check FROM fields
	if (form.from_name.value == "")
	{
		alert("Please fill out your name in the FROM field");
		form.from_name.focus();
		form.from_name.select();
		return false;
	}
	fromHasDot = form.from_email.value.indexOf(".");
	fromHasAt = form.from_email.value.indexOf("@");
	if (fromHasDot == -1 || fromHasAt == -1)
	{
		alert("Please enter a valid email address in the FROM field.");
		form.from_email.focus();
		form.from_email.select();
		return false;
	}
	
	// Check TO fields
	if (form.to_name1.value == "" && form.to_name2.value == "" && form.to_name3.value == "" && form.to_name4.value == "" && form.to_name5.value == "")
	{
		alert("Please fill out at least one name in the TO field");
		form.to_name1.focus();
		form.to_name1.select();
		return false;
	}	
	to1HasDot = form.to_email1.value.indexOf(".");
	to1HasAt = form.to_email1.value.indexOf("@");
	to2HasDot = form.to_email2.value.indexOf(".");
	to2HasAt = form.to_email2.value.indexOf("@");
	to3HasDot = form.to_email3.value.indexOf(".");
	to3HasAt = form.to_email3.value.indexOf("@");
	to4HasDot = form.to_email4.value.indexOf(".");
	to4HasAt = form.to_email4.value.indexOf("@");
	to5HasDot = form.to_email5.value.indexOf(".");
	to5HasAt = form.to_email5.value.indexOf("@");	
	if (form.to_email1.value != "" || form.to_name1.value !="")
	{
		if (to1HasDot == -1 || to1HasAt == -1)
		{
			alert("Please enter a valid email address in the first TO field.");
			form.to_email1.focus();
			form.to_email1.select();
			return false;
		}
	}
	if (form.to_email1.value != "" && form.to_name1.value == "")
	{
		alert("Please enter a name in the first TO field.");
		form.to_name1.focus();
		form.to_name1.select();
		return false;		
	}
	if (form.to_email2.value != "" || form.to_name2.value !="")
	{
		if (to2HasDot == -1 || to2HasAt == -1)
		{
			alert("Please enter a valid email address in the second TO field.");
			form.to_email2.focus();
			form.to_email2.select();
			return false;
		}
	}
	if (form.to_email2.value != "" && form.to_name2.value == "")
	{
		alert("Please enter a name in the second TO field.");
		form.to_name2.focus();
		form.to_name2.select();
		return false;		
	}	
	if (form.to_email3.value != "" || form.to_name3.value !="")
	{
		if (to3HasDot == -1 || to3HasAt == -1)
		{
			alert("Please enter a valid email address in the third TO field.");
			form.to_email3.focus();
			form.to_email3.select();
			return false;
		}
	}
	if (form.to_email3.value != "" && form.to_name3.value == "")
	{
		alert("Please enter a name in the third TO field.");
		form.to_name3.focus();
		form.to_name3.select();
		return false;		
	}	
	if (form.to_email4.value != "" || form.to_name4.value !="")
	{
		if (to4HasDot == -1 || to4HasAt == -1)
		{
			alert("Please enter a valid email address in the fourth TO field.");
			form.to_email4.focus();
			form.to_email4.select();
			return false;
		}
	}
	if (form.to_email4.value != "" && form.to_name4.value == "")
	{
		alert("Please enter a name in the fourth TO field.");
		form.to_name4.focus();
		form.to_name4.select();
		return false;		
	}	
	if (form.to_email5.value != "" || form.to_name5.value !="")
	{
		if (to5HasDot == -1 || to5HasAt == -1)
		{
			alert("Please enter a valid email address in the fifth TO field.");
			form.to_email5.focus();
			form.to_email5.select();
			return false;
		}
	}
	if (form.to_email5.value != "" && form.to_name5.value == "")
	{
		alert("Please enter a name in the fifth TO field.");
		form.to_name5.focus();
		form.to_name5.select();
		return false;		
	}	
	return true; 
}

//v1.1
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
//These functions are for writing Flash and ActiveX content with Javascript in order to avoid the "Click to activate this control" problem in Internet Explorer
//source: www.adobe.com/devnet/activecontent/articles/devletter.html
function AC_AX_RunContent(){
  var ret = AC_AX_GetArgs(arguments);
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_YouTube_RunContent(){
  //This is a function created by Jamie McDaniel on 2/25/2007 specifically for YouTube and Google video. 
  var ret = AC_AX_GetArgs(arguments);
  AC_GenerateEmbed(ret.embedAttrs);
}

function AC_AX_GetArgs(args){
  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 "pluginspage":
      case "type":
      case "src":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "data":
      case "codebase":
      case "classid":
      case "id":
      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":
        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 "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];
    }
  }
  return ret;
}

//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_GenerateEmbed(embedAttrs) 
{ 
//This is a modified version of the AC_Generateobj function created by Adobe.  For YouTube and Google video files, I needed just the <embed> tag.  Otherwise
//if you wrap <embed> in the <object> tag (like the original AC_Generateobj function does) you get the "Click to Activate This Control" problem in Internet Explorer
  var str = '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "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;
}
