//<script language="JavaScript1.2">
//<!--
//Drag and drop engine for static content
//© Dynamic Drive (www.dynamicdrive.com)

var dragapproved=false
var zcor,xcor,ycor

var currentfield = null
var leftpos, toppos

var oldlenstxt = 0
var objects = new Array(20);

function movescontentmain(){
if (event.button==1&&dragapproved)
	{
     zcor.style.pixelLeft=tempvar1+event.clientX-xcor
     zcor.style.pixelTop=tempvar2+event.clientY-ycor
     leftpos=document.all.scontentmain.style.pixelLeft-document.body.scrollLeft
     toppos=document.all.scontentmain.style.pixelTop-document.body.scrollTop
     return false
     }
}

function RestoreButtons(delay)
{
	if (delay > 1)	
		{
		  setTimeout("RestoreButtons(1)",3000);
		} else {
		   document.getElementById("buttonDiv").style.display ='';
      	} 
}


function PrintDataOnly()
{
	  document.getElementById("buttonDiv").style.display = 'none';
      window.print();
	  eval("RestoreButtons(2)");
}


function SendForm()
{ if (  document.getElementById("ORG_TIME") !=null )
{ document.forms[0].ORG_TIME.value = GMTDateTime();
}
else
	{alert("FORM HAS NO AFTN ORIGIN FIELD SO CANNOT BE PROCESSED");
     return false;
	}
 // document.forms[0].ORG_TIME.value = GMTDateTime();
   // for the cnd.co.nz use
 if (location.hostname == "www.cnd.co.nz")
 {
 window.open('example_send.htm','AFTNMessage',	'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,top=50,left=50,width=650');
 } 
 // for real site use
 else {
  document.forms[0].submit();
 }
}

function RequestNewMessage(command)
{
  document.forms[0].UPDATE.value = command;
  document.forms[0].submit();

 }

function FormReload()
{
location.replace(document.URL);
}

function dragscontentmain(){
if (!document.all)
return
if (event.srcElement.id=="scontentbar"){
dragapproved=true
zcor=scontentmain
tempvar1=zcor.style.pixelLeft
tempvar2=zcor.style.pixelTop
xcor=event.clientX
ycor=event.clientY
document.onmousemove=movescontentmain
}
else
 disabledrag()
}

function disabledrag()
{
//alert("drag disabled");
dragapproved=false;
return
}

document.onmousedown=dragscontentmain
//document.onmouseup=new Function("dragapproved=false")
document.onmouseup=disabledrag

//browser detection
			var strUserAgent = navigator.userAgent.toLowerCase(); 
			var isIE = strUserAgent.indexOf("msie") > -1; 
			var isNS6 = strUserAgent.indexOf("netscape6") > -1; 
			var isNS4 = !isIE && !isNS6  && parseFloat(navigator.appVersion) < 5; 


if (isIE) {  // IE
   document.onkeydown = getkey;
    document.onhelp = function() { return false; }  // disable help on F1
  } else {  // Mozilla
    document.onkeypress = getkey;
   }


//Field Validation function
	function Validate(objEvent,value) {
	var key, strKey ,filter;  
	var maxlength;
	//navigate keys
	

	if (currentfield.name == "ADDRESS" && currentfield.type =='textarea') {   // return key not allowed in multi line address field
	  filter = [0,8,9,16,17,18,37,38,39,40,46] ;
	  maxlength = currentfield.rows * currentfield.cols; 
	  }
	  else{
	  filter = filter = [0,8,9,13,16,17,18,37,38,39,40,46] ; 
       maxlength = 99999;
		}
   
    if (!objEvent) objEvent = event ;
    key = objEvent.which || objEvent.keyCode;
 
   strKey = String.fromCharCode(key).toUpperCase();
  
	if (containsElement(filter,key)) 
		{
	return true;
    	}
    if (value.length == 0) 
		{
	return true;    // no characters are barred 
		}
	if (value.indexOf(strKey) < 0 || currentfield.value.length >= maxlength){
	  return false;
  	}
	 
  }
	
			

// Trap for all input box key events 
// Blocks Submit in Enter
// Sets Origin Time on Space bar
// Blocks F1 from the Browser
// Launches Help form on F1 key
// Closes Help on Escape key


 function cancelKey(e)
 {
  if (!e) e = event;
  if (e.preventDefault)
  {
    if (e.cancelable) e.preventDefault();
  } 
  else
  {
    e.keyCode = 0;
    e.returnValue = 0;
    e.cancelBubble = false;
  }	
 }

