// JavaScript Document for Clugston Properties 


// Function to return a list of elements with a specific class attribute
document.getElementsByClassName = function($class) {
	var $results = Array();
	var $elements = document.getElementsByTagName("*");
	for (var $i=0; $i<$elements.length; $i++) {
		var $classes = $elements[$i].className.split(" ");
		for (var $j=0; $j<$classes.length; $j++) {
			if ($classes[$j] == $class) {
				$results[$results.length] = $elements[$i];
			}
		}
	}
	return $results;
}

// function to hide content with hidden class 

	function hide_content()
		{
				//is dom compatable 
					if (!document.getElementsByTagName) return false;
					if (!document.getElementById) return false;	
				// got class function used
					if(!document.getElementsByClassName) return false; 
			
			var $boxes=document.getElementsByClassName("hidden");
			for (var $x=0;$x<$boxes.length; $x++)
			{
				
				$boxes[$x].style.display = 'none';
				$boxes[$x].parentNode.setAttribute('title','Enter more details - double click to open');
				$boxes[$x].parentNode.firstChild.innerHTML=$boxes[$x].parentNode.firstChild.innerHTML + 'more >>';
				
				$boxes[$x].setAttribute('status','closed');
				$parent_id=$boxes[$x].className.split(" ");
				prepare_parent_event($parent_id[0]);
				
				
			}
		}
	function prepare_parent_event($container)
	
		{
		if (!document.getElementById($container)) return false; 
			
			var $parent=document.getElementById($container);
			$parent.ondblclick=function ()
				{
						
						$divElements=document.getElementsByTagName('div'); 
						for($x=0;$x<$divElements.length;$x++)
							{
									$firstClass=$divElements[$x].className.split(" ");
									
									if($firstClass[0]==$container)
										{
											$status=$divElements[$x].getAttribute('status'); 
											
											if($status=='open')
											{
												
												$divElements[$x].parentNode.setAttribute('title','Enter more details - hover to open');								
												$divElements[$x].style.display='none';
												$divElements[$x].setAttribute('status','closed');
											}
											else
												{
													$divElements[$x].parentNode.setAttribute('title','Click to close');								
													$divElements[$x].style.display='block';
													$divElements[$x].setAttribute('status','open');
													
												}
										}
							}
							
				}
		}
function validateForm(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if (element.className.indexOf("required") != -1) {
      if (!isFilled(element)) {
		 var nparent=element.parentNode;
		 nparent.className='ferror';
		 var warning=document.createElement("span");
		 warning.appendChild(document.createTextNode(element.name +" required"));
		 nparent.appendChild(warning);
		 element.className=element.className+' required-empty';
		element.focus();
		element.select();
        return false;
      }
    }
    if (element.className.indexOf("email") != -1) {
      if (!isEmail(element)) {
        var nparent=element.parentNode;
		 nparent.className='ferror';
		 var warning=document.createElement("span");
		 warning.appendChild(document.createTextNode(element.name +" required and must be a valid email address"));
		 nparent.appendChild(warning);
		element.className=element.className+' required-empty';
		element.focus(); 
        return false;
      }
	}
	 if (element.className.indexOf("tel") != -1) {
      if (!istelno(element)) {
        var nparent=element.parentNode;
		 nparent.className='ferror';
		 var warning=document.createElement("span");
		 warning.appendChild(document.createTextNode(element.name +" required and must be a 10-11 digit number spaces allowed"));
		 nparent.appendChild(warning);
		
		 element.className=element.className+' required-empty';
		 element.focus(); 
         return false;
    	  }
    	}
  }
   
  return true;
}

function isFilled(field) {
  if (field.value.length < 1 || field.value == field.defaultValue) {
    return false;
  } else {
    return true;
  }
}

function isEmail(field) {
  if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {
    return false;
  } else {
    return true;
  }
}
function istelno(field)
	{
	exp = /^[0-9 \w]{11,12}$/
  if (exp.test(field.value) != true) 
		{return false;}
	else
		{return true;}
	}

function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
    
    thisform.onsubmit = function() {
      return validateForm(this);
    }
  }
}
function prepareReset()
{
	var inputtags=document.getElementsByTagName('input');
	for (var $x=0;$x<inputtags.length ;$x++)
	{
		
		inputtags[$x].onchange=function()
		{
		var nparent=this.parentNode;
		 nparent.className='';
		 nparent.lastChild.innerHTML=" ";
		
		}
	}
}
function setFilenameField(objFileinput,objForm)
	{	
		var newinput=document.createElement("input"); 
		newinput.setAttribute("type","hidden"); 
		newinput.setAttribute("name","filename"); 
		newinput.setAttribute("id","filename"); 
		newinput.setAttribute("value",objFileinput.value); 
		objForm.appendChild(newinput); 
	}
function prepareprint()
	{
		var $printlinks=document.getElementsByClassName("print");
			for (var $x=0;$x<$printlinks.length; $x++)
			{
				
				$printlinks[$x].onclick=function()
					{
							window.print(); 
					}
					
				
				
			}	
	}
function addLoadEvent(func) {
	//acknowledged use from DOM Scripting by J Keith
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
addLoadEvent(hide_content);		
addLoadEvent(prepareForms);	
addLoadEvent(prepareprint);
addLoadEvent(prepareReset);
