var dateseperator='-';
function disableEnterKey(e)
{
     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13)
          return false;
     else
          return true;
}
function switchframe(myobj) {
  if (myobj.style.display=='' || myobj.style.display=='block') {
    hide(myobj);
  } else {
    show(myobj);
  }
}

function show(myobj) {
  if (myobj) {
    myobj.style.display='';
  }
}

function hide(myobj) {
  myobj.style.display='none';
}



function switch_overlay(el) {
  if (el)
   el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}
function show_overlay(el) {
  if (el)
   el.style.visibility = "visible";
 if (document.getElementById('maincontainer_overlay'))
   document.getElementById('maincontainer_overlay').style.visibility = "visible";
}
function hide_overlay(el) {
  if (el)
   el.style.visibility = "hidden";
  if (document.getElementById('maincontainer_overlay'))
   document.getElementById('maincontainer_overlay').style.visibility = "hidden";
}


// Scrollbars
function prev_pg(uniqueid,pg,pgcnt) {
  ppg = new Number(pg); // Goto Page
  tpg = new Number(pgcnt); // Total Pages
  npg = new Number; // New Page - Acutal Goto Page
  npg=ppg-1;
  //if (npg<1) { npg=tpg; }
  if (npg<1) { return false; }
return npg;
}
function next_pg(uniqueid,pg,pgcnt) {
  ppg = new Number(pg);
  tpg = new Number(pgcnt);
  npg = new Number;
  npg=ppg+1;
  //if (npg>pgcnt) { npg=1; }
  if (npg>tpg) { return false; }
return npg;
}
function change_pg(uniqueid,pg,pgcnt) {
  $('.'+uniqueid+'_page').removeClass("page_selected");
  $('.'+uniqueid+'_page').addClass("page");
  $('#'+uniqueid+'_id_'+pg).removeClass("page");
  $('#'+uniqueid+'_id_'+pg).addClass("page_selected");
  
  slide_scroller($('#'+uniqueid+'_pgtable'),pg,pgcnt);

}

function slide_scroller(jdiv,pg,pgcnt) {
  tpg = new Number(pg);
  if (pgcnt==undefined) { pgcnt=1; }
  tcnt = new Number(pgcnt);
  if (tpg>1) { spg=tpg-1; } else { spg=1; } // Decide start page
  epg=spg+4; // Decide end page
  if (epg>tcnt) { epg=tcnt; } // case it's over
  spg=spg-(4-(epg-spg)); // grab 5 if possible
  if (spg<1) { spg=1; } // do go below 1
  
  divwidth=div_width(spg,epg);

  jdiv.css('width',divwidth);  
  scrolllen=scroll_length(spg);
  jdiv.animate({scrollLeft: scrolllen},700);
}
function div_width(spg,epg) {
  if (spg>0 && epg>0 && spg<=epg) {
    divwid = new Number(0);
    for (a=spg;a<=epg;a++) {
      astring=new String(a);
      divwid=divwid+30+((astring.length*5)-5);
    }
    //divwid=divwid-5;
    return divwid;
  } else { return '36'; }
  
}
function scroll_length(pg) {
  if (pg>0) {
    scrolllen = new Number(0);
    for (b=1;b<pg;b++) {
      bstring=new String(b);
      scrolllen=scrolllen+30+((bstring.length*5)-5);
    }
    //scrolllen=scrolllen-5;
    
    if (pg<2) { scrolllen=0; }
    return scrolllen;
  } else { return 0; }
return 0;
}





function opentab(url) {
  window.open(url);
}
function openwindow(url,winname,wid,hei) {
    if (hei<1 && wid<1) {
      win = window.open(url,winname);   
    } else {
      win = window.open(url,winname,"menubar=0,toolbar=0,location=yes,scrollbars=yes,resizable=yes,top=10,left=10,height="+hei+",width="+wid);
    }
    //parent.maincontainer.location=url;
    window.win.focus();
}
function closewindow() {
  window.close();
}

  /* Messaging Modal */
  function modal_ok(message_header,message,callback) {    

    $('#message_modal .message_header').html(message_header);
    $('#message_modal .message').html(message);
    $('#message_modal .simplemodal-ok').click(function () {
      // call the callback
      if ($.isFunction(callback)) {
        callback.apply();
      }
      // close the dialog
      $.modal.close();
    });
    $('#message_modal').jqmShow();

  }
  
