var linkID;
var lastSection;
var lastPiece;
var lastClass;
var lastPage;
var topPad=129;
var leftPad=21;
var getDone=true;
var creditsNav=true;
var creditsGrid=true;
var lmCat;
var curLMNum;

var frameName = new Array();
frameName['category']='cat_frame';
frameName['customize']='customize_frame';
frameName['login']='login_frame';
frameName['signup']='signup_frame';
frameName['account']='inner_frame';
frameName['help']='inner_frame';
frameName['addLink']='inner_frame';

var col = new Array();
col[0]=800;
col[1]=0;
col[2]=200;
col[3]=400;
col[4]=600;

var subcol = new Array();
subcol[0]=180;
subcol[1]=0;
subcol[2]=20;
subcol[3]=40;
subcol[4]=60;
subcol[5]=80;
subcol[6]=100;
subcol[7]=120;
subcol[8]=140;
subcol[9]=160;

var row = new Array();
row[1]=0;
row[2]=200;
row[3]=400;
row[4]=600;
row[5]=800;

var subrow = new Array();
subrow[1]=0;
subrow[2]=20;
subrow[3]=40;
subrow[4]=60;
subrow[5]=80;
subrow[6]=100;
subrow[7]=120;
subrow[8]=140;
subrow[9]=160;
subrow[10]=180;
                
function eventHandler(field, event, isSubmit, btn) {
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13) {
    if(isSubmit) document.getElementById(btn).click()
    return false;
  } 
  else
    return true;
}

function getCatName(selectId){
  var x=document.getElementById(selectId)
  return x.options[x.selectedIndex].value
}

function getLMPage(page,selectId){
  if(!getDone) return false;
  getDone=false;
  var cat = getCatName(selectId)
  if(page=='lmPage'){
    ajaxpage('gp_innerPage.php?page=lmPage&cat='+cat,'lm_main',false,'account_form',false,true)
  }
  
  return false;
}

function getExPage(page,cat){
  if(!getDone) return false;
  if(page=='useCredits'){
    document.getElementById('toolTip_frame').innerHTML='Loading...';
    document.getElementById('toolTip_frame').style.top = '128px';
    document.getElementById('toolTip_frame').style.left = '0px';
    document.getElementById('toolTip_frame').style.display = 'block';
    ajaxpage('gp_useExCredits.php?cat=' + cat,'noshow_frame',false,'',false,false);
  }
  
  return false;
}

