var tc_isIE8 = false;
var tc_isIE6 = false;
var tc_ver = '';
try{ tc_ver = navigator.appVersion; }catch(err){}
if( tc_ver.contains('MSIE 6') ){tc_isIE6 = true;}
if( tc_ver.contains('MSIE 8') ){tc_isIE8 = true;}

window.addEvent('domready', function() {
    checkauth();
    setMenuEvents();
});

var setMenuEvents = function(){
    if( $chk($('asignout')) ){
        $('asignout').addEvent('click',function(e){e.stop();signout('index2.aspx');});
    }
    if( tc_isIE6==false ){
        $('dropdownmenu').getChildren().each(function(el){
            $(el).removeProperty('class');
        });
    }
}

/////////////////////////////////////////////////////
// plumbing, helpers
/////////////////////////////////////////////////////
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
//  alert('Query Variable ' + variable + ' not found');
  return '0';
}
/////////////////////////////////////////////////////
// session, login, signout, reg
/////////////////////////////////////////////////////
var signout = function(redir){        
    var elem_msg = $('msg');
    var elem_login = $('login');
    var elem_alogin = $('alogin');
    var elem_areg = $('areg');
    var elem_amyprof = $('amyprof');
    var elem_amypets = $('amypets');
    var elem_asignout = $('asignout');
    var cookiebox = new CookieHandler();
    cookiebox.deleteCookie('sxt');

    elem_alogin.setStyle('display','block');
    elem_areg.setStyle('display','block');
    elem_amyprof.setStyle('display','none');
    elem_amypets.setStyle('display','none');
    elem_asignout.setStyle('display','none');
    top.location.replace(redir);
}
// auth in .net?
var checkauth = function (){
    var cookiebox = new CookieHandler();
    //cookiebox.setCookie('xauth', cook, 60*40);
    var cook = cookiebox.getCookie('sxt');
    
    //anything not related to cookie management
    //should be in a separate procedure.
    //also, styles should be classed in a css file.
    var elem_msg = '';
    var elem_alogin = '';
    var elem_areg = '';
    var elem_amyprof = '';
    var elem_amypets = '';
    var elem_asignout = '';
    try{ elem_msg = $('msg'); } catch(err){elem_msg='';}
    try{ elem_alogin = $('alogin'); } catch(err){elem_alogin='';}
    try{ elem_areg = $('areg'); } catch(err){elem_areg='';}
    try{ elem_amyprof = $('amyprof'); } catch(err){elem_amyprof='';}
    try{ elem_amypets = $('amypets'); } catch(err){elem_amypets='';}
    try{ elem_asignout = $('asignout'); } catch(err){elem_asignout='';}

    //alert('cook = ' + cook);
    if( cook != null ){
        cookiebox.setCookie('sxt', cook, 60*40);
        if( elem_alogin!=null ){elem_alogin.setStyle('display','none')}
        if( elem_areg!=null ){elem_areg.setStyle('display','none');}
        if( elem_amyprof!=null ){elem_amyprof.setStyle('display','block');}
        if( elem_amypets!=null ){elem_amypets.setStyle('display','block');}
        if( elem_asignout!=null ){elem_asignout.setStyle('display','block');}
    }
    else{
        if( elem_alogin!=null ){elem_alogin.setStyle('display','block');}
        if( elem_areg!=null ){elem_areg.setStyle('display','block');}
        if( elem_amyprof!=null ){elem_amyprof.setStyle('display','none');}
        if( elem_amypets!=null ){elem_amypets.setStyle('display','none');}
        if( elem_asignout!=null ){elem_asignout.setStyle('display','none');}
    }
}
function showLogin(location) {
    var strEmail = '';
    var temp = 'loginx.aspx?x=1&arg='+location;
    var cookiebox = new CookieHandler();      
    try{ 
        strEmail = $('_txtEmailAddress').get('value'); 
        cookiebox.setCookie('premail', strEmail, 60*40);
    }
    catch(err){ strEmail = ''; }
    cookiebox.setCookie('premailmsg', 'Please login to continue.', 60*40);
    top.location.replace(temp);
}

