﻿/// <summary>
/// Generic finction to open a URL in a new window.
/// </summary>
function OpenWindow(url)
{	
	var docprint = window.open(url, "", GenerateDisplaySettings()); 
	
	docprint.focus(); 
}

/// <summary>
/// This function generates the dispaly settings for the new browser window.
/// </summary>
function GenerateDisplaySettings()
{
	var disp_setting = "toolbar=no,location=no,directories=no,menubar=no,"; 
	disp_setting += "scrollbars=no,width=900,height=600,left=20,top=10,resizable=yes"; 
	
	return disp_setting;
}

function GetObjectByPartName(name) {
  var obj = null; 

  //Go through the forms collection
  for (var i= 0; i < document.forms['aspnetForm'].elements.length; i++)
  {  
  
    if(document.forms['aspnetForm'].elements[i].name == null && document.forms['aspnetForm'].elements[i].id == null)
        continue;
        
    var elementname = document.forms['aspnetForm'].elements[i].name == null ? '' : document.forms['aspnetForm'].elements[i].name;
    var elementid = document.forms['aspnetForm'].elements[i].id == null ? '' : document.forms['aspnetForm'].elements[i].id;
		
    // if the object name passed equals the object name in the form collection - return it's number
    if (elementname.indexOf(name) != -1 || elementid.indexOf(name) != -1)
    {
	    obj = document.forms['aspnetForm'].elements[i];
	    return obj;
    }
  }
  
  if(obj == null)
		obj = GetObjectByPartialTagName('span', name);
    
  if(obj == null)
		obj = GetObjectByPartialTagName('div', name)
		
	if(obj == null)
		obj = GetObjectByPartialTagName('table', name)
		
	if(obj == null)
		obj = GetObjectByPartialTagName('img', name)

    if(obj == null)
		obj = GetObjectByPartialTagName('a', name)
		
    if(obj == null)
		obj = GetObjectByPartialTagName('ul', name)
		
	if(obj == null)
		obj = GetObjectByPartialTagName('li', name)
		
    if(obj == null)
		obj = GetObjectByPartialTagName('dd', name)
  return obj;
}

function GetObjectByPartialTagName(tagName, name)
{
	var obj = null;
	var elementnumber;
	var elements = document.getElementsByTagName(tagName);  
    
  for(i=0; i<elements.length; i++) 
  {  
		var elementID = elements[i].id;
		
		//alert(elements[i].getElementsByTagName(tagName).length);
  		
    // if the object name passed equals the object name in the form collection - return it's number
    if (elementID.indexOf(name) != -1)
    {
      obj = elements[i]
      break;
		}    
  }
  
  return obj;
}

function Toggle(divID, ctrl, upImage, downImage)
{
	var divControl = document.getElementById(divID);
	
	if(divControl.style.display == 'block')
	{
		EraseCookie(divID);
		CreateCookie(divID, 'none', 1);
		divControl.style.display = 'none';
		ctrl.src = upImage;
	}
	else
	{
		EraseCookie(divID);
		CreateCookie(divID, 'block', 1);
		divControl.style.display = 'block';
		ctrl.src = downImage;
	}	
}
	
function HighlightInvalidControls()
{
	var success = true;
	Page_ClientValidate();
	
	if (document.Page_Validators != "undefined")
	{
		for (i = 0; i < Page_Validators.length; i++) 
		{
			val = Page_Validators[i];			
			
			if(!val.isvalid)
			{
					ChangeColour(val.controltovalidate, '#FFCCCC');
					success = false;
			}
			else
					ChangeColour(val.controltovalidate, '#FFFFFF');
		}
	}
	
	return success;
}
	
function ChangeColour(controlID, color)
{   
	if (document.getElementById(controlID) != null)
		document.getElementById(controlID).style.backgroundColor='' + color + '';
}

function EraseCookie(name) 
{
    CreateCookie(name, '', -1);
}

function CreateCookie(name, value, days) 
{
    var expires = '';
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = '; expires=' + date.toGMTString();
    }
    document.cookie = name + '=' + value + expires + '; path=/';
}

function ReadCookie(name) 
{
    var cookieCrumbs = document.cookie.split(';');
    var nameToFind = name + '=';
    for (var i = 0; i < cookieCrumbs.length; i++) {
        var crumb = cookieCrumbs[i];
        while (crumb.charAt(0) == ' ') {
            crumb = crumb.substring(1, crumb.length); /* delete spaces */
        }
        if (crumb.indexOf(nameToFind) == 0) {
            return crumb.substring(nameToFind.length, crumb.length);
        }
    }
    return null;
}

function PageScroll()
{
		window.scrollBy(0,1000);		
}

function DisableAnchor(obj, disable) 
{
    if (disable)
    {
        var href = obj.getAttribute("href");
        if (href && href != "" && href != null) 
        {
            obj.setAttribute('href_bak', href);
        }
        obj.removeAttribute('href');
        obj.style.color = "gray";
    }
    else 
    {
        obj.setAttribute('href', obj.attributes['href_bak'].nodeValue);
        obj.style.color = "blue";
    }
}

function TextCounter(field, countfield, maxlimit) {
    // If too long...trim it!
    if (field.value.length > maxlimit)
        field.value = field.value.substring(0, maxlimit);
    // Otherwise, update 'characters left' counter					
    else
        countfield.innerHTML = maxlimit - field.value.length;
}

function RemoveAnchor(url)
{
    var anchor_index = url.indexOf('#');
    if (anchor_index != -1)
    	url = url.substring(0, anchor_index);

    return url;
}

function TextCounter(field, countfield, maxlimit)
{
    var textarea = GetObjectByPartName(field);

    // If too long...trim it!
    if (textarea.value.length > maxlimit) 		
        textarea.value = textarea.value.substring(0, maxlimit);				
    // Otherwise, update 'characters left' counter					
    else	
        GetObjectByPartName(countfield).innerHTML = maxlimit - textarea.value.length;				
}