function forward_location(url) {
  window.location=url;   
}
function jsloadingscreen() {
  lc = document.getElementById("loadingcontainer_overlay");
  pc = document.getElementById("processingcontainer_overlay");
  if (lc)
   lc.style.visibility="hidden";
  if (pc)
   pc.style.visibility="hidden";
  show(document.getElementById('maincontainer'));
  
}
function jsshowloadingscreen() {
  pc = document.getElementById("processingcontainer_overlay");
  if (pc)
    pc.style.visibility="visible";
}

function login_frame_loginvalid() {
  fetch_data('display_login_frame','signInLyr',default_cb);
}
function login_frame_loginreject() {
  document.getElementById('login_password').value='';
  alert('Username / Password Invalid.');
}
function login_frame_loginlogout() {
  fetch_data('display_login_frame','signInLyr',default_cb);
}
function try_login(login_name,login_pass,posttoken) {
  sajax_request_type = 'POST';
  x_ajax_login(login_name,login_pass,posttoken,default_cb);
  sajax_request_type = '';
}
function try_login_cb(val) {
  window.location.reload();
}
function try_logout() {
  sajax_request_type = 'POST';
  x_ajax_logout(default_cb);
  sajax_request_type = '';
}

function add_post_action(postaction) {
  if (document.getElementById('post_action')) {
    if (document.getElementById('post_action').value!='') {
      document.getElementById('post_action').value=document.getElementById('post_action').value+','+postaction;
    } else {
      document.getElementById('post_action').value=postaction;
    }
  }
}

function loadingcontainer_overlay() {
  el = document.getElementById("loadingcontainer_overlay");
  if (el)
   el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}
function processingcontainer_overlay() {
  el = document.getElementById("loadingcontainer_overlay");
  if (el)
   el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}
function captcha_overlay() {
  el = document.getElementById("captcha_overlay");
  if (el) {
    el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
    if (el.style.visibility=="visible") {
      document.getElementById("captcha_val").value='';
      document.getElementById("captcha_val").focus();
    }
  }
}

function captcha_action(captcha_actionlist) {
  captcha_overlay();
  if (document.getElementById('captcha_actionlist')) 
   document.getElementById('captcha_actionlist').value=captcha_actionlist;
}
function captcha_overlay_auth(captchastr,captchaid) {
  sajax_request_type = 'POST';
  x_captcha_overylay_auth(captchastr,captchaid,document.getElementById('captcha_actionlist').value,captcha_overlay_auth_cb);
  sajax_request_type = '';
}
function captcha_overlay_auth_cb(val) {
  if (val[0]!='') {
    alert (val[0]);
  }
  if (val[1]!='') {
    eval(val[1]);
  }
}

function fetch_data_old() {
  sajax_request_type = 'POST';
  x_grabdata.apply(this,arguments);
  sajax_request_type = '';
}

