﻿var endHeight = new Array();

function Focus(sElement) {

if ( document.getElementById(sElement) != null ) {
        document.getElementById(sElement).focus() ; }
}

function Show(sElement) {
if ( document.getElementById(sElement) != null ) {
    document.getElementById(sElement).style.display = 'inline-block' ; }
}
    
function Hide(sElement) {

if ( document.getElementById(sElement) != null ) {
    document.getElementById(sElement).style.display = 'none' ; }
}

function ClearTextBox(sElement,sValue)
{
   if   ( sElement.value.length == 0 )
        {
          sElement.value = sValue ;
        }
   else {
       
   // the textbox onclick event calls this to clear down a textbox when it is first clicked on
        if ( sElement.value == sValue )
            {
             sElement.value = "" ;
            }
        }
}

function ToggleContent(sItem,sHeight)
{    
    if  ( sHeight == '0' ) {
    // removeattribute doesn't seem to work in anything other than IE
    if  ( document.getElementById(sItem).style.removeAttribute ) 
    {
        document.getElementById(sItem).style.removeAttribute('height');
        }
        else
        { 
            document.getElementById(sItem).style.overflow = 'auto' ; }
    }
    else {
        endHeight[sItem] = document.getElementById(sItem).offsetHeight;
        document.getElementById(sItem).style.height = sHeight; }
}

var timerlen = 5;
var slideAniLen = 500;
var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function excerpts(sContainer) {

    // this node exists in some pages to stop this sub running 
    if ( document.getElementById('nojavascript') != null )
    { return ; } 

    var i  = 0;
    var firstParagraph = true ;
    var parNode = document.getElementById(sContainer);
    var nextNode =  document.getElementById(sContainer).firstChild;
    var anchorText = "";
    var newNodeAnchor = document.createElement("a");
    var innerText = "";
    var anchorHREF = "";
    var lastHeadingNode = "";  
    var newHeading = document.createElement("h1");
   
    if ( nextNode == null ) 
        { return ; }

    //Loop through the container until we find the heading to get our anchortext
    while ( nextNode.tagName != 'H1' )
    {
        nextNode = nextNode.nextSibling ;
    }

	anchorText=nextNode.innerHTML; 
	nextNode.style.display='none'; 
	lastHeadingNode = nextNode;
	newHeading.innerHTML = nextNode.innerHTML;

	
	// Now we search for the first paragraph	
	while ( nextNode.tagName != 'P' )
    {
        nextNode = nextNode.nextSibling ;
    }	

    // Loop through the other elements in the container
    while ( nextNode.parentNode.id == sContainer ) 
    {
	    
		    if ( nextNode.tagName == 'P' ) {
		        i = i+1;
		        
		        if ( firstParagraph ) {	
		        
		             // We create an anchor that will expand the original paragraphs when clicked    
		            newNodeAnchor = document.createElement("a");
		            
                    firstParagraph = false ;
		        
		            //we add a slidedown to the anchortext
	        
		           anchorHREF = "javascript:Show('content" + i + "')";
		            }  
		        else
		           { 
		           anchorHREF = anchorHREF + ";Show('content" + i + "')"; 
		        }
		        
		        // we name our paragraph so that we can show it later
		        nextNode.id= "content" + i ;
		       
		        //we hide our original paragraph
		        nextNode.style.display='none'; 
            
            }
            
            if ( nextNode.tagName == 'H2' ) {
	            // For each H2 heading we create a new div that will contain our excerpt and we give it a name so that we can hide it later

		        firstParagraph = true ;
		        
		        nextNode.style.display='none';
		        
	            anchorText=nextNode.innerHTML; 
	            
		        //we insert our excerpt and anchor into the document just before our last heading
		        newNodeAnchor.href = anchorHREF + ";";
		        
		        newNodeAnchor.appendChild(newHeading);
		        
		        parNode.insertBefore( newNodeAnchor, lastHeadingNode);
		        
		        lastHeadingNode = nextNode;
		                
		        newHeading = document.createElement("h2");
		        newHeading.innerHTML = nextNode.innerHTML;
            }
             
            if ( nextNode.nextSibling != null ) 
               {
                nextNode = nextNode.nextSibling; }
            else
               {   
                // write the last paragraph
		        
		        //we insert our anchor into the document just before our H2
		        newNodeAnchor.href = anchorHREF + ";"
		        
		        newNodeAnchor.appendChild(newHeading);
		        parNode.insertBefore(newNodeAnchor, lastHeadingNode);	    
	            return; }
            
    }
             
}

var testaments = new Array();
var testamenters = new Array();
var testamentHeights = new Array();
var testamentNo = 0;
    
testaments[0] = '"Quick and easy to use. You could save hundreds."';
testamenters[0] = "";
testamentHeights[0] = 100;
testaments[1] = '"Hundreds of removal companies on a single website."';
testamenters[1] = "";
testamentHeights[1] = 100;
testaments[2] = '"Useful articles and resources which could help you with your house move."';
testamenters[2] = "";
testamentHeights[2] = 100;


function toggleTestament()
{
    // this node exists in some pages to stop this sub running 
    if ( document.getElementById('nojavascript') != null )
    {   Hide('testamonies');
        return ; } 
    
    // Select testament DIV
    var testament = document.getElementById('testament');
    var testamenter = document.getElementById('testamenter');
   
       // select a testament    
   	if ( document.all )
	    { testament.innerText = testaments[testamentNo];
	      testamenter.innerText = testamenters[testamentNo];  }
    else
	    { testament.textContent = testaments[testamentNo];
	      testamenter.textContent = testamenters[testamentNo]; }
	

    // increment testament nos
    testamentNo = testamentNo + 1;
    
    if ( testamentNo == testaments.length  )
        {   testamentNo = 0; } 
    
}

function ShowSpan (sDropdown,sValue,sSpan,sFocus)
{ 
    if (sDropdown.value == sValue)
    { Show(sSpan); 
      document.getElementById(sFocus).value = "";
      Focus(sFocus); }
    else
    { Hide(sSpan);
      document.getElementById(sFocus).value = "n/a";}
}

function ValidatePostcode(sender, args) 
{
    args.IsValid = (args.Value.match(/(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]) [0-9][ABD-HJLNP-UW-Z]{2})/i) != null);
    return args.IsValid;
}