function redraw()
{
  window.showModalDialog("javascript:document.writeln('<" + "script" + ">window.close();</" + "script" + ">')");
  return;
}

function getkey(e)
{
 
 if (!e) e = event ;
  var key = e.which || e.keyCode;
  var element = e.target || e.srcElement;
  if (key == 13 && element.type != 'textarea' && element.type != 'submit') return false;

   if (key == 27)   // Escape Key
   {
     CloseHelpWindow();
   return false;
   }
   
  
    if ((e.charCode == null || e.charCode == 0) && key == 112)  // F1 Key
   {
    // cancel browser app event handler for F1 key and show field help
    cancelKey(e);

	ShowHelp("");
	
	return true;
   }
 //  if (key == 107  && isIE)  // Numeric + Key - dosent work in Mozilla
     if ((e.charCode == null || e.charCode == 0) &&  key == 107) 
   {
	  SendForm();
	  return false;
   }

   return true;
 }

function autoTab(input,len,e)
// Tab to next field when field is full
{

 var key = e.which || e.keyCode;

var filter = [0,8,9,16,17,18,37,38,39,40,46,112] ;

if(input.value.length >= len && !containsElement(filter,key)) {
input.value = input.value.slice(0, len);
TabtoNextField(input); 

}
return true;
}

function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}


function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}


function TabtoNextField(input) {
input.form[(getIndex(input)+1) % input.form.length].focus(); //focus to next field
}

function CheckTab(e) {
var key = e.which || e.keyCode;
var  HelpField = document.getElementById("FieldHelp");
 if (key == 9)
  {
	  currentfield.focus();
  }
else if (key == 13)
  {
	 SetValueFromHelp(HelpField.options[HelpField.selectedIndex].text,HelpField.selectedIndex);
  }
else if (key ==38 && HelpField.selectedIndex > 0  )
{  HelpField.selectedIndex = HelpField.selectedIndex -1;
}
else if (key ==40 && HelpField.selectedIndex  < HelpField.length-1  )
	{HelpField.selectedIndex =  HelpField.selectedIndex +1;
	}
}

function delay(gap){ /* gap is in millisecs */
var then,now; then=new Date().getTime();
now=then;
while((now-then)<gap)
{now=new Date().getTime();}
}

function SetCursor(CursorStyle)
{  var version=/ \d/ ;
	
if (isIE)
{	
document.body.style.cursor =CursorStyle;
document.getElementById("Search").style.cursor =CursorStyle;
document.getElementById("FieldHelp").style.cursor = CursorStyle;
var field = document.forms[0];
for (i = 0; i < field.length; i++) {
   field.elements[i].style.cursor=CursorStyle; 
}  

if (navigator.appVersion.match(version)  != 7 )
{ redraw();
}
}   
 return;
}


function goThere()
{
var stxt = document.getElementById("Search").value.toUpperCase();
var lenstxt = stxt.length;

var select = false;
var  HelpField = document.getElementById("FieldHelp");
var len = HelpField.length - 1;




if (!isIE) {
// not IE
 for (var i = 1; i <= len; i++) {
  var htxt = HelpField.options[i].text.substr(0,lenstxt).toUpperCase();
  if (htxt == stxt && lenstxt != oldlenstxt) {HelpField.selectedIndex = i; break}
 }
}
else {
// IE

 if (lenstxt == 1 && objects[0] == null) {objects[0] = HelpField.cloneNode(true);}
 if (lenstxt > oldlenstxt) {
 SetCursor("wait");
   for (var i = 1; i <= len; i++) {
     var htxt = HelpField.options[i].text.toUpperCase();
     if (htxt.indexOf(stxt) >= 0) {if (!select) {HelpField.selectedIndex = i;select=true;}}
     else {HelpField.remove(i);len--;i--;}
   }
 objects[lenstxt] = HelpField.cloneNode(true);
 SetCursor( "default");
 }
 else if ( (lenstxt < oldlenstxt) )
 { // lenstxt smaller
  HelpField.replaceNode(objects[lenstxt]);
  objects[lenstxt] = HelpField.cloneNode(true);
  objects[lenstxt+1] = null;
 HelpField.selectedIndex = 0;
 }
} // IE end

oldlenstxt = lenstxt


return
}