function getPage(page){
  if(!getDone) return false;
  getDone=false;
  if(page=='category' || page=='customize' || page=='login' || page=='signup'){
    closeNav(page);
    checkFrame(frameName[page]);
    setLastPage(page);
    getDone=true;
  }
  else if(page=='logout'){
    ajaxpage('gp_processLogin.php','gp_navbar',true,'logout_form',false,true);
    closeInner('logout');
  }
  else if(page=='close_acct'){
    closeInner('close_acct');
    getDone=true;
  }
  else if(page=='account'){
    closeNav(page);
    if(document.getElementById('inner_frame').style.display == 'block' &&
       lastPage=='account'){
      closeInner(page);
      getDone=true;
    }
    else{
      ajaxpage('gp_innerPage.php?page=account','inner_frame',false,'account_form',false,true);
      document.getElementById('inner_frame').style.display = 'block';
    }
    setLastPage(page);
  }
  else if(page=='addLink'){
    closeNav(page);
    if(document.getElementById('inner_frame').style.display == 'block' &&
       lastPage=='addLink'){
      closeInner(page);
      getDone=true;
    }
    else{
      ajaxpage('gp_innerPage.php?page=addLink','inner_frame',false,'addlink_form',false,true);
      document.getElementById('inner_frame').style.display = 'block';
    }
    setLastPage(page);
  }
  else if(page=='useCredits'){
    closeNav(page);
    document.getElementById('toolTip_frame').innerHTML='Loading...';
    document.getElementById('toolTip_frame').style.top = '128px';
    document.getElementById('toolTip_frame').style.left = '0px';
    document.getElementById('toolTip_frame').style.display = 'block';
    getDone=true;
    creditsNav=false;
    creditsGrid=false;
    ajaxpage('gp_creditnav.php','gp_navbar',false,'',false,true);
    ajaxpage('gp_creditgrid.php','noshow_frame',false,'',false,false);
    setLastPage(page); 
  }
  else if(page=='useExCredits'){
    closeNav(page);
    document.getElementById('toolTip_frame').innerHTML='Loading...';
    document.getElementById('toolTip_frame').style.top = '128px';
    document.getElementById('toolTip_frame').style.left = '0px';
    document.getElementById('toolTip_frame').style.display = 'block';
    getDone=true;
    ajaxpage('gp_useExCredits.php','noshow_frame',false,'',false,false);
    setLastPage(page);
  }
  else if(page=='commitCredits'){
    document.getElementById('toolTip_frame').innerHTML='Loading...';
    document.getElementById('toolTip_frame').style.top = '128px';
    document.getElementById('toolTip_frame').style.left = '0px';
    document.getElementById('toolTip_frame').style.display = 'block';
    getDone=true;
    setLastPage(page);
    getPage('account');
    creditsNav=false;
    creditsGrid=false;
    ajaxpage('gp_creditgrid.php?action=commit','noshow_frame',false,'',false,false);
  }
  else if(page=='cancelCredits'){
    closeNav(page);
    document.getElementById('toolTip_frame').innerHTML='Loading...';
    document.getElementById('toolTip_frame').style.top = '128px';
    document.getElementById('toolTip_frame').style.left = '0px';
    document.getElementById('toolTip_frame').style.display = 'block';
    getDone=true;
    setLastPage(page);
    getPage('account');
    creditsNav=false;
    creditsGrid=false;
    ajaxpage('gp_creditnav.php?action=cancel','gp_navbar',false,'',false,true);
    ajaxpage('gp_creditgrid.php?action=cancel','noshow_frame',false,'',false,false);
    ajaxpage('gp_innerPage.php?page=link_manager','account_main',false,'',false,true);
  }
  else if(page=='help'){
    closeNav(page);
    if(document.getElementById('inner_frame').style.display == 'block' &&
       lastPage=='help'){
      closeInner(page);
      getDone=true;
    }
    else{
      ajaxpage('gp_innerPage.php?page=help','inner_frame',false,'help_form',false,true);
      document.getElementById('inner_frame').style.display = 'block';
    }
    setLastPage(page);
  }
  else if(page=='acct_changepw'){
    ajaxpage('gp_innerPage.php?page=acct_changepw','account_main',false,'account_form',false,true);
  }
  else if(page=='acct_update'){
    ajaxpage('gp_innerPage.php?page=acct_update','account_main',false,'account_form',false,true);
  }
  else if(page=='link_manager'){
    ajaxpage('gp_innerPage.php?page=link_manager','account_main',false,'',false,true);
  }
  else if(page=='empty'){
    document.getElementById('account_main').innerHTML = '';
    getDone=true;
  }
  
  return false;
}

function checkFrame(frame){
  if(document.getElementById(frame).style.display == 'block')
    document.getElementById(frame).style.display = 'none';
  else
    document.getElementById(frame).style.display = 'block';
}

function setLastPage(page){
  if(lastPage==page) lastPage='';
  else lastPage=page;
}

function closeNav(page){
  if(page!='login') document.getElementById('login_frame').style.display = 'none';
  if(page!='signup') document.getElementById('signup_frame').style.display = 'none';
  if(page!='customize') document.getElementById('customize_frame').style.display = 'none';
  if(page!='account' && page!='help' && page!='addLink') closeInner(page);
  if(page!='category') document.getElementById('cat_frame').style.display = 'none';
}

function checkLast(){
  if(lastSection>0 && lastPiece>0){
    if(document.getElementById('s'+lastSection+'p'+lastPiece).className=='piece_clicked'){
      document.getElementById('s'+lastSection+'p'+lastPiece).className=lastClass;
    }
  }
}

function getLink(link_id,section,piece){
  checkLast();
  linkID=link_id;
  lastSection=section;
  lastPiece=piece;
  lastClass=document.getElementById('s'+section+'p'+piece).className;
  document.getElementById('s'+section+'p'+piece).className='piece_clicked';
  document.getElementById('toolTip_frame').innerHTML='Loading...';
  var ttpos = new Array();
  ttpos=getTTPOS(section,piece);
  document.getElementById('toolTip_frame').style.top = ttpos['ttTop'] + 'px';
  document.getElementById('toolTip_frame').style.left = ttpos['ttLeft'] + 'px';
  document.getElementById('toolTip_frame').style.display = 'block';
  ajaxpage('gp_getLink.php?id='+link_id+'&s='+section+'&p='+piece,'toolTip_frame',false,'',false,true);
  return false;
}