function jump(location){
    var cookiebox = new CookieHandler();
    var cook = cookiebox.getCookie('sxt');
    if(cook!=null) {
        cook = cook.replace(/-/g,'');
        cook = cook.replace(/#/g,'-');
        var url = 'https://secure.trainingcampus.net/uas/modules/users/svc/extlogsvc.aspx?cauth=';
//        var url = 'http://localhost/uas/modules/users/svc/extlogsvc.aspx?cauth=';
        url += location;
        url += '&xauth=';
        url += cook;
//        window.open(url,'campus_win','scrollbars=yes,resizable=yes,width=940,height=720');
        window.location.href = url;
    }
    else {
        showLogin(location);
    }
}
function popit(url,hwin){
    top.location.replace(url);
}
/////////////////////////////////////////////////////
// cookie handling
/////////////////////////////////////////////////////
function CookieHandler() {
    this.setCookie = function (name, value, seconds) {

        if (typeof(seconds) != 'undefined') {
            var date = new Date();
            date.setTime(date.getTime() + (seconds*1000));
            var expires = "; expires=" + date.toGMTString();
        }
        else {
            var expires = "";
        }

        document.cookie = name+"="+value+expires+"; path=/";
    }

    this.getCookie = function (name) {

        name = name + "=";
        var carray = document.cookie.split(';');

        for(var i=0;i < carray.length;i++) {
            var c = carray[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
        }

        return null;
    }

    this.deleteCookie = function (name) {
        this.setCookie(name, "", -1);
    }

} 
/////////////////////////////////////////////////////
// client-side xml/xsl processing
/////////////////////////////////////////////////////
function loadXMLDoc(fname)
{
    var xmlDoc;
    // IE
    if (window.ActiveXObject){xmlDoc=new ActiveXObject("Microsoft.XMLDOM");}
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument){
      xmlDoc=document.implementation.createDocument("","",null);
    }
    else{ alert('Your browser cannot handle this script'); }
    xmlDoc.async=false;
    xmlDoc.load(fname);
    return(xmlDoc);
}
function displayMainOutput(xmlsource, xslsource, targetEl)
{
    xml=loadXMLDoc(xmlsource);
    xsl=loadXMLDoc(xslsource);
    // code for IE
    if (window.ActiveXObject){
      ex=xml.transformNode(xsl);
      document.getElementById(targetEl).innerHTML=ex;
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument){
      xsltProcessor=new XSLTProcessor();
      xsltProcessor.importStylesheet(xsl);
      resultDocument = xsltProcessor.transformToFragment(xml,document);
      document.getElementById(targetEl).appendChild(resultDocument);
    }
}
/////////////////////////////////////////////////////
// editor processing
/////////////////////////////////////////////////////
function editItem(index){
    try{ toggleEditMode(1,index); }
    catch(err){alert(err);}
}
function saveItem(index){
    try{ toggleEditMode(0,index); }
    catch(err){alert(err);}
}
function delItem(index){
    return confirm('Are you sure you wish to delete this item?');
}
//function toggleEditMode(mode){}
function toggleEditMode(mode, index){        
    //0 = disp, 1 = editor
    try{
        var elEdit = $('edit'+index.toString());
        var elSave = $('save'+index.toString());
        var elDispDiv = $('dispDiv'+index.toString());
        var elEditDiv = $('editDiv'+index.toString());
        switch(mode){
            case 0:
                elEdit.setStyle('display','block');
                elSave.setStyle('display','none');
                elDispDiv.setStyle('display','block');
                elEditDiv.setStyle('display','none');
                break;
            case 1:
                elEdit.setStyle('display','none');
                elSave.setStyle('display','block');
                elDispDiv.setStyle('display','none');
                elEditDiv.setStyle('display','block');
                break;
        }
    }
    catch(err){alert(err);}
}