function ShowHelp(error)
// Help data extracted from MM2000 form
{
 var HelpField;
 var HelpName;
 var SearchField;
 
 HelpField = document.getElementById("FieldHelp");
 HelpName = document.getElementById("FieldName");
 SearchField =document.getElementById("Search"); 
  //make sure the help display is empty
  InitializeHelp();
  SetCursor("wait");
  // Field Help inserted here 
  GetHelpOptions(currentfield,HelpField,HelpName );
 
 if (HelpField.length == 0) {
	  HelpField.length = 1;
 HelpField.options[0].text = "No Help Available";
}
 HelpName.value =  HelpName.value + error ;
 
 if ( HelpField.length == 1) { 
	 HelpField.size= 2
	}
 else if ( HelpField.length < 10 ) {
	 HelpField.size= HelpField.length
 }
	 else {
 HelpField.size=10;
	 }
  if (error.length != 0 ){
   HelpName.style.backgroundColor = "red";
   currentfield.focus();
  } 
  else {
    HelpName.style.backgroundColor = "darkblue";
	if (currentfield.type == 'select-one') {
	// HelpField.selectedIndex=0; 
	 SearchField.focus();
}
  }
  //position the help windows after it's loaded
  document.getElementById("scontentmain").style.left=leftpos;
  document.getElementById("scontentmain").style.top=toppos;
   SetCursor("default");
      staticize();
   HelpField.selectedIndex=0; 
  return ;
}

function FieldGotFocus(e) {
var ok = true;
var str;
if (!e) e = event;
var element = e.target || e.srcElement;

if (element.readOnly){
  TabtoNextField(element);
  return false;
}
if  (currentfield != null && currentfield != element) HideHelp();

if  (currentfield != null) {
  if (currentfield.type == "text"  || currentfield.type == "textarea") {
	  str = currentfield.value.toUpperCase();  //save  in uppercase
      currentfield.value = str };

//if the box is a select list we assume the data is OK
	if (currentfield.type == "select-one" )
	{ ok = true;
	}
  
 
  //special validation code for PRIORITY and ADDRESS ORIGIN TIME and ORIGIN text boxes
  else  if (currentfield.name == "PRIORITY" ){ 
    //Priority Field
    if ( str.substr(0,1) !=  str.substr(1,1) )
    {
     window.status = "Both Priority Characters must be the same! ";
     ok = false;
    
      }
   }
   else if (currentfield.name == "ADDRESS" ){ 
   //Address field Test for 8 character Alpha groups
   
   var i;
   var j = 0;
   str = str.replace(/^\s*|\s*$/g,"");  //remove spaces front and back
   while (str.indexOf("  ") > 0) {str = str.replace(/\s\s/g," ");}  // double blanks
   currentfield.value = str;
   str = str +" ";

   for (i=0; i<str.length; i++) {
   if (str.substr(i,1) == " ") {
         // must be the 8th character
		 if (j != 8) {
           window.status = " Address group length Error! ";
          ok = false;
		  break;
		  }
		  j = 0;
        }
       else j++;
    }
   }
   else if (currentfield.name == "ORG_TIME" ){ 
   //Origin time  formar ddhhmm
   var s ;
   ok = false;
   s = str.slice(0,2);   //day
     if (s < 32 && s > 0 )  {
     s = str.slice(2,4);  //hour
     if (s < 24 ) {
	   s = str.slice(4,6);  //minute 
       if (s < 60) ok = true;
      }
     }
      if (!ok) window.status = "Invalid Date Time";
    }
    else if (currentfield.name == "ORIGIN" ){ 
     if (str.length != 8 ) {
	  ok = false;
     }
	}
 }   // tests for field just left
   if (ok) {
     window.status = "";
     if  (currentfield != null) currentfield.style.backgroundColor = "silver";
	 
	 currentfield = element;
	 currentfield.style.backgroundColor = "aqua";
	   
     return true;
   }
   else {
   ShowHelp(" ERROR");
	return false;
   }
}



function GMTDateTime() {
 var curDateTime = new Date();
  var curHour = curDateTime.getUTCHours();
  var curDay = curDateTime.getUTCDate();
  var curMin = curDateTime.getMinutes();
  var GMTDate =  ((curDay < 10) ? "0" : "") + curDay +  ((curHour < 10) ? "0" : "") + curHour  + ((curMin < 10) ? "0" : "") + curMin ;
  
  return GMTDate;
}


function SetValueFromHelp(data,index)
{ 
	
	var i;
if (currentfield.type == 'select-one') {
if (index == 0 )
{currentfield.options[0].selected =true;
} else
	{
   while  (data.indexOf("  ") > 0) { data =  data.replace(/\s\s/g," ");}  // double blanks
   //isolate the selection form the comment part

    data = data.substring(0,data.lastIndexOf(" -"));  // get the code part only 
	
 for (i = 1; i <currentfield.options.length; i++) {
	 var line = currentfield.options[i].text ;
	
		 if (data==line)
	 {
		  currentfield.options[i].selected =true; 
		 break;
	 }
 }
	
}
}
return
}

