Jump to content

Aaron

Members
  • Posts

    184
  • Joined

  • Last visited

Posts posted by Aaron

  1. #sitetitle { padding-top:30px; width: 760px; height: 50px; text-align: center;}
    

     <div id="topBanner<?php echo rand (1,9)?>">
        <div id="sitetitle">
        <p style="margin:auto; color:white; font-size:22px;"><b>Canforce</b></p>
        <p style="margin:auto; color:white; font:normal 1em Geneva, Arial, Helvetica, sans-serif "Courier New", Courier, monospace Arial;">www.canforce.org</p>
        </div>
        </div>
    

  2. I want to put the string "Canforce" centered over top of my banner on the site, but I'm having difficulties. Heres the link: http://www.canforce.org . It should go in the topbanner div, but I'm having issues centering it. Here's the code:

    <div id="container">
    <div id="logos">
     <div id="proudcanadian">
    <img src="http://www.canforce.org/lib/skins/canforce_1307/images/proudly_canadian.gif" border="0" alt="Proudly Canadian"  style="float:left;" />
     </div>
     <div id="vatcan">
    <a href="http://www.vatcan.org" target="_blank"><img border="0" src="http://www.canforce.org/lib/skins/canforce_1307/images/VATCAN.jpg" alt="VATCAN" style="float:right;" width="83" height="20"/></a>
     </div>
        <div id="mainlogo">
    <img src="http://www.canforce.org/lib/skins/canforce_1307/images/logo.gif" border="0" alt="logo"  style="position: relative; left:-35px; padding-top:25px; float:left;" width="65" height="65"/>
     </div>
     </div>
    
     <div id="topBanner<?php echo rand (1,9)?>">
        </div>
    <div id="topNav">
     <ul>
      <?php
      /* You can modify this template into a table or something, by default
       it's list elements inside of a UL. Here's a link with some info:
    
       http://articles.sitepoint.com/article/css-anthology-tips-tricks-4/2
       */
      Template::Show('core_navigation.tpl');
      ?>
     </ul>
    </div>
    

    #container
    {
    margin-left:auto;
    margin-right:auto;
    margin-top: 0px;
    margin-bottom: 0px;
    width:760px;
    background-color: #FFF;
    padding:10px;
    clear:both;
    }
    #logos {width: 760px; height: 60px; text-align: center;}
    #topBanner1 { background: url(images/banners/bnnr-aurora.jpg); width: 760px; height: 80px;}
    

  3. I've been inactive for awhile and come back to find my website different than I had left it, at least on Internet Explorer. There is a dark blue accordion menu on the left side of my website and when you expand one of the headers, a whitespace is put between it and the header on top of it. It works fine in all browsers except IE. It has something to do with the little arrows beside the headers because if I remove them, it works fine in IE. Link: http://www.canforce.org/index.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
    <head>
    <link rel="stylesheet" media="all" type="text/css" href="<?php echo SITE_URL?>/lib/skins/canforce_1307/styles.css"/>
    <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
    <meta http-equiv="X-UA-Compatible" content="IE=7">
    <title><?php echo $page_title; ?></title>
    <?php
    /* This is required, so phpVMS can output the necessary libraries it needs */
    echo $page_htmlhead;
    ?>
    <?php /*Any custom Javascript should be placed below this line, after the above call */ ?>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://www.canforce.org/lib/skins/canforce_1307/ddaccordion.js">
    /***********************************************
    * Accordion Content script- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
    * Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
    * This notice must stay intact for legal use
    ***********************************************/
    </script>
    <script type="text/javascript">
    
    ddaccordion.init({
    headerclass: "menuitem", //Shared CSS class name of headers group
    contentclass: "submenu", //Shared CSS class name of contents group
    revealtype: "click", //Reveal content when user clicks or onmouseover the header? Valid value: "click", "clickgo", or "mouseover"
    mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onmouseover
    collapseprev: true, //Collapse previous content (so only one open at any time)? true/false
    defaultexpanded: [], //index of content(s) open by default [index1, index2, etc] [] denotes no content
    onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
    animatedefault: false, //Should contents open by default be animated into view?
    persiststate: true, //persist state of opened contents within browser session?
    toggleclass: ["", ""], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
    togglehtml: ["prefix","<img src='http://www.canforce.org/lib/skins/canforce_1307/images/arrow.jpg' class='statusicon' />","<img src='http://www.canforce.org/lib/skins/canforce_1307/images/darrow.jpg' class='statusicon'/>"], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
    animatespeed: "normal", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
    oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
     //do nothing
    },
    onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
     //do nothing
    }
    })
    
    </script>
    </head>
    

    .glossymenu{
    margin: 0px 0;
    padding: 0;
    width: 150px; /*width of menu*/
    border: 0px solid #FFF;
    border-bottom-width: 0;
    }
    .glossymenu a.menuitem{
    background: #304867 repeat-x bottom left;
    font: bold 11px Verdana, Arial, Helvetica, sans-serif;
    color: white;
    display: block;
    position: relative; /*To help in the anchoring of the ".statusicon" icon image*/
    width: auto;
    padding: 4px 0;
    padding-left: 5px;
    text-decoration: none;
    border-bottom: 1px solid white;
    }
    
    .glossymenu a.menuitem:visited, .glossymenu .menuitem:active{
    color: white;
    }
    .glossymenu a.menuitem .statusicon{ /*CSS for icon image that gets dynamically added to headers*/
    float: left;
    padding-right: 5px;
    padding-top: 4px;
    top: 5px;
    right: 5px;
    border: none;
    }
    .glossymenu a.menuitem:hover{
    background: #304867;
    }
    .glossymenu div.submenu{ /*DIV that contains each sub menu*/
    background: white;
    }
    .glossymenu div.submenu ul{ /*UL of each sub menu*/
    list-style-type: none;
    margin: 0;
    padding: 0;
    }
    .glossymenu div.submenu ul li{
    border-bottom: 1px solid white;
    }
    .glossymenu div.submenu ul li a{
    display: block;
    background: #4A6C90;
    font: normal 11px Verdana, Arial, Helvetica, sans-serif;
    color: white;
    text-decoration: none;
    padding: 2px 0;
    padding-top: 4px;
    padding-bottom: 4px;
    padding-left: 20px;
    }
    .glossymenu div.submenu ul li a:hover{
    background: #4A6C90;
    color: white;
    text-decoration: underline;
    }
    

    var ddaccordion={
    ajaxloadingmsg: '<img src="loading2.gif" /><br />Loading Content...', //customize HTML to output while Ajax content is being fetched (if applicable)
    headergroup: {}, //object to store corresponding header group based on headerclass value
    contentgroup: {}, //object to store corresponding content group based on headerclass value
    preloadimages:function($images){
     $images.each(function(){
      var preloadimage=new Image()
      preloadimage.src=this.src
     })
    },
    expandone:function(headerclass, selected, scrolltoheader){ //PUBLIC function to expand a particular header
     this.toggleone(headerclass, selected, "expand", scrolltoheader)
    },
    collapseone:function(headerclass, selected){ //PUBLIC function to collapse a particular header
     this.toggleone(headerclass, selected, "collapse")
    },
    expandall:function(headerclass){ //PUBLIC function to expand all headers based on their shared CSS classname
     var $headers=this.headergroup[headerclass]
     this.contentgroup[headerclass].filter(':hidden').each(function(){
      $headers.eq(parseInt($(this).attr('contentindex'))).trigger("evt_accordion")
     })
    },
    collapseall:function(headerclass){ //PUBLIC function to collapse all headers based on their shared CSS classname
     var $headers=this.headergroup[headerclass]
     this.contentgroup[headerclass].filter(':visible').each(function(){
      $headers.eq(parseInt($(this).attr('contentindex'))).trigger("evt_accordion")
     })
    },
    toggleone:function(headerclass, selected, optstate, scrolltoheader){ //PUBLIC function to expand/ collapse a particular header
     var $targetHeader=this.headergroup[headerclass].eq(selected)
     var $subcontent=this.contentgroup[headerclass].eq(selected)
     if (typeof optstate=="undefined" || optstate=="expand" && $subcontent.is(":hidden") || optstate=="collapse" && $subcontent.is(":visible"))
      $targetHeader.trigger("evt_accordion", [false, scrolltoheader])
    },
    ajaxloadcontent:function($targetHeader, $targetContent, config, callback){
     var ajaxinfo=$targetHeader.data('ajaxinfo')
     function handlecontent(content){ //nested function
      if (content){ //if ajax content has loaded
       ajaxinfo.cacheddata=content //remember ajax content
       ajaxinfo.status="cached" //set ajax status to cached
       if ($targetContent.queue("fx").length==0){ //if this content isn't currently expanding or collapsing
     $targetContent.hide().html(content) //hide loading message, then set sub content's HTML to ajax content
     ajaxinfo.status="complete" //set ajax status to complete
     callback() //execute callback function- expand this sub content
       }
      }
      if (ajaxinfo.status!="complete"){
       setTimeout(function(){handlecontent(ajaxinfo.cacheddata)}, 100) //call handlecontent() again until ajax content has loaded (ajaxinfo.cacheddata contains data)
      }
     } //end nested function
     if (ajaxinfo.status=="none"){ //ajax data hasn't been fetched yet
      $targetContent.html(this.ajaxloadingmsg)
      $targetContent.slideDown(config.animatespeed)
      ajaxinfo.status="loading" //set ajax status to "loading"
      $.ajax({
       url: ajaxinfo.url, //path to external menu file
       error:function(ajaxrequest){
     handlecontent('Error fetching content. Server Response: '+ajaxrequest.responseText)
       },
       success:function(content){
     content=(content=="")? " " : content //if returned content is empty, set it to "space" is content no longer returns false/empty (hasn't loaded yet)
     handlecontent(content)
       }
      })
     }
     else if (ajaxinfo.status=="loading")
      handlecontent(ajaxinfo.cacheddata)
    },
    expandit:function($targetHeader, $targetContent, config, useractivated, directclick, skipanimation, scrolltoheader){
     var ajaxinfo=$targetHeader.data('ajaxinfo')
     if (ajaxinfo){ //if this content should be fetched via Ajax
      if (ajaxinfo.status=="none" || ajaxinfo.status=="loading")
       this.ajaxloadcontent($targetHeader, $targetContent, config, function(){ddaccordion.expandit($targetHeader, $targetContent, config, useractivated, directclick)})
      else if (ajaxinfo.status=="cached"){
       $targetContent.html(ajaxinfo.cacheddata)
       ajaxinfo.cacheddata=null
       ajaxinfo.status="complete"
      }
     }
     this.transformHeader($targetHeader, config, "expand")
     $targetContent.slideDown(skipanimation? 0 : config.animatespeed, function(){
      config.onopenclose($targetHeader.get(0), parseInt($targetHeader.attr('headerindex')), $targetContent.css('display'), useractivated)
      if (scrolltoheader){
       var sthdelay=(config["collapseprev"])? 20 : 0
       clearTimeout(config.sthtimer)
       config.sthtimer=setTimeout(function(){ddaccordion.scrollToHeader($targetHeader)}, sthdelay)
      }
      if (config.postreveal=="gotourl" && directclick){ //if revealtype is "Go to Header URL upon click", and this is a direct click on the header
       var targetLink=($targetHeader.is("a"))? $targetHeader.get(0) : $targetHeader.find('a:eq(0)').get(0)
       if (targetLink) //if this header is a link
     setTimeout(function(){location=targetLink.href}, 200 + (scrolltoheader? 400+sthdelay : 0) ) //ignore link target, as window.open(targetLink, targetLink.target) doesn't work in FF if popup blocker enabled
      }
     })
    },
    scrollToHeader:function($targetHeader){
     ddaccordion.$docbody.stop().animate({scrollTop: $targetHeader.offset().top}, 400)
    },
    collapseit:function($targetHeader, $targetContent, config, isuseractivated){
     this.transformHeader($targetHeader, config, "collapse")
     $targetContent.slideUp(config.animatespeed, function(){config.onopenclose($targetHeader.get(0), parseInt($targetHeader.attr('headerindex')), $targetContent.css('display'), isuseractivated)})
    },
    transformHeader:function($targetHeader, config, state){
     $targetHeader.addClass((state=="expand")? config.cssclass.expand : config.cssclass.collapse) //alternate btw "expand" and "collapse" CSS classes
     .removeClass((state=="expand")? config.cssclass.collapse : config.cssclass.expand)
     if (config.htmlsetting.location=='src'){ //Change header image (assuming header is an image)?
      $targetHeader=($targetHeader.is("img"))? $targetHeader : $targetHeader.find('img').eq(0) //Set target to either header itself, or first image within header
      $targetHeader.attr('src', (state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse) //change header image
     }
     else if (config.htmlsetting.location=="prefix") //if change "prefix" HTML, locate dynamically added ".accordprefix" span tag and change it
      $targetHeader.find('.accordprefix').html((state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse)
     else if (config.htmlsetting.location=="suffix")
      $targetHeader.find('.accordsuffix').html((state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse)
    },
    urlparamselect:function(headerclass){
     var result=window.location.search.match(new RegExp(headerclass+"=((\\d+)(,(\\d+))*)", "i")) //check for "?headerclass=2,3,4" in URL
     if (result!=null)
      result=RegExp.$1.split(',')
     return result //returns null, [index], or [index1,index2,etc], where index are the desired selected header indices
    },
    getCookie:function(Name){
     var re=new RegExp(Name+"=[^;]+", "i") //construct RE to search for target name/value pair
     if (document.cookie.match(re)) //if cookie found
      return document.cookie.match(re)[0].split("=")[1] //return its value
     return null
    },
    setCookie:function(name, value){
     document.cookie = name + "=" + value + "; path=/"
    },
    init:function(config){
    document.write('<style type="text/css">\n')
    document.write('.'+config.contentclass+'{display: none}\n') //generate CSS to hide contents
    document.write('a.hiddenajaxlink{display: none}\n') //CSS class to hide ajax link
    document.write('<\/style>')
    jQuery(document).ready(function($){
     ddaccordion.urlparamselect(config.headerclass)
     var persistedheaders=ddaccordion.getCookie(config.headerclass)
     ddaccordion.headergroup[config.headerclass]=$('.'+config.headerclass) //remember header group for this accordion
     ddaccordion.contentgroup[config.headerclass]=$('.'+config.contentclass) //remember content group for this accordion
     ddaccordion.$docbody=(window.opera)? (document.compatMode=="CSS1Compat"? jQuery('html') : jQuery('body')) : jQuery('html,body')
     var $headers=ddaccordion.headergroup[config.headerclass]
     var $subcontents=ddaccordion.contentgroup[config.headerclass]
     config.cssclass={collapse: config.toggleclass[0], expand: config.toggleclass[1]} //store expand and contract CSS classes as object properties
     config.revealtype=config.revealtype || "click"
     config.revealtype=config.revealtype.replace(/mouseover/i, "mouseenter")
     if (config.revealtype=="clickgo"){
      config.postreveal="gotourl" //remember added action
      config.revealtype="click" //overwrite revealtype to "click" keyword
     }
     if (typeof config.togglehtml=="undefined")
      config.htmlsetting={location: "none"}
     else
      config.htmlsetting={location: config.togglehtml[0], collapse: config.togglehtml[1], expand: config.togglehtml[2]} //store HTML settings as object properties
     config.oninit=(typeof config.oninit=="undefined")? function(){} : config.oninit //attach custom "oninit" event handler
     config.onopenclose=(typeof config.onopenclose=="undefined")? function(){} : config.onopenclose //attach custom "onopenclose" event handler
     var lastexpanded={} //object to hold reference to last expanded header and content (jquery objects)
     var expandedindices=ddaccordion.urlparamselect(config.headerclass) || ((config.persiststate && persistedheaders!=null)? persistedheaders : config.defaultexpanded)
     if (typeof expandedindices=='string') //test for string value (exception is config.defaultexpanded, which is an array)
      expandedindices=expandedindices.replace(/c/ig, '').split(',') //transform string value to an array (ie: "c1,c2,c3" becomes [1,2,3]
     if (expandedindices.length==1 && expandedindices[0]=="-1") //check for expandedindices value of [-1], indicating persistence is on and no content expanded
      expandedindices=[]
     if (config["collapseprev"] && expandedindices.length>1) //only allow one content open?
      expandedindices=[expandedindices.pop()] //return last array element as an array (for sake of jQuery.inArray())
     if (config["onemustopen"] && expandedindices.length==0) //if at least one content should be open at all times and none are, open 1st header
      expandedindices=[0]
     $headers.each(function(index){ //loop through all headers
      var $header=$(this)
      if (/(prefix)|(suffix)/i.test(config.htmlsetting.location) && $header.html()!=""){ //add a SPAN element to header depending on user setting and if header is a container tag
       $('<span class="accordprefix"></span>').prependTo(this)
       $('<span class="accordsuffix"></span>').appendTo(this)
      }
      $header.attr('headerindex', index+'h') //store position of this header relative to its peers
      $subcontents.eq(index).attr('contentindex', index+'c') //store position of this content relative to its peers
      var $subcontent=$subcontents.eq(index)
      var $hiddenajaxlink=$subcontent.find('a.hiddenajaxlink:eq(0)') //see if this content should be loaded via ajax
      if ($hiddenajaxlink.length==1){
       $header.data('ajaxinfo', {url:$hiddenajaxlink.attr('href'), cacheddata:null, status:'none'}) //store info about this ajax content inside header
      }
      var needle=(typeof expandedindices[0]=="number")? index : index+'' //check for data type within expandedindices array- index should match that type
      if (jQuery.inArray(needle, expandedindices)!=-1){ //check for headers that should be expanded automatically (convert index to string first)
       ddaccordion.expandit($header, $subcontent, config, false, false, !config.animatedefault) //3rd last param sets 'isuseractivated' parameter, 2nd last sets isdirectclick, last sets skipanimation param
       lastexpanded={$header:$header, $content:$subcontent}
      }  //end check
      else{
       $subcontent.hide()
       config.onopenclose($header.get(0), parseInt($header.attr('headerindex')), $subcontent.css('display'), false) //Last Boolean value sets 'isuseractivated' parameter
       ddaccordion.transformHeader($header, config, "collapse")
      }
     })
     //if (config["scrolltoheader"] && lastexpanded.$header)
      //ddaccordion.scrollToHeader(lastexpanded.$header)
     $headers.bind("evt_accordion", function(e, isdirectclick, scrolltoheader){ //assign CUSTOM event handler that expands/ contacts a header
       var $subcontent=$subcontents.eq(parseInt($(this).attr('headerindex'))) //get subcontent that should be expanded/collapsed
       if ($subcontent.css('display')=="none"){
     ddaccordion.expandit($(this), $subcontent, config, true, isdirectclick, false, scrolltoheader) //2nd last param sets 'isuseractivated' parameter
     if (config["collapseprev"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){ //collapse previous content?
      ddaccordion.collapseit(lastexpanded.$header, lastexpanded.$content, config, true) //Last Boolean value sets 'isuseractivated' parameter
     }
     lastexpanded={$header:$(this), $content:$subcontent}
       }
       else if (!config["onemustopen"] || config["onemustopen"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){
     ddaccordion.collapseit($(this), $subcontent, config, true) //Last Boolean value sets 'isuseractivated' parameter
       }
      })
     $headers.bind(config.revealtype, function(){
      if (config.revealtype=="mouseenter"){
       clearTimeout(config.revealdelay)
       var headerindex=parseInt($(this).attr("headerindex"))
       config.revealdelay=setTimeout(function(){ddaccordion.expandone(config["headerclass"], headerindex, config.scrolltoheader)}, config.mouseoverdelay || 0)
      }
      else{
       $(this).trigger("evt_accordion", [true, config.scrolltoheader]) //last parameter indicates this is a direct click on the header
       return false //cancel default click behavior
      }
     })
     $headers.bind("mouseleave", function(){
      clearTimeout(config.revealdelay)
     })
     config.oninit($headers.get(), expandedindices)
     $(window).bind('unload', function(){ //clean up and persist on page unload
      $headers.unbind()
      var expandedindices=[]
      $subcontents.filter(':visible').each(function(index){ //get indices of expanded headers
       expandedindices.push($(this).attr('contentindex'))
      })
      if (config.persiststate==true && $headers.length>0){ //persist state?
       expandedindices=(expandedindices.length==0)? '-1c' : expandedindices //No contents expanded, indicate that with dummy '-1c' value?
       ddaccordion.setCookie(config.headerclass, expandedindices)
      }
     })
    })
    }
    }
    //preload any images defined inside ajaxloadingmsg variable
    ddaccordion.preloadimages(jQuery(ddaccordion.ajaxloadingmsg).filter('img'))
    

  4. It works, but I cant put any php in it. Are there any other ideas? I can't put it in the form manually because there are custom nicknames for each squadron and the squadron leader can slightly change them if they want. For example change it from the "123 wolf squadron" to the "123 wolves". Is there a way that I can put the value of a javascript variable in the .insertHTML thing? something like this:

    div.innerHTML="";

    foreach (squadron within the selected wing as var squadron)

    {

    div.innerHTML='<option value=" ' squadron->id ' " ...

    }

  5. In airways, each waypoint is listed twice because they can take the place of lat/lon as long so they must be there twice for the sectorfile to work.

    V10 JUSUL JUSUL CRL CRL

    JUSUL and CRL are waypoints on V10, so when it detects the V10 checkbox enabled in euroscope, it plots a line from JUSUL to CRL as well as the rest of the required segments

  6. From my sectorfile developing on VATSIM, I know a way to get all the waypoints on an airway. There is a program called SectEd, it is a sectorfile developing tool that allows developers to drag lines and add waypoints without using code. There is a way to import the Level-D airac and take the waypoints and airways from the sectorfile it creates (simply check a box to plot all of the worldwide data and save it to sct).

    Here are some excerpt of a sectorfile:

    [VOR]

    ;---*----1--*------2-------*-3---------4-

    ACO 114.400 N041.06.28.449 W081.12.05.438

    AIR 117.100 N040.01.01.200 W080.49.02.400

    ALB 115.300 N042.44.50.400 W073.48.11.400

    APE 116.700 N040.09.03.600 W082.35.30.000

    ART 109.800 N043.57.07.800 W076.03.52.800

    ASP 116.100 N044.26.57.000 W083.23.39.600

    BAE 116.400 N043.07.00.600 W088.17.03.600

    ...

    [NDB]

    ;-----*--1----*----2---------*---------4---

    2Q 373 N046.36.12.000 W075.28.12.000

    4L 236 N042.18.44.000 W082.04.39.000

    7B 375 N042.46.15.000 W081.06.21.000

    7L 405 N048.54.38.250 W079.10.44.209

    7P 382 N048.42.30.240 W080.44.09.359

    9Q 291 N048.33.30.000 W078.14.36.000

    C7 362 N049.46.20.179 W086.58.17.029

    ...

    [AIRPORT]

    ;CZYZ FIR Airports

    CNA3 07-25 N044.24.58.196 W079.44.25.988 G

    CNB9 10-28 N044.29.07.120 W079.33.19.480 G

    CYLS 10-28 N044.29.7.239 W079.33.23.998 G

    CNC3 15-33 N043.45.37.704 W079.52.41.456 G

    CNC4 . N043.33.49.994 W080.11.46.000 E ; Guelph

    CNE4 14-32 N048.44.30.000 W080.47.36.000 G

    CNF4 13-31 N044.21.53.000 W078.47.02.000 G

    ...

    [FIXES]

    GEFRC N041.47.54.301 W081.28.55.110

    HILEK N041.48.47.289 W081.13.20.578

    WONOP N041.48.53.791 W081.13.07.888

    FAILS N041.50.16.090 W081.25.13.249

    GONNE N041.50.22.621 W082.03.02.109

    HIMEZ N041.50.58.909 W082.12.03.999

    BEELR N041.51.55.551 W081.15.05.990

    HUDUG N041.52.18.339 W081.18.05.961

    IROME N041.52.30.842 W080.40.01.340

    OBONE N041.52.40.332 W080.44.01.949

    COTRO N041.52.44.741 W080.45.54.251

    WIGAP N041.52.46.649 W080.46.42.369

    GILLS N041.53.07.061 W081.51.00.961

    AZTRO N041.53.43.360 W081.56.35.109

    RAQEF N041.53.55.262 W080.27.27.100

    ...

    [LOW AIRWAY]

    V10 JUSUL JUSUL CRL CRL

    V10 CRL CRL MACCS MACCS

    V10 MACCS MACCS SSUNN SSUNN

    V10 SSUNN SSUNN AZTRO AZTRO

    V10 AZTRO AZTRO GILLS GILLS

    V10 GILLS GILLS FAILS FAILS

    V10 FAILS FAILS WONOP WONOP

    V103 AZTRO AZTRO SPHRE SPHRE

    V103 SPHRE SPHRE MAARS MAARS

    V103 MAARS MAARS VEELA VEELA

    V103 VEELA VEELA CAGAP CAGAP

    V103 CAGAP CAGAP DXO DXO

    V103 DXO DXO PSI PSI

    V103 PSI PSI SPRTN SPRTN

    V104 GD GD HENSL HENSL

    V104 HENSL HENSL ETCHL ETCHL

    V104 ETCHL ETCHL YXU YXU

    V104 YXU YXU EMBRO EMBRO

    V104 EMBRO EMBRO PIGLI PIGLI

    V104 PIGLI PIGLI ANCOL ANCOL

    V104 ULAMO ULAMO RNDDC RNDDC

    V104 RNDDC RNDDC MSS MSS

    V104 MSS MSS MALAE MALAE

    V104 MALAE MALAE PLB PLB

    V115 JHW JHW LANGS LANGS

    V115 LANGS LANGS BUF BUF

    V116 DEXER DEXER SVM SVM

    V116 SVM SVM YQG YQG

    V116 YQG YQG OCTAS OCTAS

    V116 OCTAS OCTAS ERRTH ERRTH

    V116 ERRTH ERRTH CODDS CODDS

    V116 CODDS CODDS TRACE TRACE

    V116 TRACE TRACE ERI ERI

    ...

  7. For the waypoints we could do exactly what I posted above, but I hadn't thought of the airways. Why not make a separate table for the airways in mysql and have a name (of the airway) column and a column with the list of waypoints on that airway. Then make it so it takes the route, searches for airways in the route, if it finds any then it will remove it from the string and put all of the waypoints in its place that fall between the two fixes before and after the airway. Then you will be left with just the waypoints (store in a variable separate from the route) and then use the table with the lat/lon to display those on the map. I will take a stab at the airways thing in the next few days and let you guys know the results

  8. Why not just make a simple little program in flash that converts it to the format you need. It's not hard to make the program, you just need to extract the name, lat and lon which is extremely easy. I'm just not familliar on the file format that can be loaded in the database, i've loaded stuff into it before but I've neve looked at the format. I have some things I'm working on now but I might look into it later.

  9. It's not working, but there are no errors. It does screw up another javascript script somehow though. Here is what I did:

     
    <td>Requested Wing: *</td>
    <td>
     <select name="wing" id="wing" onchange="javascript: getSquads(this.options[this.selectedIndex].value);">
     <?php
     foreach($allwings as $wing)
     {
      echo '<option value="'.$wing->id.'">'. $wing->name .'</option>';
    
     }
     ?>
     </select>
    </td></tr><tr>
    <td>Requested Squadron: *</td>
    <td>
     <select name="squadron" id="squadron"><div id="squads">
     <?php
     foreach($allsquadrons as $squad)
     {
         if($squad->wing==1)
    	    {
    echo '<option value="'.$squad->id.'">'. $squad->name .'</option>';
      }
     }
     ?>
     </div></select>
    </td></tr>
    

     
    function getSquads(listindex)
    {
    squads.innerHTML="";
    var cnt;
    switch (listindex)
    {
    <?php
    foreach($allwings as $wing)
    {
    ?>
    cnt=0;
    case "<?php echo $wing->id ?>" :
    <?php
     foreach($allsquadrons as $squad)
     {
     if($squad->wing==$wing->id)
     {
    ?>
    document.register.squadron.options[cnt]=new Option("<?php echo $squad->name ?>","<?php echo $squad->id ?>");
    cnt++;
    <?php
     }
     }
    ?>
    break();
    <?php
    }
    ?>
    }
    }
    

  10. This had happened to me when I first started. There are multiple errors in the admin center, I fixed most of them now, but I don't remember how. If I remember correctly, First, I couldn't change the rank of pilots at all, then once I fixed that I found I could change the rank of a pilot properly, but everytime I loaded the admin center again it would show the lowest rank (but it would be fine on the pilot profile). That might be what is happening with u

  11. This is what I have now, but it doesn't work yet, please help:

    registration_mainform.tpl

     
    <td>Requested Wing: *</td>
    <td>
     <select name="wing" id="wing" onclick="getSquads()">
     <?php
     foreach($allwings as $wing)
     {
      echo '<option value="'.$wing->id.'">'. $wing->name .'</option>';
    
     }
     ?>
     </select>
    </td></tr><tr>
    <td>Requested Squadron: *</td>
    <td>
     <select name="squadron" id="squadron"><div id="squads">
     <?php
     foreach($allsquadrons as $squad)
     {
         if($squad->wing==1)
    	    {
    echo '<option value="'.$squad->id.'">'. $squad->name .'</option>';
      }
     }
     ?>
     </div></select>
    </td></tr>
    

    registration_javascript.tpl

     
    function getSquads(){
    var wingid=document.getElementById('wing').value
     squads.innerHTML="";
    <?php
     foreach($allsquadrons as $squad)
     {
    ?>
     if(wingid==<?php echo $squad->wing ?>){
      squads.innerHTML=+""
     }
    <?php
     }
    ?>
    }
    

  12. The way my VA works is there are wings (hubs) with a number of squadrons in each wing. So on the registration form, the dropdown values for squadrons will have to change depending on what wing is selected. I don't know how I get the value of a dropdown later in the same form. The value I need is in red, but understandably doesn't work. I need to get the $wing->id for the option that is selected in requested wing field, to be passed to the requested quadron. Here is what I have:

    <td>Requested Wing: *</td>

    <td>

    <select name="wing" id="wing">

    <?php

    foreach($allwings as $wing)

    {

    echo '<option value="'.$wing->id.'">'. $wing->name .'</option>';

    }

    ?>

    </select>

    </td></tr><tr>

    <td>Requested Squadron: *</td>

    <td>

    <select name="squadron" id="squadron">

    <?php

    foreach($allsquadrons as $squad)

    {

    if($squad->wing==$wing->id)

    {

    echo '<option value="'.$squad->id.'">'. $squad->name .'</option>';

    }

    }

    ?>

    </select>

    </td></tr>

  13. Can someone explain what files the ACARS system use to load and what they use to sumit the flights. I want to edit it because if you change any of the fields (altitude, aircraft, etc.) in flight, it ignores it and submits the values from the route it loaded (for XAcars anyways). Also, wondering how hard it would be to get rid of registrations and make it determine the aircraft using ICAO. Thanks

×
×
  • Create New...