function default_cb(val) {
  if (val[0][0]) {
    for(k=0;k<2;k++) {
      process_default_cb(val[0][k]);
    }
  } else {
    process_default_cb(val[0]);
  }
}
function process_default_cb(val) {
    
  // load containername display
  if (val['load_containername'] && (val['load_display'] || val['load_display']=='')) {
    document.getElementById(val['load_containername']).innerHTML=val['load_display'];
  }
  
  // load containername value
  if (val['load_containername'] && (val['load_value'] || val['load_value']=='')) {
    document.getElementById(val['load_containername']).value=val['load_value'];
  }
  /*
  if (val['load_listpage']) {
    tmppgcnt=new Number(val['load_listpagecnt']);
    if (tmppgcnt<1) { tmppgcnt=1; }

    document.getElementById('pagelistpg'+val['load_containername']).innerHTML=val['load_listpage'];
    document.getElementById('pagelistcnt'+val['load_containername']).innerHTML=tmppgcnt;

    if (document.getElementById('pagelist'+val['load_containername']).length<tmppgcnt) {
      for (v=document.getElementById('pagelist'+val['load_containername']).length+1;v<=tmppgcnt;v++) {
        document.getElementById('pagelist'+val['load_containername']).options[v-1] = new Option(v);
      }
    }

    if (document.getElementById('pagelist'+val['load_containername']).length>tmppgcnt) {
      for (v=document.getElementById('pagelist'+val['load_containername']).length;v>=tmppgcnt;v--) {
        document.getElementById('pagelist'+val['load_containername']).options[v]=null;
      }
    }
  
    for (v=tmppgcnt;v<document.getElementById('pagelist'+val['load_containername']).length;v++) {
      if (document.getElementById('pagelist'+val['load_containername']).options[v].value=val['load_listpage']) { document.getElementById('pagelist'+val['load_containername']).selectedIndex=v; }
    }
  }
  */
  
  // Load class on container
  if (val['load_containername'] && (val['load_divclass'] || val['load_divclass']=='')) {
    document.getElementById(val['load_containername']).className=val['load_divclass'];
  }
  
  // Append Modal Windows
  if (val['load_modal'] && val['load_modal']!='') { $(document.body).append(val['load_modal']); }
  
  // Load JSFunctions
  if (val['load_jsfunction'] && val['load_jsfunction']!='') { eval(val['load_jsfunction']); }
  
  // Background Mask
  $("#"+val['load_containername']).removeClass('bg_mask');
  
  // Run Alerts
  if (val['load_alert'] && val['load_alert']!='') { alert(val['load_alert']); }
  
}

//SuckerTree Horizontal Menu (Sept 14th, 06)
//By Dynamic Drive: http://www.dynamicdrive.com/style/

var menuids=["treemenu1"] //Enter id(s) of SuckerTree UL menus, separated by commas

function buildsubmenus_horizontal(){
for (var i=0; i<menuids.length; i++){
  var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
    for (var t=0; t<ultags.length; t++){
		if (ultags[t].parentNode.parentNode.id==menuids[i]){ //if this is a first level submenu
			ultags[t].style.top=ultags[t].parentNode.offsetHeight+"px" //dynamically position first level submenus to be height of main menu item
			ultags[t].parentNode.getElementsByTagName("a")[0].className="mainfoldericon"
		}
		else{ //else if this is a sub level menu (ul)
		  ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px" //position menu to the right of menu item that activated it
    	ultags[t].parentNode.getElementsByTagName("a")[0].className="subfoldericon"
		}
    ultags[t].parentNode.onmouseover=function(){
    this.getElementsByTagName("ul")[0].style.visibility="visible"
    }
    ultags[t].parentNode.onmouseout=function(){
    this.getElementsByTagName("ul")[0].style.visibility="hidden"
    }
    }
  }
}