function ClearField(data, index)
{
if (currentfield.type == 'select-one' && index == 0) 
	{ currentfield.options[0].selected =true; }
else
	{ SetValueFromHelp(data,index);
	}

 currentfield.focus();   //put focus back to parent field
}


function InitializeHelp()
// Clear search box and clear the style.display
{
document.getElementById("scontentsub").style.display='';
document.getElementById("Search").value="";
   oldlenstxt = 0;
   objects = new Array(20);
return
}

function HideHelp(){
document.getElementById("FieldHelp").selectedIndex=0;
document.getElementById("scontentsub").style.display='none';
document.getElementById("scontentmain").style.top = -200;    //Move Help Form out of site

}

function CloseHelpWindow(){ 
if (currentfield != null ) currentfield.focus();
HideHelp();
}

function ValidateAddressLine(str)
{var i
 var j=0;
for (i=0; i<str.length; i++) {
   if (str.substr(i,1) == " ") {
         // must be the 8th character
		 if (j != 8) {
          return false;
  		  }
		  j = 0;
        }
       else j++;
    }
	if (i > 7)
	{	return true;
    }
	return false;
}

function FocusFirstField()
//Set focus to any field in error (colour red) and show help. If no error then focus 
//the first field that is not Readonly - Note forms[1] is the Help form, forms[0] is the data entry form
{
var i = 0;
var w=document.body.clientWidth-320
var h=0
var origin=GetCookie ("DefaultOrigin");
w+=document.body.scrollLeft
h+=document.body.scrollTop
leftpos=w
toppos=h
//document.getElementById("scontentmain").style.left=leftpos
//document.getElementById("scontentmain").style.top=toppos
HideHelp();
if (document.forms.length > 0) {
var field = document.forms[0];
  if (  document.getElementById("ORG_TIME") !=null )   //set origin time to now
{ document.forms[0].ORG_TIME.value = GMTDateTime();
}

for (i = 0; i < field.length; i++) {
//set the origin from the cookie
if (field.elements[i].name == "ORIGIN")
{
  field.elements[i].value =origin;
  if (field.elements[i].value == "null" ||  field.elements[i].value  == "")
  {
    field.elements[i].value = "NZGUESTA"
  }
}

if (field.elements[i].style.backgroundColor == "red")
{
	if (field.elements[i].readOnly  || (field.elements[i].name=="ADDRESS" &&  ValidateAddressLine(field.elements[i].value)))
	{alert(origin +" not permitted to send to this address");
	}
	else
	{
		 document.forms[0].elements[i].focus();  //also sets field color to aqua
         currentfield= document.forms[0].elements[i];
         ShowHelp(" ERROR");
         currentfield.style.backgroundColor = "red";
	 }
 return true;
}
}
for (i = 0; i < field.length; i++) {
if (((field.elements[i].type == "text") || (field.elements[i].type == "textarea")) &&  field.elements[i].readOnly == false) {
document.forms[0].elements[i].focus();
break;
         }
      }
   }
}

function ResponseURL()
{
  location.href=	GetCookie ("DefaultOrigin")+".htm";
}

function staticize()  // Keep Help window at previous position while scrolling window
{ var field =document.getElementById("scontentsub");
 if (field == null)
 	{return
	}



if (field.style.display !='none') {
var w2=document.body.scrollLeft+leftpos
var h2=document.body.scrollTop+toppos
document.getElementById("scontentmain").style.left=w2
document.getElementById("scontentmain").style.top=h2
}
}

function getCookieVal (offset) {
         var endstr = document.cookie.indexOf (";", offset);
         if (endstr == -1) {
            endstr = document.cookie.length;
         }
         return unescape(document.cookie.substring(offset, endstr));
      }

      //
      //  Function to return the value of the cookie specified by "name".
      //    name - String object containing the cookie name.
      //    returns - String object containing the cookie value, or null if
      //      the cookie does not exist.
      //
       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;
            }
         }
		 if (name == "DefaultOrigin") 	 return "NZGUESTA"
		 
         return null;
      }

function ShowChangePassword() {
	if (GetCookie( "GuestUser")  != "Y" )
	{
		var newwindow=window.open("ADMIN_CHANGE PASSWORD.htm","cpw","status=0,height=250,width=268,top=320,left=445" );
       newwindow.focus();
	}
}
window.onscroll=staticize
////-->
//</script>

