
fullArrow = new Image();
fullArrow.src = "Images/navdot2.gif";

clearArrow = new Image();
clearArrow.src = "Images/navdot1.gif";

function arrowOver( img ) {
 document.images[ img ].src = fullArrow.src;
}

function arrowOut( img ) {
 document.images[ img ].src = clearArrow.src;
}

function MM_openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}


function MM_findObj(n, d) { 
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() {
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}

function jumpPage(newLoc) {
			newPage = newLoc.options[newLoc.selectedIndex].value
	
			if (newPage != "") {
				window.location = newPage
			}
		}
		
function OpenNewWin(page, window_name, appearance)
{   
   if (page.indexOf(".html") == -1 && page.indexOf("#") == -1)
   {
      if (page.indexOf("?") == -1 )
      { page = page + "?"; }
      else
      { page = page + "&"; }
      
      {
         var d = new Date;
         page = page + "x=" + d.getTime()
      }
   }
   
   if (window_name == "")
   { window_name = "new_window"; }
   
   window.open(page, window_name, appearance);
   
}

function clearPanel() 
 {
 //clears the error message on enter in ViewInvoices.aspx
  var lbl = document.getElementById('ctl00_ctl00_ctl00_PageContent_BlackwoodsPageContent_PageContent_lblEmptyData');
  if(lbl != null) lbl.innerHTML =''; 
  
  var lbl = document.getElementById('ctl00_ctl00_ctl00_PageContent_BlackwoodsPageContent_PageContent_lblEmptyData1');
  if(lbl != null) lbl.innerHTML ='';  
  
    
   
}


function printcheckchanged(chkbox) {

    var parentElem = chkbox.parentElement;
    while (parentElem != null && parentElem.id != "component")
    {
        parentElem = parentElem.parentElement;
    }

    if(chkbox.checked)
    {
        parentElem.className = "print";
    }
    else
    {
        parentElem.className = "noprint";
    }
}


/*
  select all check boxes with the specified name and reset their values to be the same as the 
  supplied checkbox
*/
function CheckAllChildBoxes(chkbox, childname)
{
    var kids = document.forms[0].elements[childname];
    if (!kids)
    {
        return;
    }
    
    var count = kids.length;
    for (var position = 0; position < count; position++)
    {
        kids[position].checked = chkbox.checked;
        printcheckchanged(kids[position]);
    }
}

/*
    print the current control containing the specified button
    pntbutton : the button that was pressed, it will print the control containing th button
    ExcludeClass : any element with the class specified will be removed from the print
    cssfile : the CSS file to use to style the window
*/
function PrintForm(pntButton, excludeclass, cssfile)
{
    var elem = pntButton.parentElement;
    var WindowObject = window.open('', "tmpscreen", "width=940,height=325,top=200,left=250,toolbars=no,scrollbars=yes,status=no,resizable=yes");
    WindowObject.document.writeln(elem.innerHTML);
    // add the CSS 
    if(cssfile != null && cssfile != "")
    {
        var newSS=WindowObject.document.createElement('link');
        newSS.rel='stylesheet';
        newSS.href=cssfile;
        newSS.type='text/css';
        WindowObject.document.getElementsByTagName("head")[0].appendChild(newSS);
    }

    WindowObject.document.body.style.backgroundColor = 'white';

    // remove the items with the specified class
    if (excludeclass != null && excludeclass != "")
    {
        RemoveChildrenByClass(WindowObject.document, "noprint");
    }
    
    var btnPrint=WindowObject.document.createElement('button');
    btnPrint.id='btnPrint';
    btnPrint.value='Print';
    btnPrint.style.margin = '12px 5px 0px 12px';
    btnPrint.onclick = function(){WindowObject.print() };
    WindowObject.document.body.appendChild(btnPrint);
    

    // add the close button
    var btnClose = WindowObject.document.createElement('button');
    btnClose.id = 'btnClose';
    btnClose.value = 'Close';
    btnClose.style.margin = '12px 0px 0px 5px';
    btnClose.onclick = function(){WindowObject.close() };
    WindowObject.document.body.appendChild(btnClose);

  
    
    WindowObject.document.close();
}



/*
    Navigate over the entire window document and remove any child with the specified class name
*/
function RemoveChildrenByClass(node, classId)
{
   if(!node)
   {
      return;
   }

   var len = node.childNodes.length;

   for(var i = len - 1; i >= 0; i--)
   {
      var child = node.childNodes[i];
      if (child != null &&  child.className != null)
      {
          if(child.className.indexOf(classId) > -1)
          {
              node.removeChild(child);
          }
          else
          {
              if (child.childNodes.length > 0)
              {
                  var childLength = child.childNodes.length;
                  for (var childCount = childLength - 1; childCount >= 0; childCount--)
                  {
                      RemoveChildrenByClass(child.childNodes[childCount], classId);
                  }
              }
          }
      }
   }
}