function up(inp, typ) {
  if (typ=='hour') {
    curnum = new Number(inp.val());
    curnum++;
    if (curnum==13) { curnum=1; }
    inp.val(curnum);
  }
  if (typ=='minute') {
    curnum = new Number(inp.val());
    if (curnum>0 && curnum<5) { curnum=5; }
    else if (curnum>5 && curnum<10) { curnum=10; }
    else if (curnum>10 && curnum<15) { curnum=15; }
    else if (curnum>15 && curnum<20) { curnum=20; }
    else if (curnum>20 && curnum<25) { curnum=25; }
    else if (curnum>25 && curnum<30) { curnum=30; }
    else if (curnum>30 && curnum<35) { curnum=35; }
    else if (curnum>35 && curnum<40) { curnum=40; }
    else if (curnum>40 && curnum<45) { curnum=45; }
    else if (curnum>45 && curnum<50) { curnum=50; }
    else if (curnum>50 && curnum<55) { curnum=55; }
    else if (curnum>55 && curnum<60) { curnum=0; }
    else { curnum=curnum+5; }
    if (curnum>59) { curnum=0; }
    inp.val(curnum);
  }
  if (typ=='ampm') {
    if (inp.val()=='AM') { inp.val()='PM'; } else { inp.val()='AM'; }
  }
  if (typ=='date') {

	strftime = new String(inp.val());
	if (strftime.indexOf("-")!=-1) { arrtime = strftime.split("-");dateseperator='-'; }
	if (strftime.indexOf("/")!=-1) { arrtime = strftime.split("/");dateseperator='/'; }
	numyr = new Number(arrtime[0]);
	nummon = new Number(arrtime[1]);
	numday = new Number(arrtime[2]);

	if (nummon==1 || nummon==3 || nummon==5 || nummon==7 || nummon==8 || nummon==10 || nummon==12) {
	  if (numday<31) {
	    numday = numday+1;
	  } else if (numday>=31) {
	    numday = 1;
	    if (nummon<12) {
	      nummon=nummon+1;
	    } else {
	      nummon=1;
	      numyr=numyr+1;
	    }
	  }
	} else if (nummon==4 || nummon==6 || nummon==9 || nummon==11) {
	  if (numday<30) {
	    numday = numday+1;
	  } else if (numday>=30) {
	    numday = 1;
	    if (nummon<12) {
	      nummon=nummon+1;
	    } else {
	      nummon=1;
	      numyr=numyr+1;
	    }
	  }
	} else if (nummon==2) {
	  if (numday<28) {
	    numday = numday+1;
	  } else if (numday>=28) {
	    numday = 1;
	    if (nummon<12) {
	      nummon=nummon+1;
	    } else {
	      nummon=1;
	      numyr=numyr+1;
	    }
	  }
	}

    inp.val(numyr+dateseperator);
    if (nummon<10) { inp.val(inp.val() + '0'); }
    inp.val(inp.val() +nummon+dateseperator);
    if (numday<10) { inp.val(inp.val() + '0'); }
    inp.val(inp.val() + numday);
  }
}


function down(inp, typ) {
  if (typ=='hour') {
    curnum = new Number(inp.val());
    curnum--;
    if (curnum==13) { curnum=1; }
    if (curnum==0 || curnum==-1) { curnum=12; }
    inp.val(curnum);
  }
  if (typ=='minute') {
    curnum = new Number(inp.val());
    if (curnum==0) { curnum=55; }
    else if (curnum>0 && curnum<5) { curnum=0; }
    else if (curnum>5 && curnum<10) { curnum=5; }
    else if (curnum>10 && curnum<15) { curnum=10; }
    else if (curnum>15 && curnum<20) { curnum=15; }
    else if (curnum>20 && curnum<25) { curnum=20; }
    else if (curnum>25 && curnum<30) { curnum=25; }
    else if (curnum>30 && curnum<35) { curnum=30; }
    else if (curnum>35 && curnum<40) { curnum=35; }
    else if (curnum>40 && curnum<45) { curnum=40; }
    else if (curnum>45 && curnum<50) { curnum=45; }
    else if (curnum>50 && curnum<55) { curnum=50; }
    else if (curnum>55 && curnum<60) { curnum=55; }
    else { curnum=curnum-5; }
    if (curnum<0) { curnum=0; }
    inp.val(curnum);
  }
  if (typ=='ampm') {
    if (inp.val()=='AM') { inp.val()='PM'; } else { inp.val()='AM'; }
  }
  if (typ=='date') {

	strftime = new String(inp.val());
	if (strftime.indexOf("-")!=-1) { arrtime = strftime.split("-");dateseperator='-'; }
	if (strftime.indexOf("/")!=-1) { arrtime = strftime.split("/");dateseperator='/'; }
	numyr = new Number(arrtime[0]);
	nummon = new Number(arrtime[1]);
	numday = new Number(arrtime[2]);

	if (numday>1) {
	  numday = numday-1;
	} else if (numday==1) {
	  if (nummon>1) {
	    nummon=nummon-1
	    if (nummon==1 || nummon==3 || nummon==5 || nummon==7 || nummon==8 || nummon==10 || nummon==12) { numday=31 }
	    else if (nummon==4 || nummon==6 || nummon==9 || nummon==11) { numday = 30; }
	    else if (nummon==2) { numday = 28; }
	  } else {
	    nummon=12;
	    numyr=numyr-1
            numday=31
	  }
	}

    inp.val(numyr+dateseperator);
    if (nummon<10) { inp.val(inp.val() + '0'); }
    inp.val(inp.val() +nummon+dateseperator);
    if (numday<10) { inp.val(inp.val() + '0'); }
    inp.val(inp.val() + numday);
  }
}

