// Main.js for boomerang capital website

var debugOn=false;

var maxArticleChars=38; // This is for the news articles on the home page.

var tab='';
var subTab='';

var tabs=['home','about','partners','portfolio','news','contact'];
var aboutSubTabs=['scoresby','thomas','shoemaker','owens','gage'];
var partnersSubTabs=['pacific','sovereign','universal'];
var portfolioSubTabs=['campuslogic','profitkeeper','netnova','surface','causwell','joystick','qc','roosevelt','laveen','pecos','sonoran'];

var formFields=['Name','EmailFrom','Telephone','Regarding','Message'];

var defaultTab='home';
var defaultSubTab='';

function onPageLoad() {
  if (document.getElementsByName('defaultTab')[0].value!='') {
    defaultTab=document.getElementsByName('defaultTab')[0].value;
  }
  if (document.getElementsByName('defaultSubTab')[0].value!='') {
    defaultSubTab=document.getElementsByName('defaultSubTab')[0].value;
  }
  showTab(defaultTab);
  showPortfolioSubTab('campuslogic');
  showAboutSubTab('scoresby');
  showPartnersSubTab('pacific');
  if (defaultSubTab!='') {
    eval('show'+defaultTab.charAt(0).toUpperCase()+defaultTab.substring(1)+'SubTab(\''+defaultSubTab+'\');');
  }
  buildNewsPage();
  document.getElementById('newsFrame').src='newsPage.php';
  
}

function showTab(tabName) {
  var tabLink=null;
  for (var i=0;i<tabs.length;++i) {
    document.getElementById(tabs[i]).className='tab';
    tabLink=document.getElementById(tabs[i]+'Link');
    setLinkMouseovers(tabLink,'tabLinkOver','tabLink');
  }
  document.getElementById(tabName).className='tabOpen';
  tabLink=document.getElementById(tabName+'Link');
  tabLink.className='tabLinkOver';
  disableMouseover(tabLink);
  tab=tabName;
}

function showAboutSubTab(subTabName) {
  var subTabLink=null;
  var subTabs=aboutSubTabs;
  for (var i=0;i<subTabs.length;++i) {
    document.getElementById(subTabs[i]).className='subTab';
    subTabLink=document.getElementById(subTabs[i]+'Link')
    setLinkMouseovers(subTabLink,'subTabLinkOver','subTabLink');
  }
  document.getElementById(subTabName).className='subTabOpen';
  subTabLink=document.getElementById(subTabName+'Link');
  subTabLink.className='subTabLinkOver';
  disableMouseover(subTabLink);
  subTab=subTabName;
}

function showPortfolioSubTab(subTabName) {
  var subTabLink=null;
  var subTabs=portfolioSubTabs;
  for (var i=0;i<subTabs.length;++i) {
    document.getElementById(subTabs[i]).className='subTab';
    subTabLink=document.getElementById(subTabs[i]+'Link')
    setLinkMouseovers(subTabLink,'subTabLinkOver','subTabLink');
  }
  document.getElementById(subTabName).className='subTabOpen';
  subTabLink=document.getElementById(subTabName+'Link');
  subTabLink.className='subTabLinkOver';
  disableMouseover(subTabLink);
  subTab=subTabName;
}

function showPartnersSubTab(subTabName) {
  var subTabLink=null;
  var subTabs=partnersSubTabs;
  for (var i=0;i<subTabs.length;++i) {
    document.getElementById(subTabs[i]).className='subTab';
    subTabLink=document.getElementById(subTabs[i]+'Link')
    setLinkMouseovers(subTabLink,'subTabLinkOver','subTabLink');
  }
  document.getElementById(subTabName).className='subTabOpen';
  subTabLink=document.getElementById(subTabName+'Link');
  subTabLink.className='subTabLinkOver';
  disableMouseover(subTabLink);
  subTab=subTabName;
}

function setLinkMouseovers(element,mouseoverClass,mouseoutClass) {
  if (debugOn) alert('Main.js::setLinkMouseovers::element='+element.id.toString());
  element.className=mouseoutClass;
  element.onmouseover=function() {
    this.className=mouseoverClass;
    this.style.cursor='pointer';
  };
  element.onmouseout=function() {
    this.className=mouseoutClass;
  };
}

function disableMouseover(element) {
  element.onmouseover=function() {this.style.cursor='default'};
  element.onmouseout=function() {};
}