function followLink(action){
  var notClose=true
  if(action=='bookmark'){
    ajaxpage('gp_setBookmark.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    lastClass='piece_bookmark';
  }
  else if(action=='reserved'){
    ajaxpage('gp_removeReserved.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    lastClass='piece';
  }
  else if(action=='select'){
    document.getElementById('toolTip_frame').innerHTML='Working...';
    ajaxpage('gp_linkForm.php','toolTip_frame',false,'',false,true);
    return false;
  }
  else if(action=='remove_bookmark'){
    ajaxpage('gp_removeBookmark.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    lastClass='piece_visited';
  }
  else if(action=='remove_visited'){
    ajaxpage('gp_removeVisited.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    lastClass='piece';
  }
  else if(action=='mark_visited'){
    ajaxpage('gp_setVisited.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    lastClass='piece_visited';
  }
  else if(action=='go'){
    if(lastClass!='piece_bookmark')
      ajaxpage('gp_setVisited.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    else
      ajaxpage('gp_setBookmark.php?s='+lastSection+'&p='+lastPiece,'noshow_frame',false,'',false,false);
    var windowName = "s" + lastSection + 'p' + lastPiece;
    var URL = document.getElementById('ls'+lastSection+'lp'+lastPiece).href;
    eval("link_"+windowName+" = window.open( '"+URL+"', '" +windowName+"');" );
    if(lastClass!='piece_bookmark')
        lastClass='piece_visited';
  }
  else if(action=='addLink'){
    if(document.getElementById('s'+lastSection+'p'+lastPiece).className=='piece_clicked'){
      document.getElementById('s'+lastSection+'p'+lastPiece).className=lastClass;
    }
    document.getElementById('toolTip_frame').style.display = 'none'
    getPage('addLink')
    notClose=false
  }
  else{
    if(document.getElementById('s'+lastSection+'p'+lastPiece).className=='piece_clicked'){
      document.getElementById('s'+lastSection+'p'+lastPiece).className=lastClass;
    }      
    document.getElementById('toolTip_frame').style.display = 'none';
    notClose=false
  }
  if(notClose){
  	document.getElementById('toolTip_frame').innerHTML='Working...';
	}
  return false;
}

function processLogin(){
  document.getElementById('toolTip_frame').innerHTML='Loading...';
  document.getElementById('toolTip_frame').style.top = '128px';
  document.getElementById('toolTip_frame').style.left = '0px';
  document.getElementById('toolTip_frame').style.display = 'block';
  document.getElementById('login_frame').style.display = 'none';
  ajaxpage('gp_processLogin.php','gp_navbar',true,'login_form',false,true);
  document.getElementById('login_pw').value="";
}

function processHelpForm(){
  var noEmpty=true
  
  if(document.getElementById('help_email').value==""){
    document.getElementById('alert_email').innerHTML='<font color="red">Required</font>'
    document.getElementById('alert_email').style.display='block'
    noEmpty=false
  }
    
  if(document.getElementById('help_subject').value==""){
    document.getElementById('alert_subject').innerHTML='<font color="red">Required</font>'
    document.getElementById('alert_subject').style.display='block'
    noEmpty=false
  }
    
  if(document.getElementById('help_msg').value==""){
    document.getElementById('alert_msg').innerHTML='<font color="red">Required</font>'
    document.getElementById('alert_msg').style.display='block'
    noEmpty=false
  }
  
  if(noEmpty==true){  
    ajaxpage('gp_innerPage.php?page=help','inner_frame',true,'help_form',false,true)
  }
}

function processChangePW(){
  ajaxpage('gp_processChangePW.php','account_main',true,'acct_changePW',false,true);
  document.getElementById('current_pw').value="";
  document.getElementById('new_pw').value="";
  document.getElementById('retype_pw').value="";
}

function processAcctUpdate(){
  ajaxpage('gp_processAcctUpdate.php','account_main',true,'acct_update',false,true);
  document.getElementById('acct_fname').value="";
  document.getElementById('acct_lname').value="";
  document.getElementById('acct_email').value="";
}

function processSignup(){
  document.getElementById('signup_frame').style.display = 'none';
  ajaxpage('gp_processSignup.php','gp_navbar',true,'signup_form',false,true);
  document.getElementById('signup_email').value="";
}

function processLink(){
  ajaxpage('gp_setReserved.php','noshow_frame',true,'link_form',false,false);
	document.getElementById('toolTip_frame').innerHTML='Working...';
  getWHPOS(document.getElementById('toolTip_frame').style.left,document.getElementById('toolTip_frame').style.top,true);
}

function processEditLMLink(num,linkdata){
  curLMNum=num;
  ajaxpage('gp_setLMLink.php','l'+num,true,'edit_link',false,true);
}

function processCancelLMLink(num,linkdata){
  curLMNum=num;
  ajaxpage('gp_cancelLMLink.php','l'+num,true,'edit_link',false,true);
}

function processEditLMDesc(num,linkdata){
  curLMNum=num;
  ajaxpage('gp_setLMDesc.php','d'+num,true,'edit_link',false,true);
}

function processCancelLMDesc(num,linkdata){
  curLMNum=num;
  ajaxpage('gp_cancelLMDesc.php','d'+num,true,'edit_link',false,true);
}

function closeInner(page){
  document.getElementById('inner_frame').style.display = 'none';
  document.getElementById('inner_frame').innerHTML='';
  return false;
}

function showGrid(){
  var cn;
  if(document.getElementById('showGrid').checked) cn='section';
  else cn='section_clear';
  
  for(i = 1;i <= 25; i++){
    document.getElementById('s'+i).className=cn;
  }
}

function showBookmarks(){
  if(document.getElementById('showBookmarks').checked)    
    ajaxpage('gp_showBookmarks.php?show=yes','noshow_frame',false,'',true,false);
  else    
    ajaxpage('gp_showBookmarks.php?show=no','noshow_frame',false,'',true,false);
}

function getTTPOS(s,p){
  var firstTop=s/5;
  var secondTop=p/10;
  var rValue = new Array();
  
  if(s%5)
    firstTop=(s+(5-(s%5)))/5;
  
  if(p%10)
    secondTop=(p+(10-(p%10)))/10;
    
  rValue['ttTop']=topPad + row[firstTop] + subrow[secondTop];
  rValue['ttLeft']=leftPad+ col[s%5] + subcol[p%10];
  return getWHPOS(rValue['ttLeft'],rValue['ttTop'],false);
}

function getWHPOS(ttLeft,ttTop,isSet){
  var rV = new Array();
  var curWidth;
  var curHeight;
  
  var ttLeftStr = String(ttLeft);
  ttLeftStr = ttLeftStr.replace('px','');
  
  var ttTopStr = String(ttTop);
  ttTopStr = ttTopStr.replace('px','');
  
  var ttLeftNum = Number(ttLeftStr);
  var ttTopNum = Number(ttTopStr);

  if(document.getElementById('toolTip_frame').style.display == 'none' || 
    document.getElementById('toolTip_frame').style.display == ''){
    var curTop=document.getElementById('toolTip_frame').style.top;
    var curLeft=document.getElementById('toolTip_frame').style.left;
    document.getElementById('toolTip_frame').style.top='0px';
    document.getElementById('toolTip_frame').style.left='0px';
    document.getElementById('toolTip_frame').style.zIndex=-1;
    document.getElementById('toolTip_frame').style.display='block';
    curWidth=document.getElementById('toolTip_frame').offsetWidth;
    curHeight=document.getElementById('toolTip_frame').offsetHeight;
    document.getElementById('toolTip_frame').style.display='none';
    document.getElementById('toolTip_frame').style.top=curTop;
    document.getElementById('toolTip_frame').style.left=curLeft;
    document.getElementById('toolTip_frame').style.zIndex=98;
  }
  else{
    curWidth=document.getElementById('toolTip_frame').offsetWidth;
    curHeight=document.getElementById('toolTip_frame').offsetHeight;
  }
  
  if(browser == "Mozilla") var addWidth=113;
  else var addWidth=101;
  if((ttLeftNum + curWidth)>1000) ttLeftNum=ttLeftNum-addWidth-leftPad;  
  if((ttTopNum + curHeight)>(1000+topPad)) ttTopNum=ttTopNum-((ttTopNum+curHeight)-(1000+topPad));
  rV['ttLeft']=ttLeftNum;
  rV['ttTop']=ttTopNum;
  if(isSet){
    document.getElementById('toolTip_frame').style.top=rV['ttTop'];
    document.getElementById('toolTip_frame').style.left=rV['ttLeft'];
  }else
    return rV;
}

var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,place,thestring;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (checkIt('mozilla')) browser = "Mozilla"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function editLMLink(id,linkdata){
  ajaxpage('gp_editLMLink.php?linkdata='+linkdata,id,false,'',false,true);
  return false;
}

function editLMDesc(id,linkdata){
  ajaxpage('gp_editLMDesc.php?linkdata='+linkdata,id,false,'',false,true);
  return false;
}

function removeLMLink(id,linkdata){
  var retVal = confirm("Confirm, link delete?");
  if(retVal==true)
    ajaxpage('gp_removeLMLink.php?linkdata='+linkdata,'noshow_frame',false,'',false,false);
  return false;
}

function goliveLMLink(id,linkdata){
  var retVal = confirm("Confirm, Go Live?");
  if(retVal==true)
    ajaxpage('gp_goliveLMLink.php?linkdata='+linkdata,'noshow_frame',false,'',false,false);
  return false;
}

function showPwReset(){
  ajaxpage('gp_resetPw.php','gp_pwReset',false,'',false,true);  
  return false;
}

function processPwReset(){
  document.getElementById('login_frame').style.display = 'none';
  ajaxpage('gp_processPwReset.php','gp_pwReset',true,'pwReset_form',false,true);
  document.getElementById('login_pw').value="";
}