function bb_addtag(elem,tag) {

  if (document.selection) {
    elem.focus();
    var sel = document.selection.createRange();
    sel.text = '['+tag+']'+sel.text+'[/'+tag+']';
  } else {
    var len = elem.value.length;
    var start = elem.selectionStart;
    var end = elem.selectionEnd;
		
    var sel = elem.value.substring(start, end);
	var rep = '['+tag+']'+sel+'[/'+tag+']';
    elem.value = elem.value.substring(0,start)+rep+elem.value.substring(end,len);
    
    var cplace=end+tag.length+2;
    setCursor(elem,cplace,cplace);
  }

}
function bb_addtag_single(elem,tag) {

  if (document.selection) {
    elem.focus();
    var sel = document.selection.createRange();
    sel.text = tag;
  } else {
    var len = elem.value.length;
    var start = elem.selectionStart;
    var end = elem.selectionEnd;
		
    var sel = elem.value.substring(start, end);
	var rep = tag;
    elem.value = elem.value.substring(0,start)+rep+elem.value.substring(end,len);
  
    var cplace=end+rep.length;
    setCursor(elem,cplace,cplace);
  } 

}
function bb_addtag_value(elem,tag,val) {
  if (val=='' || val==null) { return; }
  
  var tmpval = new String(val);

  if (document.selection) {
    elem.focus();
    var sel = document.selection.createRange();
    sel.text = '['+tag+'='+val+']'+sel.text+'[/'+tag+']';
  } else {
    var len = elem.value.length;
    var start = elem.selectionStart;
    var end = elem.selectionEnd;
		
    var sel = elem.value.substring(start, end);
	var rep = '['+tag+'='+val+']'+sel+'[/'+tag+']';
    elem.value = elem.value.substring(0,start)+rep+elem.value.substring(end,len);
    
    var cplace=end+tag.length+val.length+3;
    setCursor(elem,cplace,cplace);
  }

}

function setCursor(elem,st,end) {
  if(elem.setSelectionRange) {
    elem.focus();
    elem.setSelectionRange(st,end);
  } else {
    if(elem.createTextRange) {
      range=elem.createTextRange();
      range.collapse(true);
      range.moveEnd('character',end);
      range.moveStart('character',st);
      range.select();
    }
  }
}

var expHours = 3;
var exp = new Date();
exp.setTime(exp.getTime() + (expHours*60*60*1000));

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
}

function SetCookie (name, value, expires, path) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
  ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
  ((path == null) ? "" : ("; path=" + path)) +
  ((domain == null) ? "" : ("; domain=" + domain)) +
  ((secure == true) ? "; secure" : "");
}

function DeleteCookie (name) {
  var argv = DeleteCookie.arguments;
  var argc = DeleteCookie.arguments.length;    
  var path = (argc > 2) ? argv[2] : null;
  var domain = (argc > 3) ? argv[3] : null;
  var secure = (argc > 4) ? argv[4] : false;    
  var exp = new Date();
  exp.setTime (exp.getTime() - 1);
  var cval = GetCookie (name);
  document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString() +
  ((path == null) ? "" : ("; path=" + path)) +
  ((domain == null) ? "" : ("; domain=" + domain)) +
  ((secure == true) ? "; secure" : "");
}