function buildNewsPage() {
  ajaxObj = getAjaxObj();
  if (ajaxObj==false) return;
  var cmd='news.php';
  ajaxObj.onreadystatechange=function() {
	  if (ajaxObj.readyState==4) {
	  //alert(ajaxObj.responseText);
	    var newsRes=eval('('+ajaxObj.responseText+');');
	    var newsL=document.getElementById('newsLetters');
	    var entries=4; // number of Letters to display (default 4)
	    var totalEntries=newsRes.newsLetters.length;
	    if (totalEntries<4) {
	      entries=totalEntries;
	    }
	    var endIndex=totalEntries-entries; // index to stop at 
	    for (var i=totalEntries-1;i>=endIndex;--i) {
	   // for (var i=0;i<newsRes.newsLetters.length;++i) {
	      (function(i) { // big thanks to http://www.room51.co.uk/js/closures.html
		      nlText=newsRes.newsLetters[i].link.toString();
		      var span=document.createElement('span');
		      span.onclick=function() {window.location=newsRes.newsLetters[i].link;};
		      span.onmouseover=function() {this.className='newsLetterLinkOver'};
		      span.onmouseout=function() {this.className='newsLetterLink'};
		      var boomSpan=document.createElement('span');
		      boomSpan.className='boomerang';
		      boomSpan.appendChild(document.createTextNode('>'));
		      span.appendChild(boomSpan);
		      var text=document.createTextNode(newsRes.newsLetters[i].text);
		      span.className='newsLetterLink';
		      span.appendChild(text);
		      newsL.appendChild(span);
	      })(i);
	    }
	    
	    var newsArticles=document.getElementById('newsArticles');
	    var entries=4; // number of articles to display (default 4)
	    var totalEntries=newsRes.newsArticles.length;
	    if (totalEntries<4) {
	      entries=totalEntries;
	    }
	    var endIndex=totalEntries-entries; // index to stop at 
	    for (var j=totalEntries-1;j>=endIndex;--j) {
	     (function(j){
	      var tr=document.createElement('tr');
	      var td1=document.createElement('td');
	      td1.className='dateCell';
	      var td2=document.createElement('td');
	      td2.className='boomerangCell';
	      var td3=document.createElement('td');
	      td3.className='aticleTextCell';
	      
	      var span=document.createElement('span');
	      span.className='articleLink';
	      var text=newsRes.newsArticles[j].text;
	      if (text.length>maxArticleChars) text=text.substring(0,maxArticleChars)+'...';
	      span.appendChild(document.createTextNode(text));
	      if (newsRes.newsArticles[j].newWindow==0) {
	        span.onclick=function() {document.getElementById('newsFrame').src=newsRes.newsArticles[j].link;showTab('news')};
	      } else {
	        span.onclick=function() {window.open(newsRes.newsArticles[j].link)};
	      }
		  span.onmouseover=function() {this.className='articleLinkOver'};
		  span.onmouseout=function() {this.className='articleLink'};
		  
	      td1.appendChild(document.createTextNode(newsRes.newsArticles[j].date));
	      td2.appendChild(document.createTextNode('>'));
	      td3.appendChild(span);
	      tr.appendChild(td1);
	      tr.appendChild(td2);
	      tr.appendChild(td3);
	      newsArticles.appendChild(tr);
	     })(j);
	    }
	  }
  };
  ajaxObj.open('GET',cmd,true);
  ajaxObj.send(null);
}


function sendEmail() {
  var cmd='asp/contact.asp';
  var params='';
  for (var k=0;k<formFields.length;++k) {
    if (k!=0) params+='&';
    var fieldName=formFields[k];
    var fieldValue=escape(eval('document.forms[0].'+fieldName+'.value'));
    if (fieldValue=='') {
      alert(fieldName+' cannot be left blank.');
      return;
    }
    params+=fieldName+'='+fieldValue;
  }
  ajaxObj=getAjaxObj();
  ajaxObj.onreadystatechange=function() {
	  if(ajaxObj.readyState==4) {
	    document.getElementById('loadingDiv').style.display='none';
	    var resp=ajaxObj.responseText;
	    if (resp=='There was an error sending the email.') {
	      alert(resp);
	    } else {
	      document.forms[0].reset();
	      document.getElementById('emailForm').style.display='none';
	      document.getElementById('emailConfirm').style.display='block';
	    }
	  }
  };
  ajaxObj.open('POST',cmd,true);
  //Send the proper header information along with the request
  ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  ajaxObj.setRequestHeader("Content-length", params.length);
  ajaxObj.setRequestHeader("Connection", "close");
  //alert(cmd+' with params:'+params)
  ajaxObj.send(params);
  //document.getElementById('loadingDiv').style.display='';
  document.forms[0].reset();
      document.getElementById('emailForm').style.display='none';
      document.getElementById('emailConfirm').style.display='';
}

function openTermsWindow() {
  var termsWindow=window.open('terms.html','termsWindow',
  	'height=500,width=400,'+
  	'toolbar=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes');
  	termsWindow.moveTo(50,50);
}

function openLinkWindow() {
  var link='testing link';
  var linkWindow=window.open('link.html','linkWindow',
  	'height=100,width=650,'+
  	'toolbar=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes');
  	linkWindow.moveTo(50,50);
  	//window.frames['linkWindow'].getElementById('linkDiv').appendChild(document.createTextElement(link));
}

function getAjaxObj() { // logic borrowed from www.w3schools.com
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
    //  alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
  return xmlHttp;
  }